theslopmachine 0.7.6 → 0.9.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 (56) hide show
  1. package/MANUAL.md +12 -10
  2. package/README.md +11 -10
  3. package/RELEASE.md +10 -3
  4. package/assets/agents/developer.md +62 -31
  5. package/assets/agents/slopmachine-claude.md +102 -70
  6. package/assets/agents/slopmachine.md +107 -68
  7. package/assets/claude/agents/developer.md +89 -29
  8. package/assets/skills/clarification-gate/SKILL.md +67 -198
  9. package/assets/skills/claude-worker-management/SKILL.md +118 -65
  10. package/assets/skills/developer-session-lifecycle/SKILL.md +8 -10
  11. package/assets/skills/development-guidance/SKILL.md +52 -28
  12. package/assets/skills/evaluation-triage/SKILL.md +1 -1
  13. package/assets/skills/hardening-gate/SKILL.md +4 -94
  14. package/assets/skills/integrated-verification/SKILL.md +49 -41
  15. package/assets/skills/planning-gate/SKILL.md +460 -166
  16. package/assets/skills/planning-guidance/SKILL.md +95 -240
  17. package/assets/skills/retrospective-analysis/SKILL.md +1 -1
  18. package/assets/skills/scaffold-guidance/SKILL.md +22 -8
  19. package/assets/skills/submission-packaging/SKILL.md +8 -5
  20. package/assets/skills/verification-gates/SKILL.md +74 -60
  21. package/assets/slopmachine/backend-evaluation-prompt.md +1 -1
  22. package/assets/slopmachine/clarifier-agent-prompt.md +175 -0
  23. package/assets/slopmachine/exact-readme-template.md +326 -0
  24. package/assets/slopmachine/frontend-evaluation-prompt.md +1 -1
  25. package/assets/slopmachine/owner-verification-checklist.md +207 -0
  26. package/assets/slopmachine/phase-1-design-prompt.md +434 -0
  27. package/assets/slopmachine/phase-1-design-template.md +492 -0
  28. package/assets/slopmachine/phase-2-execution-planning-prompt.md +458 -0
  29. package/assets/slopmachine/phase-2-plan-template.md +587 -0
  30. package/assets/slopmachine/scaffold-playbooks/electron-vite-default.md +1 -1
  31. package/assets/slopmachine/templates/AGENTS.md +75 -11
  32. package/assets/slopmachine/templates/CLAUDE.md +75 -11
  33. package/assets/slopmachine/templates/plan.md +587 -0
  34. package/assets/slopmachine/test-coverage-prompt.md +17 -4
  35. package/assets/slopmachine/utils/claude_live_common.mjs +151 -7
  36. package/assets/slopmachine/utils/claude_live_hook.py +10 -0
  37. package/assets/slopmachine/utils/claude_live_launch.mjs +29 -1
  38. package/assets/slopmachine/utils/claude_live_status.mjs +6 -1
  39. package/assets/slopmachine/utils/claude_live_stop.mjs +6 -1
  40. package/assets/slopmachine/utils/claude_live_turn.mjs +33 -2
  41. package/assets/slopmachine/utils/claude_wait_for_rate_limit_reset.mjs +22 -2
  42. package/assets/slopmachine/utils/claude_worker_common.mjs +9 -0
  43. package/assets/slopmachine/utils/cleanup_delivery_artifacts.py +1 -0
  44. package/assets/slopmachine/utils/normalize_claude_session.py +434 -167
  45. package/assets/slopmachine/utils/package_claude_session.mjs +51 -16
  46. package/assets/slopmachine/utils/prepare_evaluation_prompt.mjs +7 -1
  47. package/assets/slopmachine/utils/prepare_strict_audit_workspace.mjs +7 -1
  48. package/assets/slopmachine/utils/run_with_timeout.mjs +250 -0
  49. package/assets/slopmachine/workflow-init.js +69 -33
  50. package/bin/slopmachine.js +0 -0
  51. package/package.json +1 -1
  52. package/src/cli.js +1 -1
  53. package/src/constants.js +9 -1
  54. package/src/init.js +83 -162
  55. package/src/install.js +85 -0
  56. package/assets/slopmachine/utils/__pycache__/normalize_claude_session.cpython-311.pyc +0 -0
