yadflow 2.2.0 → 2.4.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.
- package/CHANGELOG.md +16 -5
- package/README.md +75 -22
- package/cli/doctor.mjs +45 -3
- package/cli/epic-state.mjs +19 -2
- package/cli/errors.mjs +2 -0
- package/cli/manifest.mjs +23 -1
- package/cli/setup.mjs +109 -10
- package/docs/index.html +62 -11
- package/package.json +5 -3
- package/skills/sdlc/config.yaml +41 -4
- package/skills/sdlc/install.sh +1 -1
- package/skills/sdlc/module-help.csv +6 -1
- package/skills/yad-analysis/SKILL.md +10 -5
- package/skills/yad-connect-design/SKILL.md +1 -1
- package/skills/yad-connect-design/references/design-registry.md +4 -2
- package/skills/yad-connect-learning/SKILL.md +140 -0
- package/skills/yad-connect-learning/references/learning-context.md +79 -0
- package/skills/yad-connect-learning/references/learning-registry.md +60 -0
- package/skills/yad-connect-testing/SKILL.md +121 -0
- package/skills/yad-connect-testing/references/testing-context.md +67 -0
- package/skills/yad-connect-testing/references/testing-registry.md +55 -0
- package/skills/yad-epic/SKILL.md +10 -5
- package/skills/yad-epic/references/state-schema.md +42 -11
- package/skills/yad-hub-bridge/SKILL.md +2 -2
- package/skills/yad-learn/SKILL.md +146 -0
- package/skills/yad-learn/references/learning-state.md +75 -0
- package/skills/yad-review-gate/SKILL.md +14 -11
- package/skills/yad-review-gate/references/gating.md +1 -1
- package/skills/yad-run/references/run-loop.md +3 -3
- package/skills/yad-spec/SKILL.md +3 -1
- package/skills/yad-status/SKILL.md +35 -15
- package/skills/yad-stories/SKILL.md +3 -1
- package/skills/yad-test-cases/SKILL.md +173 -0
- package/skills/yad-test-cases/references/test-cases-schema.md +70 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Test-cases schema
|
|
2
|
+
|
|
3
|
+
The test cases authored at front state 9 are one Markdown file under `epics/EP-<slug>/`, named
|
|
4
|
+
`test-cases.md` (one per epic — mirrors `ui-design.md`, not a per-story folder). The optional automation
|
|
5
|
+
linkage is a sibling `test-links.json`.
|
|
6
|
+
|
|
7
|
+
## Frontmatter
|
|
8
|
+
|
|
9
|
+
| Field | Values | Meaning |
|
|
10
|
+
|-------|--------|---------|
|
|
11
|
+
| `id` | `EP-<slug>` | The epic ID — the artifact is epic-level. |
|
|
12
|
+
| `epic` | `EP-<slug>` | Parent epic ID — the unbroken link back to the epic. |
|
|
13
|
+
| `artifact` | `test-cases` | Marks the artifact kind (mirrors `ui-design`). |
|
|
14
|
+
| `status` | `draft` \| `in_review` \| `approved` | Lifecycle within the test-cases gate. |
|
|
15
|
+
| `owner` | name | Inherited from `epic.md` `owner` (the single source — not retyped). |
|
|
16
|
+
| `repos` | subset of the epic's `repos` | Which repos the automation targets. |
|
|
17
|
+
| `code-context` | `{ repos: [<name@sha>], loaded: <date> }` | Optional. Which connected-repo code-maps anchored the tests (Step 2b). The `@sha` (a repo's `syncedHead`) is recommended so freshness is recorded but may be omitted; the SKILL template shows the empty placeholder `{ repos: [], loaded: <date or none> }`. `none` / `[]` when no repos are connected. |
|
|
18
|
+
| `testing` | `none` \| `{ tool, direction, suite, tests }` | The connected testing tool and what it produced (Step 3b). `none` when the step ran artifacts-only. |
|
|
19
|
+
|
|
20
|
+
## Body
|
|
21
|
+
|
|
22
|
+
```markdown
|
|
23
|
+
## Test strategy & risk
|
|
24
|
+
<!-- risk assessment (category, probability, impact, score), entry/exit criteria, NFR thresholds -->
|
|
25
|
+
|
|
26
|
+
## Test cases
|
|
27
|
+
<!-- one row/subsection per case: id, story covered, priority (P0–P3), level, preconditions, steps, expected -->
|
|
28
|
+
|
|
29
|
+
## Coverage & traceability
|
|
30
|
+
<!-- story -> case map; every story's acceptance criteria must be covered -->
|
|
31
|
+
|
|
32
|
+
## Automation (<tool>)
|
|
33
|
+
<!-- omit when testing: none. one row per automation test, linking to it in the repo. mirrors test-links.json -->
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## `test-links.json` (sibling, when a tool was used)
|
|
37
|
+
|
|
38
|
+
Written by `yad-test-cases` Step 4b. Absent when the step ran artifacts-only (`testing: none`).
|
|
39
|
+
|
|
40
|
+
```json
|
|
41
|
+
{
|
|
42
|
+
"tool": "playwright",
|
|
43
|
+
"suite": "tests/playwright.config.ts",
|
|
44
|
+
"generatedAt": "<YYYY-MM-DD>",
|
|
45
|
+
"direction": "generated | linked",
|
|
46
|
+
"tests": [
|
|
47
|
+
{ "case": "TC-01", "story": "EP-<slug>-S01", "repo": "backend", "level": "e2e",
|
|
48
|
+
"path": "tests/inquiry.spec.ts", "url": "<repo url to the test>" }
|
|
49
|
+
],
|
|
50
|
+
"source": "playwright-mcp"
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Rules
|
|
55
|
+
|
|
56
|
+
- **Cover every story.** The "Coverage & traceability" section must map each story's acceptance criteria
|
|
57
|
+
to at least one case — an unmapped criterion is a gap the reviewer should catch.
|
|
58
|
+
- **Priorities are risk-based.** P0 = critical (run on every commit) … P3 = low (on-demand); depth
|
|
59
|
+
scales with impact (Murat's principle).
|
|
60
|
+
- **Prefer the lowest useful level.** unit > integration > E2E when a case can be verified lower.
|
|
61
|
+
- **`repos` is a subset of `epic.repos`.** Automation cannot target a repo the epic does not declare.
|
|
62
|
+
- **Single-file, not a folder.** `test-cases.md` resolves through the gate's default content-hash path
|
|
63
|
+
(the file's bytes), so the review gate, revoke-on-change, and review-PR machinery work unchanged.
|
|
64
|
+
- **Automation is additive.** When no testing tool is connected, the step still produces a complete
|
|
65
|
+
`test-cases.md`; `testing: none` and no `test-links.json`.
|
|
66
|
+
|
|
67
|
+
## Review routing (the test-cases gate)
|
|
68
|
+
|
|
69
|
+
The test-cases gate uses the **base rule** (owner + 1 reviewer) — it is not escalated. The natural
|
|
70
|
+
reviewer is the test architect / QA owner, but the gate predicate requires only owner + 1.
|