yadflow 1.4.0 → 2.0.1

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 +3 -3
  2. package/README.md +123 -186
  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 +8 -4
  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 +2 -2
  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,6 +1,6 @@
1
1
  ---
2
- name: sdlc-status
3
- description: 'Read-only view of an SDLC epic: prints the current step, each step''s dials (assistance/automation) and status, and which approvals are still required at the active gate. For stories in the build half it also prints each back-half step''s automation dial, status, and trust record (runs / % approved-unchanged / whether it clears the threshold to be earned), plus the system-wide kill-switch state — so the team can see WHY a step is automated and reverse it with evidence. Surfaces the Phase 5 instrumentation signals: per-step "earned but manual" (nudge cost) and, across multiple epics, a fleet roll-up (scale of read). Use when the user says "sdlc status", "where is epic EP-...", "what is blocking the gate", "show the trust record", or "fleet status".'
2
+ name: yad-status
3
+ description: 'Read-only view of an SDLC epic: prints the current step, each step''s dials (assistance/automation) and status, and which approvals are still required at the active gate. For stories in the build half it also prints each back-half step''s automation dial, status, and trust record (runs / % approved-unchanged / whether it clears the threshold to be earned), plus the system-wide kill-switch state — so the team can see WHY a step is automated and reverse it with evidence. Surfaces the Phase 5 instrumentation signals: per-step "earned but manual" (nudge cost) and, across multiple epics, a fleet roll-up (scale of read). Use when the user says "yad status", "where is epic EP-...", "what is blocking the gate", "show the trust record", or "fleet status".'
4
4
  ---
5
5
 
6
6
  # SDLC — Status (read-only)
@@ -35,7 +35,7 @@ Print, in this order:
35
35
  `currentStep` with `→`. The full front-state chain is `[analysis → analysis-review →] epic →
36
36
  epic-review → architecture → architecture-review → ui-design → ui-design-review → stories →
37
37
  stories-review` (then `ready-for-build`); the bracketed `analysis` prefix is present only when
38
- `sdlc-author-analysis` seeded it. Always render exactly the steps present in `steps[]`.
38
+ `yad-analysis` seeded it. Always render exactly the steps present in `steps[]`.
39
39
  3. **Active gate** — for the `currentStep` (if it is a `review+approve` step), compute and show:
40
40
  - the reviewer rule in force — **base** (`owner + 1 reviewer`), **escalated** (list the required
41
41
  domains), or **per-repo** for `stories-review` (list each repo needing sign-off),
@@ -43,7 +43,7 @@ Print, in this order:
43
43
  - approvals **still required** to pass the gate (name the missing domains/repos).
44
44
  Do not advance — just state whether the gate would pass right now.
45
45
 
46
- Apply the same predicate `sdlc-review-gate` uses (restated here so this skill is
46
+ Apply the same predicate `yad-review-gate` uses (restated here so this skill is
47
47
  self-contained). From the `approved` records in `approvals.json` for the current step:
48
48
  - `owners` = records with `role == "owner"`; `reviewers` = distinct `role == "reviewer"`;
49
49
  `domainOwners` = `role == "domain-owner"`, grouped by `domain`.
@@ -77,7 +77,7 @@ Print, in this order:
77
77
  `⚠ earned but manual — could be machine_advance`. This is the *nudge cost* the Phase 5 trigger
78
78
  watches: automation that is proven safe but still hand-started. It is a read-only observation, not a
79
79
  recommendation to flip — earning the evidence and flipping the dial stay deliberate human acts
80
- (`sdlc-run action: set-dial`). See `docs/phase-5-build-plan.md` §"What to instrument now".
80
+ (`yad-run action: set-dial`). See `docs/phase-5-build-plan.md` §"What to instrument now".
81
81
 
82
82
  9. **Fleet roll-up (overview only).** When the user asked for an overview, or more than one epic exists
83
83
  under `{project-root}/epics/`, print a one-line-per-epic roll-up across the fleet: each epic's
@@ -89,4 +89,4 @@ Print, in this order:
89
89
 
90
90
  ### Hard rule
91
91
  This skill is strictly read-only. If the user wants to comment, approve, or advance, point them to
92
- `sdlc-review-gate`.
92
+ `yad-review-gate`.
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: sdlc-author-stories
2
+ name: yad-stories
3
3
  description: 'Front state 7 of the gated SDLC. With the pm, break the approved epic into user stories, each tagged with the repos that must implement it. Assigns zero-padded EP-<slug>-S0N IDs and writes one file per story under stories/. Reads epic + architecture + contract + UI as input. Never auto-advances — hands off to the team review gate (per-repo reviewer routing). Use when the user says "author the stories" or after the UI gate passes.'
4
4
  ---
5
5
 
@@ -8,7 +8,7 @@ description: 'Front state 7 of the gated SDLC. With the pm, break the approved e
8
8
  **Goal:** Break an approved epic into human-authored, AI-assisted user stories, each with a stable
9
9
  `EP-<slug>-S0N` ID and a `repos` tag listing which repos must implement it. This is a **front state**:
10
10
  human-authored with AI assist, **never auto-advances**. When the stories are drafted, control passes
11
- to `sdlc-review-gate`, which routes **per-repo reviewers** (each repo's engineer reviews the stories
11
+ to `yad-review-gate`, which routes **per-repo reviewers** (each repo's engineer reviews the stories
12
12
  touching their repo).
13
13
 
14
14
  There is **no `sm` agent** (Phase 0 Deviation 1): the `pm` lens breaks down the epic; the `pm` or
@@ -26,11 +26,11 @@ There is **no `sm` agent** (Phase 0 Deviation 1): the `pm` lens breaks down the
26
26
  ### Step 1 — Resolve the epic and check the gate
27
27
  Resolve the `EP-<slug>` (ask if not provided). Read `.sdlc/state.json`. Only proceed when
28
28
  `currentStep == "stories"` and that step's `status == "in_progress"` (the UI review must already have
29
- passed). If not, stop and point the user at `sdlc-status` / the gate.
29
+ passed). If not, stop and point the user at `yad-status` / the gate.
30
30
 
