incitaciones 0.2.0 → 0.3.1

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 +57 -0
  2. package/content/distilled/close/SKILL.md +68 -0
  3. package/content/distilled/create-issues/SKILL.md +10 -0
  4. package/content/distilled/implement-documentation/SKILL.md +29 -0
  5. package/content/distilled/implement-documentation/references/anti-patterns.md +35 -0
  6. package/content/distilled/implement-documentation/references/diataxis-implementation.md +31 -0
  7. package/content/distilled/implement-documentation/references/templates.md +115 -0
  8. package/content/distilled/implement-documentation/references/tooling-comparison.md +46 -0
  9. package/content/distilled/implement-documentation/references/versioning.md +31 -0
  10. package/content/distilled/issue-review/SKILL.md +5 -4
  11. package/content/distilled/issue-review/references/pass-0-preflight.md +37 -0
  12. package/content/distilled/next/SKILL.md +54 -0
  13. package/content/distilled/park/SKILL.md +98 -0
  14. package/content/distilled/renew/SKILL.md +164 -0
  15. package/content/distilled/research-documentation/SKILL.md +29 -0
  16. package/content/distilled/research-documentation/references/checklist.md +58 -0
  17. package/content/distilled/research-documentation/references/llm-readiness.md +43 -0
  18. package/content/distilled/research-documentation/references/metrics.md +42 -0
  19. package/content/distilled/research-documentation/references/report-template.md +42 -0
  20. package/content/distilled/review-documentation/SKILL.md +49 -0
  21. package/content/distilled/review-documentation/references/ai-readiness-criteria.md +38 -0
  22. package/content/distilled/whisper/SKILL.md +83 -0
  23. package/content/distilled/whisper/references/check.md +33 -0
  24. package/content/distilled/whisper/references/decommission.md +53 -0
  25. package/content/distilled/whisper/references/init.md +103 -0
  26. package/content/distilled/whisper/references/link.md +70 -0
  27. package/content/distilled/whisper/references/status.md +49 -0
  28. package/content/manifest.json +458 -11
  29. package/package.json +2 -1
  30. package/pi-package/prompts/close.md +10 -0
  31. package/pi-package/prompts/next.md +10 -0
  32. package/pi-package/prompts/park.md +10 -0
  33. package/pi-package/prompts/renew.md +10 -0
  34. package/pi-package/prompts/whisper.md +10 -0
  35. package/pi-package/skills/close/SKILL.md +74 -0
  36. package/pi-package/skills/create-issues/SKILL.md +10 -0
  37. package/pi-package/skills/implement-documentation/SKILL.md +18 -57
  38. package/pi-package/skills/implement-documentation/references/anti-patterns.md +35 -0
  39. package/pi-package/skills/implement-documentation/references/diataxis-implementation.md +31 -0
  40. package/pi-package/skills/implement-documentation/references/templates.md +115 -0
  41. package/pi-package/skills/implement-documentation/references/tooling-comparison.md +46 -0
  42. package/pi-package/skills/implement-documentation/references/versioning.md +31 -0
  43. package/pi-package/skills/issue-review/SKILL.md +5 -4
  44. package/pi-package/skills/issue-review/references/pass-0-preflight.md +37 -0
  45. package/pi-package/skills/next/SKILL.md +60 -0
  46. package/pi-package/skills/park/SKILL.md +104 -0
  47. package/pi-package/skills/renew/SKILL.md +170 -0
  48. package/pi-package/skills/research-documentation/SKILL.md +19 -69
  49. package/pi-package/skills/research-documentation/references/checklist.md +58 -0
  50. package/pi-package/skills/research-documentation/references/llm-readiness.md +43 -0
  51. package/pi-package/skills/research-documentation/references/metrics.md +42 -0
  52. package/pi-package/skills/research-documentation/references/report-template.md +42 -0
  53. package/pi-package/skills/review-documentation/SKILL.md +45 -40
  54. package/pi-package/skills/review-documentation/references/ai-readiness-criteria.md +38 -0
  55. package/pi-package/skills/whisper/SKILL.md +89 -0
  56. package/pi-package/skills/whisper/references/check.md +33 -0
  57. package/pi-package/skills/whisper/references/decommission.md +53 -0
  58. package/pi-package/skills/whisper/references/init.md +103 -0
  59. package/pi-package/skills/whisper/references/link.md +70 -0
  60. package/pi-package/skills/whisper/references/status.md +49 -0
  61. package/scripts/generate-pi-resources.mjs +122 -0
  62. package/content/distilled/implement-documentation.md +0 -68
  63. package/content/distilled/research-documentation.md +0 -79
  64. package/content/distilled/review-documentation.md +0 -44
