| 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", "plan manifest". |
| practices | ["bdd-gherkin","design-by-contract","ddd-bounded-context"] |
| hexagonal_role | domain |
| consumes | [] |
| produces | [] |
| 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. When no tracker is
available, use the caller's conversation or supplied issue text; the runtime
snapshots the resolved intent bytes automatically so later contexts can read
and hash the same source. Do not make the model restate those facts in a packet.
Workflow
- Resolve the intent source and choose one active behavior. When that source
is not already durable, have the runtime pass its exact bytes to the
validate skill's
scripts/validate.py snapshot-intent --source -, resolved
relative to wherever that skill package is installed (a repo checkout:
skills/validate/scripts/validate.py; an installed skill package:
.agents/skills/validate/scripts/validate.py), and use the returned
intent_ref for later phases.
- Route the work by type (see Ground-truth routing) and name its ground
truth first. Then inspect only enough real context to make paths, interfaces,
and evidence concrete: hydrate only the context sources this decision needs
and carry their citations forward. Existing research and specialist skills
are advisory inputs, never a merged context store.
- Ensure the source contains acceptance examples, important non-goals, and the
allowed write scope. Use lightweight prose or Given/When/Then only where it
removes ambiguity; do not require both normal and edge ceremony for every
change.
- Name the first useful acceptance check.
- If authorized and the source is writable, update that bead or issue in
place. Otherwise return a concise proposed amendment to the caller.
Planning produces no AgentOps packet. The runtime stores and hashes the resolved
source bytes to detect later acceptance drift. That content-addressed snapshot
is derived automatically and is not another model-authored planning artifact.
Bound the work around the caller-visible outcome, not individual files, gates,
or reviewer comments. Decomposition is useful only when it reduces reasoning
cost; it must not multiply invocations or proof artifacts.
Manifest mode (many behaviors, zero beads)
When the caller's goal genuinely decomposes into several bounded behaviors —
an audit remediation, an epic, a contraction — shape one caller-owned
specification manifest instead of one behavior:
- One document in the caller's location (commonly
docs/plans/<date>-<slug>.md)
holding a manifest table (stable slug, type, priority, parent, dependency
edges) plus one section per child with acceptance, non-goals, write scope,
and evidence commands. Each child must satisfy the same bar as a
single-behavior plan.
- Tracker IDs stay
TBD: manifest mode authors zero beads. The executing
substrate materializes tracker state — the caller's session in the default
loop, or the selected factory's coordinator (for Gas City the Mayor, per
; for the Flywheel, its native workflow per
).