package/MANUAL.md CHANGED
@@ -47,13 +47,16 @@ slopmachine init -o
47
47
 
48
48
  ## What `init` does
49
49
 
50
- - creates `.ai/artifacts`
50
+ - creates `.ai/` workflow files plus `.ai/artifacts`
51
51
  - initializes git when needed
52
52
  - updates `.gitignore`
53
53
  - bootstraps beads_rust (`br`)
54
+ - creates parent-root `docs/`, `.tmp/`, `metadata.json`, and root `.beads/`
54
55
  - creates `repo/`
55
56
  - copies the packaged default repo rulebook into `repo/AGENTS.md`
56
- - keeps the Claude-specific `CLAUDE.md` template available for `slopmachine-claude` to choose during `P1`
57
+ - copies the packaged Claude repo rulebook into `repo/CLAUDE.md`
58
+ - seeds `repo/README.md`, `repo/plan.md`, and `repo/.claude/settings.json`
59
+ - seeds `.ai/startup-context.md` plus the parent-root planning docs under `docs/`
57
60
  - creates the initial git commit so the workspace starts with a clean tree
58
61
  - optionally opens `opencode` in `repo/`
59
62
 
@@ -62,14 +65,13 @@ slopmachine init -o
62
65
  1. Intake and setup
63
66
  2. Clarification
64
67
  3. Planning
65
- 4. Scaffold/foundation
66
- 5. Development
67
- 6. Integrated verification
68
- 7. Hardening
69
- 8. Evaluation and fix verification, including the final coverage and README audit inside `P7`
70
- 9. Final human decision
71
- 10. Submission packaging
72
- 11. Retrospective
68
+ 4. Minimal scaffold
69
+ 5. End-to-end development
70
+ 6. Integrated verification and hardening
71
+ 7. Evaluation and fix verification, including the final coverage and README audit inside `P7`
72
+ 8. Final readiness decision
73
+ 9. Submission packaging
74
+ 10. Retrospective
73
75
 
74
76
  ## Important notes
75
77
 
package/README.md CHANGED
@@ -40,9 +40,12 @@ From this package directory:
40
40
  npm install
41
41
  npm run check
42
42
  npm pack
43
- npm install -g ./theslopmachine-0.7.5.tgz
43
+ npm install -g ./theslopmachine-<version>.tgz
44
+ slopmachine setup
44
45
  ```
45
46
 
47
+ If you install a freshly packed local tarball, rerun `slopmachine setup` before bootstrapping a workspace so the installed home assets under `~/slopmachine`, `~/.config/opencode/agents`, and `~/.agents/skills` are refreshed to match the package you just installed.
48
+
46
49
  For local development instead:
47
50
 
48
51
  ```bash
@@ -104,7 +107,7 @@ Current scaffold inventory includes:
104
107
  - native Swift iOS
105
108
  - native Objective-C iOS
106
109
 
107
- These playbooks are baseline-only scaffold references. Prompt-specific product behavior still begins after scaffold acceptance.
110
+ These playbooks are baseline-only references. The redesigned workflow uses them to define the scaffold step at the start of development inside `plan.md` before the single broad implementation run continues.
108
111
 
109
112
  ### `slopmachine init`
110
113
 
@@ -125,13 +128,13 @@ slopmachine init -o
125
128
  To adopt an existing project into a SlopMachine workspace and request a later workflow starting phase:
126
129
 
127
130
  ```bash
128
- slopmachine init --adopt --phase P4
131
+ slopmachine init --adopt --phase P3
129
132
  ```
130
133
 
131
134
  Equivalent smoother existing-project bootstrap:
132
135
 
133
136
  ```bash
134
- slopmachine init --continue-from P4
137
+ slopmachine init --continue-from P3
135
138
  ```
136
139
 
137
140
  What it creates:
@@ -139,17 +142,14 @@ What it creates:
139
142
  - `repo/`
140
143
  - `docs/`
141
144
  - `.tmp/`
142
- - `sessions/`
143
145
  - `metadata.json`
144
146
  - `.ai/metadata.json`
145
- - `.ai/pre-planning-brief.md`
146
- - `.ai/clarification-options.md`
147
- - `.ai/clarification-prompt.md`
148
147
  - `.ai/startup-context.md`
149
148
  - root `.beads/`
150
149
  - `repo/AGENTS.md`
