yadflow 3.18.1 → 3.19.0-next.2

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.
Files changed (104) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/README.md +11 -11
  3. package/bin/yad.mjs +8 -8
  4. package/cli/artifact-status.mjs +4 -4
  5. package/cli/checkpoint.mjs +25 -25
  6. package/cli/commit.mjs +1 -1
  7. package/cli/companion.mjs +2 -2
  8. package/cli/doctor.mjs +10 -10
  9. package/cli/epic-state.mjs +29 -29
  10. package/cli/errors.mjs +1 -1
  11. package/cli/gate.mjs +32 -33
  12. package/cli/hook.mjs +4 -4
  13. package/cli/hubcommit.mjs +1 -1
  14. package/cli/ledger.mjs +3 -3
  15. package/cli/lib.mjs +23 -9
  16. package/cli/manifest.mjs +42 -21
  17. package/cli/migrate.mjs +54 -12
  18. package/cli/next.mjs +5 -5
  19. package/cli/openpr.mjs +8 -8
  20. package/cli/plan.mjs +28 -9
  21. package/cli/platform.mjs +1 -1
  22. package/cli/report.mjs +1 -1
  23. package/cli/review.mjs +5 -5
  24. package/cli/setup.mjs +22 -10
  25. package/cli/ship.mjs +1 -1
  26. package/cli/skip.mjs +1 -1
  27. package/cli/thread.mjs +1 -1
  28. package/cli/tidy.mjs +2 -2
  29. package/cli/update-commit.mjs +1 -1
  30. package/package.json +1 -1
  31. package/skills/sdlc/config.yaml +30 -30
  32. package/skills/sdlc/module-help.csv +21 -21
  33. package/skills/yad-analysis/SKILL.md +10 -10
  34. package/skills/yad-architecture/SKILL.md +10 -10
  35. package/skills/yad-architecture/references/contract-format.md +2 -3
  36. package/skills/yad-backfill/SKILL.md +5 -5
  37. package/skills/yad-change/SKILL.md +13 -13
  38. package/skills/yad-change/references/triage.md +2 -3
  39. package/skills/yad-checks/SKILL.md +34 -16
  40. package/skills/yad-checks/references/check-gates.md +63 -19
  41. package/skills/yad-checks/templates/checks/build-test-lint.sh +25 -7
  42. package/skills/yad-checks/templates/checks/epic-open.sh +1 -1
  43. package/skills/yad-checks/templates/checks/install-deps.sh +46 -0
  44. package/skills/yad-checks/templates/checks/ledger-guard.sh +41 -12
  45. package/skills/yad-checks/templates/checks/package-manager.sh +140 -0
  46. package/skills/yad-checks/templates/checks/reconcile-debt-check.sh +3 -3
  47. package/skills/yad-checks/templates/github/yad-checks.yml +24 -3
  48. package/skills/yad-checks/templates/github/yad-hub-checks.yml +2 -2
  49. package/skills/yad-checks/templates/github/yad-verified-commits.yml +1 -1
  50. package/skills/yad-checks/templates/gitlab/.gitlab-ci.yml +7 -1
  51. package/skills/yad-checks/templates/gitlab/yad-checks.gitlab-ci.yml +12 -3
  52. package/skills/yad-checks/templates/gitlab/yad-hub-checks.gitlab-ci.yml +2 -2
  53. package/skills/yad-checks/templates/gitlab/yad-verified-commits.gitlab-ci.yml +1 -1
  54. package/skills/yad-checks/templates/hooks/ledger-guard.sh +1 -1
  55. package/skills/yad-commit/SKILL.md +2 -2
  56. package/skills/yad-connect-design/SKILL.md +1 -1
  57. package/skills/yad-connect-docs/SKILL.md +1 -1
  58. package/skills/yad-connect-repos/SKILL.md +32 -15
  59. package/skills/yad-connect-repos/references/code-context.md +2 -2
  60. package/skills/yad-connect-repos/references/hub-config.md +25 -11
  61. package/skills/yad-connect-repos/references/repos-registry.md +3 -3
  62. package/skills/yad-connect-testing/SKILL.md +1 -1
  63. package/skills/yad-defects/SKILL.md +1 -1
  64. package/skills/yad-discovery/SKILL.md +6 -6
  65. package/skills/yad-discovery/references/discovery-schema.md +1 -1
  66. package/skills/yad-docs/SKILL.md +3 -3
  67. package/skills/yad-docs-overview/SKILL.md +3 -3
  68. package/skills/yad-docs-overview/references/pipeline-model.md +17 -11
  69. package/skills/yad-engineer-review/SKILL.md +9 -9
  70. package/skills/yad-engineer-review/references/ship-and-record.md +8 -8
  71. package/skills/yad-epic/SKILL.md +15 -15
  72. package/skills/yad-epic/references/state-schema.md +30 -30
  73. package/skills/yad-hub-bridge/SKILL.md +14 -14
  74. package/skills/yad-hub-bridge/references/bridge.md +17 -17
  75. package/skills/yad-hub-bridge/references/login-roster.md +3 -3
  76. package/skills/yad-hub-bridge/templates/checks/hub-route.sh +1 -1
  77. package/skills/yad-hub-bridge/templates/gitlab/yad-gate-sync.gitlab-ci.yml +1 -1
  78. package/skills/yad-implement/SKILL.md +3 -3
  79. package/skills/yad-open-pr/SKILL.md +4 -4
  80. package/skills/yad-pair-review/SKILL.md +12 -12
  81. package/skills/yad-pair-review/references/session-state.md +3 -3
  82. package/skills/yad-pr-template/SKILL.md +4 -4
  83. package/skills/yad-pr-template/references/risk-routing.md +1 -1
  84. package/skills/yad-pr-template/templates/checks/pr-template.sh +18 -10
  85. package/skills/yad-pr-template/templates/checks/pr-title.sh +7 -7
  86. package/skills/yad-pr-template/templates/hub/github/pull_request_template.md +1 -1
  87. package/skills/yad-pr-template/templates/hub/gitlab/merge_request_templates/Default.md +1 -1
  88. package/skills/yad-reconcile/SKILL.md +1 -1
  89. package/skills/yad-report/SKILL.md +1 -1
  90. package/skills/yad-review-companion/SKILL.md +7 -7
  91. package/skills/yad-review-gate/SKILL.md +18 -18
  92. package/skills/yad-review-gate/references/gating.md +3 -3
  93. package/skills/yad-run/SKILL.md +10 -10
  94. package/skills/yad-run/references/run-loop.md +8 -8
  95. package/skills/yad-ship/SKILL.md +4 -4
  96. package/skills/yad-spec/SKILL.md +10 -11
  97. package/skills/yad-status/SKILL.md +13 -13
  98. package/skills/yad-stories/SKILL.md +12 -12
  99. package/skills/yad-stories/references/story-schema.md +3 -3
  100. package/skills/yad-stub/SKILL.md +3 -3
  101. package/skills/yad-sync-repos/SKILL.md +1 -1
  102. package/skills/yad-test-cases/SKILL.md +12 -13
  103. package/skills/yad-test-cases/references/test-cases-schema.md +1 -1
  104. package/skills/yad-ui/SKILL.md +10 -10
