@arbiterforge/ca-pi 0.15.12 → 0.16.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.
Files changed (64) hide show
  1. package/README.md +1 -1
  2. package/package.json +1 -1
  3. package/plugins/ca-pi/CHANGELOG.md +26 -0
  4. package/plugins/ca-pi/SKILLS.md +1 -1
  5. package/plugins/ca-pi/agents/infra-author.md +7 -1
  6. package/plugins/ca-pi/agents/scout.md +40 -8
  7. package/plugins/ca-pi/generated/command-catalog.json +1 -1
  8. package/plugins/ca-pi/helpers/artifacts/ca-artifact-darwin-amd64 +0 -0
  9. package/plugins/ca-pi/helpers/artifacts/ca-artifact-darwin-arm64 +0 -0
  10. package/plugins/ca-pi/helpers/artifacts/ca-artifact-linux-amd64 +0 -0
  11. package/plugins/ca-pi/helpers/artifacts/ca-artifact-linux-arm64 +0 -0
  12. package/plugins/ca-pi/helpers/artifacts/ca-artifact-windows-amd64.exe +0 -0
  13. package/plugins/ca-pi/helpers/artifacts/ca-artifact-windows-arm64.exe +0 -0
  14. package/plugins/ca-pi/helpers/artifacts/release.json +104 -6
  15. package/plugins/ca-pi/hooks/_activationlib.py +97 -13
  16. package/plugins/ca-pi/hooks/_arbiterstatelib.py +7 -2
  17. package/plugins/ca-pi/hooks/_artifactauthoritylib.py +206 -2
  18. package/plugins/ca-pi/hooks/_artifactlib.py +166 -2
  19. package/plugins/ca-pi/hooks/_artifactpromptlib.py +106 -2
  20. package/plugins/ca-pi/hooks/_bashguardlib.py +14 -0
  21. package/plugins/ca-pi/hooks/_contextreportlib.py +564 -6
  22. package/plugins/ca-pi/hooks/_contextselectlib.py +464 -0
  23. package/plugins/ca-pi/hooks/_contextsnapshotlib.py +999 -0
  24. package/plugins/ca-pi/hooks/_debughandofflib.py +767 -0
  25. package/plugins/ca-pi/hooks/_hooklib.py +1 -0
  26. package/plugins/ca-pi/hooks/_host.py +1 -1
  27. package/plugins/ca-pi/hooks/_intentlib.py +5 -5
  28. package/plugins/ca-pi/hooks/_protectedlib.py +3 -3
  29. package/plugins/ca-pi/hooks/_protectedstatelib.py +152 -2
  30. package/plugins/ca-pi/hooks/_provenancelib.py +604 -34
  31. package/plugins/ca-pi/hooks/_readinjectlib.py +131 -1
  32. package/plugins/ca-pi/hooks/artifact-authority.py +20 -1
  33. package/plugins/ca-pi/hooks/debug-handoff.py +85 -0
  34. package/plugins/ca-pi/hooks/doctor.py +4 -2
  35. package/plugins/ca-pi/hooks/hostapi.py +1 -1
  36. package/plugins/ca-pi/hooks/init-codearbiter.py +143 -15
  37. package/plugins/ca-pi/hooks/prompt-submit.py +14 -0
  38. package/plugins/ca-pi/hooks/session-start.py +26 -7
  39. package/plugins/ca-pi/includes/author-tdd-workflow.md +16 -4
  40. package/plugins/ca-pi/includes/helper-invocation.md +128 -0
  41. package/plugins/ca-pi/includes/pi-host-notes.md +13 -0
  42. package/plugins/ca-pi/includes/routing-table.md +1 -1
  43. package/plugins/ca-pi/package.json +1 -1
  44. package/plugins/ca-pi/routines/INDEX.md +1 -1
  45. package/plugins/ca-pi/routines/commit-gate/SKILL.md +5 -3
  46. package/plugins/ca-pi/routines/context-check/SKILL.md +103 -17
  47. package/plugins/ca-pi/routines/context-creation/SKILL.md +290 -54
  48. package/plugins/ca-pi/routines/debug/SKILL.md +303 -55
  49. package/plugins/ca-pi/routines/debug/references/debug-handoff.schema.json +879 -0
  50. package/plugins/ca-pi/routines/debug/references/handoff.md +155 -0
  51. package/plugins/ca-pi/routines/decompose/SKILL.md +13 -0
  52. package/plugins/ca-pi/routines/subagent-driven-development/SKILL.md +34 -0
  53. package/plugins/ca-pi/routines/tdd/SKILL.md +91 -17
  54. package/plugins/ca-pi/skills/ca-commit/SKILL.md +5 -3
  55. package/plugins/ca-pi/skills/ca-context-check/SKILL.md +103 -17
  56. package/plugins/ca-pi/skills/ca-create-context/SKILL.md +290 -54
  57. package/plugins/ca-pi/skills/ca-debug/SKILL.md +303 -55
  58. package/plugins/ca-pi/skills/ca-decompose/SKILL.md +13 -0
  59. package/plugins/ca-pi/skills/ca-feature/SKILL.md +1 -1
  60. package/plugins/ca-pi/skills/ca-fix/SKILL.md +36 -3
  61. package/plugins/ca-pi/skills/ca-init/SKILL.md +19 -0
  62. package/plugins/ca-pi/skills/ca-review/SKILL.md +33 -4
  63. package/plugins/ca-pi/skills/ca-status/SKILL.md +5 -0
  64. package/plugins/ca-pi/skills/ca-task/SKILL.md +55 -8
@@ -10,27 +10,74 @@ The one blessed way to mutate `<project-root>/.codearbiter/open-tasks.md`
10
10
  (resolves D-1). Hand-editing the board is no longer the only path; this command keeps
