@antoneeo/agentic-sdlc-skill 1.19.0 → 1.20.2
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 +431 -332
- package/README.md +122 -95
- package/gemini-extension.json +1 -1
- package/package.json +50 -48
- package/scripts/init.js +224 -156
- package/scripts/lib.js +177 -168
- package/skills/agentic-sdlc-skill/ENFORCEMENT.md +10 -6
- package/skills/agentic-sdlc-skill/SKILL.md +4 -1
- package/skills/agentic-sdlc-skill/elicitation.md +123 -14
- package/skills/agentic-sdlc-skill/review.md +13 -3
- package/skills/agentic-sdlc-skill/routing.md +100 -0
- package/skills/agentic-sdlc-skill/scripts/sdlc_check.py +52 -1470
- package/skills/agentic-sdlc-skill/scripts/sdlc_core.py +1996 -0
- package/skills/agentic-sdlc-skill/templates.md +12 -0
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# Domain Routing — which lens owns this unit of work
|
|
2
|
+
|
|
3
|
+
The family ships as sibling skills built from one shared core: each lens carries its
|
|
4
|
+
own **fidelity discipline** (what the work must be faithful to) and its own validation
|
|
5
|
+
rules, over **one** `ai_docs/` tree. This file answers one question: *which lens's
|
|
6
|
+
method governs THIS unit of work?* It does not decide where the resulting file is
|
|
7
|
+
stored (step 5), and it never runs before the triage level is known — L1 never
|
|
8
|
+
reaches it.
|
|
9
|
+
|
|
10
|
+
## 0. Installed-lens detection — run first, fail open
|
|
11
|
+
|
|
12
|
+
Look in the skills directory this skill was loaded from for sibling lenses of the
|
|
13
|
+
family, identified by the `name:` in their `SKILL.md`:
|
|
14
|
+
|
|
15
|
+
| Lens | Skill name | Faithful to |
|
|
16
|
+
|---|---|---|
|
|
17
|
+
| code | `agentic-sdlc` | this repository's code |
|
|
18
|
+
| knowledge | `kb-agentic` | documents the user supplied |
|
|
19
|
+
| marketing | `mkt-agentic-sdlc` | market evidence |
|
|
20
|
+
|
|
21
|
+
- **No sibling installed, or the directory cannot be read** → the router does NOT run.
|
|
22
|
+
Work under the loaded lens; read no further. This is the normal single-lens case and
|
|
23
|
+
it costs nothing.
|
|
24
|
+
- **At least one sibling installed** → run the router below, after the level test, on
|
|
25
|
+
every L2, L3 and Spike.
|
|
26
|
+
|
|
27
|
+
Fail-open is deliberate: a detection that cannot answer must never block the work. A
|
|
28
|
+
single-lens project that silently gains a router verdict it cannot act on is worse
|
|
29
|
+
than no verdict at all.
|
|
30
|
+
|
|
31
|
+
## 1. The router
|
|
32
|
+
|
|
33
|
+
Run the steps in order. Stop at the first one that decides.
|
|
34
|
+
|
|
35
|
+
1. **Fidelity / purpose.** What must the work be faithful to?
|
|
36
|
+
- *This repository's code* → provisional **code**; continue to step 2.
|
|
37
|
+
- *Documents the user supplied* → **knowledge**. Decided.
|
|
38
|
+
- *Market evidence* → **marketing**. Decided.
|
|
39
|
+
- *A deliverable whose purpose is market-facing persuasion* (copy, positioning,
|
|
40
|
+
campaign material) → **marketing regardless of source**. Decided. Without this
|
|
41
|
+
branch the marketing lens is reachable only when the *source* is market evidence,
|
|
42
|
+
never when the *purpose* is marketing — and the launch post written from the
|
|
43
|
+
release notes routes to code.
|
|
44
|
+
|
|
45
|
+
2. **Deliverable class** — only on the provisional `code` branch. The predicate is on
|
|
46
|
+
the deliverable, not on its audience:
|
|
47
|
+
- *Part of this repository's own document set, shipping and maintained with the
|
|
48
|
+
code* (`ai_docs/`, README, CHANGELOG, comprehension guides, migration notes) →
|
|
49
|
+
**code**; continue to step 3.
|
|
50
|
+
- *A standalone knowledge deliverable whose fidelity extends beyond this repo's
|
|
51
|
+
code* (user documentation for an external audience, a distilled corpus) →
|
|
52
|
+
**knowledge**. Decided; step 3 is not reached.
|
|
53
|
+
|
|
54
|
+
3. **Build-consumed override** — only on the provisional `code` branch, never
|
|
55
|
+
overriding a *marketing* or *supplied-documents* verdict. *Is the deliverable a
|
|
56
|
+
file the project's build or test toolchain consumes?* Executable or imported
|
|
57
|
+
source: yes. Committed Markdown: no. A yes confirms **code**.
|
|
58
|
+
|
|
59
|
+
4. **Split rule.** A request whose work must be faithful to two sources is **two units
|
|
60
|
+
of work**, split before routing: the distillation (knowledge) and the design that
|
|
61
|
+
cites it (code) each route alone. The router returns one lens per unit; it never
|
|
62
|
+
returns two lenses for one unit.
|
|
63
|
+
|
|
64
|
+
5. **Owning tree.** A straddling artifact keeps its lens for *method* and takes this
|
|
65
|
+
repository's tree and validator for *storage*. Lens and location are separate
|
|
66
|
+
answers — a marketing-lens document written in a code repository still lives in
|
|
67
|
+
that repository's `ai_docs/` and passes that project's validator.
|
|
68
|
+
|
|
69
|
+
6. **Cross-check.** If the verdict contradicts an installed skill's `description`, the
|
|
70
|
+
descriptions are wrong: fix them. Never silently override the test with a
|
|
71
|
+
description.
|
|
72
|
+
|
|
73
|
+
## 2. Worked verdicts
|
|
74
|
+
|
|
75
|
+
| Request | 1 | 2 | 3 | Lens |
|
|
76
|
+
|---|---|---|---|---|
|
|
77
|
+
| "write the API reference docs" (hand-written, ships with the repo) | code | repo's own doc set → code | not build-consumed → no flip | **code** |
|
|
78
|
+
| "write user documentation for our customers' admins" | code | standalone knowledge deliverable → knowledge | n/a (left the code branch at 2) | **knowledge** |
|
|
79
|
+
| "write the API reference docs" (generated — the work edits docstrings in source) | code | repo's own doc set → code | **build-consumed: yes → confirms code** | **code** |
|
|
80
|
+
| "write a comprehension guide for the auth module" | code | repo's own doc set → code | not build-consumed → no flip | **code** |
|
|
81
|
+
| "turn these vendor specs into a technical design" | split (step 4): spec = supplied docs; design = this repo | — | — | **knowledge** for the distillation; **code** for the design, citing it |
|
|
82
|
+
| "write the pricing page copy from our market research" | **purpose: market-facing → marketing** | never reached | never reached | **marketing**; stored in this repo's tree (step 5) |
|
|
83
|
+
| "write the launch blog post from the release notes" | purpose: market-facing → marketing | never reached | never reached | **marketing** |
|
|
84
|
+
|
|
85
|
+
## 3. Acting on the verdict
|
|
86
|
+
|
|
87
|
+
The verdict binds the **method and the validation rules**, not the storage:
|
|
88
|
+
|
|
89
|
+
- **Verdict = the loaded lens** → continue; nothing changes.
|
|
90
|
+
- **Verdict = a sibling lens** → say so, and work that unit under the sibling's method
|
|
91
|
+
and its rule set (its templates, its mandatory risk section — code
|
|
92
|
+
`## Security and Threat Model`, knowledge `## Sources and Verification`, marketing
|
|
93
|
+
`## Threat Map / Plan Risks`). The artifact is written with an explicit
|
|
94
|
+
`domain:` field so the answer survives the session, and it stays in this project's
|
|
95
|
+
`ai_docs/` tree (step 5).
|
|
96
|
+
- **The unit was split** (step 4) → route and declare each half separately.
|
|
97
|
+
|
|
98
|
+
Documents under `vision/` — the project vision, principles, the roadmap — sit **above**
|
|
99
|
+
the domain split: they belong to no lens and are validated by the core's structural
|
|
100
|
+
rules only. The router is not consulted for them.
|