@antoneeo/agentic-sdlc-skill 1.17.0 → 1.19.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.
@@ -238,8 +238,27 @@ end_date:
238
238
  use-case = what they do. Derived from the elicitation round; the Impact below
239
239
  must cover each, and the closure review checks coverage + actor UX fit. -->
240
240
 
241
+ ## Capability Ledger
242
+ <!-- the architect pass (`architect.md`), run BEFORE the Impact below. One row per
243
+ capability the feature requires the system to be able to DO — a verb over a
244
+ domain noun, naming no file. Verdict EXISTS (name the component and where) /
245
+ INADEQUATE (same, plus the gap) / MISSING (say what you searched). Every
246
+ INADEQUATE or MISSING row becomes a component with its own contract, stated
247
+ without naming this feature, and lands in the Impact below. Evidence is what
248
+ makes a verdict falsifiable: for EXISTS/INADEQUATE the one guarantee you
249
+ re-read to confirm it; for MISSING the terms, the tool and the areas searched
250
+ (and say "provisional" when the area is still PENDING in the audit plan).
251
+ A question, not a form: when every capability plainly exists, one line under
252
+ this heading answers it — still naming the component and where it lives. -->
253
+
254
+ | Capability | Verdict | Component / gap | Evidence |
255
+ |---|---|---|---|
256
+ | persist an order | EXISTS | `path/to/store.py#OrderStore` | re-read `save()`: durable, returns the id |
257
+ | notify the customer | MISSING | — | grep notify/alert/dispatch + send, over src/ and legacy/; no owner |
258
+
241
259
  ## Impact
242
- <!-- existing files touched, APIs/contracts, performance, new dependencies -->
260
+ <!-- existing files touched, APIs/contracts, performance, new dependencies.
261
+ Derived from the ledger above: every INADEQUATE/MISSING row appears here. -->
243
262
 
244
263
  ## Security and Threat Model
245
264
  <!-- ALWAYS mandatory, also in Standalone.
@@ -368,6 +387,39 @@ Date: 2026-06-11 (UTC)
368
387
  <!-- one or two lines: release pending, environment quirks that affect everyone -->
369
388
  ```
370
389
 
390
+ ## ai_docs/audit/reviews/REVIEW_LOG.md
391
+
392
+ One row per completed review (`review.md` §When a review is due). Append-only; it
393
+ is the record that the gate ran and what it was worth. **One schema for both
394
+ modes** — a Hybrid project's devPNT gates write to this same file, so Standalone
395
+ adds values to the existing columns rather than a second table.
396
+
397
+ ```markdown
398
+ # Independent Review Log
399
+
400
+ | date | doc_key | tier | reviewer | findings_raised | findings_real | verdict | revise_rounds |
401
+ |---|---|---|---|---|---|---|---|
402
+ | 2026-06-11 | ANALYSIS_login_sso.md | design | subagent (opus, fresh ctx) | 4 | 3 | PASS | 2 |
403
+ | 2026-06-12 | diff feature/sso-login | closure | self-pass (declared; no subagent facility) | 2 | 2 | PASS | 1 |
404
+
405
+ ## Notes
406
+ <!-- One short paragraph per review that found something worth remembering: what
407
+ the findings actually were, and what changed because of them. The table
408
+ answers "was it reviewed and by what"; this answers "what did it find" —
409
+ which is where `review.md`'s per-finding outcomes live. Omit for a clean
410
+ review; a row with 0 findings needs no note. -->
411
+ ```
412
+
413
+ `tier` is the moment plus, in Hybrid, the reviewer weight: `design`, `design (late)`
414
+ and `closure` (Standalone); `deep`, `light`, `code`, `guide`, `vision` (devPNT gates
415
+ and the Vision blind check). The validator reads this column by its header name, so
416
+ extra or reordered columns are fine — but the header must say `tier`. `reviewer`
417
+ records the realization actually used — fresh subagent, one-shot client run, or a
418
+ **declared** self-pass. Writing `self-pass` where independence was unavailable is
419
+ honest; writing nothing, or implying independence you did not have, is the failure
420
+ this column exists to prevent. `findings_real` is how many raised findings survived
421
+ triage: over time it is the only evidence of whether the gate earns its cost.
422
+
371
423
  ## ai_docs/audit/HANDOFF_[feature].md — volatile resume logistics (ephemeral)
372
424
 
373
425
  **Resume logistics ONLY; the ANALYSIS Diary keeps the durable narrative (DRY).**
@@ -399,12 +451,39 @@ Canonical docs: they open with the header (`description:`/`status:`) so they ent
399
451
 
400
452
  ```markdown
401
453
  ---
402
- description: Stack, directory structure and architectural patterns of the project.
454
+ description: Stack, directory structure, component map and architectural patterns of the project.
403
455
  status: CURRENT
404
456
  ---
405
457
  # Project Architecture
406
458
  ## Technology Stack
407
459
  ## Directory Structure
460
+ ## Component Map
461
+ <!-- The inventory the architect pass reads BEFORE searching the code
462
+ (`architect.md` §2). One row per component that OWNS a capability:
463
+ Capability = what it lets the system DO (a verb over a domain noun, naming
464
+ no file). Contract = what it guarantees its consumers, in one line, stated
465
+ without naming any single consumer. Where = a path, or `path#symbol` when
466
+ the component is smaller than its file.
467
+ Seeded at bootstrap; a row is added or corrected in the SAME closure that
468
+ builds — or merely discovers — a component, and the area is marked ANALYZED.
469
+ A directory is not a component: rows name what owns a capability, not where
470
+ files sit (that is ## Directory Structure above). An absent or stale map is
471
+ why the next feature rules the same capability MISSING a second time and
472
+ builds it again. -->
473
+
474
+ Coverage: whatever `audit/audit_plan.md` marks ANALYZED — **read it, do not trust a
475
+ list restated here** (a hand-copied list is a cache with no invalidation). Outside
476
+ those areas this map is **unread, not empty**: it can never ground a MISSING
477
+ verdict, and the code is searched instead (`architect.md` §2).
478
+
479
+ | Component | Capability it owns | Contract | Where |
480
+ |---|---|---|---|
481
+ | ... | ... | ... | ... |
482
+
483
+ <!-- Where is `path/to/file.py#Symbol`. Leave the placeholder row untouched until
484
+ the map has a real component: the validator skips an all-`...` row, so a
485
+ freshly seeded project is never nagged about a table nobody has filled in. -->
486
+
408
487
  ## Architectural Patterns
409
488
  ```
410
489