@@ -1,17 +1,17 @@
1
1
  ---
2
2
  name: yad-test-cases
3
- description: 'Front state 9 of the gated SDLC — a PARALLEL, non-blocking track. Opens when the stories gate passes (the epic is already ready-for-build, so the build half can start at the same time) and runs alongside implementation. With the test architect (Murat), author test-cases.md for the approved stories, and — when a testing tool is connected — generate/link the actual automation tests in it; otherwise produce the test-case artifact only. Reads epic + architecture + contract + UI + stories as input. Never auto-advances — hands off to the team review gate. Use when the user says "author the test cases" or after the stories gate passes.'
3
+ description: 'Shape step 9 of the gated SDLC — a PARALLEL, non-blocking track. Opens when the stories gate passes (the epic is already ready-for-build, so Build can start at the same time) and runs alongside implementation. With the test architect (Murat), author test-cases.md for the approved stories, and — when a testing tool is connected — generate/link the actual automation tests in it; otherwise produce the test-case artifact only. Reads epic + architecture + contract + UI + stories as input. Never auto-advances — hands off to the team review gate. Use when the user says "author the test cases" or after the stories gate passes.'
4
4
  ---
5
5
 
6
- # SDLC — Author Test Cases (front state 9 — parallel, non-blocking)
6
+ # SDLC — Author Test Cases (Shape step 9 — parallel, non-blocking)
7
7
 
