yadflow 1.0.1 → 2.0.0

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 (77) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +137 -134
  3. package/bin/{sdlc.mjs → yad.mjs} +18 -17
  4. package/cli/commit.mjs +3 -3
  5. package/cli/epic-state.mjs +2 -2
  6. package/cli/gate.mjs +8 -8
  7. package/cli/lib.mjs +1 -1
  8. package/cli/manifest.mjs +77 -36
  9. package/cli/openpr.mjs +3 -3
  10. package/cli/plan.mjs +88 -1
  11. package/cli/platform.mjs +2 -2
  12. package/cli/reconcile.mjs +18 -10
  13. package/cli/repo.mjs +5 -5
  14. package/cli/setup.mjs +7 -7
  15. package/docs/index.html +1227 -0
  16. package/package.json +10 -7
  17. package/skills/sdlc/config.yaml +24 -24
  18. package/skills/sdlc/install.sh +2 -2
  19. package/skills/sdlc/module-help.csv +16 -16
  20. package/skills/{sdlc-author-analysis → yad-analysis}/SKILL.md +12 -12
  21. package/skills/{sdlc-author-architecture → yad-architecture}/SKILL.md +12 -12
  22. package/skills/{sdlc-author-architecture → yad-architecture}/references/contract-format.md +1 -1
  23. package/skills/{sdlc-backfill → yad-backfill}/SKILL.md +4 -4
  24. package/skills/{sdlc-backfill → yad-backfill}/references/backfill.md +2 -2
  25. package/skills/{sdlc-backfill → yad-backfill}/templates/checks/backfill-check.sh +1 -1
  26. package/skills/{sdlc-checks → yad-checks}/SKILL.md +20 -20
  27. package/skills/{sdlc-checks → yad-checks}/references/check-gates.md +21 -21
  28. package/skills/{sdlc-checks → yad-checks}/templates/checks/contract-check.sh +2 -2
  29. package/skills/{sdlc-checks → yad-checks}/templates/checks/verified-commits.sh +2 -2
  30. package/skills/{sdlc-checks/templates/github/sdlc-checks.yml → yad-checks/templates/github/yad-checks.yml} +3 -3
  31. package/skills/{sdlc-checks/templates/github/sdlc-verified-commits.yml → yad-checks/templates/github/yad-verified-commits.yml} +4 -4
  32. package/skills/{sdlc-checks → yad-checks}/templates/gitlab/gitlab-ci.include-root.yml +3 -3
  33. package/skills/{sdlc-checks/templates/gitlab/sdlc-checks.gitlab-ci.yml → yad-checks/templates/gitlab/yad-checks.gitlab-ci.yml} +7 -7
  34. package/skills/{sdlc-checks/templates/gitlab/sdlc-verified-commits.gitlab-ci.yml → yad-checks/templates/gitlab/yad-verified-commits.gitlab-ci.yml} +4 -4
  35. package/skills/{sdlc-connect-repos → yad-connect-repos}/SKILL.md +7 -7
  36. package/skills/{sdlc-connect-repos → yad-connect-repos}/references/code-context.md +6 -6
  37. package/skills/{sdlc-connect-repos → yad-connect-repos}/references/hub-config.md +3 -3
  38. package/skills/{sdlc-author-epic → yad-epic}/SKILL.md +13 -13
  39. package/skills/{sdlc-author-epic → yad-epic}/references/state-schema.md +13 -13
  40. package/skills/{sdlc-hub-bridge → yad-hub-bridge}/SKILL.md +24 -24
  41. package/skills/{sdlc-hub-bridge → yad-hub-bridge}/references/bridge.md +11 -11
  42. package/skills/{sdlc-hub-bridge → yad-hub-bridge}/references/login-roster.md +2 -2
  43. package/skills/{sdlc-hub-bridge → yad-hub-bridge}/templates/checks/hub-route.sh +3 -3
  44. package/skills/{sdlc-hub-bridge/templates/github/sdlc-gate-sync.yml → yad-hub-bridge/templates/github/yad-gate-sync.yml} +10 -10
  45. package/skills/{sdlc-hub-bridge → yad-hub-bridge}/templates/gitlab/gitlab-ci.include-root.yml +3 -3
  46. package/skills/{sdlc-hub-bridge/templates/gitlab/sdlc-gate-sync.gitlab-ci.yml → yad-hub-bridge/templates/gitlab/yad-gate-sync.gitlab-ci.yml} +11 -11
  47. package/skills/{sdlc-implement → yad-implement}/SKILL.md +14 -14
  48. package/skills/{sdlc-implement → yad-implement}/references/implement-conventions.md +4 -4
  49. package/skills/{sdlc-pr-template → yad-pr-template}/SKILL.md +11 -11
  50. package/skills/{sdlc-pr-template → yad-pr-template}/references/risk-routing.md +5 -5
  51. package/skills/{sdlc-pr-template → yad-pr-template}/templates/checks/risk-route.sh +2 -2
  52. package/skills/{sdlc-pr-template → yad-pr-template}/templates/github/pull_request_template.md +1 -1
  53. package/skills/{sdlc-pr-template → yad-pr-template}/templates/gitlab/merge_request_templates/Default.md +1 -1
  54. package/skills/{sdlc-pr-template → yad-pr-template}/templates/hub/github/pull_request_template.md +4 -4
  55. package/skills/{sdlc-pr-template → yad-pr-template}/templates/hub/gitlab/merge_request_templates/Default.md +4 -4
  56. package/skills/{sdlc-review-comments → yad-review-comments}/SKILL.md +6 -6
  57. package/skills/{sdlc-review-comments → yad-review-comments}/references/comment-conventions.md +6 -6
  58. package/skills/{sdlc-review-comments → yad-review-comments}/templates/github/REVIEW_COMMENTS.md +2 -2
  59. package/skills/{sdlc-review-comments → yad-review-comments}/templates/gitlab/REVIEW_COMMENTS.md +2 -2
  60. package/skills/{sdlc-review-gate → yad-review-gate}/SKILL.md +13 -13
  61. package/skills/{sdlc-review-gate → yad-review-gate}/references/gating.md +3 -3
  62. package/skills/{sdlc-run → yad-run}/SKILL.md +12 -12
  63. package/skills/{sdlc-run → yad-run}/references/run-loop.md +10 -10
  64. package/skills/{sdlc-ship → yad-ship}/SKILL.md +8 -8
  65. package/skills/{sdlc-ship → yad-ship}/references/ship-and-record.md +3 -3
  66. package/skills/{sdlc-ship → yad-ship}/templates/.coderabbit.yaml +1 -1
  67. package/skills/{sdlc-spec → yad-spec}/SKILL.md +11 -11
  68. package/skills/{sdlc-spec → yad-spec}/references/spec-handoff.md +2 -2
  69. package/skills/{sdlc-status → yad-status}/SKILL.md +6 -6
  70. package/skills/{sdlc-author-stories → yad-stories}/SKILL.md +10 -10
  71. package/skills/{sdlc-author-stories → yad-stories}/references/story-schema.md +1 -1
  72. package/skills/{sdlc-author-ui → yad-ui}/SKILL.md +9 -9
  73. /package/skills/{sdlc-checks → yad-checks}/templates/checks/build-test-lint.sh +0 -0
  74. /package/skills/{sdlc-checks → yad-checks}/templates/checks/spec-link.sh +0 -0
  75. /package/skills/{sdlc-checks → yad-checks}/templates/gitlab/.gitlab-ci.yml +0 -0
  76. /package/skills/{sdlc-connect-repos → yad-connect-repos}/references/repos-registry.md +0 -0
  77. /package/skills/{sdlc-implement → yad-implement}/templates/.gitmessage +0 -0
