theslopmachine 0.4.0 → 0.4.2

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 (42) hide show
  1. package/MANUAL.md +3 -3
  2. package/README.md +36 -12
  3. package/RELEASE.md +9 -7
  4. package/assets/agents/developer.md +51 -250
  5. package/assets/agents/slopmachine.md +253 -401
  6. package/assets/skills/beads-operations/SKILL.md +44 -38
  7. package/assets/skills/clarification-gate/SKILL.md +79 -14
  8. package/assets/skills/developer-session-lifecycle/SKILL.md +97 -35
  9. package/assets/skills/{development-guidance-v2 → development-guidance}/SKILL.md +9 -6
  10. package/assets/skills/{evaluation-triage-v2 → evaluation-triage}/SKILL.md +43 -4
  11. package/assets/skills/final-evaluation-orchestration/SKILL.md +44 -40
  12. package/assets/skills/{hardening-gate-v2 → hardening-gate}/SKILL.md +3 -3
  13. package/assets/skills/{integrated-verification-v2 → integrated-verification}/SKILL.md +6 -5
  14. package/assets/skills/{owner-evidence-discipline-v2 → owner-evidence-discipline}/SKILL.md +3 -3
  15. package/assets/skills/planning-gate/SKILL.md +32 -11
  16. package/assets/skills/{planning-guidance-v2 → planning-guidance}/SKILL.md +29 -9
  17. package/assets/skills/{remediation-guidance-v2 → remediation-guidance}/SKILL.md +3 -3
  18. package/assets/skills/{report-output-discipline-v2 → report-output-discipline}/SKILL.md +3 -3
  19. package/assets/skills/retrospective-analysis/SKILL.md +91 -0
  20. package/assets/skills/scaffold-guidance/SKILL.md +81 -0
  21. package/assets/skills/{session-rollover-v2 → session-rollover}/SKILL.md +3 -3
  22. package/assets/skills/submission-packaging/SKILL.md +163 -197
  23. package/assets/skills/verification-gates/SKILL.md +69 -81
  24. package/assets/slopmachine/templates/AGENTS.md +77 -101
  25. package/assets/slopmachine/{workflow-init-v2.js → workflow-init.js} +2 -2
  26. package/package.json +23 -23
  27. package/src/constants.js +12 -21
  28. package/src/init.js +38 -29
  29. package/src/install.js +123 -23
  30. package/assets/agents/developer-v2.md +0 -86
  31. package/assets/agents/slopmachine-v2.md +0 -219
  32. package/assets/skills/beads-operations-v2/SKILL.md +0 -82
  33. package/assets/skills/clarification-gate-v2/SKILL.md +0 -74
  34. package/assets/skills/developer-session-lifecycle-v2/SKILL.md +0 -148
  35. package/assets/skills/final-evaluation-orchestration-v2/SKILL.md +0 -57
  36. package/assets/skills/get-overlays/SKILL.md +0 -228
  37. package/assets/skills/planning-gate-v2/SKILL.md +0 -91
  38. package/assets/skills/scaffold-guidance-v2/SKILL.md +0 -57
  39. package/assets/skills/submission-packaging-v2/SKILL.md +0 -142
  40. package/assets/skills/verification-gates-v2/SKILL.md +0 -102
  41. package/assets/slopmachine/templates/AGENTS-v2.md +0 -55
  42. package/assets/slopmachine/tracker-init.js +0 -104
