theslopmachine 0.3.7 → 0.4.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.
Files changed (44) hide show
  1. package/MANUAL.md +13 -9
  2. package/README.md +163 -3
  3. package/RELEASE.md +11 -3
  4. package/assets/agents/developer-v2.md +86 -0
  5. package/assets/agents/developer.md +21 -23
  6. package/assets/agents/slopmachine-v2.md +219 -0
  7. package/assets/agents/slopmachine.md +56 -38
  8. package/assets/skills/beads-operations/SKILL.md +32 -31
  9. package/assets/skills/beads-operations-v2/SKILL.md +82 -0
  10. package/assets/skills/clarification-gate/SKILL.md +8 -1
  11. package/assets/skills/clarification-gate-v2/SKILL.md +74 -0
  12. package/assets/skills/developer-session-lifecycle/SKILL.md +45 -14
  13. package/assets/skills/developer-session-lifecycle-v2/SKILL.md +148 -0
  14. package/assets/skills/development-guidance-v2/SKILL.md +60 -0
  15. package/assets/skills/evaluation-triage-v2/SKILL.md +38 -0
  16. package/assets/skills/final-evaluation-orchestration/SKILL.md +9 -11
  17. package/assets/skills/final-evaluation-orchestration-v2/SKILL.md +57 -0
  18. package/assets/skills/get-overlays/SKILL.md +77 -6
  19. package/assets/skills/hardening-gate-v2/SKILL.md +64 -0
  20. package/assets/skills/integrated-verification-v2/SKILL.md +47 -0
  21. package/assets/skills/owner-evidence-discipline-v2/SKILL.md +15 -0
  22. package/assets/skills/planning-gate/SKILL.md +6 -4
  23. package/assets/skills/planning-gate-v2/SKILL.md +91 -0
  24. package/assets/skills/planning-guidance-v2/SKILL.md +100 -0
  25. package/assets/skills/remediation-guidance-v2/SKILL.md +31 -0
  26. package/assets/skills/report-output-discipline-v2/SKILL.md +15 -0
  27. package/assets/skills/scaffold-guidance-v2/SKILL.md +57 -0
  28. package/assets/skills/session-rollover-v2/SKILL.md +41 -0
  29. package/assets/skills/submission-packaging/SKILL.md +147 -115
  30. package/assets/skills/submission-packaging-v2/SKILL.md +142 -0
  31. package/assets/skills/verification-gates/SKILL.md +44 -16
  32. package/assets/skills/verification-gates-v2/SKILL.md +102 -0
  33. package/assets/slopmachine/backend-evaluation-prompt.md +9 -2
  34. package/assets/slopmachine/frontend-evaluation-prompt.md +9 -2
  35. package/assets/slopmachine/templates/AGENTS-v2.md +55 -0
  36. package/assets/slopmachine/templates/AGENTS.md +20 -17
  37. package/assets/slopmachine/tracker-init.js +104 -0
  38. package/assets/slopmachine/workflow-init-v2.js +99 -0
  39. package/package.json +1 -1
  40. package/src/constants.js +22 -3
  41. package/src/init.js +33 -28
  42. package/src/install.js +186 -140
  43. package/src/utils.js +19 -0
  44. package/assets/slopmachine/beads-init.js +0 -439
@@ -15,6 +15,7 @@ Use this skill only when the project has already passed integrated verification,
15
15
  - Packaging is not cleanup theater. Preserve required evidence and remove only local junk, caches, and accidental noise.
16
16
  - Do not declare packaging complete early.
17
17
  - Packaging is incomplete until every required step in this skill has been executed and every required artifact path has been verified to exist.
18
+ - do not stop packaging for approval, status confirmation, or handoff once this phase has begun; continue until the package is complete
18
19
 
19
20
  ## Completion discipline
20
21
 
@@ -28,7 +29,8 @@ Use this skill only when the project has already passed integrated verification,
28
29
 
29
30
  - produce the exact required delivery structure
30
31
  - make the package reviewable and reproducible
31
- - include the required docs, metadata, evidence, and session artifacts
32
+ - keep development docs separate from final generated submission artifacts
33
+ - include the required docs, metadata, submission artifacts, evidence, and session artifacts
32
34
  - exclude local-only junk, transient noise, and secret material
33
35
 
34
36
  ## Required final structure
@@ -40,27 +42,19 @@ The final submission layout in the parent project root must be:
40
42
  - `api-spec.md` when applicable
