theslopmachine 0.4.9 → 0.5.1

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.
Files changed (36) hide show
  1. package/README.md +182 -151
  2. package/RELEASE.md +3 -0
  3. package/assets/agents/developer.md +54 -5
  4. package/assets/agents/slopmachine-claude.md +386 -0
  5. package/assets/agents/slopmachine.md +66 -2
  6. package/assets/claude/agents/developer.md +94 -0
  7. package/assets/skills/clarification-gate/SKILL.md +15 -4
  8. package/assets/skills/claude-worker-management/SKILL.md +155 -0
  9. package/assets/skills/developer-session-lifecycle/SKILL.md +11 -4
  10. package/assets/skills/development-guidance/SKILL.md +4 -6
  11. package/assets/skills/evaluation-triage/SKILL.md +6 -3
  12. package/assets/skills/final-evaluation-orchestration/SKILL.md +7 -7
  13. package/assets/skills/hardening-gate/SKILL.md +3 -3
  14. package/assets/skills/integrated-verification/SKILL.md +4 -4
  15. package/assets/skills/planning-gate/SKILL.md +36 -9
  16. package/assets/skills/planning-guidance/SKILL.md +29 -18
  17. package/assets/skills/scaffold-guidance/SKILL.md +20 -11
  18. package/assets/skills/submission-packaging/SKILL.md +14 -11
  19. package/assets/skills/verification-gates/SKILL.md +23 -17
  20. package/assets/slopmachine/templates/AGENTS.md +15 -80
  21. package/assets/slopmachine/utils/claude_create_session.mjs +28 -0
  22. package/assets/slopmachine/utils/claude_export_session.mjs +19 -0
  23. package/assets/slopmachine/utils/claude_resume_session.mjs +28 -0
  24. package/assets/slopmachine/utils/claude_worker_common.mjs +225 -0
  25. package/assets/slopmachine/utils/convert_exported_ai_session.mjs +72 -0
  26. package/assets/slopmachine/utils/export_ai_session.mjs +42 -0
  27. package/assets/slopmachine/utils/prepare_ai_session_for_convert.mjs +51 -0
  28. package/package.json +1 -1
  29. package/src/cli.js +14 -0
  30. package/src/config.js +106 -0
  31. package/src/constants.js +16 -9
  32. package/src/init.js +4 -1
  33. package/src/install.js +78 -8
  34. package/src/send-data.js +536 -0
  35. package/src/set-token.js +12 -0
  36. package/src/utils.js +25 -0
package/README.md CHANGED
@@ -1,234 +1,265 @@
1
1
  # theslopmachine
2
2
 
3
- `theslopmachine` is an installer and bootstrap CLI for the SlopMachine OpenCode workflow. It installs the packaged owner/developer agents, required skills, workflow support files, and project bootstrap logic needed to start a new SlopMachine-managed repository.
3
+ `theslopmachine` installs and bootstraps the SlopMachine workflow for OpenCode.
4
4
 
5
- ## Features
5
+ It configures:
6
6
 
7
- - installs packaged OpenCode agents into `~/.config/opencode/agents/`
8
- - installs packaged skills into `~/.agents/skills/`
9
- - installs packaged workflow support files into `~/slopmachine/`
10
- - bootstraps a new project workspace with `repo/`, `docs/`, `sessions/`, `metadata.json`, `AGENTS.md`, and initialized `br` state
11
- - configures required OpenCode plugins and MCP entries without overwriting existing `context7` or `exa` configuration
12
-
13
- ## Installation
7
+ - the `slopmachine` owner agent
8
+ - the `slopmachine-claude` owner agent
9
+ - the `developer` implementation agent
10
+ - required skills under `~/.agents/skills/`
11
+ - Claude worker runtime assets under `~/.claude/`
12
+ - workflow support files under `~/slopmachine/`
13
+ - OpenCode MCP entries for `context7` and `exa`
14
14
 
15
- Requirements:
15
+ ## Requirements
16
16
 
17
17
  - Node.js 18+
18
18
  - `git`
19
- - Docker running on the machine
20
- - `curl` on Unix-like systems for automatic `br` installation
19
+ - Docker
20
+ - `python3`
21
+ - `opencode`
22
+ - `br` (`beads_rust`)
23
+
24
+ `slopmachine setup` verifies or installs what it can.
25
+
26
+ ## Install
21
27
 
22
- Build and install the package:
28
+ From this package directory:
23
29
 
