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/README.md CHANGED
@@ -1,191 +1,258 @@
1
1
  # WDI Method
2
2
 
3
- [English](README.md) | [Bahasa Indonesia](README.id.md) | [日本語](README.ja.md) | [简体中文](README.zh.md)
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
- **The review layer BMad leaves thin — verifiable specifications a human reads to check technical decisions before code is written, sized to what the change actually deserves.**
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
- [BMad](https://github.com/bmad-code-org/BMAD-METHOD) decides *what* to build and *how* to structure solutions well. WDI Method wraps it — without replacing it — providing the verifiable governance layer between high-level architectural decisions and working code: requirement registries, use case catalogues, component boundaries, automated drift validators, and unhindered autonomous daily loops.
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
- ## Helicopter View: AI-Driven Development (AiDD) vs. Vibe Coding
16
+ ## AI-Driven Development (AiDD) vs. Vibe Coding
15
17
 
16
- Speculative prompting ("vibe coding") inevitably fails on multi-month production systems: AI coding agents lose context, hallucinate completion states, and blur requirement boundaries. WDI Method establishes disciplined **AI-Driven Development (AiDD)** through a three-layer architectural triad:
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
- ```text
19
- ┌─────────────────────────────────────────────────────────────────────────┐
20
- │ 1. Intent & Strategy: BMad Method │
21
- │ Discovers user problems, draft product briefs, and architecture │
22
- ├─────────────────────────────────────────────────────────────────────────┤
23
- │ 2. Verifiable Review Layer: WDI Method (SSOT) │
24
- │ Governs 5 human gates, links Goal → FR → UC → Ticket → Test chains, │
25
- │ runs automated drift validators, and orchestrates daily loops │
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
- ### The Golden Invariant: Documents Follow Code
33
- Documents are the record left behind by work that already happened. Where a decision record or requirement row contradicts the code, **the code wins and the document is corrected**. Code is never mutated to match obsolete documentation. A document merely behind the code is in its expected state and never blocks delivery unless it carries load-bearing staleness.
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
- ## 10-Minute Quickstart
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
- Install WDI Method into your product repository in three sequential steps. All prompts offer sensible defaults; pressing <kbd>Enter</kbd> accepts them.
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 Ticket Engines
49
- Install the execution engines directly into your repository (choose either "copy" or "symlink"):
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 driven by the method:* `to-spec`, `to-tickets`, `implement`, `tdd`, `code-review`, and `domain-modeling`.
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 plugin does not count:** Upstream engines ship with `disable-model-invocation: true`. WDI Method automatically strips this flag from local copies so autonomous loops can drive them unattended. A user-level plugin cannot be edited by the repository.
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 configures skills across your agent platforms (Claude Code, Cursor, OpenCode, Windsurf, etc.):
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
- *(For automated CI environments: `npx wdi-method install --yes --agents claude --product "Your Product"`)*
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 AI coding agent (Claude Code, Cursor), invoke:
72
+ Inside your coding agent, run:
66
73
  ```text
67
74
  /wdi-help
68
75
  ```
69
- `wdi-help` inspects `.control/registry/` and answers with the exact gate your project is currently at, without guessing from conversational context.
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 adapts its ceremony to the scale and risk of the task:
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
- ### Option A: Guided Delivery Track (New Initiatives & G1–G5)
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 | Question Answered | Skill Invoked | Rendered Page You Read | Owner Decision |
89
+ | Gate | Decides | Skill | What You Read | Owner Decision |
81
90
  |---|---|---|---|---|
82
- | **G1 — Problem** | Is this problem real, whose is it, and does it earn work? | `/wdi-problem` | `.what-rendered/_product-brief/brief.md` | Approve problem framing |
83
- | **G2 — Product** | What do we build, and how does the interface feel? | `/wdi-product`<br>`/wdi-ux` | `.what-rendered/_prd/<slug>/prd.md` | Approve functional promises (FR) |
84
- | **G3 — Blueprint** | Does the whole architecture hold together? *(Once per repo)* | `/wdi-blueprint` | `.how-rendered/blueprint.md` | Approve architecture spine |
85
- | **G4 — Component** | How is this component built? *(Skipped at `mode: catalog`)* | `/wdi-component` | `.how-rendered/<pc>/SDD-<pc>.md` | Approve software design |
86
- | **G5 — Build** | Is the ticket slice built, verified, and proven? *(Per spec)* | `/wdi-build` | Test runner output (red &rarr; green) | Accept merged code |
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 Knobs That Never Merge: Mode vs. Risk
89
- - **`mode`** sets which gates exist (`catalog` skips G4; `guarded` and `deep` mandate thorough SDD).
90
- - **`risk_accepted`** sets the depth of review proof required (`low`, `medium`, `high`). Merging them into a single dial either drowns simple components in bureaucracy or lets high-risk changes escape verification.
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 (Fase 4 Daily Tier)
95
- Once architecture is established, everyday engineering is a continuous daily rhythm. WDI Method provides 4 purpose-built tools:
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 raw manual test notes, QA observations, or bug reports into structured specifications. Classifies requirements against the corpus, drafts tickets on the development branch, and dispatches an advisory second opinion.
99
- 2. **`/wdi-daily-autopilot [self-review] [peer] [interval]`**:
100
- Launches the autonomous engineering routine under an owner-accepted mandate. Runs an unattended loop cadence (default: `/loop 10m /wdi-autopilot`), executing TDD cycles and updating its ledger after every decision.
101
- 3. **`/wdi-daily-what-to-test [web|mobile|desktop]`**:
102
- Post-merge physical testing coordinator. Synchronizes the development branch, prunes merged worktrees and remote branches, enforces desktop process gates, and compiles an actionable physical testing checklist from the git delta (`before_sync..HEAD`).
103
- 4. **`/wdi-prune-or-archive [spec-id] [--archive|--prune]`**:
104
- Maintains repository hygiene by safely moving completed specifications from `.scratch/` into `.archive/specs/` or pruning them via `git rm`, while preserving 100% RTM traceability.
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 small bugfix or polish touching no `FR`, `UC`, `AD-N`, or domain model skips every document gate and runs `/implement` directly. If the change expands to touch a functional requirement, it **stops immediately and becomes an explicit spec `S`** evaluated at G5.
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
- ## Practical Field Tweaks & Operational Knowledge
126
+ ## Field Rules
114
127
 
115
- Battle-tested rules discovered across real multi-platform agent runs:
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 strictly fixed to `coordinator`. Delegating code implementation to subagents leads to state hallucinations (subagents falsely claiming all unit tests passed without editing a single file). The coordinating session authors code directly via TDD red-to-green cycles.
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
- ### 2. Independent Advisory Reviewers
121
- Peer reviewers (such as Terra / GPT-5.6-Terra via `kiro-cli`) must operate in read-only mode (`--trust-tools=fs_read` / `--mode plan`). Reviewers challenge edge cases and inspect diffs, but never mutate code or trigger build commands. Single-writer discipline is strictly preserved.
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
- ### 3. Windows File-Locking Prevention (Process Gating)
124
- On Windows, background processes (running application binaries, Gradle Test Daemons, Java VMs) hold open file handles, causing `Access is denied (Exit code 5/32)` failures during compilation or worktree deletion. `wdi-daily-what-to-test` inspects and terminates lingering processes before compilation or launch.
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
- ### 4. Worktree Isolation Invariant
127
- Specification and ticket authoring takes place on `main`, but autonomous coding loops (`wdi-autopilot`) **must run inside an isolated git worktree** (`autopilot/<mandate-id>`). Never run unattended loops on a shared dirty checkout.
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
- ### 5. Single Cloud CI Trigger Per PR
130
- Autonomous loops commit per ticket locally. Running cloud CI on every iteration quickly exhausts monthly runner allowances. Local test suites provide authoritative evidence during the loop; Cloud CI is triggered **once**, when the Pull Request is marked ready for review.
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
- ### 6. Ephemeral Smoke Artifact Hygiene
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
- ### 7. Local Runner Configuration (`custom-dispatch.yaml`)
136
- Machine-specific runner commands and model flags live in `.control/custom-dispatch.yaml` (automatically gitignored). Only the template `.control/custom-dispatch.yaml.example` is committed to git.
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
- ## 22 Official Skills Directory
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
- WDI Method packages 22 official skills structured across functional domain and invocation authority:
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
- | Domain | User-Invoked (Developer Commands) | Model-Invoked / Agent-Orchestrated |
168
+ | Skill | What It Does | How It Starts |
145
169
  |---|---|---|
146
- | **Delivery & Architecture (G1–G5)** | `/wdi-init` (G0 setup &amp; components)<br>`/wdi-problem` (G1 problem &amp; brief)<br>`/wdi-product` (G2 PRD promises)<br>`/wdi-ux` (G2/G3 user flows &amp; contracts)<br>`/wdi-blueprint` (G3 system spine)<br>`/wdi-component` (G4 component SDD)<br>`/wdi-build` (G5 spec &amp; ticket cutting) | Driven sequentially by coordinator across gate transitions |
147
- | **Autonomous Daily Operations** | `/wdi-daily-what-to-build` (triage notes to spec)<br>`/wdi-daily-autopilot` (autonomous routine launcher)<br>`/wdi-daily-what-to-test` (post-merge physical smoke test)<br>`/wdi-prune-or-archive` (clean or archive closed specs) | `/wdi-autopilot` (unattended loop engine driven by `/loop`) |
148
- | **Governance & Diagnostics** | `/wdi-help` (contextual gate guidance)<br>`/wdi-explain-to-me` (architecture explainer)<br>`/wdi-decision` (ADR authoring)<br>`/wdi-question` (open question tracker)<br>`/wdi-log` (activity logging)<br>`/wdi-report` (estimate &amp; progress reporting)<br>`/wdi-reconcile` (drift audit)<br>`/wdi-review` (independent peer review)<br>`/wdi-systematic-debugging` (root-cause diagnosis)<br>`/wdi-upgrade` (corpus schema migration) | Advisory peer review &amp; second opinion dispatch |
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 & Invariants
198
+ ## Repository Structure
153
199
 
154
200
  ```text
155
201
  .constitution/
156
- method/ The method engine — overwritten by every update; never edit here
157
- project/ Product-owned rules and custom inventory readers — preserved across updates
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/ Single Source of Truth: goals.yaml · specs.yaml · components.yaml
160
- decisions/ Accepted decisions and owner mandates (DEC-*.md)
161
- memlog/ Audit ledgers recording autonomous loop decisions
162
- test-targets/ Physical testing templates (desktop.md, web.md, mobile.md)
163
- .scratch/ Active specification workspaces (SPEC-*.md and tickets)
164
- .archive/ Pruned historical specifications preserving RTM audit links
165
- .what/ & .how/ Working corpus documents (PRD, SRS, Blueprint, SDD)
166
- .what-rendered/ Rendered human deliverables (generated by validate.py / wdi-report)
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 & Architectural Foundations
220
+ ## Contributing
172
221
 
173
- Every contribution to WDI Method must answer one question: **does this make the review layer more trustworthy, or does it merely make it thicker?**
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 & Local Verification
176
- All validator and framework changes are proven against the internal fixture corpus (`tests/fixture/`). Run the complete test suite before submitting pull requests:
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 test suite enforces 100% green baselines across Python PEP 723 scripts (`validate.py`, `timeline.py`, `lifecycle.py`), platform sync, and kit integrity.
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 leak private client names, commercial product identities, internal network credentials, or absolute filesystem paths.
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 & Trademark Notice
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
- - **Code License:** Distributed under the [MIT License](LICENSE).
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).