41
43
  - `test-coverage.md`
42
44
  - `questions.md`
43
- - `submission-self-test-index.md`
44
- - `hard-threshold-explanation.md`
45
- - `document-completeness-report.md`
46
- - `engineering-architecture-quality-report.md`
47
- - `engineering-architecture-quality-statement.md`
48
- - `engineering-results-report.md`
49
- - `engineering-details-professionalism.md`
50
- - `implementation-comparison-report.md`
51
- - `prompt-understanding-adaptability.md`
52
- - `aesthetics.md` when applicable
53
- - `aesthetics-assessment.md` when applicable
45
+ - `submission/`
46
+ - generated submission documents based on the reference files in `~/`
54
47
  - evaluation reports
55
- - screenshots and proof materials
56
- - relocated screenshots and proof images needed for submission review
48
+ - repo file structure screenshot
49
+ - working app screenshots
50
+ - relocated screenshots and proof materials needed for submission review
57
51
  - current working directory delivered as parent-root `repo/`
58
52
  - `../sessions/`
59
- - `trajectory.json`
60
- - `trajectory-N.json` when multiple session trajectories exist
61
53
  - `../metadata.json`
62
54
  - `../session.json`
63
55
  - `../session-N.json` when multiple exported sessions exist
56
+ - `../trajectory.json`
57
+ - `../trajectory-N.json` when multiple trajectories exist
64
58
  - parent-root `../.tmp/` directory moved out of current `.tmp/` when it exists
65
59
 
66
60
  Do not treat `.ai/` as part of the final submission structure unless the user explicitly changes that requirement later.
@@ -69,24 +63,25 @@ Do not treat `.ai/` as part of the final submission structure unless the user ex
69
63
 
70
64
  - verify the root package structure matches the blueprint exactly
71
65
  - make sure parent-root `../metadata.json` is complete and reflects the delivered project truthfully
72
- - create or finalize parent-root `../docs/design.md` from the working `docs/design.md`
73
- - create or finalize parent-root `../docs/api-spec.md` from the working `docs/api-spec.md` when applicable
74
- - create or finalize parent-root `../docs/test-coverage.md` from the working `docs/test-coverage.md`
75
- - create or finalize parent-root `../docs/questions.md` from the accepted clarification/question record
76
- - move the final docs set out of current `docs/` into parent-root `../docs/` after development is complete
77
- - ensure `README.md` matches the delivered runtime, verification, and feature behavior
66
+ - verify parent-root `../docs/design.md` exists and reflects the final delivered design when applicable
67
+ - verify parent-root `../docs/api-spec.md` exists and reflects the final delivered interfaces when applicable
68
+ - verify parent-root `../docs/test-coverage.md` exists and reflects the final delivered verification coverage
69
+ - verify parent-root `../docs/questions.md` exists from the accepted clarification/question record when applicable
70
+ - create parent-root `../submission/` for final generated submission artifacts and reviewer-facing proof
71
+ - ensure `README.md` matches the delivered codebase, functionality, runtime steps, and test steps, stays friendly to a junior developer, and does not reference the external docs set in `../docs/`
78
72
  - include `run_tests.sh`
79
- - relocate evaluation artifacts into parent-root `../docs/`, including:
73
+ - relocate evaluation artifacts into parent-root `../submission/`, including:
80
74
  - backend evaluation report
81
75
  - frontend evaluation report
82
- - relocate screenshots and proof materials relevant to runtime behavior and major flows into parent-root `../docs/`
83
- - gather required screenshots from test-output or artifact directories and relocate them into parent-root `../docs/` during packaging
76
+ - relocate screenshots and proof materials relevant to runtime behavior and major flows into parent-root `../submission/`
77
+ - gather required screenshots from test-output or artifact directories and relocate them into parent-root `../submission/` during packaging
84
78
  - include exported session artifacts at the parent project root using the naming rules:
85
79
  - `../session.json` for a single exported session
86
80
  - `../session-N.json` when multiple exported sessions exist
87
- - include trajectory artifacts in `../sessions/` using the naming rules:
88
- - `../sessions/trajectory.json` for a single trajectory
89
- - `../sessions/trajectory-N.json` when multiple trajectories exist
81
+ - include trajectory artifacts at the parent project root using the naming rules:
82
+ - `../trajectory.json` for a single trajectory
83
+ - `../trajectory-N.json` when multiple trajectories exist
84
+ - preserve parent-root `../sessions/` as the session artifact directory for any additional exported conversation traces the package needs to retain
90
85
  - include any required package/tree proof or delivery evidence
