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.
- package/MANUAL.md +12 -10
- package/README.md +11 -10
- package/RELEASE.md +10 -3
- package/assets/agents/developer.md +62 -31
- package/assets/agents/slopmachine-claude.md +102 -70
- package/assets/agents/slopmachine.md +107 -68
- package/assets/claude/agents/developer.md +89 -29
- package/assets/skills/clarification-gate/SKILL.md +67 -198
- package/assets/skills/claude-worker-management/SKILL.md +118 -65
- package/assets/skills/developer-session-lifecycle/SKILL.md +8 -10
- package/assets/skills/development-guidance/SKILL.md +52 -28
- package/assets/skills/evaluation-triage/SKILL.md +1 -1
- package/assets/skills/hardening-gate/SKILL.md +4 -94
- package/assets/skills/integrated-verification/SKILL.md +49 -41
- package/assets/skills/planning-gate/SKILL.md +460 -166
- package/assets/skills/planning-guidance/SKILL.md +95 -240
- package/assets/skills/retrospective-analysis/SKILL.md +1 -1
- package/assets/skills/scaffold-guidance/SKILL.md +22 -8
- package/assets/skills/submission-packaging/SKILL.md +8 -5
- package/assets/skills/verification-gates/SKILL.md +74 -60
- package/assets/slopmachine/backend-evaluation-prompt.md +1 -1
- package/assets/slopmachine/clarifier-agent-prompt.md +175 -0
- package/assets/slopmachine/exact-readme-template.md +326 -0
- package/assets/slopmachine/frontend-evaluation-prompt.md +1 -1
- package/assets/slopmachine/owner-verification-checklist.md +207 -0
- package/assets/slopmachine/phase-1-design-prompt.md +434 -0
- package/assets/slopmachine/phase-1-design-template.md +492 -0
- package/assets/slopmachine/phase-2-execution-planning-prompt.md +458 -0
- package/assets/slopmachine/phase-2-plan-template.md +587 -0
- package/assets/slopmachine/scaffold-playbooks/electron-vite-default.md +1 -1
- package/assets/slopmachine/templates/AGENTS.md +75 -11
- package/assets/slopmachine/templates/CLAUDE.md +75 -11
- package/assets/slopmachine/templates/plan.md +587 -0
- package/assets/slopmachine/test-coverage-prompt.md +17 -4
- package/assets/slopmachine/utils/claude_live_common.mjs +151 -7
- package/assets/slopmachine/utils/claude_live_hook.py +10 -0
- package/assets/slopmachine/utils/claude_live_launch.mjs +29 -1
- package/assets/slopmachine/utils/claude_live_status.mjs +6 -1
- package/assets/slopmachine/utils/claude_live_stop.mjs +6 -1
- package/assets/slopmachine/utils/claude_live_turn.mjs +33 -2
- package/assets/slopmachine/utils/claude_wait_for_rate_limit_reset.mjs +22 -2
- package/assets/slopmachine/utils/claude_worker_common.mjs +9 -0
- package/assets/slopmachine/utils/cleanup_delivery_artifacts.py +1 -0
- package/assets/slopmachine/utils/normalize_claude_session.py +434 -167
- package/assets/slopmachine/utils/package_claude_session.mjs +51 -16
- package/assets/slopmachine/utils/prepare_evaluation_prompt.mjs +7 -1
- package/assets/slopmachine/utils/prepare_strict_audit_workspace.mjs +7 -1
- package/assets/slopmachine/utils/run_with_timeout.mjs +250 -0
- package/assets/slopmachine/workflow-init.js +69 -33
- package/bin/slopmachine.js +0 -0
- package/package.json +1 -1
- package/src/cli.js +1 -1
- package/src/constants.js +9 -1
- package/src/init.js +83 -162
- package/src/install.js +85 -0
- 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
|
-
-
|
|
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.
|
|
66
|
-
5.
|
|
67
|
-
6. Integrated verification
|
|
68
|
-
7.
|
|
69
|
-
8.
|
|
70
|
-
9.
|
|
71
|
-
10.
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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:
|
|
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
|
|
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
|
|
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-
|
|
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
|
|
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
|
|
68
|
-
- do not wait
|
|
69
|
-
- treat
|
|
70
|
-
|
|
71
|
-
|
|
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
|
|
77
|
-
-
|
|
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
|
|
91
|
-
- keep `README.md` as the
|
|
92
|
-
-
|
|
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
|
|
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
|
-
-
|
|
105
|
-
-
|
|
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
|
|
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
|
|
129
|
-
- never run full test suites during ordinary
|
|
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
|
|
176
|
-
- test-coverage specificity: if
|
|
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
|
|
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
|
|
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.
|
|
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
|
|
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
|
|
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
|