@oneie/claude 0.3.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,75 @@
1
+ <!--
2
+ TEMPLATE — DESIGN PHASE. Copy to text/<slug>-plan.md, fill, delete this comment.
3
+ Owner: Opus · high (the decider — never delegated). Skills: typedb, signal where the
4
+ substrate is touched. This is the DESIGN phase of /do (see text/do-refined.md).
5
+ Runs AFTER PROMISE (text/<slug>.md) and SURVEY, BEFORE the plan (text/<slug>-todo.md).
6
+ -->
7
+
8
+ ---
9
+ title: {Human-readable title}
10
+ slug: {kebab-slug}
11
+ type: plan
12
+ tier: {trivial | simple | complex}
13
+ source_of_truth:
14
+ - text/{feature}.md # the promise this design must keep
15
+ - text/dictionary-plan.md # canonical names — reconcile against this
16
+ - schema/one.tql # only if the substrate is touched
17
+ ---
18
+
19
+ # {Title}
20
+
21
+ ## The promise (from FRAME)
22
+
23
+ {One line, copied from text/<feature>.md — the design exists to keep this promise.}
24
+
25
+ ## Reuse verdict (from SURVEY)
26
+
27
+ {expose | extend | build | drop} — {what already exists, what the real gap is. Only the gap gets designed.}
28
+
29
+ ## Design
30
+
31
+ ### Data shape
32
+ {What extends the existing schema. Reuse relations; add the minimum field. NEVER a parallel model.}
33
+
34
+ ### Types
35
+ {Flow from the schema. No hand-maintained second copy.}
36
+
37
+ ### API
38
+ {Which existing route family this joins. New route only if SURVEY said `build`.}
39
+
40
+ ### UI
41
+ {Which existing components / pages / navigation this composes. Empty / loading / error / edge states named here, not deferred to BUILD.}
42
+
43
+ ## Substrate reconciliation (gate — zero new core concepts without justification)
44
+
45
+ - [ ] Names exist in `dictionary.md` (no dead names)
46
+ - [ ] No new dimension / verb / type — or one-sentence justification: {…}
47
+ - [ ] No locked-rule break (6 dims, 6 verbs, 3 rules)
48
+
49
+ ## Pre-mortem (assume it shipped and failed — why?)
50
+
51
+ {Red-team the design. Walk every boundary. Name the assumptions that, if wrong, sink it.
52
+ Each failure mode below becomes a test in the todo's demo gate.}
53
+
54
+ | Failure mode | Likelihood | Becomes test |
55
+ |---|---|---|
56
+ | {how it could break} | {low/med/high} | {the assertion that catches it} |
57
+
58
+ ## Decisions (this, not that, because)
59
+
60
+ {Every non-obvious choice gets one line. Favour boring, proven shapes over clever ones.
61
+ A decision nobody wrote down is one the next person re-litigates.}
62
+
63
+ - **{choice}** over **{alternative}** — because {reason}.
64
+
65
+ ## Clarifications (CLARIFY gate — features/schema only)
66
+
67
+ {≤5 high-impact ambiguity questions and their answers, written here at design time.
68
+ NOT a second human gate — INTAKE is the one front-door checkpoint. This is decision capture.}
69
+
70
+ - **Q:** {scope / data-model / edge-case / naming question}
71
+ **A:** {the decision}
72
+
73
+ ## Out of scope
74
+
75
+ {What this explicitly does NOT do — the boundary that keeps the todo honest.}
@@ -0,0 +1,59 @@
1
+ ---
2
+ slug: {{slug}}
3
+ written: {{YYYY-MM-DD}}
4
+ proven: true
5
+ promise: text/{{slug}}.md
6
+ ---
7
+
8
+ # {{Feature Name}}
9
+
10
+ > Written after PROVE passes. Describes behavior that exists, not behavior that is planned.
11
+ > The promise (`text/{{slug}}.md`) is what this doc must match.
12
+
13
+ ## What it does
14
+
15
+ {{1–3 sentences. What the user/operator gets. Every claim here must be in the proven behavior.}}
16
+
17
+ ## How to use it
18
+
19
+ {{The golden path. Step-by-step. Present tense. Tested commands only.}}
20
+
21
+ ```bash
22
+ # Example — copy-pasteable, verified to work
23
+ ```
24
+
25
+ ## Reference
26
+
27
+ | Concept | Where |
28
+ |---------|-------|
29
+ | {{name}} | {{`file:line` or section link}} |
30
+ | Script | `.claude/scripts/{{relevant-script}}.sh` |
31
+ | Template | `text/template-{{template}}.md` |
32
+
33
+ ---
34
+
35
+ ## Runbook
36
+
37
+ ### Verify it's working
38
+
39
+ ```bash
40
+ # The proof command from the PROVE step — still valid as a health check
41
+ ```
42
+
43
+ ### Common issues
44
+
45
+ | Symptom | Cause | Fix |
46
+ |---------|-------|-----|
47
+ | {{symptom}} | {{cause}} | {{fix}} |
48
+
49
+ ### Rollback
50
+
51
+ {{What to undo if this needs to be reverted. Specific commands, not vague guidance.}}
52
+
53
+ <!--
54
+ TEACH stop rules (from do.md):
55
+ - Write AFTER PROVE passes (proven: true in frontmatter marks this)
56
+ - Match the promise: every user-facing claim must appear in text/{{slug}}.md
57
+ - Doc + runbook in one file; presence check is: test -f text/{{slug}}-doc.md
58
+ - do-reconcile.sh dictionary on this file before committing (no dead names)
59
+ -->
@@ -0,0 +1,43 @@
1
+ ---
2
+ slug: {{slug}}
3
+ surface: {{frontend|api|backend|substrate}}
4
+ cycle: {{C1}}
5
+ folder: {{one.ie/web|packages/sdk|channels}}
6
+ deliverables:
7
+ - {{D1 — what it asserts}}
8
+ ---
9
+
10
+ # Tests — {{slug}} · {{cycle}}
11
+
12
+ > One `expect()` per deliverable — assert the destination, not the path.
13
+ > Run: `bun run verify` in `{{folder}}/`
14
+ > Written first (before W3 edits land), verified at W4.
15
+
16
+ ## {{D1 — user-facing outcome}}
17
+
18
+ ```typescript
19
+ import { describe, it, expect } from 'vitest'
20
+ // import { {{thing}} } from '{{path}}'
21
+
22
+ describe('{{slug}} · {{deliverable}}', () => {
23
+ it('{{outcome a user would care about}}', async () => {
24
+ // arrange
25
+ // const input = ...
26
+
27
+ // act
28
+ // const result = await ...
29
+
30
+ // assert
31
+ // expect(result).toBe(...)
32
+ })
33
+ })
34
+ ```
35
+
36
+ <!--
37
+ Rules (from do.md testing policy):
38
+ - ≤1 test file per cycle
39
+ - Goal-based: assert shipped outcome, not implementation detail
40
+ - Vitest-first; add requires_playwright: true in todo frontmatter if browser needed
41
+ - N-variant split-test → winner mark(), losers warn(0.5)
42
+ - One import per test file (avoid cross-cycle coupling)
43
+ -->