bubbles-artifact-ownership-routing
Respect Bubbles artifact ownership boundaries and route foreign-artifact changes through the owning agent. Use when about to modify any spec/scope/state/test/source/docs artifact, when discovering a problem in someone else's artifact, or when handling a stale spec/design/scope. Covers ownership tables, freshness/supersession, and route-required packets.
- License 许可
- MIT
- 最近更新
- 2026-11-07
- Stars
- ★ 1
- Forks
- 0
01 前言 Front Matter
- name
- bubbles-artifact-ownership-routing
- description
- Respect Bubbles artifact ownership boundaries and route foreign-artifact changes through the owning agent. Use when about to modify any spec/scope/state/test/source/docs artifact, when discovering a problem in someone else's artifact, or when handling a stale spec/design/scope. Covers ownership tables, freshness/supersession, and route-required packets.
03 SKILL.md 正文
Bubbles Artifact Ownership & Routing
Goal
Edit only the artifacts your agent owns. When you find a defect in a foreign-owned artifact, route it instead of patching it inline. Keep ownership boundaries clean so the framework's routing guarantees hold.
When to use
- About to edit any file under
specs/,tests/,src/,docs/, or framework-managed paths - About to modify
state.json,scopes.md,report.md,uservalidation.md,design.md,spec.md - Discovered a bug or staleness in someone else's owned artifact
- Inheriting work from another specialist via a handoff packet
Ownership at a glance (consult agent-ownership.yaml for the authoritative table)
| Artifact | Owner |
|---|---|
specs/<NNN>/spec.md |
bubbles.analyst (creation), bubbles.clarify (revision after questions) |
specs/<NNN>/design.md |
bubbles.design |
specs/<NNN>/scopes.md, scopes/*/scope.md |
bubbles.plan |
specs/<NNN>/report.md |
the agent that produced the evidence (commonly bubbles.implement, bubbles.test) |
specs/<NNN>/uservalidation.md |
human owner (agents create the checklist; only humans uncheck items) |
specs/<NNN>/state.json execution.* |
bubbles.implement (claims), bubbles.test, bubbles.audit |
specs/<NNN>/state.json certification.* |
bubbles.validate only |
| Source code, tests, configs | bubbles.implement, bubbles.test, bubbles.devops per scope |
Framework-managed .github/bubbles/** |
upstream Bubbles only (downstream consumers MUST NOT edit) |
Cross-artifact mutation rule (NON-NEGOTIABLE)
If your scope's owned artifact is, say, report.md, you may NOT edit spec.md to make a test pass. The flow is:
- Detect the gap in the foreign artifact.
- Emit a
route_requiredfinding withnextRequiredOwner: bubbles.<owner>. - Stop. Wait for the orchestrator to dispatch the owner.
Freshness and supersession
When spec.md or design.md drift after implementation has already shipped:
- Do NOT silently rewrite them. That breaks traceability.
- Open the spec-review handoff:
bubbles.spec-reviewdecidesSTILL_TRUE,MINOR_DRIFT,MAJOR_DRIFT, orOBSOLETE. - For
MAJOR_DRIFTorOBSOLETEon adonespec,bubbles.workflowauto-dispatchesimprove-existingmode and the spec re-enters in-progress.
Framework-managed boundary (downstream repos)
Consumer repos must not edit:
.github/bubbles/**(scripts, workflows.yaml, capabilities, ledger).github/agents/bubbles*(framework agents).github/prompts/bubbles*.github/skills/bubbles-*(framework-shipped skills).github/instructions/bubbles-*.instructions.md
If a downstream repo needs a framework change, file a project-owned proposal at .github/bubbles-project/proposals/<slug>.md or run bubbles framework-proposal <slug>. The actual change lands upstream in the Bubbles source repo.
Mechanical enforcement
downstream-framework-write-guard.shblocks pushes that touch framework-managed paths from a downstreamagent-ownership-lint.shcatches agents that claim ownership outside their declared surfaceartifact-freshness-guard.shrejects stale artifacts that are being used as current authority
Authoritative modules
agents/bubbles_shared/artifact-ownership.md— ownership tables + delegation contractagents/bubbles_shared/artifact-freshness.md— supersession + spec-review routingagents/bubbles_shared/artifact-lifecycle.md— feature/bug artifact lifecycleagents/bubbles_shared/consumer-trace.md— renames + removalsbubbles/agent-ownership.yaml— machine-readable ownership indexbubbles/scripts/downstream-framework-write-guard.sh— mechanical guard
04 同仓库更多 Skills
smackerel-trace-capture
Wire Smackerel's concrete validate-plane stack into the framework trace-driven defect-discovery method. Use when running live-category tests (integration/e2e/e2e-ui/stress) against the ephemeral test stack; capturing SLO or trace evidence; hunting latency/error/perf bugs from spans; querying the test-stack Jaeger or Prometheus; or touching `.specify/runtime/observability`. Concrete smackerel endpoints + the exact `capture-slo.sh` command; do NOT duplicate `bubbles-observability-adapter` — this only adds the wiring.
smackerel-no-defaults
Enforce Smackerel's NO-DEFAULTS / fail-loud SST policy. Use when editing config, Docker Compose, deploy adapters, docs, instructions, skills, env handling, host bind addresses, or any runtime value that could be hidden by fallback syntax.
bubbles-workflow-mode-resolution
Resolve a Bubbles workflow mode against `bubbles/workflows.yaml`, including template inheritance, status ceilings, gate wiring, and decision policy. Use when picking a mode for a request, when a guard reports a mode-related failure, or when extending workflows.yaml with a new mode or template. Covers natural-language intent routing and the workflow registry consistency rules.
bubbles-workflow-execution-loops
Run per-round synchronous workflow execution loops correctly. Use when orchestrating a multi-round workflow, dispatching specialist subagents, handling round-based remediation, or interpreting a workflow mode's execution policy. Covers authorized direct execution, dispatch-and-wait, batch-then-summarize prohibition, and mapped-mode execution.
bubbles-vscode-agent-constraints
Design agents that fit the VS Code Copilot Chat runtime instead of fighting it. Use when authoring or editing any `*.agent.md`; when adding `tools:`, `agents:`, `handoffs:`, `model:`, `user-invocable:`, or `disable-model-invocation:` frontmatter; when designing an orchestrator that dispatches specialists; when a design implies agent-calls-agent-calls-agent chaining; when a subagent dispatch silently no-ops or an agent cannot be selected in the dropdown; or when writing a governance rule about delegation that the runtime cannot actually enforce. Prevents multi-level-subagent designs, prose-only dispatch laws, and frontmatter/body contradictions.
bubbles-upkeep-cadence
How to schedule, dispatch, and record recurring operational upkeep tasks (backup, restore-drill, BCDR-drill, patch-cycle, secret-rotation, flag-cleanup, compliance-sweep). Use when authoring or modifying `config/upkeep-calendar.yaml`, when investigating a missed task, when reading the upkeep ledger, or when adding a new task type.