@@ -1,82 +0,0 @@
1
- ---
2
- name: beads-operations-v2
3
- description: Beads mutation and lifecycle-transition rules for slopmachine-v2.
4
- ---
5
-
6
- # Beads Operations v2
7
-
8
- Use this skill whenever you mutate Beads state.
9
-
10
- ## Transition discipline
11
-
12
- When a root phase changes:
13
-
14
- 1. verify exit conditions from evidence
15
- 2. add final phase evidence comments
16
- 3. close the current root phase
17
- 4. update metadata files to the new phase state
18
- 5. open the next root phase
19
- 6. add a `STATE:` transition comment
20
-
21
- ## Rules
22
-
23
- - enter the next phase before real work for that phase begins
24
- - do not close multiple root phases in one transition block
25
- - keep structured comments specific and auditable
26
- - treat phase-closure failures as real workflow failures to resolve
27
- - keep Beads and metadata aligned on current phase and active developer session slot when either changes
28
-
29
- ## Structured comment prefixes
30
-
31
- Use comments with fixed prefixes such as:
32
-
33
- - `STATE:`
34
- - `APPROVAL:`
35
- - `SESSION:`
36
- - `ARTIFACT:`
37
- - `VERIFY:`
38
- - `DECISION:`
39
- - `ISSUE:`
40
- - `HANDOFF:`
41
-
42
- ## Dependency rules
43
-
44
- - use explicit dependencies only for real sibling or cross-phase gating
45
- - do not add explicit dependencies from a parent Beads item to its own child Beads item
46
- - technical blockers may set Beads items to `blocked`, but they must not create new human-stop points unless the workflow is at the initial clarification approval or final human decision
47
-
48
- ## Forbidden workflow-state shortcuts
49
-
50
- - do not use QMD as the workflow state system
51
- - do not use Beads-local config or ad hoc notes as the primary workflow-state mechanism
52
-
53
- ## Direct command reference
54
-
55
- Use these `br` commands directly without needing a help lookup first:
56
-
57
- - `br list`
58
- - `br ready`
59
- - `br blocked`
60
- - `br show <id>`
61
- - `br create "Title"`
62
- - `br update <id> --status <status>`
63
- - `br update <id> --parent <parent-id>`
64
- - `br dep add <blocked-id> <blocker-id> --type blocks`
65
- - `br dep add <child-id> <parent-id> --type parent-child`
66
- - `br dep list <id>`
67
- - `br comments add <id> "..."`
68
- - `br comments <id>`
69
- - `br close <id>`
70
- - `br reopen <id>`
71
-
72
- If you truly need a command outside this core set, use `br -h` or `br <command> -h` only then.
73
-
74
- ## Useful comment prefixes
75
-
76
- - `STATE:`
77
- - `APPROVAL:`
78
- - `VERIFY:`
79
- - `ISSUE:`
80
- - `SESSION:`
81
- - `HANDOFF:`
82
- - `ARTIFACT:`
@@ -1,74 +0,0 @@
1
- ---
2
- name: clarification-gate-v2
3
- description: Clarification decomposition, ambiguity handling, safe-default locking, and prompt-faithfulness validation for slopmachine-v2.
4
- ---
5
-
6
- # Clarification Gate v2
7
-
8
- Use this skill only during `P1 Clarification`.
9
-
10
- ## Goals
11
-
12
- - make the scope clear enough for planning to start cleanly
13
- - resolve or safely lock material ambiguities
14
- - prepare a strong developer-facing clarification prompt
15
- - prevent prompt drift or scope narrowing
16
-
17
- ## Usage rules
18
-
19
- - enter `P1` before the first real clarification draft or validation pass
20
- - keep clarification work inside `P1`
21
- - treat this as internal clarification workflow guidance, not developer-visible text
22
- - do not start planning or developer launch while clarification is still active
23
- - stop for human approval only after the clarification artifact is ready and validated
24
-
25
- ## Clarification standard
26
-
27
- - preserve the full original prompt text in parent-root `../metadata.json` under `prompt`
28
- - decompose the prompt thoroughly into explicit requirements, implied requirements, user flows, constraints, boundaries, risks, quality expectations, and verification expectations
29
- - identify and lock safe default decisions that are consistent with the prompt and improve execution quality without changing intent
30
- - when more than one safe default is available, prefer the one that preserves or slightly over-covers the full prompt scope rather than the one that narrows scope for implementation convenience
31
- - record meaningful ambiguities, locked safe defaults, and decision rationale in the working questions record that will later become `../docs/questions.md`
32
- - prepare a developer-facing clarification prompt in `../.ai/clarification-prompt.md`
33
- - keep clarification aligned with the original prompt
34
- - do not let clarification reduce, weaken, narrow, or silently reinterpret the prompt
35
- - use clarification to sharpen the build and improve output quality only when that improvement stays fully consistent with the prompt intent
36
- - do not start tracked development until the human approval step is complete
37
-
38
- ## Clarification discipline
39
-
40
- - clarification must be thorough, not superficial
41
- - ask targeted questions for material ambiguity
42
- - lock decisions that are safe defaults when they do not need human choice
43
- - implementation difficulty is not a reason to narrow requirements when a stronger prompt-faithful default is still safe
44
- - prefer resolving uncertainty into stronger engineering direction rather than carrying vague assumptions forward
45
- - never use defaults that drift from the original prompt
46
- - do not use quick, loose, or simplifying assumptions that shrink what the prompt asked for
47
- - do not guess through material ambiguity
48
-
49
- ## Required outputs
50
-
51
- - working clarification record that will become `../docs/questions.md`
52
- - developer-facing clarification prompt in `../.ai/clarification-prompt.md`
53
- - explicit list of safe defaults and resolved ambiguities
54
-
55
- ## Clarification-prompt validation loop
56
-
57
- - compare the original prompt and the prepared clarification prompt using a fresh ephemeral `General` session, never the developer session
58
- - build one self-contained validation prompt block for that `General` session every time
59
- - include the full original prompt text, the full current questions or clarification record, and the full current `../.ai/clarification-prompt.md` in that block
60
- - do not use placeholders such as `same as previous`, `from context`, `see above`, or `latest artifact`
61
- - ask that `General` session whether the clarification prompt deviates from, weakens, narrows, or violates the original prompt in any way
62
- - require it to judge whether the clarification prompt is a genuine improvement in execution quality while remaining faithful to the original intent
63
- - if mismatches or prompt drift are found, revise the questions record and clarification prompt, then build a newly composed full validation block and run the check again
64
- - keep the validation loop bounded and intentional; prefer one strong pass plus a small number of revision cycles over repeated loose churn
65
- - only treat the clarification prompt as approved for developer use after this validation loop passes and your own review agrees
66
- - requesting human approval before this validation loop passes is illegal
67
-
68
- ## Exit conditions
69
-
70
- - the owner is confident the scope is understood clearly enough to enter planning
71
- - the clarification prompt is strong enough for the developer to start from the right understanding
72
- - material ambiguities are resolved or safely locked and documented
73
- - prompt drift has been checked and rejected
74
- - human approval exists
@@ -1,148 +0,0 @@
1
- ---
2
- name: developer-session-lifecycle-v2
3
- description: Startup, resume detection, metadata consistency, and developer-session recovery rules for slopmachine-v2.
4
- ---
5
-
6
- # Developer Session Lifecycle v2
7
-
8
- Use this skill during `P0 Intake and Setup` and whenever startup or recovery state is uncertain.
9
-
10
- ## Purpose
11
-
12
- - detect whether the run is new or resumed
13
- - initialize or recover workflow metadata consistently
14
- - initialize the planned bounded developer-session slots
15
- - recover the current active developer session when one already exists
16
-
17
- ## Usage rules
18
-
19
- - keep startup and recovery in one skill; both begin from the same state inspection problem
20
- - treat this as internal orchestration guidance, not developer-visible text
21
- - do not launch the developer during `P0` or `P1`
22
- - do not use this skill to create extra approval stops beyond the two allowed human gates
23
-
24
- ## State inspection sequence
25
-
26
- Inspect:
27
-
28
- - Beads root state and current phase
29
- - `../.ai/metadata.json`
30
- - `../metadata.json`
31
- - existing session comments or recorded session ids
32
-
33
- Decide whether the run is:
34
-
35
- - a fresh startup
36
- - a resumed run with consistent state
37
- - a run needing consistency repair before it can continue
38
-
39
- ## Startup contract
40
-
41
- Expect to start from:
42
-
43
- - a project prompt
44
- - tech stack information when it is not already clear from the prompt
45
-
46
- Optional startup inputs may include:
47
-
48
- - task id
49
- - project type
50
- - explicit constraints or preferences
51
-
52
- ## Startup flow
53
-
54
- 1. receive the prompt and stack context
55
- 2. create `../.ai/metadata.json` for internal workflow state
56
- 3. initialize parent-root `../metadata.json` with the required schema and store the full prompt text in `prompt`
57
- 4. initialize root workflow state and top-level phase Beads items
58
- 5. complete clarification using the clarification skill
59
- 6. wait only for the initial clarification approval before development starts
60
- 7. ensure the parent project root has the required working structure, especially `../sessions/` and `../docs/`
61
- 8. initialize the bounded developer-session slots
62
- 9. start the build developer session only after `P2` is ready to begin
63
- 10. send `Let's plan this project: <original-prompt>` as the first message in that session
64
- 11. wait for the developer's first exchange
65
- 12. send the approved clarification prompt as the next guidance message
66
- 13. continue orchestration from there
67
-
68
- ## Required startup outputs
69
-
70
- - root workflow state exists
71
- - `../.ai/metadata.json` exists
72
- - `../metadata.json` exists
73
- - planned developer session slots are initialized
74
- - required parent-root directories exist
75
-
76
- ## Metadata and workflow files
77
-
78
- - the internal workflow mirror is `../.ai/metadata.json`
79
- - the internal clarification artifact is `../.ai/clarification-prompt.md`
80
- - the project artifact metadata file is `../metadata.json`
81
- - do not use `../metadata.json` as internal workflow scratch state
82
-
83
- ## Suggested metadata fields
84
-
85
- Track at least:
86
-
87
- - `current_phase`
88
- - `awaiting_human`
89
- - `clarification_approved`
90
- - `remediation_round`
91
- - `developer_sessions`
92
- - `active_developer_session_index`
93
-
94
- Each planned developer session record should include enough to recover it later, such as:
95
-
96
- - `index`
97
- - `label`
98
- - `phase_group`
99
- - `session_id`
100
- - `status`
101
- - `handoff_in`
102
- - `handoff_out`
103
-
104
- Required project metadata fields in `../metadata.json` when relevant:
105
-
106
- - `prompt`
107
- - `project_type`
108
- - `frontend_language`
109
- - `backend_language`
110
- - `database`
111
- - `session_id`
112
- - `frontend_framework`
113
- - `backend_framework`
114
-
115
- - maintain `../metadata.json` as a real project artifact from the beginning of the workflow
116
- - fill known values immediately and keep the file current as the project becomes clearer
117
- - prefer explicit values; use `null` only when a field is genuinely unknown or not applicable
118
-
119
- ## Bounded session model
120
-
121
- Track up to three planned developer sessions:
122
-
123
- 1. build
124
- 2. stabilization
125
- 3. remediation
126
-
127
- Later session slots may remain unused if the workflow never needs them.
128
-
129
- ## Initial structure rule
130
-
131
- - parent-root `../docs/` is the owner-maintained external documentation directory
132
- - parent-root `../sessions/` is the session artifact directory for exported conversation traces
133
- - do not treat repo-local `docs/` as the active external documentation location
134
-
135
- ## Recovery rule
136
-
137
- - if session records disagree, stop and resolve the inconsistency before continuing
138
- - if the current phase already has an active developer session, recover that session instead of silently creating a new one
139
- - treat resume as deterministic recovery, not guesswork
140
- - on recovery, read `../.ai/metadata.json`, `../metadata.json`, current phase Beads item, latest `SESSION:` comment, latest unresolved `ISSUE:` comments, and any persistent session record before continuing
141
-
142
- ## Session persistence rule
143
-
144
- - store the active developer session id in Beads comments using `SESSION:`
145
- - mirror it in `../.ai/metadata.json`
146
- - mirror the active session id in parent-root `../metadata.json` as `session_id`
147
- - if these records disagree, stop and resolve the inconsistency before continuing
148
- - do not silently create a replacement developer session if the intended existing one can still be resumed
@@ -1,57 +0,0 @@
1
- ---
2
- name: final-evaluation-orchestration-v2
3
- description: Evaluation execution rules for slopmachine-v2.
4
- ---
5
-
6
- # Final Evaluation Orchestration v2
7
-
8
- Use this skill only during `P7 Evaluation and Triage`.
9
-
10
- ## Usage rules
11
-
12
- - load this skill only during final evaluation and evaluation-driven remediation decisions
13
- - treat it as internal orchestration guidance
14
- - do not let evaluator findings automatically override your triage judgment
15
-
16
- ## Prompt sources
17
-
18
- - `~/backend-evaluation-prompt.md`
19
- - `~/frontend-evaluation-prompt.md`
20
-
21
- ## Evaluation execution rules
22
-
23
- - run backend and frontend evaluation in separate fresh `General` sessions
24
- - compose the evaluation prompts yourself; do not tell the evaluator to read prompt files on its own
25
- - use the original project prompt from metadata
26
- - read the respective evaluation prompt file contents yourself before launching evaluation
27
- - compose each evaluation request yourself as one large final prompt block
28
- - prefix each evaluation request with a clear instruction that the reviewer must work in the current project directory and evaluate that delivered project
29
- - inject the full original project prompt into the `{prompt}` placeholder for the chosen evaluation prompt content
30
- - send that fully composed text block directly to the fresh `General` evaluator session
31
- - never tell the evaluator to go read prompt files, metadata files, or evaluation template paths on its own
32
- - never send only a path, filename, or shorthand reference and expect the evaluator to assemble the prompt itself
33
- - never reuse, resume, or continue a prior evaluation session
34
- - run the two evaluations sequentially, not in parallel, so shared runtime state, ports, databases, and artifacts do not conflict
35
- - track backend and frontend evaluation status separately
36
- - once backend evaluation passes, do not run backend evaluation again in later remediation rounds
37
- - once frontend evaluation passes, do not run frontend evaluation again in later remediation rounds
38
- - require each evaluation session to produce its own detailed evaluation report artifact
39
- - always compare both evaluations against the original prompt for alignment, not just the delivered implementation
40
- - keep reports file-backed and bring only short summaries into chat
41
- - rerun only the evaluation track that still needs re-evaluation after remediation
42
-
43
- ## Remediation loop
44
-
45
- - route accepted blocking issues back into the active remediation developer-session slot rather than inventing an untracked side path
46
- - after remediation, rerun strong local verification before any re-evaluation:
47
- - relevant local test commands
48
- - local runtime checks when affected behavior needs runtime proof
49
- - Playwright where applicable, with fresh screenshots
50
- - if remediation materially reopens an owner-run broad milestone boundary, route the project back to that boundary before re-evaluation instead of treating every remediation pass as an automatic broad rerun moment
51
- - keep the remediation loop bounded and explicit so you never lose track of the active evaluation round or the accepted issue set
52
- - remember the external process allows a maximum of 3 repair rounds
53
-
54
- ## Boundaries
55
-
56
- - this phase is owner-side analysis, not the final human decision gate
57
- - do not create extra human pauses while evaluation and triage are still active
@@ -1,228 +0,0 @@
1
- ---
2
- name: get-overlays
3
- description: Loads the developer phase overlays so the workflow owner can extract only the relevant guidance for the current implementation phase without naming workflow internals to the developer.
4
- ---
5
-
6
- # Get Overlays
7
-
8
- Use this skill when you need the detailed developer overlay guidance for one of the active implementation phases.
9
-
10
- ## Usage rules
11
-
12
- - Load this skill when entering an overlay-backed developer phase or when switching to a different overlay-backed developer phase.
13
- - Do not mention the skill or the word `overlay` to the developer.
14
- - Treat this content as internal scaffolding for composing a natural developer message.
15
- - Pass only the relevant guidance for the current engineering step, not the whole section verbatim unless the moment truly needs it.
16
- - Prefer short, natural teammate-style prompts.
17
-
18
- ## Cross-Cutting Documentation Discipline
19
-
20
- - the owner maintains external docs under parent-root `../docs/`
21
- - the developer should keep `README.md` and any codebase-local docs accurate for repo-local use
22
- - planning and implementation guidance should stay explicit enough that owner-maintained external docs can be updated accurately
23
- - verification and hardening should check both `README.md` and the owner-maintained external docs against implementation reality
24
- - `README.md` must stay codebase-specific and must not become an index or explanation of the external docs set
25
-
26
- ## Cross-Cutting Env-File Discipline
27
-
28
- - never create or keep `.env` files anywhere in the repo tree
29
- - do not allow committed `.env` files even as placeholders or examples
30
- - keep real secrets out of the repository and rely on Docker-provided runtime variables for sensitive values
31
- - if the stack requires env-file format at runtime, generate it ephemerally from Docker-provided runtime variables rather than storing it in the repo or package
32
- - verify the delivered project can start from scratch without any preexisting `.env` file in the repo or package
33
-
34
- ## Phase mapping
35
-
36
- - `P2 Development Bootstrap and Planning` -> `Planning And Design`
37
- - `P3 Scaffold and Foundation` -> `Scaffold And Foundation`
38
- - `P4 Module Implementation` -> `Module Implementation`
39
- - `P5 Ongoing Verification` -> `Verification And Review`
40
- - `P6 Integrated Verification` -> `Verification And Review`
41
- - `P7 Hardening` -> `Hardening`
42
- - `P9 Remediation` -> `Remediation`
43
- - `P10 Submission Packaging` -> `Packaging Preparation`
44
-
45
- ## Planning And Design
46
-
47
- - start from the actual project prompt and build the plan from there
48
- - carry the settled project requirements forward consistently as you plan
49
- - identify the hard non-negotiable requirements early and do not quietly trade them away for implementation convenience
50
- - when planning technical items that depend on a library, framework, API, or tool, check Context7 documentation first for authoritative usage details
51
- - when planning needs targeted outside research beyond direct documentation, use Exa web search next
52
- - use technical research to strengthen concrete planning decisions, interfaces, constraints, and verification strategy rather than leaving them vague
53
- - break the problem into explicit requirements, constraints, flows, boundaries, and edge cases
54
- - map each meaningful requirement to its owning module, visible UI/API surface, failure behavior, test target, and final acceptance check
55
- - make the planning explicit enough that the owner can maintain external design notes and API/spec docs accurately when relevant
56
- - keep the spec focused on required behavior rather than turning it into a progress or completion narrative
57
- - define major modules as meaningful delivery units, not arbitrary folders
58
- - for fullstack work, map frontend surfaces, routes, components, and state boundaries to the backend modules and contracts that support them
59
- - for fullstack work, make the frontend-to-backend crosswalk explicit enough that each major route, page, component group, or state boundary has a defined supporting backend module, endpoint, and data shape
60
- - when the prompt says behavior is configurable, plan the real configuration surface, data model, permissions, and operator flow rather than treating configurability as an implementation detail to invent later
61
- - when a feature must be admin-manageable or operator-manageable, plan the real usable UI surface for that management flow, not just the backing API or data model
62
- - define failure paths, permissions, validation, logging, runtime assumptions, and test strategy before coding
63
- - for complex security, offline, sync, authorization, or data-governance features, define what `done` means across all prompt-promised dimensions rather than stopping at a partial foundation or hook layer
64
- - define shared lifecycle and state models when the product has meaningful workflow state, and keep those models aligned across design notes and API/spec notes
65
- - require cross-document consistency so design, API/spec, and test-planning artifacts do not drift on lifecycle/state models, flow coverage, permissions, or operational behavior
66
- - define logging and observability expectations for both frontend and backend
67
- - define operator visibility and operator workflow expectations when the prompt implies admin, operational, audit, backup, or support responsibilities
68
- - when the system has meaningful cross-cutting behavior, define shared implementation contracts early rather than leaving each module to invent its own pattern
69
- - define error-handling contracts when relevant, including normalization patterns for user-visible errors and backend error-shape expectations
70
- - define audit contracts when relevant, including centralized helper or service expectations and redaction rules
71
- - define permission contracts when relevant so navigation visibility, route guards, and API enforcement stay aligned
72
- - define state-lifecycle contracts when relevant, including context-switch or tenant-switch cleanup expectations
73
- - define auth edge-case expectations when relevant, such as token refresh, session expiry, or clock-skew tolerance
74
- - call out operational obligations early when they are prompt-critical, such as scheduling, retention, backups, workers, auditability, or offline behavior
75
- - define infrastructure requirements early when they are material to correctness, such as rate limiting, encryption boundaries, production-equivalent test infrastructure, and browser-storage rules for sensitive data
76
- - define frontend validation and accessibility expectations when the product surface materially depends on them, including keyboard, focus, feedback, and other user-interaction quality requirements where relevant
77
- - if backup or recovery behavior is prompt-critical, plan the designated media, operator drill flow, visibility, and verification expectations explicitly
78
- - if the prompt names literal storage, indexing, partitioning, retention, or performance dimensions, represent them literally in the planning artifacts rather than abstracting them away
79
- - for frontend work, unless the prompt, existing repository, or established stack clearly dictates otherwise, default to Tailwind CSS for styling and `shadcn/ui` for component primitives
80
- - if the existing project already uses a different UI system, preserve and extend that system instead of forcing Tailwind CSS or `shadcn/ui` into it
81
- - define end-to-end coverage for major user flows before coding
82
- - for fullstack work, explicitly plan Playwright coverage for the synchronized frontend/backend flows when end-to-end testing is applicable
83
- - when UI-bearing flows are material, explicitly plan screenshot review as part of Playwright verification so UI correctness is checked, not just browser success
84
- - aim for at least 90 percent meaningful coverage of the relevant behavior surface
85
- - define verification strategy, Docker expectations, and documentation implications before coding
86
- - for each major module, define how it integrates with existing modules and which shared contracts it must follow consistently
87
- - define verification plans that include cross-module scenarios and seam checks, not just isolated feature checks
88
- - make the plan detailed enough to guide real implementation and later verification
89
- - review the module map and make sure it is stable before deeper implementation begins
90
- - do not move into deeper implementation with vague architecture or unstable module boundaries
91
-
92
- ## Scaffold And Foundation
93
-
94
- - create the initial project structure intentionally
95
- - establish Docker as the main runtime contract
96
- - create `run_tests.sh` as the standard test entrypoint
97
- - create required testing directories and baseline docs structure
98
- - put baseline config and logging structure in place
99
- - put migrations, worker/job foundation, and real runtime health surfaces in place when the project needs them
100
- - never create or keep `.env` files anywhere in the repo tree
101
- - treat prompt-critical security controls as real baseline runtime behavior, not placeholder checks or visual wiring
102
- - if a requirement implies enforcement, persistence, statefulness, or rejection behavior, make that behavior real in the scaffold unless the prompt clearly scopes it down
103
- - do not accept shape-only security implementations such as header presence checks, passive constants, or partially wired middleware when the requirement implies real protection
104
- - when applicable at scaffold time, require real security baselines such as nonce reuse rejection rather than nonce-header presence, real lockout behavior rather than config-only lockout values, CSRF rejection on protected mutations, and meaningful server-side state when the protection model depends on it
105
- - keep real secrets out of the repository and rely on Docker-provided runtime variables for sensitive values
106
- - do not allow committed `.env` files even as placeholders or examples
107
- - if the stack requires env-file format at runtime, generate it ephemerally from Docker-provided runtime variables rather than storing it in the repo or package
108
- - remove prototype residue from runtime foundations: no placeholder titles, hidden setup, fake defaults, or seeded live-path assumptions
109
- - make prompt-critical runtime behavior visible in the scaffold instead of hand-waving it for later, especially offline, worker, backup, or HTTPS requirements
110
- - keep Docker 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
111
- - 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
112
- - 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
113
- - establish README structure early instead of leaving it until the end
114
- - prove the scaffold in a clean state before deeper feature work
115
- - verify `docker compose up` and `run_tests.sh` in the clean scaffold state
116
- - verify clean `docker compose up --build -d` and `docker compose down` behavior under the chosen project namespace when Dockerized execution is in scope
117
- - 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
118
- - 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
119
- - do not treat scaffold as placeholder boilerplate or rely on hidden setup
120
-
121
- ## Module Implementation
122
-
123
- - work module by module in vertical slices
124
- - define lightweight planning notes for the module before coding
125
- - define the module's purpose, constraints, and edge cases before coding
126
- - keep the original requirement and clarified interpretation visible while implementing so the module does not silently drift
127
- - implement real behavior, not partial scattered logic
128
- - handle failure paths and boundary conditions
129
- - add or update tests as part of the module work
130
- - prefer fast local language-native or framework-native test commands for the changed area during normal iteration
131
- - set up and use the local test environment inside the current working directory so normal verification does not depend on hidden global tooling assumptions
132
- - if the local toolchain is missing, try to install or enable it before falling back to `run_tests.sh`
133
- - for applicable fullstack or UI-bearing work, run local Playwright on the affected flows during implementation and inspect screenshots to confirm the UI actually matches
134
- - when the slice materially changes frontend code, frontend tooling, or release-facing build behavior, include production build health in meaningful local verification when practical
135
- - make sure the module is moving toward full definition-of-done completion, not just happy-path completion
136
- - keep auth, authorization, ownership, validation, and logging concerns in view when relevant
137
- - keep frontend and backend contracts synchronized when the module spans both sides
138
- - verify the module integrates cleanly with existing modules, routes, permissions, shared state, and cross-cutting helpers rather than only proving the new feature path in isolation
139
- - check cross-cutting consistency where relevant, especially permissions, error handling, audit/logging/redaction behavior, and state or context transition behavior
140
- - verify tenant or ownership isolation where relevant so access is scoped to the authorized context rather than merely functionally working for one actor
141
- - verify file and export paths are validated and confined to allowed roots when the module reads, writes, imports, or exports files
142
- - verify error and auth responses are user-safe and do not leak internal reasons, paths, stack details, or sensitive state
143
- - perform a clean-slate sweep before reporting module completion: remove seeded credentials, weak demo defaults, test-account hints, prototype residue, and other production-inappropriate artifacts
144
- - do not treat backend existence, composable existence, or partial wiring as completion if the user-visible flow is still incomplete
145
- - when the prompt says users can manage or configure something, implement full management behavior rather than create-only controls where appropriate
146
- - if a required user-facing or admin-facing surface is missing, treat that gap as incomplete implementation rather than a reason to bypass the surface with direct API calls or test-only shortcuts
147
- - do not leave computed-but-unrendered or partially surfaced requirement behavior in place
148
- - do not treat a module as complete when a meaningful user-facing, release-facing, production-path, or build verification is known to be failing unless the owner explicitly scopes that check out
149
- - do not ship frontend screens with demo/debug/setup messaging or development-only status text; product UI should serve the real workflow only
150
- - use the `frontend-design` skill for frontend component or page work
151
- - use the `frontend-design` skill during frontend/UI verification when reviewing Playwright screenshots and tightening the interface
152
- - do not hardcode secrets or persist local sensitive values in the repo while implementing
153
- - explain behavior changes clearly enough that the documentation discipline can be satisfied accurately
154
- - verify the module against its planned behavior before trying to move on
155
- - do not move on while the module is still obviously weak or half-finished
156
-
157
- ## Verification And Review
158
-
159
- - run the relevant tests for the changed behavior
160
- - during normal in-phase verification, prefer the fastest meaningful local test commands for the changed area
161
- - if local tooling is unavailable, try to install or enable the repo-local test setup when practical; otherwise fall back to `run_tests.sh`
162
- - the workflow owner handles the expensive critical-gate runs for `docker compose up --build` and `run_tests.sh`; use local verification to prepare for those gates rather than duplicating them casually
163
- - integrated/full verification should rely on owner-run `docker compose up --build`, owner-run `run_tests.sh`, and Playwright gate evidence
164
- - after post-evaluation remediation, strengthen local verification and rerun affected Playwright checks so the next owner-run gate pass is likely to succeed
165
- - for applicable fullstack or UI-bearing work, run Playwright for the affected flows in-phase, capture screenshots, and verify the UI behavior and quality directly
166
- - rerun the runtime startup path when the phase expects it
167
- - verify requirement closure, not just feature existence
168
- - verify behavior against the current plan, the actual requirements, and any settled project decisions that affect the change
169
- - verify end-to-end flow behavior where the change affects real workflows
170
- - do not use mocked APIs as integration evidence; integration verification must use real HTTP requests against the actual running service surface
171
- - for fullstack work, run Playwright coverage for major flows and review screenshots for real UI behavior and regressions
172
- - end-to-end coverage must use the real intended user-facing or admin-facing surfaces for the flow; if the flow cannot be exercised that way, treat the missing surface as incomplete work
173
- - use `frontend-design` while reviewing frontend screenshots so UI issues are challenged, not just functionally observed
174
- - verify screenshots do not contain demo placeholders, scaffold instructions, debug notices, or other development-only UI leakage
175
- - verify important failure, conflict, stale-state, negative-auth, and cross-user-isolation paths where relevant
176
- - verify required remediation guidance is actually visible to the user, not just computed internally
177
- - verify security-sensitive behavior where applicable
178
- - verify multi-tenant and cross-user isolation where applicable, including negative checks rather than single-actor happy paths only
179
- - verify file/path safety for file-bearing flows where applicable, including traversal-style negative cases
180
- - verify secrets are not committed, hardcoded, or leaking through logs/config/docs
181
- - apply the cross-cutting env-file discipline during verification
182
- - verify error surfaces and auth-related failures are sanitized for users and operators appropriately
183
- - apply the cross-cutting documentation discipline during verification
184
- - trace the changed tests and verification back to the prompt-critical risks, not just the easiest happy paths
185
- - challenge integration seams and adjacent-module behavior, not just the changed module's local path
186
- - when frontend behavior or tooling changed materially, treat known production build breakage as blocking evidence rather than optional cleanup
187
- - do not treat a module as done until functional behavior, failure behavior, tests, docs, security considerations, and required runtime verification are all in place
188
- - call out weak evidence, missing coverage, or unresolved issues plainly
189
- - do not treat developer claims as enough without real verification
190
-
191
- ## Hardening
192
-
193
- - audit security boundaries, validation, ownership, and secret handling
194
- - audit env/config paths so sensitive values are injected safely and are not baked into committed files or images
195
- - inspect architecture, coupling, file size, and maintainability risks
196
- - check for bad engineering practices that accumulated during implementation
197
- - tighten weak tests, weak docs, and weak operational instructions
198
- - run exploratory testing around awkward states, repeated actions, and realistic edge behavior
199
- - re-check frontend and backend observability, redaction, and operator visibility paths
200
- - run a prompt-fidelity sweep for silent requirement substitution, partially delivered hard requirements, and frontend/backend mismatch
201
- - run a prototype-residue sweep for hardcoded preview values, placeholder text, seeded defaults, hidden fallbacks, and computed-but-unrendered behavior
202
- - enforce the cross-cutting env-file discipline during hardening
203
- - run documentation verification against the real codebase and runtime behavior, not just document existence
204
- - enforce the cross-cutting documentation discipline during hardening
205
- - re-check prompt-critical operational obligations such as scheduled jobs, retention, backups, worker behavior, privacy/accountability logging, and admin controls
206
- - enter release-candidate mode: stop feature work and focus only on fixes, verification, docs, and packaging preparation
207
- - make sure the system is genuinely reviewable and reproducible
208
-
209
- ## Packaging Preparation
210
-
211
- - move or copy the final development docs into the required root `docs/` structure
212
- - make sure package structure matches the blueprint exactly
213
- - verify required artifacts are present and named correctly
214
- - prepare screenshots, proof materials, and other delivery evidence
215
- - review package cleanliness so caches, junk, and local-only files are not included
216
- - verify no local secret files or sensitive values are included in the package
217
- - verify docs, specs, and runtime instructions describe what is actually delivered rather than what was only planned or partially built
218
- - archive or exclude transient review artifacts so delivery evidence stays intentional and clean
219
-
220
- ## Remediation
221
-
222
- - focus only on accepted defects and the work needed to fix them cleanly
223
- - fix the issue completely instead of layering hacks on top
224
- - trace the fix back to the original requirement so the remediation restores fidelity instead of only hiding the symptom
225
- - rerun the relevant verification after each fix
226
- - if the issue exposed drift, docs overclaim, or missing acceptance coverage, repair that too before closing the issue
227
- - update docs if behavior or instructions changed
228
- - report exactly what was fixed, what was rerun, and what still looks risky if anything remains