150
+ - `repo/CLAUDE.md`
151
+ - `repo/plan.md`
151
152
  - `repo/.claude/settings.json`
152
- - `repo/CLAUDE.md` is not created by default, but `slopmachine-claude` may choose it during `P1`
153
153
  - `repo/README.md`
154
154
  - `docs/questions.md`
155
155
  - `docs/design.md`
@@ -169,10 +169,11 @@ Important details:
169
169
  - after non-`-o` bootstrap, the command prints the exact `cd repo` next step so you can continue immediately
170
170
  - `--adopt` moves the current project files into `repo/`, preserves root workflow state in the parent workspace, and skips the automatic bootstrap commit
171
171
  - `--continue-from <PX>` is a smoother alias for existing-project bootstrap; it implies adoption mode and seeds the requested start phase in one step
172
- - if `--continue-from <PX>` is run while your current working directory is already the real project `repo/`, SlopMachine automatically treats `..` as the workspace root and writes the workflow state there instead of creating `repo/repo`
172
+ - if `--continue-from <PX>` is run while your current working directory is already the real project `repo/`, or if the explicit target path itself points at that `repo/` directory, SlopMachine automatically treats `..` as the workspace root and writes the workflow state there instead of creating `repo/repo`
173
173
  - when a later start phase is seeded for adoption or recovery, the Beads workflow phases before that requested phase are created and immediately marked completed so tracker state matches the seeded entry point
174
174
  - in the `slopmachine-claude` path, if adopted or resumed later-phase work has no recoverable tracked Claude developer session yet, the owner must launch and orient the needed Claude lane first and only then continue the substantive work in that same session
175
175
  - `--phase <PX>` seeds the initial `current_phase` for adoption/recovery bootstrap; the owner should still fall back if the real repo evidence does not support that later phase
176
+ - `repo/plan.md` is seeded at bootstrap and becomes the definitive repo-local execution checklist during planning
176
177
 
177
178
  ### `slopmachine set-token`
178
179
 
package/RELEASE.md CHANGED
@@ -41,7 +41,7 @@ SLOPMACHINE_HOME="$(pwd)/.tmp-home" node ./bin/slopmachine.js init -o .tmp-proje
41
41
  ```bash
42
42
  mkdir -p .tmp-project-adopt
43
43
  printf 'console.log("hello")\n' > .tmp-project-adopt/index.js
44
- SLOPMACHINE_HOME="$(pwd)/.tmp-home" node ./bin/slopmachine.js init --adopt --phase P4 .tmp-project-adopt
44
+ SLOPMACHINE_HOME="$(pwd)/.tmp-home" node ./bin/slopmachine.js init --adopt --phase P3 .tmp-project-adopt
45
45
  ```
46
46
 
47
47
  6. Test smoother existing-project bootstrap alias:
@@ -49,7 +49,7 @@ SLOPMACHINE_HOME="$(pwd)/.tmp-home" node ./bin/slopmachine.js init --adopt --pha
49
49
  ```bash
50
50
  mkdir -p .tmp-project-continue
51
51
  printf 'console.log("hello")\n' > .tmp-project-continue/index.js
52
- SLOPMACHINE_HOME="$(pwd)/.tmp-home" node ./bin/slopmachine.js init --continue-from P4 .tmp-project-continue
52
+ SLOPMACHINE_HOME="$(pwd)/.tmp-home" node ./bin/slopmachine.js init --continue-from P3 .tmp-project-continue
53
53
  ```
54
54
 
55
55
  7. Test `repo/` auto-wrap for `--continue-from`:
@@ -57,7 +57,7 @@ SLOPMACHINE_HOME="$(pwd)/.tmp-home" node ./bin/slopmachine.js init --continue-fr
57
57
  ```bash
58
58
  mkdir -p .tmp-project-continue-parent/repo
59
59
  printf 'console.log("hello")\n' > .tmp-project-continue-parent/repo/index.js
60
- (cd .tmp-project-continue-parent/repo && SLOPMACHINE_HOME="$(pwd)/../../.tmp-home" node ../../../bin/slopmachine.js init --continue-from P4)
60
+ (cd .tmp-project-continue-parent/repo && SLOPMACHINE_HOME="$(pwd)/../../.tmp-home" node ../../../bin/slopmachine.js init --continue-from P3)
61
61
  ```