@@ -1,7 +1,7 @@
1
1
  <!-- SDLC HUB PR template — front-half artifact review (epic / architecture+contract / ui-design / stories). -->
2
- <!-- This PR is a REVIEW VEHICLE on the product hub, not a code merge. The file gate (sdlc-review-gate)
2
+ <!-- This PR is a REVIEW VEHICLE on the product hub, not a code merge. The file gate (yad-review-gate)
3
3
  advances the step; do NOT rely on merging this PR to advance. Reviewers approve/comment here, then a
4
- `sdlc-review-gate action: sync` pulls that into the file ledger. -->
4
+ `yad-review-gate action: sync` pulls that into the file ledger. -->
5
5
 
6
6
  ## Artifact under review
7
7
  - Epic: `EP-<slug>`
@@ -17,7 +17,7 @@
17
17
  - **Risk tags:** <none | contract | auth | payments> <!-- contract/auth/payments => escalates to domain owners -->
18
18
  - **Contract surface:** <n/a | locked @ sha256:…> <!-- architecture only; a re-lock invalidates prior approvals -->
19
19
 
20
- ## Required approvals (sdlc-review-gate rule)
20
+ ## Required approvals (yad-review-gate rule)
21
21
  - Base: **owner + 1 reviewer**.
22
22
  - Escalated (risk tag set, or a stories PR): **plus one domain-owner per touched repo** — see the
23
23
  requested reviewers / `domain:<repo>` labels on this PR. Run `bash checks/hub-route.sh <this-description>`
@@ -27,7 +27,7 @@
27
27
  - **Approve** this PR to record an `owner` / `reviewer` / `domain-owner` approval in the file ledger
