@erclx/aitk 3.5.0 → 3.7.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 (46) hide show
  1. package/claude/.claude-plugin/plugin.json +1 -1
  2. package/claude/skills/claude-autoship/SKILL.md +5 -5
  3. package/claude/skills/claude-docs/SKILL.md +15 -10
  4. package/claude/skills/claude-memory-review/SKILL.md +7 -7
  5. package/claude/skills/claude-memory-review/references/receipt-format.md +1 -1
  6. package/claude/skills/claude-orchestrate/SKILL.md +2 -2
  7. package/claude/skills/claude-pr-review/SKILL.md +25 -7
  8. package/claude/skills/claude-review/SKILL.md +5 -3
  9. package/claude/skills/claude-screencast/SKILL.md +9 -4
  10. package/claude/skills/claude-tasks/SKILL.md +2 -2
  11. package/claude/skills/decision-escalate/REQUIREMENT.md +3 -3
  12. package/claude/skills/decision-escalate/SKILL.md +4 -6
  13. package/claude/skills/git-pr/references/pr.md +3 -0
  14. package/claude/skills/git-ship/SKILL.md +1 -1
  15. package/claude/skills/git-split/references/pr.md +3 -0
  16. package/claude/skills/toolkit-feedback/SKILL.md +2 -2
  17. package/docs/agents/capture.md +3 -1
  18. package/docs/agents/commands.md +4 -1
  19. package/docs/agents/demo.md +82 -0
  20. package/docs/agents/index.md +1 -0
  21. package/docs/agents/records.md +2 -2
  22. package/docs/agents/tasks.md +1 -1
  23. package/docs/ai-workflow.md +7 -5
  24. package/docs/operating-model.md +13 -4
  25. package/governance/rules/claude/558-plan.md +1 -2
  26. package/governance/rules/lib/300-testing-ts.md +1 -0
  27. package/package.json +3 -2
  28. package/src/cli.ts +4 -1
  29. package/src/commands/demo.ts +373 -0
  30. package/src/commands/feedback.ts +10 -3
  31. package/src/commands/tasks.ts +1 -1
  32. package/src/demo/beats.ts +135 -0
  33. package/src/demo/compile.ts +295 -0
  34. package/src/demo/cursors.ts +55 -0
  35. package/src/demo/drive.ts +256 -0
  36. package/src/demo/pointer.ts +178 -0
  37. package/src/demo/theme.ts +112 -0
  38. package/src/records/backup.ts +34 -8
  39. package/src/tasks/archive.ts +11 -4
  40. package/standards/bundled/pr.md +3 -0
  41. package/standards/plan.md +1 -1
  42. package/standards/tasks.md +4 -4
  43. package/tooling/claude/manifest.toml +1 -1
  44. package/tooling/claude/reference.md +6 -5
  45. package/tooling/claude/seeds/.claude/hooks/tasks-index.sh +4 -1
  46. package/tooling/claude/seeds/CLAUDE.md +4 -1
@@ -215,9 +215,9 @@ An intake folder answers that direction at folder scope rather than item scope,
215
215
 
216
216
  Phase-label format and where labels may appear are governed by `standards/versioning.md`.
217
217
 
218
- `Plan:` points at `../plans/feature-<slug>.md` while the task is open. Once the task ships and the plan is archived, it points at `../plans-archive/feature-<slug>.md`. Retarget both halves of the link rather than dropping it, so a completed task still leads to the reasoning behind it.
218
+ `Plan:` points at `../plans/feature-<slug>.md` while the task is open. Once the task ships and the plan is archived, it points at `../plans/archive/feature-<slug>.md`, and at `../../plans/archive/feature-<slug>.md` once the task itself is archived a folder deeper. Retarget both halves of the link rather than dropping it, so a completed task still leads to the reasoning behind it.
219
219
 
220
- A project that archived plans before the folder moved out of `.claude/.tmp/` holds closed tasks pointing at `../.tmp/plans-archive/`, and both forms resolve against the files each names, so leave those pointers where they are. Nothing migrates them, and a task retargeted without its plan moving leads nowhere.
220
+ A project that archived plans before the folder nested under `.claude/plans/` holds closed tasks pointing at `../plans-archive/`, or at `../.tmp/plans-archive/` from before the durable records left the scratch tree. Each form resolves against the files it names, so leave those pointers where they are. Nothing migrates them, and a task retargeted without its plan moving leads nowhere.
221
221
 
