liteagents 2.19.0 → 2.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -15,6 +15,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
15
15
  - Enhanced testing capabilities
16
16
  - Performance optimizations
17
17
 
18
+ ## [2.20.0] - 2026-08-29
19
+
20
+ ### Changed
21
+ - **`AGENT_RULES.md` template (all 4 kits): the spec layer now requires the interview to
22
+ happen but leaves its shape free.** PRD is defined as a portal with 5 minimum fields
23
+ (problem & goal, go/no-go, out of scope, modules, open questions) that every POC refines.
24
+ - **Four one-sentence execution-order rules (Sequence / Selection / Iteration / Verify) added
25
+ to Operating Flow.**
26
+ - **"Build incrementally" replaced by "One module at a time"** (works alone, then connects,
27
+ both proven) and a separate "No fitting to pass" rule, with a matching Red Flag.
28
+ - **New safeguard: never commit to `main`** — branch, then propose `/code-review` followed by
29
+ `/release`; merge/release only on a named go.
30
+ - **Removed restated content**: the "AI Agent Instructions" section, the "Safety First"
31
+ bullet, the "POC scope" bullet, and duplicated spec/POC prose in the Communication Protocol
32
+ and the CLAUDE.md stub.
33
+
18
34
  ## [2.19.0] - 2026-08-26
19
35
 
20
36
  ### Changed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "liteagents",
3
- "version": "2.19.0",
3
+ "version": "2.20.0",
4
4
  "description": "AI development toolkit with 11 specialized agents and 18 commands including live-canvas UI design with click-to-annotate feedback. Simple one-question installer for Claude, Opencode, Ampcode, and Droid.",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -10,7 +10,6 @@