28
28
  (your platform login maps to your SDLC name + role via `.sdlc/hub.json`'s roster).
29
29
  - **Comment / request changes** to record review comments (synced into `reviews/<artifact>--<date>--comments.md`).
30
- - **Do NOT merge to advance** — `sdlc-review-gate action: sync` + `action: advance` move the step.
30
+ - **Do NOT merge to advance** — `yad-review-gate action: sync` + `action: advance` move the step.
31
31
 
32
32
  ## Checklist
33
33
  - [ ] `owner` set in the artifact frontmatter (inherited from `epic.md`)
@@ -1,7 +1,7 @@
1
1
  <!-- SDLC HUB MR template — front-half artifact review (epic / architecture+contract / ui-design / stories). -->
2
- <!-- This MR is a REVIEW VEHICLE on the product hub, not a code merge. The file gate (sdlc-review-gate)
2
+ <!-- This MR is a REVIEW VEHICLE on the product hub, not a code merge. The file gate (yad-review-gate)
3
3
  advances the step; do NOT rely on merging this MR to advance. Reviewers approve/comment here, then a
4
- `sdlc-review-gate action: sync` pulls that into the file ledger. -->
4
+ `yad-review-gate action: sync` pulls that into the file ledger. -->
5
5
 
6
6
  ## Artifact under review
7
7
  - Epic: `EP-<slug>`
@@ -17,7 +17,7 @@
17
17
  - **Risk tags:** <none | contract | auth | payments> <!-- contract/auth/payments => escalates to domain owners -->
18
18
  - **Contract surface:** <n/a | locked @ sha256:…> <!-- architecture only; a re-lock invalidates prior approvals -->
19
19
 
20
- ## Required approvals (sdlc-review-gate rule)
20
+ ## Required approvals (yad-review-gate rule)
21
21
  - Base: **owner + 1 reviewer**.
22
22
  - Escalated (risk tag set, or a stories MR): **plus one domain-owner per touched repo** — see the
23
23
  reviewers / `domain:<repo>` labels on this MR. Run `bash checks/hub-route.sh <this-description>` to list them.
@@ -26,7 +26,7 @@
26
26
  - **Approve** this MR to record an `owner` / `reviewer` / `domain-owner` approval in the file ledger
27
27
  (your platform login maps to your SDLC name + role via `.sdlc/hub.json`'s roster).
28
28
  - **Comment** to record review comments (synced into `reviews/<artifact>--<date>--comments.md`).
29
- - **Do NOT merge to advance** — `sdlc-review-gate action: sync` + `action: advance` move the step.
29
+ - **Do NOT merge to advance** — `yad-review-gate action: sync` + `action: advance` move the step.
30
30
 
31
31
  ## Checklist
32
32
  - [ ] `owner` set in the artifact frontmatter (inherited from `epic.md`)
@@ -1,13 +1,13 @@
1
1
  ---
2
- name: sdlc-review-comments
3
- description: 'Installs platform-matched PR/MR review-comment scaffolds into a repo so reviewers leave structured, attributable feedback that maps cleanly into the SDLC file ledger. Works for code repos and the product hub. GitHub has no repo-level multi-comment template, so the scaffold is a committed REVIEW_COMMENTS.md reviewers copy from (saved as Saved Replies on GitHub / comment templates on GitLab). Each canned comment carries an attributable `**<name> (<role>)**` header that matches the `## <name> (<role>)` headings sdlc-review-gate writes. Use when the user says "add the comment templates" or "set up review comments" for a repo.'
2
+ name: yad-review-comments
3
+ description: 'Installs platform-matched PR/MR review-comment scaffolds into a repo so reviewers leave structured, attributable feedback that maps cleanly into the SDLC file ledger. Works for code repos and the product hub. GitHub has no repo-level multi-comment template, so the scaffold is a committed REVIEW_COMMENTS.md reviewers copy from (saved as Saved Replies on GitHub / comment templates on GitLab). Each canned comment carries an attributable `**<name> (<role>)**` header that matches the `## <name> (<role>)` headings yad-review-gate writes. Use when the user says "add the comment templates" or "set up review comments" for a repo.'
4
4
  ---
5
5
 
6
6
  # SDLC — Review Comment Templates
7
7
 
8
8
  **Goal:** Give reviewers a consistent, **attributable** set of canned PR/MR comments so review feedback
9
9
  reads the same across repos and **maps cleanly into the file ledger** the gate keeps. The headers match
10
- the `## <name> (<role>)` shape `sdlc-review-gate` writes into `reviews/<artifact>--<date>--comments.md`
10
+ the `## <name> (<role>)` shape `yad-review-gate` writes into `reviews/<artifact>--<date>--comments.md`
11
11
  and the per-commenter record in `comments.json`, so a synced or copy-pasted comment lands without
12
12
  reformatting.
13
13
 
@@ -55,9 +55,9 @@ Report what was committed. The scaffold is an aid to human review; it approves n
55
55
  - **Drop only the matching scaffold** for the detected platform.
56
56
  - **Attributable headers** — every canned comment keeps the `**<name> (<role>)**` form so the gate's
57
57
  ledger and the PR thread agree.
58
- - **Nothing auto-advances.** Comments feed the human review and (via the bridge) `sdlc-review-gate`.
58
+ - **Nothing auto-advances.** Comments feed the human review and (via the bridge) `yad-review-gate`.
59
59
 
60
60
  ## Reference
61
61
  - Comment conventions + the full scaffold contents: `references/comment-conventions.md`.
62
- - The ledger headings these match: `../sdlc-review-gate/SKILL.md` (comment action) and `references/gating.md`.
63
- - The review bridge that syncs platform comments into the ledger: `../sdlc-hub-bridge/SKILL.md`.
62
+ - The ledger headings these match: `../yad-review-gate/SKILL.md` (comment action) and `references/gating.md`.
63
+ - The review bridge that syncs platform comments into the ledger: `../yad-hub-bridge/SKILL.md`.
@@ -8,14 +8,14 @@ attributable header:
8
8
  **<name> (<role>)**
9
9
  ```
10
10
 
11
- `<role>` is one of `owner | reviewer | domain-owner` — the same roles `sdlc-review-gate` records. This
11
+ `<role>` is one of `owner | reviewer | domain-owner` — the same roles `yad-review-gate` records. This
12
12
  header matches the `## <name> (<role>)` headings the gate writes into
13
13
  `reviews/<artifact>--<date>--comments.md`, so a comment copied from the PR thread (or synced by
14
- `sdlc-hub-bridge`) needs no reformatting to land in the ledger.
14
+ `yad-hub-bridge`) needs no reformatting to land in the ledger.
15
15
 
16
16
  ## Blocking comments (a gate or rule says stop)
17
17
 
18
- These map to the code-repo check gates (`sdlc-checks`) and the file-boundary / contract rules:
18
+ These map to the code-repo check gates (`yad-checks`) and the file-boundary / contract rules:
19
19
 
20
20
  - **spec-link** — "This commit has no `Task: <story>-<task>` trailer; the spec-link gate will fail. Add
21
21
  the trailer (and ensure `specs/<story>/link.md` exists)."
@@ -24,12 +24,12 @@ These map to the code-repo check gates (`sdlc-checks`) and the file-boundary / c
24
24
  - **build-test-lint** — "Lint/build/test is red (or the test doesn't exercise the new behavior). The
25
25
  build-test-lint gate must pass with a test that actually exercises the acceptance criterion."
26
26
  - **file-boundary** — "This diff touches files the task's `Files:` list didn't declare. Re-scope the
27
- task (re-run `sdlc-spec`) rather than widening the diff silently."
27
+ task (re-run `yad-spec`) rather than widening the diff silently."
28
28
 
29
29
  ## Escalation / routing comment
30
30
 
31
31
  - **routing** — "Risk is `high` / a contract|auth|payments surface is touched — this needs a
32
- domain-owner approval per touched repo (the same escalation `sdlc-review-gate` applies). Run
32
+ domain-owner approval per touched repo (the same escalation `yad-review-gate` applies). Run
33
33
  `bash checks/risk-route.sh <body>` (code repo) or `bash checks/hub-route.sh <body>` (hub)."
34
34
 
35
35
  ## Non-blocking comments
@@ -41,7 +41,7 @@ These map to the code-repo check gates (`sdlc-checks`) and the file-boundary / c
41
41
  ## Approval note
42
42
 
43
43
  - **approve** — "Approving as `<role>`. Recorded in `approvals.json` (code-repo ship: `build-log.json`).
44
- On the hub, your approval here is pulled in by `sdlc-review-gate action: sync`."
44
+ On the hub, your approval here is pulled in by `yad-review-gate action: sync`."
45
45
 
46
46
  ## Hub front-artifact review
47
47
 
@@ -20,13 +20,13 @@ SDLC review ledger (`reviews/<artifact>--<date>--comments.md`) so feedback stays
20
20
 
21
21
  **<name> (<role>)**
22
22
  - file-boundary: this touches files the task's `Files:` list didn't declare. Re-scope the task (re-run
23
- `sdlc-spec`) instead of widening the diff.
23
+ `yad-spec`) instead of widening the diff.
24
24
 
25
25
  ## Routing / escalation
26
26
 
27
27
  **<name> (<role>)**
28
28
  - routing: risk is `high` / a contract|auth|payments surface is touched — needs a domain-owner approval
29
- per touched repo (same escalation as `sdlc-review-gate`). Run `bash checks/risk-route.sh <body>`.
29
+ per touched repo (same escalation as `yad-review-gate`). Run `bash checks/risk-route.sh <body>`.
30
30
 
31
31
  ## Non-blocking
32
32
 
@@ -20,13 +20,13 @@ SDLC review ledger (`reviews/<artifact>--<date>--comments.md`) so feedback stays
20
20
 
21
21
  **<name> (<role>)**
22
22
  - file-boundary: this touches files the task's `Files:` list didn't declare. Re-scope the task (re-run
23
- `sdlc-spec`) instead of widening the diff.
23
+ `yad-spec`) instead of widening the diff.
24
24
 
25
25
  ## Routing / escalation
26
26
 
27
27
  **<name> (<role>)**
28
28
  - routing: risk is `high` / a contract|auth|payments surface is touched — needs a domain-owner approval
29
- per touched repo (same escalation as `sdlc-review-gate`). Run `bash checks/risk-route.sh <body>`.
29
+ per touched repo (same escalation as `yad-review-gate`). Run `bash checks/risk-route.sh <body>`.
30
30
 
31
31
  ## Non-blocking
32
32
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: sdlc-review-gate
2
+ name: yad-review-gate
3
3
  description: 'The reusable team review + approve gate for the SDLC. Shares an authored artifact for review, records reviewer comments and approvals as files, enforces the owner + 1 reviewer rule (escalating to domain owners on contract/auth/payments), and advances the epic state ONLY when approval is recorded. Use when the user says "review the analysis/epic/architecture/UI/stories", "comment", "approve", or "advance the gate".'
