From 682a2005af18a7ac0a525a5b45baad52b4c817ba Mon Sep 17 00:00:00 2001 From: Alex Verkhovsky Date: Tue, 23 Jun 2026 04:41:56 -0700 Subject: [PATCH] fix: tighten dev auto prompt wording Remove remaining human-interaction atavisms, make subagent wording consistent, and clarify blocked verification handling in the unattended development workflow. --- .../4-implementation/bmad-dev-auto/customize.toml | 10 ++++------ .../4-implementation/bmad-dev-auto/spec-template.md | 2 +- .../bmad-dev-auto/step-01-clarify-and-route.md | 4 ++-- .../4-implementation/bmad-dev-auto/step-02-plan.md | 2 +- .../bmad-dev-auto/step-03-implement.md | 6 +++--- 5 files changed, 11 insertions(+), 13 deletions(-) diff --git a/src/bmm-skills/4-implementation/bmad-dev-auto/customize.toml b/src/bmm-skills/4-implementation/bmad-dev-auto/customize.toml index 26dafc4e8..86843d543 100644 --- a/src/bmm-skills/4-implementation/bmad-dev-auto/customize.toml +++ b/src/bmm-skills/4-implementation/bmad-dev-auto/customize.toml @@ -14,9 +14,8 @@ activation_steps_prepend = [] -# Steps to run after activation but before the workflow begins. -# Overrides append. Use for context-heavy setup that should happen -# once the user has been acknowledged. +# Steps to run after config load but before the workflow begins. +# Overrides append. Use for context-heavy setup. activation_steps_append = [] @@ -34,8 +33,7 @@ persistent_facts = [ "file:{project-root}/**/project-context.md", ] -# Scalar: executed when the workflow reaches its final step, -# after implementation is complete and explanations are provided. Override wins. -# Leave empty for no custom post-completion behavior. +# Scalar: final instruction run by HALT on every terminal path. Override wins. +# Leave empty for no custom terminal behavior. on_complete = "" diff --git a/src/bmm-skills/4-implementation/bmad-dev-auto/spec-template.md b/src/bmm-skills/4-implementation/bmad-dev-auto/spec-template.md index 05cdeb021..d46f1cf34 100644 --- a/src/bmm-skills/4-implementation/bmad-dev-auto/spec-template.md +++ b/src/bmm-skills/4-implementation/bmad-dev-auto/spec-template.md @@ -40,7 +40,7 @@ warnings: [] # optional: machine-readable warnings for orchestration, e.g. overs | Scenario | Input / State | Expected Output / Behavior | Error Handling | |----------|--------------|---------------------------|----------------| -| HAPPY_PATH | INPUT | OUTCOME | N/A | +| HAPPY_PATH | INPUT | OUTCOME | No error expected | | ERROR_CASE | INPUT | OUTCOME | ERROR_HANDLING | diff --git a/src/bmm-skills/4-implementation/bmad-dev-auto/step-01-clarify-and-route.md b/src/bmm-skills/4-implementation/bmad-dev-auto/step-01-clarify-and-route.md index aed4f03e4..48645014b 100644 --- a/src/bmm-skills/4-implementation/bmad-dev-auto/step-01-clarify-and-route.md +++ b/src/bmm-skills/4-implementation/bmad-dev-auto/step-01-clarify-and-route.md @@ -40,7 +40,7 @@ If the invocation prompt does not contain enough intent to identify what to impl - **If valid:** load it as the primary planning context. Do not load raw planning docs (PRD, architecture, UX, etc.). - **If missing, empty, or invalid:** compile it in the next bullet. - 3. **Compile epic context if needed.** If no valid cached epic context was loaded, produce `{implementation_artifacts}/epic--context.md` by spawning a sub-agent with `./compile-epic-context.md` as its prompt. Pass it the epic number, the epics file path, the `{planning_artifacts}` directory, and the output path `{implementation_artifacts}/epic--context.md`. + 3. **Compile epic context if needed.** If no valid cached epic context was loaded, produce `{implementation_artifacts}/epic--context.md` by spawning a subagent with `./compile-epic-context.md` as its prompt. Pass it the epic number, the epics file path, the `{planning_artifacts}` directory, and the output path `{implementation_artifacts}/epic--context.md`. 4. **Verify if compiled.** If epic context was compiled, verify the output file exists, is non-empty, and starts with `# Epic Context:`. If valid, load it. If verification fails, HALT with status `blocked` and blocking condition `context compilation verification failed`. @@ -54,7 +54,7 @@ If the invocation prompt does not contain enough intent to identify what to impl - **Epics** (`*epic*`) — feature breakdown into implementable stories - **Product Brief** (`*brief*`) — project vision and scope - Scan the listing for files matching these patterns. If any look relevant to the current intent, load them selectively — you don't need all of them, but you need the right constraints and requirements rather than guessing from code alone. -2. Clarify intent. Do not fantasize, do not leave open questions. If you must ask questions, HALT with status `blocked` and those questions as blocking condition. +2. Resolve intent from the invocation prompt and loaded artifacts. Do not fantasize or leave open questions. If the intent cannot be resolved, HALT with status `blocked` and the unresolved questions as blocking condition. 3. Version control sanity check. Is the working tree clean? Does the current branch make sense for this intent — considering its name and recent history? If the tree is dirty or the branch is an obvious mismatch, HALT with status `blocked` and that condition as blocking condition. If version control is unavailable, skip this check. 4. Multi-goal warning. If the intent appears to contain multiple independently shippable goals, carry `multiple-goals` forward so step-02 can add it to `{spec_file}` frontmatter `warnings`. Do not split or block. 5. Route: diff --git a/src/bmm-skills/4-implementation/bmad-dev-auto/step-02-plan.md b/src/bmm-skills/4-implementation/bmad-dev-auto/step-02-plan.md index 328b00f43..460b11b8e 100644 --- a/src/bmm-skills/4-implementation/bmad-dev-auto/step-02-plan.md +++ b/src/bmm-skills/4-implementation/bmad-dev-auto/step-02-plan.md @@ -12,7 +12,7 @@ deferred_work_file: '{implementation_artifacts}/deferred-work.md' ## INSTRUCTIONS 1. Draft resume check. If `{spec_file}` exists with `status: draft`, read it and capture the verbatim `...` block as `preserved_intent_contract`. Otherwise `preserved_intent_contract` is empty. -2. Investigate codebase. _Isolate deep exploration in sub-agents/tasks where available. To prevent context snowballing, instruct subagents to give you distilled summaries only._ +2. Investigate codebase. _Use subagents for deep exploration. To prevent context snowballing, instruct subagents to give you distilled summaries only._ 3. Read `./spec-template.md` fully. Fill it out based on the intent and investigation. If `{preserved_intent_contract}` is non-empty, substitute it for the `` block in your filled spec before writing. Write the result to `{spec_file}`. 4. Self-review against READY FOR DEVELOPMENT standard. 5. If intent gaps exist, do not fantasize and do not leave open questions. HALT with status `blocked`, blocking condition `intent gaps`, and include the unanswered questions and evidence gathered. diff --git a/src/bmm-skills/4-implementation/bmad-dev-auto/step-03-implement.md b/src/bmm-skills/4-implementation/bmad-dev-auto/step-03-implement.md index 710a9db77..504998487 100644 --- a/src/bmm-skills/4-implementation/bmad-dev-auto/step-03-implement.md +++ b/src/bmm-skills/4-implementation/bmad-dev-auto/step-03-implement.md @@ -23,15 +23,15 @@ Capture `baseline_revision` (current HEAD, or `NO_VCS` if version control is una Change `{spec_file}` status to `in-progress` in the frontmatter before starting implementation. -If `{spec_file}` has a non-empty `context:` list in its frontmatter, load those files before implementation begins. When handing to a sub-agent, include them in the sub-agent prompt so it has access to the referenced context. +If `{spec_file}` has a non-empty `context:` list in its frontmatter, load those files before implementation begins. When handing to a subagent, include them in the subagent prompt so it has access to the referenced context. -Hand `{spec_file}` to a sub-agent/task and let it implement. +Hand `{spec_file}` to an implementation subagent. **Path formatting rule:** Any markdown links written into `{spec_file}` must use paths relative to `{spec_file}`'s directory so they are clickable in VS Code. Any file paths displayed in terminal/conversation output must use CWD-relative format with `:line` notation (e.g., `src/path/file.ts:42`) for terminal clickability. No leading `/` in either case. ### Tasks & Acceptance Verification -After the implementation sub-agent returns, verify every task in the `## Tasks & Acceptance` section of `{spec_file}` is complete and every acceptance criterion is satisfied. Mark each finished task `[x]`. If any task is not done or any acceptance criterion is not satisfied, finish the missing work before proceeding. If the missing work cannot be completed, HALT with status `blocked` and include the unfinished task or failing acceptance criterion and reason. +After the implementation subagent returns, verify every task in the `## Tasks & Acceptance` section of `{spec_file}` is complete and every acceptance criterion is satisfied. Mark each finished task `[x]`. If any task is not done or any acceptance criterion is not satisfied, finish the missing work before proceeding. If the missing work cannot be completed, HALT with status `blocked`, blocking condition `implementation verification failed`, and include the unfinished task or failing acceptance criterion and reason. ## NEXT