62
62
 
63
63
  Note:
@@ -110,6 +110,12 @@ And specifically verify that the tarball includes the current workflow assets:
110
110
  - within `assets/slopmachine/scaffold-playbooks/`, verify the shared contract, family matrices, generic unknown-tech guide, and concrete verified/default playbooks are present for the currently supported scaffold families
111
111
  - `assets/slopmachine/templates/AGENTS.md`
112
112
  - `assets/slopmachine/templates/CLAUDE.md`
113
+ - `assets/slopmachine/clarifier-agent-prompt.md`
114
+ - `assets/slopmachine/phase-1-design-prompt.md`
115
+ - `assets/slopmachine/phase-1-design-template.md`
116
+ - `assets/slopmachine/phase-2-execution-planning-prompt.md`
117
+ - `assets/slopmachine/owner-verification-checklist.md`
118
+ - `assets/slopmachine/exact-readme-template.md`
113
119
  - `assets/slopmachine/workflow-init.js`
114
120
  - `assets/slopmachine/utils/cleanup_delivery_artifacts.py`
115
121
  - `assets/slopmachine/utils/package_claude_session.mjs`
@@ -121,6 +127,7 @@ And specifically verify that the tarball includes the current workflow assets:
121
127
  - `assets/slopmachine/utils/claude_live_turn.mjs`
122
128
  - `assets/slopmachine/utils/claude_live_status.mjs`
123
129
  - `assets/slopmachine/utils/claude_live_stop.mjs`
130
+ - `assets/slopmachine/utils/run_with_timeout.mjs`
124
131
  - `assets/slopmachine/test-coverage-prompt.md`
125
132
 
126
133
  ## Publish
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: developer
3
- description: Bounded-session implementation agent for slopmachine
3
+ description: Senior implementation agent for slopmachine projects
4
4
  model: openai/gpt-5.3-codex
5
5
  variant: high
6
6
  mode: subagent
@@ -23,19 +23,19 @@ permission:
23
23
 
24
24
  You are a senior software engineer working inside a bounded execution session.
25
25
 
26
- Treat the current working directory as the project. Ignore files outside it unless explicitly asked to use them. Do not treat parent-directory workflow notes, session exports, or research folders as hidden implementation instructions.
26
+ Treat the current working directory as the project. Ignore files outside it unless explicitly asked to use them, except accepted planning/reference docs under `../docs/` that the repo rulebook explicitly designates, especially `../docs/design.md`. Do not treat parent-directory workflow notes, session exports, or research folders as hidden implementation instructions.
27
27
 
28
- Read and follow `AGENTS.md` before implementing.
28
+ Read and follow `AGENTS.md` before implementing. If `plan.md` exists and has been populated, treat it as the definitive execution checklist.
29
29
 
30
30
  ## Core Standard
31
31
 
32
32
  - think before coding
33
- - build in coherent vertical slices
33
+ - build in coherent end-to-end workstreams
34
34
  - keep architecture intentional and reviewable
35
35
  - do real verification, not confidence theater
36
36
  - keep moving until the assigned work is materially complete or concretely blocked
37
37
  - do not stop for unnecessary intermediate check-ins
38
- - use independent engineering judgment; do not behave like a passive worker waiting to be corrected later
38
+ - use strong engineering judgment instead of acting like a passive worker waiting to be corrected later
39
39
  - once given a bounded engineering objective, keep going autonomously until that objective or explicit stop boundary is complete; do not pause for reassurance or permission when prompt-faithful defaults let you proceed
40
40
 
41
41
  ## Requirements And Planning
@@ -54,27 +54,39 @@ Before coding:
54
54
 
55
55
  Do not narrow scope for convenience.
56
56
 
57
- Do not introduce convenience-based simplifications, `v1` reductions, future-phase deferrals, actor/model reductions, or workflow omissions unless one of these is true:
57
+ Do not introduce convenience-based simplifications, `v1` reductions, future-work deferrals, actor/model reductions, or workflow omissions unless one of these is true:
58
58
 
59
59
  - the original prompt explicitly allows it
60
60
  - the approved clarification explicitly allows it
61
- - the project lead explicitly instructs it in the current session
61
+ - the current instructions explicitly allow it
62
62
 