8
8
  **Goal:** Produce a human-authored, AI-assisted `test-cases.md` for an approved epic — the risk-based
9
9
  test cases that cover the stories' acceptance criteria — **and**, when a testing tool is connected, the
10
10
  **actual automation tests** inside the connected code repo(s), linked back from the artifact. This is a
11
- **front state**: human-authored with AI assist, **never auto-advances**. When the test cases are
11
+ **Shape step**: human-authored with AI assist, **never auto-advances**. When the test cases are
12
12
  drafted, control passes to `yad-review-gate` (base rule: owner + 1 reviewer).
13
13
 
14
- **This step does NOT block the build half.** It opens when the **stories** gate passes — at which point
14
+ **This step does NOT block Build.** It opens when the **stories** gate passes — at which point
15
15
  the epic is already `ready-for-build`, so implementation (`yad-spec` → `yad-implement` → …) can start
16
16
  **at the same time** the tester works here. The test-cases track is driven by its own step `status`
17
17
  (it opens to `in_progress` when `stories-review` passes) and its review **never moves `currentStep`
@@ -51,7 +51,7 @@ the stories review has not passed.
51
51
  Open the test-cases authoring branch `test-cases/EP-<slug>` per the shared procedure
52
52
  (`../yad-epic/references/state-schema.md` → "Authoring branches"): git-safe (skip with a note if
53
53
  `{project-root}` is not a git work tree), check out the branch if it exists, else create it from the
54
- hub's default branch. Author and commit `test-cases.md` on it. This is **distinct** from the bridge's
54
+ hub's default branch. Author and commit `test-cases.md` on it. This is **distinct** from the verified ledger's
55
55
  `review/…` branch.
56
56
 
57
57
  ### Step 2 — Read inputs
@@ -163,9 +163,9 @@ degraded (`testing: none`), do **not** write `test-links.json`.
163
163
 
164
164
  ### Step 5 — Advance the authoring step (NOT the gate)
165
165
  **Check the mode first — the two modes have opposite instructions here.** Read `.sdlc/hub.json`:
166
- **bridge mode** is `platform` set AND `bridge_enabled` (or legacy `bridge`) `true`.
166
+ **verified mode** is `platform` set AND `ledger: "verified"` — or, on a project that has not run `yad migrate` yet, `bridge_enabled` (or legacy `bridge`) `true`. `ledger` wins whenever it is present.
167
167
 
168
- **Bridge mode — do NOT write `state.json`.** The ledger is CI-owned: the `ledger-guard` check rejects
168
+ **verified mode — do NOT write `state.json`.** The ledger is CI-owned: the `ledger-guard` check rejects
169
169
  any non-bot commit touching `epics/*/.sdlc/{state,approvals,comments,hub-prs}.json` or
170
170
  `epics/*/reviews/*.md`, `yad gate open` deliberately skips this write for the same reason, and
171
171
  `yad gate ci --merged` performs the whole transition when the review PR merges. Making the edit here
@@ -174,21 +174,20 @@ is pushed around the gate. Commit the artifact set — **`test-cases.md` and, wh
174
174
  tool was used, `.sdlc/test-links.json`** (artifact-side, not ledger; generated tests live in their
175
175
  own code repo, not here) — then hand off to `yad-review-gate`.
176
176
 
177
- **Otherwise — file-only, or a platform with no gate-sync CI — write it.** In `state.json`: set
177
+ **Otherwise — local, or a platform with no gate-sync CI — write it.** In `state.json`: set
178
178
  `test-cases.status: "done"` and set `test-cases-review.status: "in_review"`. **Leave `currentStep` at