91
86
 
92
87
  ## Session export sequence
@@ -99,46 +94,58 @@ For the developer session, run these exact steps:
99
94
  - do not proceed to later packaging steps until the export, strip, and trajectory conversion steps have all succeeded
100
95
 
101
96
  1. `opencode export <developer-session-id> > ../session-export.json`
102
- 2. `python3 ~/slopmachine/utils/strip_session_parent.py ../session-export.json --output ../session.json`
103
- 3. `python3 ~/slopmachine/utils/convert_ai_session.py -i ../session.json -o ../trajectory.json`
97
+ 2. `python3 ~/utils/strip_session_parent.py ../session-export.json --output ../session.json`
98
+ 3. `python3 ~/utils/convert_ai_session.py -i ../session.json -o ../trajectory.json`
104
99
 
105
100
  After those steps:
106
101
 
107
102
  - keep the cleaned final exported session as parent-root `../session.json` unless multiple exports require `../session-N.json`
108
- - move or copy the generated trajectory into `../sessions/trajectory.json` unless multiple trajectories require `../sessions/trajectory-N.json`
109
- - treat `../session-export.json` and the intermediate parent-root `../session.json` as temporary packaging intermediates unless the package contract later says otherwise
110
- - pause immediately after the export/clean/convert sequence and verify that all expected directories and required files exist before running any later packaging scripts
103
+ - keep the generated final trajectory as parent-root `../trajectory.json` unless multiple trajectories require `../trajectory-N.json`
104
+ - treat parent-root `../session-export.json` as a temporary packaging intermediate
105
+ - treat parent-root `../session.json` and `../trajectory.json` as final package artifacts unless numbering rules require the `-N` variants
106
+ - immediately verify that all expected directories and required files exist before running any later packaging scripts
111
107
  - if the required utilities or output files are missing, packaging is not ready to continue
112
108
 
113
109
  ## Required file moves
114
110
 
115
- - move the final docs set out of current `docs/` into parent-root `../docs/`
116
- - after packaging, current `docs/` must not remain in the delivered `repo/` tree
117
- - if current `.tmp/` exists, collect the relevant evaluation reports and proof artifacts from it into parent-root `../docs/`
118
- - collect screenshots and other required proof materials from repo-local runtime/output directories into parent-root `../docs/`
111
+ - if repo-local `docs/` exists, treat it as accidental residue, reconcile any missing content into parent-root `../docs/`, and remove it from the delivered `repo/` tree
112
+ - if current `.tmp/` exists, move the whole directory to parent-root `../.tmp/` before harvesting any reviewer-facing artifacts from it
113
+ - after preserving parent-root `../.tmp/`, collect the relevant evaluation reports and proof artifacts from it into parent-root `../submission/`
114
+ - collect screenshots and other required proof materials from repo-local runtime/output directories into parent-root `../submission/`
119
115
  - after relocation, the final submission should not require digging through repo-local output directories to find evidence
120
- - find required screenshots in their generated locations and move or copy them into parent-root `../docs/` so reviewers do not have to inspect e2e artifact directories manually
116
+ - find required screenshots in their generated locations and move or copy them into parent-root `../submission/` so reviewers do not have to inspect e2e artifact directories manually
121
117
  - keep screenshot filenames clear enough that the referenced runtime page, flow, or evidence purpose is understandable from the file name or nearby document reference
122
118
 
123
119
  ## Repo cleanup rules
124
120
 
125
121
  Clean the current working directory that will be delivered as parent-root `repo/` before final submission.
126
122
 
127
- Remove runtime, editor, cache, and tooling noise such as:
123
+ Remove runtime, editor, cache, tooling noise, generated artifacts, and environment junk recursively anywhere in the delivered repo tree, such as:
128
124
 
129
- - `.tmp/`
130
125
  - `.git/`
131
126
  - `.opencode/`
132
127
  - `.codex/`
133
128
  - `.vscode/`
129
+ - `.env`
130
+ - `.env.local`
131
+ - `.env.example`
132
+ - other env-file variants
134
133
  - `__pycache__/`
135
134
  - `.pytest_cache/`
136
135
  - `node_modules/`
137
136
  - `.venv/`
138
137
  - `.net/`
138
+ - `playwright-report/`
139
+ - `test-results/`
140
+ - `dist/` or similar generated build output when not part of the delivered runtime contract
141
+ - generated screenshots, reports, and proof artifacts that have already been relocated into parent-root `../submission/`
139
142
  - `AGENTS.md`
