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 +3 -0
- openwish/__main__.py +3 -0
- openwish/assets/artifacts.md +168 -0
- openwish/assets/legacy-skills.json +24 -0
- openwish/assets/policy.md +125 -0
- openwish/assets/skills/ow-align/SKILL.md +29 -0
- openwish/assets/skills/ow-consolidate/SKILL.md +32 -0
- openwish/assets/skills/ow-fast-forward/SKILL.md +32 -0
- openwish/assets/skills/ow-implement/SKILL.md +31 -0
- openwish/assets/skills/ow-onboard/SKILL.md +29 -0
- openwish/assets/skills/ow-plan/SKILL.md +30 -0
- openwish/assets/skills/ow-propose/SKILL.md +36 -0
- openwish/assets/skills/ow-review/SKILL.md +35 -0
- openwish/budgets.py +86 -0
- openwish/cli.py +188 -0
- openwish/integrations.py +133 -0
- openwish/model.py +127 -0
- openwish/scaffold.py +69 -0
- openwish/storage.py +147 -0
- openwish/terminal.py +156 -0
- openwish/validation.py +162 -0
- openwish/versions.py +64 -0
- openwish/views.py +52 -0
- openwish/workflow.py +259 -0
- openwish-0.3.1.dist-info/METADATA +260 -0
- openwish-0.3.1.dist-info/RECORD +30 -0
- openwish-0.3.1.dist-info/WHEEL +5 -0
- openwish-0.3.1.dist-info/entry_points.txt +2 -0
- openwish-0.3.1.dist-info/licenses/LICENSE +21 -0
- openwish-0.3.1.dist-info/top_level.txt +1 -0
openwish/__init__.py
ADDED
openwish/__main__.py
ADDED
|
@@ -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.
|