plan · git:20260908.8061085 · 2026-09-08 · sha256 634a6b48de8dd8b3
plan git:20260908.8061085A
Immutable. This exact content is served forever at /api/v1/blob/634a6b48de8dd8b3.
--- name: plan description: 'Shape or refine the existing bead or caller intent without a second planning artifact. Triggers: "plan", "discover and plan", "shape this goal", "review write scope", "check scope boundaries", "scope this change".' practices: - bdd-gherkin - design-by-contract - ddd-bounded-context hexagonal_role: domain consumes: [] produces: [] output_contract: 'in-place caller intent update or concise proposed amendment; never an AgentOps planning artifact' context_rel: [] skill_api_version: 1 user-invocable: true metadata: graph_root: true tier: execution dependencies: [] capabilities: [shape_intent, define_acceptance, bound_write_scope] effects: [update_intent_source] canonical_status: canonical disposition: keep --- # Plan Turn the caller's intent into one bounded, testable behavior in the place that already owns the work. Prefer the caller's tracker, if any; otherwise the caller's conversation or supplied text, which the runtime snapshots so later contexts read and hash the same bytes. ## Prompt ```text Plan bead ag-1234: "ao gate check lists the probe-coverage row". Shape it in the bead itself: one active behavior, acceptance examples, non-goals, write scope as a class (cli/internal/gates/** plus regen outputs), first check `cd cli && go test ./internal/gates/...`. Update the bead in place. ``` ## It's working if - The bead or issue text itself gains acceptance, non-goals, and write scope; no plan file appears under `.agents/` in the diff. - Write scope names a regen class (`skills/**` plus every output of `scripts/regen-all.sh`), not a hand-enumerated path list. - The plan names one first check as a runnable command, such as `bash scripts/check-x.sh`, and a fresh context given only the source can start Implement. - On a risky write scope the plan names the evidence the change will orphan, rather than leaving it for verify time. ## Workflow 1. Resolve the intent source and choose one active behavior. When the source is not durable, have the runtime pass its exact bytes to `ao provenance snapshot-intent --source - --evidence-root <explicit-root>` and carry the returned `intent_ref` into later phases. The caller selects an existing non-Git evidence directory; CDLC uses the resolved protected external evidence root. Missing routing fails without workspace fallback. 2. Route the work by type (Integrate, Extend, or Greenfield) and name its ground truth, control experiment, and deviation ledger first from [references/ground-truth-routing.md](references/ground-truth-routing.md). Then inspect only enough real context to make paths, interfaces, and evidence concrete, carrying citations forward; research and specialist skills are advisory inputs. 3. Ensure the source contains acceptance examples, important non-goals, and the allowed write scope. Name the write scope, its effect on acceptance and enforcement under [`validate`](../validate/SKILL.md)'s risk rule (unknown risk takes stronger review), the caller's `repair_rounds`, the named acceptance gap and discriminating check that would establish progress, and the evidence this change will orphan: bound scorecards or contracts whose evaluator files sit in the write scope. Run `ao provenance evidence-orphans --root <repo-root>` with one `--changed <path>` per proposed changed path to see existing digest drift and exact-path exposure; the reader does not expand scope globs. Budget recapturing affected evidence as work this plan carries, not a discovery for verify time. Use lightweight prose or Given/When/Then only where it removes ambiguity. Write-scope checks (folded from the retired `scope` skill): - patterns are normalized repository-relative paths; - includes cover the behavior without granting unrelated directories; - excludes do not contradict required changes; - generated companions that must move with the sources are explicit; - no ownership, scheduling, Git, hook, retry, release, or delivery state. 4. Name the first useful acceptance check. 5. If authorized and the source is writable, update that bead or issue in place. Otherwise return a concise proposed amendment to the caller. ## Scope admission At scope, read `boundaries.md` in the rpi skill's `references` directory for what Plan does not own. In a repository with generated projections, write scope names generator-owned outputs as a class (the hand-edited sources plus all outputs of the owning regen commands), because a hand-enumerated list is falsified the first time a regen command rewrites an unlisted companion. Before freezing acceptance, enumerate the generated companions, parity twins such as `skills-codex/`, and tests asserting on the changed paths; anything unadmitted here surfaces later as an out-of-scope diff or a broken gate. A plan is done only when it passes the fresh-context test: a cold context, given the intent source alone, could execute it. Move any fact that lives only in the planning conversation into the source before freezing. Planning produces no AgentOps packet: the runtime carries the source's reference and digest to detect acceptance drift. Bound the work around the caller-visible outcome, not files, gates, or reviewer comments; decompose only when it reduces reasoning cost. An explicitly selected bounded outer goal may admit a different experiment after informative red within unchanged terminal acceptance and remaining allowance. A new hypothesis is not an acceptance expansion; recurrence alone is not proof that the design is wrong. Do not reopen an accepted plan merely to produce another control artifact.