@deftai/directive-content 0.91.0 → 0.92.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/QUICK-START.md CHANGED
@@ -155,7 +155,7 @@ Read and follow `../AGENTS.md`. This starts the normal first-session flow (user
155
155
 
156
156
  **Writing pointer:** For docs, issues, and PR prose that maintainers or agents author, follow [docs/writing-ste100.md](./docs/writing-ste100.md) (short controlled English; #2927).
157
157
 
158
- **Opt-out pointer:** Projects that must not use Directive should commit root [`.no-deft-directive`](./docs/no-deft-directive.md) so session/doctor/init/setup skip install and ritual (#2926).
158
+ **Opt-out pointer:** Projects that must not use Directive should commit root [`.no-deft-directive`](./docs/no-deft-directive.md) so session/doctor/init/setup skip install and ritual (#2926). Temporary local kill-switch (deposit OK): [`.deft-directive-disable`](./docs/deft-directive-disable.md) (#3039).
159
159
 
160
160
  **Contributor pointer (non-blocking):** Working on Deft itself (a `deftai/directive` source checkout)? See [CONTRIBUTING.md](../CONTRIBUTING.md) and use the maintainer install path (`deft-install --yes --upgrade --maintainer --repo-root . --json`). The repo's root `AGENTS.md` has contributor instructions — you do not need the consumer first-session flow above.
161
161
 
@@ -0,0 +1,96 @@
1
+ # Temporary kill-switch: `.deft-directive-disable`
2
+
3
+ Use a **root file flag** to turn Directive **enforcement** off for local testing (A/B, DevHammer, ceremony vs loop) **without** permanent project opt-out and **without** deleting the deposit.
4
+
5
+ Tracker: [#3039](https://github.com/deftai/directive/issues/3039).
6
+
7
+ **Not** permanent opt-out — that is [`.no-deft-directive`](./no-deft-directive.md) (#2926).
8
+
9
+ ## Filename and location
10
+
11
+ ```text
12
+ .deft-directive-disable
13
+ ```
14
+
15
+ - **Exact name:** lowercase `.deft-directive-disable`
16
+ - **Location:** project / workspace **root only**
17
+ - **Content:** empty file or a short `#` comment. Presence is the flag. No schema.
18
+ - **Git:** **Must be gitignored** (deposit baseline includes this entry). Committed / tracked flag is a misconfig: doctor **warns**, and enforcement is **not** disabled (repo-controlled content must not turn off hooks for clones).
19
+
20
+ ## Distinct from permanent opt-out
21
+
22
+ | File | Intent |
23
+ |------|--------|
24
+ | [`.no-deft-directive`](./no-deft-directive.md) | Permanent: project does not use Directive. Flag + deposit is **inconsistent**. |
25
+ | `.deft-directive-disable` | Temporary: testing kill-switch. **Deposit OK**. |
26
+
27
+ ## Behavior
28
+
29
+ | Surface | When flag present |
30
+ |---------|-------------------|
31
+ | **Doctor** | Status **disabled (test kill-switch)**; **not** the #2926 flag+deposit dirty path; prints full recovery (file gone + new session). |
32
+ | **Agent** | Always-on AGENTS contract: stop further Directive process load; echo recovery. |
33
+ | **CLI** (`session:start`, ritual paths) | Disabled + recovery; no ritual write / no half-DD automation. |
34
+ | **Host hooks** | SessionStart / PreToolUse / compact skip ritual and enforcement. |
35
+
36
+ Deposit (`.deft/core`) **may remain**. Init/update are not blocked by this flag alone (unlike permanent opt-out).
37
+
38
+ ## Recovery (hysteresis)
39
+
40
+ Directive is **fully operational** only when:
41
+
42
+ 1. **`.deft-directive-disable` is absent**, and
43
+ 2. A **new agent session** has been started after the file was removed
44
+
45
+ Canonical recovery message:
46
+
47
+ ```text
48
+ Directive is DISABLED for this project via root `.deft-directive-disable` (test/local kill-switch).
49
+ Deposit may still be present; enforcement (hooks, session ritual, automation) will not run.
50
+
51
+ To fully re-enable Directive:
52
+ 1. Delete the file: rm .deft-directive-disable (or equivalent)
53
+ 2. Start a NEW agent session (reload AGENTS / host skills / hooks)
54
+ Until both are done, Directive is not fully operational.
55
+ ```
56
+
57
+ ## Precedence
58
+
59
+ 1. `.deft-directive-disable` → test kill-switch (deposit OK; recovery = delete + new session)
60
+ 2. `.no-deft-directive` → permanent opt-out (#2926)
61
+ 3. Else normal Directive
62
+
63
+ If **both** flags are present: one combined message; permanent install semantics still apply for init/update.
64
+
65
+ ## Consumer note (A/B / DevHammer)
66
+
67
+ Typical arm for “without Directive enforcement”:
68
+
69
+ ```bash
70
+ # Ensure ignore entry exists (init/update baseline)
71
+ # Then:
72
+ touch .deft-directive-disable
73
+ # Start a new agent session — enforcement off; deposit may stay.
74
+ ```
75
+
76
+ Re-enable:
77
+
78
+ ```bash
79
+ rm .deft-directive-disable
80
+ # Start a NEW agent session
81
+ ```
82
+
83
+ ## Non-goals (v1)
84
+
85
+ - ⊗ Auto-delete `.deft/` or uninstall deposit
86
+ - ⊗ Replace or weaken `.no-deft-directive`
87
+ - ⊗ Rewrite AGENTS to a stub on disable
88
+ - ⊗ Org-remote kill switch
89
+ - ⊗ Nested monorepo package roots
90
+ - ⊗ `DEFT_DISABLED=1` env (optional later)
91
+
92
+ ## Related
93
+
94
+ - [no-deft-directive.md](./no-deft-directive.md) — permanent opt-out
95
+ - [getting-started.md](./getting-started.md) — install and first project
96
+ - `session:start`, `doctor`, host hooks (SessionStart / PreToolUse / compact)
@@ -65,6 +65,22 @@ framework:
65
65
  | **Ship** | PR merge and release — `task pr:*` and [`deft-directive-release`](../skills/deft-directive-release/SKILL.md). |
66
66
  | **Issues / Features** | GitHub issues and feature requests mirrored into `.deft-cache/` and surfaced as triage candidates. |
67
67
 
68
+ ## Delivery integrity vs deploy / UAT (#3041)
69
+
70
+ `scope:complete` and swarm cohort completion mark **lifecycle bookkeeping**, not environment
71
+ green. For **code-bearing** scopes, delivered completion requires durable proof that the
72
+ implementation reached the configured **delivery branch** (`plan.policy.deliveryBranch`,
73
+ defaulting to the repo default branch) — typically: PR `base.ref` equals that branch, and the
74
+ merge commit is an ancestor of the refreshed remote delivery ref. A merge into an intermediate
75
+ feature/integration branch is **not** delivery.
76
+
77
+ Handoff states that Git can assert are distinct: `implemented` → `pr_open` →
78
+ `merged_to_integration` → `delivered`. **Deployed** and **UAT verified** are separate evidence
79
+ axes and are never inferred from Git alone. Explicit non-delivery dispositions
80
+ (`accepted_not_delivered`, `superseded`, `experiment_archived`, `cancelled`) complete the
81
+ lifecycle without claiming the work shipped. Legacy completed records without completion
82
+ provenance surface as `unknown` / `unverified`, not retroactively `delivered`.
83
+
68
84
  ## Why it loops
69
85
 
70
86
  The central claim of the picture is that Directive is **reiterative**. Strategy analysis is
@@ -145,3 +145,5 @@ Full command reference for every triage and cache verb lives in [`commands.md`
145
145
  **Writing:** For docs, issues, and PR prose, follow [writing-ste100.md](./writing-ste100.md) (short controlled English; #2927).
146
146
 
147
147
  **Opt out:** To mark a repo as not using Directive, add root [`.no-deft-directive`](./no-deft-directive.md) (#2926). Tools skip install and session ritual when that file is present.
148
+
149
+ **Temporary test kill-switch:** For local A/B or DevHammer without permanent opt-out, use root [`.deft-directive-disable`](./deft-directive-disable.md) (#3039). Deposit may stay; re-enable by deleting the file and starting a new agent session.
@@ -82,6 +82,7 @@ When `deft-directive-setup` runs:
82
82
 
83
83
  ## Related
84
84
 
85
+ - [deft-directive-disable.md](./deft-directive-disable.md) — **temporary** test/local kill-switch (deposit OK; not this flag)
85
86
  - [getting-started.md](./getting-started.md) — install and first project
86
87
  - [product-signal.md](./product-signal.md) — optional partner signal (defaults off; flag still wins locally)
87
88
  - `session:start`, `doctor`, `directive init`, `directive update`
@@ -69,9 +69,16 @@ The managed AGENTS.md section `## Skill pin policy (#2508)` carries the framewor
69
69
 
70
70
  Skills-pack entries (`content/packs/skills/skills-pack-0.1.json`) MAY record `"alwaysPin": true` on metadata-only rows so slice tooling and future gates can list pins without parsing AGENTS.md. The authoritative runtime list for agents remains the AGENTS.md pin section; the catalog field is advisory for tooling (#1535).
71
71
 
72
+ ## Through-merge is false-negative sensitive (#3032)
73
+
74
+ Operator phrases such as **through merge**, **drive to merge**, **land/ship issue**, or explicit **drive-to: merge-ready** often start implementation **without** a clear `swarm` keyword. That is the same false-negative class this policy targets: the parent may code instead of loading `deft-directive-swarm` and dispatching a worker.
75
+
76
+ ! AGENTS.md carries short always-on `!` / `⊗` bullets under **Through-merge worker dispatch (#3032)** (agents-entry + maintainer multi-agent doctrine). N=1 still uses the swarm/solo launch path; parent MUST NOT implement when background subagent/worktree dispatch is available. See also swarm Phase 0 `references/core-phase-0.md` and #1880 Gap C.
77
+
72
78
  ## Related
73
79
 
74
80
  - Skills Index: `REFERENCES.md` § Skills Index
75
81
  - Progressive disclosure: #2484
76
82
  - Trigger coverage evals: #1586
77
83
  - Review-surface precedence: #2308 / `deft-directive-review-cycle`
84
+ - Through-merge parent-must-dispatch: #3032 / AGENTS.md `## Through-merge worker dispatch (#3032)`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deftai/directive-content",
3
- "version": "0.91.0",
3
+ "version": "0.92.0",
4
4
  "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
5
  "license": "MIT",
6
6
  "type": "module",