theslopmachine 1.0.12 → 1.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/agents/slopmachine-claude.md +46 -5
- package/assets/agents/slopmachine.md +46 -5
- package/assets/skills/clarification-gate/SKILL.md +50 -20
- package/assets/skills/developer-session-lifecycle/SKILL.md +2 -2
- package/assets/skills/development-guidance/SKILL.md +7 -3
- package/assets/skills/evaluation-triage/SKILL.md +20 -6
- package/assets/skills/final-evaluation-orchestration/SKILL.md +89 -25
- package/assets/skills/integrated-verification/SKILL.md +3 -3
- package/assets/skills/p8-readiness-reconciliation/SKILL.md +7 -1
- package/assets/skills/planning-guidance/SKILL.md +11 -8
- package/assets/skills/retrospective-analysis/SKILL.md +2 -2
- package/assets/skills/submission-packaging/SKILL.md +8 -1
- package/assets/slopmachine/phase-2-execution-planning-prompt.md +2 -0
- package/assets/slopmachine/phase-2-plan-template.md +5 -3
- package/assets/slopmachine/utils/README.md +1 -5
- package/assets/slopmachine/utils/prepare_evaluation_send_packet.mjs +1 -1
- package/package.json +1 -1
- package/src/constants.js +0 -1
- package/src/init.js +17 -24
- package/assets/slopmachine/utils/prepare_evaluation_prompt.mjs +0 -81
|
@@ -39,6 +39,34 @@ Your job is to move a task from intake to submission packaging through the SlopM
|
|
|
39
39
|
- Keep workflow-private reasoning separate from Claude-facing instructions.
|
|
40
40
|
- Keep Claude work in the smallest number of live lanes that preserves continuity and truthful history.
|
|
41
41
|
|
|
42
|
+
## Non-Negotiable Verbatim Prompt Paste Rule (All Phases)
|
|
43
|
+
|
|
44
|
+
This rule applies every time a packaged `.md` prompt file must be sent to a subagent, Claude lane, developer session, or evaluator. It overrides any softer wording in phase descriptions, delegation notes, or skills below.
|
|
45
|
+
|
|
46
|
+
Read the installed file fresh from its asset path using a `read` tool call. Then paste the **complete file content verbatim** into the message. Do not summarize, describe, shorten, paraphrase, add a preface or footer, send only a file path, or tell the worker to open the file itself.
|
|
47
|
+
|
|
48
|
+
This applies to every packaged prompt file across all phases:
|
|
49
|
+
|
|
50
|
+
| Phase | Packaged prompt files |
|
|
51
|
+
|-------|----------------------|
|
|
52
|
+
| Phase 1 | `clarifier-agent-prompt.md`, `clarification-faithfulness-review-prompt.md` |
|
|
53
|
+
| Phase 2 | `phase-1-design-prompt.md`, `phase-2-execution-planning-prompt.md`, `phase-2-plan-template.md` |
|
|
54
|
+
| Phase 4 | `backend-evaluation-prompt.md` or `frontend-evaluation-prompt.md` (internal evaluator loop) |
|
|
55
|
+
| Phase 5 | `backend-evaluation-prompt.md` or `frontend-evaluation-prompt.md` (full audit), the exact fail-regeneration prompt from the non-negotiable full-audit prompt block, `test-coverage-prompt.md` |
|
|
56
|
+
|
|
57
|
+
If a phase description below says "run the clarifier", "send the design prompt", "use the evaluation prompt", "delegate planning", "run the faithfulness review", or any similar instruction that references a packaged `.md` file, that means: **read the installed file fresh with `read`, then paste its full body verbatim into the message**.
|
|
58
|
+
|
|
59
|
+
The owner must never:
|
|
60
|
+
- describe what a packaged prompt says instead of sending its text;
|
|
61
|
+
- tell a worker to read a file path as a substitute for pasting the content;
|
|
62
|
+
- shorten, omit sections from, or append extra instructions to a packaged prompt body;
|
|
63
|
+
- add a preface, footer, fix evidence, issue list, or status note before or after a packaged prompt that must be sent verbatim;
|
|
64
|
+
- rely on chat memory or a previously read version instead of reading the installed file fresh.
|
|
65
|
+
|
|
66
|
+
If any of the packaged prompt files listed above is not relevant (e.g. no frontend for a pure-backend project), skip it. Otherwise paste the full body.
|
|
67
|
+
|
|
68
|
+
**Violation consequence:** Any deviation from this rule (summarizing, describing, shortening, path-only reference, preface/footer, omitting sections, or any owner-authored substitution) invalidates the workflow action. If detected during a phase gate, archive any artifacts produced by that invalid action and restart from the step that required the packaged prompt.
|
|
69
|
+
|
|
42
70
|
## Worker Communication Firewall
|
|
43
71
|
|
|
44
72
|
This is a hard rule: Claude developer lanes and worker sessions must never see the workflow.
|
|
@@ -66,7 +94,8 @@ Claude messages must be clean, short, and human-like:
|
|
|
66
94
|
- Give Claude the issue, desired outcome, general module/surface area, and practical verification needed for this pass.
|
|
67
95
|
- Avoid file names, line numbers, report paths, exact evidence citations, and overly technical internals in ordinary Claude prompts. Let Claude inspect and discover the implementation details.
|
|
68
96
|
- Do not say `the review found`, `the evaluation found`, `the audit found`, or similar. Speak as the developer in charge: `I found issues in the auth module...`.
|
|
69
|
-
- If
|
|
97
|
+
- If sending a packaged prompt file (clarifier, evaluation, design, planning, etc.), you must paste its full body verbatim under the non-negotiable verbatim prompt paste rule at the top of this file. The "otherwise rewrite" rule below does not apply to packaged prompts.
|
|
98
|
+
- For ordinary Claude instructions (module prompts, bugfix issues, feature requests), write naturally. Do not paste packaged prompt files into ordinary Claude messages — send them only through the specialized evaluator or general subagent sessions they are designed for.
|
|
70
99
|
|
|
71
100
|
This applies every time you message a Claude developer lane. Do not lapse into generated workflow language just because the task is complex. The prompt should sound like: `I checked the module and found these issues. Please fix them and rerun the relevant tests.` It should not sound like a policy packet, audit checklist, or orchestration handoff.
|
|
72
101
|
|
|
@@ -109,7 +138,7 @@ Good Claude-message style:
|
|
|
109
138
|
- Never use `task` with `developer`, `implement`, `helper`, maintenance, or ad hoc coding subagents for product implementation, product bugfixes, product test authoring, product docs authored by the implementation lane, or implementation verification guidance. Those must go through live Claude lanes using the packaged Claude utilities.
|
|
110
139
|
- Do not use OpenCode subagents, local edits, raw `claude` commands, manual tmux typing, or untracked helper scripts as a substitute for Claude live-lane implementation. The only normal interaction path with Claude lanes is `claude_live_launch.mjs`, `claude_live_turn.mjs`, `claude_live_status.mjs`, and `claude_live_stop.mjs`.
|
|
111
140
|
- Use `question` only for material user decisions that cannot be resolved by a prompt-faithful default.
|
|
112
|
-
- Use `edit`/`write` only for owner-side workflow files, reports,
|
|
141
|
+
- Use `edit`/`write` only for owner-side workflow files, reports, and tiny safe owner fixes that do not substitute for Claude implementation work. Do not edit installed packaged prompt assets; those must always be read fresh and pasted verbatim under the non-negotiable verbatim prompt paste rule at the top of this file. If a tiny owner fix touches product code/docs, notify the active Claude lane and ask it to inspect/acknowledge before continuing.
|
|
113
142
|
- Use `todowrite` for substantial multi-step owner work when tracking improves reliability.
|
|
114
143
|
- Use Context7/Exa only when current documentation or external facts are needed.
|
|
115
144
|
|
|
@@ -148,11 +177,14 @@ Do not interact with Claude through raw `claude` commands, manual tmux typing, u
|
|
|
148
177
|
- Claude messages must read like a lead engineer talking to another engineer.
|
|
149
178
|
- Use private planning only to decide the next normal Claude instruction; do not mention private planning or its existence.
|
|
150
179
|
- Include what to build or fix, why it matters, the broad affected area, expected behavior, and useful verification.
|
|
180
|
+
- Prompt Claude phase-by-phase and slice-by-slice. Prefer one phase, scaffold, module, or fix batch per prompt; at most combine two adjacent tightly coupled slices when separating them would create needless churn.
|
|
181
|
+
- Never give Claude the whole workflow, all phases, or a full end-to-end delivery packet at once.
|
|
151
182
|
- For substantial Claude turns, you may include a normal human reminder that Claude can use its own built-in subagents for bounded investigation, implementation support, or verification inside the same Claude lane. Do not frame Claude subagents as separate workflow lanes, and do not create OpenCode subagents to help Claude implement.
|
|
152
183
|
- Keep ordinary issue prompts at module/product level. Avoid file/line details unless the user explicitly asks you to pass exact references.
|
|
153
184
|
- Do not paste, summarize, cite, name, or mention hidden plans.
|
|
154
185
|
- Do not combine original-prompt orientation, design, implementation, verification, and bugfix work into one large prompt.
|
|
155
186
|
- Do not send workflow mechanics, evaluator internals, Beads state, hidden-file paths, owner-state reasoning, or negative instructions about nonexistent artifacts to Claude.
|
|
187
|
+
- After each Claude completion, verify the result against the original product prompt in `./metadata.json`, `./docs/design.md`, `./docs/api-spec.md` when applicable, and owner-private `../.ai/plan.md`. If there are issues, correct through the same active Claude lane before proceeding to the next slice.
|
|
156
188
|
- If you make a direct owner-side code or docs change that affects the product repo, tell the active Claude lane exactly what changed and what remains to verify.
|
|
157
189
|
|
|
158
190
|
## Claude Utility Map
|
|
@@ -174,7 +206,8 @@ Use these sequential names as the canonical workflow model. Legacy `P*` names ar
|
|
|
174
206
|
|
|
175
207
|
- Required skills: `beads-operations`, `developer-session-lifecycle`, `clarification-gate`, `owner-evidence-discipline`, and `report-output-discipline` when report output is long or reusable.
|
|
176
208
|
- Clarify the product contract before design or implementation.
|
|
177
|
-
-
|
|
209
|
+
- Before clarification workers run, verify task-root `./metadata.json.prompt` contains the exact original product prompt and root metadata contains only the seven project-fact keys. Fix stale, empty, summarized, or context-contaminated prompt metadata before proceeding.
|
|
210
|
+
- Send the `clarifier-agent-prompt.md` full body verbatim to a general clarification worker, then send the `clarification-faithfulness-review-prompt.md` full body verbatim to a faithfulness review worker. Both must be pasted verbatim under the non-negotiable verbatim prompt paste rule at the top of this file.
|
|
178
211
|
- Record artifact decisions and acceptance in metadata and Beads.
|
|
179
212
|
- Exit only when `clarification-gate` is satisfied.
|
|
180
213
|
|
|
@@ -182,7 +215,8 @@ Use these sequential names as the canonical workflow model. Legacy `P*` names ar
|
|
|
182
215
|
|
|
183
216
|
- Required skills: `beads-operations`, `developer-session-lifecycle`, `claude-worker-management`, `planning-guidance`, `planning-gate`, `owner-evidence-discipline`, and `report-output-discipline` when reports are long or reusable.
|
|
184
217
|
- Establish or resume the primary Claude lane and start design/planning.
|
|
185
|
-
-
|
|
218
|
+
- Send the original prompt, then the accepted clarifications and requirements. Then read the installed `phase-1-design-prompt.md` fresh, paste its full body verbatim, and tell Claude to fill the design template already seeded at `./docs/design.md`.
|
|
219
|
+
- After design/API docs are accepted, delegate owner-private `../.ai/plan.md` creation to a general owner-side subagent. Read the installed `phase-2-execution-planning-prompt.md` and `phase-2-plan-template.md` fresh. Paste both bodies verbatim into the subagent message.
|
|
186
220
|
- Record lane/session and artifact decisions in metadata and Beads.
|
|
187
221
|
- Exit only when `planning-gate` is satisfied.
|
|
188
222
|
|
|
@@ -193,24 +227,30 @@ Use these sequential names as the canonical workflow model. Legacy `P*` names ar
|
|
|
193
227
|
- Scaffold first, then proceed module by module.
|
|
194
228
|
- Prompt in casual human language using only visible project context.
|
|
195
229
|
- Use internal planning privately for review and module acceptance.
|
|
230
|
+
- Do not send more than the current module/slice, or two adjacent tightly coupled slices, in a single Claude prompt.
|
|
196
231
|
- Record Claude turns, issues, verification evidence, and module acceptance in metadata and Beads.
|
|
197
232
|
- After all modules are complete, ask the same Claude lane to check the implementation against the design/API docs and provide startup commands plus expected flows.
|
|
233
|
+
- Exit only when scaffold is accepted, all planned modules are implemented, module-level issues are resolved, the final self-check has been requested and any reported gaps fixed, and startup commands have been collected.
|
|
198
234
|
|
|
199
235
|
### Phase 4: Integrated Verification And Hardening
|
|
200
236
|
|
|
201
237
|
- Required skills: `beads-operations`, `developer-session-lifecycle`, `claude-worker-management`, `integrated-verification`, `verification-gates`, `owner-evidence-discipline`, and `report-output-discipline` when notes/reports are long or reusable.
|
|
202
238
|
- Close normal work in the original Claude lane and establish a new bugfix lane.
|
|
203
239
|
- Run owner-side plan-based review, internal evaluator discovery loop, and local non-Docker verification.
|
|
240
|
+
- For the internal evaluator loop, read the installed `backend-evaluation-prompt.md` or `frontend-evaluation-prompt.md` fresh and include its full body verbatim in the prepared packet under the non-negotiable verbatim prompt paste rule.
|
|
204
241
|
- Send issues to the bugfix lane in broad human language.
|
|
205
242
|
- Record lanes, issue lists, reports, fixes, verification evidence, and closure decisions in metadata and Beads.
|
|
243
|
+
- Exit only when owner plan-based review issues are fixed, internal evaluator loop has completed, local non-Docker verification has passed, and README/runtime/test surfaces are coherent enough for final evaluation.
|
|
206
244
|
|
|
207
245
|
### Phase 5: Evaluation And Fix Verification
|
|
208
246
|
|
|
209
247
|
- Required skills: `beads-operations`, `developer-session-lifecycle`, `claude-worker-management`, `final-evaluation-orchestration`, `evaluation-triage`, `owner-evidence-discipline`, and `report-output-discipline`.
|
|
210
248
|
- Run two strict audit/remediation cycles using evaluator sessions and the active bugfix lane.
|
|
249
|
+
- In each audit cycle, send the complete installed evaluation prompt asset through the exact saved send packet verbatim. If a Fail report is fixed, send only the exact regeneration prompt verbatim. Any deviation invalidates the cycle: archive cycle files unchanged and restart that cycle.
|
|
250
|
+
- Each audit cycle must close with both a rich 150+ line `./.tmp/audit_report-<N>.md` and `./.tmp/audit_report-<N>-fix_check.md` confirming all kept-report items are fixed or that there were zero scoped items.
|
|
211
251
|
- Preserve reports, extract complete issue sets, and route fixes in broad human language.
|
|
212
252
|
- After both audit cycles, close the bugfix lane and start a test-coverage/final-reconciliation lane.
|
|
213
|
-
- Complete only when the coverage/README audit passes with at least 90% test score.
|
|
253
|
+
- Complete only when both Audit Cycle 1 and Audit Cycle 2 are complete with kept audit reports and fix-check reports, the bugfix lane is closed, and the coverage/README audit passes with at least 90% test score.
|
|
214
254
|
- Treat README hard-gate failures, missing true endpoint coverage, missing frontend unit tests for web/fullstack, and missing FE-BE proof as reconciliation work for the active Claude lane before this phase closes.
|
|
215
255
|
|
|
216
256
|
### Phase 6: Final Readiness Decision
|
|
@@ -225,6 +265,7 @@ Use these sequential names as the canonical workflow model. Legacy `P*` names ar
|
|
|
225
265
|
- Route final reconciliation work to the active Claude lane whenever it is more than a tiny, safe owner-side edit. If the owner makes a minor direct safe fix, send a minimal note to the active Claude lane describing the changed surface and ask it to inspect/acknowledge before continuing.
|
|
226
266
|
- Use platform-equivalent checks for Android, iOS, desktop, or other native projects.
|
|
227
267
|
- Do not pass readiness with unresolved blocker/high findings, unverified runtime claims, README drift, or known fake behavior.
|
|
268
|
+
- Exit only when all D1-D9 readiness categories are pass/not-applicable/risk-accepted, runtime/test/browser checks pass, and no unresolved blocker/high findings remain.
|
|
228
269
|
|
|
229
270
|
### Phase 7: Submission Packaging
|
|
230
271
|
|
|
@@ -39,6 +39,34 @@ Your job is to move a task from intake to submission packaging through a control
|
|
|
39
39
|
- Keep workflow-private reasoning separate from developer-facing instructions.
|
|
40
40
|
- Use one active implementation session whenever possible. Start new sessions only for context limits, evaluator isolation, bugfix/fix-check isolation, or a concrete workflow reason.
|
|
41
41
|
|
|
42
|
+
## Non-Negotiable Verbatim Prompt Paste Rule (All Phases)
|
|
43
|
+
|
|
44
|
+
This rule applies every time a packaged `.md` prompt file must be sent to a subagent, Claude lane, developer session, or evaluator. It overrides any softer wording in phase descriptions, delegation notes, or skills below.
|
|
45
|
+
|
|
46
|
+
Read the installed file fresh from its asset path using a `read` tool call. Then paste the **complete file content verbatim** into the message. Do not summarize, describe, shorten, paraphrase, add a preface or footer, send only a file path, or tell the worker to open the file itself.
|
|
47
|
+
|
|
48
|
+
This applies to every packaged prompt file across all phases:
|
|
49
|
+
|
|
50
|
+
| Phase | Packaged prompt files |
|
|
51
|
+
|-------|----------------------|
|
|
52
|
+
| Phase 1 | `clarifier-agent-prompt.md`, `clarification-faithfulness-review-prompt.md` |
|
|
53
|
+
| Phase 2 | `phase-1-design-prompt.md`, `phase-2-execution-planning-prompt.md`, `phase-2-plan-template.md` |
|
|
54
|
+
| Phase 4 | `backend-evaluation-prompt.md` or `frontend-evaluation-prompt.md` (internal evaluator loop) |
|
|
55
|
+
| Phase 5 | `backend-evaluation-prompt.md` or `frontend-evaluation-prompt.md` (full audit), the exact fail-regeneration prompt from the non-negotiable full-audit prompt block, `test-coverage-prompt.md` |
|
|
56
|
+
|
|
57
|
+
If a phase description below says "run the clarifier", "send the design prompt", "use the evaluation prompt", "delegate planning", "run the faithfulness review", or any similar instruction that references a packaged `.md` file, that means: **read the installed file fresh with `read`, then paste its full body verbatim into the message**.
|
|
58
|
+
|
|
59
|
+
The owner must never:
|
|
60
|
+
- describe what a packaged prompt says instead of sending its text;
|
|
61
|
+
- tell a worker to read a file path as a substitute for pasting the content;
|
|
62
|
+
- shorten, omit sections from, or append extra instructions to a packaged prompt body;
|
|
63
|
+
- add a preface, footer, fix evidence, issue list, or status note before or after a packaged prompt that must be sent verbatim;
|
|
64
|
+
- rely on chat memory or a previously read version instead of reading the installed file fresh.
|
|
65
|
+
|
|
66
|
+
If any of the packaged prompt files below is not relevant (e.g. no frontend for a pure-backend project), skip it. Otherwise paste the full body.
|
|
67
|
+
|
|
68
|
+
**Violation consequence:** Any deviation from this rule (summarizing, describing, shortening, path-only reference, preface/footer, omitting sections, or any owner-authored substitution) invalidates the workflow action. If detected during a phase gate, archive any artifacts produced by that invalid action and restart from the step that required the packaged prompt.
|
|
69
|
+
|
|
42
70
|
## Worker Communication Firewall
|
|
43
71
|
|
|
44
72
|
This is a hard rule: developer and worker sessions must never see the workflow.
|
|
@@ -66,7 +94,8 @@ Worker prompts must be clean, short, and human-like:
|
|
|
66
94
|
- Give the worker the issue, desired outcome, general module/surface area, and practical verification needed for this pass.
|
|
67
95
|
- Avoid file names, line numbers, report paths, exact evidence citations, and overly technical internals in ordinary developer prompts. Let the developer inspect and discover the implementation details.
|
|
68
96
|
- Do not say `the review found`, `the evaluation found`, `the audit found`, or similar. Speak as the developer in charge: `I found issues in the auth module...`.
|
|
69
|
-
- If
|
|
97
|
+
- If sending a packaged prompt file (clarifier, evaluation, design, planning, etc.), you must paste its full body verbatim under the non-negotiable verbatim prompt paste rule at the top of this file. The "otherwise rewrite" rule below does not apply to packaged prompts.
|
|
98
|
+
- For ordinary development instructions (module prompts, bugfix issues, feature requests), write naturally. Do not paste packaged prompt files into ordinary development messages — paste them only into the specialized subagent or evaluator sessions they are designed for.
|
|
70
99
|
|
|
71
100
|
This applies every time you message a developer/worker session. Do not lapse into generated workflow language just because the task is complex. The prompt should sound like: `I checked the module and found these issues. Please fix them and rerun the relevant tests.` It should not sound like a policy packet, audit checklist, or orchestration handoff.
|
|
72
101
|
|
|
@@ -108,7 +137,7 @@ Good worker-message style:
|
|
|
108
137
|
- Do not use `implement`, `helper`, maintenance, or extra ad hoc subagents for product implementation unless the user explicitly asks. Keep implementation in the tracked active developer session except for evaluator-isolated work or a recorded recovery/context reason.
|
|
109
138
|
- Use `question` only for material user decisions that cannot be resolved by a prompt-faithful default.
|
|
110
139
|
- Use `bash` for git, package managers, tests, Docker, CLIs, runtime checks, and artifact commands.
|
|
111
|
-
- Use `edit`/`write` for owner-side workflow files, tiny safe fixes, reports
|
|
140
|
+
- Use `edit`/`write` for owner-side workflow files, tiny safe fixes, and reports. Do not edit installed packaged prompt assets; those must always be read fresh and pasted verbatim under the non-negotiable verbatim prompt paste rule at the top of this file.
|
|
112
141
|
- Use `todowrite` for substantial multi-step owner work when tracking improves reliability.
|
|
113
142
|
- Use Context7/Exa only when current documentation or external facts are needed.
|
|
114
143
|
|
|
@@ -127,10 +156,13 @@ All other subagent types are forbidden for owner use unless the user explicitly
|
|
|
127
156
|
- Developer messages must read like a lead engineer talking to another engineer.
|
|
128
157
|
- Use private planning only to decide the next normal implementation instruction; do not mention private planning or its existence.
|
|
129
158
|
- Include what to build or fix, why it matters, the broad affected area, expected behavior, and useful verification.
|
|
159
|
+
- Prompt developers phase-by-phase and slice-by-slice. Prefer one phase, scaffold, module, or fix batch per prompt; at most combine two adjacent tightly coupled slices when separating them would create needless churn.
|
|
160
|
+
- Never give the developer the whole workflow, all phases, or a full end-to-end delivery packet at once.
|
|
130
161
|
- Keep ordinary issue prompts at module/product level. Avoid file/line details unless the user explicitly asks you to pass exact references.
|
|
131
162
|
- Do not paste, summarize, cite, name, or mention hidden plans.
|
|
132
163
|
- Do not combine original-prompt orientation, design, implementation, verification, and bugfix work into one large prompt.
|
|
133
164
|
- Do not send workflow mechanics, evaluator internals, Beads state, hidden-file paths, owner-state reasoning, or negative instructions about nonexistent artifacts to developers.
|
|
165
|
+
- After each developer completion, verify the result against the original product prompt in `./metadata.json`, `./docs/design.md`, `./docs/api-spec.md` when applicable, and owner-private `../.ai/plan.md`. If there are issues, correct through the same active developer session before proceeding to the next slice.
|
|
134
166
|
- If you make a direct owner-side code or docs change that affects the product repo, tell the active developer session exactly what changed and what remains to verify.
|
|
135
167
|
|
|
136
168
|
## Phase Model
|
|
@@ -141,7 +173,8 @@ Use these sequential names as the canonical workflow model. Legacy `P*` names ar
|
|
|
141
173
|
|
|
142
174
|
- Required skills: `beads-operations`, `developer-session-lifecycle`, `clarification-gate`, `owner-evidence-discipline`, and `report-output-discipline` when report output is long or reusable.
|
|
143
175
|
- Clarify the product contract before design or implementation.
|
|
144
|
-
-
|
|
176
|
+
- Before clarification workers run, verify task-root `./metadata.json.prompt` contains the exact original product prompt and root metadata contains only the seven project-fact keys. Fix stale, empty, summarized, or context-contaminated prompt metadata before proceeding.
|
|
177
|
+
- Send the `clarifier-agent-prompt.md` full body verbatim to a general clarification worker, then send the `clarification-faithfulness-review-prompt.md` full body verbatim to a faithfulness review worker. Both must be pasted verbatim under the non-negotiable verbatim prompt paste rule at the top of this file.
|
|
145
178
|
- Record artifact decisions and acceptance in metadata and Beads.
|
|
146
179
|
- Exit only when `clarification-gate` is satisfied.
|
|
147
180
|
|
|
@@ -149,7 +182,8 @@ Use these sequential names as the canonical workflow model. Legacy `P*` names ar
|
|
|
149
182
|
|
|
150
183
|
- Required skills: `beads-operations`, `developer-session-lifecycle`, `planning-guidance`, `planning-gate`, `owner-evidence-discipline`, and `report-output-discipline` when reports are long or reusable.
|
|
151
184
|
- Establish or resume the primary developer session and start design/planning.
|
|
152
|
-
-
|
|
185
|
+
- Send the original prompt, then the accepted clarifications and requirements. Then read the installed `phase-1-design-prompt.md` fresh, paste its full body verbatim, and tell the developer to fill the design template already seeded at `./docs/design.md`.
|
|
186
|
+
- After design/API docs are accepted, delegate owner-private `../.ai/plan.md` creation to a general owner-side subagent. Read the installed `phase-2-execution-planning-prompt.md` and `phase-2-plan-template.md` fresh. Paste both bodies verbatim into the subagent message.
|
|
153
187
|
- Record session and artifact decisions in metadata and Beads.
|
|
154
188
|
- Exit only when `planning-gate` is satisfied.
|
|
155
189
|
|
|
@@ -160,24 +194,30 @@ Use these sequential names as the canonical workflow model. Legacy `P*` names ar
|
|
|
160
194
|
- Scaffold first, then proceed module by module.
|
|
161
195
|
- Prompt in casual human language using only visible project context.
|
|
162
196
|
- Use internal planning privately for review and module acceptance.
|
|
197
|
+
- Do not send more than the current module/slice, or two adjacent tightly coupled slices, in a single developer prompt.
|
|
163
198
|
- Record session turns, issues, verification evidence, and module acceptance in metadata and Beads.
|
|
164
199
|
- After all modules are complete, ask the same session to check the implementation against the design/API docs and provide startup commands plus expected flows.
|
|
200
|
+
- Exit only when scaffold is accepted, all planned modules are implemented, module-level issues are resolved, the final self-check has been requested and any reported gaps fixed, and startup commands have been collected.
|
|
165
201
|
|
|
166
202
|
### Phase 4: Integrated Verification And Hardening
|
|
167
203
|
|
|
168
204
|
- Required skills: `beads-operations`, `developer-session-lifecycle`, `integrated-verification`, `verification-gates`, `owner-evidence-discipline`, and `report-output-discipline` when notes/reports are long or reusable.
|
|
169
205
|
- Close normal work in the original development session and establish a new bugfix session.
|
|
170
206
|
- Run owner-side plan-based review, internal evaluator discovery loop, and local non-Docker verification.
|
|
207
|
+
- For the internal evaluator loop, read the installed `backend-evaluation-prompt.md` or `frontend-evaluation-prompt.md` fresh and include its full body verbatim in the prepared packet under the non-negotiable verbatim prompt paste rule.
|
|
171
208
|
- Send issues to the bugfix session in broad human language.
|
|
172
209
|
- Record sessions, issue lists, reports, fixes, verification evidence, and closure decisions in metadata and Beads.
|
|
210
|
+
- Exit only when owner plan-based review issues are fixed, internal evaluator loop has completed, local non-Docker verification has passed, and README/runtime/test surfaces are coherent enough for final evaluation.
|
|
173
211
|
|
|
174
212
|
### Phase 5: Evaluation And Fix Verification
|
|
175
213
|
|
|
176
214
|
- Required skills: `beads-operations`, `developer-session-lifecycle`, `final-evaluation-orchestration`, `evaluation-triage`, `owner-evidence-discipline`, and `report-output-discipline`.
|
|
177
215
|
- Run two strict audit/remediation cycles using evaluator sessions and the active bugfix lane.
|
|
216
|
+
- In each audit cycle, send the complete installed evaluation prompt asset through the exact saved send packet verbatim. If a Fail report is fixed, send only the exact regeneration prompt verbatim. Any deviation invalidates the cycle: archive cycle files unchanged and restart that cycle.
|
|
217
|
+
- Each audit cycle must close with both a rich 150+ line `./.tmp/audit_report-<N>.md` and `./.tmp/audit_report-<N>-fix_check.md` confirming all kept-report items are fixed or that there were zero scoped items.
|
|
178
218
|
- Preserve reports, extract complete issue sets, and route fixes in broad human language.
|
|
179
219
|
- After both audit cycles, close the bugfix lane and start a test-coverage/final-reconciliation lane.
|
|
180
|
-
- Complete only when the coverage/README audit passes with at least 90% test score.
|
|
220
|
+
- Complete only when both Audit Cycle 1 and Audit Cycle 2 are complete with kept audit reports and fix-check reports, the bugfix lane is closed, and the coverage/README audit passes with at least 90% test score.
|
|
181
221
|
- Treat README hard-gate failures, missing true endpoint coverage, missing frontend unit tests for web/fullstack, and missing FE-BE proof as reconciliation work for the active lane before this phase closes.
|
|
182
222
|
|
|
183
223
|
### Phase 6: Final Readiness Decision
|
|
@@ -192,6 +232,7 @@ Use these sequential names as the canonical workflow model. Legacy `P*` names ar
|
|
|
192
232
|
- Route final reconciliation work to the active developer session whenever it is more than a tiny, safe owner-side edit. If the owner makes a minor direct safe fix, send a minimal note to the active developer session describing the changed surface and ask it to inspect/acknowledge before continuing.
|
|
193
233
|
- Use platform-equivalent checks for Android, iOS, desktop, or other native projects.
|
|
194
234
|
- Do not pass readiness with unresolved blocker/high findings, unverified runtime claims, README drift, or known fake behavior.
|
|
235
|
+
- Exit only when all D1-D9 readiness categories are pass/not-applicable/risk-accepted, runtime/test/browser checks pass, and no unresolved blocker/high findings remain.
|
|
195
236
|
|
|
196
237
|
### Phase 7: Submission Packaging
|
|
197
238
|
|
|
@@ -19,10 +19,10 @@ Phase 1 has exactly two worker passes:
|
|
|
19
19
|
- First, send the original prompt plus stack/context information to one general clarification worker. That worker generates `./docs/questions.md` and `../.ai/requirements-breakdown.md`.
|
|
20
20
|
- Second, send the original prompt plus those generated artifacts to one faithfulness review worker. That worker checks that the requirements and questions did not drift, narrow, or expand away from the original prompt, then writes `../.ai/clarification-faithfulness-review.md`.
|
|
21
21
|
|
|
22
|
-
Clarification should:
|
|
23
|
-
- start from the original prompt plus supporting stack/context notes
|
|
24
|
-
- run one bounded general clarification worker using the packaged clarifier-agent-prompt verbatim
|
|
25
|
-
- copy that full clarifier prompt text into the worker message itself rather than telling the worker to open the file
|
|
22
|
+
Clarification should:
|
|
23
|
+
- start from the original prompt plus supporting stack/context notes
|
|
24
|
+
- run one bounded general clarification worker using the packaged clarifier-agent-prompt verbatim—paste its complete body into the worker message, do not describe or summarize
|
|
25
|
+
- copy that full clarifier prompt text into the worker message itself rather than telling the worker to open the file
|
|
26
26
|
- require the worker to output both `./docs/questions.md` and `../.ai/requirements-breakdown.md`
|
|
27
27
|
- treat those 2 files as the clarification artifacts planning depends on
|
|
28
28
|
- extract an approved requirements-and-clarification package from `../.ai/requirements-breakdown.md` plus `./docs/questions.md` before Phase 2
|
|
@@ -37,39 +37,68 @@ It must not become planning, architecture design, execution planning, or conveni
|
|
|
37
37
|
|
|
38
38
|
Do not pad `./docs/questions.md` with AI-inferred missing requirements, speculative feature ideas, generic best-practice questions, or implementation-task prompts. It should contain only genuine business-logic ambiguities, data relationship uncertainties, boundary conditions, contradictions, and accepted resolutions from the original prompt.
|
|
39
39
|
|
|
40
|
+
## Verbatim Prompt Paste Rule
|
|
41
|
+
|
|
42
|
+
Phase 1 must follow the owner-level non-negotiable verbatim prompt paste rule defined in the owner agent (`slopmachine.md` or `slopmachine-claude.md`). That rule requires: read the installed `.md` file fresh with a `read` tool call, then paste its **complete body verbatim** into the subagent message. Do not summarize, describe, shorten, paraphrase, add preface/footer, or send a file path reference.
|
|
43
|
+
|
|
44
|
+
The packaged prompt files for Phase 1 are:
|
|
45
|
+
- `clarifier-agent-prompt.md` — first worker
|
|
46
|
+
- `clarification-faithfulness-review-prompt.md` — faithfulness review worker
|
|
47
|
+
|
|
48
|
+
## Root Metadata Gate
|
|
49
|
+
|
|
50
|
+
## Root Metadata Gate
|
|
51
|
+
|
|
52
|
+
Before any clarification worker runs, the owner must verify task-root `./metadata.json` is populated with the exact original product prompt.
|
|
53
|
+
|
|
54
|
+
Rules:
|
|
55
|
+
- `./metadata.json` is the product metadata file that ships with the task. It must keep only the seven project-fact keys: `prompt`, `project_type`, `frontend_language`, `backend_language`, `database`, `frontend_framework`, and `backend_framework`.
|
|
56
|
+
- `prompt` must contain the original product prompt, exactly enough to anchor design, evaluation, packaging, and session lineage.
|
|
57
|
+
- If the user's intake text contains a prompt block followed by appended stack/context/operator notes, keep only the product prompt in `./metadata.json.prompt` and record the supporting context under `../.ai/startup-context.md` or another owner-private workflow artifact.
|
|
58
|
+
- If `./metadata.json.prompt` is empty, stale, summarized, or mixed with non-prompt operator context, fix it before launching the clarifier.
|
|
59
|
+
- Do not add accepted clarifications, requirements breakdowns, workflow state, phase state, Beads ids, session ids, evaluator paths, or owner-private notes as extra keys in root `./metadata.json`.
|
|
60
|
+
- Accepted clarifications belong in `./docs/questions.md`, `../.ai/requirements-breakdown.md`, the approved clarification package summary in `../.ai/metadata.json`, and Beads comments.
|
|
61
|
+
- `project_type` must be exactly one of the six accepted values: `backend`, `fullstack`, `web`, `android`, `ios`, or `desktop`. Do not use `api`, `spa`, `cli`, `nextjs`, `nuxt`, or any other variant. If the project type becomes clear during clarification, update `project_type` in root metadata. If it is not yet clear, leave it as an empty string until Phase 2 design confirms it.
|
|
62
|
+
- If project type or stack facts become clear during clarification, update only the existing seven project-fact fields in `./metadata.json`; leave unknown fields as empty strings until truthfully known.
|
|
63
|
+
|
|
64
|
+
Phase 1 cannot close if root `./metadata.json.prompt` is missing, stale, or contaminated with non-product workflow/operator text.
|
|
65
|
+
|
|
40
66
|
## Procedure
|
|
41
67
|
|
|
42
68
|
1. **Confirm the inputs.**
|
|
43
69
|
- Keep the original product prompt as the source of truth.
|
|
44
70
|
- Treat supporting stack/context as supporting information unless it materially changes the product contract.
|
|
71
|
+
- Verify and, if needed, correct `./metadata.json.prompt` before launching the clarification worker.
|
|
72
|
+
- Record any metadata correction in `../.ai/metadata.json` and Beads without exposing workflow metadata to implementation sessions.
|
|
45
73
|
|
|
46
|
-
2. **Run the general clarification worker.**
|
|
47
|
-
-
|
|
48
|
-
-
|
|
49
|
-
-
|
|
74
|
+
2. **Run the general clarification worker.**
|
|
75
|
+
- Read the installed `clarifier-agent-prompt.md` file fresh from its asset path using a `read` tool call.
|
|
76
|
+
- Paste that file's **complete body verbatim** into the sent worker message under the non-negotiable verbatim paste rule.
|
|
77
|
+
- After the packaged prompt body, inject only the original prompt and supporting stack/context notes; do not prepend or append a second owner-written clarification contract, and do not tell the worker to read the packaged file itself.
|
|
50
78
|
- Require both `./docs/questions.md` and `../.ai/requirements-breakdown.md` as output.
|
|
51
79
|
- After the worker returns, record both artifact paths in `../.ai/metadata.json` and add a Beads `ARTIFACT:` comment.
|
|
52
80
|
|
|
53
|
-
3. **Review `questions.md` and `../.ai/requirements-breakdown.md` critically.**
|
|
54
|
-
- It
|
|
55
|
-
- It
|
|
56
|
-
- Those requirements
|
|
57
|
-
- It
|
|
58
|
-
- It
|
|
81
|
+
3. **Review `questions.md` and `../.ai/requirements-breakdown.md` critically.**
|
|
82
|
+
- It must extract the core requirements from the prompt explicitly.
|
|
83
|
+
- It must use evaluation-grade extraction depth: business goal, main flows, actors, required surfaces, modules, APIs/jobs/data, security boundaries, mock/fake boundaries, documentation/static-verifiability expectations, test/coverage expectations, frontend state obligations, and FE-BE wiring expectations when applicable.
|
|
84
|
+
- Those requirements must be defined in enough depth that design and planning can rely on them directly.
|
|
85
|
+
- It must explain what later planning could miss if each important requirement is not carried forward explicitly.
|
|
86
|
+
- It must distinguish between explicit prompt requirements, implied but binding requirements, and locked safe defaults where that separation helps later planning.
|
|
59
87
|
- It must end with a planning-miss checklist strong enough to expose details later design/planning commonly underbuild.
|
|
60
|
-
- It
|
|
61
|
-
- It
|
|
62
|
-
- It
|
|
88
|
+
- It must explicitly cover hidden environment and trust-boundary assumptions when the prompt mentions or implies on-prem, intranet, offline, LAN, browser access, auth cookies/tokens, local storage, self-contained deployment, external reachability, or secure/insecure transport.
|
|
89
|
+
- It must cover material ambiguity only.
|
|
90
|
+
- It must preserve prompt faithfulness and avoid convenience narrowing.
|
|
63
91
|
- Each entry must end with a decisive solution.
|
|
64
|
-
- It
|
|
92
|
+
- It must not leak into planning or implementation structure.
|
|
65
93
|
- Reread it once against the original prompt and reject any degradation of implied scope, enforcement, workflow closure, operator/admin behavior, or core requirement meaning.
|
|
66
94
|
- If the file is materially sound and only small wording, ordering, duplication, or overreach cleanup remains, patch `questions.md` directly instead of rerunning the clarifier.
|
|
67
95
|
- If the file is materially weak, convenience-shaped, or still ambiguous, rerun clarification before leaving Phase 1.
|
|
68
96
|
|
|
69
|
-
4. **Run prompt-faithfulness review.**
|
|
97
|
+
4. **Run prompt-faithfulness review.**
|
|
70
98
|
- Launch one short-lived faithfulness review worker.
|
|
71
99
|
- Send the original prompt, the supporting stack/context notes, `../.ai/requirements-breakdown.md`, and `./docs/questions.md` together.
|
|
72
|
-
-
|
|
100
|
+
- Read the installed `clarification-faithfulness-review-prompt.md` file fresh from its asset path.
|
|
101
|
+
- Paste that file's **complete body verbatim** as the review instruction under the non-negotiable verbatim paste rule.
|
|
73
102
|
- Require it to write `../.ai/clarification-faithfulness-review.md`.
|
|
74
103
|
- After the review returns, record the review path and verdict in `../.ai/metadata.json` and add a Beads `ARTIFACT:` or `VERIFY:` comment.
|
|
75
104
|
- If the review finds only small owner-fixable wording or coverage issues, patch `../.ai/requirements-breakdown.md` and `./docs/questions.md` directly.
|
|
@@ -106,6 +135,7 @@ Reject the clarification result if:
|
|
|
106
135
|
## Exit Condition
|
|
107
136
|
|
|
108
137
|
`Phase 1: Clarification` is complete only when:
|
|
138
|
+
- `./metadata.json.prompt` contains the exact original product prompt and root metadata contains only the seven project-fact keys
|
|
109
139
|
- `./docs/questions.md` exists
|
|
110
140
|
- `../.ai/requirements-breakdown.md` exists
|
|
111
141
|
- `../.ai/clarification-faithfulness-review.md` exists
|
|
@@ -31,8 +31,8 @@ Use this skill for startup preflight, session policy, metadata consistency, lane
|
|
|
31
31
|
- Add a Beads `SESSION:` comment for launch/resume/replacement.
|
|
32
32
|
- Add `VERIFY:`, `ISSUE:`, or `HANDOFF:` comments when a turn produces accepted evidence, defects, or a work handoff.
|
|
33
33
|
- Phase 4 starts and uses the dedicated bugfix/fix-check implementation lane for remediation and verification guidance; the original development lane is closed for normal implementation at development completion.
|
|
34
|
-
- Phase 5 uses fresh evaluator sessions for full audits
|
|
35
|
-
-
|
|
34
|
+
- Phase 5 uses fresh evaluator sessions for full audits. Evaluator-session reuse occurs in three cases: (1) fail-regeneration — same session receives only the regeneration prompt after fixes; (2) Partial Pass fix-check — same session verifies all scoped issues are fixed; (3) Pass-with-items fix-check — same session verifies all scoped recommendations are closed.
|
|
35
|
+
- Audit Cycle 1 and Audit Cycle 2 fixes go through the dedicated bugfix lane. After both audit cycles complete, the bugfix lane is closed and a new test-coverage/final-reconciliation lane takes over for coverage/README remediation.
|
|
36
36
|
- Phase 6 reconciliation uses the currently active developer/Claude lane for Docker, runtime, browser, account, `run_tests.sh`, coverage, README, and final readiness fixes unless a new lane is explicitly justified by context limits or isolation risk.
|
|
37
37
|
- If the owner directly changes docs, wrappers, config, cleanup, or light glue, send the active lane a minimal acknowledgement request that names the changed surface and asks it to inspect/confirm before readiness continues.
|
|
38
38
|
|
|
@@ -20,6 +20,8 @@ Use this skill during `Phase 3: Development` before prompting the active develop
|
|
|
20
20
|
|
|
21
21
|
Prompt like a human developer working with an AI coding assistant.
|
|
22
22
|
|
|
23
|
+
Prompt one bounded slice at a time. The preferred unit is one phase-purpose, scaffold, module, work package, or fix batch. At most combine two adjacent tightly coupled slices in one prompt, and only when splitting them would make the work less coherent. Never send all phases, the full private plan, or a start-to-finish workflow packet to the developer/Claude lane.
|
|
24
|
+
|
|
23
25
|
Use direct wording such as:
|
|
24
26
|
- `I checked the user module and found a missing authorization test. Please add that and rerun the relevant tests.`
|
|
25
27
|
- `Continue with the invoice module. Build the create/list/detail flow against the existing product contract and cover the main success and validation paths.`
|
|
@@ -29,7 +31,7 @@ Do not send robotic process language. Do not require a specific response format.
|
|
|
29
31
|
|
|
30
32
|
Do not keep restating visible doc paths in routine follow-up prompts when the same session already knows the project contract. It is fine to say `existing product contract`, `accepted docs`, or simply name the module. Mention exact doc paths only when orienting a new session, resolving confusion, or asking for a final contract check.
|
|
31
33
|
|
|
32
|
-
For larger module slices, group expectations by user/business behavior instead of turning every endpoint, field, and negative case into a long checklist. Ask for real backend-backed behavior, visible UI states, and meaningful success/failure tests, but keep the wording natural.
|
|
34
|
+
For larger module slices, group expectations by user/business behavior instead of turning every endpoint, field, and negative case into a long checklist. Ask for real backend-backed behavior, visible UI states, and meaningful success/failure tests, but keep the wording natural. If a module is too large to explain without becoming a checklist packet, split it into smaller sequential prompts.
|
|
33
35
|
|
|
34
36
|
Example of a good larger module prompt:
|
|
35
37
|
|
|
@@ -61,11 +63,13 @@ Do not say `the review found`, `the evaluation found`, or `the audit found`. The
|
|
|
61
63
|
|
|
62
64
|
3. **Proceed module by module.**
|
|
63
65
|
- Select the next section/module from `./docs/design.md` and the private plan.
|
|
64
|
-
- Prompt the developer using the docs only.
|
|
66
|
+
- Prompt the developer using the docs only, one module/work package at a time by default.
|
|
65
67
|
- Ask for the implementation and the relevant tests/checks for that module.
|
|
68
|
+
- Combine two adjacent modules/work packages only when they share the same user flow or data contract and are easier to verify together.
|
|
66
69
|
|
|
67
70
|
4. **Owner checks after each module.**
|
|
68
71
|
- Inspect changed files manually.
|
|
72
|
+
- Compare behavior against the original product prompt in `./metadata.json`.
|
|
69
73
|
- Compare behavior against `./docs/design.md` and `./docs/api-spec.md`.
|
|
70
74
|
- Privately compare against `../.ai/plan.md` for tests, coverage, discoverability, functionality, and module completeness.
|
|
71
75
|
- Run targeted checks when practical.
|
|
@@ -92,7 +96,7 @@ Also give me the startup commands and the main flows I should expect to exercise
|
|
|
92
96
|
|
|
93
97
|
## Owner Review Checklist
|
|
94
98
|
|
|
95
|
-
For each scaffold/module,
|
|
99
|
+
For each scaffold/module, the owner must verify:
|
|
96
100
|
- changed files are integrated, referenced, and not orphaned
|
|
97
101
|
- implementation matches `./docs/design.md`
|
|
98
102
|
- API/interface behavior matches `./docs/api-spec.md` when applicable
|
|
@@ -53,7 +53,7 @@ When a failed report is regenerated in the same evaluator session:
|
|
|
53
53
|
- reject reports if the last ordinary audit send was not the exact saved send packet content
|
|
54
54
|
- reject reports that are continuation-shaped, fix-only, stale against current files, or contradicted by current repo evidence
|
|
55
55
|
- reject reports that drop required endpoint/surface inventory, hard-gate README review, severity panels, verdict blocks, or finding details expected by the underlying prompt
|
|
56
|
-
- if rejected,
|
|
56
|
+
- if rejected, archive every report or candidate report from the invalid cycle unchanged, record the reason, and restart that audit cycle from a fresh evaluator session using the installed prompt asset and exact saved send packet required by `final-evaluation-orchestration`
|
|
57
57
|
|
|
58
58
|
## Partial Pass Handling
|
|
59
59
|
|
|
@@ -64,25 +64,39 @@ When a failed report is regenerated in the same evaluator session:
|
|
|
64
64
|
- Do not narrow fix-check to Blocker/High issues.
|
|
65
65
|
- The same evaluator session that wrote the kept Partial Pass report performs the fix-check.
|
|
66
66
|
|
|
67
|
+
## Pass With Items Handling
|
|
68
|
+
|
|
69
|
+
- A kept Pass report with any issue, recommendation, caveat, suggestion, action item, or requested change also requires closure.
|
|
70
|
+
- Save the kept Pass report under the same cycle audit report name: `./.tmp/audit_report-1.md` or `./.tmp/audit_report-2.md`.
|
|
71
|
+
- Extract every issue/recommendation/caveat/suggestion/action item/requested change from it.
|
|
72
|
+
- The fix-check scope is the full extracted set.
|
|
73
|
+
- The same evaluator session that wrote the kept Pass report performs the fix-check.
|
|
74
|
+
- Save the fix-check under the fixed cycle path: `./.tmp/audit_report-1-fix_check.md` or `./.tmp/audit_report-2-fix_check.md`.
|
|
75
|
+
- A Pass report with zero scoped items still requires the cycle fix-check report. The fix-check must explicitly confirm that the kept audit report had no scoped issues to close and that the cycle is clean.
|
|
76
|
+
|
|
67
77
|
## Fix-Check Handling
|
|
68
78
|
|
|
69
79
|
- Read the full fix-check report.
|
|
70
80
|
- If every scoped issue is fixed, save/keep the fix-check report.
|
|
71
81
|
- If anything is not fixed or partially fixed, send only the unresolved behavior back to the developer lane in broad human language, then rerun the fix-check in the same evaluator session.
|
|
72
82
|
- The regenerated fix-check must still address the full kept audit issue set, not only the unresolved items that were most recently sent back.
|
|
83
|
+
- Before sending the exact fix-check instruction, provide the same evaluator session with concise developer fix evidence, exact verification results when available, and the exact full audit-scoped issue list from the kept `audit_report-<N>.md`.
|
|
73
84
|
- Reject fix-check reports that narrow the scope, skip low-priority kept issues, perform a broad new audit instead of scoped checking, or use history-exposing language.
|
|
74
85
|
- Do not edit evaluator report text.
|
|
75
86
|
|
|
76
87
|
## Send Packet Validation
|
|
77
88
|
|
|
78
89
|
Before accepting any full audit report:
|
|
79
|
-
- confirm `
|
|
80
|
-
-
|
|
90
|
+
- confirm `prepare_evaluation_send_packet.mjs` was used to build the exact send packet, including {prompt} interpolation and report path insertion
|
|
91
|
+
- record both the installed prompt asset path and the exact saved send packet path
|
|
81
92
|
- read the saved send packet before sending
|
|
82
|
-
- confirm the evaluator received the exact saved send packet content, not a summary, footer, file reference, or
|
|
83
|
-
-
|
|
93
|
+
- confirm the evaluator received the exact saved send packet content, not a summary, footer, file reference, shortened prompt, or owner-authored replacement
|
|
94
|
+
- confirm the saved send packet contains the complete installed evaluation prompt content, with nothing omitted from the installed asset and no owner-added text outside the packet
|
|
95
|
+
- record installed prompt asset path, prepared prompt path, send packet path, report path, and evaluator session id in metadata and Beads
|
|
96
|
+
|
|
97
|
+
If any part cannot be confirmed, reject the report, archive every report or candidate report from the invalid cycle unchanged, and restart that audit cycle from a fresh evaluator session with a valid installed prompt asset plus saved send packet.
|
|
84
98
|
|
|
85
|
-
|
|
99
|
+
For failed-report regeneration, do not build or improvise a new prompt. Use only the exact fail-regeneration prompt from `final-evaluation-orchestration`, verbatim and with no preface, suffix, issue list, fix evidence, or extra wording.
|
|
86
100
|
|
|
87
101
|
## State Updates
|
|
88
102
|
|
|
@@ -7,7 +7,7 @@ description: Phase 5 evaluation/remediation cycles, fix-checks, and coverage/REA
|
|
|
7
7
|
|
|
8
8
|
Use this skill during `Phase 5: Evaluation And Fix Verification`.
|
|
9
9
|
|
|
10
|
-
This phase is strict. Follow the cycle rules exactly.
|
|
10
|
+
This phase is strict. Follow the cycle rules exactly. If another section appears to conflict with the non-negotiable prompt block below, the non-negotiable prompt block wins.
|
|
11
11
|
|
|
12
12
|
## Core Shape
|
|
13
13
|
|
|
@@ -18,16 +18,47 @@ Phase 5 has three parts:
|
|
|
18
18
|
|
|
19
19
|
The existing bugfix lane from Phase 4 remains active through Audit Cycle 1 and Audit Cycle 2. After both audit cycles complete and the 4 required audit reports exist, close that bugfix lane and start a new test-coverage/final-reconciliation lane.
|
|
20
20
|
|
|
21
|
-
## Prompt
|
|
21
|
+
## Non-Negotiable Full-Audit Prompt Block
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
-
|
|
23
|
+
This block controls every full audit and fail-regeneration evaluator send. Do not reinterpret it from later sections.
|
|
24
|
+
|
|
25
|
+
Only two evaluator prompts are allowed in the full-audit/fail-regeneration cycle:
|
|
26
|
+
|
|
27
|
+
1. **Initial full audit prompt**
|
|
28
|
+
- Determine project type.
|
|
29
|
+
- Use and record both the installed full evaluation prompt asset and the generated send packet.
|
|
30
|
+
- The installed asset is the source prompt, located under the installed SlopMachine assets directory (the same directory where `backend-evaluation-prompt.md` and `frontend-evaluation-prompt.md` were installed by setup).
|
|
31
|
+
- Use `backend-evaluation-prompt.md` for backend, fullstack, API, mobile, desktop, CLI, data, or any non-pure-frontend project.
|
|
32
|
+
- Use `frontend-evaluation-prompt.md` for pure frontend projects.
|
|
33
|
+
- Prepare the send packet with `prepare_evaluation_send_packet.mjs` after prompt interpolation and exact output path insertion.
|
|
34
|
+
- The installed evaluation prompt content must be preserved word-for-word with nothing omitted. The evaluator must receive the whole long prompt packet, not a summary, not a path, not a shortened excerpt, and not an owner-authored substitute. If the installed prompt is 400+ lines, all 400+ lines must be present in the packet sent to the evaluator.
|
|
35
|
+
- Read the complete saved send packet before sending.
|
|
36
|
+
- Paste/send the complete saved send packet into the evaluator subagent word-for-word, with nothing added, removed, summarized, paraphrased, or appended.
|
|
37
|
+
- The owner must not add a preface, footer, clarification, instruction, file reference substitute, or any extra sentence.
|
|
38
|
+
|
|
39
|
+
2. **Fail-regeneration prompt**
|
|
40
|
+
- If a full audit report is Fail, archive the failed report unchanged, extract all issues, fix them through the active bugfix lane, and owner-verify the fixes.
|
|
41
|
+
- Return to the same evaluator session that produced the failed report.
|
|
42
|
+
- Send exactly the regeneration prompt below, verbatim, with absolutely nothing added, removed, summarized, paraphrased, prefaced, suffixed, or otherwise modified.
|
|
43
|
+
|
|
44
|
+
```text
|
|
45
|
+
Regenerate the audit on a new file. Check, I fixed every issues you identified. but don't make it obvious that it is a regeneration, you shouldn't mention that the previous issues are fixed on the current audit, just put the new updated verdict and only mention remaining or newly found issues.
|
|
46
|
+
|
|
47
|
+
Refrain from using words like "Remaining, still, now", and the likes that may expose this current audit is a regen.
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
No other full-audit or fail-regeneration prompt is allowed. In particular, the owner must not:
|
|
51
|
+
- shorten the installed evaluation prompt;
|
|
52
|
+
- send only a path to the prompt instead of the complete prompt packet;
|
|
53
|
+
- add local context outside the prepared packet;
|
|
54
|
+
- append rerun footers or status notes;
|
|
55
|
+
- rewrite the regeneration prompt;
|
|
56
|
+
- combine the regeneration prompt with issue summaries, fix evidence, or extra report instructions;
|
|
57
|
+
- replace a fail-regeneration send with a different custom prompt.
|
|
58
|
+
|
|
59
|
+
If any deviation is found from either allowed prompt send, the current audit cycle is invalid. Archive every report or candidate report generated during that invalid cycle unchanged under `../.ai/archive/`, record the restart reason in metadata and Beads, then restart that audit cycle from a fresh evaluator session using the installed asset and exact saved send packet. Do not patch, rename, or reuse invalid-cycle reports as kept reports.
|
|
60
|
+
|
|
61
|
+
Record the installed prompt asset path, prepared prompt path, exact send packet path, evaluator session id, and report path in metadata and Beads. Treat evaluator reports as immutable once written.
|
|
31
62
|
|
|
32
63
|
## Report Paths And Names
|
|
33
64
|
|
|
@@ -40,6 +71,15 @@ Use task-local report paths under `./.tmp/`. The kept report paths are:
|
|
|
40
71
|
|
|
41
72
|
Do not write final kept reports under `../.tmp` or `./tmp`.
|
|
42
73
|
|
|
74
|
+
Cycle naming is fixed:
|
|
75
|
+
- Audit Cycle 1 kept full audit report: `./.tmp/audit_report-1.md`.
|
|
76
|
+
- Audit Cycle 1 fix-check report, when required: `./.tmp/audit_report-1-fix_check.md`.
|
|
77
|
+
- Audit Cycle 2 kept full audit report: `./.tmp/audit_report-2.md`.
|
|
78
|
+
- Audit Cycle 2 fix-check report, when required: `./.tmp/audit_report-2-fix_check.md`.
|
|
79
|
+
- Coverage/README report: `./.tmp/test_coverage_and_readme_audit_report.md`.
|
|
80
|
+
|
|
81
|
+
A cycle fix-check is required for every kept full audit report, including Pass reports with zero issues. The fix-check report must confirm that all issues from the kept audit report are fixed; when the kept audit report has zero scoped issues, the fix-check must explicitly state that the kept audit report had no scoped issues to close and that the cycle is clean.
|
|
82
|
+
|
|
43
83
|
Archive failed/superseded reports unchanged under `../.ai/archive/`.
|
|
44
84
|
|
|
45
85
|
## Audit Cycle Procedure
|
|
@@ -50,9 +90,10 @@ Run this procedure twice: once for Audit Cycle 1 and once for Audit Cycle 2.
|
|
|
50
90
|
|
|
51
91
|
- Start a new `evaluator` subagent session.
|
|
52
92
|
- Save its session id.
|
|
53
|
-
- Send the exact saved evaluator send packet verbatim.
|
|
93
|
+
- Send the exact saved evaluator send packet verbatim under the non-negotiable full-audit prompt block.
|
|
54
94
|
- Require the report to be written to the current cycle's candidate report path.
|
|
55
95
|
- Reject the report if you cannot confirm the last evaluator send used the exact saved send packet content.
|
|
96
|
+
- Reject and restart the cycle if you cannot cite both the installed prompt asset path and the exact saved send packet path used for that evaluator send.
|
|
56
97
|
|
|
57
98
|
### 2. If The Report Is Fail
|
|
58
99
|
|
|
@@ -63,16 +104,10 @@ Run this procedure twice: once for Audit Cycle 1 and once for Audit Cycle 2.
|
|
|
63
104
|
- Convert the issue list into broad human language.
|
|
64
105
|
- Send the full issue set to the existing bugfix lane without file/line details, report names, or evaluator language.
|
|
65
106
|
- Do not run a fix-check for a Fail report. First fix every issue from the failed report and verify the fixes owner-side.
|
|
66
|
-
- After the bugfix lane fixes every issue from the failed report and the owner verifies, return to the same evaluator session and send
|
|
67
|
-
|
|
68
|
-
```text
|
|
69
|
-
Regenerate the audit on a new file. Check, I fixed every issues you identified. but don't make it obvious that it is a regeneration, you shouldn't mention that the previous issues are fixed on the current audit, just put the new updated verdict and only mention remaining or newly found issues.
|
|
70
|
-
|
|
71
|
-
Refrain from using words like "Remaining, still, now", and the likes that may expose this current audit is a regen.
|
|
72
|
-
```
|
|
107
|
+
- After the bugfix lane fixes every issue from the failed report and the owner verifies, return to the same evaluator session and send only the exact fail-regeneration prompt from the non-negotiable full-audit prompt block.
|
|
73
108
|
|
|
74
109
|
- Validate the regenerated report before using it.
|
|
75
|
-
- If the regenerated report is less than 150 lines or materially less complete than the archived report in content size/depth, reject it and
|
|
110
|
+
- If the regenerated report is less than 150 lines or materially less complete than the archived report in content size/depth, reject it as invalid and repeat the fail-remediation/regeneration path using only the exact fail-regeneration prompt from the non-negotiable block after fixes are verified.
|
|
76
111
|
- Reject the regenerated report if it is continuation-shaped, fix-only, materially omits required sections/tables/verdict panels/evidence style, or appears stale against current repo state.
|
|
77
112
|
- If the regenerated report is reasonably similar in depth and structure, proceed with its verdict.
|
|
78
113
|
- If the regenerated report is still Fail, archive it unchanged, extract every issue again, fix every issue again through the bugfix lane, owner-verify again, then return to the same evaluator session and send the same exact regeneration instruction verbatim again.
|
|
@@ -103,15 +138,44 @@ Refrain from using words like "Remaining, still, now", and the likes that may ex
|
|
|
103
138
|
|
|
104
139
|
- Keep the report as the cycle's audit report.
|
|
105
140
|
- Save it under the cycle's kept report path in `./.tmp/`.
|
|
106
|
-
- If it contains any issue or
|
|
107
|
-
-
|
|
141
|
+
- If it contains any issue, recommendation, caveat, suggestion, action item, or requested change, treat those as the cycle issue set.
|
|
142
|
+
- Send the full issue set to the existing bugfix lane in broad human language, then owner-verify the fixes.
|
|
143
|
+
- Run the fix-check in the same evaluator session that wrote the kept Pass report.
|
|
144
|
+
- The fix-check must address every scoped issue/recommendation/caveat/suggestion/action item/requested change from the kept Pass report.
|
|
145
|
+
- Save the fix-check report as:
|
|
146
|
+
- Cycle 1: `./.tmp/audit_report-1-fix_check.md`
|
|
147
|
+
- Cycle 2: `./.tmp/audit_report-2-fix_check.md`
|
|
148
|
+
- If the fix-check says any item is only partially fixed or not fixed, send those items back to the bugfix lane, then rerun the fix-check in the same evaluator session against the whole kept report issue set.
|
|
149
|
+
- If it contains no issues, recommendations, caveats, suggestions, action items, or requested changes, run the same-session cycle fix-check anyway; the fix-check must state that the kept audit report had zero scoped items to close and that the cycle is clean.
|
|
150
|
+
|
|
151
|
+
### 5. Cycle Completion Validation
|
|
152
|
+
|
|
153
|
+
Before a cycle can close, validate the whole cycle as a hard gate. If any item fails, archive every candidate/kept/fix-check report produced in that cycle unchanged under `../.ai/archive/`, record the reason, and restart that audit cycle from a fresh evaluator session using the non-negotiable full-audit prompt block.
|
|
154
|
+
|
|
155
|
+
Required for each cycle:
|
|
156
|
+
- the installed evaluation prompt asset path is recorded and matches the project type;
|
|
157
|
+
- the exact saved send packet path is recorded;
|
|
158
|
+
- the full saved send packet was read before send and sent word-for-word with no owner additions, omissions, summaries, path-only substitutions, or footers;
|
|
159
|
+
- if the cycle had any Fail report, the failed report was archived unchanged, fixes were verified owner-side, and the exact fail-regeneration prompt was sent word-for-word with no owner additions, omissions, summaries, issue lists, fix evidence, or footers;
|
|
160
|
+
- the kept audit report exists at `./.tmp/audit_report-<N>.md`;
|
|
161
|
+
- the kept audit report is rich and complete: at least 150 lines and not materially shallower than the installed prompt's required output structure;
|
|
162
|
+
- the kept audit report includes the required verdict, scope/boundary, prompt/repository mapping, section review or blocker/high panel as applicable, issues/suggestions or explicit no-issue statement, security/data-risk review where applicable, and test/logging/coverage sections required by the installed prompt;
|
|
163
|
+
- the cycle fix-check report exists at `./.tmp/audit_report-<N>-fix_check.md`;
|
|
164
|
+
- the cycle fix-check report confirms every issue/recommendation/caveat/suggestion/action item/requested change from the kept audit report is fixed, or explicitly confirms the kept audit report had zero scoped items to close;
|
|
165
|
+
- the fix-check report does not perform a broader new audit and does not use history-exposing comparison language.
|
|
166
|
+
|
|
167
|
+
No audit cycle is complete without both `./.tmp/audit_report-<N>.md` and `./.tmp/audit_report-<N>-fix_check.md` passing this validation gate.
|
|
108
168
|
|
|
109
169
|
## Fix-Check Prompt
|
|
110
170
|
|
|
111
|
-
Use this exact fix-check instruction after a kept Partial Pass report has been fixed
|
|
171
|
+
Use this exact fix-check instruction after a kept Pass or Partial Pass report with any scoped issue/recommendation/caveat/suggestion/action item/requested change has been fixed. Send it verbatim to the same evaluator session after providing concise developer fix evidence, exact verification results when available, and the exact full audit-scoped issue list from the kept `audit_report-<N>.md`:
|
|
112
172
|
|
|
113
173
|
```text
|
|
114
|
-
|
|
174
|
+
Only confirm whether those exact earlier items are fixed; do not perform a broader new review.
|
|
175
|
+
|
|
176
|
+
The follow-up report must describe each scoped issue's current status, current evidence, and any important verification caveats. It must not describe issues as `resolved`, `remaining`, `still open`, `no longer existing`, `left`, or compare against prior audit history.
|
|
177
|
+
|
|
178
|
+
Write the follow-up report to `./.tmp/audit_report-<N>-fix_check.md`.
|
|
115
179
|
```
|
|
116
180
|
|
|
117
181
|
Do not allow fix-check scope to shrink. It must cover all issues from the kept audit report.
|
|
@@ -136,9 +200,9 @@ I found several issues that need cleanup. The auth behavior still has security g
|
|
|
136
200
|
|
|
137
201
|
Phase 5 cannot move to coverage/README reconciliation until both cycles are complete and these reports exist:
|
|
138
202
|
- `./.tmp/audit_report-1.md`
|
|
139
|
-
- `./.tmp/audit_report-1-fix_check.md`
|
|
203
|
+
- `./.tmp/audit_report-1-fix_check.md`
|
|
140
204
|
- `./.tmp/audit_report-2.md`
|
|
141
|
-
- `./.tmp/audit_report-2-fix_check.md`
|
|
205
|
+
- `./.tmp/audit_report-2-fix_check.md`
|
|
142
206
|
|
|
143
207
|
Once both cycles are complete:
|
|
144
208
|
- close the existing bugfix lane
|
|
@@ -76,9 +76,9 @@ Purpose:
|
|
|
76
76
|
- send consolidated issue batches to the bugfix lane in human language
|
|
77
77
|
|
|
78
78
|
Procedure:
|
|
79
|
-
1. Prepare the evaluator prompt packet using `
|
|
80
|
-
2.
|
|
81
|
-
3.
|
|
79
|
+
1. Prepare the evaluator prompt packet using `prepare_evaluation_send_packet.mjs` based on project type, ensuring the installed prompt file body is included verbatim in the packet under the owner-level verbatim prompt paste rule.
|
|
80
|
+
2. The installed asset is `backend-evaluation-prompt.md` for backend/fullstack/mixed/non-pure-frontend work.
|
|
81
|
+
3. The installed asset is `frontend-evaluation-prompt.md` for pure frontend work.
|
|
82
82
|
4. Start one isolated evaluator subagent session.
|
|
83
83
|
5. Send the prepared packet and require a report file under `../.ai/internal-verification/` or another stable internal path.
|
|
84
84
|
6. Archive each generated report unchanged.
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: p8-readiness-reconciliation
|
|
3
|
+
description: Phase 6 final readiness reconciliation and issue classification after Phase 5.
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# Phase 6 Readiness Reconciliation
|
|
2
7
|
|
|
3
8
|
Use this skill for final readiness decision and issue classification after Phase 5.
|
|
@@ -31,6 +36,7 @@ Use these D1-D9 buckets for major issue classification:
|
|
|
31
36
|
- Partial Pass only if residual risks are explicit, bounded, and user-accepted.
|
|
32
37
|
- Fail if core prompt-fit, security, runtime/test, delivery credibility, or evidence integrity remains materially broken.
|
|
33
38
|
- Never imply unrun verification passed.
|
|
39
|
+
- A check is "not applicable" only when the project type genuinely cannot support it (e.g. no browser UI for a pure-backend API) and the reason is user-confirmed. Cost, convenience, or time pressure are not valid not-applicable reasons — route the failing check to the active developer/Claude lane instead.
|
|
34
40
|
|
|
35
41
|
## Required Final Checks
|
|
36
42
|
|
|
@@ -48,7 +54,7 @@ Use these D1-D9 buckets for major issue classification:
|
|
|
48
54
|
- If `docker compose up --build`, native/platform startup, browser/API manual checks, account/seeded-value checks, or `./repo/run_tests.sh` fails, do not move to packaging.
|
|
49
55
|
- Route the failure to the currently active developer/Claude implementation lane in broad human language: describe the failing behavior, command, and user-visible/runtime impact without exposing evaluator or owner-private mechanics.
|
|
50
56
|
- After the lane reports a fix, the owner verifies the changed surface and reruns the failed check.
|
|
51
|
-
- Repeat fix, verify, and rerun until the check is green, not applicable
|
|
57
|
+
- Repeat fix, verify, and rerun until the check is green, demonstrably not applicable to the project type and confirmed by the user, or explicitly risk-accepted by the user.
|
|
52
58
|
- Record every failed command, routed issue, fix acknowledgement, rerun result, and final decision in metadata and Beads.
|
|
53
59
|
|
|
54
60
|
## Owner Direct Fixes
|
|
@@ -39,11 +39,13 @@ Phase 2 establishes the primary developer session and produces the accepted plan
|
|
|
39
39
|
- Do not reveal hidden paths or workflow mechanics.
|
|
40
40
|
- Explain that these are accepted clarifications and requirements to use for design.
|
|
41
41
|
|
|
42
|
-
3. Create `./docs/design.md`.
|
|
43
|
-
-
|
|
42
|
+
3. Create `./docs/design.md`.
|
|
43
|
+
- Read the installed `phase-1-design-prompt.md` fresh from its asset path.
|
|
44
|
+
- Paste its full body verbatim into the developer message under the non-negotiable verbatim prompt paste rule. Do not describe, summarize, or tell the developer to read the file path.
|
|
45
|
+
- Tell the developer to fill the design template already seeded at `./docs/design.md` (the template was created during `slopmachine init`). Do not paste the template file body — it is already in the workspace.
|
|
44
46
|
- The design must be a true product/system design, not an execution plan.
|
|
45
|
-
-
|
|
46
|
-
- It
|
|
47
|
+
- The design must define product behavior, actors, flows, modules, data, security, UI/API surfaces, assumptions, and verification strategy at design level.
|
|
48
|
+
- It must not become a step-by-step coding checklist.
|
|
47
49
|
- When the design is returned, record the artifact path and Claude turn result in metadata and Beads.
|
|
48
50
|
|
|
49
51
|
4. Owner reviews and cleans the design.
|
|
@@ -68,10 +70,11 @@ Phase 2 establishes the primary developer session and produces the accepted plan
|
|
|
68
70
|
- The owner must delegate creation of `../.ai/plan.md` to one general owner-side planning subagent.
|
|
69
71
|
- Do not ask Claude/developer implementation lanes to create, edit, review, or know about `../.ai/plan.md`.
|
|
70
72
|
- Provide original prompt, stack/context, accepted questions, requirements breakdown, design, and API spec.
|
|
71
|
-
|
|
72
|
-
- The general subagent must
|
|
73
|
-
|
|
74
|
-
|
|
73
|
+
- The general subagent must receive the complete body of the packaged `phase-2-execution-planning-prompt.md` as its instruction prompt, pasted verbatim into the sent message.
|
|
74
|
+
- The general subagent must receive the complete body of the packaged `phase-2-plan-template.md` as the required structure for `../.ai/plan.md`, pasted verbatim into the sent message.
|
|
75
|
+
- Require output to `../.ai/plan.md` and `../.ai/test-coverage.md` when useful.
|
|
76
|
+
- Record private plan and coverage artifact paths in metadata and Beads after the subagent returns.
|
|
77
|
+
- Ensure the private plan can be executed as small sequential developer prompts. Reject plans that require dumping multiple phases or the whole delivery contract into a single developer/Claude prompt.
|
|
75
78
|
|
|
76
79
|
8. Owner accepts or rejects the planning package.
|
|
77
80
|
- Use `planning-gate`.
|
|
@@ -12,7 +12,7 @@ Use this skill only during Phase 8 Retrospective, after Phase 7 Submission Packa
|
|
|
12
12
|
- inspect what happened across the whole workflow run
|
|
13
13
|
- identify what caused churn, waste, late defects, or preventable corrections
|
|
14
14
|
- capture lessons that should improve future runs
|
|
15
|
-
- write package-specific retrospective files under
|
|
15
|
+
- write package-specific retrospective files under the installed SlopMachine assets directory (`<asset-root>/retrospectives/`)
|
|
16
16
|
|
|
17
17
|
## Phase role
|
|
18
18
|
|
|
@@ -26,7 +26,7 @@ Use this skill only during Phase 8 Retrospective, after Phase 7 Submission Packa
|
|
|
26
26
|
|
|
27
27
|
Write run-scoped retrospective files under:
|
|
28
28
|
|
|
29
|
-
-
|
|
29
|
+
- `<asset-root>/retrospectives/`
|
|
30
30
|
|
|
31
31
|
Preferred filenames:
|
|
32
32
|
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: submission-packaging
|
|
3
|
+
description: Phase 7 submission packaging, package-boundary validation, and final closure.
|
|
4
|
+
---
|
|
5
|
+
|
|
1
6
|
# Submission Packaging
|
|
2
7
|
|
|
3
8
|
Use this skill for Phase 7 submission packaging and final closure.
|
|
@@ -49,7 +54,8 @@ Packaging must reject or remove stale workflow notes and scratch execution artif
|
|
|
49
54
|
## Required `.tmp` Report Shape
|
|
50
55
|
|
|
51
56
|
- `.tmp/` must contain the kept immutable evaluator reports and fix-check reports required by the evaluation phase.
|
|
52
|
-
- Normal 2-audit-session path must end with `audit_report-1.md`, `audit_report-
|
|
57
|
+
- Normal 2-audit-session path must end with `audit_report-1.md`, `audit_report-1-fix_check.md`, `audit_report-2.md`, `audit_report-2-fix_check.md`, and `test_coverage_and_readme_audit_report.md`.
|
|
58
|
+
- A cycle fix-check file is never omitted. Even a Pass report with zero scoped issues requires a fix-check report stating that there were no scoped issues to close.
|
|
53
59
|
- Do not leave archived failed reports, stale report variants, numbered coverage variants, owner reconciliation notes, or superseded reports in final `.tmp/`; archived lineage belongs under `../.ai/archive/`.
|
|
54
60
|
- Read the final coverage/README report holistically as an acceptance signal and reconcile any repo/README/docs mismatch before closing packaging.
|
|
55
61
|
|
|
@@ -91,6 +97,7 @@ Do not run broad Docker prune commands that can affect unrelated projects.
|
|
|
91
97
|
## Metadata And Naming
|
|
92
98
|
|
|
93
99
|
- `./metadata.json` must truthfully describe the delivered project and contain only these seven project-fact keys: `prompt`, `project_type`, `frontend_language`, `backend_language`, `database`, `frontend_framework`, and `backend_framework`.
|
|
100
|
+
- `prompt` in `./metadata.json` must be the original product prompt captured during Phase 1, not a summary, clarified rewrite, workflow note, or prompt-plus-operator-context dump.
|
|
94
101
|
- Normalize `project_type` to exactly one of the six accepted task classifications: `backend`, `fullstack`, `web`, `android`, `ios`, or `desktop`.
|
|
95
102
|
- If a task/question id exists, use that exact id for final deliverable/archive naming without adding an extra `ID-` prefix.
|
|
96
103
|
- Record the package-root manifest: workflow root, task root, package root, docs path, `.tmp` path, separate session handoff path if present, and any explicit validation exceptions.
|
|
@@ -50,6 +50,8 @@ Use the provided plan template.
|
|
|
50
50
|
|
|
51
51
|
`../.ai/plan.md` must be actionable enough to support one clean human implementation prompt at a time without exposing this file.
|
|
52
52
|
|
|
53
|
+
The plan must be sequenced so the owner can prompt the developer/Claude lane one bounded slice at a time. Prefer one work package per prompt. Mark any pair that should be sent together only when two adjacent slices are tightly coupled and easier to verify together. Do not create a plan that requires sending all phases, all modules, or the full delivery workflow to the implementation lane at once.
|
|
54
|
+
|
|
53
55
|
`../.ai/test-coverage.md`, when written, should summarize planned coverage by module, API/interface, UI flow, risk, and final verification need.
|
|
54
56
|
|
|
55
57
|
If the design or API spec has a material contradiction, record it as a planning exception instead of silently rewriting the contract.
|
|
@@ -181,9 +181,11 @@ For each module, acceptance requires:
|
|
|
181
181
|
|
|
182
182
|
Translate these into human prompts; do not paste this section verbatim.
|
|
183
183
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
|
184
|
+
Each row should represent one bounded prompt by default. Mark a combined prompt only when two adjacent rows are tightly coupled and should be implemented/verified together. Never combine all phases, the full plan, or the whole delivery into one developer/Claude prompt.
|
|
185
|
+
|
|
186
|
+
| Sequence | Human prompt intent | Visible context to mention | Expected completion report | Combine with adjacent row? |
|
|
187
|
+
|---|---|---|---|---|
|
|
188
|
+
| 1 | | | | no |
|
|
187
189
|
|
|
188
190
|
## 13. Plan Closure Checklist
|
|
189
191
|
|
|
@@ -205,13 +205,9 @@ Bash wrapper that invokes `claude_wait_for_rate_limit_reset.mjs` through Node.
|
|
|
205
205
|
|
|
206
206
|
## Non-Claude Workflow Helpers
|
|
207
207
|
|
|
208
|
-
### `prepare_evaluation_prompt.mjs`
|
|
209
|
-
|
|
210
|
-
Builds an owner-side prepared evaluation prompt under workflow-private `.ai` state from a task root. Use `--report-path ./.tmp/<report>.md` to append an owner-required exact report path without editing the canonical prompt text.
|
|
211
|
-
|
|
212
208
|
### `prepare_evaluation_send_packet.mjs`
|
|
213
209
|
|
|
214
|
-
Builds the exact saved evaluator-send packet for
|
|
210
|
+
Builds the exact saved evaluator-send packet for evaluation workflows from a task root. Interpolates `{prompt}` from `./metadata.json`, appends a required report path, and writes the complete packet to workflow-private `.ai/`. Use `--report-path ./.tmp/<report>.md` to append an owner-required exact report path without editing the canonical prompt text. This is the single consolidated script for all evaluation prompt preparation; use it in Phase 4 internal evaluator loops and Phase 5 audit cycles.
|
|
215
211
|
|
|
216
212
|
### `prepare_strict_audit_workspace.mjs`
|
|
217
213
|
|
|
@@ -60,7 +60,7 @@ try {
|
|
|
60
60
|
|
|
61
61
|
const workflowRoot = path.dirname(taskRoot)
|
|
62
62
|
const metadataPath = path.join(taskRoot, 'metadata.json')
|
|
63
|
-
const defaultOutputPath = path.join(workflowRoot, '.ai', `
|
|
63
|
+
const defaultOutputPath = path.join(workflowRoot, '.ai', `prepared-${path.basename(promptFile)}`)
|
|
64
64
|
|
|
65
65
|
let promptText = await fs.readFile(promptFile, 'utf8')
|
|
66
66
|
|
package/package.json
CHANGED
package/src/constants.js
CHANGED
|
@@ -69,7 +69,6 @@ export const REQUIRED_SLOPMACHINE_FILES = [
|
|
|
69
69
|
"utils/convert_ai_session.py",
|
|
70
70
|
"utils/package_claude_session.mjs",
|
|
71
71
|
"utils/analyze_claude_project_dir.mjs",
|
|
72
|
-
"utils/prepare_evaluation_prompt.mjs",
|
|
73
72
|
"utils/prepare_evaluation_send_packet.mjs",
|
|
74
73
|
"utils/prepare_strict_audit_workspace.mjs",
|
|
75
74
|
"utils/run_with_timeout.mjs",
|
package/src/init.js
CHANGED
|
@@ -628,30 +628,23 @@ async function createRepoStructure(workflowRoot, taskRoot, runtimeAssetRoot, age
|
|
|
628
628
|
run_id: randomUUID(),
|
|
629
629
|
current_phase: initialPhase,
|
|
630
630
|
awaiting_human: false,
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
next_develop_session_number: 1,
|
|
649
|
-
next_bugfix_session_number: 1,
|
|
650
|
-
packaging_completed: false,
|
|
651
|
-
claude_live_root: '.ai/claude-live',
|
|
652
|
-
bootstrap_mode: options.adoptExisting ? 'adopt' : 'new',
|
|
653
|
-
requested_start_phase: options.requestedStartPhase,
|
|
654
|
-
}, null, 2)}\n`, 'utf8')
|
|
631
|
+
evaluation_prompt_kind: null,
|
|
632
|
+
active_evaluator_session_id: null,
|
|
633
|
+
task_root: 'task',
|
|
634
|
+
evaluation_reports_root: 'task/.tmp',
|
|
635
|
+
developer_sessions: [],
|
|
636
|
+
developer_rulebook_file: developerRulebookFile,
|
|
637
|
+
current_developer_lane: null,
|
|
638
|
+
active_developer_session_id: null,
|
|
639
|
+
primary_develop_session_id: null,
|
|
640
|
+
latest_develop_session_id: null,
|
|
641
|
+
next_develop_session_number: 1,
|
|
642
|
+
next_bugfix_session_number: 1,
|
|
643
|
+
packaging_completed: false,
|
|
644
|
+
claude_live_root: '.ai/claude-live',
|
|
645
|
+
bootstrap_mode: options.adoptExisting ? 'adopt' : 'new',
|
|
646
|
+
requested_start_phase: options.requestedStartPhase,
|
|
647
|
+
}, null, 2)}\n`, 'utf8')
|
|
655
648
|
}
|
|
656
649
|
|
|
657
650
|
await createInitialPhaseArtifacts(taskRoot, workflowRoot, runtimeAssetRoot, options)
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
import fs from 'node:fs/promises'
|
|
4
|
-
import path from 'node:path'
|
|
5
|
-
|
|
6
|
-
import { parseArgs, printUsageAndExit, readJsonFile, writeFileIfNeeded } from './claude_worker_common.mjs'
|
|
7
|
-
|
|
8
|
-
const argv = parseArgs(process.argv.slice(2))
|
|
9
|
-
|
|
10
|
-
if (argv.help === '1') {
|
|
11
|
-
printUsageAndExit(`Usage:
|
|
12
|
-
node ~/slopmachine/utils/prepare_evaluation_prompt.mjs --task-root <task-root> --prompt-file <template-file> [--mode <initial|rerun>] [--report-path <./.tmp/report.md>] [--output-file <prepared-file>]
|
|
13
|
-
`)
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
const SAME_SESSION_RERUN_FOOTER = 'Check the entire current project again against the full prompt above and regenerate the complete report from scratch. Save the report to the same required path. Make the report read as a fresh standalone audit of the current repo state and do not mention or imply any previous run, rerun, regeneration, prior inspection, earlier fixes, or earlier remaining items.\n'
|
|
17
|
-
|
|
18
|
-
function fail(message) {
|
|
19
|
-
process.stderr.write(`${message}\n`)
|
|
20
|
-
process.exit(1)
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
try {
|
|
24
|
-
const taskRoot = argv['task-root'] ? path.resolve(argv['task-root']) : null
|
|
25
|
-
const promptFile = argv['prompt-file'] ? path.resolve(argv['prompt-file']) : null
|
|
26
|
-
const outputFile = argv['output-file'] ? path.resolve(argv['output-file']) : null
|
|
27
|
-
const reportPath = argv['report-path'] ? String(argv['report-path']).trim() : ''
|
|
28
|
-
const mode = argv.mode ? String(argv.mode).trim().toLowerCase() : 'initial'
|
|
29
|
-
|
|
30
|
-
if (!taskRoot) {
|
|
31
|
-
fail('Missing --task-root')
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
if (!promptFile) {
|
|
35
|
-
fail('Missing --prompt-file')
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
if (mode !== 'initial' && mode !== 'rerun') {
|
|
39
|
-
fail(`Unsupported --mode '${mode}'. Use initial or rerun.`)
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
if (reportPath && (!reportPath.startsWith('./.tmp/') || !reportPath.endsWith('.md'))) {
|
|
43
|
-
fail('--report-path must be a markdown path under ./.tmp/, for example ./.tmp/audit_report-1.md')
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
const workflowRoot = path.dirname(taskRoot)
|
|
47
|
-
const metadataPath = path.join(taskRoot, 'metadata.json')
|
|
48
|
-
const defaultOutputPath = path.join(workflowRoot, '.ai', `prepared-${path.basename(promptFile)}`)
|
|
49
|
-
|
|
50
|
-
let promptText = await fs.readFile(promptFile, 'utf8')
|
|
51
|
-
|
|
52
|
-
if (promptText.includes('{prompt}')) {
|
|
53
|
-
const metadata = await readJsonFile(metadataPath)
|
|
54
|
-
const projectPrompt = typeof metadata?.prompt === 'string' ? metadata.prompt : ''
|
|
55
|
-
if (!projectPrompt.trim()) {
|
|
56
|
-
fail(`Missing non-empty metadata.json prompt at ${metadataPath} for a prompt template that requires {prompt}.`)
|
|
57
|
-
}
|
|
58
|
-
promptText = promptText.replaceAll('{prompt}', projectPrompt)
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
if (reportPath) {
|
|
62
|
-
promptText = promptText.endsWith('\n')
|
|
63
|
-
? `${promptText}\nOwner-required report path: write/save the final report exactly to \`${reportPath}\`.\n`
|
|
64
|
-
: `${promptText}\n\nOwner-required report path: write/save the final report exactly to \`${reportPath}\`.\n`
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
const unresolvedPlaceholders = [...promptText.matchAll(/\{[a-z_]+\}/g)].map((match) => match[0])
|
|
68
|
-
if (unresolvedPlaceholders.length > 0) {
|
|
69
|
-
fail(`Unsupported unresolved prompt placeholders remain: ${[...new Set(unresolvedPlaceholders)].join(', ')}`)
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
if (mode === 'rerun') {
|
|
73
|
-
promptText = promptText.endsWith('\n') ? `${promptText}\n${SAME_SESSION_RERUN_FOOTER}` : `${promptText}\n\n${SAME_SESSION_RERUN_FOOTER}`
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
const resolvedOutputPath = outputFile || defaultOutputPath
|
|
77
|
-
await writeFileIfNeeded(resolvedOutputPath, promptText)
|
|
78
|
-
process.stdout.write(`${resolvedOutputPath}\n`)
|
|
79
|
-
} catch (error) {
|
|
80
|
-
fail(error instanceof Error ? error.message : String(error))
|
|
81
|
-
}
|