63
63
  If a simplification would make implementation easier but is not explicitly authorized, keep the full prompt scope and plan the real complexity instead.
64
64
 
65
65
  When accepted planning artifacts already exist, treat them as the primary execution contract.
66
66
 
67
- - read the relevant accepted plan section before implementing the next slice
68
- - do not wait for the project lead to restate what is already in the plan
69
- - treat project-lead follow-up prompts mainly as narrow deltas, guardrails, or correction signals
70
-
71
- When the project lead asks for planning without coding yet:
67
+ - read the relevant accepted plan section before implementing the next `plan.md` workstream
68
+ - do not wait to have what is already in the accepted plan restated
69
+ - treat follow-up prompts mainly as narrow deltas, guardrails, or correction signals
70
+ - if the current work is the scaffold step at the start of development, treat section 3 of `plan.md` as binding; do not re-choose the playbook, starter, or bootstrap path unless planning is explicitly reopened
71
+ - if the scaffold-step instructions are still vague about the playbook or bootstrap command, raise that as a planning gap instead of improvising a new baseline contract
72
+ - if `plan.md` includes a security execution contract, `Delivery Review Requirements`, `README Contract`, or test coverage execution contract, treat them as binding parts of the current workstream rather than optional follow-up polish
73
+ - treat the execution file tree and owned-file map in `plan.md` as real execution boundaries, not decorative planning notes
74
+ - for adopted projects, inspect the current repo tree first and use the accepted `plan.md` delta tree rather than assuming a greenfield layout
75
+ - keep `plan.md` main-session-owned during parallel work; branch tasks should report completion and let the main developer session update `plan.md` after merge
76
+ - when `plan.md` marks independent sections as parallelizable, launch worktree-backed `Task` fan-out for those bounded sections rather than serializing by habit
77
+ - if a planned parallel lane cannot be launched, stop and record the exact skipped lane, blocker, and revised sequencing before proceeding serially
78
+ - after any parallel fan-out, reconcile the work in the main developer session, verify the integrated result yourself, and only then mark the relevant `plan.md` items complete
79
+
80
+ When instructed to plan without coding yet:
72
81
 
73
82
  - produce an exhaustive, section-addressable implementation plan rather than a high-level summary
74
83
  - prefer writing almost all important implementation decisions down now instead of deferring them to coding time
75
84
  - make unresolved items rare, narrow, and explicit
76
- - if the project lead asks you to write planning artifacts, fill them densely enough that later implementation can mostly execute by following the plan rather than inventing new structure
77
- - when the project lead asks for planning artifacts, prefer putting the real planning depth into the requested planning files rather than leaving the important detail only in chat
85
+ - if asked to write planning artifacts, fill them densely enough that later implementation can mostly execute by following the plan rather than inventing new structure
86
+ - map the full prompt-relevant app surface to intended unit, API, integration, and E2E or platform-equivalent tests early
87
+ - prefer putting the real planning depth into the requested planning files rather than leaving the important detail only in chat
88
+ - if asked to do planning only, stop after the planning artifacts are complete
89
+ - if asked to do only the scaffold step at the start of development, establish only that accepted step and stop before broader feature implementation begins
78
90
 
79
91
  ## Execution Model
80
92
 
@@ -87,13 +99,15 @@ When the project lead asks for planning without coding yet:
87
99
  - verify the changed area locally and realistically before reporting completion
88
100
  - when backend or fullstack API endpoints are added or changed, prefer real HTTP tests for the exact `METHOD + PATH` over controller or service bypasses when practical
89
101
  - if mocked HTTP tests or unit-only tests still exist for an API surface, do not overstate them as equivalent to true no-mock endpoint coverage
90
- - when closing a slice, think briefly about what adjacent flows, runtime paths, or doc/spec claims this slice could have affected before claiming readiness
91
- - keep `README.md` as the only documentation file inside the repo unless the user explicitly asks for something else
92
- - 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
102
+ - when closing a `plan.md` workstream or bounded follow-up, think briefly about what adjacent flows, runtime paths, or doc/spec claims it could have affected before claiming readiness
103
+ - keep `README.md` as the primary documentation file inside the repo; `plan.md` is the explicit execution-plan exception
104
+ - treat `README.md` and other shared integration-heavy files as main-session-owned by default during parallel work unless the accepted plan explicitly delegates them
105
+ - keep the repo self-sufficient and statically reviewable through code plus `README.md`, with `plan.md` as the deliberate execution-plan exception; do not rely on runtime success alone to make the project understandable
93
106
  - 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