179
- `ready-for-build`** — this is the parallel track; moving `currentStep` would pull it back from the
180
- build half. Write `state.json`. Do **not** touch `approvals.json`. On this branch `yad gate open`
179
+ `ready-for-build`** — this is the parallel track; moving `currentStep` would pull it back from Build. Write `state.json`. Do **not** touch `approvals.json`. On this branch `yad gate open`
181
180
  makes the same edit — `markInReview` leaves `currentStep` alone once it is `ready-for-build`
182
181
  (`cli/epic-state.mjs`) — so it is a no-op once the gate has run.
183
182
 
184
183
  ### Step 6 — Stop at the gate (do NOT advance)
185
184
  Report: the path to `test-cases.md`, the connected testing tool and what it produced (e.g. "Playwright —
186
185
  6 tests generated", the suite path + `test-links.json` path, or "no testing tool — artifacts-only"), that
187
- the build half may already be underway in parallel, and that the next action is **review** via
188
- `yad-review-gate` (base rule: owner + 1 reviewer). **Never record approval here.** Front states do not
186
+ Build may already be underway in parallel, and that the next action is **review** via
187
+ `yad-review-gate` (base rule: owner + 1 reviewer). **Never record approval here.** Shape steps do not
189
188
  auto-advance. When the hub has a platform, the gate opens a review
190
189
  PR on the hub (via `yad-hub-bridge`) and `yad-review-gate action: sync` pulls platform approvals/comments
191
- into the ledger; otherwise the review is recorded file-only.
190
+ into the ledger; otherwise the review is recorded local.
192
191
 
193
192
  ## Reference
194
193
  - Test-cases frontmatter, body template, and the `test-links.json` schema: `references/test-cases-schema.md`.
@@ -1,6 +1,6 @@
1
1
  # Test-cases schema
2
2
 
3
- The test cases authored at front state 9 are one Markdown file under `epics/EP-<slug>/`, named
3
+ The test cases authored at Shape step 9 are one Markdown file under `epics/EP-<slug>/`, named
4
4
  `test-cases.md` (one per epic — mirrors `ui-design.md`, not a per-story folder). The optional automation
5
5
  linkage is a sibling `test-links.json`.
6
6
 
@@ -1,14 +1,14 @@
1
1
  ---
2
2
  name: yad-ui
3
- description: 'Front state 5 of the gated SDLC. With the ux-designer, author ui-design.md and DESIGN.md for an approved architecture, driving Impeccable as harness slash-commands (document/extract/craft) when installed, or authoring directly when not. Reads epic + architecture as input. Never auto-advances — hands off to the team review gate. Use when the user says "author the UI design" or after the architecture gate passes.'
3
+ description: 'Shape step 5 of the gated SDLC. With the ux-designer, author ui-design.md and DESIGN.md for an approved architecture, driving Impeccable as harness slash-commands (document/extract/craft) when installed, or authoring directly when not. Reads epic + architecture as input. Never auto-advances — hands off to the team review gate. Use when the user says "author the UI design" or after the architecture gate passes.'
4
4
  ---
5
5
 
6
- # SDLC — Author UI Design (front state 5)
6
+ # SDLC — Author UI Design (Shape step 5)
7
7
 
8
8
  **Goal:** Produce a human-authored, AI-assisted `ui-design.md` and `DESIGN.md` for an approved
9
9
  architecture **and**, when a design tool is connected, the **actual feature design** — the mobile
10
10
  screens and/or web pages — inside that tool (e.g. Figma), linked back from the artifacts. This is a
11
- **front state**: human-authored with AI assist, **never auto-advances**. When the UI is drafted, control
11
+ **Shape step**: human-authored with AI assist, **never auto-advances**. When the UI is drafted, control
12
12
  passes to `yad-review-gate` (base rule: owner + 1 reviewer).
13
13
 
14
14
  UI work is shaped by **Impeccable**, invoked as **harness slash-commands** (not a subprocess CLI) per
@@ -60,7 +60,7 @@ Open the UI authoring branch `ui-design/EP-<slug>` per the shared procedure
60
60
  (`../yad-epic/references/state-schema.md` → "Authoring branches"): git-safe (skip with a note
61
61
  if `{project-root}` is not a git work tree), check out the branch if it exists, else create it from the
62
62
  hub's default branch. Author and commit `ui-design.md` / `DESIGN.md` on it. This is **distinct** from
63
- the bridge's `review/…` branch.
63
+ the verified ledger's `review/…` branch.
64
64
 
65
65
  ### Step 2 — Read inputs
66
66
  Read `epic.md` (user-level acceptance signals, scope) and `architecture.md` (flows, components by
@@ -92,7 +92,7 @@ components/tokens into the design system; `/impeccable craft` is shape-then-buil
92
92
  **Graceful degradation:** if Impeccable is not installed (no `/impeccable …` commands available), the
93
93
  `ux-designer` lens authors `ui-design.md` and `DESIGN.md` directly, and you **note in `ui-design.md`
94
94
  that Impeccable was not used**. Do not run `npx impeccable skills install` as part of this step — tool
95
- installation is out of scope for the front half.
95
+ installation is out of scope for Shape.
96
96
 
97
97
  ### Step 3b — Materialize the design in the connected tool (generate or link)
98
98
  Read `{project-root}/.sdlc/design.json` (`config.yaml` `design.registry`). Decide the path:
@@ -172,9 +172,9 @@ Keep the `## Design (<tool>)` section of `ui-design.md` in step with this file.
172
172
 
173
173
  ### Step 5 — Advance the authoring step (NOT the gate)
174
174
  **Check the mode first — the two modes have opposite instructions here.** Read `.sdlc/hub.json`:
175
- **bridge mode** is `platform` set AND `bridge_enabled` (or legacy `bridge`) `true`.
175
+ **verified mode** is `platform` set AND `ledger: "verified"` — or, on a project that has not run `yad migrate` yet, `bridge_enabled` (or legacy `bridge`) `true`. `ledger` wins whenever it is present.
176
176
 
177
- **Bridge mode — do NOT write `state.json`.** The ledger is CI-owned: the `ledger-guard` check rejects
177
+ **verified mode — do NOT write `state.json`.** The ledger is CI-owned: the `ledger-guard` check rejects
178
178
  any non-bot commit touching `epics/*/.sdlc/{state,approvals,comments,hub-prs}.json` or
179
179
  `epics/*/reviews/*.md`, `yad gate open` deliberately skips this write for the same reason, and
180
180
  `yad gate ci --merged` performs the whole transition when the review PR merges. Making the edit here
@@ -183,7 +183,7 @@ is pushed around the gate. Commit the artifact set — **`ui-design.md`, `DESIGN
183
183
  design tool was used, `.sdlc/design-links.json`** (artifact-side, not ledger) — then hand off to
184
184
  `yad-review-gate`.
185
185
 
186
- **Otherwise — file-only, or a platform with no gate-sync CI — write it.** In `state.json`: set
186
+ **Otherwise — local, or a platform with no gate-sync CI — write it.** In `state.json`: set
187
187
  `ui-design.status: "done"`, set `ui-design-review.status: "in_review"`, and set
188
188
  `currentStep: "ui-design-review"`. Write `state.json`. Do **not** touch `approvals.json`. On this
189
189
  branch `yad gate open` makes the same edit, so it is a no-op once the gate has run.
@@ -192,9 +192,9 @@ branch `yad gate open` makes the same edit, so it is a no-op once the gate has r
192
192
  Report: the paths to `ui-design.md` and `DESIGN.md`, whether Impeccable was used, the connected design
193
193
  tool and what it produced (e.g. "Figma — 4 screens generated", the file URL + `design-links.json` path,
194
194
  or "no design tool — markdown-only"), and that the next action is **review** via `yad-review-gate` (base
195
- rule: owner + 1 reviewer). **Never record approval here.** Front states do not auto-advance. When the hub has a platform, the gate opens a review PR on the
195
+ rule: owner + 1 reviewer). **Never record approval here.** Shape steps do not auto-advance. When the hub has a platform, the gate opens a review PR on the
196
196
  hub (via `yad-hub-bridge`) and `yad-review-gate action: sync` pulls platform approvals/comments into
197
- the ledger; otherwise the review is recorded file-only.
197
+ the ledger; otherwise the review is recorded local.
198
198
 
199
199
  ## Reference
200
200
  - Impeccable commands and the slash-command-vs-CLI deviation: `RESEARCH-NOTES.md` §4 + Deviation 3.