theslopmachine 0.7.7 → 0.9.9
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 +20 -9
- package/README.md +7 -8
- package/RELEASE.md +10 -3
- package/assets/agents/developer.md +40 -27
- package/assets/agents/slopmachine-claude.md +118 -83
- package/assets/agents/slopmachine.md +117 -82
- package/assets/claude/agents/developer.md +70 -33
- package/assets/skills/clarification-gate/SKILL.md +70 -198
- package/assets/skills/claude-worker-management/SKILL.md +115 -66
- package/assets/skills/developer-session-lifecycle/SKILL.md +15 -18
- package/assets/skills/development-guidance/SKILL.md +34 -13
- package/assets/skills/evaluation-triage/SKILL.md +40 -31
- package/assets/skills/final-evaluation-orchestration/SKILL.md +124 -66
- package/assets/skills/integrated-verification/SKILL.md +32 -17
- package/assets/skills/planning-gate/SKILL.md +485 -192
- package/assets/skills/planning-guidance/SKILL.md +106 -267
- package/assets/skills/retrospective-analysis/SKILL.md +1 -1
- package/assets/skills/scaffold-guidance/SKILL.md +20 -15
- package/assets/skills/submission-packaging/SKILL.md +25 -11
- package/assets/skills/verification-gates/SKILL.md +89 -76
- package/assets/slopmachine/backend-evaluation-prompt.md +1 -1
- package/assets/slopmachine/clarifier-agent-prompt.md +182 -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 +222 -0
- package/assets/slopmachine/phase-1-design-prompt.md +450 -0
- package/assets/slopmachine/phase-1-design-template.md +530 -0
- package/assets/slopmachine/phase-2-execution-planning-prompt.md +484 -0
- package/assets/slopmachine/phase-2-plan-template.md +602 -0
- package/assets/slopmachine/scaffold-playbooks/android-kotlin-compose.md +13 -21
- package/assets/slopmachine/scaffold-playbooks/android-kotlin-views.md +16 -69
- package/assets/slopmachine/scaffold-playbooks/android-native-java.md +12 -12
- package/assets/slopmachine/scaffold-playbooks/angular-default.md +8 -60
- package/assets/slopmachine/scaffold-playbooks/backend-baseline.md +4 -20
- package/assets/slopmachine/scaffold-playbooks/backend-family-matrix.md +12 -12
- package/assets/slopmachine/scaffold-playbooks/django-default.md +4 -61
- package/assets/slopmachine/scaffold-playbooks/docker-baseline.md +15 -58
- package/assets/slopmachine/scaffold-playbooks/electron-vite-default.md +5 -5
- package/assets/slopmachine/scaffold-playbooks/expo-react-native-default.md +4 -4
- package/assets/slopmachine/scaffold-playbooks/fastapi-default.md +4 -41
- package/assets/slopmachine/scaffold-playbooks/frontend-baseline.md +8 -30
- package/assets/slopmachine/scaffold-playbooks/frontend-family-matrix.md +11 -11
- package/assets/slopmachine/scaffold-playbooks/generic-unknown-tech-guide.md +8 -8
- package/assets/slopmachine/scaffold-playbooks/go-chi-default.md +4 -61
- package/assets/slopmachine/scaffold-playbooks/ios-linux-portable.md +4 -4
- package/assets/slopmachine/scaffold-playbooks/ios-native-objective-c.md +1 -1
- package/assets/slopmachine/scaffold-playbooks/ios-native-swift.md +15 -15
- package/assets/slopmachine/scaffold-playbooks/laravel-default.md +8 -81
- package/assets/slopmachine/scaffold-playbooks/livewire-default.md +8 -101
- package/assets/slopmachine/scaffold-playbooks/platform-family-matrix.md +8 -8
- package/assets/slopmachine/scaffold-playbooks/selection-matrix.md +8 -8
- package/assets/slopmachine/scaffold-playbooks/spring-boot-default.md +7 -89
- package/assets/slopmachine/scaffold-playbooks/tauri-default.md +14 -26
- package/assets/slopmachine/scaffold-playbooks/vue-vite-default.md +8 -30
- package/assets/slopmachine/scaffold-playbooks/web-default.md +3 -3
- package/assets/slopmachine/templates/AGENTS.md +57 -11
- package/assets/slopmachine/templates/CLAUDE.md +57 -11
- package/assets/slopmachine/templates/plan.md +585 -32
- package/assets/slopmachine/test-coverage-prompt.md +17 -4
- package/assets/slopmachine/utils/claude_live_common.mjs +110 -9
- 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 +31 -2
- package/assets/slopmachine/utils/claude_wait_for_rate_limit_reset.mjs +14 -1
- package/assets/slopmachine/utils/claude_worker_common.mjs +11 -0
- package/assets/slopmachine/utils/cleanup_delivery_artifacts.py +2 -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 +67 -30
- package/bin/slopmachine.js +0 -0
- package/package.json +1 -1
- package/src/cli.js +1 -1
- package/src/constants.js +8 -1
- package/src/init.js +50 -142
- package/src/install.js +85 -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,13 +65,21 @@ slopmachine init -o
|
|
|
62
65
|
1. Intake and setup
|
|
63
66
|
2. Clarification
|
|
64
67
|
3. Planning
|
|
65
|
-
4.
|
|
66
|
-
5.
|
|
67
|
-
6.
|
|
68
|
-
7.
|
|
69
|
-
8.
|
|
70
|
-
9.
|
|
71
|
-
|
|
68
|
+
4. Development, starting with the scaffold step inside `plan.md`
|
|
69
|
+
5. Rough integrated verification and hardening: repo coherence and small owner-side fixes only, with no Docker execution
|
|
70
|
+
6. Evaluation and fix verification, including the final coverage and README audit inside `P7`
|
|
71
|
+
7. Final readiness decision
|
|
72
|
+
8. Submission packaging, including the owner-only Docker and `./run_tests.sh` check
|
|
73
|
+
9. Retrospective
|
|
74
|
+
|
|
75
|
+
The intended fast path is:
|
|
76
|
+
|
|
77
|
+
- plan well
|
|
78
|
+
- land the minimal scaffold baseline
|
|
79
|
+
- execute the plan end to end
|
|
80
|
+
- make the repo coherent
|
|
81
|
+
- proceed through evaluation without Docker execution
|
|
82
|
+
- after evaluation is complete, have the owner run and fix `docker compose up --build` and `./run_tests.sh` before submission closes
|
|
72
83
|
|
|
73
84
|
## Important notes
|
|
74
85
|
|
package/README.md
CHANGED
|
@@ -107,7 +107,7 @@ Current scaffold inventory includes:
|
|
|
107
107
|
- native Swift iOS
|
|
108
108
|
- native Objective-C iOS
|
|
109
109
|
|
|
110
|
-
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.
|
|
111
111
|
|
|
112
112
|
### `slopmachine init`
|
|
113
113
|
|
|
@@ -128,13 +128,13 @@ slopmachine init -o
|
|
|
128
128
|
To adopt an existing project into a SlopMachine workspace and request a later workflow starting phase:
|
|
129
129
|
|
|
130
130
|
```bash
|
|
131
|
-
slopmachine init --adopt --phase
|
|
131
|
+
slopmachine init --adopt --phase P3
|
|
132
132
|
```
|
|
133
133
|
|
|
134
134
|
Equivalent smoother existing-project bootstrap:
|
|
135
135
|
|
|
136
136
|
```bash
|
|
137
|
-
slopmachine init --continue-from
|
|
137
|
+
slopmachine init --continue-from P3
|
|
138
138
|
```
|
|
139
139
|
|
|
140
140
|
What it creates:
|
|
@@ -144,19 +144,17 @@ What it creates:
|
|
|
144
144
|
- `.tmp/`
|
|
145
145
|
- `metadata.json`
|
|
146
146
|
- `.ai/metadata.json`
|
|
147
|
-
- `.ai/pre-planning-brief.md`
|
|
148
|
-
- `.ai/clarification-options.md`
|
|
149
|
-
- `.ai/clarification-prompt.md`
|
|
150
147
|
- `.ai/startup-context.md`
|
|
151
148
|
- root `.beads/`
|
|
152
149
|
- `repo/AGENTS.md`
|
|
150
|
+
- `repo/CLAUDE.md`
|
|
153
151
|
- `repo/plan.md`
|
|
154
152
|
- `repo/.claude/settings.json`
|
|
155
|
-
- `repo/CLAUDE.md` is not created by default, but `slopmachine-claude` may choose it during `P1`
|
|
156
153
|
- `repo/README.md`
|
|
157
154
|
- `docs/questions.md`
|
|
158
155
|
- `docs/design.md`
|
|
159
156
|
- `docs/api-spec.md`
|
|
157
|
+
- `docs/plan.md`
|
|
160
158
|
- `docs/test-coverage.md`
|
|
161
159
|
|
|
162
160
|
Important details:
|
|
@@ -169,10 +167,11 @@ Important details:
|
|
|
169
167
|
- `project_type` should use only `fullstack`, `backend`, `android`, `ios`, `desktop`, or `web` when known
|
|
170
168
|
- Beads lives in the workspace root, not inside `repo/`
|
|
171
169
|
- `repo/.claude/settings.json` seeds Claude Code to use the custom `developer` agent by default for that repo
|
|
170
|
+
- final packaging moves `repo/plan.md` to parent-root `docs/plan.md` and removes repo-local `AGENTS.md`, `CLAUDE.md`, and `plan.md` from the delivered `repo/`
|
|
172
171
|
- after non-`-o` bootstrap, the command prints the exact `cd repo` next step so you can continue immediately
|
|
173
172
|
- `--adopt` moves the current project files into `repo/`, preserves root workflow state in the parent workspace, and skips the automatic bootstrap commit
|
|
174
173
|
- `--continue-from <PX>` is a smoother alias for existing-project bootstrap; it implies adoption mode and seeds the requested start phase in one step
|
|
175
|
-
- 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`
|
|
174
|
+
- 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`
|
|
176
175
|
- 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
|
|
177
176
|
- 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
|
|
178
177
|
- `--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
|
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,7 +23,7 @@ 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
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
|
|
|
@@ -35,7 +35,7 @@ Read and follow `AGENTS.md` before implementing. If `plan.md` exists and has bee
|
|
|
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,34 +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
67
|
- read the relevant accepted plan section before implementing the next `plan.md` workstream
|
|
68
|
-
- do not wait
|
|
69
|
-
- treat
|
|
70
|
-
- if the current work is scaffold
|
|
71
|
-
- if scaffold instructions are still vague about the playbook or bootstrap command, raise that as a planning gap instead of improvising a new
|
|
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
|
|
72
73
|
- treat the execution file tree and owned-file map in `plan.md` as real execution boundaries, not decorative planning notes
|
|
73
74
|
- for adopted projects, inspect the current repo tree first and use the accepted `plan.md` delta tree rather than assuming a greenfield layout
|
|
74
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
|
|
75
|
-
- when `plan.md` marks independent sections as parallelizable,
|
|
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
|
|
76
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
|
|
77
79
|
|
|
78
|
-
When
|
|
80
|
+
When instructed to plan without coding yet:
|
|
79
81
|
|
|
80
82
|
- produce an exhaustive, section-addressable implementation plan rather than a high-level summary
|
|
81
83
|
- prefer writing almost all important implementation decisions down now instead of deferring them to coding time
|
|
82
84
|
- make unresolved items rare, narrow, and explicit
|
|
83
|
-
- if
|
|
84
|
-
-
|
|
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
|
|
85
90
|
|
|
86
91
|
## Execution Model
|
|
87
92
|
|
|
@@ -97,10 +102,10 @@ When the project lead asks for planning without coding yet:
|
|
|
97
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
|
|
98
103
|
- keep `README.md` as the primary documentation file inside the repo; `plan.md` is the explicit execution-plan exception
|
|
99
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
|
|
100
|
-
- keep the repo self-sufficient and statically reviewable through code plus `README.md
|
|
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
|
|
101
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
|
|
102
107
|
- do not touch workflow or rulebook files such as `AGENTS.md` unless explicitly asked
|
|
103
|
-
- 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
|
|
104
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`
|
|
105
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
|
|
106
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
|
|
@@ -111,14 +116,19 @@ When the project lead asks for planning without coding yet:
|
|
|
111
116
|
|
|
112
117
|
- before deeper implementation, do a quick serial-versus-parallel check instead of defaulting to one long serial branch
|
|
113
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
|
|
114
|
-
-
|
|
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
|
|
115
122
|
- good parallel candidates include independent repo reading, verification passes, separate test additions, and implementation branches that touch different modules or well-separated files
|
|
116
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
|
|
117
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
|
|
118
127
|
- respect the owned-files map from the accepted plan and do not casually cross into another branch's files
|
|
119
128
|
- after fan-in, reconcile the branches yourself, resolve any overlap cleanly, and run final targeted verification on the integrated result before reporting completion
|
|
120
|
-
- 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
|
|
121
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
|
|
122
132
|
|
|
123
133
|
## Git Discipline
|
|
124
134
|
|
|
@@ -144,10 +154,12 @@ Broad commands you are not allowed to run during ordinary work:
|
|
|
144
154
|
|
|
145
155
|
- never run `./run_tests.sh`
|
|
146
156
|
- never run `docker compose up --build`
|
|
147
|
-
- never run
|
|
148
|
-
- never run
|
|
149
|
-
-
|
|
157
|
+
- never run any other Docker runtime, Compose, or containerized broad-verification command that stands in for those documented final commands
|
|
158
|
+
- never run browser E2E or Playwright during ordinary implementation work
|
|
159
|
+
- never run full test suites during ordinary implementation work unless explicitly instructed to run that exact command
|
|
160
|
+
- do not use those commands even if they are documented in the repo, requested by the owner, suggested by a playbook, implied by `plan.md`, or look convenient for debugging
|
|
150
161
|
- 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
|
|
162
|
+
- do not run Docker-based runtime/test commands under any circumstances before `P9`, including when explicitly asked during planning, development, `P5`, or `P7`; the owner handles final Docker and `./run_tests.sh` verification after evaluation is complete
|
|
151
163
|
|
|
152
164
|
Your job is to make the broader verification likely to pass without running it yourself.
|
|
153
165
|
|
|
@@ -191,14 +203,14 @@ Before reporting work as ready, run this preflight yourself:
|
|
|
191
203
|
- flow completeness: are the user-facing and operator-facing flows touched by this work actually covered end to end?
|
|
192
204
|
- security and permissions: are auth, RBAC, object-level checks, sensitive actions, and audit implications handled where relevant?
|
|
193
205
|
- verification: did you run the strongest targeted checks that are appropriate without using lead-only broad gates?
|
|
194
|
-
- reviewability: can the
|
|
195
|
-
- test-coverage specificity: if
|
|
206
|
+
- reviewability: can the change be reviewed by reading the changed files and a small number of directly related files?
|
|
207
|
+
- 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?
|
|
196
208
|
|
|
197
209
|
If any answer is no, fix it before replying or call out the blocker explicitly.
|
|
198
210
|
|
|
199
211
|
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.
|
|
200
212
|
|
|
201
|
-
If
|
|
213
|
+
If asked to help shape test-coverage evidence, make it acceptance-grade on first pass:
|
|
202
214
|
|
|
203
215
|
- one explicit row or subsection per requirement/risk cluster
|
|
204
216
|
- planned test file or test layer named concretely
|
|
@@ -220,16 +232,17 @@ If the project lead asks you to help shape test-coverage evidence, make it accep
|
|
|
220
232
|
- if you ran no verification command for part of the work, say that explicitly instead of implying broader proof than you have
|
|
221
233
|
- if a problem needs a real fix, fix it instead of explaining around it
|
|
222
234
|
|
|
223
|
-
Default reply shape for ordinary development follow-up,
|
|
235
|
+
Default reply shape for ordinary development follow-up, final release-readiness correction, and fix responses:
|
|
224
236
|
|
|
225
237
|
1. short summary
|
|
226
238
|
2. exact changed files
|
|
227
239
|
3. exact verification commands and results
|
|
228
|
-
4.
|
|
240
|
+
4. launched parallel lanes plus any skipped planned lanes with exact reasons when parallel fan-out was part of the work
|
|
241
|
+
5. real unresolved issues only
|
|
229
242
|
|
|
230
|
-
Keep the reply compact. Point to the exact changed files and the narrow supporting files
|
|
243
|
+
Keep the reply compact. Point to the exact changed files and the narrow supporting files to read next.
|
|
231
244
|
|
|
232
|
-
Use the larger reply shape only when
|
|
245
|
+
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:
|
|
233
246
|
|
|
234
247
|
1. `Changed files` — exact files changed
|
|
235
248
|
2. `What changed` — the concrete behavior/contract updates in those files
|