140
143
  - similar environment-dependent or local-only directories
141
144
 
145
+ - if repo-local `.tmp/` existed, do not delete it before preserving it as parent-root `../.tmp/`
146
+
147
+ - this cleanup is recursive; do not leave forbidden directories or generated junk buried deeper in the repo hierarchy after required artifacts have been moved out
148
+
142
149
  Product attachment packaging is not allowed.
143
150
 
144
151
  Do not include environment-dependent local runtime content in the delivered package.
@@ -147,11 +154,12 @@ Do not include environment-dependent local runtime content in the delivered pack
147
154
 
148
155
  - confirm the final package contains what reviewers actually need to inspect the project
149
156
  - confirm docs describe delivered behavior, not planned or aspirational behavior
150
- - confirm `docs/test-coverage.md` explains the tested flows, coverage boundaries, and how the evaluator should interpret the coverage evidence
151
- - confirm evaluation reports and screenshots have been relocated into parent-root `../docs/` and correspond to the final qualified state, not an older revision
152
- - confirm current `docs/` has been handled correctly so final delivery docs live in parent-root `../docs/`
153
- - confirm repo-local evidence directories have been harvested so required reports and screenshots now live in parent-root `../docs/`
154
- - confirm required screenshots have been relocated into parent-root `../docs/`
157
+ - confirm parent-root `../docs/test-coverage.md` explains the tested flows, coverage boundaries, and how the evaluator should interpret the coverage evidence
158
+ - confirm generated submission documents exist under parent-root `../submission/` and correspond to the final qualified state, not an older revision
159
+ - confirm evaluation reports and screenshots have been relocated into parent-root `../submission/` and correspond to the final qualified state, not an older revision
160
+ - confirm shared project docs live in parent-root `../docs/` and any accidental repo-local `docs/` copy has been removed from the delivered tree
161
+ - confirm repo-local evidence directories have been harvested so required reports and screenshots now live in parent-root `../submission/`
162
+ - confirm required screenshots have been relocated into parent-root `../submission/`
155
163
  - confirm parent-root metadata fields are populated correctly:
156
164
  - `prompt`
157
165
  - `project_type`
@@ -164,87 +172,110 @@ Do not include environment-dependent local runtime content in the delivered pack
164
172
  - confirm session export naming rules are followed:
165
173
  - parent-root `../session.json`
166
174
  - parent-root `../session-N.json` when multiple exported sessions exist
