@deftai/directive-content 0.101.0 → 0.102.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/commands.md CHANGED
@@ -275,7 +275,7 @@ Current status: the validation, extractor, provider, registry, generated MAP, an
275
275
  - `task verify:capacity`, `task verify:wip-cap`, and `task verify:judgment-gates` -- policy/capacity gates.
276
276
  - `task verify:orphan-active` -- fail closed when active/running xBRIEFs still point at closed issues or merged PRs (#2321).
277
277
  - `task verify:completed-tracked` -- fail closed when closed scoped issues lack a tracked `xbrief/completed/` or `xbrief/cancelled/` artifact on the delivery tip (#3264); remediate with `task swarm:finalize-cohort` or a lifecycle PR. Standalone verb (not part of `task check`); use `--tip HEAD` when validating an in-flight land branch.
278
- - `task verify:ac` -- product-first acceptance gate (#3284). Runs `plan.acceptance.commands` (or #3267 literal ledger) **verbatim** before done; records AC-source rung (`stated`/`derived`/`project_floor`). Empty commands require `none_stated: true`. Primary name used first in `task check` (fail-fast); `--soft-missing-xbrief` for check composition. Rapid ceremony = AC-only; pressure/degraded makes hygiene advisory. `--capture-only` lists resolved commands without executing. Extends #3267 / #973.
278
+ - `task verify:ac` -- product-first acceptance gate (#3284). Runs `plan.acceptance.commands` (or #3267 literal ledger) **verbatim** before done; records AC-source rung (`stated`/`derived`/`project_floor`). Empty commands require `none_stated: true`. Empty resolution is not a green run when the project has no suite floor (`soft_empty` + stamp-acceptance remedy, #3334). Primary name used first in `task check` (fail-fast); `--soft-missing-xbrief` for check composition. Rapid ceremony = AC-only; pressure/degraded makes hygiene advisory. `--capture-only` lists resolved commands without executing. Extends #3267 / #973.
279
279
  - `task verify:literal-ac` -- #3267 mechanism alias for verbatim stated-command run (same flags/cwd); prefer `verify:ac` for product-first done-gate.
280
280
  - `task coverage:hotspots` / `deft coverage:hotspots` -- read the latest coverage report, compare global metrics to the project's vitest thresholds, fail closed below the branch floor or below configured headroom (default 0.3pp), and list lowest modules plus uncovered branch samples for git-diff paths (`--json` for agents). Complements `deft verify:forward-coverage` (#1310) and `--allow-coverage-debt=#N` (#2573); does not replace them.
281
281
 
@@ -1,6 +1,6 @@
1
1
  # Consumer check contract (`verify:consumer-check-contract`)
2
2
 
3
- Refs: #3145 · Related: #3070 consumer gate integrity, #1519 check:consumer · Policy: #3189 coverageDebt / checkResume
3
+ Refs: #3145 · Related: #3070 consumer gate integrity, #1519 check:consumer · Policy: #3314 coverageDebt / checkResume (reserved)
4
4
 
5
5
  ## Problem
6
6
 
@@ -49,34 +49,26 @@ Root cause of red `greenfield-python-free-smoke` after #3145: the gate only insp
49
49
 
50
50
  `consumer-gate-integrity` proves Taskfile includes resolve. This gate proves the **required enforcement set** is present and composed — not merely that a random verify task exists.
51
51
 
52
- ## Coverage-debt hatch and local check resume (#3189)
52
+ ## Coverage-debt hatch and local check resume (#3314)
53
53
 
54
- Release-born hatch and suite-stamp features must not expand to consumers as silent defaults. Project policy lives under `plan.policy` in PROJECT-DEFINITION:
54
+ Release-born hatch and suite-stamp features must not expand to consumers as silent defaults. Two **plain optional** fields live under `plan.policy` in PROJECT-DEFINITION. Both default off. Both are **reserved** — `task check` and `task release` do not read them.
55
55
 
56
- | Field | Shape | Fail-closed when unset |
56
+ | Field | Shape | Fail-closed when absent / invalid / off |
57
57
  |---|---|---|
58
- | `coverageDebt` | `status: unset \| decided`, `mode: off \| warn \| hatch`, `autoFile` (hatch only; default false) | mode off — no hatch soft-pass |
59
- | `checkResume` | `status: unset \| decided`, `localStamp: off \| on`, `ciTrustsLocalStamp: false` (fixed v1) | localStamp off; **CI never trusts a laptop stamp** |
58
+ | `coverageDebt.mode` | `off \| warn \| hatch` | no hatch soft-pass |
59
+ | `checkResume.localStamp` | `off \| on` | no local suite-stamp resume; **CI never trusts a laptop stamp** |
60
60
 
61
- **Unset vs decided-off:** Unset keeps fail-closed *behavior* and still **nags** on interactive mutation session-start. Decided-off is quiet. Inspect with `deft policy:show --field=coverageDebt` and `--field=checkResume`. Doctor check `coverage-check-resume-policy` surfaces undecided as an **advisory skip** (never hard-fails doctor or `check:consumer`).
61
+ Inspect with `deft policy:show --field=coverageDebt` and `--field=checkResume`. Doctor check `coverage-check-resume-policy` reports a **malformed typed block** (advisory skip). Absent or valid values pass. Interactive mutation session-start prints a one-line disclosure when either field is non-default; silent when both default.
62
62
 
63
- ### Skippable session nudge
63
+ `task check` is fail-closed **by policy**. The live manual hatch is `--allow-coverage-debt=#N` (#2866). Framework `task release` Step 5 hatch is #3187. These flags do not control either path.
64
64
 
65
- On interactive cold or re-arm **mutation** session-start, when either field is unset:
65
+ ### Expansion gates
66
66
 
67
- - **Why:** long checks fail late or barely miss coverage; the project chooses fail-closed, warn, or hatch with a debt issue on **this** repo; local machines may resume a green suite at the same HEAD; CI must not trust a laptop stamp.
68
- - **What:** one bundled choice — **Strict** (recommended), **Hatch-aware**, or **Later** (plus Discuss / Back per #1470).
69
- - **Later** does **not** set `status=decided`; the next ritual nags again.
70
- - **Stop nag** only after Strict / Hatch-aware (preset write) or **dismiss-with-reason** (visible on policy:show / doctor).
71
- - Headless / CI / non-TTY: nudge is skipped (fail-open; never blocks).
72
-
73
- ### Expansion gates (after decided)
74
-
75
- | Feature | Expand to consumers? | Gate |
67
+ | Feature | Status | Notes |
76
68
  |---|---|---|
77
- | Fast-before-slow gate ordering | Yes (universal UX) | No policy wait |
78
- | Local suite stamp resume | When `checkResume.localStamp=on` | Local only; CI ignores |
79
- | Coverage hatch / auto-file | When `coverageDebt.mode=hatch` (+ optional `autoFile`) | Ledger on **this** consumer repo |
69
+ | Fast-before-slow gate ordering | Available | Universal UX; no policy wait |
70
+ | Local suite stamp resume | **Reserved** | Setting exists; consumer expansion not implemented |
71
+ | Coverage hatch / auto-file | **Reserved** | Setting exists; consumer expansion not implemented. Live hatch: `--allow-coverage-debt=#N` (#2866) |
80
72
  | CI trusts local stamp | **Not v1** | Separate RFC |
81
73
 
82
74
  ### Non-goals
@@ -84,4 +76,4 @@ On interactive cold or re-arm **mutation** session-start, when either field is u
84
76
  - Silent default-on hatch for consumers.
85
77
  - Auto-filing coverage-debt issues on **deftai/directive** from a consumer tree — the ledger is always **this** repo.
86
78
  - USER.md as source of truth for ship bars (personal never weakens the project bar).
87
- - Blocking headless CI on the nudge.
79
+ - A session-start Strict / Hatch-aware / Later quiz.
@@ -92,9 +92,34 @@ Cross-cutting process/architecture decisions often have empty `activeScopeRefs`.
92
92
  | Chat / transcripts | Non-goal |
93
93
  | Full inter-run memory (#2741) | Related consumer later; not owned by this surface |
94
94
 
95
+ ## Overlap-cluster dispose (#3315)
96
+
97
+ ! Human-dispose an overlap cluster with `task decision:write`. Put **every** member issue number in `relatedIssues`. Repeat `--related-issue` once per member, or pass `--body-file` JSON with `relatedIssues: [N, M, ...]`. Include a `revisitTrigger`. Free-text MAY name the relationship (duplicate / consolidate / not-duplicate / parent-child / related) and a proposed canonical. No new schema.
98
+
99
+ ! Before re-recommending an overlap, portfolio-priority runs `task decision:list -- --issue N --json` per cited member and parks only when a dispose decision's `relatedIssues` covers this overlap's members, unless `revisitTrigger` applies. This is **advisory skill diligence**, not a `task check` gate.
100
+
101
+ ⊗ Treat the portfolio brief as the decision record (#3198/#3201). ⊗ Auto-close member issues from a dispose write. ⊗ Replace `triage:mark-duplicate`. ⊗ Project cluster labels.
102
+
103
+ **Boundaries**
104
+
105
+ | Surface | Role |
106
+ |---------|------|
107
+ | #886 | Governance tracker |
108
+ | #1178 | Pre-filing |
109
+ | #786 | PR-output cluster |
110
+ | #3198/#3201 | Brief is never the decision record |
111
+ | #1396 (this log) | Phase-1 home for dispose records |
112
+ | `triage:mark-duplicate` | Unchanged |
113
+ | Cluster labels | No projection |
114
+
115
+ **Ledger earning condition**
116
+
117
+ A dedicated tracked ledger (`xbrief/.triage-cache/duplicate-clusters.jsonl` + verbs) is **deferred**. Build only when a portfolio/coupling pass re-litigates a cluster **despite** a dispose decision already listing the member issue numbers. Design archive: #3310 (do not re-derive).
118
+
95
119
  ## Consumers
96
120
 
97
121
  - Portfolio dispose (#3198 / #3201 / pilot #3200)
122
+ - Overlap-cluster dispose (#3315); ledger archive #3310
98
123
  - Process policy dogfood (SCM label-mirror first mass-apply #1423)
99
124
  - Multi-agent handoff continuity (related #2741 class)
100
125
 
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@deftai/directive-content",
3
- "version": "0.101.0",
3
+ "version": "0.102.0",
4
+ "deftConsumerDeposit": true,
4
5
  "description": "Shippable Directive framework content in the consumer .deft/core/ layout (C1 flatten), plus the engine surfaces (.githooks/, Taskfile.yml, tasks/) the deposit wires. Python-free per #2022 Phase 3. Refs #11, #1669, #1967.",
5
6
  "license": "MIT",
6
7
  "type": "module",