10
10
  7. [Development Workflow](#development-workflow)
11
11
  8. [Twelve-Factor Checklist](#twelve-factor-checklist)
12
12
  9. [AGENT.md Stub](#agentmd-stub)
13
- 10. [AI Agent Instructions](#ai-agent-instructions)
14
13
 
15
14
  ---
16
15
 
@@ -18,10 +17,25 @@
18
17
 
19
18
  Every task runs through three layers. Do not skip ahead to code.
20
19
 
21
- 1. **Spec — agree on intent before touching anything.** Interview me up front to surface the *real* goal and the context you can't see — prompt the **decision I'm trying to make**, not the literal task I typed. Break the scope into small buckets with checkpoints. **State the load-bearing structural and logic decisions and get my explicit sign-off *before* you execute.** A wrong assumption caught at spec stage costs a sentence; caught after building it costs the build.
22
- 2. **Verify — define "good" up front, then prove it.** Write down what success looks like *before* changing code. Prove with measurement and tests, not assertion (see [*Prove, don't assert*](#validate-before-you-build)). Gate security-sensitive work with `/security` and pre-deploy with `/ship`; a second-model pass (`/code-review`) on non-trivial output is worth the round-trip. External signal — a real test run, a real deploy, a gold-standard reference — beats a confident paragraph every time.
20
+ 1. **Spec — the interview must happen; its shape is yours.** Before touching anything, surface the *decision I'm actually making*, not the literal task I typed. Ask what you need to know no more; how you ask is your call. Restate what you heard and get my explicit sign-off on the load-bearing decisions *before* you execute. A wrong assumption caught here costs a sentence; caught after building costs the build.
21
+
22
+ Write the outcome down as a **PRD**. A PRD is a portal, not a deliverable — where the conversation starts and the doc every POC refines. Minimum content, whatever the form:
23
+ - **Problem & goal** — what we're solving and why now
24
+ - **Go / no-go** — the 1–2 capabilities the product stands or falls on; usually module 0's riskiest assumption (e.g. "can a phone camera read the ID?"). Fails → stop
25
+ - **Out of scope** — what we're explicitly not doing
26
+ - **Modules** — the pieces to build, in order (see [*One module at a time*](#validate-before-you-build))
27
+ - **Open questions** — unknowns that don't block; never silently assumed
28
+
29
+ Every POC result updates the PRD; one that flips the go/no-go or a module's assumption is a spec change, not a footnote.
30
+ 2. **Verify — define "good" up front, then prove it.** Write down what success looks like *before* changing code. Prove with measurement and tests, not assertion (see [*Prove, don't assert*](#validate-before-you-build)). Gate security-sensitive work with `/security` and pre-deploy with `/ship`. When the work is done, propose `/code-review` and then `/release` — you never merge or release on your own (see [Required Safeguards](#required-safeguards-always--ask--never)). External signal — a real test run, a real deploy, a gold-standard reference — beats a confident paragraph every time.
23
31
  3. **Environment — the standing context.** This file primes every session. Critical-path protections (secrets, auth, schema, CI) are stated as **Always / Ask / Never** below and bind you as written. Where your tool offers a permission allow/ask/deny list, mirror them there so they are enforced and not merely requested.
24
32
 
33
+ **Execution order — work the way a program runs, in this order, nothing skipped:**
34
+ 1. **Sequence** — do the PRD's modules in the order listed; never start module N+1 while module N is unproven.
35
+ 2. **Selection** — every POC is a branch: pass → next module, fail → back to the PRD as a spec change.
36
+ 3. **Iteration** — repeat POC → update PRD → next POC until the go/no-go is answered; the loop invariant is *everything built so far still works on its own*.
37
+ 4. **Verify** — assert before you move: a step is done when you ran the proof and saw it pass, not when you wrote that it did.
38
+
25
39
  > The model is brilliant at execution and blind to intent. You can outsource the typing; you cannot outsource the understanding. Surface assumptions — don't bury them.
26
40
 
27
41
  ---
@@ -29,16 +43,14 @@ Every task runs through three layers. Do not skip ahead to code.
29
43
  ## Communication Protocol
30
44
 
31
45
  ### Core Rules
32
- - **Spec before build**: Don't wait for ambiguity to block you interview me up front to extract the real goal and the context you can't see. Prompt the *decision*, not the literal task. Restate what you heard before building
33
- - **Checkpoint before executing**: State the load-bearing structural and logic decisions and get my explicit sign-off *before* you write code. Never run ahead on an unverified assumption — flag it and stop
46
+ - **Spec first, then checkpoint**: see [Operating Flow §1](#operating-flow). Never run ahead on an unverified assumption flag it and stop
34
47
  - **Fact-Based**: Base all recommendations on verified, current information. Prefer external signal (a real run, a real source) over a confident guess
35
48
  - **Simplicity Advocate**: Call out overcomplications and suggest simpler alternatives
36
- - **Safety First**: Never modify critical systems without explicit understanding and approval
37
49
 
38
50
  ### User Profile
39
51
  - **Technical Level**: Non-coder but technically savvy
40
52
  - **Learning Style**: Understands concepts, needs executable instructions
41
- - **Expects**: Step-by-step guidance with clear explanations
53
+ - **Expects**: Step-by-step guidance, ready-to-run commands, and the *why* behind each recommendation
42
54
  - **Comfortable with**: Command-line operations and scripts
43
55
  - **Builds a lot of web apps** — assume any UI work will be consumed on phones as well as desktop
44
56
 
@@ -49,6 +61,7 @@ Not courtesies. These bind you as written, whether or not your tool enforces the
49
61
  - **Always** identify affected files before making changes, and explain what will change and why
50
62
  - **Ask first** — stop and get explicit sign-off — before modifying authentication systems, database schema or migrations, CI workflows, or `.amp/settings.json`
51
63
  - **Never** write secrets into the tree (`.env`/`*.env`, keys, credentials). They load from the environment at runtime; only a value-less `.env.example` is committed
64
+ - **Never** commit to `main`. Commit to a new branch (name doesn't matter), then propose `/code-review` followed by `/release`; merging and releasing are my call, made by name — "approve", "good", or "go" on a draft is not that call
52
65
 
53
66
  ---
54
67
 
@@ -57,12 +70,12 @@ Not courtesies. These bind you as written, whether or not your tool enforces the
57
70
  ### Validate Before You Build
58
71
 
59
72
  - **POC everything first.** Before committing to a design, build a quick proof-of-concept (~15 min) that validates the core logic. Keep it stupidly simple — manual steps are fine, hardcoded values are fine, no tests needed yet
60
- - **POC scope:** Cover the happy path, 2-3 common edge cases, **and the riskiest assumption (see below) — not just the parts that are easy to check**. If those hold, the idea is sound
61
73
  - **Graduation criteria:** POC validates logic and covers most common scenarios → stop, design properly, then build with structure, tests, and error handling. Never ship the POC — rewrite it
62
- - **Aim the POC at the load-bearing claim — not the easy part.** Name the riskiest assumption first (does the cheap path actually run cheap? does the library really do X? does the perf hold?), then point the spike straight at *that*. A POC that confirms the happy-path shape while hand-waving the risky mechanism is theater. If you catch yourself writing "production would do X" instead of *doing* X in the spike, the POC has not validated X — go do X
74
+ - **Aim the POC at the load-bearing claim — not the easy part.** Cover the happy path and 2-3 common edges, but name the riskiest assumption first (does the cheap path actually run cheap? does the library really do X? does the perf hold?), then point the spike straight at *that*. A POC that confirms the happy-path shape while hand-waving the risky mechanism is theater. If you catch yourself writing "production would do X" instead of *doing* X in the spike, the POC has not validated X — go do X
63
75
  - **Prove, don't assert — a POC's output is evidence you ran, not prose you wrote.** Every claim the design rests on must be something the spike actually exercised and you actually observed. **Measure anything you call "cheap," "fast," "constant," or "negligible"** — never state a cost you didn't time; a guessed number is a bug with a confident voice. State conclusions only at the confidence the evidence supports: if you didn't test it, say so plainly instead of rounding up to "it works." Better a small honest finding than a big-mouthed claim that measurement later falsifies
64
76
  - **The test must be able to FAIL — pre-flight check, not an afterthought.** Before trusting a POC's numbers, confirm three things: **(1) Can the test produce the negative?** A fixture you authored to contain the phenomenon you're testing can only confirm it — prefer real, uncrafted data over synthetic inputs; if synthetic is unavoidable, construct it so it *could* show no effect. **(2) Is the harness free of confounds?** A surprising or degenerate result is often an artifact of the setup, not a real finding — when output looks wrong, debug the test before believing it. **(3) Did the test actually exercise the variable?** If two conditions that should differ produce identical output, the variable isn't wired in — that's a finding, not noise. Run this checklist every time, especially when a result confirms what you hoped
65
- - **Build incrementally.** After POC graduates, break the work into small, independent modules. Focus on one at a time. Each piece must work on its own before integrating with the next
77
+ - **One module at a time.** Build the PRD's modules in order, never several at once. Each module gets its own POC aimed at *its* riskiest assumption (module 0's is the go/no-go). A module is done when **(1)** it works on its own and **(2)** it connects to what's already built and the whole still works — both proven, not assumed. Only then start the next
78
+ - **No fitting to pass.** Never narrow the input, move the threshold, or shrink the scope until a POC goes green. Report the failure and take it back to the PRD
66
79
 
67
80
  ### Dependency Hierarchy
68
81
 
@@ -106,6 +119,7 @@ Before adding any external dependency, all of these must be true:
106
119
  - Skipping POC validation for unproven ideas
107
120
  - POC-ing only the easy part while hand-waving the risky mechanism, or claiming a cost ("cheap"/"fast"/"constant") you never measured
108
121
  - Authoring a fixture/corpus that *guarantees* the result (a test that can't return the negative), or trusting a degenerate-looking number without auditing the harness for confounds — use real uncrafted data; the test must be able to fail
122
+ - Fitting a POC to pass (narrowed input, moved threshold, shrunk scope) instead of reporting the failure; starting module N+1 while module N is unproven
109
123
 
110
124
  ---
111
125
 
@@ -269,9 +283,9 @@ Copy this to any project's AGENT.md. These are mandatory rules, not suggestions.
269
283
  ```markdown
270
284
  ## Dev Rules
271
285
 
272
- **POC first.** Always validate logic with a ~15min proof-of-concept before building. Cover happy path + common edges. POC works → design properly → build with tests. Never ship the POC. **Aim the spike at the riskiest assumption, not the easy part; prove, don't assert measure anything you call "cheap"/"fast"/"constant," and claim only what the evidence supports (no big-mouthed conclusions measurement can falsify). The test must be able to FAIL: prefer real uncrafted data over a fixture you authored to contain the result, audit a degenerate number for harness confounds before believing it, and treat two should-differ conditions that match as a finding.**
286
+ **Spec first.** Interview to find the decision, not the task; write a PRD with problem/goal, go/no-go, out-of-scope, modules, open questions. POCs refine it.
273
287
 
274
- **Build incrementally.** Break work into small independent modules. One piece at a time, each must work on its own before integrating.
288
+ **POC first, one module at a time.** Each module's POC targets its riskiest assumption (module 0 = go/no-go); the test must be able to fail; prove, don't assert — measure anything you call cheap/fast/constant. No fitting to pass. A module works on its own, then connects to what's built, before the next starts. Never ship the POC.
275
289
 
276
290
  **Dependency hierarchy — follow strictly:** vanilla language → standard library → external (only when stdlib can't do it in <100 lines). External deps must be maintained, lightweight, and widely adopted. Exception: always use vetted libraries for security-critical code (crypto, auth, sanitization).
277
291
 
@@ -283,17 +297,3 @@ Copy this to any project's AGENT.md. These are mandatory rules, not suggestions.
283
297
 
284
298
  For full development and testing standards, see `.amp/remember/AGENT_RULES.md`.
285
299
  ```
286
-
287
- ---
288
-
289
- ## AI Agent Instructions
290
-
291
- When working with this user:
292
- 1. **Interview before building** — extract the real goal and surface load-bearing decisions for sign-off before you execute (see [Operating Flow](#operating-flow))
293
- 2. **Provide step-by-step** instructions with clear explanations
294
- 3. **Include ready-to-run** scripts and commands
295
- 4. **Explain the "why"** behind technical recommendations
296
- 5. **Flag potential issues** before they become problems — name the assumption, don't bury it
297
- 6. **Suggest simpler alternatives** when appropriate
298
- 7. **Ask first** before touching auth, DB schema/migrations, CI, or settings; **never** commit secrets
299
- 8. **Always identify** which files will be affected by changes
@@ -10,7 +10,6 @@
10
10
  7. [Development Workflow](#development-workflow)
11
11
  8. [Twelve-Factor Checklist](#twelve-factor-checklist)
12
12
  9. [CLAUDE.md Stub](#claudemd-stub)
13
- 10. [AI Agent Instructions](#ai-agent-instructions)
14
13
 
15
14
  ---
16
15
 
@@ -18,10 +17,25 @@
18
17
 
19
18
  Every task runs through three layers. Do not skip ahead to code.
20
19
 
21
- 1. **Spec — agree on intent before touching anything.** Interview me up front to surface the *real* goal and the context you can't see — prompt the **decision I'm trying to make**, not the literal task I typed. Break the scope into small buckets with checkpoints. **State the load-bearing structural and logic decisions and get my explicit sign-off *before* you execute.** A wrong assumption caught at spec stage costs a sentence; caught after building it costs the build.
22
- 2. **Verify — define "good" up front, then prove it.** Write down what success looks like *before* changing code. Prove with measurement and tests, not assertion (see [*Prove, don't assert*](#validate-before-you-build)). Gate security-sensitive work with `/security` and pre-deploy with `/ship`; a second-model pass (`/code-review`) on non-trivial output is worth the round-trip. External signal — a real test run, a real deploy, a gold-standard reference — beats a confident paragraph every time.
20
+ 1. **Spec — the interview must happen; its shape is yours.** Before touching anything, surface the *decision I'm actually making*, not the literal task I typed. Ask what you need to know no more; how you ask is your call. Restate what you heard and get my explicit sign-off on the load-bearing decisions *before* you execute. A wrong assumption caught here costs a sentence; caught after building costs the build.
21
+
22
+ Write the outcome down as a **PRD**. A PRD is a portal, not a deliverable — where the conversation starts and the doc every POC refines. Minimum content, whatever the form:
23
+ - **Problem & goal** — what we're solving and why now
24
+ - **Go / no-go** — the 1–2 capabilities the product stands or falls on; usually module 0's riskiest assumption (e.g. "can a phone camera read the ID?"). Fails → stop
25
+ - **Out of scope** — what we're explicitly not doing
26
+ - **Modules** — the pieces to build, in order (see [*One module at a time*](#validate-before-you-build))
27
+ - **Open questions** — unknowns that don't block; never silently assumed
28
+
29
+ Every POC result updates the PRD; one that flips the go/no-go or a module's assumption is a spec change, not a footnote.
30
+ 2. **Verify — define "good" up front, then prove it.** Write down what success looks like *before* changing code. Prove with measurement and tests, not assertion (see [*Prove, don't assert*](#validate-before-you-build)). Gate security-sensitive work with `/security` and pre-deploy with `/ship`. When the work is done, propose `/code-review` and then `/release` — you never merge or release on your own (see [Required Safeguards](#required-safeguards-always--ask--never)). External signal — a real test run, a real deploy, a gold-standard reference — beats a confident paragraph every time.
23
31
  3. **Environment — the standing context.** This file primes every session. Critical-path protections (secrets, auth, schema, CI) are stated as **Always / Ask / Never** below and bind you as written. Where your tool offers a permission allow/ask/deny list, mirror them there so they are enforced and not merely requested.
24
32
 
33
+ **Execution order — work the way a program runs, in this order, nothing skipped:**
34
+ 1. **Sequence** — do the PRD's modules in the order listed; never start module N+1 while module N is unproven.
35
+ 2. **Selection** — every POC is a branch: pass → next module, fail → back to the PRD as a spec change.
36
+ 3. **Iteration** — repeat POC → update PRD → next POC until the go/no-go is answered; the loop invariant is *everything built so far still works on its own*.
37
+ 4. **Verify** — assert before you move: a step is done when you ran the proof and saw it pass, not when you wrote that it did.
38
+
25
39
  > The model is brilliant at execution and blind to intent. You can outsource the typing; you cannot outsource the understanding. Surface assumptions — don't bury them.
26
40
 
27
41
  ---
@@ -29,16 +43,14 @@ Every task runs through three layers. Do not skip ahead to code.
29
43
  ## Communication Protocol
30
44
 
31
45
  ### Core Rules
32
- - **Spec before build**: Don't wait for ambiguity to block you interview me up front to extract the real goal and the context you can't see. Prompt the *decision*, not the literal task. Restate what you heard before building
33
- - **Checkpoint before executing**: State the load-bearing structural and logic decisions and get my explicit sign-off *before* you write code. Never run ahead on an unverified assumption — flag it and stop
46
+ - **Spec first, then checkpoint**: see [Operating Flow §1](#operating-flow). Never run ahead on an unverified assumption flag it and stop
34
47
  - **Fact-Based**: Base all recommendations on verified, current information. Prefer external signal (a real run, a real source) over a confident guess
35
48
  - **Simplicity Advocate**: Call out overcomplications and suggest simpler alternatives
36
- - **Safety First**: Never modify critical systems without explicit understanding and approval
37
49
 
38
50
  ### User Profile
39
51
  - **Technical Level**: Non-coder but technically savvy
40
52
  - **Learning Style**: Understands concepts, needs executable instructions
41
- - **Expects**: Step-by-step guidance with clear explanations
53
+ - **Expects**: Step-by-step guidance, ready-to-run commands, and the *why* behind each recommendation
42
54
  - **Comfortable with**: Command-line operations and scripts
43
55
  - **Builds a lot of web apps** — assume any UI work will be consumed on phones as well as desktop
44
56
 
@@ -49,6 +61,7 @@ Not courtesies. These bind you as written, whether or not your tool enforces the
49
61
  - **Always** identify affected files before making changes, and explain what will change and why
50
62
  - **Ask first** — stop and get explicit sign-off — before modifying authentication systems, database schema or migrations, CI workflows, or `.claude/settings.json`
51
63
  - **Never** write secrets into the tree (`.env`/`*.env`, keys, credentials). They load from the environment at runtime; only a value-less `.env.example` is committed
64
+ - **Never** commit to `main`. Commit to a new branch (name doesn't matter), then propose `/code-review` followed by `/release`; merging and releasing are my call, made by name — "approve", "good", or "go" on a draft is not that call
52
65
 
53
66
  ---
54
67
 
@@ -57,12 +70,12 @@ Not courtesies. These bind you as written, whether or not your tool enforces the
57
70
  ### Validate Before You Build
58
71
 
59
72
  - **POC everything first.** Before committing to a design, build a quick proof-of-concept (~15 min) that validates the core logic. Keep it stupidly simple — manual steps are fine, hardcoded values are fine, no tests needed yet
60
- - **POC scope:** Cover the happy path, 2-3 common edge cases, **and the riskiest assumption (see below) — not just the parts that are easy to check**. If those hold, the idea is sound
61
73
  - **Graduation criteria:** POC validates logic and covers most common scenarios → stop, design properly, then build with structure, tests, and error handling. Never ship the POC — rewrite it
62
- - **Aim the POC at the load-bearing claim — not the easy part.** Name the riskiest assumption first (does the cheap path actually run cheap? does the library really do X? does the perf hold?), then point the spike straight at *that*. A POC that confirms the happy-path shape while hand-waving the risky mechanism is theater. If you catch yourself writing "production would do X" instead of *doing* X in the spike, the POC has not validated X — go do X
74
+ - **Aim the POC at the load-bearing claim — not the easy part.** Cover the happy path and 2-3 common edges, but name the riskiest assumption first (does the cheap path actually run cheap? does the library really do X? does the perf hold?), then point the spike straight at *that*. A POC that confirms the happy-path shape while hand-waving the risky mechanism is theater. If you catch yourself writing "production would do X" instead of *doing* X in the spike, the POC has not validated X — go do X
63
75
  - **Prove, don't assert — a POC's output is evidence you ran, not prose you wrote.** Every claim the design rests on must be something the spike actually exercised and you actually observed. **Measure anything you call "cheap," "fast," "constant," or "negligible"** — never state a cost you didn't time; a guessed number is a bug with a confident voice. State conclusions only at the confidence the evidence supports: if you didn't test it, say so plainly instead of rounding up to "it works." Better a small honest finding than a big-mouthed claim that measurement later falsifies
64
76
  - **The test must be able to FAIL — pre-flight check, not an afterthought.** Before trusting a POC's numbers, confirm three things: **(1) Can the test produce the negative?** A fixture you authored to contain the phenomenon you're testing can only confirm it — prefer real, uncrafted data over synthetic inputs; if synthetic is unavoidable, construct it so it *could* show no effect. **(2) Is the harness free of confounds?** A surprising or degenerate result is often an artifact of the setup, not a real finding — when output looks wrong, debug the test before believing it. **(3) Did the test actually exercise the variable?** If two conditions that should differ produce identical output, the variable isn't wired in — that's a finding, not noise. Run this checklist every time, especially when a result confirms what you hoped
65
- - **Build incrementally.** After POC graduates, break the work into small, independent modules. Focus on one at a time. Each piece must work on its own before integrating with the next
77
+ - **One module at a time.** Build the PRD's modules in order, never several at once. Each module gets its own POC aimed at *its* riskiest assumption (module 0's is the go/no-go). A module is done when **(1)** it works on its own and **(2)** it connects to what's already built and the whole still works — both proven, not assumed. Only then start the next
78
+ - **No fitting to pass.** Never narrow the input, move the threshold, or shrink the scope until a POC goes green. Report the failure and take it back to the PRD
66
79
 
67
80
  ### Dependency Hierarchy
68
81
 
@@ -106,6 +119,7 @@ Before adding any external dependency, all of these must be true:
106
119
  - Skipping POC validation for unproven ideas
107
120
  - POC-ing only the easy part while hand-waving the risky mechanism, or claiming a cost ("cheap"/"fast"/"constant") you never measured
108
121
  - Authoring a fixture/corpus that *guarantees* the result (a test that can't return the negative), or trusting a degenerate-looking number without auditing the harness for confounds — use real uncrafted data; the test must be able to fail
122
+ - Fitting a POC to pass (narrowed input, moved threshold, shrunk scope) instead of reporting the failure; starting module N+1 while module N is unproven
109
123
 
110
124
  ---
111
125
 
@@ -269,9 +283,9 @@ Copy this to any project's CLAUDE.md. These are mandatory rules, not suggestions
269
283
  ```markdown
270
284
  ## Dev Rules
271
285
 
272
- **POC first.** Always validate logic with a ~15min proof-of-concept before building. Cover happy path + common edges. POC works → design properly → build with tests. Never ship the POC. **Aim the spike at the riskiest assumption, not the easy part; prove, don't assert measure anything you call "cheap"/"fast"/"constant," and claim only what the evidence supports (no big-mouthed conclusions measurement can falsify). The test must be able to FAIL: prefer real uncrafted data over a fixture you authored to contain the result, audit a degenerate number for harness confounds before believing it, and treat two should-differ conditions that match as a finding.**
286
+ **Spec first.** Interview to find the decision, not the task; write a PRD with problem/goal, go/no-go, out-of-scope, modules, open questions. POCs refine it.
273
287
 
274
- **Build incrementally.** Break work into small independent modules. One piece at a time, each must work on its own before integrating.
288
+ **POC first, one module at a time.** Each module's POC targets its riskiest assumption (module 0 = go/no-go); the test must be able to fail; prove, don't assert — measure anything you call cheap/fast/constant. No fitting to pass. A module works on its own, then connects to what's built, before the next starts. Never ship the POC.
275
289
 
276
290
  **Dependency hierarchy — follow strictly:** vanilla language → standard library → external (only when stdlib can't do it in <100 lines). External deps must be maintained, lightweight, and widely adopted. Exception: always use vetted libraries for security-critical code (crypto, auth, sanitization).
277
291
 
@@ -283,17 +297,3 @@ Copy this to any project's CLAUDE.md. These are mandatory rules, not suggestions
283
297
 
284
298
  For full development and testing standards, see `.claude/remember/AGENT_RULES.md`.
285
299
  ```
286
-
287
- ---
288
-
289
- ## AI Agent Instructions
290
-
291
- When working with this user:
292
- 1. **Interview before building** — extract the real goal and surface load-bearing decisions for sign-off before you execute (see [Operating Flow](#operating-flow))
293
- 2. **Provide step-by-step** instructions with clear explanations
294
- 3. **Include ready-to-run** scripts and commands
295
- 4. **Explain the "why"** behind technical recommendations
296
- 5. **Flag potential issues** before they become problems — name the assumption, don't bury it
297
- 6. **Suggest simpler alternatives** when appropriate
298
- 7. **Ask first** before touching auth, DB schema/migrations, CI, or settings; **never** commit secrets
299
- 8. **Always identify** which files will be affected by changes
@@ -10,7 +10,6 @@
10
10
  7. [Development Workflow](#development-workflow)
11
11
  8. [Twelve-Factor Checklist](#twelve-factor-checklist)
12
12
  9. [AGENTS.md Stub](#agentsmd-stub)
13
- 10. [AI Agent Instructions](#ai-agent-instructions)
14
13
 
15
14
  ---
16
15
 
@@ -18,10 +17,25 @@
18
17
 
19
18
  Every task runs through three layers. Do not skip ahead to code.
20
19
 
21
- 1. **Spec — agree on intent before touching anything.** Interview me up front to surface the *real* goal and the context you can't see — prompt the **decision I'm trying to make**, not the literal task I typed. Break the scope into small buckets with checkpoints. **State the load-bearing structural and logic decisions and get my explicit sign-off *before* you execute.** A wrong assumption caught at spec stage costs a sentence; caught after building it costs the build.
22
- 2. **Verify — define "good" up front, then prove it.** Write down what success looks like *before* changing code. Prove with measurement and tests, not assertion (see [*Prove, don't assert*](#validate-before-you-build)). Gate security-sensitive work with `/security` and pre-deploy with `/ship`; a second-model pass (`/code-review`) on non-trivial output is worth the round-trip. External signal — a real test run, a real deploy, a gold-standard reference — beats a confident paragraph every time.
20
+ 1. **Spec — the interview must happen; its shape is yours.** Before touching anything, surface the *decision I'm actually making*, not the literal task I typed. Ask what you need to know no more; how you ask is your call. Restate what you heard and get my explicit sign-off on the load-bearing decisions *before* you execute. A wrong assumption caught here costs a sentence; caught after building costs the build.
21
+
22
+ Write the outcome down as a **PRD**. A PRD is a portal, not a deliverable — where the conversation starts and the doc every POC refines. Minimum content, whatever the form:
23
+ - **Problem & goal** — what we're solving and why now
24
+ - **Go / no-go** — the 1–2 capabilities the product stands or falls on; usually module 0's riskiest assumption (e.g. "can a phone camera read the ID?"). Fails → stop
25
+ - **Out of scope** — what we're explicitly not doing
26
+ - **Modules** — the pieces to build, in order (see [*One module at a time*](#validate-before-you-build))
27
+ - **Open questions** — unknowns that don't block; never silently assumed
28
+
29
+ Every POC result updates the PRD; one that flips the go/no-go or a module's assumption is a spec change, not a footnote.
30
+ 2. **Verify — define "good" up front, then prove it.** Write down what success looks like *before* changing code. Prove with measurement and tests, not assertion (see [*Prove, don't assert*](#validate-before-you-build)). Gate security-sensitive work with `/security` and pre-deploy with `/ship`. When the work is done, propose `/code-review` and then `/release` — you never merge or release on your own (see [Required Safeguards](#required-safeguards-always--ask--never)). External signal — a real test run, a real deploy, a gold-standard reference — beats a confident paragraph every time.
23
31
  3. **Environment — the standing context.** This file primes every session. Critical-path protections (secrets, auth, schema, CI) are stated as **Always / Ask / Never** below and bind you as written. Where your tool offers a permission allow/ask/deny list, mirror them there so they are enforced and not merely requested.
24
32
 
33
+ **Execution order — work the way a program runs, in this order, nothing skipped:**
34
+ 1. **Sequence** — do the PRD's modules in the order listed; never start module N+1 while module N is unproven.
35
+ 2. **Selection** — every POC is a branch: pass → next module, fail → back to the PRD as a spec change.
36
+ 3. **Iteration** — repeat POC → update PRD → next POC until the go/no-go is answered; the loop invariant is *everything built so far still works on its own*.
37
+ 4. **Verify** — assert before you move: a step is done when you ran the proof and saw it pass, not when you wrote that it did.
38
+
25
39
  > The model is brilliant at execution and blind to intent. You can outsource the typing; you cannot outsource the understanding. Surface assumptions — don't bury them.
26
40
 
27
41
  ---
@@ -29,16 +43,14 @@ Every task runs through three layers. Do not skip ahead to code.
29
43
  ## Communication Protocol
30
44
 
31
45
  ### Core Rules
32
- - **Spec before build**: Don't wait for ambiguity to block you interview me up front to extract the real goal and the context you can't see. Prompt the *decision*, not the literal task. Restate what you heard before building
33
- - **Checkpoint before executing**: State the load-bearing structural and logic decisions and get my explicit sign-off *before* you write code. Never run ahead on an unverified assumption — flag it and stop
46
+ - **Spec first, then checkpoint**: see [Operating Flow §1](#operating-flow). Never run ahead on an unverified assumption flag it and stop
34
47
  - **Fact-Based**: Base all recommendations on verified, current information. Prefer external signal (a real run, a real source) over a confident guess
35
48
  - **Simplicity Advocate**: Call out overcomplications and suggest simpler alternatives
36
- - **Safety First**: Never modify critical systems without explicit understanding and approval
37
49
 
38
50
  ### User Profile
39
51
  - **Technical Level**: Non-coder but technically savvy
40
52
  - **Learning Style**: Understands concepts, needs executable instructions
41
- - **Expects**: Step-by-step guidance with clear explanations
53
+ - **Expects**: Step-by-step guidance, ready-to-run commands, and the *why* behind each recommendation
42
54
  - **Comfortable with**: Command-line operations and scripts
43
55
  - **Builds a lot of web apps** — assume any UI work will be consumed on phones as well as desktop
44
56
 
@@ -49,6 +61,7 @@ Not courtesies. These bind you as written, whether or not your tool enforces the
49
61
  - **Always** identify affected files before making changes, and explain what will change and why
50
62
  - **Ask first** — stop and get explicit sign-off — before modifying authentication systems, database schema or migrations, CI workflows, or `.factory/settings.json`
51
63
  - **Never** write secrets into the tree (`.env`/`*.env`, keys, credentials). They load from the environment at runtime; only a value-less `.env.example` is committed
64
+ - **Never** commit to `main`. Commit to a new branch (name doesn't matter), then propose `/code-review` followed by `/release`; merging and releasing are my call, made by name — "approve", "good", or "go" on a draft is not that call
52
65
 
53
66
  ---
54
67
 
@@ -57,12 +70,12 @@ Not courtesies. These bind you as written, whether or not your tool enforces the
57
70
  ### Validate Before You Build
58
71
 
59
72
  - **POC everything first.** Before committing to a design, build a quick proof-of-concept (~15 min) that validates the core logic. Keep it stupidly simple — manual steps are fine, hardcoded values are fine, no tests needed yet
60
- - **POC scope:** Cover the happy path, 2-3 common edge cases, **and the riskiest assumption (see below) — not just the parts that are easy to check**. If those hold, the idea is sound
61
73
  - **Graduation criteria:** POC validates logic and covers most common scenarios → stop, design properly, then build with structure, tests, and error handling. Never ship the POC — rewrite it
62
- - **Aim the POC at the load-bearing claim — not the easy part.** Name the riskiest assumption first (does the cheap path actually run cheap? does the library really do X? does the perf hold?), then point the spike straight at *that*. A POC that confirms the happy-path shape while hand-waving the risky mechanism is theater. If you catch yourself writing "production would do X" instead of *doing* X in the spike, the POC has not validated X — go do X
74
+ - **Aim the POC at the load-bearing claim — not the easy part.** Cover the happy path and 2-3 common edges, but name the riskiest assumption first (does the cheap path actually run cheap? does the library really do X? does the perf hold?), then point the spike straight at *that*. A POC that confirms the happy-path shape while hand-waving the risky mechanism is theater. If you catch yourself writing "production would do X" instead of *doing* X in the spike, the POC has not validated X — go do X
63
75
  - **Prove, don't assert — a POC's output is evidence you ran, not prose you wrote.** Every claim the design rests on must be something the spike actually exercised and you actually observed. **Measure anything you call "cheap," "fast," "constant," or "negligible"** — never state a cost you didn't time; a guessed number is a bug with a confident voice. State conclusions only at the confidence the evidence supports: if you didn't test it, say so plainly instead of rounding up to "it works." Better a small honest finding than a big-mouthed claim that measurement later falsifies
64
76
  - **The test must be able to FAIL — pre-flight check, not an afterthought.** Before trusting a POC's numbers, confirm three things: **(1) Can the test produce the negative?** A fixture you authored to contain the phenomenon you're testing can only confirm it — prefer real, uncrafted data over synthetic inputs; if synthetic is unavoidable, construct it so it *could* show no effect. **(2) Is the harness free of confounds?** A surprising or degenerate result is often an artifact of the setup, not a real finding — when output looks wrong, debug the test before believing it. **(3) Did the test actually exercise the variable?** If two conditions that should differ produce identical output, the variable isn't wired in — that's a finding, not noise. Run this checklist every time, especially when a result confirms what you hoped
65
- - **Build incrementally.** After POC graduates, break the work into small, independent modules. Focus on one at a time. Each piece must work on its own before integrating with the next
77
+ - **One module at a time.** Build the PRD's modules in order, never several at once. Each module gets its own POC aimed at *its* riskiest assumption (module 0's is the go/no-go). A module is done when **(1)** it works on its own and **(2)** it connects to what's already built and the whole still works — both proven, not assumed. Only then start the next
78
+ - **No fitting to pass.** Never narrow the input, move the threshold, or shrink the scope until a POC goes green. Report the failure and take it back to the PRD
66
79
 
67
80
  ### Dependency Hierarchy
68
81
 
@@ -106,6 +119,7 @@ Before adding any external dependency, all of these must be true:
106
119
  - Skipping POC validation for unproven ideas
107
120
  - POC-ing only the easy part while hand-waving the risky mechanism, or claiming a cost ("cheap"/"fast"/"constant") you never measured
108
121
  - Authoring a fixture/corpus that *guarantees* the result (a test that can't return the negative), or trusting a degenerate-looking number without auditing the harness for confounds — use real uncrafted data; the test must be able to fail
122
+ - Fitting a POC to pass (narrowed input, moved threshold, shrunk scope) instead of reporting the failure; starting module N+1 while module N is unproven
109
123
 
110
124
  ---
111
125
 
@@ -269,9 +283,9 @@ Copy this to any project's AGENTS.md. These are mandatory rules, not suggestions
269
283
  ```markdown
270
284
  ## Dev Rules
271
285
 
272
- **POC first.** Always validate logic with a ~15min proof-of-concept before building. Cover happy path + common edges. POC works → design properly → build with tests. Never ship the POC. **Aim the spike at the riskiest assumption, not the easy part; prove, don't assert measure anything you call "cheap"/"fast"/"constant," and claim only what the evidence supports (no big-mouthed conclusions measurement can falsify). The test must be able to FAIL: prefer real uncrafted data over a fixture you authored to contain the result, audit a degenerate number for harness confounds before believing it, and treat two should-differ conditions that match as a finding.**
286
+ **Spec first.** Interview to find the decision, not the task; write a PRD with problem/goal, go/no-go, out-of-scope, modules, open questions. POCs refine it.
273
287
 
274
- **Build incrementally.** Break work into small independent modules. One piece at a time, each must work on its own before integrating.
288
+ **POC first, one module at a time.** Each module's POC targets its riskiest assumption (module 0 = go/no-go); the test must be able to fail; prove, don't assert — measure anything you call cheap/fast/constant. No fitting to pass. A module works on its own, then connects to what's built, before the next starts. Never ship the POC.
275
289
 
276
290
  **Dependency hierarchy — follow strictly:** vanilla language → standard library → external (only when stdlib can't do it in <100 lines). External deps must be maintained, lightweight, and widely adopted. Exception: always use vetted libraries for security-critical code (crypto, auth, sanitization).
277
291
 
@@ -283,17 +297,3 @@ Copy this to any project's AGENTS.md. These are mandatory rules, not suggestions
283
297
 
284
298
  For full development and testing standards, see `.factory/remember/AGENT_RULES.md`.
285
299
  ```
286
-
287
- ---
288
-
289
- ## AI Agent Instructions
290
-
291
- When working with this user:
292
- 1. **Interview before building** — extract the real goal and surface load-bearing decisions for sign-off before you execute (see [Operating Flow](#operating-flow))
293
- 2. **Provide step-by-step** instructions with clear explanations
294
- 3. **Include ready-to-run** scripts and commands
295
- 4. **Explain the "why"** behind technical recommendations
296
- 5. **Flag potential issues** before they become problems — name the assumption, don't bury it
297
- 6. **Suggest simpler alternatives** when appropriate
298
- 7. **Ask first** before touching auth, DB schema/migrations, CI, or settings; **never** commit secrets
299
- 8. **Always identify** which files will be affected by changes
@@ -10,7 +10,6 @@
10
10
  7. [Development Workflow](#development-workflow)
11
11
  8. [Twelve-Factor Checklist](#twelve-factor-checklist)
12
12
  9. [AGENTS.md Stub](#agentsmd-stub)
13
- 10. [AI Agent Instructions](#ai-agent-instructions)
14
13
 
15
14
  ---
16
15
 
@@ -18,10 +17,25 @@
18
17
 
19
18
  Every task runs through three layers. Do not skip ahead to code.
20
19
 
21
- 1. **Spec — agree on intent before touching anything.** Interview me up front to surface the *real* goal and the context you can't see — prompt the **decision I'm trying to make**, not the literal task I typed. Break the scope into small buckets with checkpoints. **State the load-bearing structural and logic decisions and get my explicit sign-off *before* you execute.** A wrong assumption caught at spec stage costs a sentence; caught after building it costs the build.
22
- 2. **Verify — define "good" up front, then prove it.** Write down what success looks like *before* changing code. Prove with measurement and tests, not assertion (see [*Prove, don't assert*](#validate-before-you-build)). Gate security-sensitive work with `/security` and pre-deploy with `/ship`; a second-model pass (`/code-review`) on non-trivial output is worth the round-trip. External signal — a real test run, a real deploy, a gold-standard reference — beats a confident paragraph every time.
20
+ 1. **Spec — the interview must happen; its shape is yours.** Before touching anything, surface the *decision I'm actually making*, not the literal task I typed. Ask what you need to know no more; how you ask is your call. Restate what you heard and get my explicit sign-off on the load-bearing decisions *before* you execute. A wrong assumption caught here costs a sentence; caught after building costs the build.
21
+
22
+ Write the outcome down as a **PRD**. A PRD is a portal, not a deliverable — where the conversation starts and the doc every POC refines. Minimum content, whatever the form:
23
+ - **Problem & goal** — what we're solving and why now
24
+ - **Go / no-go** — the 1–2 capabilities the product stands or falls on; usually module 0's riskiest assumption (e.g. "can a phone camera read the ID?"). Fails → stop
25
+ - **Out of scope** — what we're explicitly not doing
26
+ - **Modules** — the pieces to build, in order (see [*One module at a time*](#validate-before-you-build))
27
+ - **Open questions** — unknowns that don't block; never silently assumed
28
+
29
+ Every POC result updates the PRD; one that flips the go/no-go or a module's assumption is a spec change, not a footnote.
30
+ 2. **Verify — define "good" up front, then prove it.** Write down what success looks like *before* changing code. Prove with measurement and tests, not assertion (see [*Prove, don't assert*](#validate-before-you-build)). Gate security-sensitive work with `/security` and pre-deploy with `/ship`. When the work is done, propose `/code-review` and then `/release` — you never merge or release on your own (see [Required Safeguards](#required-safeguards-always--ask--never)). External signal — a real test run, a real deploy, a gold-standard reference — beats a confident paragraph every time.
23
31
  3. **Environment — the standing context.** This file primes every session. Critical-path protections (secrets, auth, schema, CI) are stated as **Always / Ask / Never** below and bind you as written. Where your tool offers a permission allow/ask/deny list, mirror them there so they are enforced and not merely requested.
24
32
 
33
+ **Execution order — work the way a program runs, in this order, nothing skipped:**
34
+ 1. **Sequence** — do the PRD's modules in the order listed; never start module N+1 while module N is unproven.
35
+ 2. **Selection** — every POC is a branch: pass → next module, fail → back to the PRD as a spec change.
36
+ 3. **Iteration** — repeat POC → update PRD → next POC until the go/no-go is answered; the loop invariant is *everything built so far still works on its own*.
37
+ 4. **Verify** — assert before you move: a step is done when you ran the proof and saw it pass, not when you wrote that it did.
38
+
25
39
  > The model is brilliant at execution and blind to intent. You can outsource the typing; you cannot outsource the understanding. Surface assumptions — don't bury them.
26
40
 
27
41
  ---
@@ -29,16 +43,14 @@ Every task runs through three layers. Do not skip ahead to code.
29
43
  ## Communication Protocol
30
44
 
31
45
  ### Core Rules
32
- - **Spec before build**: Don't wait for ambiguity to block you interview me up front to extract the real goal and the context you can't see. Prompt the *decision*, not the literal task. Restate what you heard before building
33
- - **Checkpoint before executing**: State the load-bearing structural and logic decisions and get my explicit sign-off *before* you write code. Never run ahead on an unverified assumption — flag it and stop
46
+ - **Spec first, then checkpoint**: see [Operating Flow §1](#operating-flow). Never run ahead on an unverified assumption flag it and stop
34
47
  - **Fact-Based**: Base all recommendations on verified, current information. Prefer external signal (a real run, a real source) over a confident guess
35
48
  - **Simplicity Advocate**: Call out overcomplications and suggest simpler alternatives
36
- - **Safety First**: Never modify critical systems without explicit understanding and approval
37
49
 
38
50
  ### User Profile
39
51
  - **Technical Level**: Non-coder but technically savvy
40
52
  - **Learning Style**: Understands concepts, needs executable instructions
41
- - **Expects**: Step-by-step guidance with clear explanations
53
+ - **Expects**: Step-by-step guidance, ready-to-run commands, and the *why* behind each recommendation
42
54
  - **Comfortable with**: Command-line operations and scripts
43
55
  - **Builds a lot of web apps** — assume any UI work will be consumed on phones as well as desktop
44
56
 
@@ -49,6 +61,7 @@ Not courtesies. These bind you as written, whether or not your tool enforces the
49
61
  - **Always** identify affected files before making changes, and explain what will change and why
50
62
  - **Ask first** — stop and get explicit sign-off — before modifying authentication systems, database schema or migrations, CI workflows, or `.opencode/settings.json`
51
63
  - **Never** write secrets into the tree (`.env`/`*.env`, keys, credentials). They load from the environment at runtime; only a value-less `.env.example` is committed
64
+ - **Never** commit to `main`. Commit to a new branch (name doesn't matter), then propose `/code-review` followed by `/release`; merging and releasing are my call, made by name — "approve", "good", or "go" on a draft is not that call
52
65
 
53
66
  ---
54
67
 
@@ -57,12 +70,12 @@ Not courtesies. These bind you as written, whether or not your tool enforces the
57
70
  ### Validate Before You Build
58
71
 
59
72
  - **POC everything first.** Before committing to a design, build a quick proof-of-concept (~15 min) that validates the core logic. Keep it stupidly simple — manual steps are fine, hardcoded values are fine, no tests needed yet
60
- - **POC scope:** Cover the happy path, 2-3 common edge cases, **and the riskiest assumption (see below) — not just the parts that are easy to check**. If those hold, the idea is sound
61
73
  - **Graduation criteria:** POC validates logic and covers most common scenarios → stop, design properly, then build with structure, tests, and error handling. Never ship the POC — rewrite it
62
- - **Aim the POC at the load-bearing claim — not the easy part.** Name the riskiest assumption first (does the cheap path actually run cheap? does the library really do X? does the perf hold?), then point the spike straight at *that*. A POC that confirms the happy-path shape while hand-waving the risky mechanism is theater. If you catch yourself writing "production would do X" instead of *doing* X in the spike, the POC has not validated X — go do X
74
+ - **Aim the POC at the load-bearing claim — not the easy part.** Cover the happy path and 2-3 common edges, but name the riskiest assumption first (does the cheap path actually run cheap? does the library really do X? does the perf hold?), then point the spike straight at *that*. A POC that confirms the happy-path shape while hand-waving the risky mechanism is theater. If you catch yourself writing "production would do X" instead of *doing* X in the spike, the POC has not validated X — go do X
63
75
  - **Prove, don't assert — a POC's output is evidence you ran, not prose you wrote.** Every claim the design rests on must be something the spike actually exercised and you actually observed. **Measure anything you call "cheap," "fast," "constant," or "negligible"** — never state a cost you didn't time; a guessed number is a bug with a confident voice. State conclusions only at the confidence the evidence supports: if you didn't test it, say so plainly instead of rounding up to "it works." Better a small honest finding than a big-mouthed claim that measurement later falsifies
64
76
  - **The test must be able to FAIL — pre-flight check, not an afterthought.** Before trusting a POC's numbers, confirm three things: **(1) Can the test produce the negative?** A fixture you authored to contain the phenomenon you're testing can only confirm it — prefer real, uncrafted data over synthetic inputs; if synthetic is unavoidable, construct it so it *could* show no effect. **(2) Is the harness free of confounds?** A surprising or degenerate result is often an artifact of the setup, not a real finding — when output looks wrong, debug the test before believing it. **(3) Did the test actually exercise the variable?** If two conditions that should differ produce identical output, the variable isn't wired in — that's a finding, not noise. Run this checklist every time, especially when a result confirms what you hoped
65
- - **Build incrementally.** After POC graduates, break the work into small, independent modules. Focus on one at a time. Each piece must work on its own before integrating with the next
77
+ - **One module at a time.** Build the PRD's modules in order, never several at once. Each module gets its own POC aimed at *its* riskiest assumption (module 0's is the go/no-go). A module is done when **(1)** it works on its own and **(2)** it connects to what's already built and the whole still works — both proven, not assumed. Only then start the next
78
+ - **No fitting to pass.** Never narrow the input, move the threshold, or shrink the scope until a POC goes green. Report the failure and take it back to the PRD
66
79
 
67
80
  ### Dependency Hierarchy
68
81
 
@@ -106,6 +119,7 @@ Before adding any external dependency, all of these must be true:
106
119
  - Skipping POC validation for unproven ideas
107
120
  - POC-ing only the easy part while hand-waving the risky mechanism, or claiming a cost ("cheap"/"fast"/"constant") you never measured
108
121
  - Authoring a fixture/corpus that *guarantees* the result (a test that can't return the negative), or trusting a degenerate-looking number without auditing the harness for confounds — use real uncrafted data; the test must be able to fail
122
+ - Fitting a POC to pass (narrowed input, moved threshold, shrunk scope) instead of reporting the failure; starting module N+1 while module N is unproven
109
123
 
110
124
  ---
111
125
 
@@ -269,9 +283,9 @@ Copy this to any project's AGENTS.md. These are mandatory rules, not suggestions
269
283
  ```markdown
270
284
  ## Dev Rules
271
285
 
272
- **POC first.** Always validate logic with a ~15min proof-of-concept before building. Cover happy path + common edges. POC works → design properly → build with tests. Never ship the POC. **Aim the spike at the riskiest assumption, not the easy part; prove, don't assert measure anything you call "cheap"/"fast"/"constant," and claim only what the evidence supports (no big-mouthed conclusions measurement can falsify). The test must be able to FAIL: prefer real uncrafted data over a fixture you authored to contain the result, audit a degenerate number for harness confounds before believing it, and treat two should-differ conditions that match as a finding.**
286
+ **Spec first.** Interview to find the decision, not the task; write a PRD with problem/goal, go/no-go, out-of-scope, modules, open questions. POCs refine it.
273
287
 
274
- **Build incrementally.** Break work into small independent modules. One piece at a time, each must work on its own before integrating.
288
+ **POC first, one module at a time.** Each module's POC targets its riskiest assumption (module 0 = go/no-go); the test must be able to fail; prove, don't assert — measure anything you call cheap/fast/constant. No fitting to pass. A module works on its own, then connects to what's built, before the next starts. Never ship the POC.
275
289
 
276
290
  **Dependency hierarchy — follow strictly:** vanilla language → standard library → external (only when stdlib can't do it in <100 lines). External deps must be maintained, lightweight, and widely adopted. Exception: always use vetted libraries for security-critical code (crypto, auth, sanitization).
277
291
 
@@ -283,17 +297,3 @@ Copy this to any project's AGENTS.md. These are mandatory rules, not suggestions
283
297
 
284
298
  For full development and testing standards, see `.opencode/remember/AGENT_RULES.md`.
285
299
  ```
286
-
287
- ---
288
-
289
- ## AI Agent Instructions
290
-
291
- When working with this user:
292
- 1. **Interview before building** — extract the real goal and surface load-bearing decisions for sign-off before you execute (see [Operating Flow](#operating-flow))
293
- 2. **Provide step-by-step** instructions with clear explanations
294
- 3. **Include ready-to-run** scripts and commands
295
- 4. **Explain the "why"** behind technical recommendations
296
- 5. **Flag potential issues** before they become problems — name the assumption, don't bury it
297
- 6. **Suggest simpler alternatives** when appropriate
298
- 7. **Ask first** before touching auth, DB schema/migrations, CI, or settings; **never** commit secrets
299
- 8. **Always identify** which files will be affected by changes