@antoneeo/agentic-sdlc-skill 1.48.0 → 1.50.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.
@@ -307,7 +307,13 @@ checks: [marketing.funnel] # optional — extra portable checks to run on t
307
307
  without replacing, the owner's own review. They keep the top of the funnel
308
308
  from proposing what the vision does not want or the project does not have;
309
309
  drafting is grounded in BOTH anchors first — the Vision (benefit + actors)
310
- and the real system (summaries / existing features / source). -->
310
+ and the real system (summaries / existing features / source).
311
+ IDS: at L3 every use-case here opens with `UC<n>`, every item of
312
+ ## Functional Spec with `FS<n>`, every threat of ## Security with `T<n>` — at
313
+ the start of a bullet, `###`/`####` heading or table row — so
314
+ `sdlc_check.py constraints --unit <id>` can show them. -->
315
+
316
+ - **UC1 (Actor)** — what they need and why. *Benefit: …*
311
317
 
312
318
  ## Functional Spec
313
319
  <!-- [conditional] Fires when the change ADDS or ALTERS observable behavior —
@@ -371,7 +377,7 @@ checks: [marketing.funnel] # optional — extra portable checks to run on t
371
377
  the responsibility-level flow that deliver them; it NAMES the components in
372
378
  the flow, never their mechanism or file-level design (that is the Impact's
373
379
  vocabulary). After
374
- design approval, changing a contracted surface, flow or feedback is a scope
380
+ the owner's design approval (`review.md`), changing a contracted surface, flow or feedback is a scope
375
381
  change the USER approves: the solution may propose it, never enact it
376
382
  silently. Every contracted flow is covered by ## Test Strategy. -->
377
383
 
@@ -403,7 +409,20 @@ checks: [marketing.funnel] # optional — extra portable checks to run on t
403
409
 
404
410
  ## Impact
405
411
  <!-- existing files touched, APIs/contracts, performance, new dependencies.
406
- Derived from the ledger above: every INADEQUATE/MISSING row appears here. -->
412
+ Derived from the ledger above: every INADEQUATE/MISSING row appears here.
413
+ The blast radius (SKILL.md Phase 3) is the table below: one row per existing
414
+ symbol whose behaviour must survive the change. A unit that changes no
415
+ existing symbol writes the single line `No existing symbol changed.` instead.
416
+ Bound to: backticked repository-relative paths, optionally `path::symbol`
417
+ (an elided path binds nothing). Callers: the enumerated set, or "none outside
418
+ the file". Must stay true: one statement a test or probe could check.
419
+ Evidence: the enumeration instrument or the probe — never "to be done". -->
420
+
421
+ ### Preservation constraints
422
+
423
+ | id | bound to | callers | must stay true | evidence |
424
+ |---|---|---|---|---|
425
+ | P1 | `path/to/store.py::OrderStore.save` | `api/orders.py`, `jobs/sync.py` | a saved order is readable by id before `save` returns | find-usages on `save`; `test_store.py` |
407
426
 
408
427
  ## Security and Threat Model
409
428
  <!-- ALWAYS mandatory, also in Standalone.
@@ -530,6 +549,9 @@ Context (agent): "the question it answered, quoted"
530
549
  entered only as `[NOT VERBATIM — from <source>]`, never as a quote.
531
550
  - **Unattended**: R1 quotes the trigger that started the unit, labelled as such.
532
551
  Declared assumptions are not owner statements and never enter the record.
552
+ - **Design approval** (L3): the owner's approval of the design is an entry whose
553
+ label begins `design approved`; a no or a correction takes its own label
554
+ (`review.md` §When a review is due).
533
555
  - **Hybrid**: always on the filesystem; governed artifacts cite entries too; an
534
556
  approval given in devPNT is named by its proposal, not quoted.
535
557
 
@@ -705,7 +727,9 @@ columns: Standalone adds `reviewer`, a Hybrid row adds `instrument` and
705
727
 
706
728
  `tier` is the moment plus, in Hybrid, the reviewer weight: `design`, `design (late)`
707
729
  and `closure` (Standalone); `deep`, `light`, `code`, `guide`, `vision` (devPNT gates
708
- and the Vision blind check). `model` is a different question about the same review: `tier` says WHICH GATE ran,
730
+ and the Vision blind check). `post-merge` is not a review: the owner's report of a
731
+ wrong behaviour in a merged L3 change, with `model` `none (owner report)`, `reviewer`
732
+ `owner` and the owner's words in the notes (`review.md`). `model` is a different question about the same review: `tier` says WHICH GATE ran,
709
733
  `model` says WHAT CAPABILITY ran it (`deep`, `light`, `economy`,
710
734
  `single (client exposes no choice)`, `below floor: <reason>`, `none (not due)` on a
711
735
  NOT DUE row — the floor and its