theslopmachine 1.0.13 → 1.0.22
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/developer.md +6 -7
- package/assets/agents/slopmachine-claude.md +66 -9
- package/assets/agents/slopmachine.md +68 -9
- package/assets/claude/agents/developer.md +5 -1
- package/assets/skills/clarification-gate/SKILL.md +56 -20
- package/assets/skills/claude-worker-management/SKILL.md +14 -4
- package/assets/skills/deep-retrospective/SKILL.md +179 -0
- package/assets/skills/deep-retrospective/run.py +446 -0
- package/assets/skills/deep-retrospective/workflow-reference.md +240 -0
- package/assets/skills/developer-session-lifecycle/SKILL.md +18 -4
- package/assets/skills/development-guidance/SKILL.md +52 -31
- package/assets/skills/evaluation-triage/SKILL.md +21 -7
- package/assets/skills/final-evaluation-orchestration/SKILL.md +92 -28
- package/assets/skills/integrated-verification/SKILL.md +38 -42
- package/assets/skills/p8-readiness-reconciliation/SKILL.md +31 -10
- package/assets/skills/planning-gate/SKILL.md +10 -7
- package/assets/skills/planning-guidance/SKILL.md +60 -52
- package/assets/skills/retrospective-analysis/SKILL.md +172 -58
- package/assets/skills/scaffold-guidance/SKILL.md +18 -6
- package/assets/skills/submission-packaging/SKILL.md +11 -3
- package/assets/slopmachine/clarifier-agent-prompt.md +7 -6
- package/assets/slopmachine/exact-readme-template.md +8 -12
- package/assets/slopmachine/owner-verification-checklist.md +1 -1
- package/assets/slopmachine/phase-1-design-prompt.md +5 -10
- package/assets/slopmachine/phase-1-design-template.md +15 -11
- package/assets/slopmachine/phase-2-execution-planning-prompt.md +5 -2
- package/assets/slopmachine/phase-2-plan-template.md +14 -4
- package/assets/slopmachine/scaffold-playbooks/shared-contract.md +2 -1
- package/assets/slopmachine/templates/AGENTS.md +3 -1
- package/assets/slopmachine/templates/CLAUDE.md +3 -1
- package/assets/slopmachine/test-coverage-prompt.md +8 -1
- package/assets/slopmachine/utils/README.md +1 -5
- package/assets/slopmachine/utils/claude_live_common.mjs +2 -5
- package/assets/slopmachine/utils/prepare_evaluation_send_packet.mjs +3 -3
- package/package.json +1 -1
- package/src/constants.js +0 -9
- package/src/init.js +17 -24
- package/src/install.js +30 -28
- package/assets/slopmachine/utils/prepare_evaluation_prompt.mjs +0 -81
|
@@ -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 (`~/slopmachine/` or `$SLOPMACHINE_HOME/slopmachine/`), for example `~/slopmachine/backend-evaluation-prompt.md` or `~/slopmachine/frontend-evaluation-prompt.md`.
|
|
31
|
+
- Use `~/slopmachine/backend-evaluation-prompt.md` for backend, fullstack, API, mobile, desktop, CLI, data, or any non-pure-frontend project.
|
|
32
|
+
- Use `~/slopmachine/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.
|
|
@@ -119,7 +183,7 @@ Do not allow fix-check scope to shrink. It must cover all issues from the kept a
|
|
|
119
183
|
## Issue Handoff To Bugfix Lane
|
|
120
184
|
|
|
121
185
|
Issue handoff must be human and broad:
|
|
122
|
-
- say
|
|
186
|
+
- speak as yourself, say I found these issues
|
|
123
187
|
- group by module/product area
|
|
124
188
|
- include all issues from the current scope
|
|
125
189
|
- emphasize prompt-fit/compliance and security issues
|
|
@@ -129,16 +193,16 @@ Issue handoff must be human and broad:
|
|
|
129
193
|
Example:
|
|
130
194
|
|
|
131
195
|
```text
|
|
132
|
-
I found several issues that need cleanup. The auth behavior still has security gaps around access to other users
|
|
196
|
+
I found several issues that need cleanup. The auth behavior still has security gaps around access to other users data. The API error handling is inconsistent. The README and test coverage is missing some required flows. Please inspect those areas, fix the issues, and rerun the relevant checks.
|
|
133
197
|
```
|
|
134
198
|
|
|
135
199
|
## Completing Two Audit Cycles
|
|
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
|
|
@@ -151,7 +215,7 @@ Once both cycles are complete:
|
|
|
151
215
|
|
|
152
216
|
After the new reconciliation lane is established:
|
|
153
217
|
1. Start a fresh evaluator session.
|
|
154
|
-
2. Send
|
|
218
|
+
2. Send `~/slopmachine/test-coverage-prompt.md` verbatim.
|
|
155
219
|
3. Require `./.tmp/test_coverage_and_readme_audit_report.md`.
|
|
156
220
|
4. Read the generated report.
|
|
157
221
|
5. Require an overall Pass. Pass with caveats is acceptable only when caveats are explicit, bounded, non-blocking, and do not contradict README hard gates or required coverage surfaces.
|
|
@@ -28,14 +28,14 @@ Phase 4 starts a new bugfix lane. The original development lane is no longer the
|
|
|
28
28
|
|
|
29
29
|
1. Close the original development lane for normal implementation.
|
|
30
30
|
2. Start a new bugfix lane/session.
|
|
31
|
-
3. Brief the new lane in normal human language about the project
|
|
31
|
+
3. Brief the new lane in normal human language about the project and current status. The goal is orientation only: explain that development just finished and this session will help clean up issues after discovery is complete. Do not send the issue batch yet.
|
|
32
32
|
4. Do not reveal phases, workflow state, Beads, metadata, evaluator mechanics, or hidden paths.
|
|
33
33
|
5. Record lane/session id, backend, purpose, runtime dir if applicable, and handoff summary in `../.ai/metadata.json` and Beads.
|
|
34
34
|
|
|
35
35
|
Example bugfix-lane briefing style:
|
|
36
36
|
|
|
37
37
|
```text
|
|
38
|
-
I
|
|
38
|
+
I am going to have you help clean up this project. Read the README and the docs in the docs directory to understand what it is supposed to do. Do not start changing anything yet, first get oriented to the app and how it is structured.
|
|
39
39
|
```
|
|
40
40
|
|
|
41
41
|
## Owner Plan-Based Review
|
|
@@ -56,57 +56,53 @@ Check:
|
|
|
56
56
|
- security, authorization, ownership, validation, and data integrity
|
|
57
57
|
- placeholder, shell, fake-success, disconnected UI, or static-demo behavior
|
|
58
58
|
|
|
59
|
-
Create
|
|
60
|
-
|
|
61
|
-
Send the issues to the bugfix lane in broad human language. Do not pass file/line references, report paths, or internal plan rows unless explicitly needed.
|
|
62
|
-
|
|
63
|
-
Example:
|
|
64
|
-
|
|
65
|
-
```text
|
|
66
|
-
I found several issues in the codebase. The auth area still has gaps around users accessing records they should not, the billing flow is missing negative tests, and the README startup notes don't match the current app. Please inspect those areas, fix the problems, and rerun the relevant checks.
|
|
67
|
-
```
|
|
59
|
+
Create a consolidated issue file under `../.ai/consolidated-internal-issues.md`. Record the artifact in metadata and Beads. This file will collect issues from the plan-based review and all evaluator passes. Do not send issues to the bugfix lane yet — all issues are batched and sent together after the evaluator loop completes.
|
|
68
60
|
|
|
69
61
|
## Internal Evaluator Loop
|
|
70
62
|
|
|
71
|
-
This is an isolated owner-side loop.
|
|
63
|
+
This is an isolated owner-side loop for discovery only. Do not send any issues to the bugfix lane between passes. All issues are batched and sent once after the loop completes.
|
|
72
64
|
|
|
73
65
|
Purpose:
|
|
74
|
-
- discover
|
|
66
|
+
- discover Blocker, High, security, and prompt-fit issues before local verification
|
|
75
67
|
- preserve issue evidence internally
|
|
76
|
-
-
|
|
68
|
+
- batch all discoveries before sending the bugfix lane its first fix request
|
|
77
69
|
|
|
78
70
|
Procedure:
|
|
79
|
-
1. Prepare the evaluator prompt packet using `
|
|
80
|
-
2.
|
|
81
|
-
3.
|
|
71
|
+
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.
|
|
72
|
+
2. The installed asset is `~/slopmachine/backend-evaluation-prompt.md` for backend/fullstack/mixed/non-pure-frontend work.
|
|
73
|
+
3. The installed asset is `~/slopmachine/frontend-evaluation-prompt.md` for pure frontend work.
|
|
82
74
|
4. Start one isolated evaluator subagent session.
|
|
83
|
-
5. Send the prepared packet and require a report file under `../.ai/internal-verification
|
|
84
|
-
6.
|
|
85
|
-
7.
|
|
86
|
-
8.
|
|
87
|
-
9. Repeat
|
|
88
|
-
10.
|
|
89
|
-
11. Record report paths, extracted issue paths, and consolidated issue paths in metadata and Beads.
|
|
75
|
+
5. Send the prepared packet and require a report file under `../.ai/internal-verification/report-1.md`.
|
|
76
|
+
6. After the report is generated, archive it unchanged. Extract all Blocker, High, security, and prompt-fit issues and append them to `../.ai/consolidated-internal-issues.md`.
|
|
77
|
+
7. Return to the same evaluator session (before any fixes have been made). Ask it to find another set of different issues using the same prompt and rigor.
|
|
78
|
+
8. Require a new report file under `../.ai/internal-verification/report-N.md`. Archive it and extract issues into the same consolidated file.
|
|
79
|
+
9. Repeat for 5 total passes: the initial full evaluation prompt (step 5) plus 4 follow-up "find more issues" passes (step 7-8). **All 5 passes must be attempted.** Do not stop early unless the evaluator explicitly returns no new findings in two consecutive passes and the reason is recorded. Skipping passes is a workflow violation — 5 passes is the minimum, not a target. If the evaluator produces even one new finding in pass 4, pass 5 must still run.
|
|
80
|
+
10. After all passes, the consolidated issue file contains every issue from all 5 evaluator reports plus the plan-based review.
|
|
90
81
|
|
|
91
|
-
Follow-up prompt style for the same evaluator session:
|
|
82
|
+
Follow-up prompt style for the same evaluator session (passes 2-5):
|
|
92
83
|
|
|
93
84
|
```text
|
|
94
|
-
Using the same review strategy, do another pass and look for a different set of material issues that were not already covered. Focus on independent Blocker or
|
|
85
|
+
Using the same review strategy, do another pass and look for a different set of material issues that were not already covered. Focus on independent Blocker, High, security, or prompt-fit risks. Write the next report to the requested path.
|
|
95
86
|
```
|
|
96
87
|
|
|
97
|
-
The evaluator loop may receive internal paths and report instructions because it is an owner-side verification tool. Do not forward evaluator mechanics
|
|
88
|
+
The evaluator loop may receive internal paths and report instructions because it is an owner-side verification tool. Do not forward evaluator mechanics, report excerpts, or the consolidated file to the bugfix lane.
|
|
98
89
|
|
|
99
|
-
## Bugfix
|
|
90
|
+
## Bugfix From Consolidated Issues
|
|
100
91
|
|
|
101
|
-
After the
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
92
|
+
After the owner plan-based review and all 5 evaluator passes are complete:
|
|
93
|
+
|
|
94
|
+
1. The consolidated issue file under `../.ai/consolidated-internal-issues.md` contains all discoveries.
|
|
95
|
+
2. Return to the already-oriented bugfix lane/session from Phase 4 entry. If it was not established yet due to recovery, establish and orient it now before sending fixes.
|
|
96
|
+
3. Convert the full consolidated issue list into a single concise human bugfix prompt. Group issues by broad module/product area. Avoid line numbers, file paths, report names, and evaluator language. Send the full issue batch to the bugfix lane in broad human language. Do not pass file/line references, report paths, or internal plan rows unless explicitly needed.
|
|
97
|
+
|
|
98
|
+
Example:
|
|
99
|
+
|
|
100
|
+
```text
|
|
101
|
+
I found several issues in the codebase. The auth area still has gaps around users accessing records they should not. The billing flow is missing negative tests. The README startup notes do not match the current app. Please inspect those areas, fix the problems, and rerun the relevant checks.
|
|
102
|
+
```
|
|
103
|
+
4. After the result, owner checks changed files and targeted behavior privately against the consolidated issue list and plan.
|
|
104
|
+
5. If any issues were not properly fixed, send them back in the same broad human style.
|
|
105
|
+
6. Record fixes, verification evidence, remaining issues, and handoffs in metadata and Beads.
|
|
110
106
|
|
|
111
107
|
## Local Non-Docker Verification
|
|
112
108
|
|
|
@@ -118,7 +114,7 @@ Rules:
|
|
|
118
114
|
- Use the startup commands and expected flows supplied at the end of development.
|
|
119
115
|
- Verify the app starts locally when feasible.
|
|
120
116
|
- Verify key expected flows manually/API-wise/platform-wise as appropriate.
|
|
121
|
-
- For browser-accessible apps,
|
|
117
|
+
- For browser-accessible apps, **use agent-browser to verify core prompt requirements, every README credential, and key user journeys.** This is mandatory for web/fullstack projects before closing Phase 4. Verify the app is reachable, login works with each README credential, key pages load, and at least one primary workflow per role completes end to end. Record any browser-found failures and route them to the bugfix lane. Do not accept "page loaded" as verification — each flow must prove the expected business outcome (state change, data persistence, authorization).
|
|
122
118
|
- Run relevant unit/API/integration/E2E/platform checks locally when available.
|
|
123
119
|
- If a command or local runtime check cannot run, record the exact blocker and risk.
|
|
124
120
|
- Any issue found goes back to the bugfix lane in human language.
|
|
@@ -128,10 +124,10 @@ Rules:
|
|
|
128
124
|
Phase 4 is complete only when:
|
|
129
125
|
- the original development lane is closed for normal implementation
|
|
130
126
|
- the bugfix lane is established and recorded
|
|
131
|
-
- owner plan-based review
|
|
132
|
-
-
|
|
133
|
-
-
|
|
127
|
+
- owner plan-based review and internal evaluator loop (5 passes) completed, with all issues collected in `../.ai/consolidated-internal-issues.md`
|
|
128
|
+
- consolidated issues are fixed or recorded as concrete risks
|
|
129
|
+
- **browser verification (agent-browser) completed for web/fullstack projects** — every README credential tested, core user journeys verified, browser-found failures fixed or recorded
|
|
134
130
|
- local non-Docker app/test verification has run where feasible
|
|
135
131
|
- local verification issues have been fixed or recorded as concrete risks
|
|
136
132
|
- README/runtime/test/design/API surfaces are coherent enough to proceed to final evaluation
|
|
137
|
-
- metadata and Beads record the
|
|
133
|
+
- metadata and Beads record the report paths, issue files, fixes, verification evidence, blockers, and closure decision
|
|
@@ -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.
|
|
@@ -23,7 +28,7 @@ Use these D1-D9 buckets for major issue classification:
|
|
|
23
28
|
| D6 Reproducibility & Dependency Failure | System cannot run in a clean isolated environment. Examples: undeclared dependencies, reliance on local paths/local DB/private services, manual DB setup/import, dependency version mismatch, or environment-specific config. |
|
|
24
29
|
| D7 Documentation & Verification Consistency Failure | Documentation does not match actual behavior. Examples: README startup steps fail, URLs/ports are wrong, verification steps cannot be executed, access instructions are missing, documented flow differs from implementation, or README omits startup/service/verification sections. |
|
|
25
30
|
| D8 Dataset & Session Integrity Failure | Dataset/session artifacts lack authenticity, structure, or traceability. Examples: missing planning/execution sessions, reconstructed logs, irrelevant session content, missing prompt-to-validation trajectory, wrong task-root launch, absent initial prompt/planning steps, or unjustified context-losing splits. |
|
|
26
|
-
| D9
|
|
31
|
+
| D9 Evaluation Report Integrity & Compliance Failure | Evaluation reports are missing, altered, generated with wrong prompts/tools, inconsistent with actual behavior, missing required cycles, unresolved report issues remain, or report prompt type is wrong/distorted. |
|
|
27
32
|
|
|
28
33
|
## Readiness Decision
|
|
29
34
|
|
|
@@ -31,30 +36,46 @@ 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
|
|
|
37
|
-
- Run the broad product test wrapper `./repo/run_tests.sh` when it exists and is applicable.
|
|
43
|
+
- Run the broad product test wrapper `./repo/run_tests.sh` through Docker when it exists and is applicable. This is the first time Dockerized tests run — they were deferred from earlier phases. Do not run `run_tests.sh` outside Docker during readiness.
|
|
38
44
|
- Run final runtime verification before packaging: `docker compose up --build` for web/backend/fullstack/container-supported projects, native/platform-equivalent startup for mobile/desktop projects, or a recorded not-applicable reason.
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
-
|
|
45
|
+
|
|
46
|
+
### Agent-Browser Verification
|
|
47
|
+
|
|
48
|
+
The `agent-browser` skill is installed as part of slopmachine setup. Use it for automated browser-based verification when the project has a browser-accessible UI. Load the skill and use its tools to walk every surface the prompt requires.
|
|
49
|
+
|
|
50
|
+
The browser verification must cover, at minimum, these three categories:
|
|
51
|
+
|
|
52
|
+
**1. Requirement surfaces.** Every prompt requirement that is user-facing must be exercised through agent-browser. Cross-reference `../.ai/requirements-breakdown.md` and extract every user-facing requirement, then verify each one through the browser. Walk through each core flow from beginning to task closure — not just opening pages but performing the actual interactions the user would do. For each requirement, verify that the system responds correctly: state changes, data persistence, error handling, auth enforcement, and task completion. If a requirement involves multiple roles, test each role's path separately. No requirement that has a user-visible surface may be skipped — every REQ-### with a user-facing implication must have a browser verification result.
|
|
53
|
+
|
|
54
|
+
**2. Seeded values and credentials.** Exercise every README-listed demo credential, role, seeded record, example ID, status, and documented default. Log in with every role and confirm the permissions and seeded data described in the README are accurate. Flag any credential that does not work, any seeded value that does not exist, or any role that has incorrect access.
|
|
55
|
+
|
|
56
|
+
**3. Core flows end to end.** Walk the main user journeys from start to finish — creating data, viewing it, modifying it, deleting it, and verifying the state at each step. If the system has multiple actors, test the interaction between them: one user creates, another views, a third approves or rejects. Every read, create, update, and delete operation that is prompt-relevant must be verified through agent-browser.
|
|
57
|
+
|
|
58
|
+
**Batching and consolidation.** Do multiple agent-browser runs covering different surfaces before reporting issues. Test a group of related flows, note every failure, then test the next group. Collect all failures into a single consolidated issue list. Only when all surfaces have been tested, send the full consolidated list to the active developer/Claude lane once — do not send issues surface by surface. The lane should receive one batch of fixes to work through.
|
|
59
|
+
|
|
60
|
+
For backend/API-only projects where browser verification is not possible, replace agent-browser checks with equivalent API-based checks for every README-listed credential, seeded value, role/state, and core requirement. Use curl or platform-equivalent CLI tools to exercise each endpoint and verify behavior.
|
|
61
|
+
|
|
62
|
+
If any final runtime, test, browser, account, or platform check cannot run, readiness cannot be `Pass` unless the user explicitly risk-accepts the unverified surface.
|
|
43
63
|
|
|
44
64
|
## Failure Routing Loop
|
|
45
65
|
|
|
46
66
|
- Phase 6 is the primary green gate for broad Docker/runtime and `./repo/run_tests.sh` verification.
|
|
47
67
|
- Final reconciliation work belongs in the currently active developer/Claude implementation lane whenever it is more than a tiny, safe owner-side edit. Route product behavior, tests, README/runtime drift, Docker/runtime failures, browser/account issues, and coverage gaps to that lane in broad human language.
|
|
48
|
-
- If `docker compose up --build`, native/platform startup,
|
|
68
|
+
- If `docker compose up --build`, native/platform startup, or `./repo/run_tests.sh` fails, route the failure to the lane, fix, verify, and rerun.
|
|
69
|
+
- For agent-browser or API verification failures: collect all issues across all surfaces into one consolidated list, then send the full list to the lane once. Do not send issues surface by surface — batch everything before the single handoff.
|
|
49
70
|
- 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
|
-
- After the lane reports
|
|
51
|
-
- Repeat fix, verify, and rerun until the check is green, not applicable
|
|
71
|
+
- After the lane reports fixes, the owner verifies the changed surfaces and reruns the affected checks.
|
|
72
|
+
- 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
73
|
- Record every failed command, routed issue, fix acknowledgement, rerun result, and final decision in metadata and Beads.
|
|
53
74
|
|
|
54
75
|
## Owner Direct Fixes
|
|
55
76
|
|
|
56
77
|
- The owner may directly fix only minor, safe docs, wrapper, config, cleanup, or light glue issues when the change does not require product-design judgment, new tests, behavioral changes, or non-trivial debugging.
|
|
57
78
|
- If the reconciliation issue is large enough to need real implementation work, meaningful test updates, runtime debugging, README/runtime restructuring, or product judgment, do not fix it owner-side. Send it to the currently active developer/Claude lane.
|
|
58
|
-
-
|
|
79
|
+
- Batch multiple direct fixes into a group, then inform the lane once. Do not notify turn by turn for every small edit. After all fixes in the batch are complete, send a single note describing all changed surfaces and ask the lane to inspect and acknowledge.
|
|
59
80
|
- The note should be concise and developer-facing, not a workflow report.
|
|
60
81
|
- Still rerun the affected command or check after acknowledgement.
|
|
@@ -25,7 +25,9 @@ Accept `./docs/design.md` only if it:
|
|
|
25
25
|
- defines modules as product/system responsibilities, not file-by-file work packets
|
|
26
26
|
- handles auth, authorization, ownership/isolation, validation, logging/redaction, admin/debug boundaries, and sensitive data where relevant
|
|
27
27
|
- defines frontend states and FE-BE expectations where relevant
|
|
28
|
-
-
|
|
28
|
+
- specifies test surface per module in the module design table: each module lists its API endpoints to test, unit test targets, and E2E flows
|
|
29
|
+
- visibly defines the testing contract in the design itself: 90%+ unit coverage target for meaningful business logic, true HTTP/API tests for every runtime endpoint with positive and negative cases, identifiable frontend unit tests that import/render real components/modules where a frontend exists, fullstack FE-BE proof, and E2E/platform test coverage for every prompt requirement (not just main journeys — every requirement, actor path, business rule, authorization rule, error state, and task-closure condition must have identifiable E2E coverage or explicit not-applicable rationale)
|
|
30
|
+
- requires unit tests under `unit_tests/` and API/integration HTTP tests under `API_tests/` (both mandatory when the corresponding test surface exists)
|
|
29
31
|
- defines strict README/runtime obligations: project type near the top, primary `docker compose up --build` for container-supported deliveries, legacy compatibility string `docker-compose up` without making it primary, access and verification method, all auth/demo credentials and roles or exact `No authentication required`, seeded data values or empty-state statement, no manual runtime installs/manual DB setup/hidden `.env` dependency, mock/local/debug disclosures, and known limitations
|
|
30
32
|
- gives explicit not-applicable reasons and replacement proof layers for any missing unit/API/E2E coverage surface
|
|
31
33
|
- avoids vague placeholders such as `TBD`, `later`, `standard CRUD`, `normal auth`, or `basic tests` for correctness-critical behavior
|
|
@@ -71,12 +73,13 @@ Reject the plan if it is mostly narrative, starts with files before modules, cen
|
|
|
71
73
|
## Review Procedure
|
|
72
74
|
|
|
73
75
|
1. Reread the original prompt and accepted clarification package.
|
|
74
|
-
2.
|
|
75
|
-
3. Review `./docs/
|
|
76
|
-
4. Review
|
|
77
|
-
5.
|
|
78
|
-
6.
|
|
79
|
-
7.
|
|
76
|
+
2. Cross-reference every requirement from `../.ai/requirements-breakdown.md` by REQ-### against `./docs/design.md`. Each requirement must map to a design surface, an explicitly addressed section, or have an accepted not-applicable reason. Record unmatched requirements as gaps.
|
|
77
|
+
3. Review `./docs/design.md` against the original prompt, clarifications, and requirements baseline.
|
|
78
|
+
4. Review `./docs/api-spec.md` against the design if applicable. Repeat the REQ-### cross-reference to confirm every requirement is covered in design or API spec.
|
|
79
|
+
5. Review `../.ai/plan.md` against design/API and check that it can drive implementation without exposing itself.
|
|
80
|
+
6. Patch small owner-fixable wording or traceability issues directly when meaning is unchanged.
|
|
81
|
+
7. Send material design/API gaps back to Claude in human issue/fix wording.
|
|
82
|
+
8. Regenerate or revise owner-private planning when docs change materially.
|
|
80
83
|
|
|
81
84
|
## Exit Condition
|
|
82
85
|
|
|
@@ -25,58 +25,66 @@ Phase 2 establishes the primary developer session and produces the accepted plan
|
|
|
25
25
|
- Packaged design prompt and design template.
|
|
26
26
|
- Packaged execution planning prompt and plan template.
|
|
27
27
|
|
|
28
|
-
##
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
28
|
+
## Deterministic Planning Sequence (Must Follow Exactly)
|
|
29
|
+
|
|
30
|
+
This sequence is strict. Do not combine, reorder, skip, or batch these steps. Each step must complete and receive developer acknowledgement before the next step begins.
|
|
31
|
+
|
|
32
|
+
### Step 1: Send Original Prompt
|
|
33
|
+
|
|
34
|
+
Send the original product prompt from `./metadata.json` exactly as-is. No prefix, no introduction, no context, no clarifications. Append only this exact sentence at the end:
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
Don't write code yet — we'll plan this first.
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
That is the entire message. Wait for the developer to acknowledge before proceeding.
|
|
41
|
+
|
|
42
|
+
### Step 2: Send Clarifications
|
|
43
|
+
|
|
44
|
+
After the developer acknowledges the prompt, send:
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
Here are some clarifications I made:
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Then list the accepted clarifications from `./docs/questions.md` in natural language. After the clarifications, list the core requirements from the approved clarification package as plain natural-language statements describing what the system must do. Do not use requirement IDs, numbered lists, traceability fields, or workflow metadata. Write the requirements as concise sentences: "The system must support user registration with email verification" rather than "REQ-001: User registration." Keep the whole message readable and conversational.
|
|
51
|
+
|
|
52
|
+
Wait for the developer to acknowledge before proceeding.
|
|
53
|
+
|
|
54
|
+
### Step 3: Send Design Prompt
|
|
55
|
+
|
|
56
|
+
After the developer acknowledges the clarifications, read the installed `~/slopmachine/phase-1-design-prompt.md` fresh from its asset path and paste its full body verbatim under the non-negotiable verbatim prompt paste rule. The design prompt references the context already provided in Steps 1 and 2 and the template already seeded at `./docs/design.md`. Do not paste the template file body — it is already in the workspace.
|
|
57
|
+
|
|
58
|
+
The design must:
|
|
59
|
+
- be a true product/system design, not an execution plan
|
|
60
|
+
- define product behavior, actors, flows, modules, data, security, UI/API surfaces, assumptions, and verification strategy at design level
|
|
61
|
+
- not become a step-by-step coding checklist
|
|
62
|
+
|
|
63
|
+
When the design is returned, record the artifact path and Claude turn result in metadata and Beads.
|
|
64
|
+
|
|
65
|
+
### Step 4: Owner Reviews and Cleans the Design
|
|
66
|
+
|
|
67
|
+
Compare `./docs/design.md` against the original prompt, accepted requirements, and accepted clarifications. The owner must cross-reference every requirement from `../.ai/requirements-breakdown.md` by its REQ-### ID against the design. Each requirement must map to a design surface, a design section that explicitly addresses it, or have an explicit accepted not-applicable reason recorded. Record any unmatched requirement as a design gap before proceeding.
|
|
68
|
+
|
|
69
|
+
If a requirement is missing from the design, describe what is missing in plain language and tell the developer it needs to be included. Do not mention REQ-### IDs, traceability codes, or internal workflow labels — the developer does not know them. Say something like "the design does not cover how users approve invoices before they are finalized. This needs to be added to the design" rather than "REQ-042 is missing."
|
|
70
|
+
|
|
71
|
+
Patch small wording/traceability issues directly when meaning is unchanged. Send material gaps back to Claude in ordinary issue/fix wording. Record design acceptance, rejection, owner patch decisions, and the REQ-### cross-reference result (matched, not-applicable, or gap) in metadata and Beads.
|
|
72
|
+
|
|
73
|
+
### Step 5: Create `./docs/api-spec.md` When Applicable
|
|
74
|
+
|
|
75
|
+
Use the accepted design as input. Require exact endpoint/interface contracts where APIs exist. If no meaningful API exists, mark `./docs/api-spec.md` as not applicable with a short reason. Record the API spec artifact path and applicability decision in metadata and Beads.
|
|
76
|
+
|
|
77
|
+
### Step 6: Owner Reviews Design and API Spec Together
|
|
78
|
+
|
|
79
|
+
Repeat the REQ-### cross-reference against the combined design and API spec. Confirm every requirement, clarification, and accepted constraint is addressed in either the design or the API spec with no orphan items. For each missing requirement, describe what is missing in plain language and send it back to the developer without mentioning requirement IDs. Confirm frontend/backend exposure is coherent where applicable. Confirm security, data, validation, failure behavior, and testing expectations match. Record the combined integrity review decision, the cross-reference result, and any residual orphan items in metadata and Beads.
|
|
80
|
+
|
|
81
|
+
### Step 7: Create Owner-Private Execution Plan
|
|
82
|
+
|
|
83
|
+
After the combined review (Step 6) confirms the design and API spec are coherent, the owner must delegate creation of `../.ai/plan.md` to one general owner-side planning subagent. Do not ask Claude/developer implementation lanes to create, edit, review, or know about `../.ai/plan.md`. Provide original prompt, stack/context, accepted questions, the minified requirements list extracted from `../.ai/requirements-breakdown.md`, the accepted design, and the accepted API spec. The general subagent must receive the complete body of the packaged `~/slopmachine/phase-2-execution-planning-prompt.md` as its instruction prompt, pasted verbatim into the sent message. The general subagent must receive the complete body of the packaged `~/slopmachine/phase-2-plan-template.md` as the required structure for `../.ai/plan.md`, pasted verbatim into the sent message. Require output to `../.ai/plan.md` and `../.ai/test-coverage.md` when useful. Record private plan and coverage artifact paths in metadata and Beads after the subagent returns. 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.
|
|
84
|
+
|
|
85
|
+
### Step 8: Owner Accepts or Rejects the Planning Package
|
|
86
|
+
|
|
87
|
+
Use `planning-gate`. Record accepted artifacts and phase closure evidence in metadata and Beads.
|
|
80
88
|
|
|
81
89
|
## Worker Communication Boundary
|
|
82
90
|
|