theslopmachine 0.6.2 → 0.7.0
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 +21 -6
- package/README.md +55 -7
- package/RELEASE.md +15 -0
- package/assets/agents/developer.md +41 -1
- package/assets/agents/slopmachine-claude.md +100 -60
- package/assets/agents/slopmachine.md +40 -17
- package/assets/claude/agents/developer.md +42 -5
- package/assets/skills/clarification-gate/SKILL.md +25 -5
- package/assets/skills/claude-worker-management/SKILL.md +280 -57
- package/assets/skills/developer-session-lifecycle/SKILL.md +81 -37
- package/assets/skills/development-guidance/SKILL.md +21 -1
- package/assets/skills/evaluation-triage/SKILL.md +32 -23
- package/assets/skills/final-evaluation-orchestration/SKILL.md +86 -50
- package/assets/skills/hardening-gate/SKILL.md +17 -3
- package/assets/skills/integrated-verification/SKILL.md +3 -3
- package/assets/skills/planning-gate/SKILL.md +32 -3
- package/assets/skills/planning-guidance/SKILL.md +72 -13
- package/assets/skills/retrospective-analysis/SKILL.md +2 -2
- package/assets/skills/scaffold-guidance/SKILL.md +129 -124
- package/assets/skills/submission-packaging/SKILL.md +33 -27
- package/assets/skills/verification-gates/SKILL.md +44 -14
- package/assets/slopmachine/backend-evaluation-prompt.md +1 -1
- package/assets/slopmachine/frontend-evaluation-prompt.md +5 -5
- package/assets/slopmachine/scaffold-playbooks/android-kotlin-compose.md +81 -0
- package/assets/slopmachine/scaffold-playbooks/android-kotlin-views.md +191 -0
- package/assets/slopmachine/scaffold-playbooks/android-native-java.md +203 -0
- package/assets/slopmachine/scaffold-playbooks/angular-default.md +181 -0
- package/assets/slopmachine/scaffold-playbooks/backend-baseline.md +142 -0
- package/assets/slopmachine/scaffold-playbooks/backend-family-matrix.md +80 -0
- package/assets/slopmachine/scaffold-playbooks/database-module-matrix.md +80 -0
- package/assets/slopmachine/scaffold-playbooks/django-default.md +166 -0
- package/assets/slopmachine/scaffold-playbooks/docker-baseline.md +189 -0
- package/assets/slopmachine/scaffold-playbooks/docker-shared-contract.md +334 -0
- package/assets/slopmachine/scaffold-playbooks/electron-vite-default.md +124 -0
- package/assets/slopmachine/scaffold-playbooks/expo-react-native-default.md +73 -0
- package/assets/slopmachine/scaffold-playbooks/fastapi-default.md +134 -0
- package/assets/slopmachine/scaffold-playbooks/frontend-baseline.md +160 -0
- package/assets/slopmachine/scaffold-playbooks/frontend-family-matrix.md +134 -0
- package/assets/slopmachine/scaffold-playbooks/generic-unknown-tech-guide.md +136 -0
- package/assets/slopmachine/scaffold-playbooks/go-chi-default.md +160 -0
- package/assets/slopmachine/scaffold-playbooks/ios-linux-portable.md +93 -0
- package/assets/slopmachine/scaffold-playbooks/ios-native-objective-c.md +151 -0
- package/assets/slopmachine/scaffold-playbooks/ios-native-swift.md +188 -0
- package/assets/slopmachine/scaffold-playbooks/laravel-default.md +216 -0
- package/assets/slopmachine/scaffold-playbooks/livewire-default.md +265 -0
- package/assets/slopmachine/scaffold-playbooks/overlay-module-matrix.md +130 -0
- package/assets/slopmachine/scaffold-playbooks/platform-family-matrix.md +79 -0
- package/assets/slopmachine/scaffold-playbooks/selection-matrix.md +72 -0
- package/assets/slopmachine/scaffold-playbooks/spring-boot-default.md +182 -0
- package/assets/slopmachine/scaffold-playbooks/tauri-default.md +80 -0
- package/assets/slopmachine/scaffold-playbooks/vue-vite-default.md +162 -0
- package/assets/slopmachine/scaffold-playbooks/web-default.md +96 -0
- package/assets/slopmachine/templates/AGENTS.md +41 -3
- package/assets/slopmachine/templates/CLAUDE.md +111 -0
- package/assets/slopmachine/utils/claude_create_session.mjs +1 -0
- package/assets/slopmachine/utils/claude_live_channel.mjs +188 -0
- package/assets/slopmachine/utils/claude_live_common.mjs +406 -0
- package/assets/slopmachine/utils/claude_live_hook.py +47 -0
- package/assets/slopmachine/utils/claude_live_launch.mjs +181 -0
- package/assets/slopmachine/utils/claude_live_status.mjs +25 -0
- package/assets/slopmachine/utils/claude_live_stop.mjs +45 -0
- package/assets/slopmachine/utils/claude_live_turn.mjs +250 -0
- package/assets/slopmachine/utils/claude_resume_session.mjs +1 -0
- package/assets/slopmachine/utils/claude_wait_for_rate_limit_reset.mjs +23 -0
- package/assets/slopmachine/utils/claude_wait_for_rate_limit_reset.sh +5 -0
- package/assets/slopmachine/utils/claude_worker_common.mjs +224 -4
- package/assets/slopmachine/utils/cleanup_delivery_artifacts.py +4 -0
- package/assets/slopmachine/utils/export_ai_session.mjs +1 -1
- package/assets/slopmachine/utils/normalize_claude_session.py +153 -0
- package/assets/slopmachine/utils/package_claude_session.mjs +96 -0
- package/assets/slopmachine/utils/prepare_strict_audit_workspace.mjs +65 -0
- package/package.json +1 -1
- package/src/constants.js +42 -3
- package/src/init.js +173 -28
- package/src/install.js +75 -0
- package/src/send-data.js +56 -57
|
@@ -7,145 +7,150 @@ description: Developer-facing scaffold guidance for slopmachine.
|
|
|
7
7
|
|
|
8
8
|
Use this skill during `P3 Scaffold` before prompting the developer.
|
|
9
9
|
|
|
10
|
-
##
|
|
10
|
+
## Core idea
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
- establish the real runtime contract
|
|
14
|
-
- establish the local verification path and the standardized gate path
|
|
15
|
-
- make prompt-critical baseline behavior real where required
|
|
16
|
-
- keep repo-local `README.md` honest from the start
|
|
17
|
-
- make the selected-stack primary runtime command and the universal `./run_tests.sh` broad test command real from the scaffold stage
|
|
18
|
-
- make the first scaffold pass strong enough that owner scaffold acceptance can rely on a narrow checklist rather than rereading the whole scaffold broadly
|
|
12
|
+
Scaffold is a simple baseline bootstrap step.
|
|
19
13
|
|
|
20
|
-
|
|
14
|
+
- do not treat scaffold as early product implementation
|
|
15
|
+
- do not require prompt-specific business flows during scaffold unless they are necessary to choose the stack, runtime contract, required technologies, or baseline verification path
|
|
16
|
+
- the goal is a safe baseline that boots, tests, and documents itself honestly
|
|
17
|
+
- for web projects, that baseline must always include working `docker compose up --build` and containerized `./run_tests.sh`
|
|
18
|
+
- for Android, iOS, and desktop projects, that baseline must also include working `docker compose up --build` plus containerized `./run_tests.sh`, even when the app's true product proof is platform-specific and differs from web runtime semantics
|
|
21
19
|
|
|
22
|
-
|
|
23
|
-
- `./run_tests.sh`
|
|
20
|
+
## Scaffold contract
|
|
24
21
|
|
|
25
|
-
|
|
22
|
+
Scaffold should deliver only the baseline needed to start real implementation safely:
|
|
26
23
|
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
-
|
|
35
|
-
-
|
|
36
|
-
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
-
|
|
53
|
-
- for
|
|
54
|
-
-
|
|
55
|
-
-
|
|
56
|
-
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
-
|
|
61
|
-
-
|
|
62
|
-
-
|
|
63
|
-
-
|
|
64
|
-
-
|
|
65
|
-
-
|
|
66
|
-
-
|
|
67
|
-
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
- when the
|
|
72
|
-
-
|
|
73
|
-
-
|
|
74
|
-
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
- treat prompt-critical security controls as real baseline runtime behavior, not placeholder checks or visual wiring
|
|
78
|
-
- if a requirement implies enforcement, persistence, statefulness, or rejection behavior, make that behavior real in the scaffold unless the prompt clearly scopes it down
|
|
79
|
-
- do not accept shape-only security implementations such as header presence checks, passive constants, or partially wired middleware when the requirement implies real protection
|
|
80
|
-
- when applicable at scaffold time, require platform-appropriate real security baselines rather than shape-only placeholders
|
|
81
|
-
- for web service flows, examples include nonce replay rejection, real lockout behavior, CSRF rejection on protected mutations, and meaningful server-side state when the protection model depends on it
|
|
82
|
-
- for mobile flows, examples include safe auth-state handling, no bundled secrets, secure token storage when runtime tokens must be persisted, and protected deep-link or privileged screen behavior when applicable
|
|
83
|
-
- for desktop flows, examples include secure preload/contextBridge boundaries, `contextIsolation` preserved, `nodeIntegration` not exposed by default in the renderer, and privileged actions kept out of untrusted renderer reach
|
|
84
|
-
- remove prototype residue from runtime foundations: no placeholder titles, hidden setup, fake defaults, or seeded live-path assumptions
|
|
85
|
-
- make prompt-critical runtime behavior visible in the scaffold instead of hand-waving it for later, especially offline, worker, backup, or HTTPS requirements
|
|
86
|
-
- for Dockerized web projects, keep runtime isolation clean in shared environments: use self-contained Compose namespacing, avoid fragile generic project names, and prefer Compose-managed service naming over unnecessary hardcoded `container_name` values
|
|
87
|
-
- for Dockerized web projects, derive a unique `COMPOSE_PROJECT_NAME` from the repo or worktree identity for runtime wrappers, and use a separate unique test namespace for `./run_tests.sh` so parallel local projects do not collide
|
|
88
|
-
- for Dockerized web projects, expose only the primary app-facing port to the host by default, keep databases/cache/internal services off host ports unless the prompt truly requires exposure, and bind exposed ports to `127.0.0.1`
|
|
89
|
-
- for Dockerized web projects, prefer Docker-assigned random host ports for the default host binding so plain `docker compose up --build` can run without host-port collisions; if the prompt requires a fixed host port, support an overrideable host-port variable and make the runtime or test wrapper fall back to a free port automatically when needed
|
|
90
|
-
- for Dockerized web projects, keep image, network, and volume naming under Compose project scoping; if explicit image names are needed, namespace them with the Compose project name instead of using generic shared names
|
|
91
|
-
- for Dockerized web projects, add healthchecks and make runtime or test wrappers wait for service readiness before proceeding so startup is reliable on slower machines
|
|
92
|
-
- require reproducible build and tooling foundations: prefer lockfile-driven installs where the stack supports them, keep source and build outputs clearly separated, and do not allow generated runtime artifacts to drift back into source directories
|
|
93
|
-
- for typed build pipelines, keep source-of-truth boundaries clean so compiled output does not create TS/JS or similar dual-source drift in the working tree
|
|
94
|
-
- establish README structure early instead of leaving it until the end
|
|
95
|
-
- ensure `README.md` clearly documents the primary runtime command and the broad `./run_tests.sh` contract for the selected stack
|
|
96
|
-
- ensure `README.md` focuses on what the project does, how to run it, how to test it, the main repo contents, and any important new-developer information rather than trying to replace the full API catalog
|
|
97
|
-
- ensure `README.md` also explains the delivered architecture and major implementation structure clearly enough for code review and handoff
|
|
98
|
-
- ensure `README.md` stands on its own and does not tell users or reviewers to rely on parent-root docs for core repo understanding
|
|
99
|
-
- for Dockerized web projects, ensure `README.md` explains that local runtime values are bootstrapped automatically by the development startup path and that this is local-development behavior rather than production secret management
|
|
100
|
-
- maintain the seeded parent-root `../docs/design.md` as the owner-maintained planning/design contract from the start
|
|
101
|
-
- maintain the seeded parent-root `../docs/test-coverage.md` as the owner-maintained evaluator-facing test matrix from the start
|
|
102
|
-
- when API surfaces are material, fill in the seeded parent-root `../docs/api-spec.md` instead of treating it as a later add-on
|
|
103
|
-
- if the project uses mock, stub, fake, interception, or local-data behavior, disclose that scope in `README.md` during scaffold instead of waiting until late phases
|
|
104
|
-
- if mock or interception behavior is enabled by default, disclose that default state in `README.md` during scaffold
|
|
105
|
-
- if feature flags, debug or demo surfaces, or default-enabled config toggles exist, disclose them in `README.md` during scaffold and record the fuller reference in parent-root docs when needed
|
|
106
|
-
- establish a shared logging path during scaffold with meaningful categories, redaction expectations, and no reliance on random print statements as the long-term logging surface
|
|
107
|
-
- establish a shared validation path during scaffold so forms, requests, boundary checks, and normalized error behavior do not get invented ad hoc later
|
|
108
|
-
- prove the scaffold in a clean state before deeper feature work
|
|
109
|
-
- verify clean startup and teardown behavior under the selected stack's runtime contract
|
|
110
|
-
- make the scaffold handoff compact and checklist-driven: the developer should be able to state runtime proof, test proof, docs honesty, and required repo-surface proof without a long narrative dump
|
|
111
|
-
- for Dockerized web projects, verify clean startup and teardown behavior under the chosen project namespace
|
|
112
|
-
- when the architecture materially depends on infrastructure capabilities such as rate limiting, encryption, offline support, or browser-storage policy, put the baseline framework and policy in place during scaffold rather than deferring it to late implementation
|
|
113
|
-
- for backend integration paths, prefer production-equivalent test infrastructure when practical rather than silently substituting a weaker database or runtime model that can hide real defects
|
|
114
|
-
- do not treat scaffold as placeholder boilerplate or rely on hidden setup
|
|
115
|
-
|
|
116
|
-
## Current policy
|
|
24
|
+
- chosen stack and bootstrap path are explicit
|
|
25
|
+
- requested platform and required technologies are installed and wired
|
|
26
|
+
- the primary runtime command is real
|
|
27
|
+
- `./run_tests.sh` is real as the portable broad test wrapper
|
|
28
|
+
- `docker compose up --build` is real and working
|
|
29
|
+
- `./run_tests.sh` is containerized and working
|
|
30
|
+
- `./run_app.sh` may exist as an additional platform helper when useful, but it does not replace the Docker-based baseline contract
|
|
31
|
+
- minimal real tests exist so the scaffold is not mostly `NO-SOURCE`
|
|
32
|
+
- `README.md` is honest about scaffold status, runtime, tests, and main module layout
|
|
33
|
+
- `README.md` already includes the baseline section shape needed for the final README audit, even if many sections are still marked scaffold-level
|
|
34
|
+
|
|
35
|
+
## What scaffold is not
|
|
36
|
+
|
|
37
|
+
Do not turn scaffold into feature delivery.
|
|
38
|
+
|
|
39
|
+
At scaffold time, do not require:
|
|
40
|
+
|
|
41
|
+
- prompt-specific business workflows
|
|
42
|
+
- full auth/role/product enforcement unless the runtime baseline genuinely depends on it
|
|
43
|
+
- final module completion
|
|
44
|
+
- integrated product polish
|
|
45
|
+
- deep domain behavior beyond what the chosen stack/runtime/tests need immediately
|
|
46
|
+
|
|
47
|
+
## Runtime selection rule
|
|
48
|
+
|
|
49
|
+
- follow the original prompt and existing repository first
|
|
50
|
+
- for web projects, `docker compose up --build` is always required as the runtime baseline contract
|
|
51
|
+
- for Android, iOS, and desktop projects, `docker compose up --build` is also required, but it may start a meaningful containerized build, artifact, preview, or support environment rather than pretending to be native runtime proof
|
|
52
|
+
- `./run_tests.sh` must exist for every project and be containerized
|
|
53
|
+
- when helpful, non-web projects may also provide `./run_app.sh` for host-side convenience or platform-specific local flow, but that does not replace the required Docker commands
|
|
54
|
+
|
|
55
|
+
## Playbook rule
|
|
56
|
+
|
|
57
|
+
- use the packaged scaffold docs under `~/slopmachine/scaffold-playbooks/` as owner-side source material
|
|
58
|
+
- start with `~/slopmachine/scaffold-playbooks/selection-matrix.md`
|
|
59
|
+
- use `docker-shared-contract.md` as the common Docker/runtime/test contract
|
|
60
|
+
- when no exact stack playbook exists yet, use `generic-unknown-tech-guide.md` before falling back to nearest-family improvisation
|
|
61
|
+
- use the family matrices to resolve placeholders, language-only prompts, and open-ended stack selections before choosing a concrete playbook
|
|
62
|
+
- do not tell the developer to read those files directly if they are outside `repo/`; restate the relevant directives in the developer prompt
|
|
63
|
+
- when a matching playbook exists, prefer following it over inventing a new scaffold contract from scratch
|
|
64
|
+
- if no exact playbook exists, choose the nearest platform family playbook plus the framework-specific bootstrap command that best matches the prompt
|
|
65
|
+
|
|
66
|
+
## Bootstrap rule
|
|
67
|
+
|
|
68
|
+
- when the selected stack has an official or clearly best-known bootstrap command, prefer it
|
|
69
|
+
- prefer the current recommended bootstrap variant rather than an outdated minimal skeleton
|
|
70
|
+
- only hand-build from scratch when no credible bootstrap path exists or the existing repo already dictates a different structure
|
|
71
|
+
- after generation, adapt only enough to make the baseline runtime, tests, wrapper scripts, and README contract real
|
|
72
|
+
|
|
73
|
+
## Safe defaults
|
|
117
74
|
|
|
118
75
|
- no `.env` files or env-file variants in the repo
|
|
119
|
-
-
|
|
76
|
+
- no committed secrets or plaintext bootstrap credentials
|
|
120
77
|
- keep generated artifacts out of source-of-truth paths
|
|
121
|
-
-
|
|
122
|
-
-
|
|
123
|
-
-
|
|
124
|
-
-
|
|
125
|
-
- if the project has database dependencies, `./init_db.sh` must exist from scaffold onward and stay current with the real database setup
|
|
126
|
-
- if the project uses mock, stub, fake, interception, or local-data behavior, the scaffold must already make those boundaries statically visible in docs and code structure
|
|
127
|
-
- the repo must not depend on parent-root docs or sibling artifacts for startup, testing, build/preview, config, security understanding, or evaluator traceability
|
|
78
|
+
- make the repo self-sufficient through code plus `README.md`
|
|
79
|
+
- do not create extra in-repo docs beyond `README.md`
|
|
80
|
+
- use one bootstrap source of truth when seed/setup data is needed
|
|
81
|
+
- keep runtime/test/bootstrap paths aligned instead of inventing separate hidden setup flows
|
|
128
82
|
|
|
129
|
-
##
|
|
83
|
+
## Baseline requirements
|
|
84
|
+
|
|
85
|
+
- create the initial project structure intentionally
|
|
86
|
+
- wire the required technologies named by the prompt or selected by the default stack
|
|
87
|
+
- install local targeted test tooling needed for ordinary development iteration
|
|
88
|
+
- create baseline test structure intentionally during scaffold
|
|
89
|
+
- when backend or fullstack API surfaces already exist at scaffold time, create the test structure in a way that later endpoint-by-endpoint mapping and true no-mock HTTP testing can grow without churn
|
|
90
|
+
- create `./run_tests.sh` during scaffold for every project
|
|
91
|
+
- create `./run_app.sh` during scaffold for non-web platforms when it helps expose the host-side or platform-specific local flow, but keep `docker compose up --build` and containerized `./run_tests.sh` as required baseline commands
|
|
92
|
+
- if the project has database dependencies, create `./init_db.sh` during scaffold as the only project-standard database initialization path
|
|
93
|
+
- make the scaffold handoff compact and checklist-driven rather than a long narrative dump
|
|
94
|
+
|
|
95
|
+
## Minimal real test floor
|
|
96
|
+
|
|
97
|
+
Do not leave the broad path mostly empty.
|
|
98
|
+
|
|
99
|
+
At scaffold, require at least:
|
|
100
|
+
|
|
101
|
+
- one or more real tests for a core baseline contract or rules/helper layer
|
|
102
|
+
- one real runtime/build verification path in `./run_tests.sh`
|
|
103
|
+
- one real smoke-level proof that the chosen stack is wired correctly
|
|
104
|
+
- any static verification tasks that the selected platform needs to keep the baseline honest, such as schema export verification, lint, typecheck, or package/build health
|
|
105
|
+
- one real Docker-backed runtime/build path behind `docker compose up --build`
|
|
106
|
+
|
|
107
|
+
## README floor
|
|
108
|
+
|
|
109
|
+
`README.md` inside `repo/` must already state:
|
|
110
|
+
|
|
111
|
+
- project type near the top using one of `backend`, `fullstack`, `web`, `android`, `ios`, or `desktop`
|
|
112
|
+
- scaffold status versus implemented product scope
|
|
113
|
+
- primary runtime command
|
|
114
|
+
- required Docker command: `docker compose up --build`
|
|
115
|
+
- broad test command
|
|
116
|
+
- startup instructions
|
|
117
|
+
- access method
|
|
118
|
+
- verification method
|
|
119
|
+
- authentication section with demo credentials for known roles or the exact statement `No authentication required`
|
|
120
|
+
- tech stack clarity and brief architecture explanation
|
|
121
|
+
- important roles or workflows when relevant
|
|
122
|
+
- major module or repo layout
|
|
123
|
+
- important bootstrap/setup notes
|
|
124
|
+
- any major honesty boundaries such as local-only, mock-only, offline-only, no-emulator, or no-native-runtime proof when those limits apply
|
|
125
|
+
|
|
126
|
+
When the project type requires extra README shape for the final audit:
|
|
127
|
+
|
|
128
|
+
- backend, fullstack, and web projects should include the exact legacy compatibility string `docker-compose up` somewhere in startup guidance in addition to the canonical `docker compose up --build` contract
|
|
129
|
+
- Android projects should include a host-side build or emulator or device guidance section even though Docker remains required for the final broad contract
|
|
130
|
+
- iOS projects should include Xcode or simulator or device guidance when applicable even though Docker remains part of the broader SlopMachine contract
|
|
131
|
+
- desktop projects should include host-side run or build guidance when applicable even though Docker remains part of the broader SlopMachine contract
|
|
132
|
+
|
|
133
|
+
## Parallelism rule
|
|
134
|
+
|
|
135
|
+
- once the stack, runtime contract, and wrapper-script shape are fixed, use parallel branches for independent scaffold foundations when that materially reduces elapsed time
|
|
136
|
+
- good scaffold parallel candidates include app shell, test harness, config wiring, and README baseline work that touch different areas
|
|
137
|
+
- do not parallelize overlapping generator churn or shared foundation invention before the baseline contract is stable
|
|
130
138
|
|
|
131
|
-
|
|
139
|
+
## Acceptance target
|
|
132
140
|
|
|
133
|
-
|
|
141
|
+
Scaffold is acceptable when:
|
|
134
142
|
|
|
135
|
-
-
|
|
136
|
-
-
|
|
137
|
-
-
|
|
138
|
-
-
|
|
139
|
-
-
|
|
140
|
-
- `README.md`
|
|
141
|
-
- required scaffold files and directories exist
|
|
143
|
+
- `docker compose up --build` works
|
|
144
|
+
- `./run_tests.sh` works at the scaffold baseline level
|
|
145
|
+
- required wrapper scripts exist and are honest
|
|
146
|
+
- required technologies are wired
|
|
147
|
+
- minimal real tests exist
|
|
148
|
+
- `README.md` is honest and traceable
|
|
142
149
|
- prohibited shortcuts or residue are not present
|
|
143
150
|
|
|
144
151
|
## Verification cadence
|
|
145
152
|
|
|
146
153
|
- use local and narrow checks while correcting scaffold work
|
|
147
154
|
- reserve one broad owner-run scaffold gate for actual scaffold acceptance
|
|
148
|
-
-
|
|
149
|
-
-
|
|
150
|
-
- after that single scaffold proof, ordinary development should use only local fast verification until development-complete / integrated-verification entry unless a real blocker forces earlier broad reruns
|
|
151
|
-
- after that scaffold confirmation, do not run Docker again during ordinary development work; the next Docker-based run should be at development completion when integrated behavior is checked
|
|
155
|
+
- for web projects, the owner should run `docker compose up --build` and `./run_tests.sh` once after scaffold completion
|
|
156
|
+
- after scaffold acceptance, return to local fast verification until the next major gate unless a real blocker forces earlier escalation
|
|
@@ -28,15 +28,21 @@ The final delivery layout in the parent project root must be:
|
|
|
28
28
|
- `api-spec.md` when applicable
|
|
29
29
|
- `test-coverage.md`
|
|
30
30
|
- `questions.md`
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
- `
|
|
31
|
+
- for non-Claude developer sessions:
|
|
32
|
+
- `sessions/`
|
|
33
|
+
- `sessions/<label>.json` for every tracked developer session, including `develop-N.json` and `bugfix-N.json` when present
|
|
34
|
+
- for Claude-backed developer sessions:
|
|
35
|
+
- `claude-sessions.zip` in the parent root containing the whole Claude project session folder once
|
|
36
|
+
- no `sessions/` directory is required when all tracked developer sessions are Claude-backed
|
|
34
37
|
- `metadata.json`
|
|
35
|
-
-
|
|
36
|
-
- `
|
|
37
|
-
- `
|
|
38
|
+
- `.tmp/`
|
|
39
|
+
- `audit_report-<N>.md`
|
|
40
|
+
- `audit_report-<N>-fix_check-<M>.md` when present
|
|
41
|
+
- `test_coverage_and_readme_audit_report.md`
|
|
38
42
|
- `repo/`
|
|
39
43
|
|
|
44
|
+
In the clean two-bugfix path, `.tmp/` should end with at least 5 required markdown reports once the final coverage/README audit is included, though extra fresh audits or extra fix checks may legitimately increase that count.
|
|
45
|
+
|
|
40
46
|
Inside the delivered `repo/`, the repository must remain self-sufficient:
|
|
41
47
|
|
|
42
48
|
- `README.md`
|
|
@@ -64,34 +70,32 @@ No screenshots are required as packaging artifacts.
|
|
|
64
70
|
- include `./run_tests.sh` and any supporting runner logic it needs to execute the project's broad test path from a clean environment
|
|
65
71
|
- when the project has database dependencies, include `./init_db.sh` and ensure it reflects the final delivered database setup rather than an earlier scaffold placeholder
|
|
66
72
|
- when the project has database dependencies, package the initialization-script path rather than raw environment-specific database dependency artifacts or local database state
|
|
67
|
-
- verify parent-root
|
|
73
|
+
- verify parent-root `../.tmp/` exists and contains the required audit and fix-check reports
|
|
74
|
+
- verify parent-root `../.tmp/test_coverage_and_readme_audit_report.md` exists from the final post-bugfix coverage/README audit
|
|
68
75
|
- export all tracked developer sessions before closing packaging
|
|
69
76
|
- when packaging succeeds, update workflow metadata to mark `packaging_completed` as true
|
|
70
77
|
|
|
71
78
|
## Session export sequence
|
|
72
79
|
|
|
73
|
-
Export
|
|
74
|
-
|
|
75
|
-
Use the tracked lane labels for converted developer sessions, for example:
|
|
80
|
+
Export tracked developer sessions from metadata using the tracked lane labels, for example:
|
|
76
81
|
|
|
77
82
|
- `develop-1`
|
|
78
83
|
- `bugfix-1`
|
|
79
84
|
|
|
80
|
-
For
|
|
85
|
+
For session export:
|
|
81
86
|
|
|
82
|
-
1. if
|
|
83
|
-
2. if `<backend>` is
|
|
84
|
-
3. if `<backend>` is
|
|
85
|
-
4. `node ~/slopmachine/utils/convert_exported_ai_session.mjs --converter-script ~/slopmachine/utils/convert_ai_session.py --input ../session-<N>.json --output ../sessions/<label>.json`
|
|
87
|
+
1. if at least one tracked developer session backend is `claude` or `claude-live`, run `node ~/slopmachine/utils/package_claude_session.mjs --cwd "$PWD" --session-id <any-claude-session-id> --label claude-sessions --output ../claude-sessions.zip`
|
|
88
|
+
2. if `<backend>` is neither `claude` nor `claude-live`, run `opencode export <session-id> > ../session-export-<label>.raw`
|
|
89
|
+
3. if `<backend>` is neither `claude` nor `claude-live`, run `python3 ~/slopmachine/utils/strip_session_parent.py ../session-export-<label>.raw --output ../sessions/<label>.json`
|
|
86
90
|
|
|
87
91
|
Where `<backend>` comes from the tracked developer session record in metadata.
|
|
88
|
-
Use `opencode` when no explicit backend field exists.
|
|
89
|
-
|
|
92
|
+
Use `opencode` when no explicit backend field exists or when the backend is not Claude-backed.
|
|
93
|
+
For Claude-backed sessions, the package helper resolves the Claude project folder under `~/.claude/projects/` from a tracked `session_id` plus the current project `cwd` and packages that folder once.
|
|
90
94
|
|
|
91
95
|
After those steps:
|
|
92
96
|
|
|
93
|
-
- verify every
|
|
94
|
-
-
|
|
97
|
+
- verify every non-Claude developer session has been exported into `../sessions/<label>.json`
|
|
98
|
+
- verify Claude-backed sessions have been packaged once into `../claude-sessions.zip`
|
|
95
99
|
- treat only the raw `../session-export-<label>.raw` files as temporary packaging intermediates
|
|
96
100
|
- remove the raw `../session-export-<label>.raw` files before closing packaging
|
|
97
101
|
- if the required utilities, metadata session ids, or output files are missing, packaging is not ready to continue
|
|
@@ -101,11 +105,12 @@ After those steps:
|
|
|
101
105
|
- run `python3 ~/slopmachine/utils/cleanup_delivery_artifacts.py .` once near the end of packaging to remove known recursive cleanup targets from the delivered repo tree
|
|
102
106
|
- remove runtime, editor, cache, tooling noise, generated artifacts, and environment junk recursively anywhere in the delivered repo tree
|
|
103
107
|
- do not remove required delivery artifacts just because they look noisy
|
|
104
|
-
-
|
|
108
|
+
- the cleanup helper removes common known targets such as `.opencode/`, `.codex/`, `.vscode/`, env-file variants, `node_modules/`, `.venv/`, `.net/`, common build/cache directories, `__pycache__/`, `.pytest_cache/`, and repo-local `AGENTS.md` / `CLAUDE.md`
|
|
105
109
|
- remove environment-dependent content, local dependency trees, editor state, package-manager caches, and runtime caches anywhere in the delivery tree
|
|
106
110
|
- do not package database dependency files or local database state when the delivered database setup is supposed to be injected through initialization scripts
|
|
107
|
-
-
|
|
108
|
-
- remove repo-local `.tmp/`
|
|
111
|
+
- manually review for accidental in-repo docs directories or workflow utility scripts that the helper does not remove automatically, and remove them before closing packaging
|
|
112
|
+
- remove repo-local `.tmp/` if it exists and is not part of the delivered product
|
|
113
|
+
- do not remove parent-root `../.tmp/`; it now holds the required `P7` audit and fix-check artifacts
|
|
109
114
|
- the cleanup is recursive; do not leave forbidden directories or generated junk buried deeper in the repo hierarchy after cleanup
|
|
110
115
|
|
|
111
116
|
## Validation checklist
|
|
@@ -120,11 +125,12 @@ After those steps:
|
|
|
120
125
|
- when the project has database dependencies, confirm database setup is injected through initialization scripts rather than packaged local database dependency artifacts
|
|
121
126
|
- confirm the cleanup helper has been run and that no known recursive cleanup targets remain in the delivered repo tree
|
|
122
127
|
- confirm no environment-dependent dependency directories, editor-state folders, runtime caches, or workflow utility scripts are packaged into the delivered product
|
|
123
|
-
- confirm parent-root
|
|
124
|
-
- confirm
|
|
128
|
+
- confirm parent-root `../.tmp/` exists and contains the required `audit_report-<N>.md` files
|
|
129
|
+
- confirm every bugfix-triggering audit number has its matching `audit_report-<N>-fix_check-<M>.md` files when fix checks were required
|
|
130
|
+
- confirm parent-root `../.tmp/test_coverage_and_readme_audit_report.md` exists and is the final replaced copy rather than a numbered variant
|
|
125
131
|
- confirm parent-root `../docs/test-coverage.md` explains the tested flows, mapped tests, and coverage boundaries
|
|
126
|
-
- confirm
|
|
127
|
-
- confirm
|
|
132
|
+
- confirm every non-Claude developer session exists under parent-root `../sessions/` using the tracked `<label>.json` names
|
|
133
|
+
- confirm Claude-backed developer sessions exist in the parent root as `claude-sessions.zip`
|
|
128
134
|
- confirm parent-root `../docs/` remains consistent as an external reference set when workflow policy still requires it, but the delivered repo does not depend on it
|
|
129
135
|
- confirm parent-root metadata fields are populated correctly
|
|
130
136
|
- confirm workflow metadata marks `packaging_completed` as true
|
|
@@ -137,4 +143,4 @@ After those steps:
|
|
|
137
143
|
- confirm the delivered project is actually runnable in the promised startup model, the documented tests are runnable, frontend behavior is usable when applicable, UI quality is acceptable, core logic is complete, and Docker startup works when Docker is the runtime contract
|
|
138
144
|
- confirm the final git checkpoint can be created cleanly for the packaged state when a checkpoint is needed
|
|
139
145
|
- if packaging reveals a real defect or missing artifact, fix it before closing the phase
|
|
140
|
-
- do not close packaging until all required docs, session exports,
|
|
146
|
+
- do not close packaging until all required docs, session exports, audit/fix-check files, cleanup conditions, and final structure checks are satisfied
|
|
@@ -25,6 +25,7 @@ Use this skill after development begins whenever you are reviewing work, decidin
|
|
|
25
25
|
- require the README to explain what the project does, how to run it, how to test it, the main repo contents, and any important new-developer information
|
|
26
26
|
- require the README to show the correct primary runtime command and `./run_tests.sh` as the primary broad test command
|
|
27
27
|
- do not require the README to carry a full API catalog
|
|
28
|
+
- require the README to include the strict audit sections when they are relevant to the project shape: project type near the top, startup instructions, access method, verification method, and demo credentials for every role or the exact statement `No authentication required`
|
|
28
29
|
- do not allow the repo to depend on parent-root docs or sibling artifacts for startup, build/preview, configuration, evaluator traceability, or basic project understanding
|
|
29
30
|
- require the delivered repo to be statically reviewable: README, scripts, entry points, routes, config, and test commands must be traceably consistent
|
|
30
31
|
- if the project uses mock, stub, fake, interception, or local-data behavior, require the README and visible code boundaries to disclose that scope accurately
|
|
@@ -33,7 +34,8 @@ Use this skill after development begins whenever you are reviewing work, decidin
|
|
|
33
34
|
- require parent-root `../docs/test-coverage.md` to be evaluator-shaped rather than generic: requirement or risk point, mapped test evidence, coverage status, major gap, and minimum test addition
|
|
34
35
|
- when auth or access-control behavior is relevant, require static security-boundary evidence that a fresh reviewer can trace for auth entry points, route authorization, object authorization, function-level authorization, admin/internal/debug surfaces, and tenant or user isolation when applicable
|
|
35
36
|
- require logging structure and validation or error-handling structure to be statically traceable from repo artifacts and, when needed, owner-maintained external docs
|
|
36
|
-
- for web projects,
|
|
37
|
+
- for web projects, require the runtime command to be `docker compose up --build`
|
|
38
|
+
- for backend, fullstack, and web projects, allow and expect an additional README compatibility note containing the exact string `docker-compose up` for the strict README audit, but do not treat that as a replacement for the canonical `docker compose up --build` contract
|
|
37
39
|
- for Dockerized web projects, require a dev-only runtime bootstrap script or equivalent startup path so `docker compose up --build` works without user exports or `.env`
|
|
38
40
|
- do not accept Dockerized web startup that depends on manual export steps before the runtime command
|
|
39
41
|
- do not accept Dockerized web startup that relies on checked-in `.env` files or hardcoded runtime values to satisfy local startup
|
|
@@ -41,12 +43,13 @@ Use this skill after development begins whenever you are reviewing work, decidin
|
|
|
41
43
|
- require `./run_tests.sh` to use the same runtime bootstrap model or an equivalent model with the same generated-value rules as `docker compose up --build`
|
|
42
44
|
- if runtime values persist across restarts, require them to live in Docker-managed runtime state rather than committed repo files
|
|
43
45
|
- require README disclosure that the bootstrap path is local-development-only behavior rather than the production secret-management path
|
|
44
|
-
-
|
|
46
|
+
- for Android, mobile, desktop, and iOS-targeted projects, require a meaningful `docker compose up --build` command even when platform-specific runtime proof differs from web semantics
|
|
47
|
+
- for Android, mobile, desktop, and iOS-targeted projects, allow `./run_app.sh` as an additional platform helper but not as a replacement for the required Docker command
|
|
45
48
|
- require `./run_tests.sh` to be self-sufficient enough to run from a clean Linux VM that only has Docker and curl available by default
|
|
46
49
|
- do not accept a broad test path that depends on host package managers or preinstalled host language runtimes when Docker can provide the execution environment instead
|
|
47
|
-
- for web projects
|
|
50
|
+
- for web projects, require `./run_tests.sh` to be the Dockerized broad test path used only for the limited broad verification moments rather than as the ordinary development verification path
|
|
48
51
|
- when host-level setup would otherwise be required, prefer a Dockerized `./run_tests.sh` path even outside traditional web stacks so the broad verification remains portable
|
|
49
|
-
- for non-web
|
|
52
|
+
- for non-web projects, require `./run_tests.sh` to remain containerized and usable as the platform-equivalent broad test path used for final broad verification
|
|
50
53
|
|
|
51
54
|
## Review standard
|
|
52
55
|
|
|
@@ -67,7 +70,11 @@ Use this skill after development begins whenever you are reviewing work, decidin
|
|
|
67
70
|
- do not accept fake-success paths that materially hide missing failure handling
|
|
68
71
|
- do not accept frontend/backend drift in fullstack work
|
|
69
72
|
- do not accept missing end-to-end coverage for major fullstack flows
|
|
70
|
-
- do not accept coverage posture that
|
|
73
|
+
- do not accept coverage posture that falls short of the minimum 90 percent coverage threshold for the relevant behavior surface without an explicit prompt-faithful exception
|
|
74
|
+
- when backend or fullstack APIs exist, do not accept missing endpoint inventory or missing API-test mapping for the important `METHOD + PATH` surfaces
|
|
75
|
+
- when backend or fullstack APIs exist, do not accept mocked or indirect tests being presented as equivalent to true no-mock HTTP endpoint coverage
|
|
76
|
+
- do not accept a README that is missing project type, startup instructions, access method, verification method, or auth disclosure when the strict README audit would expect them
|
|
77
|
+
- do not accept final delivered docs or wrapper flows that still depend on `npm install`, `pip install`, `apt-get`, manual DB setup, or other host-only setup assumptions after development is complete
|
|
71
78
|
- do not accept a repo that only becomes understandable by reading parent-root docs or sibling workflow artifacts
|
|
72
79
|
- do not accept frontend-bearing work that lacks repo-local build/preview/config guidance when those commands or surfaces are material to the product
|
|
73
80
|
- do not accept frontend-bearing work that lacks a credible state model for prompt-critical flows
|
|
@@ -84,6 +91,16 @@ Use this skill after development begins whenever you are reviewing work, decidin
|
|
|
84
91
|
- do not accept module completion that ignores integration seams or cross-cutting consistency with the existing system
|
|
85
92
|
- do not accept end-to-end evidence that bypasses a required user-facing or admin-facing surface with direct API shortcuts
|
|
86
93
|
|
|
94
|
+
## Gate-demand rule
|
|
95
|
+
|
|
96
|
+
- when setting a planning, scaffold, development, integrated-verification, hardening, or evaluation gate, reference the relevant accepted plan sections and then give an explicit stage-exclusive checklist for that gate
|
|
97
|
+
- the gate checklist should name:
|
|
98
|
+
- the exact outcomes that must now be true
|
|
99
|
+
- the exact evidence that must now exist
|
|
100
|
+
- the important shortcuts, omissions, or future-work excuses that are not acceptable for this gate
|
|
101
|
+
- do not re-dump the whole plan; isolate the exact subset of plan-backed expectations that must now be closed
|
|
102
|
+
- at gate moments, prefer more explicit owner messages over ultra-short prompts so the developer cannot plausibly misread what acceptance depends on
|
|
103
|
+
|
|
87
104
|
## Cadence rule
|
|
88
105
|
|
|
89
106
|
- use targeted local verification as the default during scaffold corrections, development, hardening, and evaluation fix loops
|
|
@@ -91,7 +108,7 @@ Use this skill after development begins whenever you are reviewing work, decidin
|
|
|
91
108
|
- do not turn ordinary acceptance into repeated integrated-style gate runs
|
|
92
109
|
- do not run `./run_tests.sh` casually on the owner side
|
|
93
110
|
- do not run `docker compose up --build` casually on the owner side
|
|
94
|
-
- for web projects
|
|
111
|
+
- for web projects, the owner must run `docker compose up --build` and `./run_tests.sh` once after scaffold completion to confirm the scaffold baseline
|
|
95
112
|
- after that scaffold confirmation, the next Docker-based run should be at development completion or integrated-verification entry unless a real blocker forces earlier escalation
|
|
96
113
|
- in between those two broad checks, ordinary development should rely on local fast verification only
|
|
97
114
|
- ordinary in-phase verification should not invoke `docker compose up --build` or `./run_tests.sh` unless the workflow is explicitly at one of those broad gate moments or a blocker justifies an earlier escalation
|
|
@@ -101,8 +118,10 @@ Use this skill after development begins whenever you are reviewing work, decidin
|
|
|
101
118
|
- inspect the result and evidence, not just the developer claim
|
|
102
119
|
- review technical quality, prompt alignment, architecture impact, and verification depth of the current work
|
|
103
120
|
- after planning is accepted, treat the accepted plan and its relevant section as the default slice baseline instead of restating the full slice contract in every owner prompt
|
|
104
|
-
- for ordinary slice work after planning, keep the owner prompt to
|
|
121
|
+
- for ordinary slice work after planning, keep the owner prompt anchored to the relevant accepted plan sections and use an explicit checklist of slice-specific required outcomes, verification expectations, and review concerns that are not already clear from the accepted plan
|
|
122
|
+
- when the current step is a real gate or phase-exit decision, be more explicit than ordinary slice prompts and enumerate the full stage-exclusive acceptance checklist
|
|
105
123
|
- during normal implementation iteration, always prefer fast local language-native or framework-native verification for the changed area instead of the selected stack's broad gate path
|
|
124
|
+
- during normal implementation iteration, fast local tooling setup is allowed when it helps iteration speed, but treat it as temporary engineering scaffolding rather than part of the final delivered runtime or test contract
|
|
106
125
|
- require the developer to set up and use the project-appropriate local test environment in the current working directory when normal local verification is needed
|
|
107
126
|
- require the developer to report the exact verification commands that were run and the concrete results they produced
|
|
108
127
|
- when API tests are used as evidence, require them to hit real endpoints and expose simple useful response evidence such as status codes and message/body summaries
|
|
@@ -126,11 +145,11 @@ Use this skill after development begins whenever you are reviewing work, decidin
|
|
|
126
145
|
- the evaluator-session cycles required inside `P7` are not part of the ordinary owner-run broad-gate budget; they are the formal final evaluation model for that phase
|
|
127
146
|
- for Electron or other Linux-targetable desktop projects, the broad gate should use the Dockerized desktop build/test path plus headless UI/runtime verification rather than pretending web-style Docker runtime semantics apply
|
|
128
147
|
- for Android projects, the broad gate should use the Dockerized Android build/test path without depending on an emulator
|
|
129
|
-
- for iOS-targeted projects on Linux, the broad gate should
|
|
148
|
+
- for iOS-targeted projects on Linux, the broad gate should include `docker compose up --build` plus `./run_tests.sh` and static/code review evidence, and should not claim native iOS runtime proof unless a real macOS/Xcode checkpoint exists
|
|
130
149
|
- the workflow target is at most 3 broad owner-run verification moments across the whole cycle
|
|
131
150
|
- ordinary planning, ordinary slice acceptance, and routine in-phase verification are not broad gates by default and should rely on targeted local verification unless the risk profile says otherwise
|
|
132
151
|
|
|
133
|
-
For web projects
|
|
152
|
+
For web projects, the default Docker cadence is:
|
|
134
153
|
|
|
135
154
|
1. one owner-run `docker compose up --build` plus one owner-run `./run_tests.sh` after scaffold completion
|
|
136
155
|
2. no more Docker-based runs during ordinary development work
|
|
@@ -144,24 +163,34 @@ Use evidence such as internal metadata files, structured Beads comments, verific
|
|
|
144
163
|
|
|
145
164
|
- clarification requires the `clarification-gate` conditions plus explicit approval record
|
|
146
165
|
- planning requires the `developer-session-lifecycle` and planning-gate conditions plus a fresh planning-oriented start and the required documentation and repo hygiene state when relevant
|
|
166
|
+
- planning exit also requires explicit owner review that the accepted planning artifacts cover the section-addressable contract deeply enough for later implementation: in-scope and out-of-scope, actors and success paths, modules, business rules, state machines, permissions, validation, verification strategy, checkpoints, and definition of done when applicable
|
|
167
|
+
- planning exit does not pass if those sections exist only nominally or remain too vague to drive implementation without broad reinvention
|
|
168
|
+
- planning exit also requires that the accepted plan covers the final README hard-gate shape and, when backend or fullstack APIs exist, the endpoint-inventory and API-test mapping strategy needed for the strict coverage audit
|
|
147
169
|
- scaffold requires evidence for the bounded scaffold gate, baseline logging/config, and when relevant the chosen frontend stack and UI approach being set intentionally
|
|
148
170
|
- scaffold also requires safe env/config handling, no persisted local secrets, real migration/runtime foundations, a usable local test environment in the current working directory, and the correct primary runtime command plus `./run_tests.sh` documented and working when practical
|
|
149
|
-
- for web projects, scaffold
|
|
171
|
+
- for web projects, scaffold requires Docker runtime foundations
|
|
172
|
+
- for Android, mobile, desktop, and iOS-targeted projects, scaffold also requires a meaningful `docker compose up --build` path plus containerized `./run_tests.sh`
|
|
150
173
|
- for Dockerized web projects, scaffold also requires the dev-only runtime bootstrap path to be wired so `docker compose up --build` works without manual exports or `.env`
|
|
151
174
|
- for Dockerized web projects, scaffold also requires owner review of Compose files, runtime bootstrap scripts, entrypoints or wrappers, and `./run_tests.sh` to confirm the no-export, no-`.env`, no-pre-seeded-secret-literals model is actually implemented
|
|
152
175
|
- when the project has database dependencies, scaffold also requires a real `./init_db.sh` created during scaffold, wired into the runtime/test flow when needed, and populated with the database setup already known at that stage
|
|
153
176
|
- scaffold also requires `./run_tests.sh` to handle its own required setup from a clean Linux VM that only has Docker and curl available by default
|
|
154
177
|
- local tests should still exist for ordinary development work even when the primary broad test command is Dockerized
|
|
178
|
+
- scaffold also requires `README.md` to have the baseline section shape needed for the final README audit, even when many sections are still scaffold-level placeholders
|
|
155
179
|
- when scaffold includes prompt-critical security controls, acceptance requires real runtime or endpoint verification of the protection rather than helper-only or shape-only proof
|
|
156
180
|
- for security-bearing scaffolds, require applicable rejection evidence such as stale replay rejection, nonce reuse rejection, CSRF rejection on protected mutations, lockout triggering when lockout is in scope, or equivalent proof that the control is truly enforced
|
|
157
181
|
- scaffold acceptance also requires clean startup and teardown behavior in the selected runtime model; for Dockerized web projects this includes self-contained Compose namespacing and no unnecessary fragile `container_name` usage
|
|
158
182
|
- for Dockerized web projects, scaffold acceptance also requires collision-resistant shared-machine defaults: only the primary app-facing port exposed to host by default, internal services not bound to host without prompt need, default host binding on `127.0.0.1`, and either random host-port assignment or a real free-port fallback when fixed ports are required
|
|
159
|
-
- for web projects
|
|
183
|
+
- for web projects, scaffold acceptance is not complete until the owner has actually run `docker compose up --build` and `./run_tests.sh` once successfully after scaffold completion
|
|
184
|
+
- for Android, mobile, desktop, and iOS-targeted projects, scaffold acceptance is not complete until the owner has also run `docker compose up --build` and `./run_tests.sh` once successfully after scaffold completion
|
|
160
185
|
- module implementation requires targeted local verification only; browser E2E and other broad gate evidence belong to owner-run major checkpoints rather than ordinary slice acceptance
|
|
186
|
+
- module implementation acceptance requires explicit checking against the relevant accepted plan sections and the current stage-exclusive checklist, not just a loose sense that the feature exists
|
|
161
187
|
- module implementation acceptance should challenge tenant isolation, path confinement, sanitized error behavior, prototype residue, integration seams, and cross-cutting consistency when those concerns are in scope
|
|
162
188
|
- module implementation acceptance should use a narrow slice-close checklist: required behavior present, adjacent high-risk seams checked, docs or contract honesty preserved, exact verification evidence supplied, and no known release-facing regression left behind
|
|
189
|
+
- when backend or fullstack APIs are touched, module implementation acceptance should also check that endpoint-oriented coverage notes and true no-mock HTTP tests are moving with the code instead of being deferred indefinitely
|
|
163
190
|
- integrated verification entry requires one of the limited owner-run broad gate moments once development is complete; this is the normal next place where `docker compose up --build` and `./run_tests.sh` are expected after scaffold acceptance
|
|
164
|
-
- module implementation acceptance should also challenge whether the slice is advancing toward the planned module contract and the
|
|
191
|
+
- module implementation acceptance should also challenge whether the slice is advancing toward the planned module contract and the hard minimum 90 percent coverage threshold instead of accumulating test debt
|
|
192
|
+
- before leaving development, require explicit proof that the planned development outcomes for the relevant modules or slices are actually closed, not merely started, and that the targeted verification evidence covers the important happy path, failure path, and security or ownership path where relevant
|
|
193
|
+
- before leaving development, require cleanup of local-iteration residue from the delivered contract: final README, wrapper scripts, and declared run/test flows should no longer depend on host-only setup conveniences
|
|
165
194
|
- integrated verification completion requires explicit full-system evidence before the phase can close
|
|
166
195
|
- integrated verification completion also requires explicit evidence that the delivered startup path is runnable, the documented tests are real and runnable, frontend behavior is usable when applicable, UI quality is acceptable, core logic is complete, and Docker startup works when Docker is the runtime contract
|
|
167
196
|
- web fullstack integrated verification must include owner-run Playwright coverage for every major flow, plus screenshots used to evaluate frontend behavior and UI quality along the flow using `frontend-design`
|
|
@@ -174,14 +203,15 @@ Use evidence such as internal metadata files, structured Beads comments, verific
|
|
|
174
203
|
- hardening must explicitly re-check secret handling, redaction, and frontend/backend observability hygiene
|
|
175
204
|
- hardening must explicitly satisfy the documentation and repo hygiene policy in this file before final evaluation can begin
|
|
176
205
|
- hardening must leave the repo statically reviewable enough that the final static evaluator can trace startup, tests, entry points, routes, config, and mock/local-data boundaries without rewriting core code
|
|
177
|
-
- hardening must explicitly challenge any remaining gaps against the
|
|
206
|
+
- hardening must explicitly challenge any remaining gaps against the minimum 90 percent coverage threshold and require proof, fixes, or an explicit prompt-faithful exception before `P7`
|
|
178
207
|
- before `P7`, require that parent-root `../docs/test-coverage.md` is detailed enough for the owner to map major requirement and risk points to tests and gaps without inference work
|
|
179
208
|
- before `P7`, require that security-bearing projects present traceable static evidence for auth entry points, route authorization, object authorization, function-level authorization, admin/internal/debug protection, and tenant or user isolation when those dimensions apply
|
|
180
209
|
- before `P7`, for non-trivial frontend work, require meaningful static frontend test evidence for major state transitions or failure paths rather than relying only on runtime screenshots or E2E confidence
|
|
181
210
|
- before `P7`, require repo-local build/preview/config traceability plus disclosure in `README.md` of feature flags, debug/demo surfaces, and mock defaults when those surfaces exist
|
|
182
211
|
- before `P7`, require logging and validation contracts to be statically traceable enough that the owner can review them from the repo plus external references when needed
|
|
183
|
-
- final evaluation readiness requires the
|
|
212
|
+
- final evaluation readiness requires the audit-numbered `P7` model under `../.tmp/`; every fresh evaluation produces `audit_report-<N>.md`, `fail` audits route back to the latest `develop-N` session, `partial pass` audits open scoped `bugfix-N` sessions whose fix checks are stored as `audit_report-<N>-fix_check-<M>.md`, clean `pass` audits before the required bugfix sessions are discarded and rerun, and `P7` cannot finish until 2 bugfix sessions have been completed plus a clean `test_coverage_and_readme_audit_report.md`
|
|
184
213
|
- if the `P7` issue-fix loop materially reopens the integrated verification boundary, route it back through integrated verification before continuing with follow-up fix verification
|
|
214
|
+
- before leaving `P7`, require a clean parent-root `../.tmp/test_coverage_and_readme_audit_report.md`; if it finds any issue, route the fixes to the currently active recoverable developer session, replace the report, and rerun the audit until clean
|
|
185
215
|
|
|
186
216
|
## Acceptance rule
|
|
187
217
|
|