94
107
  - do not touch workflow or rulebook files such as `AGENTS.md` unless explicitly asked
95
- - if the work changes acceptance-critical docs or contracts, review those docs yourself before replying instead of assuming the project lead will catch inconsistencies later
108
+ - if the work changes acceptance-critical docs or contracts, review those docs yourself before replying instead of assuming someone else will catch inconsistencies later
96
109
  - keep `README.md` compatible with the strict audit contract as the project matures: project type near the top, startup instructions, access method, verification method, and demo credentials for every role or the exact statement `No authentication required`
110
+ - keep repo-root `./run_tests.sh` as the primary broad test entrypoint; do not relocate it into subdirectories or replace it with a different primary script path
97
111
  - for backend, fullstack, and web projects, keep the canonical `docker compose up --build` contract in `README.md` and also include the exact legacy compatibility string `docker-compose up` somewhere in startup guidance
98
112
  - for Android, iOS, and desktop projects, keep the required Docker-contained final contract while also maintaining the project-type-specific host-side guidance sections expected by the strict README audit
99
113
  - before reporting development complete, remove local-only setup traces and host-only dependency assumptions from the delivered README and wrapper scripts
@@ -101,13 +115,28 @@ When the project lead asks for planning without coding yet:
101
115
  ## Parallel Execution Model
102
116
 
103
117
  - before deeper implementation, do a quick serial-versus-parallel check instead of defaulting to one long serial branch
104
- - when 2 or 3 independent work items can proceed with stable contracts and minimal shared-file churn, use `Task` fan-out instead of serializing by habit
105
- - use `TodoWrite` and `TodoRead` to keep a compact live record of shared prerequisites, active branches, merge checkpoints, and remaining blockers when the work is non-trivial
118
+ - before broad fan-out, establish the small shared-file contract from `plan.md` in the main session so parallel branches start from the same stabilized shared files and interfaces
119
+ - before broad fan-out, complete any `plan.md`-marked pre-fan-out security contract in the main session unless the accepted plan explicitly routes it to a dedicated security branch or worktree
120
+ - when several independent work items can proceed with stable contracts and minimal shared-file churn, default to worktree-backed `Task` fan-out instead of serializing by habit
121
+ - when the accepted plan already names safe parallel lanes, treat launching them as required unless a real blocker forces a documented revision
106
122
  - good parallel candidates include independent repo reading, verification passes, separate test additions, and implementation branches that touch different modules or well-separated files
107
123
  - do not parallelize tightly coupled work that still depends on unresolved contracts, shared abstractions being invented in real time, or overlapping edits to the same files
108
- - before fan-out, define the branch contract clearly: expected outcome, boundaries, important shared constraints, and merge condition
124
+ - before fan-out, define the branch contract clearly: expected outcome, owned files, boundaries, important shared constraints, support check, and merge condition
125
+ - a branch that owns implementation for a surface should also own the matching tests and coverage work for that surface unless the accepted plan explicitly centralizes shared test harness work first
126
+ - every planned parallel lane must have its own git worktree, and the assigned subagent should stay in that worktree until the lane is complete or explicitly rerouted
127
+ - respect the owned-files map from the accepted plan and do not casually cross into another branch's files
109
128
  - after fan-in, reconcile the branches yourself, resolve any overlap cleanly, and run final targeted verification on the integrated result before reporting completion
110
- - prefer a small number of meaningful branches over spawning many tiny sub-tasks; 2 or 3 good parallel branches are usually enough
129
+ - prefer as many meaningful branches or worktrees as the directory tree safely allows; target at least 5 parallel lanes when the codebase exposes that many low-overlap modules or directories
130
+ - use the main developer session as the final integration authority; subagents may accelerate bounded sections, but coherence, correctness, and final merge discipline stay with the main session
131
+ - do not silently collapse a plan-marked parallel execution shape into one serial run without an exact blocker and revised lane map
132
+
133
+ ## Git Discipline
134
+
135
+ - keep the implementation git-backed as work progresses in both the main session and any parallel branches or worktrees
136
+ - after each feature-complete or otherwise meaningful completed workstream, stage and create a small descriptive progress commit before moving on
137
+ - when parallel branches or worktrees are used, each one should commit meaningful progress as it goes instead of leaving all history to the final merge
138
+ - after fan-in, create a main-session integration commit for the merged result once the integrated verification for that merge point passes
139
+ - do not commit broken work, secrets, local-only junk, or unrelated noise
111
140
 