167
- - `../sessions/trajectory.json`
168
- - `../sessions/trajectory-N.json` when multiple trajectories exist
169
-
170
- ## Submission reporting documents
171
-
172
- Create a root document at:
173
-
174
- - `docs/submission-self-test-index.md`
175
-
176
- Use it as the master index of packaging/self-test outputs.
177
-
178
- Rules:
179
-
180
- - answer the direct questions inline in this index when a standalone document is not required
181
- - when a standalone document is required, create the file and include its path in the index
182
- - keep the answers tied to the real delivered project, not generic template text
183
- - use real screenshots from the delivered product and real project evidence
184
-
185
- Create or populate these deliverables:
186
-
187
- 1. `docs/submission-self-test-index.md`
188
- - answer whether the delivered product can actually run and be verified
189
- - link screenshots proving successful runtime pages and, when relevant, error pages
190
- 2. `docs/hard-threshold-explanation.md`
191
- - explain success/failure status
192
- - state whether the delivered product can actually be operated and verified
193
- - state whether the delivered product significantly deviates from the prompt topic
194
- 3. `docs/document-completeness-report.md`
195
- - based on `~/slopmachine/document-completeness.md`
196
- - create a similar table document for this codebase
197
- - include screenshots with real product data where applicable
198
- 4. Add to `docs/submission-self-test-index.md`
199
- - Self-Test Status — Delivery Completeness Statement
200
- - answer whether the deliverables fully cover the core prompt requirements
201
- - answer whether the product has a real 0-to-1 delivery form rather than partial/schematic output
202
- - if unable, provide a specific reason
203
- 5. `docs/engineering-architecture-quality-report.md`
204
- - based on `~/slopmachine/quality-document.md`
205
- - generate a report with the same type of information and proper formatting
206
- - include a screenshot of the current working directory folder structure that will be delivered as `repo/`
207
- - suggested method: run a tree command such as `tree . -a -L 3 > ../repo-structure.txt`, open that output in the terminal or editor, and capture a screenshot manually
208
- 6. `docs/engineering-architecture-quality-statement.md`
209
- - Self-test results: engineering and architecture quality statement
210
- 7. `docs/engineering-results-report.md`
211
- - based on `~/slopmachine/engineering-results.md`
212
- - generate a similar document for this codebase
213
- 8. `docs/engineering-details-professionalism.md`
214
- - cover these exact checks:
175
+ - parent-root `../trajectory.json`
176
+ - parent-root `../trajectory-N.json` when multiple trajectories exist
177
+
178
+ ## Submission artifact and response contract
179
+
180
+ Use parent-root `../submission/` for the file-based final generated submission artifacts.
181
+
182
+ Keep the generated content tied to the real delivered project, not generic template text.
183
+
184
+ Use real screenshots from the delivered product and real project evidence.
185
+
186
+ The packaging-stage outputs are two kinds only:
187
+
188
+ - `FILE` outputs: create the specified file under parent-root `../submission/`
189
+ - `PARAGRAPH` outputs: answer directly in the final packaging-stage response instead of creating a file
190
+
191
+ Create these file outputs:
192
+
193
+ 1. `FILE` -> `../submission/self-test-results-hard-threshold.md`
194
+ - Can the delivered product actually run and be verified, including error pages and successful running pages.
195
+ - Include the relevant working app screenshots.
196
+ 2. `FILE` -> `../submission/self-test-status-delivery-completeness.md`
197
+ - Do the delivered deliverables fully cover the core requirements explicitly stated in the prompt.
198
+ - Does the delivered product possess a basic delivery form from 0 to 1 rather than partial functionality, schematic implementation, or code snippets.
199
+ - If unable, provide a specific reason.
200
+ 3. `FILE` -> `../submission/self-assessment-engineering-and-architecture-quality.md`
201
+ - Based on `~/quality-document.md`.
202
+ - Does the delivered product employ a reasonable engineering structure and modular division under the current problem.
203
+ - Does the delivered product demonstrate basic maintainability and scalability rather than a temporary or stacked implementation.
204
+ - Include a screenshot of the current working directory folder structure that will be delivered as `repo/`.
205
+ 4. `FILE` -> `../submission/self-test-results-engineering-details-and-professionalism.md`
206
+ - Cover these exact checks:
215
207
  - Error handling: all APIs return standard HTTP codes and JSON error format
216
208
  - Logging: key flows have structured logs
217
209
  - Input validation: all body/query/path params validated
218
210
  - No secrets/keys in config files
219
211
  - No `node_modules` / `.venv` committed
