yadflow 2.0.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.
- package/CHANGELOG.md +2 -20
- package/README.md +4 -71
- package/package.json +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,27 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
* feat!: rename sdlc-* skills to yad-* and the CLI to yad; feature the report ([ea05f17](https://github.com/abdelrahmannasr/yadflow/commit/ea05f17085f992343fc9d1f25bde24c87815be1a))
|
|
1
|
+
## [2.0.1](https://github.com/abdelrahmannasr/yadflow/compare/v2.0.0...v2.0.1) (2026-06-12)
|
|
5
2
|
|
|
6
3
|
|
|
7
4
|
### Bug Fixes
|
|
8
5
|
|
|
9
|
-
*
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
### Features
|
|
13
|
-
|
|
14
|
-
* migrate pre-2.0 sdlc-* installs in place via yad update ([f85433f](https://github.com/abdelrahmannasr/yadflow/commit/f85433ff8fb4f54ce0c455abb2d72974f82fd507))
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
### BREAKING CHANGES
|
|
18
|
-
|
|
19
|
-
* the installed command is now `yad` (was `sdlc`) and the
|
|
20
|
-
skills are invoked as /yad-* (were /sdlc-*). Repos wired before this release
|
|
21
|
-
keep their old sdlc-* workflow files and markers; re-run `yad check --fix`
|
|
22
|
-
to install the renamed ones.
|
|
23
|
-
|
|
24
|
-
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
|
6
|
+
* publish README with pre-rendered SVG diagrams so they display on npm ([05382f6](https://github.com/abdelrahmannasr/yadflow/commit/05382f6bfe27bb0604165692ca6fe1cdb74b9a35))
|
|
25
7
|
|
|
26
8
|
# [1.1.0](https://github.com/abdelrahmannasr/sdlc-workflow/compare/v1.0.3...v1.1.0) (2026-06-09)
|
|
27
9
|
|
package/README.md
CHANGED
|
@@ -26,67 +26,8 @@ is human-gated and runs once per epic in the product hub; the **build half** run
|
|
|
26
26
|
per code repo; **automation** is opt-in and earned. `yad-status` reads it all; `yad-hub-bridge`
|
|
27
27
|
mirrors front-half reviews to real PR/MRs.
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
classDef gated fill:#fdebd0,stroke:#ca6f1e,color:#000
|
|
32
|
-
classDef earns fill:#d6eaf8,stroke:#2471a3,color:#000
|
|
33
|
-
classDef locked fill:#eaecee,stroke:#566573,color:#000,stroke-dasharray:5 3
|
|
34
|
-
classDef artifact fill:#fcf3cf,stroke:#b7950b,color:#000
|
|
35
|
-
classDef sentinel fill:#d5f5e3,stroke:#1e8449,color:#000
|
|
36
|
-
|
|
37
|
-
subgraph SETUP["0 · One-time setup (per project)"]
|
|
38
|
-
direction TB
|
|
39
|
-
inst["install.sh<br/>copy yad-* skills into IDE dirs"]
|
|
40
|
-
wire["wire each repo:<br/>yad-checks · yad-pr-template · yad-review-comments"]
|
|
41
|
-
conn["yad-connect-repos<br/>repos.json + cached code-map"]
|
|
42
|
-
phub["optional: hub on a platform<br/>detect-hub · roster"]
|
|
43
|
-
inst --> wire --> conn --> phub
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
subgraph FRONT["A · Front half — product hub · human-gated · once per epic"]
|
|
47
|
-
direction TB
|
|
48
|
-
an["yad-analysis<br/>optional → analysis.md"]:::artifact
|
|
49
|
-
ep["yad-epic<br/>epic.md · assigns EP-<slug>"]:::artifact
|
|
50
|
-
ar["yad-architecture<br/>architecture.md + locked contract.md"]:::artifact
|
|
51
|
-
ui["yad-ui<br/>ui-design.md + DESIGN.md"]:::artifact
|
|
52
|
-
st["yad-stories<br/>repo-tagged stories/EP-<slug>-S0N.md"]:::artifact
|
|
53
|
-
gAn{{"gate · analysis"}}:::gated
|
|
54
|
-
gEp{{"gate · epic<br/>base: owner + reviewer"}}:::gated
|
|
55
|
-
gAr{{"gate · architecture<br/>escalated: + repo domain owners"}}:::gated
|
|
56
|
-
gUi{{"gate · UI · base"}}:::gated
|
|
57
|
-
gSt{{"gate · stories<br/>per-repo domain owners"}}:::gated
|
|
58
|
-
rfb(["currentStep: ready-for-build"]):::sentinel
|
|
59
|
-
an --> gAn --> ep --> gEp --> ar --> gAr --> ui --> gUi --> st --> gSt --> rfb
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
subgraph BUILD["B · Build half — per story, per code repo"]
|
|
63
|
-
direction TB
|
|
64
|
-
sp["yad-spec<br/>Spec Kit ceremony → specs/<story>/"]
|
|
65
|
-
im["yad-implement<br/>1 task = 1 branch = 1 commit"]:::earns
|
|
66
|
-
ck["yad-checks<br/>spec-link · contract-check · build/test/lint"]:::earns
|
|
67
|
-
prm["open PR/MR + yad-pr-template route"]
|
|
68
|
-
shp["yad-ship<br/>AI review (advisory)"]
|
|
69
|
-
eng{{"engineer review<br/>human · never automated"}}:::locked
|
|
70
|
-
merged(["merge → build-log.json"]):::sentinel
|
|
71
|
-
sp --> im --> ck --> prm --> shp --> eng --> merged
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
subgraph AUTO["C · Automation — earned & reversible"]
|
|
75
|
-
direction TB
|
|
76
|
-
run["yad-run<br/>reads automation dial + trust-log.json"]:::earns
|
|
77
|
-
kill["kill switch → everything human_approve"]
|
|
78
|
-
run --- kill
|
|
79
|
-
end
|
|
80
|
-
|
|
81
|
-
phub --> an
|
|
82
|
-
rfb --> sp
|
|
83
|
-
run -. drives earned back steps .-> im
|
|
84
|
-
bridge["yad-hub-bridge<br/>review PR/MR ↔ file ledger"]:::gated
|
|
85
|
-
bridge -. syncs approvals .-> gEp
|
|
86
|
-
status["yad-status<br/>read-only view over all of it"]
|
|
87
|
-
status -. observes .-> FRONT
|
|
88
|
-
status -. observes .-> BUILD
|
|
89
|
-
```
|
|
29
|
+
<!-- Source: docs/diagrams/sdlc-overview.mmd — edit the .mmd and run `npm run diagrams` to regenerate -->
|
|
30
|
+

|
|
90
31
|
|
|
91
32
|
**Legend.** <span>🟨</span> **artifact** = an author step writes a file and stops; <span>🟧</span>
|
|
92
33
|
**gate** = a human review that must pass (`open → comment → approve → advance`); <span>🟦</span>
|
|
@@ -413,16 +354,8 @@ accumulate, and the step moves forward only when the rule is met. **File-only**
|
|
|
413
354
|
`advance`; **PR-driven** (hub on a platform) ends when the approved, fully-resolved review PR is
|
|
414
355
|
**merged**:
|
|
415
356
|
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
a["author writes<br/>artifact"] --> o["open<br/>raise review PR/MR"]
|
|
419
|
-
o --> c["comment<br/>reviewers leave notes"]
|
|
420
|
-
c -->|owner addresses,<br/>edits in place| c
|
|
421
|
-
c --> ap["approve<br/>+ resolve threads"]
|
|
422
|
-
ap --> adv{"rule met,<br/>threads resolved,<br/>merged?"}
|
|
423
|
-
adv -->|no — names who's missing| o
|
|
424
|
-
adv -->|yes| nxt(["next step"])
|
|
425
|
-
```
|
|
357
|
+
<!-- Source: docs/diagrams/review-loop.mmd — edit the .mmd and run `npm run diagrams` to regenerate -->
|
|
358
|
+

|
|
426
359
|
|
|
427
360
|
**File-only** — invoke **`yad-review-gate`** with `open` (present the artifact; reviewers comment in
|
|
428
361
|
`reviews/<artifact>--<date>--comments.md`), `approve` (name + role → `.sdlc/approvals.json`), and
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "yadflow",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.1",
|
|
4
4
|
"description": "Yadflow — the gated, team, multi-repo SDLC: author → review → build with a PR-driven review gate and a zero-dependency `yad` CLI (setup, gate, commit, open-pr, repo). A BMAD module + 17 yad-* skills.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": "AbdelRahman Nasr",
|
|
@@ -36,6 +36,7 @@
|
|
|
36
36
|
"scripts": {
|
|
37
37
|
"yad": "node bin/yad.mjs",
|
|
38
38
|
"test": "node --test cli/test.mjs",
|
|
39
|
+
"diagrams": "npx -y @mermaid-js/mermaid-cli -i docs/diagrams/sdlc-overview.mmd -o docs/diagrams/sdlc-overview.svg -b transparent && npx -y @mermaid-js/mermaid-cli -i docs/diagrams/review-loop.mmd -o docs/diagrams/review-loop.svg -b transparent",
|
|
39
40
|
"prepublishOnly": "npm test"
|
|
40
41
|
},
|
|
41
42
|
"keywords": [
|