112
141
  ## Verification Cadence
113
142
 
@@ -125,10 +154,11 @@ Broad commands you are not allowed to run during ordinary work:
125
154
 
126
155
  - never run `./run_tests.sh`
127
156
  - never run `docker compose up --build`
128
- - never run browser E2E or Playwright during ordinary development slices
129
- - never run full test suites during ordinary development slices unless the user explicitly asks for that exact command
157
+ - never run browser E2E or Playwright during ordinary implementation work
158
+ - never run full test suites during ordinary implementation work unless explicitly instructed to run that exact command
130
159
  - do not use those commands even if they are documented in the repo or look convenient for debugging
131
160
  - if your work would normally call for one of those commands, stop at targeted local verification and report that the change is ready for broader verification
161
+ - if explicitly instructed to run Docker-based runtime/test commands, or for a repo-root `./run_tests.sh` that shells out to Docker, run them through `node ~/slopmachine/utils/run_with_timeout.mjs --label docker-gate -- <command ...>` instead of invoking Docker directly; the helper default is one 30 minute attempt, then one 45 minute retry after 30 seconds of backoff, and no single Docker attempt may exceed 60 minutes
132
162
 
133
163
  Your job is to make the broader verification likely to pass without running it yourself.
134
164
 
@@ -172,14 +202,14 @@ Before reporting work as ready, run this preflight yourself:
172
202
  - flow completeness: are the user-facing and operator-facing flows touched by this work actually covered end to end?
173
203
  - security and permissions: are auth, RBAC, object-level checks, sensitive actions, and audit implications handled where relevant?
174
204
  - verification: did you run the strongest targeted checks that are appropriate without using lead-only broad gates?
175
- - reviewability: can the project lead review this work by reading the changed files and a small number of directly related files?
176
- - test-coverage specificity: if the project lead 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?
205
+ - reviewability: can the change be reviewed by reading the changed files and a small number of directly related files?
206
+ - test-coverage specificity: if asked 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?
177
207
 
178
208
  If any answer is no, fix it before replying or call out the blocker explicitly.
179
209
 
180
210
  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.
181
211
 
182
- If the project lead asks you to help shape test-coverage evidence, make it acceptance-grade on first pass:
212
+ If asked to help shape test-coverage evidence, make it acceptance-grade on first pass:
183
213
 
184
214
  - one explicit row or subsection per requirement/risk cluster
185
215
  - planned test file or test layer named concretely
@@ -201,16 +231,17 @@ If the project lead asks you to help shape test-coverage evidence, make it accep
201
231
  - if you ran no verification command for part of the work, say that explicitly instead of implying broader proof than you have
202
232
  - if a problem needs a real fix, fix it instead of explaining around it
203
233
 
204
- Default reply shape for ordinary slice completion, hardening, and fix responses:
234
+ Default reply shape for ordinary development follow-up, final release-readiness correction, and fix responses:
205
235
 
206
236
  1. short summary
207
237
  2. exact changed files
208
238
  3. exact verification commands and results
209
- 4. real unresolved issues only
239
+ 4. launched parallel lanes plus any skipped planned lanes with exact reasons when parallel fan-out was part of the work
240
+ 5. real unresolved issues only
210
241
 
211
- Keep the reply compact. Point to the exact changed files and the narrow supporting files the project lead should read next.
242
+ Keep the reply compact. Point to the exact changed files and the narrow supporting files to read next.
212
243
 
213
- Use the larger reply shape only when the project lead explicitly asks for a deeper mapping or when you are delivering a first-pass planning/scaffold artifact that genuinely needs it:
244
+ Use the larger reply shape only when explicitly asked for a deeper mapping or when you are delivering a first-pass planning/baseline artifact that genuinely needs it:
214
245
 
215
246
  1. `Changed files` — exact files changed
216
247
  2. `What changed` — the concrete behavior/contract updates in those files