222
222
  One plan per task. A plan cited by two tasks is a misfile rather than a shape to design for, which is why the sweep counts citations before archiving: the count is a guard against the misfile stranding a pointer, not support for the shape.
223
223
 
@@ -247,11 +247,11 @@ The line is what lets a merge close its own task. Every merge on `main` is a squ
247
247
 
248
248
  ## Archiving
249
249
 
250
- Never delete a task file. A shipped task moves to `.claude/task-archive/` under its own name, and the live index regenerates without it. `aitk tasks archive` owns the move, the ordering-row removal, and the index regen as one unit.
250
+ Never delete a task file. A shipped task moves to `.claude/tasks/archive/` under its own name, and the live index regenerates without it. `aitk tasks archive` owns the move, the ordering-row removal, and the index regen as one unit.
251
251
 
252
252
  Two callers reach that command. The `claude-tasks` skill runs it inside a session, and the `post-merge` hook runs it unattended after a pull that merged the work. Both go through the command rather than moving the file themselves, so the two paths cannot drift into archiving differently. Every gate the command applies refuses with a non-zero exit rather than reporting, because a caller with nobody watching cannot act on a warning.
253
253
 
254
- One destination rather than a per-project choice is what lets the move happen without asking. It mirrors the plans archive at `.claude/plans-archive/` and stays gitignored, so an archived task does not start appearing in diffs. The cost is that the folder is unbacked, which is the same cost the plans archive already carries.
254
+ One destination rather than a per-project choice is what lets the move happen without asking. It mirrors the plans archive at `.claude/plans/archive/`, sitting inside the folder it archives the same way, and it inherits the board's own ignore entry rather than needing one of its own. The cost is that an archived task does not appear in diffs, which is the cost the live board already carries.
255
255
 
256
256
  The archive clears a row from `priority.md` and reads no other surface, which holds because a task reaches a merge by being planned and handed out, and both steps move it onto the board first. A task archived straight off the backlog therefore leaves its line standing, and the validator reports that line as naming a file that is gone rather than the board losing it silently.
257
257
 
@@ -8,4 +8,4 @@ runtime = ""
8
8
  scaffold = ""
9
9
 
10
10
  [gitignore]
11
- "# Claude" = [".claude/.records.git/", ".claude/.tmp/", ".claude/groundwork/", ".claude/intake/", ".claude/memory/", ".claude/plans/", ".claude/plans-archive/", ".claude/review/", ".claude/review-archive/", ".claude/task-archive/", ".claude/worktrees/", ".claude/tasks/", ".claude/teach/"]
11
+ "# Claude" = [".claude/.records.git/", ".claude/.tmp/", ".claude/groundwork/", ".claude/intake/", ".claude/memory/", ".claude/plans/", ".claude/review/", ".claude/worktrees/", ".claude/tasks/", ".claude/teach/"]
@@ -9,7 +9,7 @@ The claude stack installs the `.claude/` workflow directory into a project. Stat
9
9
  ```plaintext
10
10
  .claude/
11
11
  ├── CLAUDE.md ← seeded. Project context and rules, auto-loaded by Claude Code each session
12
- ├── tasks/ ← seeded then gitignored. One file per task plus a generated index.md, local scratch only
12
+ ├── tasks/ ← seeded then gitignored. One file per task plus a generated index.md, local scratch only. `archive/` holds the tasks that shipped.
13
13
  ├── REQUIREMENTS.md ← seeded. Project goals, non-goals, MVP scope
14
14
  ├── ARCHITECTURE.md ← seeded. Technical design decisions and open questions
15
15
  ├── DESIGN.md ← seeded. Visual intent and the decisions behind it
@@ -17,9 +17,8 @@ The claude stack installs the `.claude/` workflow directory into a project. Stat
17
17
  ├── diagrams/ ← seeded. Per-kind Mermaid views. `index.md` is the discovery anchor. `<kind>.md` files hold one diagram each, grouped by the `category` frontmatter field.
18
18
  ├── GOV.md ← retired. Removed by `aitk gov sync` if present from a prior install
19
19
  ├── settings.json ← seeded. Project-level Claude Code config (PreToolUse and PostToolUse hooks). User-level config installed separately via `aitk claude setup`.
20
- ├── plans/ ← execution detail for multi-step tasks, gitignored. `feature-*.md` entries swept by claude-docs.
21
- ├── review/ ← scratch for claude-review and claude-ui-test output, gitignored
22
- ├── review-archive/ ← memory-review receipts a triage took out of review/, gitignored
20
+ ├── plans/ ← execution detail for multi-step tasks, gitignored. `feature-*.md` entries swept by claude-docs into `archive/`.
21
+ ├── review/ ← gitignored, one subfolder per producer. `branch/` for claude-review, `feedback/` for aitk feedback, `memory/` for claude-memory-review with its own `archive/`, `design/` for aitk design render.
23
22
  ├── .tmp/ ← ephemeral scratch space, gitignored
24
23
  └── memory/ ← session facts no context entry owns, gitignored. `index.md` regenerated by a hook.
25
24
  ```
