openwish 0.3.1__py3-none-any.whl

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.
openwish/__init__.py ADDED
@@ -0,0 +1,3 @@
1
+ """OpenWish: durable needs, bounded context, deliberate change."""
2
+
3
+ __version__ = "0.3.1"
openwish/__main__.py ADDED
@@ -0,0 +1,3 @@
1
+ from .cli import main
2
+
3
+ raise SystemExit(main())
@@ -0,0 +1,168 @@
1
+ # OW artifact reference
2
+
3
+ OW operates on need IDs. Asks stay in conversation. Stable IDs are `N-001`,
4
+ `S-001`, and `E-001`; Markdown records use TOML headers between `+++` lines.
5
+
6
+ ```text
7
+ openwish/
8
+ config.json # product and budgets (schema version 2)
9
+ installation.json # installed harnesses and per-file OW versions
10
+ policy.md # workflow and human communication
11
+ artifacts.md # this reference
12
+ needs/N-001.md # durable outcome and lifecycle
13
+ needs/N-001.state.json # current implementation revision and decisions
14
+ needs/N-001.review.json # latest direct verification results
15
+ specs/S-001/spec.md # behavioral contract, prerequisite/parent links
16
+ specs/S-001/design.md # technical design and authoritative need references
17
+ epics/E-001/design.md # bounded implementation increment, linked to specs
18
+ epics/E-001/tasks.json # ordered, verifiable work
19
+ knowledge/environment.md # current operational facts
20
+ ```
21
+
22
+ Run `ow init` for a terminal harness multi-select or `ow init --harness opencode
23
+ claude` for explicit selection. Re-running installs missing skills, overwrites
24
+ older versions, preserves equal versions, and asks before downgrading newer ones.
25
+ Existing project knowledge is preserved. `installation.json` is a bounded current
26
+ inventory, not a history; generated skills and adapters also carry version stamps.
27
+
28
+ ## Needs
29
+
30
+ Create with `ow new need N-001 --title "Monthly reconciliation"` and fill in:
31
+
32
+ ```toml
33
+ +++
34
+ id = "N-001"
35
+ title = "Monthly reconciliation"
36
+ currency = "current"
37
+ implementation = "open"
38
+ actor = "Operations staff"
39
+ outcome = "Reconcile a month's transactions without manually copying records."
40
+ acceptance = ["Representative reconciliation completes without retyping rows."]
41
+ confirmed_at = ""
42
+ verified_at = ""
43
+ +++
44
+ ```
45
+
46
+ Use an optional short body for essential constraints. Everything in a current
47
+ need enters the global context. Do not add an `ask` field or duplicate spec links.
48
+
49
+ If a need requires more implementation, run `ow reopen N-001`. Its ID and history
50
+ survive; implementation becomes open, revision increases, gates reset, and mode
51
+ returns to default. Reopening a retired need also reactivates it, so confirm that
52
+ intent first. Existing task results remain evidence; Plan assesses what now remains.
53
+
54
+ ## Specs and need references
55
+
56
+ `ow new spec S-001 --title "Transaction export"` creates both files. The contract
57
+ header in `spec.md` contains `id`, `title`, `implementation`, `depends_on = []`,
58
+ and `parent = ""`. The body states behavior and observable acceptance scenarios.
59
+
60
+ The **design** contains the need references:
61
+
62
+ ```toml
63
+ +++
64
+ id = "S-001"
65
+ needs = ["N-001"]
66
+ +++
67
+ ```
68
+
69
+ Below that header, explain how the design satisfies N-001 and preserves affected
70
+ constraints. The reference is authoritative here; the CLI derives the need's spec
71
+ list and all task lineage from it. Designs can reference multiple needs.
72
+ Prerequisite and containment graphs are separate and acyclic.
73
+
74
+ ## Epics and tasks
75
+
76
+ `ow new epic E-001 --title "Export implementation"` creates `design.md` with
77
+ `id`, `title`, and `specs = ["S-001"]`. Describe only this bounded increment.
78
+ Split larger work into multiple task groups or epics; retain durable design in specs.
79
+
80
+ ```json
81
+ {
82
+ "tasks": [
83
+ {
84
+ "id": "E-001/T-001",
85
+ "title": "Export the selected month's transactions",
86
+ "group": 1,
87
+ "order": 1,
88
+ "depends_on": [],
89
+ "kind": "agent",
90
+ "status": "open",
91
+ "files": ["src/transactions/export.py"],
92
+ "acceptance": "Export contains exactly the selected month's records.",
93
+ "evidence": ""
94
+ }
95
+ ]
96
+ }
97
+ ```
98
+
99
+ Task status is `open | in-progress | blocked | done`; kind is `agent | manual`.
100
+ Task IDs are globally qualified, e.g. `E-002/T-001` can depend on `E-001/T-001`.
101
+ Group/order pairs are unique within work supporting a need, including across epics.
102
+ Prerequisites must have lower pairs; independent needs may reuse ordinal pairs.
103
+ `done` needs concise direct evidence. Do not invent human observations.
104
+
105
+ ## Need-owned decisions and review
106
+
107
+ A need's state contains only `revision`, `mode`, `no_work_reason`, and `gates`.
108
+ It has no title, ask, independent identity, stored need group, or copied work list.
109
+ Specs/epics/tasks are derived from need → spec design → epic links at read time.
110
+ Missing state for an imported need defaults to revision 1 with no approvals.
111
+
112
+ ```sh
113
+ ow context N-001 N-002
114
+ ow gate needs N-001 N-002 --by human
115
+ ow gate align N-001 N-002 --by human
116
+ ow gate implement N-001 N-002 --by human
117
+ ow ready N-001 N-002
118
+ ```
119
+
120
+ The IDs select needs for that command; they do not create a persistent grouping.
121
+ Human-facing confirmations discuss only the current decision, using policy's
122
+ numbered questions and lettered choices. Do not preview later gates in Propose.
123
+
124
+ For explicit fast-forward, use `ow new need ... --fast-forward`, `ow reopen
125
+ N-001 --fast-forward`, or `ow mode fast-forward N-001 N-002` for already-open
126
+ needs. Then record gates with `--by fast-forward`. Changing mode invalidates
127
+ authority; reopening never inherits fast-forward implicitly.
128
+
129
+ If existing implementation already satisfies a need, set its state's concise
130
+ `no_work_reason` before alignment rather than inventing epics. This does not waive
131
+ existing unfinished tasks or verification. Redundant asks require no records at all.
132
+
133
+ ```sh
134
+ ow record-review N-001 --summary "Monthly reconciliation no longer requires copying rows" \
135
+ --check "python -m unittest tests.test_export: 6 passed in 0.4s" --covered-need N-001
136
+ ow summary N-001
137
+ ow gate review N-001 --by human
138
+ ow approve N-001
139
+ ```
140
+
141
+ Include every ID in `ow context N-001`'s `review_needs` with repeated
142
+ `--covered-need` flags. They include affected adjacent current needs. One command
143
+ can review multiple selected needs; each keeps its own latest bounded result.
144
+ Use `--verdict blocked` for unresolved findings. Passing review requires all
145
+ relevant tasks done and is bound to plan, source content, and task evidence.
146
+
147
+ `approve` preserves currency. A shared spec becomes approved only when every
148
+ linked current need is approved. `ready` exposes missing authority per task and
149
+ continues to list other authorized work. It includes spec titles and the needs
150
+ they address. `summary` provides need → spec → outcome context for final updates.
151
+
152
+ ## Bounds and consolidation
153
+
154
+ Config has `version: 2`, `product`, `needs_token_budget` (6000), `epic_limit` (8),
155
+ and `code_exceptions`. A source exception is an exact path with a reason:
156
+
157
+ ```json
158
+ {"path": "src/routes.py", "kind": "low-complexity", "reason": "Flat declarative dispatch with no nested logic."}
159
+ ```
160
+
161
+ Source data formats are exempt. A `data` exception must name a data-format file.
162
+ No exception permits an OW artifact of 500 or more lines.
163
+
164
+ After completion, promote durable facts and remove obsolete completed epics once
165
+ active references and prerequisites are reconciled. Preserve the only historical
166
+ copy in Git before removing it. Keep needs, one current state, and one latest
167
+ review; never append requests, episodes, or review histories. Retired needs and
168
+ their sidecars can leave the working tree once live references are reconciled.
@@ -0,0 +1,24 @@
1
+ {
2
+ "version": "0.2.0",
3
+ "sha256": [
4
+ "099e7908eafe41baa97a10c34d43a6bcdf99ac83d785ca54a2c25d12cdae469d",
5
+ "0cde8dd1021e96ab95d72a5cb43cece316a3703812bbf7dfb52af67d99ec4ce5",
6
+ "1961563ab726496ccc91f192a140d8678a81be3ae7303649f33d2f057018089e",
7
+ "19b64dc65bb57c5c0c4ce200dd894b6034ade71fa2ad5407c2bfc1b95955b778",
8
+ "268108635a9551ffb773f41a2fa51c58de0008d5cbcdbb4e2cd02b14761d616e",
9
+ "36605a0ddbe29cdf33009b1a0b1575a5ed19ed2169c540394aadc5273a38d2e0",
10
+ "368a1aef5f08f10d789b3b8004503d38c63b857b4ba8e19a9ab57c8835563880",
11
+ "525954e9d63f47e95daef7225dc61fbb6738d97f64a5108af65f3e9eb8304ca2",
12
+ "5588e1ec649089d2581df5e6c08d1dbec5d5628548a4db051fb7c019c68fca90",
13
+ "6759ce71fd3476cf9ce03d9151acad8a4d5a50007dbcf04b2bd27e2de6b4bf40",
14
+ "82f0fef476d6458dda274b0785c3e05e8c5df5d9d9e37e799d6fc74af0fd0f92",
15
+ "9623eddcbe97444bf212f235bbc04b42963fc146c3fe72b828639327466588ca",
16
+ "a1499d95abd8447558c535fe5554adcc3c9b988a0a39264a6283d430effe1e94",
17
+ "a5a72ea6b86fb9a1bcb325b64658fa919d70c844da1ae994ea1f6f37ea5d9015",
18
+ "b6d86caf1fc99a3a2d1cace882a771c5d5aa14058e6a042942f07b5ae65ad8f5",
19
+ "c37a168c722867133ce22bb3b66ed3eae0466831f809492b8a2ae42b5f563a34",
20
+ "c50f9751f380835a3f79f90355ab5ea7de92a6abd4f7849fb7f6bb395129573a",
21
+ "e14839c5cc26ba1ba2d9a8db92df4e4d98f6c95e8d5c90b5622e9777247e9d66",
22
+ "e8cc262493457910e6a44d09b02b77c6359dc8f8b377353f362bcb65654b6c43"
23
+ ]
24
+ }
@@ -0,0 +1,125 @@
1
+ # OpenWish policy
2
+
3
+ OpenWish (OW) practices Need-Driven Development (NDD). Its durable unit is a
4
+ need. Humans express asks in conversation; OW creates, revises, or reopens needs.
5
+ Do not persist asks, ask summaries, request logs, or separate change records.
6
+ Default scope is one product/domain in one repository, including a monorepo.
7
+
8
+ ## Needs and current truth
9
+
10
+ - Capture actor, desired outcome, pain reduced/gain delivered, and observable
11
+ acceptance. Distinguish suggested solutions from genuine constraints.
12
+ - Currency is `current | retired`. Implementation is
13
+ `open | in-progress | review | approved`. These dimensions are independent.
14
+ - An approved implementation does not retire its need. Load **all current needs**,
15
+ including approved ones, with `ow context`. Retrieve relevant retired needs
16
+ when interpreting history. Never silently retire or weaken a need.
17
+ - Match existing intent before creating a need. If the outcome is already met,
18
+ explain that; do not invent work or create a duplicate need to represent an ask.
19
+ - Reopen an existing need when its outcome requires further implementation.
20
+ Preserve its ID. Create a new need only for a distinct durable outcome.
21
+ - `confirmed_at` records human confirmation of intent; `verified_at` records the
22
+ latest accepted implementation check. Reading a file does not advance either.
23
+ - Existing behavior is evidence of what exists, not proof of what humans want.
24
+ Passing tests establish delivery evidence, not automatically real-world benefit.
25
+
26
+ ## Human communication
27
+
28
+ Show only the decision relevant to the current stage. In Propose, confirm the
29
+ need interpretation without announcing later approval gates or asking about Plan.
30
+ Keep process instructions internal unless the human asks how the workflow works.
31
+
32
+ For every clarification or confirmation:
33
+
34
+ 1. Number questions `1.`, `2.`, `3.` and state the relevant need IDs and conflict.
35
+ 2. Offer the best two or three meaningful choices labeled `A.`, `B.`, `C.`.
36
+ In documentation, indent these choice lines by two spaces.
37
+ 3. Put `(Recommended)` **before the preferred choice text**, after its letter.
38
+ 4. Add a concise effect clause when it helps explain what will happen to needs
39
+ or the product. Do not invent an option just to fill three slots.
40
+ 5. Prefer preserving existing intent when it already delivers the desired outcome.
41
+ Recommendations follow the evidence, rather than automatically rejecting asks.
42
+
43
+ Example when N-001 already provides local monthly trends:
44
+
45
+ > 1. N-001 already provides monthly trends and requires data to remain local.
46
+ > Uploading transactions conflicts with that requirement. What should I do?
47
+ > A. (Recommended) Keep N-001 as-is. No new need or product modification.
48
+ > B. Add third-party upload while keeping trends local. Revise N-001 to allow
49
+ > uploads only to approved third-party domains.
50
+ > C. Add third-party upload and trend computation with local viewing. Revise
51
+ > N-001's local-only constraint for approved third-party domains.
52
+
53
+ Final updates lead with **need → spec → outcome**, followed by direct verification
54
+ and any remaining blocker. Read the spec design's need references; do not report
55
+ only epic/task IDs or assume that humans remember why a task matters. For example:
56
+
57
+ > N-001 — Local monthly insights, through S-001 — Trend analysis: monthly trends
58
+ > now compute locally. Regression checks passed; financial records stay on-device.
59
+
60
+ ## Workflow and authority
61
+
62
+ 1. Propose: confirm the need interpretation; automatically enter Align afterward.
63
+ 2. Align: reconcile current needs, code, contracts, and designs; get design approval.
64
+ 3. Plan: inspect code, update epics/tasks, and obtain implementation authority.
65
+ 4. Implement: execute ready work, verify, repair, and continue independent work.
66
+ 5. Review: AI reviews outcomes; humans explicitly accept final results by default.
67
+
68
+ Record decisions against need IDs, e.g. `ow gate needs N-001 N-002 --by human`,
69
+ only after the human actually made that decision for the current definitions.
70
+ The CLI records conversation authority; it does not authenticate the speaker.
71
+
72
+ An explicit `/fast-forward` enables that mode on the selected needs' current
73
+ implementation revisions. Follow all phases and checks, recording gates with
74
+ `--by fast-forward` without approval or confirmation prompts, including final
75
+ acceptance. Never invent human confirmation dates, test results, or manual actions.
76
+ Reopening a need resets authority to default unless fast-forward is explicitly
77
+ requested again. Mode applies to need revisions, not subsequent unrelated asks.
78
+
79
+ Ask only for genuinely blocking ambiguity, conflicting needs, missing access, or
80
+ manual verification. Use the numbered choices above. Continue independent ready
81
+ work before presenting human blockers; pending acceptance of one result is not
82
+ a reason to stop other authorized work. Do not ask to run AI review.
83
+
84
+ ## Design and execution
85
+
86
+ - Classify conflicts: need/need, need/implementation, spec/spec, or task/design.
87
+ Show concrete scenarios and adjacent needs. Compatible needs require adapting
88
+ the solution rather than silently discarding a constraint.
89
+ - Spec **designs** own the authoritative need references. Specs may address API
90
+ entities, UI modules, or cross-cutting capabilities. Need/spec links are many-to-many.
91
+ Keep `parent` containment separate from prerequisite `depends_on` links.
92
+ - Epics reference specs; tasks belong to epics. Work is derived through these
93
+ links from selected needs, without a separate persistent work container.
94
+ - Tasks have explicit prerequisites and increasing `(group, order)` pairs across
95
+ the work for a need. No lower ordinal depends on a higher one. Execute the
96
+ earliest authorized ready task; independent later work can pass a manual blocker.
97
+ - Preserve approved intent when resolving technical inconsistencies. Material
98
+ intent/design revisions return to the relevant phase; stale receipts cannot
99
+ authorize newer work. Task progress itself does not invalidate a plan.
100
+ - Prefer the smallest coherent implementation, security, reliability,
101
+ maintainability, functional cores, and established dependencies.
102
+ - Use meaningful verification with a routine feedback loop under five minutes.
103
+ Identify necessary slower checks explicitly. Missing observations are not passes.
104
+ - Keep direct results and useful pointers, not evidence chains or repeated reviews
105
+ of reviews. Review the implementation and adjacent needs, not just checkboxes.
106
+
107
+ ## Bounds and consolidation
108
+
109
+ - Every OW knowledge/planning artifact is **under 500 lines**, including JSON.
110
+ - All current needs together stay under 500 lines and the configured estimated
111
+ token budget (default 6,000). `ow context` derives a complete view without truncation.
112
+ - Code has an **under 500 LOC soft target** and **under 1000 LOC hard maximum**.
113
+ Source data formats are exempt; low-complexity source exceptions need exact
114
+ paths and reasons. These exemptions never bypass OW artifact limits.
115
+ - LOC uses nonblank physical lines; estimated tokens use UTF-8 bytes/3. They are
116
+ budgeting proxies, not proofs of low complexity or model-specific token counts.
117
+ - Overwrite latest summaries, compact before 400 lines, and bound retained epics
118
+ (default eight). Git stores history. Do not build append-only journals or archives.
119
+ - Promote current contracts, environment profiles, and secret references before
120
+ removing completed execution detail. Retain unresolved limitations and checks.
121
+ - Tighten wording without losing acceptance conditions. Retiring or semantically
122
+ merging needs requires intent confirmation under the selected workflow.
123
+
124
+ Read `openwish/artifacts.md` when editing artifacts. Run `ow check` before gates
125
+ or final review. Structural validation complements semantic alignment and review.
@@ -0,0 +1,29 @@
1
+ ---
2
+ name: ow-align
3
+ description: Reconcile OpenWish needs with all current intent and affected implementations, then update spec contracts and designs. Use before planning or when approved intent evolves.
4
+ ---
5
+
6
+ # Align
7
+
8
+ Read `openwish/policy.md` and `ow context N-001 ...` for the selected needs.
9
+ Check their need-confirmation receipts using `ow status --json`. Return to
10
+ Propose when material intent lacks required confirmation in default mode.
11
+
12
+ 1. Review all current needs, including approved implementations. Retrieve relevant
13
+ retired needs without making them binding again. Read affected prerequisite
14
+ and consumer contracts, designs, and code; expand semantic adjacency as needed.
15
+ 2. Distinguish incompatible needs from an implementation that cannot yet satisfy
16
+ compatible ones. Adapt solutions within intent. For real human decisions,
17
+ present numbered questions with two or three A/B/C choices, prefix the preferred
18
+ choice text with `(Recommended)`, and explain effects concisely.
19
+ 3. Update behavioral specs and designs. Each design contains authoritative
20
+ `needs = ["N-001", ...]` references and explains how its approach satisfies them.
21
+ Keep entity/module/cross-cutting ownership, containment, and dependencies clear.
22
+ 4. Explain the proposed solution using need → spec → outcome and affected adjacent
23
+ needs. Record only consequential trade-offs. For a need requiring verification
24
+ but no implementation, set its state's `no_work_reason` before alignment.
25
+ 5. Run `ow check`. In default mode, ask for this design's approval using the
26
+ numbered-choice format; after approval record `ow gate align N-001 ... --by
27
+ human`. In fast-forward mode use `--by fast-forward` without confirmation.
28
+ 6. Continue internally to `ow-plan`. A material need revision returns to Propose;
29
+ never silently rewrite an earlier human decision or create a change record.
@@ -0,0 +1,32 @@
1
+ ---
2
+ name: ow-consolidate
3
+ description: Compact OpenWish epics and knowledge while preserving durable needs, current spec designs, and acceptance conditions. Use after implementation or when context budgets approach their limits.
4
+ ---
5
+
6
+ # Consolidate
7
+
8
+ Read `openwish/policy.md`, `ow status`, and `ow context`. If budgets already fail,
9
+ inspect reported files directly before requesting full context.
10
+
11
+ 1. Identify completed epics/tasks, duplicate wording, stale facts, and near-limit
12
+ files. Do not scan all Git history or preserve conversation asks as artifacts.
13
+ 2. Promote current contracts/rationale to spec designs, operational profiles and
14
+ secret references to knowledge, and lasting outcome constraints to their needs.
15
+ Keep spec design need references intact so later updates retain their purpose.
16
+ 3. Remove completed ephemeral instructions once relevant resulting truth is
17
+ preserved. Keep unresolved limitations, manual checks, and prerequisites visible.
18
+ 4. Tighten wording while preserving IDs and acceptance. Merging distinct outcomes
19
+ or retiring a need changes intent: use Propose under the selected workflow.
20
+ Clarifications use numbered questions, two or three A/B/C choices, and
21
+ `(Recommended)` before the preferred choice text, with concise useful effects.
22
+ 5. Preserve the only historical copy in Git before removing completed epics.
23
+ Resolve live references first. Keep one current state and latest review per
24
+ need; do not accumulate asks, execution containers, histories, or archive indexes.
25
+ 6. Keep all current needs globally complete. Splitting files does not solve an
26
+ oversized register. If safe compaction cannot fit, clarify product boundaries
27
+ or genuinely redundant needs without silently weakening intent.
28
+ 7. Run `ow check`; inspect stale approvals after semantic edits. Report a compact
29
+ size summary plus the affected needs/specs and any current decision required.
30
+
31
+ Routine bounds and replacing latest summaries apply in every phase even when
32
+ this optional semantic maintenance skill is never invoked.
@@ -0,0 +1,32 @@
1
+ ---
2
+ name: ow-fast-forward
3
+ description: Run OpenWish needs through NDD without approval prompts, including final acceptance. Use only for an explicit human fast-forward request or explicit instruction to skip OW approvals.
4
+ disable-model-invocation: true
5
+ ---
6
+
7
+ # Fast-forward
8
+
9
+ Read `openwish/policy.md`. This grants explicit authority for the selected needs'
10
+ current implementation revisions. Follow the same quality phases without asking
11
+ for confirmation, design approval, implementation permission, or final acceptance.
12
+
13
+ 1. Interpret the ask against existing needs. Keep the ask in conversation; do not
14
+ create a request/change record, ask summary, or independent execution container.
15
+ 2. Reuse existing needs. If implementation must resume, use `ow reopen N-001 ...
16
+ --fast-forward`. For open needs use `ow mode fast-forward N-001 ...`. Create a
17
+ distinct new need only when necessary with `ow new need ... --fast-forward`.
18
+ If current outcomes already satisfy the request, explain that and do no extra work.
19
+ 3. Follow Propose, Align, Plan, Implement, and Review, reading each skill on entry.
20
+ Record gates with `ow gate STAGE N-001 ... --by fast-forward`. Skip all approval
21
+ questions; do not fabricate human confirmation or verification dates.
22
+ 4. Resolve routine decisions from all current needs and minimal coherent work.
23
+ For genuine blocking ambiguity or contradictory intent, first exhaust
24
+ independent work, then use numbered questions and the best two or three A/B/C
25
+ choices, with `(Recommended)` before the preferred text and concise effects.
26
+ 5. Complete actual verification and review. This mode does not manufacture access,
27
+ manual observations, or passing checks. Never mark unfinished tasks done.
28
+ 6. After a passing review, record fast-forward acceptance and approve the needs.
29
+ Report need → spec → outcome and direct evidence without another approval prompt.
30
+
31
+ Future reopening defaults to normal human-controlled workflow unless explicitly
32
+ fast-forwarded again. This mode is not authority for unrelated future needs.
@@ -0,0 +1,31 @@
1
+ ---
2
+ name: ow-implement
3
+ description: Implement authorized OpenWish needs in dependency order, continuing independent ready work until completion or genuine human blockers. Use to implement or resume NDD work.
4
+ ---
5
+
6
+ # Implement
7
+
8
+ Read `openwish/policy.md`, `ow context N-001 ...`, and `ow ready N-001 ...`.
9
+ Authority and progress belong to needs. Follow each need's explicit mode and
10
+ revision; missing authority blocks only affected work, not other authorized tasks.
11
+
12
+ 1. Select the lowest ready `(group, order)` task. Load its epic and spec designs,
13
+ including the spec's need references, relevant code, and acceptance conditions.
14
+ 2. Mark it in-progress, implement the smallest coherent solution, and preserve all
15
+ current needs and existing user work. Respect code and artifact budgets.
16
+ 3. Run meaningful checks, inspect results, and record concise direct evidence
17
+ before marking the task done. Never invent a human observation.
18
+ 4. Continue using `ow ready` while authorized work remains. A pending review,
19
+ completed epic, or independent manual blocker does not justify stopping.
20
+ Task prerequisites, not merely earlier ordinals, determine blocking.
21
+ 5. Repair defects within approved intent. Material need/design revisions return
22
+ to the relevant earlier phase; refresh stale authority under the selected mode.
23
+ 6. When only genuine human blockers remain, explain the affected need and spec,
24
+ then ask numbered questions with two or three A/B/C choices. Prefix the
25
+ preferred choice text with `(Recommended)` and describe useful effects briefly.
26
+ 7. When all relevant work is done, automatically enter `ow-review`. Continue
27
+ remediation and appropriate checks without asking permission for AI review.
28
+
29
+ Updates and handoffs lead with the need's purpose and the spec delivering it,
30
+ then the result, verification, and remaining blocker. Use `ow summary N-001 ...`.
31
+ Epic/task IDs may support the explanation but never replace need/spec context.
@@ -0,0 +1,29 @@
1
+ ---
2
+ name: ow-onboard
3
+ description: Adopt OpenWish by mapping an existing repository to a short set of candidate needs and spec designs, distinguishing inference from confirmed intent. Use to onboard a product or monorepo into NDD.
4
+ ---
5
+
6
+ # Onboard
7
+
8
+ Initialize with `ow init --harness HARNESS` if needed. Read `openwish/policy.md`
9
+ and `openwish/artifacts.md`. Default to one product/domain in this repository.
10
+
11
+ 1. Inspect product descriptions, interfaces, important user journeys, code, tests,
12
+ and deployment configuration deliberately; avoid loading the whole repository.
13
+ 2. Propose a short set of candidate needs with actors, outcomes, gains/pains,
14
+ acceptance, and uncertainties. Label inference. Do not persist asks or turn
15
+ onboarding into a change record. Existing behavior does not establish intent.
16
+ 3. Reuse established need IDs and confirmed definitions on repeated onboarding.
17
+ Reopen needs requiring work; preserve approved needs whose outcomes remain met.
18
+ 4. In default mode, confirm the candidate needs with numbered questions and two
19
+ or three A/B/C choices. Prefix the preferred text with `(Recommended)` and
20
+ explain effects briefly. Discuss only current need confirmation, not later gates.
21
+ Explicit fast-forward skips confirmation and leaves inferred intent unconfirmed.
22
+ 5. Map contracts and technical designs to needs; put authoritative need references
23
+ in spec designs. Use open for unverified implementation, in-progress for active
24
+ work, review for verified candidates, and approved only after accepted results.
25
+ 6. Capture verified environment profiles and secret references in durable knowledge.
26
+ Identify gaps/manual observations without inventing tasks to rewrite working code.
27
+ 7. Continue through the workflow for those needs. Set `no_work_reason` when only
28
+ verification remains. Explain results by need and spec, with the next current
29
+ action or required decision. Keep every artifact and global intent bounded.
@@ -0,0 +1,30 @@
1
+ ---
2
+ name: ow-plan
3
+ description: Plan the remaining work for OpenWish needs through spec designs, small epics, and dependency-ordered tasks. Use after alignment or to repair a stale execution plan.
4
+ ---
5
+
6
+ # Plan
7
+
8
+ Read `openwish/policy.md`, `ow context N-001 ...`, and affected spec designs.
9
+ Verify fresh alignment receipts for the selected needs with `ow status --json`.
10
+
11
+ 1. Inspect current code, conventions, verification commands, and operational
12
+ constraints. Determine what remains for the needs; reuse working behavior.
13
+ 2. Create/update bounded epic designs referencing specs. Preserve the complete
14
+ need → spec design → epic → task relationship. Do not create a separate work
15
+ container or stored ask. Split large epics into useful task groups.
16
+ 3. Give tasks concrete acceptance, likely files, kind, prerequisites, and increasing
17
+ `(group, order)` pairs across all work for a need. Cross-epic prerequisites are
18
+ explicit; no lower ordinal can depend on a higher one. Inspect the actual DAG.
19
+ 4. Prefer minimal coherent increments and functional cores. Put indispensable
20
+ manual observations late, keeping independent agent work executable. Target
21
+ meaningful routine verification under five minutes; identify necessary slower checks.
22
+ 5. Repair technical inconsistencies against approved designs and all affected
23
+ needs. Material intent/design revisions return to the relevant earlier phase.
24
+ Reopened needs may retain old done tasks; plan only what now remains.
25
+ 6. Run `ow check`. Explain the remaining work by need and spec. In default mode,
26
+ ask for implementation authority with a numbered question and two or three
27
+ A/B/C choices, marking the preferred choice `(Recommended)` before its text.
28
+ 7. Record `ow gate implement N-001 ... --by human` after authorization, or
29
+ `--by fast-forward` without asking in that mode. Continue to `ow-implement`.
30
+ Execution authority for shared work must cover all affected open needs.
@@ -0,0 +1,36 @@
1
+ ---
2
+ name: ow-propose
3
+ description: Interpret a software ask against existing OpenWish needs, creating or reopening needs only when necessary. Use to clarify desired outcomes or revise NDD intent.
4
+ ---
5
+
6
+ # Propose
7
+
8
+ Read `openwish/policy.md` and `ow context` from the project root. Initialize OW
9
+ if needed. Load all current needs, including approved ones, and inspect relevant
10
+ spec designs/code to distinguish a new need from an already-satisfied outcome.
11
+
12
+ 1. Identify actor, desired gains/pains, observable acceptance, and genuine
13
+ constraints. Treat a requested mechanism as a candidate solution.
14
+ 2. First check whether an existing need already covers the outcome. If it is met,
15
+ recommend keeping the need/product as-is where appropriate. Do not create a
16
+ duplicate need, reopen working behavior, or persist the ask merely to track it.
17
+ 3. If work is needed for the same outcome, revise/reopen the existing need under
18
+ its stable ID. Create a new need only for a distinct durable outcome. Present
19
+ material conflicts and affected adjacent needs before modifying constraints.
20
+ 4. Ask numbered questions with two or three choices, `A.`, `B.`, `C.`. Put
21
+ `(Recommended)` before the preferred choice text. Add concise effects on needs
22
+ and implementation when useful. Recommendations depend on existing intent and
23
+ evidence; do not automatically ignore a request for an unmet outcome.
24
+ 5. In default mode, confirm only the proposed need interpretation and acceptance.
25
+ Do not mention later approvals, Plan gates, or implementation authorization in
26
+ this confirmation. In explicitly selected fast-forward mode, skip confirmation
27
+ and clarify only genuinely blocking ambiguity using the same question format.
28
+ 6. Create/revise/reopen the agreed needs using `openwish/artifacts.md`. Store their
29
+ durable definitions, not the original ask or an ask summary. Reopening resets
30
+ authority; explicitly set fast-forward again only when requested.
31
+ 7. Run `ow check`, then `ow gate needs N-001 ... --by human` after actual
32
+ confirmation, or `--by fast-forward` when authorized. Continue internally to
33
+ `ow-align`; do not add another permission question or preview its gates.
34
+
35
+ If there is no need revision or unfinished work, provide a concise explanation
36
+ using the existing need and spec, then finish without generating artifacts.
@@ -0,0 +1,35 @@
1
+ ---
2
+ name: ow-review
3
+ description: Review implemented OpenWish needs and affected regressions, remediate defects, and present concise need/spec outcomes for acceptance. Use after implementation or to refresh verification.
4
+ ---
5
+
6
+ # Review
7
+
8
+ Read `openwish/policy.md`, `ow context N-001 ...`, affected spec designs and their
9
+ need references, task evidence, and the actual code diff. Review from intent.
10
+
11
+ 1. Check selected needs and affected adjacent current needs, including previously
12
+ approved ones. Verify contracts, error paths, security, reliability, and
13
+ maintainability with meaningful evidence. Distinguish delivery from user outcomes.
14
+ 2. Repair defects within approved intent and rerun affected checks. Material
15
+ revisions return to the appropriate phase. Continue unfinished authorized work
16
+ before requesting any final acceptance; never invent manual observations.
17
+ 3. Run `ow check`. Record the latest direct review using `ow record-review N-001
18
+ ... --summary "user outcome" --check "command/observation: result" --covered-need
19
+ N-001 ...`. Include every context manifest `review_needs` ID. Use `--verdict
20
+ blocked` for unresolved findings. Each need owns its latest bounded review.
21
+ 4. Passing review requires all relevant tasks done. Repository, plan, or evidence
22
+ edits afterward require refreshed verification and a replacement review.
23
+ 5. Present a concise result using **need → spec → outcome**, then verification and
24
+ limitations. Use `ow summary N-001 ...`; read S-001's design to identify N-001.
25
+ Do not report only task completion or assume the human remembers the purpose.
26
+ 6. In default mode, after available authorized work is exhausted, ask explicitly
27
+ for final acceptance using a numbered question with two or three A/B/C choices
28
+ and `(Recommended)` before the preferred choice text. After acceptance run
29
+ `ow gate review N-001 ... --by human`, then `ow approve N-001 ...`.
30
+ 7. In fast-forward mode, skip that confirmation: record the passing review,
31
+ `ow gate review N-001 ... --by fast-forward`, and `ow approve N-001 ...`.
32
+ Attribute acceptance to fast-forward, not explicit human review.
33
+
34
+ Needs remain current and binding. Follow-up work reopens existing needs or creates
35
+ distinct new ones; redundant asks generate no records. Keep one latest review.