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.
- package/CHANGELOG.md +38 -0
- package/README.md +11 -11
- package/bin/yad.mjs +8 -8
- package/cli/artifact-status.mjs +4 -4
- package/cli/checkpoint.mjs +25 -25
- package/cli/commit.mjs +1 -1
- package/cli/companion.mjs +2 -2
- package/cli/doctor.mjs +10 -10
- package/cli/epic-state.mjs +29 -29
- package/cli/errors.mjs +1 -1
- package/cli/gate.mjs +32 -33
- package/cli/hook.mjs +4 -4
- package/cli/hubcommit.mjs +1 -1
- package/cli/ledger.mjs +3 -3
- package/cli/lib.mjs +23 -9
- package/cli/manifest.mjs +42 -21
- package/cli/migrate.mjs +54 -12
- package/cli/next.mjs +5 -5
- package/cli/openpr.mjs +8 -8
- package/cli/plan.mjs +28 -9
- package/cli/platform.mjs +1 -1
- package/cli/report.mjs +1 -1
- package/cli/review.mjs +5 -5
- package/cli/setup.mjs +22 -10
- package/cli/ship.mjs +1 -1
- package/cli/skip.mjs +1 -1
- package/cli/thread.mjs +1 -1
- package/cli/tidy.mjs +2 -2
- package/cli/update-commit.mjs +1 -1
- package/package.json +1 -1
- package/skills/sdlc/config.yaml +30 -30
- package/skills/sdlc/module-help.csv +21 -21
- package/skills/yad-analysis/SKILL.md +10 -10
- package/skills/yad-architecture/SKILL.md +10 -10
- package/skills/yad-architecture/references/contract-format.md +2 -3
- package/skills/yad-backfill/SKILL.md +5 -5
- package/skills/yad-change/SKILL.md +13 -13
- package/skills/yad-change/references/triage.md +2 -3
- package/skills/yad-checks/SKILL.md +34 -16
- package/skills/yad-checks/references/check-gates.md +63 -19
- package/skills/yad-checks/templates/checks/build-test-lint.sh +25 -7
- package/skills/yad-checks/templates/checks/epic-open.sh +1 -1
- package/skills/yad-checks/templates/checks/install-deps.sh +46 -0
- package/skills/yad-checks/templates/checks/ledger-guard.sh +41 -12
- package/skills/yad-checks/templates/checks/package-manager.sh +140 -0
- package/skills/yad-checks/templates/checks/reconcile-debt-check.sh +3 -3
- package/skills/yad-checks/templates/github/yad-checks.yml +24 -3
- package/skills/yad-checks/templates/github/yad-hub-checks.yml +2 -2
- package/skills/yad-checks/templates/github/yad-verified-commits.yml +1 -1
- package/skills/yad-checks/templates/gitlab/.gitlab-ci.yml +7 -1
- package/skills/yad-checks/templates/gitlab/yad-checks.gitlab-ci.yml +12 -3
- package/skills/yad-checks/templates/gitlab/yad-hub-checks.gitlab-ci.yml +2 -2
- package/skills/yad-checks/templates/gitlab/yad-verified-commits.gitlab-ci.yml +1 -1
- package/skills/yad-checks/templates/hooks/ledger-guard.sh +1 -1
- package/skills/yad-commit/SKILL.md +2 -2
- package/skills/yad-connect-design/SKILL.md +1 -1
- package/skills/yad-connect-docs/SKILL.md +1 -1
- package/skills/yad-connect-repos/SKILL.md +32 -15
- package/skills/yad-connect-repos/references/code-context.md +2 -2
- package/skills/yad-connect-repos/references/hub-config.md +25 -11
- package/skills/yad-connect-repos/references/repos-registry.md +3 -3
- package/skills/yad-connect-testing/SKILL.md +1 -1
- package/skills/yad-defects/SKILL.md +1 -1
- package/skills/yad-discovery/SKILL.md +6 -6
- package/skills/yad-discovery/references/discovery-schema.md +1 -1
- package/skills/yad-docs/SKILL.md +3 -3
- package/skills/yad-docs-overview/SKILL.md +3 -3
- package/skills/yad-docs-overview/references/pipeline-model.md +17 -11
- package/skills/yad-engineer-review/SKILL.md +9 -9
- package/skills/yad-engineer-review/references/ship-and-record.md +8 -8
- package/skills/yad-epic/SKILL.md +15 -15
- package/skills/yad-epic/references/state-schema.md +30 -30
- package/skills/yad-hub-bridge/SKILL.md +14 -14
- package/skills/yad-hub-bridge/references/bridge.md +17 -17
- package/skills/yad-hub-bridge/references/login-roster.md +3 -3
- package/skills/yad-hub-bridge/templates/checks/hub-route.sh +1 -1
- package/skills/yad-hub-bridge/templates/gitlab/yad-gate-sync.gitlab-ci.yml +1 -1
- package/skills/yad-implement/SKILL.md +3 -3
- package/skills/yad-open-pr/SKILL.md +4 -4
- package/skills/yad-pair-review/SKILL.md +12 -12
- package/skills/yad-pair-review/references/session-state.md +3 -3
- package/skills/yad-pr-template/SKILL.md +4 -4
- package/skills/yad-pr-template/references/risk-routing.md +1 -1
- package/skills/yad-pr-template/templates/checks/pr-template.sh +18 -10
- package/skills/yad-pr-template/templates/checks/pr-title.sh +7 -7
- package/skills/yad-pr-template/templates/hub/github/pull_request_template.md +1 -1
- package/skills/yad-pr-template/templates/hub/gitlab/merge_request_templates/Default.md +1 -1
- package/skills/yad-reconcile/SKILL.md +1 -1
- package/skills/yad-report/SKILL.md +1 -1
- package/skills/yad-review-companion/SKILL.md +7 -7
- package/skills/yad-review-gate/SKILL.md +18 -18
- package/skills/yad-review-gate/references/gating.md +3 -3
- package/skills/yad-run/SKILL.md +10 -10
- package/skills/yad-run/references/run-loop.md +8 -8
- package/skills/yad-ship/SKILL.md +4 -4
- package/skills/yad-spec/SKILL.md +10 -11
- package/skills/yad-status/SKILL.md +13 -13
- package/skills/yad-stories/SKILL.md +12 -12
- package/skills/yad-stories/references/story-schema.md +3 -3
- package/skills/yad-stub/SKILL.md +3 -3
- package/skills/yad-sync-repos/SKILL.md +1 -1
- package/skills/yad-test-cases/SKILL.md +12 -13
- package/skills/yad-test-cases/references/test-cases-schema.md +1 -1
- package/skills/yad-ui/SKILL.md +10 -10
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: yad-test-cases
|
|
3
|
-
description: '
|
|
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 (
|
|
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
|
-
**
|
|
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
|
|
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
|
|
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
|
-
**
|
|
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
|
-
**
|
|
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 —
|
|
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
|
|
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
|
-
|
|
188
|
-
`yad-review-gate` (base rule: owner + 1 reviewer). **Never record approval here.**
|
|
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
|
|
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
|
|
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
|
|
package/skills/yad-ui/SKILL.md
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: yad-ui
|
|
3
|
-
description: '
|
|
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 (
|
|
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
|
-
**
|
|
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
|
|
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
|
|
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
|
-
**
|
|
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
|
-
**
|
|
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 —
|
|
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.**
|
|
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
|
|
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.
|