@antoneeo/agentic-sdlc-skill 1.26.1 → 1.27.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 +54 -0
- package/gemini-extension.json +6 -6
- package/package.json +50 -50
- package/scripts/init.js +123 -6
- package/scripts/lib.js +434 -227
- package/skills/agentic-sdlc-skill/ENFORCEMENT.md +31 -0
- package/skills/agentic-sdlc-skill/SKILL.md +352 -352
|
@@ -65,6 +65,37 @@ Emits the `ai_docs/` orientation — reading guide (`README.md`), manifest (`IND
|
|
|
65
65
|
|
|
66
66
|
**Wire it on every project that has `ai_docs/` and a Python interpreter.** It was opt-in until v1.16.0 and the field result was the defect this level exists to prevent: the guide router stayed unread unless the user asked for it by hand, so guides were written and never consulted. Prompt-level placement (Rule Zero declares the router verdict; Phase 1 reads the router) carries the process on its own — this hook is the backstop that survives long contexts, compaction and a session that never enters Phase 1 explicitly. Skip it only where Python is unavailable, and know what you are trading.
|
|
67
67
|
|
|
68
|
+
**`init` wires it for you (F-036).** Running `init` on a project that has a docs root
|
|
69
|
+
and a Python interpreter now installs this hook itself — it was a manual step until
|
|
70
|
+
2026-08-25, and the field result was exactly the defect this level exists to prevent: an
|
|
71
|
+
agent worked a governed project without ever meeting the router. The snippet below is
|
|
72
|
+
the fallback for the cases init declines, and the list is exhaustive: **any client
|
|
73
|
+
other than Claude Code** (Codex and Gemini keep the manual snippet — no fixture in the
|
|
74
|
+
repository pins their hook schema, and writing one in an unverified shape is how a
|
|
75
|
+
wired-but-dead hook is born), no Python, the skill not installed yet, a settings file
|
|
76
|
+
that is not valid JSON or carries a `hooks`/`SessionStart` shape the writer does not
|
|
77
|
+
recognise (it never rewrites one it cannot read), a validator path holding a character
|
|
78
|
+
that cannot be placed in a command safely, or a settings file it cannot write. `init`
|
|
79
|
+
prints which case applied, per client — a silent skip is what let "documented default
|
|
80
|
+
that nobody installs" survive in the first place.
|
|
81
|
+
|
|
82
|
+
**Which settings file, and why it is not always the shared one.** The command names a
|
|
83
|
+
validator, and where that validator lives decides where the hook may be written:
|
|
84
|
+
|
|
85
|
+
| Case | Command | File |
|
|
86
|
+
|---|---|---|
|
|
87
|
+
| The repo vendors the validator (§2) | repo-relative | `.claude/settings.json` — portable, commit it |
|
|
88
|
+
| The validator is only in your skills directory (the normal case) | absolute | `.claude/settings.local.json` — machine-specific, git-ignored; each teammate runs `init` once |
|
|
89
|
+
|
|
90
|
+
Committing an absolute `C:\Users\<you>\...` path into the shared file hands every teammate a hook naming
|
|
91
|
+
a directory they do not have. `init` picks the file for you, and adds
|
|
92
|
+
`.claude/settings.local.json` to `.gitignore` when it uses the local one.
|
|
93
|
+
|
|
94
|
+
**A hook that is wired and DEAD is the worst of the three states**: it emits nothing at
|
|
95
|
+
every session AND it looks installed. `init` checks that an existing hook's validator
|
|
96
|
+
still resolves and reports it as BROKEN with the corrected command, rather than
|
|
97
|
+
reporting "already wired". It never rewrites the entry — it may be hand-tuned.
|
|
98
|
+
|
|
68
99
|
Wire it via each client's SessionStart mechanism — the same command everywhere (add `--hybrid` on devPNT/Hybrid projects):
|
|
69
100
|
|
|
70
101
|
Claude Code — in the project's `.claude/settings.json`:
|