@@ -0,0 +1,33 @@
1
+ # Check
2
+
3
+ Validate the workspace before starting work. Detects stale branch slots and worktree reuse. Called automatically by `renew` when `~/.whisper/` exists.
4
+
5
+ ## Steps
6
+
7
+ 1. Get repo URL and branch slug:
8
+ ```bash
9
+ repo_url=$(git remote get-url origin 2>/dev/null | sed 's|https://||;s|git@||;s|\.git$||')
10
+ branch=$(git rev-parse --abbrev-ref HEAD)
11
+ branch_slug=$(echo "$branch" | sed 's|/|--|g')
12
+ context_path=~/.whisper/repos/"${repo_url}"/branches/"${branch_slug}"/context.md
13
+ ```
14
+
15
+ 2. **If `~/.whisper/` doesn't exist:** offer full init:
16
+ ```
17
+ ⚠ ~/.whisper/ not found. Run `/w init` to create the workspace.
18
+ ```
19
+
20
+ 3. **If `context.md` exists:** output one confirmation line and return.
21
+ ```
22
+ ✓ Workspace active: ~/.whisper/repos/<repo>/branches/<slug>/
23
+ ```
24
+
25
+ 4. **If the branch directory doesn't exist:**
26
+ ```
27
+ ⚠ No workspace slot for branch: <branch>
28
+ ~/.whisper/repos/<repo>/branches/<slug>/ does not exist yet.
29
+
30
+ Activate new slot? [Y/n]
31
+ ```
32
+ - Y → run **init** for the current branch.
33
+ - N → print "Staying without a slot. Run `/w init` when ready." and stop.
@@ -0,0 +1,53 @@
1
+ # Decommission
2
+
3
+ Safely wind down a worktree or branch: defer open work under the branch epic, record a final note, then print the removal command.
4
+
5
+ ## Steps
6
+
7
+ 1. Run **check** first. Confirm slot exists before decommissioning.
8
+
9
+ 2. Get repo URL and branch slug:
10
+ ```bash
11
+ repo_url=$(git remote get-url origin 2>/dev/null | sed 's|https://||;s|git@||;s|\.git$||')
12
+ branch=$(git rev-parse --abbrev-ref HEAD)
13
+ branch_slug=$(echo "$branch" | sed 's|/|--|g')
14
+ branch_dir=~/.whisper/repos/"${repo_url}"/branches/"${branch_slug}"
15
+ context_path="$branch_dir/context.md"
16
+ ```
17
+
18
+ 3. Read `beads-epic:` from `context.md`.
19
+
20
+ 4. If beads is available, get all open work under that epic:
21
+ ```bash
22
+ bd children <epic-id> --json 2>/dev/null
23
+ ```
24
+
25
+ 5. If any open children found, defer them:
26
+ ```bash
27
+ bd defer <id>
28
+ ```
29
+
30
+ 6. Defer the epic itself:
31
+ ```bash
32
+ bd defer <epic-id>
33
+ ```
34
+
35
+ 7. Record the decommission as a note on the epic:
36
+ ```bash
37
+ bd note <epic-id> "Decommissioned: branch <branch> on <date>. State: <summary>. Resume via: /w init on branch <branch> — bd search '<branch>' will find this epic."
38
+ ```
39
+
40
+ 8. Print the removal command — do NOT run it:
41
+ ```
42
+ Ready to remove worktree. Run:
43
+ git worktree remove <path>
44
+
45
+ Deferred epic <epic-id> and <n> children. To find them later:
46
+ bd list --status deferred --label branch:<branch>
47
+ ```
48
+
49
+ ## Rules
50
+
51
+ - Never run `git worktree remove` automatically — always print the command.
52
+ - Never close beads issues during decommission — only defer. Closing is intentional.
53
+ - Branch slots in `~/.whisper/` are not automatically removed when a branch is merged. The slot serves as an archive; the epic (found via `bd search`) can be reused if the same branch name comes back.
@@ -0,0 +1,103 @@
1
+ # Init
2
+
3
+ Create `~/.whisper/` and the current workspace slot.
4
+
5
+ ## Steps
6
+
7
+ 1. Get context:
8
+ ```bash
9
+ pwd
10
+ git rev-parse --abbrev-ref HEAD
11
+ basename $(git rev-parse --show-toplevel 2>/dev/null) # repo name
12
+ git rev-parse --git-common-dir 2>/dev/null # confirms worktree vs main
13
+ date +%Y-%m-%d
14
+ ```
15
+
16
+ 2. Create `~/.whisper/` if it doesn't exist:
17
+ ```bash
18
+ mkdir -p ~/.whisper/repos
19
+ ```
20
+
21
+ 3. Compute the repo path and branch slug:
22
+ ```bash
23
+ repo_url=$(git remote get-url origin 2>/dev/null | sed 's|https://||;s|git@||;s|\.git$||')
24
+ branch=$(git rev-parse --abbrev-ref HEAD)
25
+ branch_slug=$(echo "$branch" | sed 's|/|--|g')
26
+ ```
27
+
28
+ 4. Create the repo & branch directory:
29
+ ```bash
30
+ mkdir -p ~/.whisper/repos/"${repo_url}"/branches/"${branch_slug}"
31
+ wk_dir=$(basename "$(git rev-parse --git-common-dir 2>/dev/null || echo '.git')" | sed 's|\.git$||')
32
+ [ -n "$wk_dir" ] && mkdir -p ~/.whisper/repos/"${repo_url}"/worktrees/"${wk_dir}"
33
+ ```
34
+
35
+ 5. Create `~/.whisper/rules.md` if it doesn't exist:
36
+ ```markdown
37
+ # Global Agent Rules
38
+
39
+ > Standing instructions for the agent, independent of any repo or branch.
40
+ > Append here for rules that apply everywhere.
41
+ ```
42
+
43
+ 6. Create the repo `env.md` if it doesn't exist:
44
+ ```markdown
45
+ # Environment — <repo-name>
46
+
47
+ > Repo-wide setup knowledge. True regardless of which branch or worktree.
48
+ > Deploy commands, gateway limits, auth quirks that apply everywhere.
49
+ > Worktree-specific setup (ports, venvs, local creds) goes in worktrees/<name>/env.md
50
+ ```
51
+
52
+ 7. Create the worktree `env.md` if it doesn't exist:
53
+ ```markdown
54
+ # Worktree — <worktree-name>
55
+
56
+ > Worktree-specific setup. Credentials, ports, venv/docker specifics for THIS checkout only.
57
+ ```
58
+
59
+ 8. Create `context.md`:
60
+ ```markdown
61
+ # Workspace Context — <full-branch-name>
62
+
63
+ repo: <repo-url>
64
+ branch: <full-branch-name>
65
+ worktree: <worktree-dir-name>
66
+ path: <absolute-path>
67
+ created: <YYYY-MM-DD>
68
+ beads-epic:
69
+ ```
70
+
71
+ 9. Create `plan.md` stub:
72
+ ```markdown
73
+ # Plan — <full-branch-name>
74
+
75
+ > No plan yet. Write a plan here, then run `/w link` to create beads issues.
76
+ ```
77
+
78
+ 10. Create `notes.md` stub:
79
+ ```markdown
80
+ # Notes — <full-branch-name>
81
+ ```
82
+
83
+ 11. If beads is available, find or create the branch epic:
84
+ ```bash
85
+ bd search "<branch>" --status all 2>/dev/null
86
+ ```
87
+ - If an epic already matches, reuse its ID and update `beads-epic:` in `context.md`.
88
+ - If the work is substantial enough, create one: `bd create "<branch>" --type epic --label "branch:<branch>" --silent`
89
+ - For a single-ticket fix, skip the epic and let the ticket ID stand in for `beads-epic:`.
90
+
91
+ 12. Confirm:
92
+ ```
93
+ ✓ ~/.whisper/ initialized
94
+
95
+ Repo: <repo-url>
96
+ Branch: <branch> → branches/<slug>/
97
+ Epic: <id | none — will be created by /w link>
98
+ rules.md: [created | exists]
99
+ env.md: [created | exists]
100
+ worktree/env.md: [created | exists]
101
+
102
+ Run `/w link` after writing a plan.
103
+ ```
@@ -0,0 +1,70 @@
1
+ # Link
2
+
3
+ Attach a plan file to the workspace and create beads issues for each phase, as children of the branch epic. Run this after writing or generating a plan.
4
+
5
+ This mode is self-contained — it does NOT require `create-plan` to have been used. The plan can come from anywhere: manually written, generated by any tool, or copied in.
6
+
7
+ ## Steps
8
+
9
+ 1. Run **check** first to confirm the slot exists.
10
+
11
+ 2. Get repo URL and branch slug:
12
+ ```bash
13
+ repo_url=$(git remote get-url origin 2>/dev/null | sed 's|https://||;s|git@||;s|\.git$||')
14
+ branch=$(git rev-parse --abbrev-ref HEAD)
15
+ branch_slug=$(echo "$branch" | sed 's|/|--|g')
16
+ branch_dir=~/.whisper/repos/"${repo_url}"/branches/"${branch_slug}"
17
+ context_path="$branch_dir/context.md"
18
+ plan_path="$branch_dir/plan.md"
19
+ ```
20
+
21
+ 3. Determine the plan file path:
22
+ - If the user provided a path (`/w link path/to/plan.md`): use that.
23
+ - Otherwise: use `plan.md`.
24
+ - If neither exists: tell the user to write a plan first and stop.
25
+
26
+ 4. If the source path is not `plan.md`, copy it in:
27
+ ```bash
28
+ cp <source-path> "$branch_dir/plan.md"
29
+ ```
30
+
31
+ 5. Read `plan.md` and extract phase headings.
32
+
33
+ 6. Ensure the branch epic exists:
34
+ - If `context.md`'s `beads-epic:` is already set, use it.
35
+ - If blank and the plan has more than one phase: create it.
36
+ - If blank and the plan is a single task: skip the epic.
37
+
38
+ 7. For each phase/task, create a beads issue as a child of the branch epic:
39
+ ```bash
40
+ bd create "<phase-title>" --type task --parent <epic-id>
41
+ ```
42
+
43
+ 8. Only if phases are genuinely sequential, chain dependencies:
44
+ ```bash
45
+ bd dep <id-N> --blocks <id-N+1>
46
+ ```
47
+
48
+ 9. Update `context.md` — set `beads-epic:` to the epic (or single-ticket) ID.
49
+
50
+ 10. **After each successful creation**, extract the `**Files / Systems:**` bullet list from the issue description and store it as structured metadata:
51
+ ```bash
52
+ bd update <id> --metadata '{"files": ["path/to/file1.py", "path/to/file2.py"]}'
53
+ ```
54
+ This enables automated file-conflict detection by concurrent agents. If the Files/Systems section is empty or contains only subsystem names without concrete paths, **stop and ask for specific file paths** — a ticket without concrete paths cannot participate in conflict detection.
55
+
56
+ 11. Confirm:
57
+ ```
58
+ Linked plan to workspace: branches/<slug>/
59
+ Epic: <epic-id> — <branch>
60
+ Created <n> child issues:
61
+ <id> Phase 1: ...
62
+ ```
63
+
64
+ ### Relinking
65
+
66
+ If `context.md` already has a `beads-epic:` set, ask before creating new children:
67
+ ```
68
+ context.md already links epic <id> with <n> children.
69
+ Add new phases as more children of the same epic? [Y/n]
70
+ ```
@@ -0,0 +1,49 @@
1
+ # Status
2
+
3
+ Show the state of the current workspace.
4
+
5
+ ## Steps
6
+
7
+ 1. Get repo URL and branch slug:
8
+ ```bash
9
+ repo_url=$(git remote get-url origin 2>/dev/null | sed 's|https://||;s|git@||;s|\.git$||')
10
+ branch=$(git rev-parse --abbrev-ref HEAD)
11
+ branch_slug=$(echo "$branch" | sed 's|/|--|g')
12
+ context_path=~/.whisper/repos/"${repo_url}"/branches/"${branch_slug}"/context.md
13
+ ```
14
+
15
+ 2. If `context.md` doesn't exist, delegate to **check** mode and stop.
16
+
17
+ 3. Read `context.md` and extract: repo, branch, path, beads-epic.
18
+
19
+ 4. Show `env.md` info:
20
+ ```bash
21
+ date -r ~/.whisper/repos/"${repo_url}"/env.md "+%Y-%m-%d %H:%M" 2>/dev/null
22
+ ```
23
+
24
+ 5. Show the branch epic's tree if beads is available:
25
+ ```bash
26
+ bd children <beads-epic> --pretty 2>/dev/null
27
+ ```
28
+
29
+ 6. Show plan status: is `plan.md` a stub or does it have real content?
30
+
31
+ 7. Show all active branch slots for this repo (most recently modified first):
32
+ ```bash
33
+ ls -t ~/.whisper/repos/"${repo_url}"/branches/ 2>/dev/null
34
+ ```
35
+
36
+ ### Output format
37
+
38
+ ```
39
+ ── Whisper: <repo> ──
40
+ Branch: <branch> (branches/<slug>/)
41
+ Plan: [exists | stub]
42
+ Epic: <id> — <n> issues (<open> open) [or: none linked yet]
43
+
44
+ Active branch slots:
45
+ <ls output>
46
+
47
+ Epic tree:
48
+ <bd children --pretty output, or "none">
49
+ ```