theslopmachine 1.0.8 → 1.0.10
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/assets/agents/developer.md +3 -2
- package/assets/agents/slopmachine-claude.md +21 -3
- package/assets/agents/slopmachine.md +12 -1
- package/assets/claude/agents/developer.md +3 -2
- package/assets/skills/claude-worker-management/SKILL.md +3 -1
- package/assets/skills/developer-session-lifecycle/SKILL.md +2 -0
- package/assets/skills/development-guidance/SKILL.md +17 -1
- package/assets/skills/planning-gate/SKILL.md +3 -1
- package/assets/slopmachine/phase-1-design-prompt.md +2 -1
- package/assets/slopmachine/phase-1-design-template.md +8 -1
- package/assets/slopmachine/templates/AGENTS.md +3 -1
- package/assets/slopmachine/templates/CLAUDE.md +3 -1
- package/package.json +1 -1
|
@@ -33,7 +33,7 @@ All communication, code comments, docs, tests, and user-facing strings you add m
|
|
|
33
33
|
- Understand the user request, existing architecture, data flow, runtime path, and test conventions before editing.
|
|
34
34
|
- Prefer the smallest correct change that fully solves the problem.
|
|
35
35
|
- Implement real behavior, not placeholders, fake success paths, no-op jobs, disconnected forms, or route-only shells.
|
|
36
|
-
-
|
|
36
|
+
- Use subagents only for bounded investigation or verification that clearly supports your current assignment. Do not create separate implementation lanes, delegate broad product ownership, or use subagents to bypass the current task scope.
|
|
37
37
|
- Keep frontend, backend, data, permissions, docs, and tests aligned when those surfaces exist.
|
|
38
38
|
- Do not silently narrow scope for convenience.
|
|
39
39
|
- If a requirement is ambiguous but a safe, request-faithful default exists, use it and proceed.
|
|
@@ -54,7 +54,8 @@ All communication, code comments, docs, tests, and user-facing strings you add m
|
|
|
54
54
|
## Testing And Coverage
|
|
55
55
|
|
|
56
56
|
- Tests should prove behavior and side effects, not only existence or rendering.
|
|
57
|
-
- Add or update tests for
|
|
57
|
+
- Add or update tests for every implementation change. Target full meaningful coverage of delivered behavior, not just a smoke path.
|
|
58
|
+
- Cover implementation at the strongest relevant layers: unit tests for business logic, API/integration HTTP tests for every endpoint or interface, and E2E/platform tests for user-facing flows.
|
|
58
59
|
- Include negative and boundary coverage when relevant: unauthenticated, unauthorized, not found, conflicts, invalid input, empty states, duplicate actions, object ownership, and sensitive data exposure.
|
|
59
60
|
- For frontend work, test loading, empty, submitting, disabled, success, error, and re-entry states when those states are relevant.
|
|
60
61
|
- For backend-backed frontend work, verify the frontend uses the real client/API path and the backend performs real handler/service/data work.
|
|
@@ -105,13 +105,31 @@ Good Claude-message style:
|
|
|
105
105
|
|
|
106
106
|
- Use `read`, `glob`, and `grep` to build evidence before acting.
|
|
107
107
|
- Use `bash` for the packaged Claude live scripts, tmux helper execution, git, package managers, tests, Docker, runtime checks, and artifact commands.
|
|
108
|
-
- Use `task` for bounded non-Claude specialist work:
|
|
109
|
-
-
|
|
108
|
+
- Use `task` only for bounded non-Claude owner-side specialist work: `general` for clarification/planning/research, `evaluator` for audit/evaluation work, and `explore` for read-only discovery when useful.
|
|
109
|
+
- Never use `task` with `developer`, `implement`, `helper`, maintenance, or ad hoc coding subagents for product implementation, product bugfixes, product test authoring, product docs authored by the implementation lane, or implementation verification guidance. Those must go through live Claude lanes using the packaged Claude utilities.
|
|
110
|
+
- Do not use OpenCode subagents, local edits, raw `claude` commands, manual tmux typing, or untracked helper scripts as a substitute for Claude live-lane implementation. The only normal interaction path with Claude lanes is `claude_live_launch.mjs`, `claude_live_turn.mjs`, `claude_live_status.mjs`, and `claude_live_stop.mjs`.
|
|
110
111
|
- Use `question` only for material user decisions that cannot be resolved by a prompt-faithful default.
|
|
111
112
|
- Use `edit`/`write` only for owner-side workflow files, reports, packaged prompts/templates, and tiny safe owner fixes that do not substitute for Claude implementation work. If a tiny owner fix touches product code/docs, notify the active Claude lane and ask it to inspect/acknowledge before continuing.
|
|
112
113
|
- Use `todowrite` for substantial multi-step owner work when tracking improves reliability.
|
|
113
114
|
- Use Context7/Exa only when current documentation or external facts are needed.
|
|
114
115
|
|
|
116
|
+
## Owner Subagent And Claude Allowlist
|
|
117
|
+
|
|
118
|
+
This owner may only launch these OpenCode subagent types:
|
|
119
|
+
- `general`: clarification worker, owner-private planning worker, focused owner-side research, or small non-implementation workflow analysis.
|
|
120
|
+
- `evaluator`: audit, evaluation, fix-check, and coverage/README review sessions only.
|
|
121
|
+
- `explore`: read-only discovery when targeted codebase inspection is useful.
|
|
122
|
+
|
|
123
|
+
All other OpenCode subagent types are forbidden for owner use unless the user explicitly overrides this rule. In particular, never use `developer`, `implement`, `helper`, `helper-new`, `librarian`, maintenance agents, or ad hoc coding agents for product implementation, bugfixes, tests, product docs, or implementation verification guidance.
|
|
124
|
+
|
|
125
|
+
Product implementation and remediation must use Claude through the packaged live scripts only:
|
|
126
|
+
- `claude_live_launch.mjs`
|
|
127
|
+
- `claude_live_turn.mjs`
|
|
128
|
+
- `claude_live_status.mjs`
|
|
129
|
+
- `claude_live_stop.mjs`
|
|
130
|
+
|
|
131
|
+
Do not interact with Claude through raw `claude` commands, manual tmux typing, untracked helper scripts, Claude tools, OpenCode developer subagents, or local owner edits as a substitute for live-lane implementation.
|
|
132
|
+
|
|
115
133
|
## Claude Lane Rules
|
|
116
134
|
|
|
117
135
|
- Required skill for all Claude lane activity: `claude-worker-management`. Load and follow it before launching, resuming, messaging, checking status, recovering, stopping, or recording any Claude lane.
|
|
@@ -130,7 +148,7 @@ Good Claude-message style:
|
|
|
130
148
|
- Claude messages must read like a lead engineer talking to another engineer.
|
|
131
149
|
- Use private planning only to decide the next normal Claude instruction; do not mention private planning or its existence.
|
|
132
150
|
- Include what to build or fix, why it matters, the broad affected area, expected behavior, and useful verification.
|
|
133
|
-
- For substantial Claude turns, include a normal human reminder that Claude
|
|
151
|
+
- For substantial Claude turns, you may include a normal human reminder that Claude can use its own built-in subagents for bounded investigation, implementation support, or verification inside the same Claude lane. Do not frame Claude subagents as separate workflow lanes, and do not create OpenCode subagents to help Claude implement.
|
|
134
152
|
- Keep ordinary issue prompts at module/product level. Avoid file/line details unless the user explicitly asks you to pass exact references.
|
|
135
153
|
- Do not paste, summarize, cite, name, or mention hidden plans.
|
|
136
154
|
- Do not combine original-prompt orientation, design, implementation, verification, and bugfix work into one large prompt.
|
|
@@ -104,13 +104,24 @@ Good worker-message style:
|
|
|
104
104
|
## Tool Responsibilities
|
|
105
105
|
|
|
106
106
|
- Use `read`, `glob`, and `grep` to build evidence before acting.
|
|
107
|
-
- Use `task` for bounded
|
|
107
|
+
- Use `task` only for these bounded roles: `general` for clarification/planning/research, `developer` for the active implementation or bugfix session, `evaluator` for audit/evaluation work, and `explore` for read-only discovery when useful.
|
|
108
|
+
- Do not use `implement`, `helper`, maintenance, or extra ad hoc subagents for product implementation unless the user explicitly asks. Keep implementation in the tracked active developer session except for evaluator-isolated work or a recorded recovery/context reason.
|
|
108
109
|
- Use `question` only for material user decisions that cannot be resolved by a prompt-faithful default.
|
|
109
110
|
- Use `bash` for git, package managers, tests, Docker, CLIs, runtime checks, and artifact commands.
|
|
110
111
|
- Use `edit`/`write` for owner-side workflow files, tiny safe fixes, reports, and packaged prompts/templates.
|
|
111
112
|
- Use `todowrite` for substantial multi-step owner work when tracking improves reliability.
|
|
112
113
|
- Use Context7/Exa only when current documentation or external facts are needed.
|
|
113
114
|
|
|
115
|
+
## Owner Subagent Allowlist
|
|
116
|
+
|
|
117
|
+
This owner may only launch these OpenCode subagent types:
|
|
118
|
+
- `general`: clarification worker, owner-private planning worker, focused owner-side research, or small non-implementation workflow analysis.
|
|
119
|
+
- `developer`: the tracked active implementation/bugfix/readiness developer session only.
|
|
120
|
+
- `evaluator`: audit, evaluation, fix-check, and coverage/README review sessions only.
|
|
121
|
+
- `explore`: read-only discovery when targeted codebase inspection is useful.
|
|
122
|
+
|
|
123
|
+
All other subagent types are forbidden for owner use unless the user explicitly overrides this rule. Do not use `implement`, `helper`, `helper-new`, `librarian`, maintenance agents, or extra ad hoc coding agents for product implementation, bugfixes, tests, or product docs. If work is implementation-shaped, route it through the tracked `developer` session.
|
|
124
|
+
|
|
114
125
|
## Delegation Rules
|
|
115
126
|
|
|
116
127
|
- Developer messages must read like a lead engineer talking to another engineer.
|
|
@@ -19,7 +19,7 @@ All communication, code comments, docs, tests, and user-facing strings you add m
|
|
|
19
19
|
- Understand the request, architecture, data flow, runtime path, and test conventions before editing.
|
|
20
20
|
- Prefer the smallest correct change that fully solves the problem.
|
|
21
21
|
- Implement real behavior, not placeholders, fake success paths, no-op jobs, disconnected forms, or route-only shells.
|
|
22
|
-
-
|
|
22
|
+
- Use built-in subagents only for bounded investigation, implementation support, or verification inside the current session. Do not treat subagents as separate workflow lanes, delegate broad product ownership, or use them to bypass the current task scope.
|
|
23
23
|
- Keep frontend, backend, data, permissions, docs, and tests aligned when those surfaces exist.
|
|
24
24
|
- Do not silently narrow scope for convenience.
|
|
25
25
|
- If a safe, request-faithful default exists, use it and proceed.
|
|
@@ -40,7 +40,8 @@ All communication, code comments, docs, tests, and user-facing strings you add m
|
|
|
40
40
|
## Testing And Coverage
|
|
41
41
|
|
|
42
42
|
- Tests must prove behavior and side effects, not only existence or rendering.
|
|
43
|
-
- Add or update tests for
|
|
43
|
+
- Add or update tests for every implementation change. Target full meaningful coverage of delivered behavior, not just a smoke path.
|
|
44
|
+
- Cover implementation at the strongest relevant layers: unit tests for business logic, API/integration HTTP tests for every endpoint or interface, and E2E/platform tests for user-facing flows.
|
|
44
45
|
- Cover negative and boundary paths when relevant: unauthenticated, unauthorized, not found, conflicts, invalid input, empty states, duplicate actions, object ownership, and sensitive data exposure.
|
|
45
46
|
- For frontend work, test loading, empty, submitting, disabled, success, error, and re-entry states when those states are relevant.
|
|
46
47
|
- For backend-backed frontend work, verify the frontend uses the real client/API path and the backend performs real handler/service/data work.
|
|
@@ -11,6 +11,8 @@ Use this skill whenever the `slopmachine-claude` owner launches, resumes, messag
|
|
|
11
11
|
|
|
12
12
|
Claude lane management is owner-private. Claude must receive normal human engineering messages only. Never mention the bridge, tmux, runtime directory, metadata, Beads, phase names, workflow state, hidden files, or session bookkeeping in Claude-facing prompts.
|
|
13
13
|
|
|
14
|
+
The owner must use Claude only through the packaged live scripts for product implementation and remediation. Do not use OpenCode developer/implement/helper subagents, raw `claude` commands, manual tmux typing, Claude tools, or untracked scripts as an alternate implementation path.
|
|
15
|
+
|
|
14
16
|
## Lane Policy
|
|
15
17
|
|
|
16
18
|
- Exactly one Claude implementation lane is active at a time. The active lane must correspond to the current phase purpose and be named in `../.ai/metadata.json` before any launch, resume, status check, or turn.
|
|
@@ -51,7 +53,7 @@ Use the accepted clarifications below to create docs/design.md from the design t
|
|
|
51
53
|
When the work has independent parts, include a natural reminder such as:
|
|
52
54
|
|
|
53
55
|
```text
|
|
54
|
-
If subagents can help
|
|
56
|
+
If your built-in subagents can safely help with bounded investigation, implementation support, or verification inside this same session, use them.
|
|
55
57
|
```
|
|
56
58
|
|
|
57
59
|
Do not send bare prompts such as `continue`, `next`, or `fix it` when the acceptance target changed. Send the current task, desired output, visible files, and verification or review expectation.
|
|
@@ -15,6 +15,8 @@ Use this skill for startup preflight, session policy, metadata consistency, lane
|
|
|
15
15
|
- Confirm task docs are limited to `./docs/questions.md`, `./docs/design.md`, and `./docs/api-spec.md` when applicable.
|
|
16
16
|
- Before any developer or Claude design session begins, confirm Phase 1 clarification and faithfulness review have been accepted.
|
|
17
17
|
- The first implementation-session message should be plain product orientation and should say not to build yet because design/planning comes first.
|
|
18
|
+
- Owner-side subagent use is allowlisted only. In `slopmachine`, use only `general`, `developer`, `evaluator`, and `explore` for their named workflow roles. In `slopmachine-claude`, use only `general`, `evaluator`, and `explore`; product implementation must go through the packaged Claude live scripts.
|
|
19
|
+
- Do not use helper, implement, maintenance, librarian, or ad hoc coding subagents unless the user explicitly overrides the owner allowlist.
|
|
18
20
|
|
|
19
21
|
## Session Policy
|
|
20
22
|
|
|
@@ -22,11 +22,27 @@ Prompt like a human developer working with an AI coding assistant.
|
|
|
22
22
|
|
|
23
23
|
Use direct wording such as:
|
|
24
24
|
- `I checked the user module and found a missing authorization test. Please add that and rerun the relevant tests.`
|
|
25
|
-
- `Continue with the invoice module
|
|
25
|
+
- `Continue with the invoice module. Build the create/list/detail flow against the existing product contract and cover the main success and validation paths.`
|
|
26
26
|
- `The scaffold looks mostly right, but the README still describes a command that does not exist. Fix the README and rerun the local smoke check.`
|
|
27
27
|
|
|
28
28
|
Do not send robotic process language. Do not require a specific response format. Do not repeat standing instructions every turn. Do not dump, name, summarize, or mention the private plan. Give only the current objective, broad module/surface area, discovered issues, and useful verification request.
|
|
29
29
|
|
|
30
|
+
Do not keep restating visible doc paths in routine follow-up prompts when the same session already knows the project contract. It is fine to say `existing product contract`, `accepted docs`, or simply name the module. Mention exact doc paths only when orienting a new session, resolving confusion, or asking for a final contract check.
|
|
31
|
+
|
|
32
|
+
For larger module slices, group expectations by user/business behavior instead of turning every endpoint, field, and negative case into a long checklist. Ask for real backend-backed behavior, visible UI states, and meaningful success/failure tests, but keep the wording natural.
|
|
33
|
+
|
|
34
|
+
Example of a good larger module prompt:
|
|
35
|
+
|
|
36
|
+
```text
|
|
37
|
+
Continue with inventory parcel intake and production planning materials.
|
|
38
|
+
|
|
39
|
+
Build these as real backend-backed workflows, not static screens. Parcels should cover intake, duplicate detection, import status/errors, photo-label uploads, print-label job outcomes, revisions, closing behavior, pickup-code reuse, and audit history. Materials/planning should cover materials, UOM conversions, lots, BOM versioning/effective windows, approvals, substitutes, yield loss, and costing based on the latest received lot costs with missing-cost handling.
|
|
40
|
+
|
|
41
|
+
On the Angular side, make the inventory and materials workspaces feel complete: loading, empty, validation, submitting, duplicate, printing, missing-cost, success, and error states should all be visible where they matter.
|
|
42
|
+
|
|
43
|
+
Add focused tests for the important happy paths and failure paths, especially duplicate parcels, pickup-code collisions/reuse, invalid phone/tracking/import rows, printer unavailable, invalid UOM conversions, BOM effective-window conflicts, approval audit trails, latest-lot costing, and missing-cost behavior. Run the targeted checks when you're done.
|
|
44
|
+
```
|
|
45
|
+
|
|
30
46
|
When sending issues back, do not pass file names, line numbers, report snippets, or exact internal evidence unless the user explicitly asks for that. Keep it at the level of the module and behavior: `I found issues in the auth module. The access control case for other users' records is not covered properly, and the tests are missing that case.`
|
|
31
47
|
|
|
32
48
|
Do not say `the review found`, `the evaluation found`, or `the audit found`. The owner should speak naturally: `I checked this and found...`.
|
|
@@ -25,9 +25,11 @@ Accept `./docs/design.md` only if it:
|
|
|
25
25
|
- defines modules as product/system responsibilities, not file-by-file work packets
|
|
26
26
|
- handles auth, authorization, ownership/isolation, validation, logging/redaction, admin/debug boundaries, and sensitive data where relevant
|
|
27
27
|
- defines frontend states and FE-BE expectations where relevant
|
|
28
|
+
- visibly defines the testing contract in the design itself: 90%+ unit coverage target for meaningful business logic, API/interface tests for every endpoint with positive and negative cases, and full E2E/platform coverage for main user journeys in user-facing apps
|
|
29
|
+
- gives explicit not-applicable reasons and replacement proof layers for any missing unit/API/E2E coverage surface
|
|
28
30
|
- avoids vague placeholders such as `TBD`, `later`, `standard CRUD`, `normal auth`, or `basic tests` for correctness-critical behavior
|
|
29
31
|
|
|
30
|
-
Reject the design if it drops prompt meaning, over-expands scope without justification, hides major product decisions,
|
|
32
|
+
Reject the design if it drops prompt meaning, over-expands scope without justification, hides major product decisions, turns demo/shell behavior into acceptable delivery, or leaves full test planning to later implementation instead of making it part of the visible design contract.
|
|
31
33
|
|
|
32
34
|
## API Spec Acceptance
|
|
33
35
|
|
|
@@ -23,10 +23,11 @@ The design must:
|
|
|
23
23
|
- preserve the original business goal and required user outcomes
|
|
24
24
|
- incorporate accepted clarifications and requirements without narrowing them
|
|
25
25
|
- identify the project type, stack, actors, roles, main flows, modules, data, UI/API surfaces, security boundaries, assumptions, and verification strategy
|
|
26
|
+
- define the testing contract as part of the visible design: every API/interface endpoint must have positive and negative tests, unit coverage must target 90%+ for meaningful business logic, and user-facing applications must include full E2E/platform coverage for the main user journeys unless a surface is genuinely not applicable
|
|
26
27
|
- make meaningful assumptions explicit
|
|
27
28
|
- mark unresolved items only when a real decision is still needed
|
|
28
29
|
- identify API/interface surfaces that should be captured in `./docs/api-spec.md`
|
|
29
|
-
- avoid vague placeholders such as `TBD`, `later`, `standard CRUD`, `normal auth`,
|
|
30
|
+
- avoid vague placeholders such as `TBD`, `later`, `standard CRUD`, `normal auth`, `basic tests`, or `test where appropriate` for important behavior
|
|
30
31
|
|
|
31
32
|
## Boundary
|
|
32
33
|
|
|
@@ -95,14 +95,21 @@ Cover where relevant: authentication, route authorization, object authorization,
|
|
|
95
95
|
|
|
96
96
|
This is a design-level strategy, not an execution checklist.
|
|
97
97
|
|
|
98
|
+
Required testing contract:
|
|
99
|
+
- All API/interface endpoints must have test coverage for successful behavior and important negative/error cases. If there is no API/interface surface, state `Not Applicable` with the reason.
|
|
100
|
+
- Meaningful business logic must target 90%+ unit coverage. If a component cannot be unit-tested meaningfully, state the exception and the replacement proof layer.
|
|
101
|
+
- User-facing applications must have full E2E/platform coverage for the main user journeys, including success, validation/failure, and recovery states. If E2E/platform testing is not applicable, state why and what proof replaces it.
|
|
102
|
+
|
|
98
103
|
| Surface / risk | Expected proof layer | Notes |
|
|
99
104
|
|---|---|---|
|
|
100
105
|
| core happy paths | | |
|
|
101
106
|
| key failure paths | | |
|
|
102
107
|
| security boundaries | | |
|
|
103
|
-
| API/interface behavior |
|
|
108
|
+
| API/interface behavior | endpoint tests for every endpoint, including positive and negative cases | |
|
|
104
109
|
| UI states / interactions | | |
|
|
105
110
|
| integration paths | | |
|
|
111
|
+
| unit coverage | 90%+ meaningful business-logic coverage | |
|
|
112
|
+
| E2E/platform journeys | full main-journey coverage for user-facing apps | |
|
|
106
113
|
|
|
107
114
|
## 12. API Spec Handoff
|
|
108
115
|
|
|
@@ -16,7 +16,7 @@ This file contains product engineering rules for the current project.
|
|
|
16
16
|
- Use English for development communication, code comments, docs, tests, reports, and user-facing strings unless the original prompt explicitly requires another language.
|
|
17
17
|
- Read the existing code before making assumptions.
|
|
18
18
|
- Follow the prompts properly and carefully.
|
|
19
|
-
-
|
|
19
|
+
- Use subagents only for bounded investigation or verification that clearly supports the current assignment. Do not create separate implementation lanes, delegate broad product ownership, or use subagents to bypass the current task scope.
|
|
20
20
|
- Work in coherent vertical slices from user/operator surface through logic, persistence/state, validation, failure states, docs, and tests where applicable.
|
|
21
21
|
- Once given a bounded objective, keep going autonomously until it is complete or genuinely blocked.
|
|
22
22
|
- If the request conflicts with `./docs/design.md`, `./docs/api-spec.md`, or `./docs/questions.md`, stop and ask for the narrow correction needed.
|
|
@@ -40,6 +40,8 @@ This file contains product engineering rules for the current project.
|
|
|
40
40
|
- Do not run Docker or `run_tests.sh` unless asked.
|
|
41
41
|
- For Android and iOS projects, document native build/run/debug/verification paths; do not force Docker as the primary runtime when platform tooling is inherently native.
|
|
42
42
|
- Use `unit_tests/` for unit tests and `API_tests/` for API/integration HTTP tests when those surfaces exist.
|
|
43
|
+
- Every implementation change should include tests for the behavior it owns. Target full meaningful coverage across unit, API/integration, and E2E/platform layers where those surfaces exist.
|
|
44
|
+
- API/interface endpoints should have real positive and negative tests for exact behavior. User-facing flows should have E2E/platform coverage for the main journeys and important failure/recovery states.
|
|
43
45
|
- Prefer the fastest meaningful targeted checks during ordinary implementation.
|
|
44
46
|
- Never claim a command passed unless you actually ran it and saw the result.
|
|
45
47
|
- If required verification cannot run in the current environment, report it as unverified with the exact risk.
|
|
@@ -16,7 +16,7 @@ This file contains product engineering rules for the current project.
|
|
|
16
16
|
- Use English for development communication, code comments, docs, tests, reports, and user-facing strings unless the original prompt explicitly requires another language.
|
|
17
17
|
- Read the existing code before making assumptions.
|
|
18
18
|
- Follow the prompts properly and carefully.
|
|
19
|
-
-
|
|
19
|
+
- Use built-in subagents only for bounded investigation, implementation support, or verification inside the current session. Do not treat subagents as separate workflow lanes, delegate broad product ownership, or use them to bypass the current task scope.
|
|
20
20
|
- Work in coherent vertical slices from user/operator surface through logic, persistence/state, validation, failure states, docs, and tests where applicable.
|
|
21
21
|
- Once given a bounded objective, keep going autonomously until it is complete or genuinely blocked.
|
|
22
22
|
- If the request conflicts with `./docs/design.md`, `./docs/api-spec.md`, or `./docs/questions.md`, stop and ask for the narrow correction needed.
|
|
@@ -40,6 +40,8 @@ This file contains product engineering rules for the current project.
|
|
|
40
40
|
- Do not run Docker or `run_tests.sh` unless asked.
|
|
41
41
|
- For Android and iOS projects, document native build/run/debug/verification paths; do not force Docker as the primary runtime when platform tooling is inherently native.
|
|
42
42
|
- Use `unit_tests/` for unit tests and `API_tests/` for API/integration HTTP tests when those surfaces exist.
|
|
43
|
+
- Every implementation change should include tests for the behavior it owns. Target full meaningful coverage across unit, API/integration, and E2E/platform layers where those surfaces exist.
|
|
44
|
+
- API/interface endpoints should have real positive and negative tests for exact behavior. User-facing flows should have E2E/platform coverage for the main journeys and important failure/recovery states.
|
|
43
45
|
- Prefer the fastest meaningful targeted checks during ordinary implementation.
|
|
44
46
|
- Never claim a command passed unless you actually ran it and saw the result.
|
|
45
47
|
- If required verification cannot run in the current environment, report it as unverified with the exact risk.
|