220
- - No stray debug statements such as `console.log("here")`
221
- 9. `docs/implementation-comparison-report.md`
222
- - based on `~/slopmachine/implementation-comparison.md`
223
- - generate a similar document for this codebase with real evidence
224
- 10. `docs/prompt-understanding-adaptability.md`
225
- - explain whether the delivered product accurately understands and responds to business objectives, use cases, and implicit constraints in the prompt rather than merely implementing presentation-layer technical requirements
226
- 11. `docs/aesthetics.md`
227
- - for fullstack or pure frontend only
228
- - answer whether the visual/interaction fits the scene and is aesthetically pleasing
229
- - if not applicable, write `Not Applicable`
230
- - if aesthetically unappealing, provide a specific reason
231
- 12. `docs/aesthetics-assessment.md`
232
- - for fullstack or pure frontend only
233
- - produce the aesthetics assessment in a separate document
234
- - if not applicable, write `Not Applicable`
235
- - if aesthetically unappealing, provide a specific reason
212
+ - No `console.log("here")` debug statements left in code
213
+ 5. `FILE` -> `../submission/self-test-results-prompt-understanding-and-adaptability.md`
214
+ - Explain whether the delivered product accurately understands and responds to business objectives, use cases, and implicit constraints in the prompt rather than merely mechanically implementing presentation-layer technical requirements.
215
+ 6. `FILE` -> `../submission/self-test-results-aesthetics.md`
216
+ - Fullstack or pure frontend only.
217
+ - Does the visual and interaction of the delivered product fit the scene and is the design aesthetically pleasing.
218
+ - If not applicable, write `Not Applicable`.
219
+ - If aesthetically unappealing, provide a specific reason.
220
+
221
+ In the final packaging-stage response, include these paragraph outputs in order:
222
+
223
+ 1. `PARAGRAPH` -> Hard threshold explanation
224
+ - Whether the delivered product can actually be operated and verified.
225
+ - Whether the delivered product significantly deviates from the prompt topic.
226
+ 2. `PARAGRAPH` -> Delivery completeness statement
227
+ - Whether the delivered deliverables fully cover the core prompt requirements.
228
+ - Whether the delivered product has a real 0-to-1 delivery form rather than partial or schematic output.
229
+ - If unable, provide a specific reason.
230
+ 3. `PARAGRAPH` -> Engineering and architecture quality statement
231
+ 4. `PARAGRAPH` -> Engineering details and professionalism description
232
+ - Error handling: all APIs return standard HTTP codes plus JSON error format.
233
+ - Logging: key flows have structured logs.
234
+ - Input validation: all body/query/path parameters validated.
235
+ - No secrets or keys in config files.
236
+ - No `node_modules` or `.venv` committed.
237
+ - No `console.log("here")` debug statements left in code.
238
+ 5. `PARAGRAPH` -> Prompt requirements understanding and adaptability explanation
239
+ - Whether the delivered product accurately understands and responds to business objectives, use cases, and implicit constraints in the prompt rather than merely implementing presentation-layer technical requirements.
240
+ 6. `PARAGRAPH` -> Aesthetics assessment
241
+ - Fullstack or pure frontend only.
242
+ - Whether the visual and interaction of the delivered product fit the scene and are aesthetically pleasing.
243
+ - If not applicable, state `Not Applicable`.
244
+ - If aesthetically unappealing, provide a specific reason.
245
+
246
+ Store supporting screenshots and reviewer-facing proof in `../submission/`, including:
247
+
248
+ - repo file structure screenshot
249
+ - working app screenshots
250
+ - relocated evaluation reports
251
+ - other proof artifacts referenced by the generated submission files
236
252
 
237
253
  ## Cleanliness rules
238
254
 
239
255
  - remove caches, temp outputs, build junk, editor noise, and accidental local files that are not part of the package contract
240
256
  - do not remove required evidence just because it looks noisy
241
257
  - verify no local secret files or sensitive values are included in the final package
258
+ - verify no `.env` or env-file variant exists anywhere in the delivered repo tree or related package artifacts
259
+ - verify the delivered package can be started from scratch without any preexisting `.env` file; if runtime env-file generation is part of the stack, it must be generated ephemerally from Docker-provided variables rather than shipped as a package artifact
242
260
  - verify frontend screenshots do not show demo/debug/setup leakage
243
261
  - verify evaluation rebuttal notes, if any, remain attached to the relevant evaluation reports
244
262
  - verify the final package does not include pointless tests or artifacts whose only purpose was to assert documentation-directory existence
245
- - verify that required evidence is centralized under parent-root `../docs/` rather than scattered across repo-local output directories
263
+ - verify that required submission artifacts and evidence are centralized under parent-root `../submission/` rather than scattered across repo-local output directories
246
264
  - do not leave required screenshots stranded only inside raw e2e artifact directories
247
265
 
266
+ ## Optional final archive
267
+
268
+ - after packaging is complete, you may create a parent-root zip archive for handoff review
269
+ - if you do, the archive should include the final delivered structures and exports only
270
+ - because final submission artifacts now live under `../submission/`, include it alongside the other delivered paths
271
+ - recommended parent-root archive contents are:
272
+ - `docs/`
273
+ - `submission/`
274
+ - `repo/`
275
+ - `session*.json`
276
+ - `sessions/`
277
+ - `trajectory*.json`
278
+
248
279
  ## Final packaging verification
249
280
 
250
281
  - do one final package review before declaring packaging complete
@@ -257,12 +288,13 @@ Create or populate these deliverables:
257
288
  Do not close packaging until all of these are true:
258
289
 
259
290
  - final docs exist in parent-root `../docs/`
260
- - current `docs/` no longer remains in the delivered repo tree
291
+ - any accidental repo-local `docs/` copy no longer remains in the delivered repo tree
261
292
  - parent-root `../metadata.json` exists and is populated correctly
262
293
  - parent-root `../session.json` or `../session-N.json` exists as required