31
31
  ### Step 1b — Open the authoring branch
32
32
  Open the stories authoring branch `stories/EP-<slug>` per the shared procedure
33
- (`../sdlc-author-epic/references/state-schema.md` → "Authoring branches"): git-safe (skip with a note
33
+ (`../yad-epic/references/state-schema.md` → "Authoring branches"): git-safe (skip with a note
34
34
  if `{project-root}` is not a git work tree), check out the branch if it exists, else create it from the
35
35
  hub's default branch. Author and commit the story files under `stories/` on it. This is **distinct**
36
36
  from the bridge's `review/…` branch.
@@ -48,7 +48,7 @@ Phase 3 build (Spec Kit per repo) accurate anchors instead of invented ones.
48
48
 
49
49
  - **Greenfield-safe:** if `repos.json` is absent/empty, note "no repos connected" and proceed.
50
50
  - **Staleness:** if a repo's current HEAD ≠ its registry `syncedHead`, warn and suggest
51
- `sdlc repo refresh <repo>` (a human decision — flag and stop, never auto-refresh); stamp
51
+ `yad repo refresh <repo>` (a human decision — flag and stop, never auto-refresh); stamp
52
52
  `code-context: stale` in the story frontmatter.
53
53
  - **Traceability:** record the loaded maps in each story's `code-context:` frontmatter field.
54
54
 
@@ -96,14 +96,14 @@ In `state.json`: set `stories.status: "done"`, set `stories-review.status: "in_r
96
96
 
97
97
  ### Step 7 — Stop at the gate (do NOT advance)
98
98
  Report: the story IDs created, the repos each touches, and that the next action is **review** via
99
- `sdlc-review-gate`. Note that this review routes **per-repo reviewers**: owner + 1 reviewer **plus**, for
99
+ `yad-review-gate`. Note that this review routes **per-repo reviewers**: owner + 1 reviewer **plus**, for
100
100
  each repo appearing in any story's `repos`, a `domain-owner` approval for that repo. **Never record
101
101
  approval here.** Front states do not auto-advance. When the hub has a platform, the gate opens a review
102
- PR on the hub (via `sdlc-hub-bridge`, with a `domain:<repo>` label per touched repo) and
103
- `sdlc-review-gate action: sync` pulls platform approvals/comments into the ledger; otherwise the review
102
+ PR on the hub (via `yad-hub-bridge`, with a `domain:<repo>` label per touched repo) and
103
+ `yad-review-gate action: sync` pulls platform approvals/comments into the ledger; otherwise the review
104
104
  is recorded file-only.
105
105
 
106
106
  ## Reference
107
107
  - Story frontmatter and body template: `references/story-schema.md`.
108
- - State schema and field meanings: `../sdlc-author-epic/references/state-schema.md`.
109
- - Connecting code repos + the code-context the brain reads: `../sdlc-connect-repos/SKILL.md`.
108
+ - State schema and field meanings: `../yad-epic/references/state-schema.md`.
109
+ - Connecting code repos + the code-context the brain reads: `../yad-connect-repos/SKILL.md`.
@@ -40,7 +40,7 @@ As a <role>, I want <capability>, so that <outcome>.
40
40
 
41
41
  ## Per-repo review routing (the stories gate)
42
42
 
43
- `sdlc-review-gate` treats each repo's engineer as the `domain-owner` for the stories touching that repo.
43
+ `yad-review-gate` treats each repo's engineer as the `domain-owner` for the stories touching that repo.
44
44
  The gate passes only when, in addition to the base rule (owner + 1 reviewer), **every repo appearing in
45
45
  any story's `repos`** has at least one `domain-owner` approval scoped to that repo (`domain` = repo
46
46
  name). The gate's `approved.md` lists which repos still lack sign-off.
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: sdlc-author-ui
2
+ name: yad-ui
3
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.'
4
4
  ---
5
5
 
@@ -7,7 +7,7 @@ description: 'Front state 5 of the gated SDLC. With the ux-designer, author ui-d
7
7
 
8
8
  **Goal:** Produce a human-authored, AI-assisted `ui-design.md` and `DESIGN.md` for an approved
9
9
  architecture. This is a **front state**: human-authored with AI assist, **never auto-advances**. When
10
- the UI is drafted, control passes to `sdlc-review-gate` (base rule: owner + 1 reviewer).
10
+ the UI is drafted, control passes to `yad-review-gate` (base rule: owner + 1 reviewer).
11
11
 
12
12
  UI work is shaped by **Impeccable**, invoked as **harness slash-commands** (not a subprocess CLI) per
13
13
  the Phase 0 deviation. If Impeccable is not installed, the `ux-designer` lens authors the same outputs
@@ -25,11 +25,11 @@ directly — the workflow does not block on the tool.
25
25
  ### Step 1 — Resolve the epic and check the gate
26
26
  Resolve the `EP-<slug>` (ask if not provided). Read `.sdlc/state.json`. Only proceed when
27
27
  `currentStep == "ui-design"` and that step's `status == "in_progress"` (the architecture review must
28
- already have passed). If not, stop and point the user at `sdlc-status` / the gate.
28
+ already have passed). If not, stop and point the user at `yad-status` / the gate.
29
29
 
30
30
  ### Step 1b — Open the authoring branch
31
31
  Open the UI authoring branch `ui-design/EP-<slug>` per the shared procedure
32
- (`../sdlc-author-epic/references/state-schema.md` → "Authoring branches"): git-safe (skip with a note
32
+ (`../yad-epic/references/state-schema.md` → "Authoring branches"): git-safe (skip with a note
33
33
  if `{project-root}` is not a git work tree), check out the branch if it exists, else create it from the
34
34
  hub's default branch. Author and commit `ui-design.md` / `DESIGN.md` on it. This is **distinct** from
35
35
  the bridge's `review/…` branch.
@@ -47,7 +47,7 @@ Impeccable is absent, the code-map is the brain's view of what UI/components alr
47
47
 
48
48
  - **Greenfield-safe:** if `repos.json` is absent/empty, note "no repos connected" and proceed.
49
49
  - **Staleness:** if a repo's current HEAD ≠ its registry `syncedHead`, warn and suggest
50
- `sdlc repo refresh <repo>` (a human decision — flag and stop, never auto-refresh); stamp
50
+ `yad repo refresh <repo>` (a human decision — flag and stop, never auto-refresh); stamp
51
51
  `code-context: stale` in the frontmatter.
52
52
  - **Traceability:** record the loaded maps in the `ui-design.md` `code-context:` frontmatter field.
53
53
 
@@ -102,12 +102,12 @@ In `state.json`: set `ui-design.status: "done"`, set `ui-design-review.status: "
102
102
 
103
103
  ### Step 6 — Stop at the gate (do NOT advance)
104
104
  Report: the paths to `ui-design.md` and `DESIGN.md`, whether Impeccable was used, and that the next
105
- action is **review** via `sdlc-review-gate` (base rule: owner + 1 reviewer). **Never record approval
105
+ action is **review** via `yad-review-gate` (base rule: owner + 1 reviewer). **Never record approval
106
106
  here.** Front states do not auto-advance. When the hub has a platform, the gate opens a review PR on the
107
- hub (via `sdlc-hub-bridge`) and `sdlc-review-gate action: sync` pulls platform approvals/comments into
107
+ hub (via `yad-hub-bridge`) and `yad-review-gate action: sync` pulls platform approvals/comments into
108
108
  the ledger; otherwise the review is recorded file-only.
109
109
 
110
110
  ## Reference
111
111
  - Impeccable commands and the slash-command-vs-CLI deviation: `RESEARCH-NOTES.md` §4 + Deviation 3.
112
- - State schema and field meanings: `../sdlc-author-epic/references/state-schema.md`.
113
- - Connecting code repos + the code-context the brain reads: `../sdlc-connect-repos/SKILL.md`.
112
+ - State schema and field meanings: `../yad-epic/references/state-schema.md`.
113
+ - Connecting code repos + the code-context the brain reads: `../yad-connect-repos/SKILL.md`.