4
4
  ---
5
5
 
@@ -13,7 +13,7 @@ escalation applies only where `risk_tags` or per-repo routing call for it.
13
13
 
14
14
  This gate is **swappable and file-driven**: it talks only through files. A front step advances only on a
15
15
  human act — recording an approval and `advance`, or (with the bridge) **merging the approved,
16
- fully-resolved review PR/MR**. It works the same whether a human or the `sdlc gate` CLI triggers it — the
16
+ fully-resolved review PR/MR**. It works the same whether a human or the `yad gate` CLI triggers it — the
17
17
  trigger is a parameter, not a hardcoded human.
18
18
 
19
19
  ## Conventions
@@ -29,7 +29,7 @@ trigger is a parameter, not a hardcoded human.
29
29
  - `action`: one of `open` | `comment` | `approve` | `sync` | `advance` (default: `open`).
30
30
  - For `comment` / `approve`: the reviewer name and role (`owner` | `reviewer` | `domain-owner`),
31
31
  and for domain owners the `domain` (repo/area). Ask if not provided.
32
- - `sync` needs no reviewer input — it reads the platform PR/MR review state (via `sdlc-hub-bridge`).
32
+ - `sync` needs no reviewer input — it reads the platform PR/MR review state (via `yad-hub-bridge`).
33
33
 
34
34
  ## On Activation
35
35
 
@@ -60,7 +60,7 @@ the rule above, and tell reviewers how to comment/approve. Set the step `status`
60
60
 
61
61
  If `.sdlc/hub.json` has a non-null `platform`, `bridge_enabled: true`, `config.yaml` `hub.bridge: true`,
62
62
  and `gh`/`glab` is authenticated, **also open a review PR/MR on the hub** by invoking
63
- `sdlc-hub-bridge action: open` (epic + artifact). Record the PR in `epics/<epic>/.sdlc/hub-prs.json`
63
+ `yad-hub-bridge action: open` (epic + artifact). Record the PR in `epics/<epic>/.sdlc/hub-prs.json`
64
64
  (`{step, artifact, platform, number, url, branch, lastSyncedAt}`) and report the URL + required
65
65
  reviewers. Otherwise (no platform / disabled / no CLI) proceed **file-only** exactly as before — no
66
66
  error. Opening the PR records no approvals and never advances.
@@ -119,7 +119,7 @@ a separate, explicit check.
119
119
 
120
120
  **`sync`** — (the platform bridge input path) Pull the hub review PR/MR's review state into the ledger,
121
121
  then re-evaluate the rule (Step 3). Read the PR for this step from `.sdlc/hub-prs.json` and use
122
- `sdlc-hub-bridge`'s read recipes (`../sdlc-hub-bridge/references/bridge.md`) to fetch reviews + comments
122
+ `yad-hub-bridge`'s read recipes (`../yad-hub-bridge/references/bridge.md`) to fetch reviews + comments
123
123
  via the local user's `gh`/`glab`. For each:
124
124
  - map the platform `login` → SDLC `name` + `role` via `.sdlc/hub.json`'s roster (a roster `name` equal
125
125
  to a repo's `domain_owner` in `repos.json` becomes that repo's `domain-owner` for a touched domain;
@@ -131,7 +131,7 @@ via the local user's `gh`/`glab`. For each:
131
131
  key comments on the platform comment id (re-running `sync` does not duplicate). **Manual approvals (no
132
132
  `source` tag) are never touched.** For the architecture+contract step, discard bridge approvals dated
133
133
  before a new contract lock (re-lock invalidates platform approvals too). Then refresh the `approved.md`