263
- - `../sessions/trajectory.json` or `../sessions/trajectory-N.json` exists as required
264
- - evaluation reports are present under parent-root `../docs/`
265
- - required screenshots and proof materials are present under parent-root `../docs/`
266
- - required submission-report documents exist in parent-root `../docs/`
294
+ - parent-root `../trajectory.json` or `../trajectory-N.json` exists as required
295
+ - parent-root `../sessions/` exists
296
+ - generated submission files exist under parent-root `../submission/`
297
+ - evaluation reports are present under parent-root `../submission/`
298
+ - required screenshots and proof materials are present under parent-root `../submission/`
267
299
  - delivered repo no longer contains forbidden junk directories
268
300
  - final structure matches the required layout exactly
@@ -0,0 +1,142 @@
1
+ ---
2
+ name: submission-packaging-v2
3
+ description: Submission packaging and final closure rules for slopmachine-v2.
4
+ ---
5
+
6
+ # Submission Packaging v2
7
+
8
+ Use this skill only during `P10 Submission Packaging`.
9
+
10
+ ## Core rules
11
+
12
+ - enter `P10` before packaging work begins
13
+ - keep packaging work inside the formal phase window
14
+ - package from an already-clean state instead of compensating for avoidable earlier drift
15
+ - treat formal workflow closure failures as real packaging failures
16
+ - treat this as internal packaging guidance, not developer-visible workflow text
17
+ - do not use it to justify skipping verification or evaluation gates
18
+ - packaging is not cleanup theater; preserve required evidence and remove only local junk, caches, and accidental noise
19
+ - do not declare packaging complete early
20
+ - packaging is incomplete until every required step in this skill has been executed and every required artifact path has been verified to exist
21
+ - do not stop packaging for approval, status confirmation, or handoff once this phase has begun; continue until the package is complete
22
+
23
+ ## Completion discipline
24
+
25
+ - execute packaging in order; do not jump to the end and assume missing pieces can be filled later
26
+ - after each major packaging block, verify the expected outputs before continuing
27
+ - before closing the packaging phase, explicitly check that every required file and directory exists in its final location
28
+ - if any required artifact is missing, packaging is still in progress
29
+ - if any cleanup, move, export, or reporting step is incomplete, packaging is still in progress
30
+
31
+ ## Packaging goals
32
+
33
+ - assemble the required final structure
34
+ - preserve required evidence
35
+ - exclude local-only junk and secret material
36
+ - export session and trajectory artifacts correctly
37
+ - make the final package easy to review
38
+
39
+ ## Required final structure
40
+
41
+ The final submission layout in the parent project root must be:
42
+
43
+ - `docs/`
44
+ - `design.md`
45
+ - `api-spec.md` when applicable
46
+ - `test-coverage.md`
47
+ - `questions.md`
48
+ - `submission/`
49
+ - generated submission documents based on the reference files in `~/`
50
+ - evaluation reports
51
+ - repo file structure screenshot
52
+ - working app screenshots
53
+ - relocated screenshots and proof materials needed for submission review
54
+ - current working directory delivered as parent-root `repo/`
55
+ - `../sessions/`
56
+ - `../metadata.json`
57
+ - `../session.json`
58
+ - `../session-N.json` when multiple exported sessions exist
59
+ - `../trajectory.json`
60
+ - `../trajectory-N.json` when multiple trajectories exist
61
+ - parent-root `../.tmp/` directory moved out of current `.tmp/` when it exists
62
+
63
+ ## Required packaging actions
64
+
65
+ - verify the root package structure matches the blueprint exactly
66
+ - make sure parent-root `../metadata.json` is complete and reflects the delivered project truthfully
67
+ - verify parent-root `../docs/design.md` exists and reflects the final delivered design when applicable
68
+ - verify parent-root `../docs/api-spec.md` exists and reflects the final delivered interfaces when applicable
69
+ - verify parent-root `../docs/test-coverage.md` exists and reflects the final delivered verification coverage
70
+ - verify parent-root `../docs/questions.md` exists from the accepted clarification/question record when applicable
71
+ - create parent-root `../submission/` for final generated submission artifacts and reviewer-facing proof
72
+ - ensure `README.md` matches the delivered codebase, functionality, runtime steps, and test steps, stays friendly to a junior developer, and does not reference the external docs set in `../docs/`
73
+ - include `run_tests.sh`
74
+ - relocate evaluation artifacts into parent-root `../submission/`
75
+ - relocate screenshots and proof materials relevant to runtime behavior and major flows into parent-root `../submission/`
76
+ - include exported session artifacts at the parent project root using the naming rules:
77
+ - `../session.json` for a single exported session
78
+ - `../session-N.json` when multiple exported sessions exist
79
+ - include trajectory artifacts at the parent project root using the naming rules:
80
+ - `../trajectory.json` for a single trajectory
81
+ - `../trajectory-N.json` when multiple trajectories exist
82
+ - preserve parent-root `../sessions/` as the session artifact directory for any additional exported conversation traces the package needs to retain
83
+
84
+ ## Session export sequence
85
+
86
+ For the developer session, run these exact steps:
87
+
88
+ 1. `opencode export <developer-session-id> > ../session-export.json`
89
+ 2. `python3 ~/utils/strip_session_parent.py ../session-export.json --output ../session.json`
90
+ 3. `python3 ~/utils/convert_ai_session.py -i ../session.json -o ../trajectory.json`
91
+
92
+ After those steps:
93
+
94
+ - keep the cleaned final exported session as parent-root `../session.json` unless multiple exports require `../session-N.json`
95
+ - keep the generated final trajectory as parent-root `../trajectory.json` unless multiple trajectories require `../trajectory-N.json`
96
+ - treat parent-root `../session-export.json` as a temporary packaging intermediate
97
+ - immediately verify that all expected directories and required files exist before running later packaging steps
98
+ - if the required utilities or output files are missing, packaging is not ready to continue
99
+
100
+ ## Required file moves
101
+
102
+ - if repo-local `docs/` exists, treat it as accidental residue, reconcile any missing content into parent-root `../docs/`, and remove it from the delivered `repo/` tree
103
+ - if current `.tmp/` exists, move the whole directory to parent-root `../.tmp/` before harvesting any reviewer-facing artifacts from it
104
+ - after preserving parent-root `../.tmp/`, collect the relevant evaluation reports and proof artifacts from it into parent-root `../submission/`
105
+ - collect screenshots and other required proof materials from repo-local runtime/output directories into parent-root `../submission/`
106
+ - after relocation, the final submission should not require digging through repo-local output directories to find evidence
107
+ - keep screenshot filenames clear enough that the referenced runtime page, flow, or evidence purpose is understandable
108
+
109
+ ## Repo cleanup rules
110
+
111
+ - remove runtime, editor, cache, tooling noise, generated artifacts, and environment junk recursively anywhere in the delivered repo tree
112
+ - do not remove required evidence just because it looks noisy
113
+ - remove `.git/`, `.opencode/`, `.codex/`, `.vscode/`, env-file variants, caches, `node_modules/`, build outputs not part of delivery, raw test artifact directories once evidence is relocated, and repo-local `AGENTS.md`
114
+ - if repo-local `.tmp/` existed, do not delete it before preserving it as parent-root `../.tmp/`
115
+ - the cleanup is recursive; do not leave forbidden directories or generated junk buried deeper in the repo hierarchy after required artifacts have been moved out
116
+
117
+ ## Validation checklist
118
+
119
+ - confirm the final package contains what reviewers actually need to inspect the project
120
+ - confirm docs describe delivered behavior, not planned or aspirational behavior
121
+ - confirm parent-root `../docs/test-coverage.md` explains the tested flows, coverage boundaries, and how the evaluator should interpret the coverage evidence
122
+ - confirm generated submission documents exist under parent-root `../submission/` and correspond to the final qualified state
123
+ - confirm evaluation reports and screenshots have been relocated into parent-root `../submission/`
124
+ - confirm shared project docs live in parent-root `../docs/` and any accidental repo-local `docs/` copy has been removed from the delivered tree
125
+ - confirm required screenshots have been relocated into parent-root `../submission/`
126
+ - confirm parent-root metadata fields are populated correctly
127
+ - confirm session export naming rules are followed
128
+
129
+ ## Submission artifact and response contract
130
+
131
+ - use parent-root `../submission/` for file-based final generated submission artifacts
132
+ - keep the generated content tied to the real delivered project, not generic template text
133
+ - use real screenshots from the delivered product and real project evidence
134
+ - the packaging-stage outputs are `FILE` outputs under `../submission/` plus `PARAGRAPH` outputs in the final packaging-stage response
135
+
136
+ ## Final packaging verification
137
+
138
+ - do one final package review before declaring packaging complete
139
+ - confirm the package is coherent as a delivered submission, not just a working repo snapshot
140
+ - confirm the final git checkpoint can be created cleanly for the packaged state
141
+ - if packaging reveals a real defect or missing artifact, fix it before closing the phase
142
+ - do not close packaging until all required docs, exports, submission files, screenshots, and cleanup conditions are satisfied