@antoneeo/agentic-sdlc-skill 1.8.0 → 1.8.1
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
CHANGED
|
@@ -2,6 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
Tutte le modifiche significative a questa skill saranno documentate in questo file.
|
|
4
4
|
|
|
5
|
+
## [1.8.1] - 2026-07-02
|
|
6
|
+
### Fixed
|
|
7
|
+
- **Guide freshness hash is now line-ending independent**: `sha256_file` in `sdlc_check.py` normalizes CRLF → LF before hashing. Previously the raw-byte hash made a fresh Windows checkout with `core.autocrlf=true` rewrite `.sources/` snapshots and flag every guide `[stale]` (false positive). Backward compatible: recorded hashes were computed on LF content, and normalization maps CRLF copies back to the same digest. (Edge case: a hash recorded pre-1.8.1 on a snapshot that genuinely contained CRLF bytes will flag `[stale]` once — regenerate the hash.)
|
|
8
|
+
- `guides.md` step 3 now states the hash is computed over LF-normalized content and recommends the `ai_docs/reference/.sources/** -text` `.gitattributes` rule to consumer projects (defense in depth: keeps snapshots byte-verbatim).
|
|
9
|
+
|
|
10
|
+
### Test battery addition
|
|
11
|
+
- Scenario 10 (extends the unit-1 battery): snapshot checked out with CRLF endings + guide recording the LF-normalized hash → `stale` must NOT flag it; a genuine content edit must still flag `[stale]`.
|
|
12
|
+
|
|
5
13
|
## [1.8.0] - 2026-07-02 (Feature B unit 1: operative guides, project scope)
|
|
6
14
|
### Added
|
|
7
15
|
- **Operative guides** (`ai_docs/reference/GUIDE_[topic].md`): a durable, source-faithful layer distilled from USER-PROVIDED indications — the capability neither agentic-sdlc nor superpowers had. New support file `guides.md` (pipeline: topic decomposition → user confirmation → verbatim snapshot in `reference/.sources/` with SHA-256 → source-anchored extraction → per-section fidelity markers `[source: …]` / `[not covered by source]`); guide template with provenance frontmatter (`source`, `source_version`, `distilled_from`, `source_hash`) in `templates.md`; short "Operative Guides" section in `SKILL.md`.
|
package/gemini-extension.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@antoneeo/agentic-sdlc-skill",
|
|
3
|
-
"version": "1.8.
|
|
3
|
+
"version": "1.8.1",
|
|
4
4
|
"description": "Documentation-First SDLC protocol for Claude Code, Gemini CLI and Codex with risk triage, Vision governance, installed support files and optional devPNT integration.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"claude-code",
|
|
@@ -83,6 +83,13 @@ guide with no `distilled_from` is not this pipeline's output.
|
|
|
83
83
|
- `hash8` = first 8 hex chars of the snapshot file's own SHA-256 (compute
|
|
84
84
|
the snapshot first, hash it, then name it — the hash is of the file you
|
|
85
85
|
just wrote, not of the original source).
|
|
86
|
+
- The hash is computed over LF-normalized content (CRLF → LF), exactly as
|
|
87
|
+
`sdlc_check.py` does in `sha256_file` — so recorded hashes survive
|
|
88
|
+
checkouts that rewrite line endings (e.g. Windows `core.autocrlf=true`).
|
|
89
|
+
- Recommended for consumer projects: add
|
|
90
|
+
`ai_docs/reference/.sources/** -text` to `.gitattributes` so git never
|
|
91
|
+
rewrites snapshot bytes at all (keeps snapshots byte-verbatim; the
|
|
92
|
+
normalized hash stays stable either way).
|
|
86
93
|
- The snapshot is verbatim: no paraphrasing, no reformatting beyond what is
|
|
87
94
|
needed to save it as markdown.
|
|
88
95
|
4. **Source-anchored SYNTHESIS (not restatement).** Select and compress what
|
|
@@ -109,8 +109,12 @@ def read_text(path):
|
|
|
109
109
|
|
|
110
110
|
|
|
111
111
|
def sha256_file(path):
|
|
112
|
+
# CRLF->LF before hashing: a Windows checkout with core.autocrlf=true
|
|
113
|
+
# rewrites snapshot files, and a raw-byte hash would flag every guide
|
|
114
|
+
# [stale] on a fresh clone. Recorded hashes are LF-based, so normalizing
|
|
115
|
+
# maps CRLF copies back to the same digest.
|
|
112
116
|
h = hashlib.sha256()
|
|
113
|
-
h.update(path.read_bytes())
|
|
117
|
+
h.update(path.read_bytes().replace(b"\r\n", b"\n"))
|
|
114
118
|
return h.hexdigest()
|
|
115
119
|
|
|
116
120
|
|