24
30
  ```bash
25
31
  npm install
26
32
  npm run check
27
33
  npm pack
28
- npm install -g ./theslopmachine-<version>.tgz
34
+ npm install -g ./theslopmachine-0.5.0.tgz
29
35
  ```
30
36
 
31
- `package.json` is the package-version source of truth. The packed tarball name and CLI version banner both derive from that version.
32
-
33
- For local package development instead of global install:
37
+ For local development instead:
34
38
 
35
39
  ```bash
36
40
  npm link
37
41
  ```
38
42
 
39
- The published package is intentionally source-only. It packages only `bin/`, `src/`, `assets/`, `README.md`, `RELEASE.md`, and `MANUAL.md`.
43
+ ## Commands
40
44
 
41
- ## Setup
45
+ ### `slopmachine setup`
42
46
 
43
- Run machine setup:
47
+ Use this once per machine, then rerun any time you want to refresh packaged assets.
44
48
 
45
49
  ```bash
46
50
  slopmachine setup
47
51
  ```
48
52
 
49
- `setup` does the following:
53
+ What it does:
50
54
 
51
- - installs `opencode-ai@latest` when missing and refreshes it to `@latest` when already present
52
- - installs or verifies `br` (`beads_rust`)
53
- - installs or refreshes packaged agents
54
- - installs or refreshes packaged skills
55
- - installs or refreshes packaged workflow files into `~/slopmachine/`
55
+ - verifies or installs `opencode`
56
+ - verifies `br`, `git`, `python3`, and Docker
57
+ - installs packaged agents into `~/.config/opencode/agents/`
58
+ - installs packaged skills into `~/.agents/skills/`
59
+ - installs Claude runtime assets into `~/.claude/`
60
+ - installs workflow files into `~/slopmachine/`
56
61
  - updates `~/.config/opencode/opencode.json`
57
- - prompts for missing MCP API keys when needed
62
+ - ensures packaged MCP entries for `context7` and `exa`
63
+ - optionally asks for an upload token if one is not already stored
64
+
65
+ Notes:
66
+
67
+ - existing upload token is preserved and setup skips that prompt when one already exists
68
+ - existing `context7` and `exa` entries are preserved if already configured
69
+ - package-managed assets are refreshed on rerun
70
+
71
+ ### `slopmachine init`
72
+
73
+ Use this in a new or empty project directory to create a SlopMachine workspace.
74
+
75
+ ```bash
76
+ mkdir my-project
77
+ cd my-project
78
+ slopmachine init
79
+ ```
58
80
 
59
- To refresh an existing machine install to the latest published package in one step:
81
+ Or open OpenCode immediately after bootstrap:
60
82
 
61
83
  ```bash
62
- slopmachine upgrade
84
+ slopmachine init -o
63
85
  ```
64
86
 
65
- `slopmachine upgrade` installs `theslopmachine@latest` globally and then runs `slopmachine setup` automatically.
87
+ What it creates:
88
+
89
+ - `repo/`
90
+ - `docs/`
91
+ - `sessions/`
92
+ - `metadata.json`
93
+ - `.ai/metadata.json`
94
+ - root `.beads/`
95
+ - `repo/AGENTS.md`
66
96
 
67
- If `opencode` was newly installed, open a fresh terminal before running OpenCode commands.
97
+ Important details:
68
98
 
69
- MCP API keys:
99
+ - `run_id` is created in `.ai/metadata.json`
100
+ - the workspace root is the parent directory containing `repo/`
101
+ - Beads lives in the workspace root, not inside `repo/`
70
102
 
71
- - Context7: `https://context7.com`
72
- - Exa: `https://exa.ai`
103
+ ### `slopmachine set-token`
73
104
 
74
- Codex login with OpenCode:
105
+ Stores the upload token used by `send-data`.
75
106
 
76
107
  ```bash
77
- opencode auth login -p codex
108
+ slopmachine set-token
78
109
  ```
79
110
 
80
- Optional verification:
111
+ Behavior:
81
112
 
82
- ```bash
83
- opencode auth list
84
- ```
113
+ - prompts for the plaintext upload token
114
+ - stores it in `~/.config/slopmachine/config.json`
115
+ - replaces an existing token if one is already stored
116
+ - does not validate the token over the network during entry
85
117
 
86
- ## Startup
118
+ ### `slopmachine send-data <owner-session-id>`
87
119
 