134
- roster, set `hub-prs.json` `lastSyncedAt`, and **re-evaluate Step 3**. Under the PR-driven CLI (`sdlc
134
+ roster, set `hub-prs.json` `lastSyncedAt`, and **re-evaluate Step 3**. Under the PR-driven CLI (`yad
135
135
  gate sync`), `sync` advances the step when Step 3 passes on a **merged**, fully-resolved, approved PR
136
136
  (the merge is the human act); otherwise it records state and holds the step `in_review`.
137
137
 
@@ -145,7 +145,7 @@ The step may advance **iff ALL hold**:
145
145
  2. The artifact has not changed since the latest approval round (no newer authored edit than the
146
146
  newest `approved` record). If it changed, approvals are stale → return to `comment`. For the
147
147
  **architecture+contract** review, also recompute the contract-surface hash (see
148
- `../sdlc-author-architecture/references/contract-format.md`): if it no longer matches
148
+ `../yad-architecture/references/contract-format.md`): if it no longer matches
149
149
  `.sdlc/contract-lock.json`, the surface changed → approvals stale → return to `comment` and re-lock.
150
150
 
151
151
  If the predicate **fails**: report exactly which approvals are still missing and STOP. Do not modify
@@ -161,9 +161,9 @@ If the predicate **passes**:
161
161
  - Write `state.json`. Report the advance and what the next authored artifact is (or that the epic is
162
162
  now `ready-for-build`).
163
163
 
164
- ### PR-driven automation (the `sdlc gate` CLI)
164
+ ### PR-driven automation (the `yad gate` CLI)
165
165
  When the hub has a platform, the mechanical `open`/`sync`/`advance` is performed deterministically by the
166
- **`sdlc gate` CLI** (`sdlc gate open|sync|comments|status`), which writes the same `.sdlc/` + `reviews/`
166
+ **`yad gate` CLI** (`yad gate open|sync|comments|status`), which writes the same `.sdlc/` + `reviews/`
167
167
  records this skill describes. The skill's job is then the human half: presenting the artifact, helping the
168
168
  owner address comments, and narrating the gate. The CLI is the single implementation of the gh/glab
169
169
  mechanics — do not hand-run gh/glab recipes when it is installed.
@@ -172,11 +172,11 @@ Under that CLI the gate **advances on merge**: a review PR/MR whose reviewer rul
172
172
  comment threads are **all resolved**, and which has been **merged** auto-marks the step `done` and
173
173
  unblocks the next step. (Until those three hold, the step stays `in_review`.)
174
174
 
175
- `sync` can also be **event-driven**: when the hub is wired with the gate-sync CI (`sdlc-hub-bridge`
175
+ `sync` can also be **event-driven**: when the hub is wired with the gate-sync CI (`yad-hub-bridge`
176
176
  `wire` action), every approval / change request / dismissal / merge on the review PR/MR triggers
177
- `sdlc gate ci` on the hub, which runs the same sync and commits the ledger updates directly to the
177
+ `yad gate ci` on the hub, which runs the same sync and commits the ledger updates directly to the
178
178
  hub's default branch (pull to see them locally). The predicate, the human merge, and manual
179
- `sdlc gate sync` are all unchanged — CI never approves and never merges.
179
+ `yad gate sync` are all unchanged — CI never approves and never merges.
180
180
 
181
181
  ### Hard rules (build plan §1, §5)
182
182
  - **The merge click is the human approval act.** A front step advances only when a human merges the
@@ -193,4 +193,4 @@ hub's default branch (pull to see them locally). The predicate, the human merge,
193
193
 
194
194
  ## Reference
195
195
  - Gating details and worked example: `references/gating.md`.
196
- - The platform PR/MR bridge (`open`/`sync` mechanics, read recipes, roster): `../sdlc-hub-bridge/SKILL.md`.
196
+ - The platform PR/MR bridge (`open`/`sync` mechanics, read recipes, roster): `../yad-hub-bridge/SKILL.md`.
@@ -33,7 +33,7 @@ content. This prevents "approve, then quietly change it" (build plan §5 spirit)
33
33
  For the architecture+contract review there is a second, content-based staleness check: recompute the
34
34
  SHA-256 of the contract-surface block and compare it to `.sdlc/contract-lock.json`. A mismatch means
35
35
  the locked surface changed even if the file's mtime looks fine — approvals are stale, re-lock and
36
- re-approve. (Hash recipe: `sdlc-author-architecture/references/contract-format.md`.)
36
+ re-approve. (Hash recipe: `yad-architecture/references/contract-format.md`.)
37
37
 
38
38
  ## Worked example — epic gate
39
39
 
@@ -58,7 +58,7 @@ attributable, and it is the same shape a future service or the platform bridge c
58
58
  ## Platform-backed input (the bridge)
59
59
  When the hub has a platform (`.sdlc/hub.json`) and the bridge is enabled, reviewers can approve/comment
60
60
  on a real PR/MR instead of (or as well as) the skill recording it directly. `action: sync`
61
- (`sdlc-hub-bridge`) reads that platform state with the reviewer's own `gh`/`glab` and writes the **same**
61
+ (`yad-hub-bridge`) reads that platform state with the reviewer's own `gh`/`glab` and writes the **same**
62
62
  `approvals.json` / `comments.json` / `reviews/*.md` records the manual path writes — bridge approvals
63
63
  tagged `"source": "bridge"`. **The predicate above is unchanged**: it counts owner/reviewer/domain-owner
64
64
  approvals regardless of how they were recorded.
@@ -69,7 +69,7 @@ approvals regardless of how they were recorded.
69
69
  comment id) and never touches **manual** approvals.
70
70
  - The architecture+contract staleness rule applies to bridge approvals too: a re-lock discards bridge
71
71
  approvals dated before the new lock.
72
- - No platform / no CLI → the gate runs file-only with no error. Detail: `../sdlc-hub-bridge/references/bridge.md`.
72
+ - No platform / no CLI → the gate runs file-only with no error. Detail: `../yad-hub-bridge/references/bridge.md`.
73
73
 
74
74
  ## Why this shape
75
75
  - Owner + 1 reviewer keeps review load low on a small team (design priority 2) while still requiring
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: sdlc-run
2
+ name: yad-run
3
3
  description: 'Phase 4 (automation) — the orchestrator that makes the second dial real. Drives a story''s back-half loop (spec → tasks → implement → checks) in one code repo, reading each step''s automation dial from build-state: on machine_advance it advances on its own, on human_approve it stops for a human. Records every run in the trust log (the evidence base for earning automation). Realizes Step B: when checks is earned, a clean gate pass auto-advances to engineer-review; any failure, scope overrun, or contract-surface touch HALTS and pulls in a human. Also sets a step''s dial (gated by trust evidence) and flips the system-wide kill switch. Never advances a front state or the engineer review. Use when the user says "run the build half", "advance story <id>", "set the checks dial", or "kill switch".'
4
4
  ---
5
5
 
@@ -32,9 +32,9 @@ signal to seed them from, so they are earned only on real runs.
32
32
  `trust_threshold`, `locked_steps`, `kill_switch`).
33
33
  - Per-story build-half state: `epics/<epic>/.sdlc/build-state/<story-id>.json` (per repo).
34
34
  - Trust ledger: `epics/<epic>/.sdlc/trust-log.json` (append-only). Schemas:
35
- `../sdlc-author-epic/references/state-schema.md`.
36
- - The orchestrator **calls the existing step skills unchanged** — `sdlc-spec` (A), `sdlc-implement`
37
- (B), `sdlc-checks` (C). It owns only the *advance decision*, never what a step does.
35
+ `../yad-epic/references/state-schema.md`.
36
+ - The orchestrator **calls the existing step skills unchanged** — `yad-spec` (A), `yad-implement`
37
+ (B), `yad-checks` (C). It owns only the *advance decision*, never what a step does.
38
38
 
39
39
  ## Inputs
40
40
 
@@ -54,8 +54,8 @@ Read `config.yaml` `automation`, the story's `build-state/<story>.json` (create
54
54
  ### `action: run` — drive the loop
55
55
  Walk the steps for `repo` starting at `from`/`currentStep`. For each step:
56
56
 
57
- 1. **Run the step's skill** — `spec`→`sdlc-spec`, `tasks`→ the tasks leg of `sdlc-spec`,
58
- `implement`→`sdlc-implement`, `checks`→`sdlc-checks (action: run)`. Capture its result.
57
+ 1. **Run the step's skill** — `spec`→`yad-spec`, `tasks`→ the tasks leg of `yad-spec`,
58
+ `implement`→`yad-implement`, `checks`→`yad-checks (action: run)`. Capture its result.
59
59
  2. **Derive trust signals & append a trust-log entry** (`ranBy: machine` if this advance was
60
60
  automated, else `human`) — see `references/run-loop.md` for the derivation. Do this for *every*
61
61
  step run, pass or fail; the log is the evidence base.
@@ -63,14 +63,14 @@ Walk the steps for `repo` starting at `from`/`currentStep`. For each step:
63
63
  to `human_approve`** if `automation.kill_switch` is true OR the step is `locked` OR the step id is
64
64
  in `automation.locked_steps`. (So a kill switch or a lock always wins.)
65
65
  4. **Decide:**
66
- - **HALT** if the step failed — any check FAIL, a scope overrun (`sdlc-implement` stopped on the
66
+ - **HALT** if the step failed — any check FAIL, a scope overrun (`yad-implement` stopped on the
67
67
  file-boundary rule), a contract-surface touch, or any ambiguity. Set the step `status: blocked`,
68
68
  write the `rejected` trust entry, **stop the loop**, and report what a human must resolve.
69
69
  - else if effective dial is **`machine_advance`** → set the step `done`, advance `currentStep` to
70
70
  the next step, and **continue the loop** (this is the Step B auto-advance for `checks`).
71
71
  - else (**`human_approve`**) → set the step `done`/`in_review`, **stop** and report
72
72
  "waiting for a human at `<next-step>`".
73
- 5. **Always stop at `engineer-review`** (it is `locked`): hand off to `sdlc-ship` for the human merge
73
+ 5. **Always stop at `engineer-review`** (it is `locked`): hand off to `yad-ship` for the human merge
74
74
  gate, which finalizes the trust verdict (confirm/override the provisional one).
75
75
 
76
76
  ### `action: set-dial` — earn (or revert) a step's automation
@@ -87,7 +87,7 @@ Flip `step`'s `automation` to `to` in build-state. Enforce, in order:
87
87
  ### `action: kill` / `action: unkill` — the kill switch
88
88
  Set `automation.kill_switch` to `true` (`kill`) or `false` (`unkill`) in `config.yaml`. While true,
89
89
  **every** step's effective dial is `human_approve` system-wide — no per-step edits, instantly
90
- reversible (build plan §Safety). Report the new state and that `sdlc-status` will show it.
90
+ reversible (build plan §Safety). Report the new state and that `yad-status` will show it.
91
91
 
92
92
  ## Hard rules (phase-4-build-plan.md)
93
93
 
@@ -104,6 +104,6 @@ reversible (build plan §Safety). Report the new state and that `sdlc-status` wi
104
104
 
105
105
  ## Reference
106
106
  - The loop, the trust-verdict derivation, and the threshold predicate: `references/run-loop.md`.
107
- - State/trust schemas: `../sdlc-author-epic/references/state-schema.md`.
108
- - The steps it drives: `../sdlc-spec/`, `../sdlc-implement/`, `../sdlc-checks/`; the human gate it
109
- hands off to: `../sdlc-ship/`.
107
+ - State/trust schemas: `../yad-epic/references/state-schema.md`.
108
+ - The steps it drives: `../yad-spec/`, `../yad-implement/`, `../yad-checks/`; the human gate it
109
+ hands off to: `../yad-ship/`.
@@ -1,4 +1,4 @@
1
- # `sdlc-run` — the loop, the trust verdict, the threshold
1
+ # `yad-run` — the loop, the trust verdict, the threshold
2
2
 
3
3
  This is the detail behind `SKILL.md`. It restates the orchestration so the skill is self-contained,
4
4
  and pins down the two judgments the skill makes: **what trust verdict to record** and **when a step
@@ -12,9 +12,9 @@ From `config.yaml` `automation.back_steps` plus the human merge gate:
12
12
  spec → tasks → implement → checks → engineer-review(locked)
13
13
  ```
14
14
 
15
- `spec` and `tasks` are the two legs of `sdlc-spec` (the heavy ceremony, then the atomic `tasks.md`).
16
- `implement` is one atomic task via `sdlc-implement`. `checks` is `sdlc-checks (action: run)`.
17
- `engineer-review` is the human gate at `sdlc-ship` — always a stop, never automated.
15
+ `spec` and `tasks` are the two legs of `yad-spec` (the heavy ceremony, then the atomic `tasks.md`).
16
+ `implement` is one atomic task via `yad-implement`. `checks` is `yad-checks (action: run)`.
17
+ `engineer-review` is the human gate at `yad-ship` — always a stop, never automated.
18
18
 
19
19
  ## The loop (pseudocode)
20
20
 
@@ -24,7 +24,7 @@ bs = build-state/<story>.json.repos[<repo>] # create from defaults if
24
24
  step = from or bs.currentStep
25
25
 
26
26
  while step is a back step (not engineer-review):
27
- result = run_step_skill(step) # sdlc-spec | sdlc-implement | sdlc-checks
27
+ result = run_step_skill(step) # yad-spec | yad-implement | yad-checks
28
28
 
29
29
  signals = derive_signals(step, result) # see "Deriving signals"
30
30
  verdict = derive_verdict(signals) # rejected | approved-with-edits | approved-unchanged
@@ -40,7 +40,7 @@ while step is a back step (not engineer-review):
40
40
  else: # human_approve
41
41
  bs.step.status = "done"; persist; STOP and report "waiting for human at <next>"
42
42
 
43
- # reached engineer-review: always stop, hand to sdlc-ship (human gate, finalizes the verdict)
43
+ # reached engineer-review: always stop, hand to yad-ship (human gate, finalizes the verdict)
44
44
  ```
45
45
 
46
46
  `ranBy` is `machine` when the *previous* step's effective dial caused this step to run without a human
@@ -62,17 +62,17 @@ per-step dial says. `engineer-review` and the four front states are covered by `
62
62
  ## Deriving signals & the provisional verdict
63
63
 
64
64
  `signals` are the raw facts of the run; the **provisional `verdict`** is derived from them. The human
65
- gate for each step (the engineer review at `sdlc-ship` for `implement`; spec acceptance for `spec`;
65
+ gate for each step (the engineer review at `yad-ship` for `implement`; spec acceptance for `spec`;
66
66
  first-consume for `tasks`; the gate itself for `checks`) later confirms or overrides the verdict and
67
67
  finalizes the entry — a human always has the last word on the trust signal.
68
68
 
69
69
  `signals` (only the relevant ones are set per step — see the table in
70
- `../sdlc-author-epic/references/state-schema.md`):
70
+ `../yad-epic/references/state-schema.md`):
71
71
  - `checks` — `pass` | `fail` | `n/a` (only the `checks` step runs the three gates).
72
72
  - `human_edited_diff` — `true` if a human changed the produced **diff** before merge (`implement`).
73
73
  - `human_edited_spec` — `true` if a human edited the generated **spec/plan/tasks** before accepting (`spec`).
74
74
  - `task_rescoped` — `true` if a task's declared `Files:`/scope was edited before implementing (`tasks`).
75
- - `scope_overrun` — `true` if `sdlc-implement` stopped on the file-boundary rule (diff outside the
75
+ - `scope_overrun` — `true` if `yad-implement` stopped on the file-boundary rule (diff outside the
76
76
  task's declared files).
77
77
  - `contract_touch` — `true` if the diff touched the locked contract surface without an upstream
78
78
  re-lock (routes back to the architecture gate).
@@ -114,7 +114,7 @@ Reverting (`to: human_approve`) is never gated — automation must be reversible
114
114
 
115
115
  ## What stays human, always
116
116
 
117
- - `engineer-review` — the merge gate. `sdlc-run` always stops here and hands to `sdlc-ship`.
117
+ - `engineer-review` — the merge gate. `yad-run` always stops here and hands to `yad-ship`.
118
118
  - The four front states (`epic`, `architecture`, `ui-design`, `stories`) — not in `back_steps`, in
119
119
  `locked_steps`; the dial-setter refuses them.
120
120
  - Any contract-surface change — halts the loop and routes back to the architecture gate, regardless of
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: sdlc-ship
2
+ name: yad-ship
3
3
  description: 'Build-half Step E of the gated SDLC — AI review, engineer review, then ship. Wire an advisory AI first-pass (CodeRabbit) on the PR/MR; record the human engineer review with the same human_approve discipline as the front gates (owner + 1 reviewer, escalating to domain owners on high risk / contract / auth / payments — the Step D routing); and on merge, record the ship in the epic build-log and update the story state so the epic → story → task → PR chain is traceable. Never auto-advances — the human owns the merge. Use when the user says "ship this task", "record the engineer review", or "wire the AI review".'
4
4
  ---
5
5
 
@@ -17,9 +17,9 @@ then **ship** — merge, record the ship, and update the story state. This is th
17
17
  truth: it holds the story and the build ledger).
18
18
  - Code repos are separate git repos under `{project-root}/demo-repos/<repo>/`.
19
19
  - The build ledger is `{project-root}/epics/<epic>/.sdlc/build-log.json` (append-only).
20
- - The engineer-review rule reuses `sdlc-review-gate`: base = at least one `owner` AND one distinct
20
+ - The engineer-review rule reuses `yad-review-gate`: base = at least one `owner` AND one distinct
21
21
  `reviewer`; **escalated** (the PR's Impact & Risk is `high`, or it touches contract/auth/payments) =
22
- base PLUS one `domain-owner` per touched domain — the same routing `sdlc-pr-template`'s
22
+ base PLUS one `domain-owner` per touched domain — the same routing `yad-pr-template`'s
23
23
  `risk-route.sh` prints.
24
24
  - AI review wiring: `templates/.coderabbit.yaml` → `<repo>/.coderabbit.yaml`.
25
25
 
@@ -42,7 +42,7 @@ ran; surface its findings to the engineer. Do **not** treat AI approval as a gat
42
42
  ### Step 2 — `approve` (the engineer review — the human gate)
43
43
  A human engineer reads the diff **against the spec** (`specs/<story>/`) and the acceptance criteria,
44
44
  and records an approval. Determine the rule from the PR's Impact & Risk block (run
45
- `../sdlc-pr-template/templates/checks/risk-route.sh` on the PR body): base, or escalated to a
45
+ `../yad-pr-template/templates/checks/risk-route.sh` on the PR body): base, or escalated to a
46
46
  domain-owner per touched domain. Record each approval; re-evaluate whether the rule is satisfied.
47
47
  Recording an approval does **not** ship — shipping is a separate, explicit step. Front-half discipline:
48
48
  the gate talks only through files; refuse to treat AI review as a human approval.
@@ -62,7 +62,7 @@ engineer-review rule is satisfied (Step 2). Then:
62
62
  the story frontmatter `status: shipped`; otherwise `status: in-build`. The chain
63
63
  **epic → story → task → PR → mergeCommit** is now traceable end to end.
64
64
  - **Finalize the trust verdict (Phase 4).** If this story has a `build-state/<story>.json` (it ran
65
- through `sdlc-run`), the engineer **confirms or overrides** the provisional trust verdict that the
65
+ through `yad-run`), the engineer **confirms or overrides** the provisional trust verdict that the
66
66
  orchestrator derived for this run, and the final verdict is written to
67
67
  `epics/<epic>/.sdlc/trust-log.json`. The human has the last word on the trust signal: a diff merged
68
68
  as authored is `approved-unchanged`; one the engineer edited before merge is `approved-with-edits`;
@@ -76,11 +76,11 @@ stays as it was (`ready-for-build`). The build half is recorded in `build-log.js
76
76
  ## Hard rules (build plan §E, Cross-cutting)
77
77
 
78
78
  - **AI review is advisory, never the authority.** Only a human engineer approval counts toward the gate.
79
- - **High risk routes to domain owners** — the same escalation as `sdlc-review-gate` / `risk-route.sh`.
79
+ - **High risk routes to domain owners** — the same escalation as `yad-review-gate` / `risk-route.sh`.
80
80
  - **Ship only after gates + engineer review.** No gate skipped; the human owns the merge.
81
81
  - **Nothing auto-advances.** Step E records human decisions in files; it never machine-advances.
82
82
 
83
83
  ## Reference
84
84
  - The build ledger + story-state rules: `references/ship-and-record.md`.
85
- - The escalation reused: `../sdlc-review-gate/SKILL.md`; the routing helper: `../sdlc-pr-template/`.
86
- - The gates that must pass first: `../sdlc-checks/references/check-gates.md`.
85
+ - The escalation reused: `../yad-review-gate/SKILL.md`; the routing helper: `../yad-pr-template/`.
86
+ - The gates that must pass first: `../yad-checks/references/check-gates.md`.
@@ -1,6 +1,6 @@
1
1
  # Ship — the build ledger and the story state
2
2
 
3
- Step E (`sdlc-ship`) closes the build half: AI review (advisory) → engineer review (the human gate) →
3
+ Step E (`yad-ship`) closes the build half: AI review (advisory) → engineer review (the human gate) →
4
4
  ship. Shipping records the merge and updates the story state so the whole chain is traceable.
5
5
 
6
6
  ## Two sets of eyes
@@ -10,7 +10,7 @@ ship. Shipping records the merge and updates the story state so the whole chain
10
10
  gate. Where CodeRabbit can't run (no remote), an equivalent AI first-pass is run by hand and its
11
11
  notes captured.
12
12
  2. **Engineer review (the authority).** A human reads the diff against the spec and the acceptance
13
- criteria and records an approval. The rule is `sdlc-review-gate`'s:
13
+ criteria and records an approval. The rule is `yad-review-gate`'s:
14
14
  - **base:** at least one `owner` AND one distinct `reviewer`.
15
15
  - **escalated:** when the PR's Impact & Risk is `high`, or it touches contract/auth/payments — base
16
16
  PLUS one `domain-owner` per touched domain (exactly what `risk-route.sh` prints).
@@ -64,4 +64,4 @@ trailer → story → epic).
64
64
  2. The **AI review** has run (advisory; findings surfaced to the engineer).
65
65
  3. The **engineer review** rule is satisfied (base or escalated per the Impact & Risk block).
66
66
 
67
- Only then does the human merge and `sdlc-ship` record it. Nothing auto-advances.
67
+ Only then does the human merge and `yad-ship` record it. Nothing auto-advances.
@@ -1,6 +1,6 @@
1
1
  # CodeRabbit — AI first-pass review (Phase 3 build plan §E).
2
2
  # Advisory only: a second set of eyes that COMMENTS on every PR. It never approves or merges — the
3
- # human engineer review (sdlc-review-gate discipline) owns that decision. See skills/sdlc-ship.
3
+ # human engineer review (yad-review-gate discipline) owns that decision. See skills/yad-ship.
4
4
  language: en
5
5
  reviews:
6
6
  request_changes_workflow: false # never block the merge — the engineer review is the gate
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: sdlc-spec
2
+ name: yad-spec
3
3
  description: 'Build-half Step A of the gated SDLC. For one ready-for-build story and one of its repos, run the heavy Spec Kit ceremony ONCE (specify → clarify → plan → analyze → checklist → tasks) inside that code repo, writing specs/<story-id>/ in Spec Kit''s own layout. Drives /speckit.* as harness slash-commands when installed; authors the same files by hand and records speckit: not-installed when absent. References the locked contract — never re-invents the surface. Writes link.md back to the story. Never auto-advances. Use when the user says "spec story <id> in <repo>" or after a story is ready-for-build.'
4
4
  ---
5
5
 
@@ -7,16 +7,16 @@ description: 'Build-half Step A of the gated SDLC. For one ready-for-build story
7
7
 
8
8
  **Goal:** Turn ONE `ready-for-build` story into a per-repo Spec Kit spec/plan/tasks inside that
9
9
  story's code repo. The heavy spec ceremony runs **once per story per repo**; the light
10
- tasks → implement loop is **Step B** (`sdlc-implement`). This step **never re-locks the contract** —
10
+ tasks → implement loop is **Step B** (`yad-implement`). This step **never re-locks the contract** —
11
11
  the cross-repo surface is owned upstream by the architecture gate (build plan §A, Cross-cutting
12
12
  "Heavy spec once per story, light loop per task"). It does not advance the front-half state machine;
13
- when driven by the orchestrator (`sdlc-run`, Phase 4) it records a `spec`/`tasks` trust signal
13
+ when driven by the orchestrator (`yad-run`, Phase 4) it records a `spec`/`tasks` trust signal
14
14
  (Step 8) — but it never auto-advances a contract change or a front state.
15
15
 
16
16
  Spec Kit is driven as **harness slash-commands** (`/speckit.*`), not a subprocess CLI (Phase 0
17
17
  Deviation 3). When Spec Kit is not installed, the same files are hand-authored in Spec Kit's exact
18
18
  layout and the spec is marked `speckit: not-installed` — the workflow does not block on the tool. This
19
- is the same graceful-degradation pattern `sdlc-author-ui` uses for Impeccable.
19
+ is the same graceful-degradation pattern `yad-ui` uses for Impeccable.
20
20
 
21
21
  ## Conventions
22
22
 
@@ -45,7 +45,7 @@ is the same graceful-degradation pattern `sdlc-author-ui` uses for Impeccable.
45
45
  Read `{project-root}/epics/<epic>/.sdlc/state.json`. Proceed only when
46
46
  `currentStep == "ready-for-build"` (the whole front half is `done`). Read the story file
47
47
  `epics/<epic>/stories/<story>.md`; confirm `repo` is in its `repos`. If the epic is not ready, STOP
48
- and point the user at `sdlc-status`. **Do not mutate front-half state** — `ready-for-build` semantics
48
+ and point the user at `yad-status`. **Do not mutate front-half state** — `ready-for-build` semantics
49
49
  stay intact.
50
50
 
51
51
  ### Step 2 — Resolve the target code repo
@@ -87,21 +87,21 @@ spec folder is the authoritative record that this story's spec exists.
87
87
 
88
88
  ### Step 7 — Stop (front-half state untouched)
89
89
  Report: the spec folder path, the files written, whether Spec Kit was used, the task count from
90
- `tasks.md`, and that the next action is **Step B — `sdlc-implement`**. Do **not** edit the epic's
90
+ `tasks.md`, and that the next action is **Step B — `yad-implement`**. Do **not** edit the epic's
91
91
  `state.json`, `approvals.json`, or `contract-lock.json`. Step A is a generation step, not a front gate.
92
92
 
93
93
  ### Step 8 — Record the `spec` trust signal (Phase 4b)
94
- When this step runs under the orchestrator (`sdlc-run`), the generated spec is a back-half run that the
94
+ When this step runs under the orchestrator (`yad-run`), the generated spec is a back-half run that the
95
95
  trust log measures (it is the evidence that could later earn the `spec` step a `machine_advance`). The
96
96
  verdict is **anchored to the human who accepts the spec**, never self-graded:
97
97
  - the human approves the generated `specs/<story>/` untouched → `approved-unchanged`;
98
98
  - the human edits the spec/plan/tasks before accepting → `approved-with-edits` (signal
99
99
  `human_edited_spec: true`);
100
100
  - the spec is rejected or the ceremony re-run → `rejected`.
101
- `sdlc-run` records a provisional entry when the spec is generated; this acceptance finalizes it (same
102
- pattern as the engineer review finalizing `implement` at `sdlc-ship`). Append the finalized entry to
101
+ `yad-run` records a provisional entry when the spec is generated; this acceptance finalizes it (same
102
+ pattern as the engineer review finalizing `implement` at `yad-ship`). Append the finalized entry to
103
103
  `epics/<epic>/.sdlc/trust-log.json` (schema:
104
- `../sdlc-author-epic/references/state-schema.md`). **Run standalone, no trust entry is written** — the
104
+ `../yad-epic/references/state-schema.md`). **Run standalone, no trust entry is written** — the
105
105
  log measures orchestrated runs. `spec` stays `human_approve` until its slice clears the threshold;
106
106
  this step only *gathers* the evidence, it does not flip the dial.
107
107
 
@@ -115,5 +115,5 @@ this step only *gathers* the evidence, it does not flip the dial.
115
115
 
116
116
  ## Reference
117
117
  - Command list, output map, degradation rules, link.md template: `references/spec-handoff.md`.
118
- - Contract surface format + hash recipe: `../sdlc-author-architecture/references/contract-format.md`.
118
+ - Contract surface format + hash recipe: `../yad-architecture/references/contract-format.md`.
119
119
  - Spec Kit facts and the slash-command-vs-CLI deviation: `RESEARCH-NOTES.md` §2 + Phase 3 decisions + Deviation 3.
@@ -1,9 +1,9 @@
1
1
  # Spec Kit handoff — command list, output map, and degradation rules
2
2
 
3
- Step A (`sdlc-spec`) runs the **heavy Spec Kit ceremony once per story per repo** and writes the
3
+ Step A (`yad-spec`) runs the **heavy Spec Kit ceremony once per story per repo** and writes the
4
4
  result into the story's code repo. This reference pins the exact commands, the files they produce, and
5
5
  how to hand-author the same files faithfully when Spec Kit is not installed — so Step B
6
- (`sdlc-implement`, not built yet) can read them unchanged.
6
+ (`yad-implement`, not built yet) can read them unchanged.
7
7
 
8
8
  ## The ceremony (run once, in order)
9
9