11
11
  every entry schema-conformant and every transition dated. The board LOGIC lives in the
12
12
  pure `_taskboardlib` transforms; this command runs the thin writer
13
- `<plugin-root>/hooks/taskwrite.py`.
13
+ `taskwrite.py` from the selected installed package.
14
+
15
+ Before an authorized board mutation, read the installed helper card:
16
+
17
+
18
+ `../../includes/helper-invocation.md` relative to this loaded skill.
19
+ Set its loaded-resource input
20
+ to the absolute path of this **loaded** command or skill, and select the literal
21
+ relative helper `hooks/taskwrite.py`. Resolve and check that helper exactly once
22
+ using the card, then run its interpreter-selection block for the current shell.
23
+ Run from the intended project worktree so the writer targets
24
+ that project's board. Do not switch to the plugin directory, use a root token
25
+ from a hook environment in an ordinary tool call, or search source/cache copies.
14
26
 
15
27
  ## Verbs
16
28
 
17
29
  Always put `--` before user text (a desc or title) so a value beginning with `-` is not
18
- parsed as a flag. Resolve the interpreter once by presence — `PY=python3; { command -v python3 >/dev/null 2>&1 && python3 --version >/dev/null 2>&1; } || PY=python`
19
- — never `python3 … || python …`, which reruns the helper on any nonzero exit and reports the
20
- second run's code instead of the first's (#577) — then invoke `"$PY"` below.
30
+ parsed as a flag. Use the validated Python 3 interpreter selected by the card;
31
+ never retry a refused helper under another interpreter. Keep every option before `--` and
32
+ pass user text as one literal argument.
21
33
 
22
34
  - **add** — append a queued task. ID-less by default; pass `--id <group>.<type>` to mint
23
35
  a dotted ID now, `--from <origin>` for a harvest back-ref, `--boundaries a,b` for the
24
36
  security/trust boundaries it touches. The description must be nonblank and
25
37
  single-line; origin and boundary values must also stay on one line.
26
- - `"$PY" "<plugin-root>/hooks/taskwrite.py" add [--id group.type] [--from origin] [--boundaries a,b] -- "<desc>"`
38
+ - Invoke the resolved helper with `add [--id group.type] [--from origin] [--boundaries a,b] -- <desc>`.
27
39
  - **start** — flip a task to in-progress and **stamp the started date** (so it can never
28
40
  be a dateless `[~]`). On an ID-less item, pass `--as <group>.<type>` to mint its dotted
29
41
  ID at pick-up. `--date YYYY-MM-DD` overrides today.
30
- - `"$PY" "<plugin-root>/hooks/taskwrite.py" start [--as group.type] [--date YYYY-MM-DD] -- "<id|title>"`
42
+ - Invoke the resolved helper with `start [--as group.type] [--date YYYY-MM-DD] -- <id|title>`.
31
43
  - **done** — flip an in-progress task to done and stamp the done date (`--date`
32
44
  overrides today). A queued task must be `start`ed first.
33
- - `"$PY" "<plugin-root>/hooks/taskwrite.py" done [--date YYYY-MM-DD] -- "<id|title>"`
45
+ - Invoke the resolved helper with `done [--date YYYY-MM-DD] -- <id|title>`.
46
+
47
+ The following are literal minimal `add` invocations after the installed helper
48
+ and interpreter have been resolved. Bind the named text variable to the exact
49
+ caller-supplied description; do not paste that text into the command syntax.
50
+
51
+ ### PowerShell add invocation
52
+ ```powershell
53
+ & $caPython -B $caHelper add -- $caDescription
54
+ if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
55
+ ```
56
+
57
+ ### POSIX add invocation
58
+ ```sh
59
+ "$ca_python" -B "$ca_helper" add -- "$ca_description"
60
+ ```
61
+
62
+ When `add` needs fields, bind each value separately and keep all options before
63
+ `--`. Use the `--from=<value>` form if the origin begins with a hyphen. These
64
+ examples preserve quotes, metacharacters, and non-ASCII description text as
65
+ one argument; neither shell evaluates the variable's contents as a command.
66
+
67
+ ### PowerShell add with options
68
+ ```powershell
69
+ $caAddArgs = @('add', '--id', $caId, "--from=$caOrigin", '--boundaries', $caBoundaries, '--', $caDescription)
70
+ & $caPython -B $caHelper @caAddArgs
71
+ if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
72
+ ```
73
+
74
+ ### POSIX add with options
75
+ ```sh
76
+ "$ca_python" -B "$ca_helper" add --id "$ca_id" "--from=$ca_origin" --boundaries "$ca_boundaries" -- "$ca_description"
77
+ ```
78
+
79
+ For `start` and `done`, replace only the verb and its literal option array,
80
+ keeping the same resolved helper and `--` before the one title or ID argument.
34
81
 
35
82
  A missing target, an already-matching state, an out-of-order transition, a malformed
36
83
  add field or `--date`, or an invalid `GROUP.TYPE` namespace is reported and writes
@@ -49,7 +96,7 @@ an ID (`/ca-task start --as <group>.<type> -- "<title>"`) to disambiguate.
49
96
  - Archiving long-settled done items → `/ca-standup` owns the sweep (D-2,
50
97
  resolved 2026-07-31). It proposes dated done items strictly more than 14 calendar
51
98
  days old and requires a separate yes for each item before invoking
52
- `<plugin-root>/hooks/taskwrite.py` with `archive <id>`. This is the helper's
99
+ the same installed `taskwrite.py` with `archive <id>`. This is the helper's
53
100
  archive verb, not a new public `/ca-task archive` mode. Undated done items are never
54
101
  proposed automatically; standup's explicit-request and `--allow-undated` rules
55
102
  apply. Declined items stay on the board.