88
- Create and initialize a new project workspace in a new or empty directory:
120
+ Exports workflow artifacts and uploads them to the configured Supabase endpoint.
89
121
 
90
122
  ```bash
91
- mkdir my-project
92
- cd my-project
93
- slopmachine init
123
+ slopmachine send-data <owner-session-id>
94
124
  ```
95
125
 
96
- Or initialize and open OpenCode immediately:
126
+ Supported options:
97
127
 
98
- ```bash
99
- mkdir my-project
100
- cd my-project
101
- slopmachine init -o
102
- ```
128
+ - `--dry-run`
129
+ - `--yes`
130
+ - `--label <text>`
131
+ - `--project-id <id>`
132
+ - `--output <path>`
133
+ - `--endpoint <url>`
103
134
 
104
- If you used plain `slopmachine init`, then continue with:
135
+ Examples:
105
136
 
106
137
  ```bash
107
- cd repo
108
- opencode
138
+ slopmachine send-data ses_abc123
139
+ slopmachine send-data ses_abc123 --dry-run
140
+ slopmachine send-data ses_abc123 --yes --label sprint-12
141
+ slopmachine send-data ses_abc123 --endpoint "https://<project-ref>.supabase.co/functions/v1/slopmachine-upload"
109
142
  ```
110
143
 
111
- Inside OpenCode, select the `slopmachine` agent to start the workflow.
144
+ Where to run it:
112
145
 
113
- Bootstrapped workspace layout:
146
+ - preferred: workspace root
147
+ - also supported: `repo/`
114
148
 
115
- - `repo/` for the working codebase
116
- - `docs/` for workflow documentation and evidence
117
- - `sessions/` for exported session artifacts
118
- - `metadata.json` for project workflow metadata
119
- - `repo/AGENTS.md` for the repo-local agent instructions
149
+ If run from `repo/`, the command resolves the parent workspace root automatically.
120
150
 
121
- `slopmachine init` creates the initial git commit so the workspace starts from a clean tree.
151
+ What it exports live:
122
152
 
123
- ## Testing
153
+ - owner session from the positional `owner-session-id`
154
+ - developer sessions from `.ai/metadata.json`
155
+ - `beads-export.json` from root `.beads/`
124
156
 
125
- Package-level checks:
157
+ What it includes when present:
126
158
 
127
- ```bash
128
- npm run check
129
- npm pack --dry-run
130
- ```
131
-
132
- Generated project conventions:
159
+ - `self-test-run.md`
160
+ - `self-test-fixes.md`
161
+ - `retrospective-<run_id>.md`
162
+ - `improvement-actions-<run_id>.md`
163
+ - `metadata.json`
164
+ - `ai-metadata.json`
165
+ - `manifest.json`
133
166
 
134
- - every bootstrapped project must expose one primary runtime command
135
- - every bootstrapped project must expose one primary broad test command: `./run_tests.sh`
136
- - for Dockerized web backend or fullstack projects, the expected broad runtime command is `docker compose up --build`
137
- - for non-Docker runtime cases, the expected broad runtime command is usually `./run_app.sh`
167
+ Fail-fast conditions:
138
168
 
139
- Verification policy:
169
+ - missing owner session id argument
170
+ - missing `.ai/metadata.json`
171
+ - missing `run_id`
172
+ - missing tracked developer session ids
173
+ - owner session export failure
174
+ - developer session export failure
140
175
 
141
- - use local fast verification during normal development
142
- - treat `./run_tests.sh` as a broad gate, not an ordinary every-step verification command
143
- - for Dockerized web backend and fullstack projects, scaffold acceptance should establish both `docker compose up --build` and `./run_tests.sh`
176
+ Warn-only conditions:
144
177
 
145
- ## Architecture
178
+ - missing `self-test-run.md`
179
+ - missing `self-test-fixes.md`
180
+ - missing retrospective files
146
181
 
147
- Operating model:
182
+ Output behavior:
148
183
 
149
- - `slopmachine` is the owner and orchestrator
150
- - `developer` is the implementation worker
151
- - detailed workflow behavior is primarily carried by loaded skills rather than one monolithic owner prompt
184
+ - creates a flat zip archive
185
+ - keeps the local zip by default
186
+ - default zip path:
187
+ - `~/slopmachine/retrospectives/send-data-<run_id>.zip`
188
+ - shows a preview before upload unless `--yes` is passed
152
189
 
