@antoneeo/agentic-sdlc-skill 1.19.0 → 1.20.3
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 +467 -332
- package/README.md +122 -95
- package/gemini-extension.json +1 -1
- package/package.json +50 -48
- package/scripts/init.js +217 -156
- package/scripts/lib.js +60 -1
- 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 +25 -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
|
@@ -14,12 +14,15 @@ Every durable canonical document opens with this frontmatter: it feeds the gener
|
|
|
14
14
|
description: One line — what the document is and when to read it.
|
|
15
15
|
status: CURRENT # CURRENT | SUPERSEDED | DRAFT | DEPRECATED
|
|
16
16
|
supersedes: old_doc.md # only if it replaces another canonical doc
|
|
17
|
+
domain: code # optional — code | knowledge | marketing; omit in a single-domain project
|
|
17
18
|
---
|
|
18
19
|
# Document Title
|
|
19
20
|
```
|
|
20
21
|
|
|
21
22
|
When a doc replaces another: the new one declares `supersedes:`, the old one switches to `status: SUPERSEDED` (it stays as history, do not delete it). `sdlc_check.py validate` warns if `status` is missing or if a superseded doc is still `CURRENT`.
|
|
22
23
|
|
|
24
|
+
**`domain:` — write it only when it says something.** It names the domain whose fidelity discipline the document was written under, and it *records* an answer the work already has; it never decides one. Omit it and the project default applies (`default_domain:` in `ai_docs/README.md`, absent → `code`), so a single-domain project never writes the field at all. Documents under `vision/` sit above the split and take no `domain:`. In a mixed project, a wrong or forgotten field surfaces as a validation error on the missing mandatory risk section — never as a silent pass.
|
|
25
|
+
|
|
23
26
|
## ai_docs/reference/GUIDE_[topic].md
|
|
24
27
|
|
|
25
28
|
A guide is either OPERATIVE (`source_kind: document` — distilled from USER-PROVIDED
|
|
@@ -72,6 +75,9 @@ Section repertoire (pick what the source supports):
|
|
|
72
75
|
Curated must-read index, by hand (it is NOT the generated manifest). Created at init, updated rarely, only for real must-reads.
|
|
73
76
|
|
|
74
77
|
```markdown
|
|
78
|
+
---
|
|
79
|
+
default_domain: code
|
|
80
|
+
---
|
|
75
81
|
# ai_docs — reading guide
|
|
76
82
|
|
|
77
83
|
Must-reads for this project, in order. The full manifest of canonical docs is
|
|
@@ -87,6 +93,8 @@ feature catalog), `reference/` (operative guides), `solutions/` (per-feature
|
|
|
87
93
|
analyses, discovery-by-grep), `audit/` (audit plan and handoff).
|
|
88
94
|
```
|
|
89
95
|
|
|
96
|
+
`default_domain:` is the project's answer for every document that does not declare its own `domain:`. Whichever lens's `init` created the project seeds it; a later init never overwrites it, and an absent line resolves to `code` — so every project created before this field existed keeps behaving exactly as it did. It is written once, at project level, precisely so that the same tree gets **the same verdict from every installed lens**.
|
|
97
|
+
|
|
90
98
|
## ai_docs/vision/project_vision.md
|
|
91
99
|
|
|
92
100
|
A Vision states **the benefit to be obtained while leaving the most degrees of
|
|
@@ -208,6 +216,8 @@ Only for features spanning multiple ANALYSIS documents or multiple milestones: o
|
|
|
208
216
|
|
|
209
217
|
The frontmatter is the source of truth for the feature state (the `features_history.md` index is generated from it).
|
|
210
218
|
|
|
219
|
+
`domain:` and `checks:` are optional and only earn their place in a project where more than one lens is installed (see the canonical-header note above for how an omitted `domain:` resolves). `checks:` names **portable checks** imported from another domain — e.g. `domain: knowledge` with `checks: [marketing.funnel]`. An imported check can only ADD findings, never relax what the owning domain requires, so importing one is always safe; naming a check this installation does not carry produces a visible warning, never a silent pass. `id:` is unique **within a domain**, and its prefix says which: `F-` code, `K-` knowledge, `M-` marketing. Projects that predate the prefixes keep their `F-` ids — uniqueness was already scoped to the one domain they have.
|
|
220
|
+
|
|
211
221
|
```markdown
|
|
212
222
|
---
|
|
213
223
|
id: F-001
|
|
@@ -216,6 +226,8 @@ status: PLANNED
|
|
|
216
226
|
level: L3
|
|
217
227
|
start_date: 2026-06-11
|
|
218
228
|
end_date:
|
|
229
|
+
domain: code # optional — code | knowledge | marketing
|
|
230
|
+
checks: [marketing.funnel] # optional — extra portable checks to run on this document
|
|
219
231
|
---
|
|
220
232
|
# Feature Analysis: [Name]
|
|
221
233
|
|