@deftai/directive-content 0.58.0 → 0.59.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/Taskfile.yml CHANGED
@@ -268,15 +268,15 @@ includes:
268
268
  changelog:
269
269
  taskfile: ./tasks/changelog.yml
270
270
  optional: true
271
- # Wipe-and-reinstall relocator (#992 PR2). Exposes `task relocate` --
272
- # forwards user-facing flags (`--confirm` / `--dry-run` / `--force` /
273
- # `--rollback` / `--no-snapshot` / `--json` / `--quiet`) via
274
- # {{.CLI_ARGS}}; per `conventions/task-caching.md` no `sources:` /
275
- # `generates:` so the recovery flags reach the script (#574). The
276
- # include is `optional: true` for rolling-merge tolerance.
277
- relocate:
278
- taskfile: ./tasks/relocate.yml
279
- optional: true
271
+ # NOTE (#2022 Python-purge): the `relocate:` include was DROPPED from the
272
+ # consumer task surface. The relocate task shelled into scripts/relocate.py
273
+ # via `uv run python` -- the sole remaining consumer-exposed Python coupling
274
+ # on the deft task surface. It is intentionally NOT wired here anymore. The
275
+ # canonical consumer (re)install / relocate path is the npm installer
276
+ # (`npm i -g @deftai/directive@latest`; see UPGRADING.md / #1912, where
277
+ # relocate is a back-compat / legacy bridge only). tasks/relocate.yml is
278
+ # retained (un-wired) and the helper scripts/relocate.py stays for #1860
279
+ # (big-bang Python delete) to remove.
280
280
  # N7 (#1147): slice:* fragment exposing `task slice:record-existing`
281
281
  # (retrofit slices.jsonl for hand-filed cohorts) + `task slice:list`
282
282
  # (read surface). Include key `slice-record` (not `slice`) so the
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deftai/directive-content",
3
- "version": "0.58.0",
3
+ "version": "0.59.0",
4
4
  "description": "Shippable Directive framework content in the consumer .deft/core/ layout (C1 flatten), plus the engine surfaces (.githooks/, Taskfile.yml, tasks/, scripts/) the deposit wires. Refs #11, #1669, #1967.",
5
5
  "type": "module",
6
6
  "files": [
@@ -4031,7 +4031,7 @@
4031
4031
  "id": "main-001",
4032
4032
  "tier": "MUST",
4033
4033
  "domain": "main",
4034
- "text": "Before any other instruction in this file or in the consumer AGENTS.md, run `deft-install gate` (the node-independent read-only health gate in the frozen installer binary; #1933 Option 3).",
4034
+ "text": "Cold-start check: deft runs from the npm-installed engine (`npm i -g @deftai/directive`). If neither `deft` nor `directive` will run on this machine, do not proceed with the instructions below -- recover first (#1933 Option 1, deprecate-by-disuse).",
4035
4035
  "path": "main.md",
4036
4036
  "body": null
4037
4037
  },
@@ -4039,7 +4039,7 @@
4039
4039
  "id": "main-002",
4040
4040
  "tier": "MUST",
4041
4041
  "domain": "main",
4042
- "text": "If exit code is 0, continue.",
4042
+ "text": "To recover: read `.deft/core/UPGRADING.md`, find the section whose \"Applies when\" clause matches your symptom, and follow that section verbatim before any other instruction in this file or in the consumer AGENTS.md.",
4043
4043
  "path": "main.md",
4044
4044
  "body": null
4045
4045
  },
@@ -4047,7 +4047,7 @@
4047
4047
  "id": "main-003",
4048
4048
  "tier": "MUST",
4049
4049
  "domain": "main",
4050
- "text": "Otherwise: read `.deft/core/UPGRADING.md`, find the section whose \"Applies when\" clause matches the state vector printed by the gate, and follow that section verbatim. Respect any \"Restart required\" directive -- if present, stop and tell the user to start a fresh session after cleanup commands complete.",
4050
+ "text": "Respect any \"Restart required\" directive -- if present, stop and tell the user to start a fresh session after cleanup commands complete. Otherwise continue.",
4051
4051
  "path": "main.md",
4052
4052
  "body": null
4053
4053
  },
package/scripts/doctor.py CHANGED
@@ -734,8 +734,9 @@ def _check_install_path_consistency(project_root: Path, install_root: str | None
734
734
  "`.deft\\core\\run agents:refresh` (Windows) to rewrite "
735
735
  "AGENTS.md to match the on-disk framework -- pick this if "
736
736
  "the framework on disk is correct; OR "
737
- "(b) run `task relocate:relocate -- --confirm` to move the "
738
- "framework to the path AGENTS.md / the manifest claims -- "
737
+ "(b) run `npx @deftai/directive update` to (re)deposit the "
738
+ "framework at the path AGENTS.md / the manifest claims (the "
739
+ "npm CLI project deposit, #1912) -- "
739
740
  "pick this if AGENTS.md is correct. The YAML manifest (if "
740
741
  "present) is authoritative for the install-layout contract. "
741
742
  "See UPGRADING.md for the canonical drift-repair walkthrough."
@@ -748,7 +749,7 @@ def _check_install_path_consistency(project_root: Path, install_root: str | None
748
749
  "claimed_dir_exists": False,
749
750
  "fallback_info_note": fallback_info_note or None,
750
751
  "suggested_fix": ".deft/core/run agents:refresh",
751
- "suggested_fix_alt": "task relocate:relocate -- --confirm",
752
+ "suggested_fix_alt": "npx @deftai/directive update",
752
753
  },
753
754
  )