153
- High-level lifecycle:
190
+ ## Config Files
154
191
 
155
- 1. `P0 Intake and Setup`
156
- 2. `P1 Clarification`
157
- 3. `P2 Planning`
158
- 4. `P3 Scaffold`
159
- 5. `P4 Development`
160
- 6. `P5 Integrated Verification`
161
- 7. `P6 Hardening`
162
- 8. `P7 Evaluation and Fix Verification`
163
- 9. `P8 Final Human Decision`
164
- 10. `P9 Submission Packaging`
165
- 11. `P10 Retrospective`
192
+ Machine-level config:
166
193
 
167
- Design constraints:
194
+ - `~/.config/slopmachine/config.json`
168
195
 
169
- - keep the owner shell small and load phase-specific skills when needed
170
- - prefer targeted reads and focused local verification during implementation
171
- - keep environment-specific state out of the package
172
- - do not package local runtime artifacts, caches, editor folders, or generated dependency environments
196
+ Current schema:
173
197
 
174
- Database dependency rule:
198
+ ```json
199
+ {
200
+ "upload": {
201
+ "endpoint": "https://<project-ref>.supabase.co/functions/v1/slopmachine-upload",
202
+ "token": "sm_u_...",
203
+ "timeoutMs": 30000
204
+ }
205
+ }
206
+ ```
175
207
 
176
- - database dependencies must be provisioned by initialization scripts, migrations, container startup hooks, or equivalent runtime setup
177
- - do not hardcode database-specific environment state into packaged assets
178
- - do not ship database files such as `.db`, `.sqlite`, dumps, or seeded local database artifacts in the package
208
+ OpenCode config managed by setup:
179
209
 
180
- For this package specifically, the installer ships workflow logic and templates only. It does not ship database dependency files or packaged database state.
210
+ - `~/.config/opencode/opencode.json`
181
211
 
182
- ## Installed Configuration
212
+ Packaged MCPs managed by setup:
183
213
 
184
- Main locations:
214
+ - `context7`
215
+ - `exa`
185
216
 
186
- - agents: `~/.config/opencode/agents/`
187
- - skills: `~/.agents/skills/`
188
- - OpenCode config: `~/.config/opencode/opencode.json`
189
- - packaged workflow files: `~/slopmachine/`
217
+ ## Installed Assets
190
218
 
191
- Installed agents:
219
+ Agents:
192
220
 
193
221
  - `~/.config/opencode/agents/slopmachine.md`
222
+ - `~/.config/opencode/agents/slopmachine-claude.md`
194
223
  - `~/.config/opencode/agents/developer.md`
195
224
 
196
- Installed skills:
197
-
198
- - `~/.agents/skills/clarification-gate/`
199
- - `~/.agents/skills/developer-session-lifecycle/`
200
- - `~/.agents/skills/final-evaluation-orchestration/`
201
- - `~/.agents/skills/beads-operations/`
202
- - `~/.agents/skills/planning-guidance/`
203
- - `~/.agents/skills/planning-gate/`
204
- - `~/.agents/skills/scaffold-guidance/`
205
- - `~/.agents/skills/development-guidance/`
206
- - `~/.agents/skills/verification-gates/`
207
- - `~/.agents/skills/integrated-verification/`
208
- - `~/.agents/skills/hardening-gate/`
209
- - `~/.agents/skills/evaluation-triage/`
210
- - `~/.agents/skills/submission-packaging/`
211
- - `~/.agents/skills/retrospective-analysis/`
212
- - `~/.agents/skills/owner-evidence-discipline/`
213
- - `~/.agents/skills/report-output-discipline/`
214
- - `~/.agents/skills/frontend-design/`
215
-
216
- Installed workflow files under `~/slopmachine/`:
217
-
218
- - `backend-evaluation-prompt.md`
219
- - `frontend-evaluation-prompt.md`
220
- - `templates/AGENTS.md`
221
- - `workflow-init.js`
222
- - `utils/strip_session_parent.py`
223
- - `utils/convert_ai_session.py`
224
- - `utils/cleanup_delivery_artifacts.py`
225
-
226
- OpenCode config entries ensured by `setup`:
227
-
228
- - plugin: `oc-chatgpt-multi-auth`
229
- - MCP server: `chrome-devtools`
230
- - MCP server: `context7`
231
- - MCP server: `exa`
232
- - MCP server: `shadcn` disabled by default
233
-
234
- These are the user-editable locations if you want to customize agents, skills, plugins, or MCP configuration after setup.
225
+ Skills:
226
+
227
+ - installed under `~/.agents/skills/`
228
+
229
+ Claude runtime assets:
230
+
231
+ - `~/.claude/agents/developer.md`
232
+ - `~/.claude/skills/frontend-design/`
233
+
234
+ Workflow files:
235
+
236
+ - installed under `~/slopmachine/`
237
+
238
+ ## Verification
239
+
240
+ Package-level check:
241
+
242
+ ```bash
243
+ npm run check
244
+ ```
245
+
246
+ Basic machine verification:
247
+
248
+ ```bash
249
+ slopmachine --help
250
+ slopmachine set-token
251
+ slopmachine setup
252
+ ```
253
+
254
+ `send-data` verification:
255
+
256
+ ```bash
257
+ slopmachine send-data <owner-session-id> --dry-run --endpoint "https://<project-ref>.supabase.co/functions/v1/slopmachine-upload"
258
+ ```
259
+
260
+ ## Notes
261
+
262
+ - the upload token is machine-level state and is not stored in the repo
263
+ - the owner session id is currently supplied manually to `send-data`
264
+ - developer session ids come from `.ai/metadata.json`
265
+ - broad workflow files and session exports live at workspace root, not inside `repo/`
package/RELEASE.md CHANGED
@@ -74,8 +74,11 @@ Check that the tarball includes:
74
74
  And specifically verify that the tarball includes the current workflow assets:
75
75
 
76
76
  - `assets/agents/slopmachine.md`
77
+ - `assets/agents/slopmachine-claude.md`
77
78
  - `assets/agents/developer.md`
79
+ - `assets/claude/agents/developer.md`
78
80
  - `assets/skills/clarification-gate/`
81
+ - `assets/skills/claude-worker-management/`
79
82
  - `assets/skills/planning-guidance/`
80
83
  - `assets/skills/submission-packaging/`
81
84
  - `assets/slopmachine/templates/AGENTS.md`
@@ -32,6 +32,7 @@ Read and follow `AGENTS.md` before implementing.
32
32
  - do real verification, not confidence theater
33
33
  - keep moving until the assigned work is materially complete or concretely blocked
34
34
  - do not stop for unnecessary intermediate check-ins
35
+ - use independent engineering judgment; do not behave like a passive worker waiting to be corrected later
35
36
 
36
37
  ## Requirements And Planning
37
38
 
@@ -41,18 +42,28 @@ Before coding:
41
42
  - surface meaningful ambiguity instead of silently guessing
42
43
  - make the plan concrete enough to drive real implementation
43
44
  - keep frontend/backend surfaces aligned when both sides matter
45
+ - check prompt-fit before reporting completion; if the requested result still has visible gaps, keep working or call them out explicitly
44
46
 
45
47
  Do not narrow scope for convenience.
46
48
 
49
+ Do not introduce convenience-based simplifications, `v1` reductions, future-phase deferrals, actor/model reductions, or workflow omissions unless one of these is true:
50
+
51
+ - the original prompt explicitly allows it
52
+ - the approved clarification explicitly allows it
53
+ - the owner explicitly instructs it in the current session
54
+
55
+ If a simplification would make implementation easier but is not explicitly authorized, keep the full prompt scope and plan the real complexity instead.
56
+
47
57
  ## Execution Model
48
58
 
49
59
  - implement real behavior, not placeholders
50
60
  - keep user-facing and admin-facing flows complete through their real surfaces
51
61
  - verify the changed area locally and realistically before reporting completion
52
- - update repo-local docs such as `README.md` and `./docs/*` when behavior or run/test instructions change
53
- - keep repo-local docs and code structure statically reviewable; do not rely on runtime success alone to make the project understandable
62
+ - keep `README.md` as the only documentation file inside the repo unless the user explicitly asks for something else
63
+ - keep the repo self-sufficient and statically reviewable through code plus `README.md`; do not rely on runtime success alone to make the project understandable
54
64
  - keep the repo self-sufficient; do not make it depend on parent-directory docs or sibling artifacts for startup, build/preview, configuration, verification, or basic understanding
55
65
  - do not touch workflow or rulebook files such as `AGENTS.md` unless explicitly asked
66
+ - if the work changes acceptance-critical docs or contracts, review those docs yourself before replying instead of assuming the owner will catch inconsistencies later
56
67
 
