wdi-method 0.6.26 → 0.6.28
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 +65 -0
- package/README.de.md +262 -0
- package/README.es.md +262 -0
- package/README.fr.md +262 -0
- package/README.id.md +172 -101
- package/README.ja.md +172 -99
- package/README.ko.md +262 -0
- package/README.md +164 -97
- package/README.pt-BR.md +262 -0
- package/README.ru.md +262 -0
- package/README.zh-CN.md +262 -0
- package/bin/wdi-method.js +10 -1
- package/kit/.constitution/method/README.md +1 -1
- package/kit/.constitution/method/method-glossary.md +184 -184
- package/kit/.constitution/method/repo-guide.md +5 -0
- package/kit/.constitution/method/scripts/validate.py +61 -1
- package/kit/.constitution/method/why/README.md +201 -192
- package/kit/.constitution/method/why/portability.md +1 -1
- package/kit/skills/wdi-build/SKILL.md +4 -0
- package/kit/skills/wdi-daily-autopilot/SKILL.md +4 -3
- package/kit/skills/wdi-daily-what-to-build/SKILL.md +1 -1
- package/kit/skills/wdi-init/SKILL.md +231 -231
- package/kit/skills/wdi-prune-or-archive/SKILL.md +1 -1
- package/kit-overlay/AGENTS.md +13 -6
- package/kit-overlay/README.md +1 -1
- package/kit-overlay/portability.md +1 -1
- package/kit-overlay/repo-guide.md +5 -0
- package/package.json +26 -3
- package/scaffold/.control/custom-dispatch.yaml.example +14 -9
- package/README.zh.md +0 -189
package/README.md
CHANGED
|
@@ -1,191 +1,258 @@
|
|
|
1
1
|
# WDI Method
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
[Changelog](CHANGELOG.md) | [Contributing](CONTRIBUTING.md) | [License](LICENSE) | [Security](SECURITY.md) | [Privacy](PRIVACY.md)
|
|
3
|
+
> A review layer on top of BMad: documents a human reads to check technical decisions before code is written, sized to what the change actually deserves.
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
[English](README.md) | [Bahasa Indonesia](README.id.md) | [简体中文](README.zh-CN.md) | [日本語](README.ja.md) | [한국어](README.ko.md) | [Español](README.es.md) | [Deutsch](README.de.md) | [Français](README.fr.md) | [Português (Brasil)](README.pt-BR.md) | [Русский](README.ru.md)
|
|
6
|
+
[Website](https://wiradelta.id/wdi-method/docs/) | [Changelog](CHANGELOG.md) | [Contributing](CONTRIBUTING.md) | [License](LICENSE) | [Security](SECURITY.md) | [Privacy](PRIVACY.md)
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
[BMad](https://github.com/bmad-code-org/BMAD-METHOD) writes documents for AI agents. WDI Method adds documents that many roles already read: use cases, C4 diagrams, API and database lists, and design documents. It wraps BMad without replacing it: each WDI skill hands the writing to a BMad skill, then checks the result against the method's guides.
|
|
9
11
|
|
|
10
12
|
> This repository is **public and generic**. It MUST NOT carry a client name, a commercial product name, or a link to a private repository. Product identity lives entirely in the repository that installs it.
|
|
11
13
|
|
|
12
14
|
---
|
|
13
15
|
|
|
14
|
-
##
|
|
16
|
+
## AI-Driven Development (AiDD) vs. Vibe Coding
|
|
15
17
|
|
|
16
|
-
|
|
18
|
+
Vibe coding also uses specifications, but not consistently: each prompt session can differ, the documents are unstructured, and the process is not kept systematic. The result is much lower efficiency and effectiveness, and a real risk of accumulating technical debt. That is why a framework is needed.
|
|
17
19
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
│ 3. Slicing & Implementation: Skills Engines (mattpocock/skills) │
|
|
28
|
-
│ to-spec & to-tickets cut vertical tracer-bullets; implement runs TDD │
|
|
29
|
-
└─────────────────────────────────────────────────────────────────────────┘
|
|
30
|
-
```
|
|
20
|
+
In WDI Method, AI-Driven Development (AiDD) runs in one order: promises registered as FR and use cases, then the gates, then the spec cut into tickets with `to-spec` and `to-tickets`, then each ticket built test-first, then one PR the owner reviews and merges.
|
|
21
|
+
|
|
22
|
+
Three layers do the work:
|
|
23
|
+
|
|
24
|
+
| Layer | Who | What it does |
|
|
25
|
+
|---|---|---|
|
|
26
|
+
| 1. Documents for agents | [BMad](https://github.com/bmad-code-org/BMAD-METHOD) | Writes the product brief, the PRD, UX, and the architecture spine, each through a BMad skill |
|
|
27
|
+
| 2. Review layer | WDI Method | Wraps those skills, adds the documents other roles read, runs five human gates, links Goal → FR → UC → Ticket → Test, and checks the corpus for drift |
|
|
28
|
+
| 3. Tickets and code | Engines ([mattpocock/skills](https://github.com/mattpocock/skills)) | `to-spec` and `to-tickets` cut the spec into vertical tickets; `implement` builds each one test-first |
|
|
31
29
|
|
|
32
|
-
###
|
|
33
|
-
|
|
30
|
+
### Documents Follow Code
|
|
31
|
+
|
|
32
|
+
A document behind the code is in its expected state, not a defect. Where the owner chose the code over a document, the document is the one corrected. A document ahead of the code, such as a spec not built yet, is also normal.
|
|
34
33
|
|
|
35
34
|
---
|
|
36
35
|
|
|
37
|
-
##
|
|
36
|
+
## Install in 3 Steps
|
|
37
|
+
|
|
38
|
+
### Prerequisites
|
|
39
|
+
|
|
40
|
+
- Node.js 20 or later.
|
|
41
|
+
- Git.
|
|
42
|
+
- [uv](https://docs.astral.sh/uv/), which runs the method's Python 3.11+ validators.
|
|
43
|
+
- An agent platform: Claude Code, Cursor, Codex, and other agent platforms.
|
|
38
44
|
|
|
39
|
-
|
|
45
|
+
Run the three steps in order. The installer stops if step 1 or step 2 has not been done. All prompts offer defaults; pressing <kbd>Enter</kbd> accepts them.
|
|
40
46
|
|
|
41
47
|
### Step 1: Install BMad Method
|
|
42
|
-
Installs the discovery engine into your product repository:
|
|
43
48
|
```bash
|
|
44
49
|
cd /path/to/your/product-repo
|
|
45
50
|
npx bmad-method install
|
|
46
51
|
```
|
|
47
52
|
|
|
48
|
-
### Step 2: Add the Six
|
|
49
|
-
Install the
|
|
53
|
+
### Step 2: Add the Six Engines
|
|
54
|
+
Install the engines into your repository (choose either "copy" or "symlink"):
|
|
50
55
|
```bash
|
|
51
56
|
npx skills@latest add mattpocock/skills
|
|
52
57
|
```
|
|
53
|
-
*Select all six engines
|
|
58
|
+
*Select all six engines the method drives:* `to-spec`, `to-tickets`, `implement`, `tdd`, `code-review`, and `domain-modeling`.
|
|
54
59
|
|
|
55
|
-
> **Why the Claude Code
|
|
60
|
+
> **Why the Claude Code Plugin Is Not Enough:** Three of the six engines (`to-spec`, `to-tickets`, `implement`) ship with `disable-model-invocation: true`. On every install and update, WDI Method removes that line from the copies in your repo, so `wdi-build` and `wdi-autopilot` can run them. It cannot edit a user-level plugin, so the installer stops until the engines are in the repo. `--skip-engines-check` skips this check.
|
|
56
61
|
|
|
57
62
|
### Step 3: Install WDI Method
|
|
58
|
-
Launches the interactive installer and
|
|
63
|
+
Launches the interactive installer and places the skills where each of your agent platforms reads them:
|
|
59
64
|
```bash
|
|
60
65
|
npx wdi-method
|
|
61
66
|
```
|
|
62
|
-
*(
|
|
67
|
+
*(Non-interactive: `npx wdi-method install --yes --agents claude-code --product "Your Product"`)*
|
|
68
|
+
|
|
69
|
+
> **What the installer changes in BMad:** The installer also turns off model invocation for 13 BMad build and sprint skills that the engines replace, and adds matching deny rules to `.claude/settings.json`. You can still run them by typing the command.
|
|
63
70
|
|
|
64
71
|
### Your First Command: `/wdi-help`
|
|
65
|
-
Inside your
|
|
72
|
+
Inside your coding agent, run:
|
|
66
73
|
```text
|
|
67
74
|
/wdi-help
|
|
68
75
|
```
|
|
69
|
-
`wdi-help`
|
|
76
|
+
`wdi-help` reads `.control/registry/` and tells you the gate your project is at, the open specs, and the next skill, without guessing from the conversation.
|
|
70
77
|
|
|
71
78
|
---
|
|
72
79
|
|
|
73
80
|
## Three Workflow Options
|
|
74
81
|
|
|
75
|
-
WDI Method
|
|
82
|
+
WDI Method sizes its ceremony to the scale and risk of the task.
|
|
83
|
+
|
|
84
|
+
### Option A: Guided Delivery Track (G1 to G5)
|
|
85
|
+
For new products, major initiatives, and architectural changes. You start each gate skill; the agent names the next one and waits.
|
|
76
86
|
|
|
77
|
-
|
|
78
|
-
For new products, major initiatives, and architectural changes. A human reads **one rendered page** per gate and decides: *advance or refine*.
|
|
87
|
+
**One Decision Per Gate.** Each gate decides one thing. At G1 to G4 you read one rendered page; at G5 you read the spec's RTM rows. You answer a short checklist, and one "no" on a starred question holds the gate.
|
|
79
88
|
|
|
80
|
-
| Gate |
|
|
89
|
+
| Gate | Decides | Skill | What You Read | Owner Decision |
|
|
81
90
|
|---|---|---|---|---|
|
|
82
|
-
| **G1
|
|
83
|
-
| **G2
|
|
84
|
-
| **G3
|
|
85
|
-
| **G4
|
|
86
|
-
| **G5
|
|
91
|
+
| **G1 Problem** | What the problem is, whose it is, and why it earns work | `/wdi-problem` | `.what-rendered/_product-brief/brief.md` | Approve the problem framing |
|
|
92
|
+
| **G2 Product** | What is built, and how it feels to use | `/wdi-product`<br>`/wdi-ux` (optional) | `.what-rendered/_prd/<slug>/prd.md` | Approve the functional promises (FR) |
|
|
93
|
+
| **G3 Blueprint** | The whole picture of the product, once per product | `/wdi-blueprint` | `.how-rendered/blueprint.md` | Approve the architecture spine |
|
|
94
|
+
| **G4 Component** | How one component is built (skipped at `mode: catalog`) | `/wdi-component` | `.how-rendered/<pc>/SDD-<pc>.md` | Approve the software design |
|
|
95
|
+
| **G5 Release** | Whether it is done and proven | `/wdi-build` | The spec's RTM rows in `.control/generated/` and each ticket's test evidence | Accept the spec as done, or send it back |
|
|
96
|
+
|
|
97
|
+
**Refine, Do Not Advance.** One "no" on a starred (★) checklist question holds the gate. Refine the document and run the gate again; do not approve it with the plan to fix it later.
|
|
87
98
|
|
|
88
|
-
#### Two
|
|
89
|
-
- **`mode`** sets
|
|
90
|
-
- **`risk_accepted`** sets
|
|
99
|
+
#### Two Fields That Never Merge
|
|
100
|
+
- **`mode`** sets how deep each component's documents go. `catalog` (default): nothing beyond the blueprint, and G4 is skipped. `outline`: full flows for up to 3 use cases, local business rules, a decision summary. `guarded`: adds a `Failure Behaviour` section for every boundary and third-party integration documents. `deep`: adds robustness analysis, a contract per endpoint, a data dictionary, flow diagrams, and state machines.
|
|
101
|
+
- **`risk_accepted`** sets how hard the review is. `high` (you accept a lot of risk): the baseline structure and prose lenses. `medium`: adds the edge-case lens. `low`: adds the edge-case lens, and the code needs two reviewers who are not the builder.
|
|
102
|
+
|
|
103
|
+
If one field set both, the only way to get a thin document would be to write more risk into the risk record than you actually accept.
|
|
91
104
|
|
|
92
105
|
---
|
|
93
106
|
|
|
94
|
-
### Option B: Autonomous Daily Operations (
|
|
95
|
-
Once architecture is
|
|
107
|
+
### Option B: Autonomous Daily Operations (Daily Tier)
|
|
108
|
+
Once the architecture is in place, everyday work runs as a daily rhythm through four skills you type inside your agent:
|
|
96
109
|
|
|
97
|
-
1. **`/wdi-daily-what-to-build [reviewer] <notes
|
|
98
|
-
Turns
|
|
99
|
-
2. **`/wdi-daily-autopilot [self-review] [peer] [interval]
|
|
100
|
-
|
|
101
|
-
3. **`/wdi-daily-what-to-test [web|mobile|desktop]
|
|
102
|
-
|
|
103
|
-
4. **`/wdi-prune-or-archive [spec-
|
|
104
|
-
|
|
110
|
+
1. **`/wdi-daily-what-to-build [reviewer] <notes>`**
|
|
111
|
+
Turns hand-testing notes, QA observations, or bug reports into a reviewed spec or ticket on the development branch, for a later autopilot run. It stops there: it never commits, pushes, or starts the autopilot.
|
|
112
|
+
2. **`/wdi-daily-autopilot [self-review] [peer] [interval] [--skip-peer-review]`**
|
|
113
|
+
Checks for an accepted mandate and runs the preflight if there is none, resolves reviewers from local config, and starts the loop (default `/loop 10m /wdi-autopilot`). The loop works on branch `autopilot/<mandate-id>`, writes the code test-first, records every decision in its ledger, and ends with one PR ready for review. The owner merges.
|
|
114
|
+
3. **`/wdi-daily-what-to-test [web <target> | mobile <target> | desktop]`**
|
|
115
|
+
After a merge: syncs the development branch, prunes merged branches and worktrees, prepares the app for hand-testing, and builds a checklist from the tickets closed since the last sync (`before_sync..HEAD`). With no argument it only syncs, prunes, and builds the checklist.
|
|
116
|
+
4. **`/wdi-prune-or-archive [--spec <id> | --all-closed] [--archive | --prune] [--dry-run]`**
|
|
117
|
+
Moves closed specs from `.scratch/` into `.archive/specs/`, or removes them with `git rm`, through `lifecycle.py`, which checks first and rolls back on failure. The spec row stays in `specs.yaml`. With no argument it asks.
|
|
105
118
|
|
|
106
119
|
---
|
|
107
120
|
|
|
108
121
|
### Option C: Fast Path (`/implement` Directly)
|
|
109
|
-
A
|
|
122
|
+
A fix may skip every gate when it changes no FR, UC, AD-N, or domain model, is at most one ticket, and touches no money, personal data, or third-party integration. You run `/implement` directly, with no wrapper skill. If the fix turns out to touch an FR, work stops and becomes a spec of size S (at most 3 tickets), which runs through `wdi-build`.
|
|
110
123
|
|
|
111
124
|
---
|
|
112
125
|
|
|
113
|
-
##
|
|
126
|
+
## Field Rules
|
|
114
127
|
|
|
115
|
-
|
|
128
|
+
Operational rules learned from running autonomous coding loops on real product repositories:
|
|
116
129
|
|
|
117
130
|
### 1. Builder Fixed to Coordinator (`builder: coordinator`)
|
|
118
|
-
In `wdi-daily-autopilot`, `roles.builder` in `.control/custom-dispatch.yaml` is
|
|
131
|
+
In `wdi-daily-autopilot`, `roles.builder` in `.control/custom-dispatch.yaml` is fixed to `coordinator`. Delegating code to subagents led to false completion reports (a subagent claiming the tests passed without editing a file). The coordinating session writes the code itself, test-first.
|
|
132
|
+
|
|
133
|
+
### 2. Read-Only Reviewers
|
|
134
|
+
Peer reviewers run read-only. They challenge edge cases and read diffs, but never change code or run builds; only the coordinating session writes. At `risk_accepted: low` a peer-review bypass is refused, because the code there needs two reviewers who are not the builder.
|
|
119
135
|
|
|
120
|
-
###
|
|
121
|
-
|
|
136
|
+
### 3. Windows File Locks (Desktop Process Gate)
|
|
137
|
+
On Windows, a running app binary or a background build daemon holds file handles open, and a rebuild or worktree deletion then fails with `Access is denied`. With the `desktop` target, `wdi-daily-what-to-test` checks whether the app binary is still running before it rebuilds. It closes the app only if its own previous smoke run started it; otherwise it reports the PID and stops, so you can close it yourself. It never force-kills a process.
|
|
122
138
|
|
|
123
|
-
###
|
|
124
|
-
|
|
139
|
+
### 4. The Loop Runs on Its Own Branch
|
|
140
|
+
Spec and ticket authoring happens on the development branch. The loop runs on its own branch, `autopilot/<mandate-id>`, in an isolated worktree or in a clean checkout used only by that run. It never runs on a shared or dirty checkout.
|
|
125
141
|
|
|
126
|
-
###
|
|
127
|
-
|
|
142
|
+
### 5. One Cloud CI Run Per Autopilot Run
|
|
143
|
+
The loop commits per ticket, and the local test suite is the evidence during the run. Cloud CI runs once per autopilot run, at the end: when the one PR is marked ready for review, or when the workflow is dispatched once. Pushes during the run start no cloud run.
|
|
128
144
|
|
|
129
|
-
###
|
|
130
|
-
|
|
145
|
+
### 6. Machine-Local Smoke Files
|
|
146
|
+
Smoke cursors (`.work/smoke/last-sync`) and runtime manifests belong to one machine. The installer adds `.work/smoke/` to `.gitignore`, so machine-local smoke files never leave the working tree dirty.
|
|
147
|
+
|
|
148
|
+
---
|
|
131
149
|
|
|
132
|
-
|
|
133
|
-
Smoke test cursors (`.work/smoke/last-sync`) and runtime manifests are machine-local. Ensure `.work/smoke/` is registered in `.gitignore` so preflight clean working tree checks never halt unexpectedly.
|
|
150
|
+
## Configuration (`custom-dispatch.yaml`)
|
|
134
151
|
|
|
135
|
-
|
|
136
|
-
|
|
152
|
+
Machine-specific runner commands and model flags live in `.control/custom-dispatch.yaml`. The installer creates it from `.control/custom-dispatch.yaml.example` when it is missing, and adds it to `.gitignore`; only the example is committed.
|
|
153
|
+
|
|
154
|
+
A runner named as a reviewer MUST be read-only. The read-only flag per CLI: `claude --permission-mode plan`, `kiro-cli --trust-tools=fs_read`, `cursor-agent --mode plan`. The example runners in the template all use it.
|
|
137
155
|
|
|
138
156
|
---
|
|
139
157
|
|
|
140
|
-
##
|
|
158
|
+
## Skills Directory (22)
|
|
159
|
+
|
|
160
|
+
WDI Method installs 22 skills: 7 gate skills, 5 for the daily tier (including `wdi-autopilot`), and 10 you run any time.
|
|
141
161
|
|
|
142
|
-
|
|
162
|
+
How a skill starts:
|
|
163
|
+
- **You type it**: the four daily tier skills, `wdi-build`, and `wdi-explain-to-me` (they carry `disable-model-invocation: true`).
|
|
164
|
+
- **You type it, or the agent names it and waits for your go-ahead**: the other skills.
|
|
165
|
+
- **The agent may run it on its own (read-only)**: `wdi-help`.
|
|
166
|
+
- **Fired by `/loop` under an accepted mandate**: `wdi-autopilot`. Under a mandate, `wdi-autopilot` also runs the other skills.
|
|
143
167
|
|
|
144
|
-
|
|
|
168
|
+
| Skill | What It Does | How It Starts |
|
|
145
169
|
|---|---|---|
|
|
146
|
-
| **
|
|
147
|
-
|
|
|
148
|
-
|
|
|
170
|
+
| **Gate skills** | | |
|
|
171
|
+
| `/wdi-init` | Before G1 and at the end of G2: sets up registries, components, `mode` and `risk_accepted`, the two structure maps, the engines check, and inventory readers. | You type it, or the agent names it |
|
|
172
|
+
| `/wdi-problem` | G1. Runs BMad's product brief skill, then checks the brief against the method's guide. Never writes the brief itself. | You type it, or the agent names it |
|
|
173
|
+
| `/wdi-product` | G2. Runs BMad's PRD skill for a new PRD or a changed promise, then checks it against the PRD guide. Never writes the PRD itself. | You type it, or the agent names it |
|
|
174
|
+
| `/wdi-ux` | Optional, with G2. Runs BMad's UX skill and files the design results where they belong. Never writes UX content itself. | You type it, or the agent names it |
|
|
175
|
+
| `/wdi-blueprint` | G3, once per product. The whole-product picture: use cases, actors, domain model, business rules, glossary, the architecture spine, C4, and the API, table, and screen inventories. | You type it, or the agent names it |
|
|
176
|
+
| `/wdi-component` | G4. The depth of one component, as deep as its `mode` and no deeper. Skipped at `mode: catalog`. | You type it, or the agent names it |
|
|
177
|
+
| `/wdi-build` | G5. One spec from open to closed: you run `to-spec` and `to-tickets`, each ticket goes to a green PR, then the spec closes. It never merges. | You type it |
|
|
178
|
+
| **Daily tier** | | |
|
|
179
|
+
| `/wdi-daily-what-to-build` | Turns hand-testing notes into a reviewed spec or ticket for a later autopilot run. Stops before code, commit, or push. | You type it |
|
|
180
|
+
| `/wdi-daily-autopilot` | Checks for an accepted mandate (runs the preflight if there is none), resolves reviewers from local config, and starts the loop, every 10 minutes by default. | You type it |
|
|
181
|
+
| `/wdi-autopilot` | The loop itself: works through every FR under one accepted mandate, on one branch with one PR, and writes every decision to one ledger. | Fired by `/loop` under an accepted mandate |
|
|
182
|
+
| `/wdi-daily-what-to-test` | After a merge: syncs the development branch, prunes merged branches and worktrees, prepares the app for hand-testing, and builds a checklist from the closed tickets. | You type it |
|
|
183
|
+
| `/wdi-prune-or-archive` | Moves closed specs to `.archive/specs/` or removes them with `git rm`, through `lifecycle.py`, which checks first and rolls back on failure. The spec row stays in `specs.yaml`. | You type it |
|
|
184
|
+
| **Any time** | | |
|
|
185
|
+
| `/wdi-help` | Reads the status registry and tells you the current gate, the open specs, and the next skill. | The agent may run it on its own (read-only) |
|
|
186
|
+
| `/wdi-explain-to-me` | Does the reading before you decide: investigates, then briefs you in six fixed sections. Writes no file. | You type it |
|
|
187
|
+
| `/wdi-decision` | Opens, accepts, and applies a numbered decision (`DEC-`), and carries it into the documents it governs. | You type it, or the agent names it |
|
|
188
|
+
| `/wdi-question` | Files something that cannot be decided now into one of four lists in `.control/questions/`, and closes it when the answer arrives. | You type it, or the agent names it |
|
|
189
|
+
| `/wdi-log` | Records a finished meeting or a non-technical fact that limits what may be built. | You type it, or the agent names it |
|
|
190
|
+
| `/wdi-report` | Numbers about the project: progress, estimates, task rows for a tracker, or a standalone brief or PRD. Never invents a number. | You type it, or the agent names it |
|
|
191
|
+
| `/wdi-reconcile` | Before a gate or after a batch of changes: reports drift between `.what`, `.how`, `.control`, and the method's rules. Read-only. | You type it, or the agent names it |
|
|
192
|
+
| `/wdi-review` | Reviews any corpus document, and must run before a gate for the spine, SRS, SDD, and SPEC. Its lenses follow `risk_accepted`. Not for code review. | You type it, or the agent names it |
|
|
193
|
+
| `/wdi-systematic-debugging` | For any bug, failing test, or failed build, before a fix is proposed: find the root cause and test one hypothesis at a time. | You type it, or the agent names it |
|
|
194
|
+
| `/wdi-upgrade` | Right after `wdi-method update`: moves documents and registry files still in the old shape into the new one, then checks that validation is green. | You type it, or the agent names it |
|
|
149
195
|
|
|
150
196
|
---
|
|
151
197
|
|
|
152
|
-
## Repository Structure
|
|
198
|
+
## Repository Structure
|
|
153
199
|
|
|
154
200
|
```text
|
|
155
201
|
.constitution/
|
|
156
|
-
method/
|
|
157
|
-
project/
|
|
202
|
+
method/ The method itself: overwritten by every update; never edit here
|
|
203
|
+
project/ Product-owned rules and inventory readers: kept across updates
|
|
158
204
|
.control/
|
|
159
|
-
registry/
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
.
|
|
165
|
-
.
|
|
166
|
-
.what
|
|
205
|
+
registry/ The registries: index.yaml · goals.yaml · specs.yaml · components.yaml
|
|
206
|
+
generated/ Status and RTM projections written by validate.py (never by hand)
|
|
207
|
+
decisions/ Decisions and owner mandates (DEC-*.md)
|
|
208
|
+
memlog/ Ledgers recording autonomous loop decisions
|
|
209
|
+
test-targets/ Hand-testing templates (desktop.md, web.md, mobile.md)
|
|
210
|
+
.scratch/<spec-id>-<slug>/ Active spec workspaces (SPEC.md and tickets)
|
|
211
|
+
.archive/ Archived closed specs
|
|
212
|
+
.what/ & .how/ Working corpus documents (brief, PRD, SRS, blueprint, SDD)
|
|
213
|
+
.what-rendered/ Rendered pages for G1 and G2 (generated)
|
|
214
|
+
.how-rendered/ Rendered pages for G3 and G4 (generated)
|
|
215
|
+
.work/ Scratch that empties when a task closes
|
|
167
216
|
```
|
|
168
217
|
|
|
169
218
|
---
|
|
170
219
|
|
|
171
|
-
## Contributing
|
|
220
|
+
## Contributing
|
|
172
221
|
|
|
173
|
-
Every contribution to WDI Method
|
|
222
|
+
Every contribution to WDI Method answers one question: **does this make the review layer more trustworthy, or does it only make it thicker?** See [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
174
223
|
|
|
175
|
-
### Fixture Corpus
|
|
176
|
-
|
|
224
|
+
### Fixture Corpus and Local Verification
|
|
225
|
+
Validator and method changes are proven against the fixture corpus (`tests/fixture/`). Run the suite before opening a pull request:
|
|
177
226
|
```bash
|
|
178
227
|
npm test
|
|
179
228
|
```
|
|
180
|
-
The
|
|
229
|
+
The suite runs the four Python PEP 723 scripts (`validate.py`, `timeline.py`, `inventory.py`, `lifecycle.py`) against the fixture, and checks the platform registry and the files each platform receives, and the integrity of the kit.
|
|
181
230
|
|
|
182
231
|
### Public Generic Package Rule
|
|
183
|
-
WDI Method is published to the public npm registry. It must never
|
|
232
|
+
WDI Method is published to the public npm registry. It must never carry private client names, commercial product identities, credentials, or absolute filesystem paths.
|
|
184
233
|
|
|
185
234
|
---
|
|
186
235
|
|
|
187
|
-
## License
|
|
236
|
+
## License and Privacy
|
|
237
|
+
|
|
238
|
+
- **Code license:** [MIT License](LICENSE).
|
|
239
|
+
- **Privacy:** WDI Method itself makes no network calls; your coding agent still talks to its model provider. See [PRIVACY.md](PRIVACY.md) and [SECURITY.md](SECURITY.md).
|
|
240
|
+
|
|
241
|
+
## The name and the icon
|
|
242
|
+
|
|
243
|
+
The MIT License grants broad rights over the code. It says nothing about names or logos,
|
|
244
|
+
and it does not oblige the studio to hand over either — so the licence above covers this
|
|
245
|
+
repository's code, not the name **WDI Method**, not **Wira Delta Indonesia**, and not any
|
|
246
|
+
associated visual marks or logos.
|
|
247
|
+
|
|
248
|
+
You may use those names to refer to this project: "based on WDI Method", "a fork of WDI Method",
|
|
249
|
+
or "compatible with WDI Method". You may not use them as the name of your own product or
|
|
250
|
+
methodology, or in a way that suggests you are this project or endorsed by it.
|
|
251
|
+
|
|
252
|
+
If you publish a modified distribution or fork, please give it your own name, so the
|
|
253
|
+
engineers using it know whom to ask when something behaves unexpectedly. The code is yours
|
|
254
|
+
to take; the name is not.
|
|
255
|
+
|
|
256
|
+
---
|
|
188
257
|
|
|
189
|
-
|
|
190
|
-
- **Privacy & Telemetry:** 100% offline-first. Zero telemetry, zero analytics, zero external network sockets (see [PRIVACY.md](PRIVACY.md) and [SECURITY.md](SECURITY.md)).
|
|
191
|
-
- **Trademark Notice:** "Wira Delta Indonesia", "WDI Method", and the studio brand monogram are trademarks of PT Wira Delta Indonesia and are retained separately from the open-source code license.
|
|
258
|
+
We use the same method on client projects. [Contact Wira Delta Indonesia](https://wiradelta.id/#contact).
|