754
755
  # Note: this check intentionally does NOT verify the YAML manifest
@@ -1,56 +1,26 @@
1
1
  version: '3'
2
2
 
3
- # tasks/relocate.yml -- wipe-and-reinstall relocator surface (#992 PR2).
3
+ # tasks/relocate.yml -- DROPPED from the consumer task surface (#2022).
4
4
  #
5
- # Wires `task relocate` to scripts/relocate.py with full {{.CLI_ARGS}}
6
- # pass-through so operators can compose flags as documented in the script
7
- # docstring (--project-root / --framework-source / --force / --confirm /
8
- # --no-confirm / --dry-run / --rollback / --snapshot / --no-snapshot /
9
- # --json / --quiet).
5
+ # The relocate task previously wired `task relocate` (namespaced
6
+ # `relocate:relocate`) to `uv run python scripts/relocate.py` -- the sole
7
+ # remaining consumer-exposed Python coupling on the deft task surface. Per
8
+ # the #2022 Python-purge readiness gate it has been REMOVED from the
9
+ # consumer-exposed task graph: this fragment is no longer referenced by the
10
+ # root Taskfile.yml `includes:` block and exposes no task.
10
11
  #
11
- # Per `conventions/task-caching.md` (#574): NO `sources:` / `generates:`
12
- # declarations because user-facing recovery flags (`--force`, `--confirm`,
13
- # `--rollback`, `--dry-run`) flow via {{.CLI_ARGS}} -- a go-task cache
14
- # short-circuit would silently drop the recovery flag and leave the
15
- # operator following the docs against an exit-0 no-op (the same hazard
16
- # `task prd:render -- --force` hit at #574).
12
+ # Canonical consumer (re)install / relocate path is now the npm installer
13
+ # (`npm i -g @deftai/directive@latest`), NOT a bundled task -- see
14
+ # content/UPGRADING.md "Manual drift repair" and #1912 (the relocator is a
15
+ # back-compat / legacy bridge only, never a routine-upgrade path). The
16
+ # underlying helper scripts/relocate.py is intentionally retained for #1860
17
+ # (big-bang Python delete) to remove; this story only drops the consumer
18
+ # task surface.
17
19
  #
18
- # Path resolution uses the same {{.TASKFILE_DIR}} / joinPath idiom every
19
- # other fragment uses (#566) so the dispatch resolves correctly under
20
- # Windows / macOS / Linux. The dispatched script lives at
21
- # {{.DEFT_ROOT}}/scripts/relocate.py with helper modules at
22
- # {{.DEFT_ROOT}}/scripts/_relocate_states.py and
23
- # {{.DEFT_ROOT}}/scripts/_relocate_snapshot.py.
24
- #
25
- # Usage notes for operators:
26
- #
27
- # - Bare invocation against a project root that needs relocating prompts
28
- # `[y/N]` on stdin (auto-prompt never auto-wipe per the active vBRIEF).
29
- # - For scripted use, pass `--confirm` to skip the prompt (or
30
- # `--no-snapshot` for hermetic test fixtures).
31
- # - For consumer projects: the canonical entry point is the webinstaller
32
- # bootstrap (`upgrade.sh` / `upgrade.ps1` in the separate `webinstaller`
33
- # repo) which fetches a fresh framework copy to a temp dir and runs the
34
- # relocator from THAT copy -- the in-place framework about to be wiped
35
- # never executes its own wipe.
36
- # - `task relocate -- --rollback` extracts the most recent snapshot back
37
- # into project root.
38
- #
39
- # Companion script: scripts/relocate.py
40
- # Companion tests: tests/relocate/test_state_matrix.py
41
- # tests/relocate/test_preflight.py
42
- # Refs: #992 (parent issue), #11 (.deft/core/ origin),
43
- # #768 (managed-section v2 contract), #794 (_wrap_legacy_in_markers),
44
- # #884 (consent-gate convention).
20
+ # This file is retained (un-wired) so the framework's own Taskfile
21
+ # content-contract tests keep a stable fixture. The DEFT_ROOT joinPath var
22
+ # below preserves the #566 per-subfile path-resolution idiom for any future
23
+ # maintainer-side re-wiring.
45
24
 
46
25
  vars:
47
26
  DEFT_ROOT: '{{joinPath .TASKFILE_DIR ".."}}'
48
-
49
- tasks:
50
- relocate:
51
- desc: "Wipe-and-reinstall relocator (#992 PR2) -- task relocate [-- --confirm | --dry-run | --force | --rollback | --json | --quiet]"
52
- dir: '{{.USER_WORKING_DIR}}'
53
- env:
54
- PYTHONUTF8: "1"
55
- cmds:
56
- - uv --project "{{.DEFT_ROOT}}" run python "{{.DEFT_ROOT}}/scripts/relocate.py" {{.CLI_ARGS}}
@@ -206,6 +206,5 @@ Directive product commands use the `/deft:directive:*` namespace (#418 / #1670).
206
206
 
207
207
  **CLI compatibility:**
208
208
 
209
- - .deft/core/run bootstrap — CLI setup (terminal users)
210
- - .deft/core/run spec — CLI spec generation
209
+ The legacy Python `.deft/core/run` CLI is deprecated and is no longer a load-bearing operator path (#1933 Option 1, deprecate-by-disuse). Use the agent-driven setup skill for first-time setup and project/spec generation; if `deft` or `directive` will not run, read `.deft/core/UPGRADING.md`.
211
210
  <!-- /deft:managed-section -->