@@ -50,7 +49,9 @@ A project installed before the diagram surface became a folder still holds `.cla
50
49
 
51
50
  ## Gitignore
52
51
 
53
- - `# Claude`: `.claude/.records.git/`, `.claude/.tmp/`, `.claude/groundwork/`, `.claude/intake/`, `.claude/memory/`, `.claude/plans/`, `.claude/plans-archive/`, `.claude/review/`, `.claude/review-archive/`, `.claude/task-archive/`, `.claude/worktrees/`, `.claude/tasks/`, `.claude/teach/`
52
+ - `# Claude`: `.claude/.records.git/`, `.claude/.tmp/`, `.claude/groundwork/`, `.claude/intake/`, `.claude/memory/`, `.claude/plans/`, `.claude/review/`, `.claude/worktrees/`, `.claude/tasks/`, `.claude/teach/`
53
+
54
+ Each entry is a top-level record folder, and an archive sits inside the folder it archives, so one line covers a record and everything it retires.
54
55
 
55
56
  ## CLI
56
57
 
@@ -30,8 +30,11 @@ case "$file_path" in
30
30
  *) exit 0 ;;
31
31
  esac
32
32
 
33
+ # The board index covers the live folder alone. A shell pattern's wildcard
34
+ # crosses a separator, so the guard above matches an archived task as well and
35
+ # a regen fired on one would rebuild the index the archive was taken out of.
33
36
  case "$file_path" in
34
- */.claude/tasks/index.md) exit 0 ;;
37
+ */.claude/tasks/index.md | */.claude/tasks/archive/*) exit 0 ;;
35
38
  esac
36
39
 
37
40
  # Report a missing CLI rather than exiting quietly. The path guard above already
@@ -17,6 +17,9 @@
17
17
 
18
18
  - Flag concerns or alternatives when a proposed change has tradeoffs worth discussing
19
19
  - When facing a judgment call with 2-3 reasonable options mid-flow, pick one and state the tradeoff in one sentence. Enumerate options only when the user's preference is the deciding factor.
20
+ - Put a call the user's preference decides through the structured question surface, such as `AskUserQuestion` in Claude Code, and fall back to a numbered list in one message where none exists. Rank the recommendation first and mark it, order the rest behind it, and give each option its cost, since an option with no stated cost is picked blind.
21
+ - Author the real choices only. A structured surface appends its own trailing escapes for a free-text answer and for reopening the question as conversation, so never write either as an option. On the numbered-list fallback, say that answering outside the list is fine.
22
+ - Answer from the artifact when one already put the question in writing with a suggestion, rather than re-asking it. A blank `- Answer:` slot in a plan accepts the `- Suggested:` line above it, per the plan standard, which your toolkit resolves by name.
20
23
  - Match edit scope to the request. Ship minimal v1 and queue extensions as follow-ups.
21
24
  - On simplification requests, edit only what the user named
22
25
  - Do not add features the user did not ask for
@@ -71,7 +74,7 @@
71
74
  - `.claude/tasks/` is gitignored local session scratch, one file per task. Edit freely. No staging or revert before commits.
72
75
  - Only create a task for work that spans multiple sessions or has real dependencies. Handle small edits immediately without a task entry.
73
76
  - Do not add tasks retroactively for work already completed. Completed work is visible in git.
74
- - When a task needs execution detail beyond its own file, create a plan in `.claude/plans/` and link to it from the task's intro paragraph. When that task ships, move its plan file to `.claude/plans-archive/`. Never delete it.
77
+ - When a task needs execution detail beyond its own file, create a plan in `.claude/plans/` and link to it from the task's intro paragraph. When that task ships, move its plan file to `.claude/plans/archive/`. Never delete it.
75
78
  - Write the plan in the same session as the task file. The session that executes the plan later inherits reasoning context it would otherwise have to re-derive.
76
79
 
77
80
  ## Memory