@warnyin/sdlc 0.6.0 → 0.8.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 +258 -200
- package/README.md +92 -91
- package/bin/cli.mjs +682 -641
- package/lib/active.mjs +199 -0
- package/lib/caps.mjs +1 -0
- package/lib/lenses.mjs +48 -0
- package/lib/skills.mjs +148 -0
- package/lib/validate.mjs +2 -0
- package/package.json +42 -42
- package/payload/adapters/claude/skills/sdlc-conventions/SKILL.md +30 -27
- package/payload/hooks/_shared.mjs +8 -20
- package/payload/hooks/guard-writes.mjs +10 -6
- package/payload/hooks/inject-context.mjs +4 -2
- package/payload/hooks/journal.mjs +16 -8
- package/payload/hooks/session-summary.mjs +3 -1
- package/payload/hooks/validate-artifact.mjs +7 -3
- package/payload/playbook/README.md +32 -32
- package/payload/playbook/contract.md +29 -26
- package/payload/playbook/design.md +28 -23
- package/payload/playbook/lenses.md +64 -0
- package/payload/playbook/new.md +33 -25
- package/payload/playbook/next.md +24 -14
- package/payload/playbook/review.md +31 -26
- package/payload/playbook/verify.md +42 -37
- package/payload/templates/harness.md +2 -1
|
@@ -1,37 +1,42 @@
|
|
|
1
|
-
# /sdlc:verify <id> — the feedback loop
|
|
2
|
-
|
|
3
|
-
Two halves, both must pass. Verification is against the CONTRACT, not vibes.
|
|
4
|
-
|
|
5
|
-
1. **Tests (deterministic)**: run the full test command from `sdlc/harness.md`.
|
|
6
|
-
Every row of `contract/tests.md` must be covered by a passing test.
|
|
7
|
-
2. **Evals (non-deterministic)** — when `contract/evals.md` exists: delegate to
|
|
8
|
-
the `sdlc-evaluator` agent (cheap) with the rubric + the diff + the task log;
|
|
9
|
-
it returns a score per rubric line. Pass bar is written in the file.
|
|
10
|
-
If the evaluator cannot run — subagents unavailable or disallowed in this
|
|
11
|
-
session — score in the main loop instead and record that. A panel that could
|
|
12
|
-
not run is a fact to write down, never a reason to stop the pipeline; but a
|
|
13
|
-
run that judged its own work is weaker evidence and must not read as if a
|
|
14
|
-
panel had agreed.
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
1
|
+
# /sdlc:verify <id> — the feedback loop
|
|
2
|
+
|
|
3
|
+
Two halves, both must pass. Verification is against the CONTRACT, not vibes.
|
|
4
|
+
|
|
5
|
+
1. **Tests (deterministic)**: run the full test command from `sdlc/harness.md`.
|
|
6
|
+
Every row of `contract/tests.md` must be covered by a passing test.
|
|
7
|
+
2. **Evals (non-deterministic)** — when `contract/evals.md` exists: delegate to
|
|
8
|
+
the `sdlc-evaluator` agent (cheap) with the rubric + the diff + the task log;
|
|
9
|
+
it returns a score per rubric line. Pass bar is written in the file.
|
|
10
|
+
If the evaluator cannot run — subagents unavailable or disallowed in this
|
|
11
|
+
session — score in the main loop instead and record that. A panel that could
|
|
12
|
+
not run is a fact to write down, never a reason to stop the pipeline; but a
|
|
13
|
+
run that judged its own work is weaker evidence and must not read as if a
|
|
14
|
+
panel had agreed.
|
|
15
|
+
|
|
16
|
+
3. **Lens bars** — a non-empty `lenses`, whether or not `evals.md` exists: every lens bar
|
|
17
|
+
must appear as a `tests.md` row or an `evals.md` line; a lens with its bars in neither
|
|
18
|
+
is a contract gap and fails verify.
|
|
19
|
+
|
|
20
|
+
On failure:
|
|
21
|
+
- Cluster failures by root cause (one line each) and append the cluster note to
|
|
22
|
+
the change's `## Tasks` area as unchecked fix tasks.
|
|
23
|
+
- `node sdlc/.hooks/journal.mjs note verify result=fail round=<n> mode=<panel|solo>`
|
|
24
|
+
- Route back to /sdlc:build. Maximum 3 rounds total; on the 4th failure STOP and
|
|
25
|
+
escalate to the human with the cluster history (Autonomy policy condition).
|
|
26
|
+
- Never lower the bar: do not edit tests/evals to pass unless the contract
|
|
27
|
+
itself was wrong — changing the contract reopens the adversarial check.
|
|
28
|
+
|
|
29
|
+
On pass: set `status: verified`,
|
|
30
|
+
`node sdlc/.hooks/journal.mjs note verify result=pass round=<n> mode=<panel|solo>`.
|
|
31
|
+
|
|
32
|
+
`mode=panel` only when independent agents produced the judgment; `mode=solo` when
|
|
33
|
+
the main loop judged its own work. Every verify note carries it, pass or fail —
|
|
34
|
+
`/sdlc:observe` reports a change as self-judged from this field, and omitting it
|
|
35
|
+
leaves the record silently indistinguishable from an independent one.
|
|
36
|
+
|
|
37
|
+
Next: review signals present (deep tier, security-touching diff, >10 files,
|
|
38
|
+
a non-empty `lenses`)
|
|
39
|
+
→ /sdlc:review; otherwise → /sdlc:ship.
|
|
40
|
+
|
|
41
|
+
`--auto`: do this stage, then continue to ship under `auto.md`'s unattended
|
|
42
|
+
mode — gather, confirm once, run. The stage still does its own work first.
|
|
@@ -30,4 +30,5 @@
|
|
|
30
30
|
## Autonomy policy
|
|
31
31
|
- auto-ship: vibe, standard.
|
|
32
32
|
- escalate to human: hard-floor (security, payments, data-loss, irreversible), verify failed > 3 rounds,
|
|
33
|
-
token budget exceeded, information the agent cannot obtain or safely assume
|
|
33
|
+
token budget exceeded, information the agent cannot obtain or safely assume,
|
|
34
|
+
installing a skill or agent (suggest only; see `.playbook/lenses.md`).
|