57
68
  ## Verification Cadence
58
69
 
@@ -89,14 +100,42 @@ Selected-stack defaults:
89
100
  - do not hardcode secrets or leave prototype residue behind
90
101
  - when the project has database dependencies, keep database setup in `./init_db.sh` rather than scattered repo logic
91
102
  - do not hardcode database connection values or database bootstrap values anywhere in the repo
92
- - if the project uses mock, stub, fake, or local-data behavior, disclose that scope accurately in the repo-local documentation instead of implying real backend or production behavior
103
+ - for Dockerized web projects, do not require manual `export ...` steps for `docker compose up --build`
104
+ - for Dockerized web projects, prefer an automatically invoked dev-only runtime bootstrap script instead of checked-in `.env` files or hardcoded runtime values
105
+ - if the project uses mock, stub, fake, or local-data behavior, disclose that scope accurately in `README.md` instead of implying real backend or production behavior
93
106
  - if mock or interception behavior is enabled by default, document that clearly
94
- - disclose feature flags, debug/demo surfaces, and default enabled states clearly in repo-local docs when they exist
95
- - keep frontend state requirements explicit in code and repo-local docs for prompt-critical flows
107
+ - disclose feature flags, debug/demo surfaces, and default enabled states clearly in `README.md` when they exist
108
+ - keep frontend state requirements explicit in code and `README.md` for prompt-critical flows when they materially affect usage
96
109
  - use a shared logging path and avoid random print-style debugging as the durable implementation pattern
97
110
  - use a shared validation/error-handling path when validation materially affects the flow
98
111
  - do not hide missing failure handling behind fake-success paths
99
112
 
113
+ ## Completion Preflight
114
+
115
+ Before reporting a planning package, scaffold, implementation slice, or fix round as ready, run this preflight yourself:
116
+
117
+ - prompt-fit: does the result still satisfy the original request without silent narrowing?
118
+ - no convenience narrowing: did you avoid inventing unauthorized `v1` reductions, role simplifications, deferred workflows, or reduced enforcement models?
119
+ - consistency: do code, docs, route contracts, security notes, and runtime/test commands agree?
120
+ - flow completeness: are the user-facing and operator-facing flows touched by this work actually covered end to end?
121
+ - security and permissions: are auth, RBAC, object-level checks, sensitive actions, and audit implications handled where relevant?
122
+ - verification: did you run the strongest targeted checks that are appropriate without using owner-only broad gates?
123
+ - reviewability: can the owner review this work by reading the changed files and a small number of directly related files?
124
+ - test-coverage specificity: if the owner asked you to help shape coverage evidence, does it map concrete requirement/risk points to planned test files, key assertions, coverage status, and real remaining gaps rather than generic categories?
125
+
126
+ If any answer is no, fix it before replying or call out the blocker explicitly.
127
+
128
+ When you make an assumption, keep it prompt-preserving by default. If an assumption would reduce scope, mark it as unresolved instead of silently locking it in.
129
+
130
+ If the owner asks you to help shape test-coverage evidence, make it acceptance-grade on first pass:
131
+
132
+ - one explicit row or subsection per requirement/risk cluster
133
+ - planned test file or test layer named concretely
134
+ - key assertions named concretely
135
+ - coverage status called out explicitly
136
+ - real remaining gap or next test addition named explicitly
137
+ - include backend/fullstack auth/error/authorization/masking/filter/sort coverage where relevant
138
+
100
139
  ## Skills
101
140
 
102
141
  - use relevant framework or language skills when they materially help the current task
@@ -109,3 +148,13 @@ Selected-stack defaults:
109
148
  - always name the exact verification commands you ran and the concrete results they produced
110
149
  - if you ran no verification command for part of the work, say that explicitly instead of implying broader proof than you have
111
150
  - if a problem needs a real fix, fix it instead of explaining around it
151
+
152
+ Use this reply shape for substantive work:
153
+
154
+ 1. `Changed files` — exact files changed
155
+ 2. `What changed` — the concrete behavior/contract updates in those files
156
+ 3. `Why this should pass review` — prompt-fit, no unauthorized narrowing, and consistency check in 2-5 bullets
157
+ 4. `Verification` — exact commands run and exact results
158
+ 5. `Remaining risks` — only the real unresolved weaknesses, if any
159
+
160
+ Keep the reply compact. Point to the exact changed files and the narrow supporting files the owner should read next.