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.
- package/README.md +57 -0
- package/content/distilled/close/SKILL.md +68 -0
- package/content/distilled/create-issues/SKILL.md +10 -0
- package/content/distilled/implement-documentation/SKILL.md +29 -0
- package/content/distilled/implement-documentation/references/anti-patterns.md +35 -0
- package/content/distilled/implement-documentation/references/diataxis-implementation.md +31 -0
- package/content/distilled/implement-documentation/references/templates.md +115 -0
- package/content/distilled/implement-documentation/references/tooling-comparison.md +46 -0
- package/content/distilled/implement-documentation/references/versioning.md +31 -0
- package/content/distilled/issue-review/SKILL.md +5 -4
- package/content/distilled/issue-review/references/pass-0-preflight.md +37 -0
- package/content/distilled/next/SKILL.md +54 -0
- package/content/distilled/park/SKILL.md +98 -0
- package/content/distilled/renew/SKILL.md +164 -0
- package/content/distilled/research-documentation/SKILL.md +29 -0
- package/content/distilled/research-documentation/references/checklist.md +58 -0
- package/content/distilled/research-documentation/references/llm-readiness.md +43 -0
- package/content/distilled/research-documentation/references/metrics.md +42 -0
- package/content/distilled/research-documentation/references/report-template.md +42 -0
- package/content/distilled/review-documentation/SKILL.md +49 -0
- package/content/distilled/review-documentation/references/ai-readiness-criteria.md +38 -0
- package/content/distilled/whisper/SKILL.md +83 -0
- package/content/distilled/whisper/references/check.md +33 -0
- package/content/distilled/whisper/references/decommission.md +53 -0
- package/content/distilled/whisper/references/init.md +103 -0
- package/content/distilled/whisper/references/link.md +70 -0
- package/content/distilled/whisper/references/status.md +49 -0
- package/content/manifest.json +458 -11
- package/package.json +2 -1
- package/pi-package/prompts/close.md +10 -0
- package/pi-package/prompts/next.md +10 -0
- package/pi-package/prompts/park.md +10 -0
- package/pi-package/prompts/renew.md +10 -0
- package/pi-package/prompts/whisper.md +10 -0
- package/pi-package/skills/close/SKILL.md +74 -0
- package/pi-package/skills/create-issues/SKILL.md +10 -0
- package/pi-package/skills/implement-documentation/SKILL.md +18 -57
- package/pi-package/skills/implement-documentation/references/anti-patterns.md +35 -0
- package/pi-package/skills/implement-documentation/references/diataxis-implementation.md +31 -0
- package/pi-package/skills/implement-documentation/references/templates.md +115 -0
- package/pi-package/skills/implement-documentation/references/tooling-comparison.md +46 -0
- package/pi-package/skills/implement-documentation/references/versioning.md +31 -0
- package/pi-package/skills/issue-review/SKILL.md +5 -4
- package/pi-package/skills/issue-review/references/pass-0-preflight.md +37 -0
- package/pi-package/skills/next/SKILL.md +60 -0
- package/pi-package/skills/park/SKILL.md +104 -0
- package/pi-package/skills/renew/SKILL.md +170 -0
- package/pi-package/skills/research-documentation/SKILL.md +19 -69
- package/pi-package/skills/research-documentation/references/checklist.md +58 -0
- package/pi-package/skills/research-documentation/references/llm-readiness.md +43 -0
- package/pi-package/skills/research-documentation/references/metrics.md +42 -0
- package/pi-package/skills/research-documentation/references/report-template.md +42 -0
- package/pi-package/skills/review-documentation/SKILL.md +45 -40
- package/pi-package/skills/review-documentation/references/ai-readiness-criteria.md +38 -0
- package/pi-package/skills/whisper/SKILL.md +89 -0
- package/pi-package/skills/whisper/references/check.md +33 -0
- package/pi-package/skills/whisper/references/decommission.md +53 -0
- package/pi-package/skills/whisper/references/init.md +103 -0
- package/pi-package/skills/whisper/references/link.md +70 -0
- package/pi-package/skills/whisper/references/status.md +49 -0
- package/scripts/generate-pi-resources.mjs +122 -0
- package/content/distilled/implement-documentation.md +0 -68
- package/content/distilled/research-documentation.md +0 -79
- package/content/distilled/review-documentation.md +0 -44
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: park
|
|
3
|
+
description: "Snapshot current work before switching context. Logs what was done and what's next without ending the day. Trigger when the user says '/park', 'park this', 'switching to', 'pause this', or 'context switch'."
|
|
4
|
+
tools: Read, Write, Edit, Bash
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Park
|
|
8
|
+
|
|
9
|
+
Snapshot the current session's work on a project/area before switching context. This is NOT end-of-day — just a context switch.
|
|
10
|
+
|
|
11
|
+
Uses `$JOURNAL_PATH` (defaults to `~/dev/status`) for the daily log journal, and `~/.whisper/` for accumulated operational knowledge. The log subdirectory defaults to `log/`; set `$JOURNAL_LOG_SUBDIR` to override (e.g. `areas/log` for the JORNAL layout).
|
|
12
|
+
|
|
13
|
+
## Steps
|
|
14
|
+
|
|
15
|
+
1. Get today's date and current time (`date +%Y-%m-%d`, `date +%H:%M`).
|
|
16
|
+
```bash
|
|
17
|
+
JOURNAL="${JOURNAL_PATH:-$HOME/dev/status}"
|
|
18
|
+
LOG_SUBDIR="${JOURNAL_LOG_SUBDIR:-log}"
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
2. Read today's log: `$JOURNAL/$LOG_SUBDIR/YYYY/YYYY-MM/YYYY-MM-DD.md`
|
|
22
|
+
If it doesn't exist, create it with the daily log template.
|
|
23
|
+
|
|
24
|
+
3. Review the conversation history to determine:
|
|
25
|
+
- What project/area was being worked on
|
|
26
|
+
- What was accomplished in this session
|
|
27
|
+
- What the logical next step is
|
|
28
|
+
- Any new tasks, decisions, or blockers discovered
|
|
29
|
+
|
|
30
|
+
4. Append a session entry to today's log under `## Log`:
|
|
31
|
+
```
|
|
32
|
+
### Session:HH:MM (<project/area context>)
|
|
33
|
+
- what was done
|
|
34
|
+
- decisions made
|
|
35
|
+
- **Next:** what to do when resuming
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
5. Update the relevant project/area file if needed:
|
|
39
|
+
- Mark completed tasks `[x]`
|
|
40
|
+
- Add new tasks discovered during the session
|
|
41
|
+
- Add/update `[~]` waiting items with context
|
|
42
|
+
- Update `## Notes` with any decisions
|
|
43
|
+
|
|
44
|
+
6. If there are uncommitted changes in the project's git worktree, note them in the log entry.
|
|
45
|
+
|
|
46
|
+
7. **Release any in-progress ticket claim if leaving mid-work.**
|
|
47
|
+
Check whether a ticket was claimed for this session:
|
|
48
|
+
```bash
|
|
49
|
+
BRANCH=$(git branch --show-current 2>/dev/null)
|
|
50
|
+
bd list --status in_progress --label branch:$BRANCH 2>/dev/null
|
|
51
|
+
```
|
|
52
|
+
For each in-progress ticket that is NOT complete:
|
|
53
|
+
- **If meaningful work was committed:** keep the claim and append a progress note:
|
|
54
|
+
```bash
|
|
55
|
+
bd note <id> "Session parked $(date +%H:%M). Done: <brief>. Safe to resume from: <last commit>."
|
|
56
|
+
```
|
|
57
|
+
- **If nothing was committed:** release the claim so another agent can pick it up:
|
|
58
|
+
```bash
|
|
59
|
+
bd update <id> --assignee "" --status open
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
8. **Record snapshot to `~/.whisper/`.** If `~/.whisper/` exists and a beads-epic is linked, append a note to the epic:
|
|
63
|
+
```bash
|
|
64
|
+
repo_url=$(git remote get-url origin 2>/dev/null | sed 's|https://||;s|git@||;s|\.git$||')
|
|
65
|
+
branch_slug=$(git rev-parse --abbrev-ref HEAD | sed 's|/|--|g')
|
|
66
|
+
context_path=~/.whisper/repos/"${repo_url}"/branches/"${branch_slug}"/context.md
|
|
67
|
+
beads_epic=$(grep '^beads-epic:' "$context_path" 2>/dev/null | sed 's/^beads-epic: *//')
|
|
68
|
+
if [ -n "$beads_epic" ]; then
|
|
69
|
+
bd note "$beads_epic" "Parked $(date +%H:%M). Done: <what was accomplished>. Next: <the logical continuation>."
|
|
70
|
+
fi
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
9. Do NOT commit/push the journal repo yet — that happens at `/close`. Just write the files.
|
|
74
|
+
|
|
75
|
+
## Output format
|
|
76
|
+
|
|
77
|
+
```
|
|
78
|
+
---
|
|
79
|
+
**Parked: <project/area name>**
|
|
80
|
+
|
|
81
|
+
**Session summary**
|
|
82
|
+
- what was accomplished
|
|
83
|
+
|
|
84
|
+
**Next step** *(for when you /renew)*
|
|
85
|
+
- the logical continuation
|
|
86
|
+
|
|
87
|
+
**Updated**
|
|
88
|
+
- files modified in status repo (log, project file, etc.)
|
|
89
|
+
|
|
90
|
+
*Ready to switch context. Use `/renew <slug>` to pick up something else.*
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Rules
|
|
94
|
+
|
|
95
|
+
- Do NOT ask questions — summarize automatically from conversation context.
|
|
96
|
+
- Keep it brief — this is a quick snapshot, not a full report.
|
|
97
|
+
- Do NOT commit or push the journal repo.
|
|
98
|
+
- Do NOT run `/clear` — the user may continue working in this session.
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: renew
|
|
3
|
+
description: "Resume work on a specific project or area. Loads focused context for continuing where you left off. When no name is given, infers the project/area from the current repo and git branch. Trigger when the user says '/renew', '/renew <name>', 'pick up <project>', 'continue <project>', or 'back to <project>'."
|
|
4
|
+
tools: Read, Write, Edit, Glob, Bash, Grep
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Renew
|
|
8
|
+
|
|
9
|
+
Load focused context for a specific project or area to continue work.
|
|
10
|
+
|
|
11
|
+
Uses `$JOURNAL_PATH` (defaults to `~/dev/status`) for the daily log journal, and `~/.whisper/` for accumulated operational knowledge. The log subdirectory defaults to `log/`; set `$JOURNAL_LOG_SUBDIR` to override (e.g. `areas/log` for the JORNAL layout).
|
|
12
|
+
|
|
13
|
+
## Steps
|
|
14
|
+
|
|
15
|
+
1. Pull the journal repo:
|
|
16
|
+
```bash
|
|
17
|
+
JOURNAL="${JOURNAL_PATH:-$HOME/dev/status}"
|
|
18
|
+
LOG_SUBDIR="${JOURNAL_LOG_SUBDIR:-log}"
|
|
19
|
+
cd "$JOURNAL" && git pull
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
2. Identify the target.
|
|
23
|
+
|
|
24
|
+
**If a `<slug>` is provided:** The user says `/renew <slug>`.
|
|
25
|
+
|
|
26
|
+
**If no slug is provided:** Infer from the current workspace context:
|
|
27
|
+
- Get the repo name: `basename $(git rev-parse --show-toplevel 2>/dev/null)`
|
|
28
|
+
- Get the branch name: `git branch --show-current 2>/dev/null`
|
|
29
|
+
- Extract a candidate slug from the branch (strip prefix like `ak/`, `feature/`, etc.)
|
|
30
|
+
- Use both the repo name and branch-derived slug as candidates
|
|
31
|
+
|
|
32
|
+
**Match candidates** against:
|
|
33
|
+
- `$JOURNAL/projects/*.md` — check filenames and grep for repo/branch references
|
|
34
|
+
- `$JOURNAL/areas/*.md` — same
|
|
35
|
+
- Try exact match, then partial/substring match
|
|
36
|
+
- If multiple matches found, list them and ask the user to pick
|
|
37
|
+
- If no match found, list available projects/areas and ask
|
|
38
|
+
|
|
39
|
+
3. Read the matched project or area file.
|
|
40
|
+
|
|
41
|
+
4. Read today's log (`$JOURNAL/$LOG_SUBDIR/YYYY/YYYY-MM/YYYY-MM-DD.md`).
|
|
42
|
+
If it doesn't exist, create it with the daily log template.
|
|
43
|
+
Scan for any earlier session entries related to this project/area today.
|
|
44
|
+
|
|
45
|
+
5. Search recent logs for context (last 3 days):
|
|
46
|
+
```bash
|
|
47
|
+
grep -rl "<slug>" "$JOURNAL"/"$LOG_SUBDIR"/YYYY/YYYY-MM/ 2>/dev/null | tail -3
|
|
48
|
+
```
|
|
49
|
+
Read any matches to understand recent session history.
|
|
50
|
+
|
|
51
|
+
6. Search inbox for related items:
|
|
52
|
+
```bash
|
|
53
|
+
grep -i "<slug>" "$JOURNAL"/inbox.md
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
7. **Check `~/.whisper/` for accumulated knowledge.**
|
|
57
|
+
If `~/.whisper/` exists, load context:
|
|
58
|
+
```bash
|
|
59
|
+
repo_url=$(git remote get-url origin 2>/dev/null | sed 's|https://||;s|git@||;s|\.git$||')
|
|
60
|
+
branch_slug=$(git rev-parse --abbrev-ref HEAD | sed 's|/|--|g')
|
|
61
|
+
whisper_dir=~/.whisper/repos/"${repo_url}"/branches/"${branch_slug}"
|
|
62
|
+
```
|
|
63
|
+
- Read `context.md` if it exists (extract beads-epic, status)
|
|
64
|
+
- Read `plan.md` if it has real content
|
|
65
|
+
- Read `notes.md` if it has real content
|
|
66
|
+
- Read `env.md` at repo level for infra facts
|
|
67
|
+
- If beads is available, fetch open issues:
|
|
68
|
+
```bash
|
|
69
|
+
bd list --label branch:<branch> 2>/dev/null
|
|
70
|
+
bd list --status in_progress --label branch:<branch> 2>/dev/null
|
|
71
|
+
```
|
|
72
|
+
Surface any `in_progress` tickets prominently. The **Suggested next step** must only reference tickets NOT currently `in_progress`.
|
|
73
|
+
|
|
74
|
+
8. If the project/area has a worktree or repo path noted in its file, gather git context:
|
|
75
|
+
- `cd <worktree-path> && git branch --show-current`
|
|
76
|
+
- `git log --oneline -5`
|
|
77
|
+
- `git status --short`
|
|
78
|
+
- `git log --oneline origin/main..HEAD`
|
|
79
|
+
|
|
80
|
+
## Output format
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
---
|
|
84
|
+
**Resuming: Project/Area Name**
|
|
85
|
+
|
|
86
|
+
**Status**: brief one-line summary of where things stand
|
|
87
|
+
|
|
88
|
+
**Last session** *(from most recent log entry)*
|
|
89
|
+
- what was done last time
|
|
90
|
+
|
|
91
|
+
**Open tasks**
|
|
92
|
+
- [ ] task list from the project/area file
|
|
93
|
+
|
|
94
|
+
**Waiting**
|
|
95
|
+
- [~] any blocked items and who/what they're waiting on
|
|
96
|
+
|
|
97
|
+
**Related inbox items** *(if any)*
|
|
98
|
+
- items that mention this project
|
|
99
|
+
|
|
100
|
+
**Whisper context** *(if ~/.whisper/ exists)*
|
|
101
|
+
- Plan: summary of current plan
|
|
102
|
+
- Notes: key findings
|
|
103
|
+
- Beads issues: <n> open, <n> in_progress
|
|
104
|
+
|
|
105
|
+
**⚠ Active in flight** *(omit if none)*
|
|
106
|
+
- ◐ `<id>` — <title> [started: <date>]
|
|
107
|
+
- *(If your intended ticket is listed here, see **Claiming work** below.)*
|
|
108
|
+
|
|
109
|
+
**Workspace**
|
|
110
|
+
- Worktree: path, branch, status
|
|
111
|
+
- Commits ahead of main, uncommitted changes, etc.
|
|
112
|
+
|
|
113
|
+
**Suggested next step**
|
|
114
|
+
- what makes sense to do next — only suggest tickets NOT currently in_progress
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Then ask: *"Ready to continue, or want to adjust the plan?"*
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Claiming work
|
|
122
|
+
|
|
123
|
+
Before writing any code, claim the ticket atomically and check for file conflicts.
|
|
124
|
+
|
|
125
|
+
### Steps
|
|
126
|
+
|
|
127
|
+
1. **Claim atomically:**
|
|
128
|
+
```bash
|
|
129
|
+
bd update <ticket-id> --claim
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
2. **Check for file-level conflicts** with other in-progress tickets:
|
|
133
|
+
```bash
|
|
134
|
+
bd list --status in_progress --label branch:<branch> --json 2>/dev/null \
|
|
135
|
+
| python3 -c "
|
|
136
|
+
import json, sys
|
|
137
|
+
issues = json.loads(sys.stdin.read() or '[]')
|
|
138
|
+
for i in issues:
|
|
139
|
+
files = (i.get('metadata') or {}).get('files', [])
|
|
140
|
+
for f in files:
|
|
141
|
+
print(i['id'] + '\t' + f)
|
|
142
|
+
"
|
|
143
|
+
```
|
|
144
|
+
Cross-reference against the claimed ticket's own `metadata.files`.
|
|
145
|
+
If overlap found, surface a warning:
|
|
146
|
+
```
|
|
147
|
+
⚠ File conflict detected:
|
|
148
|
+
services/api.py is also claimed by ticket-abc (in_progress)
|
|
149
|
+
|
|
150
|
+
Options:
|
|
151
|
+
A) Gate this ticket until the blocker closes
|
|
152
|
+
B) Coordinate merge order
|
|
153
|
+
C) Proceed — accept the conflict (reconcile at merge time)
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
3. **If backing off** (chose option A):
|
|
157
|
+
```bash
|
|
158
|
+
bd update <ticket-id> --assignee "" --status open
|
|
159
|
+
bd gate create <ticket-id> --type bead --await-id <blocking-id>
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### Metadata coverage warning
|
|
163
|
+
|
|
164
|
+
File conflict detection only works when both tickets have `metadata.files` populated (set by `create-issues` or `/w link` at ticket creation time). Tickets created before this convention was adopted have no metadata. For those tickets, **"no conflict found" means unknown, not safe**.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Research Documentation Architecture
|
|
2
|
+
|
|
3
|
+
Audit existing documentation or plan a new suite using the Unified Frameworks for Technical Information Architecture.
|
|
4
|
+
|
|
5
|
+
## Core Rules
|
|
6
|
+
|
|
7
|
+
- You are an architect, not a writer. Map structure and gaps; do not draft content.
|
|
8
|
+
|
|
9
|
+
## Procedure
|
|
10
|
+
|
|
11
|
+
1. Define the scope: identify the primary audience (novice vs. expert) and state the single-sentence "Core Assertion" (the value proposition). If existing docs have conflicting hooks, pick the most impactful or propose a synthesis.
|
|
12
|
+
2. Analyze existing content (if any): for each file determine its Diátaxis quadrant, EPPO status (standalone utility), and cognitive load. Use `references/checklist.md` for the completeness and accessibility items to check against.
|
|
13
|
+
3. Map the Snowflake outline: Core Assertion, Macro-Expansion, Component List, Topic Matrix by quadrant.
|
|
14
|
+
4. Identify gaps and friction: quadrant imbalance, structural plot-holes, and AI-readiness gaps. Use `references/llm-readiness.md` to assess `llms.txt`, MCP, RAG chunking, and dual-audience design. Use `references/metrics.md` to recommend measurement signals (TTFS, search analytics, coverage, freshness).
|
|
15
|
+
5. Produce the final research report using `references/report-template.md`.
|
|
16
|
+
|
|
17
|
+
## Rules
|
|
18
|
+
|
|
19
|
+
- Categorize every document into exactly one Diátaxis quadrant.
|
|
20
|
+
- Flag "Frankenbooks" (documents with mixed intent/quadrants).
|
|
21
|
+
- Verify EPPO compliance: does each page establish its own context?
|
|
22
|
+
- Do not start writing content; focus on architecture and gaps.
|
|
23
|
+
- Do not suggest stylistic changes; focus on structural integrity.
|
|
24
|
+
- The canonical theory lives in `content/research-documentation-frameworks.md`; the references here are operational excerpts that link back to it.
|
|
25
|
+
|
|
26
|
+
## Related Skills
|
|
27
|
+
|
|
28
|
+
- `implement-documentation` — write topics from this audit.
|
|
29
|
+
- `review-documentation` — review what you write.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Documentation Completeness Checklist
|
|
2
|
+
|
|
3
|
+
Use during the audit (Step 2) to check existing or planned coverage. Source: `content/research-finding-library-docs-best-practices.md` (Section 1, the best-practices checklist, and Section 5, accessibility).
|
|
4
|
+
|
|
5
|
+
## Completeness and accuracy
|
|
6
|
+
|
|
7
|
+
- All public APIs, endpoints, parameters, and return values are documented.
|
|
8
|
+
- All error codes and messages are documented with explanations and remediation steps.
|
|
9
|
+
- Prerequisites and system requirements are stated upfront.
|
|
10
|
+
- All code examples are tested and verified to work with the current version.
|
|
11
|
+
- No documented features are missing from the implementation, and no undocumented features exist.
|
|
12
|
+
|
|
13
|
+
## Getting started and onboarding
|
|
14
|
+
|
|
15
|
+
- A "Getting Started" or "Quick Start" guide exists and can be completed in under 15 minutes.
|
|
16
|
+
- The guide leads to a meaningful, working result (not just "Hello, World" unless that is genuinely useful).
|
|
17
|
+
- Installation instructions cover all supported platforms and package managers.
|
|
18
|
+
- Authentication and configuration are explained before any API calls are shown.
|
|
19
|
+
|
|
20
|
+
## API reference
|
|
21
|
+
|
|
22
|
+
- Each endpoint/function/method has a human-friendly description, not just a parameter list.
|
|
23
|
+
- Request and response examples are provided for every endpoint.
|
|
24
|
+
- Authentication requirements are documented per endpoint where relevant.
|
|
25
|
+
- Rate limits, pagination, and other operational constraints are documented.
|
|
26
|
+
- The reference is generated from or synchronized with a machine-readable specification (OpenAPI, TypeDoc, JSDoc, Sphinx autodoc).
|
|
27
|
+
|
|
28
|
+
## Versioning and changelog
|
|
29
|
+
|
|
30
|
+
- Documentation is versioned to match software releases.
|
|
31
|
+
- A changelog exists and is kept up to date.
|
|
32
|
+
- Breaking changes are prominently highlighted.
|
|
33
|
+
- Deprecated features are marked with migration paths provided.
|
|
34
|
+
- Old versions of documentation remain accessible.
|
|
35
|
+
|
|
36
|
+
## Code examples
|
|
37
|
+
|
|
38
|
+
- Examples exist for all major use cases.
|
|
39
|
+
- Examples are provided in all officially supported languages/frameworks.
|
|
40
|
+
- Examples are complete and runnable, not pseudocode or partial snippets.
|
|
41
|
+
- Examples follow current best practices and idioms for each language.
|
|
42
|
+
|
|
43
|
+
## Conceptual and explanatory content
|
|
44
|
+
|
|
45
|
+
- Architecture and design decisions are explained (the "why", not just the "what").
|
|
46
|
+
- Key concepts are defined before they are used.
|
|
47
|
+
- Diagrams and visuals are used where they clarify complex relationships.
|
|
48
|
+
|
|
49
|
+
## Accessibility (WCAG 2.1 AA)
|
|
50
|
+
|
|
51
|
+
- Code syntax highlighting meets minimum contrast ratios.
|
|
52
|
+
- All navigation, search, and interactive elements are operable by keyboard alone.
|
|
53
|
+
- Code blocks, tables, and diagrams have appropriate ARIA labels and alt text.
|
|
54
|
+
- The site is readable on mobile and manages focus correctly in single-page-app navigation.
|
|
55
|
+
|
|
56
|
+
## Out of scope for this checklist
|
|
57
|
+
|
|
58
|
+
Internationalization/localization and interactive documentation (live playgrounds, API explorers) are valid concerns but are tracked separately as platform/infrastructure decisions, not architectural-audit items.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# LLM & Agentic Readiness Reference
|
|
2
|
+
|
|
3
|
+
Operational excerpt for the AI-readiness gap assessment in Step 4. The canonical theory is `content/research-documentation-frameworks.md` (section "Machine Readability"); this file distills the concrete checks.
|
|
4
|
+
|
|
5
|
+
## `llms.txt` standard
|
|
6
|
+
|
|
7
|
+
An emerging convention analogous to `robots.txt`: a machine-readable index at the docs site root that tells LLMs which pages matter most, with structured summaries. Check:
|
|
8
|
+
|
|
9
|
+
- Is a `llms.txt` present at the documentation root?
|
|
10
|
+
- Does it list the most authoritative pages (quick start, API reference, key how-tos)?
|
|
11
|
+
- Are summaries concise and current with the latest version?
|
|
12
|
+
|
|
13
|
+
## RAG-friendly chunking
|
|
14
|
+
|
|
15
|
+
Documentation structured as single-topic, self-contained modules chunks cleanly for retrieval-augmented generation. Check:
|
|
16
|
+
|
|
17
|
+
- Does each page cover one well-defined topic (Diátaxis quadrant purity enables this)?
|
|
18
|
+
- Are pages small enough to be one RAG chunk, or do they need explicit section anchors?
|
|
19
|
+
- Is there redundant cross-page duplication that would pollute retrieval?
|
|
20
|
+
|
|
21
|
+
## MCP and agent manifests
|
|
22
|
+
|
|
23
|
+
For tooling/agent documentation, the description fields are documentation. Check:
|
|
24
|
+
|
|
25
|
+
- Are MCP tool manifests present with precise `name`, `description`, input/output JSON schemas?
|
|
26
|
+
- Are plugin/agent cards machine-readable with capability boundaries and error conditions?
|
|
27
|
+
- Is language precise enough for a machine (no context-dependent ambiguity a human would resolve but an agent would not)?
|
|
28
|
+
|
|
29
|
+
## Dual-audience design
|
|
30
|
+
|
|
31
|
+
Modern docs serve human readers and machine consumers. The practices that serve both: clear structure, consistent terminology, modular organization, explicit metadata. Check:
|
|
32
|
+
|
|
33
|
+
- Are headings semantic and unique (not generic "Overview" repeated across pages)?
|
|
34
|
+
- Is front matter present (title, description, version, category)?
|
|
35
|
+
- Are API references generated from or synchronized with a machine-readable spec (OpenAPI, AsyncAPI, JSDoc/TypeDoc, Sphinx autodoc)?
|
|
36
|
+
|
|
37
|
+
## Docs-as-context
|
|
38
|
+
|
|
39
|
+
Documentation is increasingly a runtime input to AI systems (system-prompt embedding, RAG retrieval, vector search). Check:
|
|
40
|
+
|
|
41
|
+
- Is clean, navigation-chrome-free text available for context-window injection?
|
|
42
|
+
- Are code examples complete and runnable (agents execute what they read)?
|
|
43
|
+
- Is terminology consistent so a model trained on the docs retrieves accurately?
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Documentation Quality Metrics
|
|
2
|
+
|
|
3
|
+
Use in Step 4 to recommend measurement signals. The single most important metric is time-to-first-success; the rest build the feedback loops that keep docs honest. Source: `content/research-finding-library-docs-best-practices.md` (Section 7, Measuring Documentation Quality).
|
|
4
|
+
|
|
5
|
+
## Key metrics
|
|
6
|
+
|
|
7
|
+
- **Time-to-first-success (TTFS).** Time from a developer's first encounter with the docs to their first successful use of the library/API. Measure via user testing, analytics (first page view to first successful API call), or surveys. This is the headline number.
|
|
8
|
+
- **Support ticket deflection.** Percentage of support questions answered by docs rather than a human. Quantifies economic value; track the ratio of tickets to page views, or add "Did this page answer your question?" widgets.
|
|
9
|
+
- **Page engagement.** Time on page, scroll depth, return visits. High bounce on getting-started may mean unmet expectations; low time on reference may mean fast finds (good) or frustration (context matters).
|
|
10
|
+
- **Search analytics.** Track queries, click-through rates, and "no results" queries. No-results queries are direct evidence of missing docs. High click-through to a page means it is well-titled and relevant.
|
|
11
|
+
- **Broken link rates.** Percentage of internal/external links returning 404. Automated link checking should run on every deployment (see `doc-link-verifier` skill).
|
|
12
|
+
- **Documentation coverage.** Percentage of public APIs/endpoints/features that have docs. Measurable automatically for API reference (OpenAPI vs. documented endpoints) and code docs (docstring coverage via `interrogate`).
|
|
13
|
+
- **Page freshness.** Age of a doc page relative to the last code change that touched the documented feature. Stale docs are a leading frustration indicator.
|
|
14
|
+
|
|
15
|
+
## User testing and feedback loops
|
|
16
|
+
|
|
17
|
+
- **Usability testing.** Watch representative users attempt tasks using only the docs. Even informal tests reveal problems invisible to authors.
|
|
18
|
+
- **Inline feedback widgets.** "Was this page helpful?" at the bottom of pages. Act on it: low-rated pages get prioritized.
|
|
19
|
+
- **GitHub issues and discussions.** Questions already answered in docs indicate the docs are not discoverable or clear enough.
|
|
20
|
+
- **Developer surveys.** Periodic structured feedback on quality, gaps, and priorities.
|
|
21
|
+
- **Community channels.** Repeated questions in Discord/Slack/Stack Overflow are strong gap signals.
|
|
22
|
+
|
|
23
|
+
## Automated quality tools (CI/CD)
|
|
24
|
+
|
|
25
|
+
- **Vale** — prose linter enforcing style-guide rules (passive voice, jargon, inconsistent terminology).
|
|
26
|
+
- **markdownlint** — Markdown formatting consistency.
|
|
27
|
+
- **htmlproofer / lychee** — internal and external link checking on every deployment.
|
|
28
|
+
- **interrogate** (Python) — docstring coverage reporting.
|
|
29
|
+
- **cspell / aspell** — spell checking.
|
|
30
|
+
- **Lighthouse** — page performance, accessibility, SEO, best practices in CI.
|
|
31
|
+
|
|
32
|
+
A practical pipeline: on every PR run markdownlint + Vale + cspell + example tests; on every deployment run link checking + Lighthouse; weekly run a full broken-link crawl, coverage report, and freshness report; monthly review user feedback and search analytics.
|
|
33
|
+
|
|
34
|
+
## Building a quality culture
|
|
35
|
+
|
|
36
|
+
Metrics are necessary but not sufficient. Culture is the larger factor:
|
|
37
|
+
|
|
38
|
+
- Add "docs updated" checkboxes to PR templates.
|
|
39
|
+
- Allocate explicit sprint time (15-20%) to documentation and refactoring.
|
|
40
|
+
- Apply "you touch it, you document it" — the author of a code change owns the doc update.
|
|
41
|
+
- Assign a named owner to every documentation section.
|
|
42
|
+
- Celebrate documentation contributions the same way as code contributions.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Documentation Research Report Template
|
|
2
|
+
|
|
3
|
+
Output structure for the final report (Step 5). Keep the section order stable so reports can be compared across projects.
|
|
4
|
+
|
|
5
|
+
```markdown
|
|
6
|
+
# Documentation Research: [Project Name]
|
|
7
|
+
|
|
8
|
+
## 1. Executive Summary & Core Assertion
|
|
9
|
+
**Core Assertion:** [The one-sentence hook]
|
|
10
|
+
**Status:** [Summary of current architecture health]
|
|
11
|
+
|
|
12
|
+
## 2. Diátaxis Matrix
|
|
13
|
+
| Quadrant | Existing Topics | Proposed/Missing Topics |
|
|
14
|
+
| :--- | :--- | :--- |
|
|
15
|
+
| **Tutorial** | | |
|
|
16
|
+
| **How-to** | | |
|
|
17
|
+
| **Reference** | | |
|
|
18
|
+
| **Explanation** | | |
|
|
19
|
+
|
|
20
|
+
## 3. Snowflake Structural Map
|
|
21
|
+
- **Macro-Journey:** [Description]
|
|
22
|
+
- **Key Components:** [List]
|
|
23
|
+
|
|
24
|
+
## 4. EPPO & Cognitive Audit
|
|
25
|
+
- **Frankenbooks Found:** [List of files with mixed intent]
|
|
26
|
+
- **Context Gaps:** [Topics needing better orientation]
|
|
27
|
+
|
|
28
|
+
## 5. AI-Readiness Assessment
|
|
29
|
+
- [ ] `llms.txt` present?
|
|
30
|
+
- [ ] Explicit semantic labeling for RAG?
|
|
31
|
+
- [ ] MCP/agent manifests identified?
|
|
32
|
+
|
|
33
|
+
## 6. Measurement Signals
|
|
34
|
+
- [ ] TTFS measurable today?
|
|
35
|
+
- [ ] Search analytics available?
|
|
36
|
+
- [ ] Coverage / freshness tracked?
|
|
37
|
+
|
|
38
|
+
## 7. Recommended Next Steps
|
|
39
|
+
1. [Actionable structural change]
|
|
40
|
+
2. [Actionable topic creation]
|
|
41
|
+
3. [Actionable measurement setup]
|
|
42
|
+
```
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Review Documentation Quality
|
|
2
|
+
|
|
3
|
+
Perform a Rule of 5 review of the documentation using the Unified Frameworks for Technical Information Architecture.
|
|
4
|
+
|
|
5
|
+
## Core Rules
|
|
6
|
+
|
|
7
|
+
- You are a reviewer, not a writer. Flag issues with locations; do not rewrite content.
|
|
8
|
+
|
|
9
|
+
## Procedure
|
|
10
|
+
|
|
11
|
+
Perform 5 iterative passes. Check for convergence after each pass starting with Pass 2: report new CRITICAL issues, total new issues, the change vs. the previous pass, and status (CONVERGED or CONTINUE). Converge when no new CRITICAL issues are found and the new-issue rate drops below 10% versus the previous pass. Stop early if converged.
|
|
12
|
+
|
|
13
|
+
### Pass 1: Diátaxis & Intent
|
|
14
|
+
|
|
15
|
+
Goal: does this topic have a single, clear intent? Checks: is it a Tutorial, How-to, Reference, or Explanation? Are there leaked intents (e.g., too much theory in a Tutorial)? Issue prefix: [INTENT-001].
|
|
16
|
+
|
|
17
|
+
### Pass 2: EPPO & Standalone Utility
|
|
18
|
+
|
|
19
|
+
Goal: can a foraging reader land here and succeed? Checks: are context and prerequisites established in the first two sentences? Does it rely on "previous chapter" knowledge without links? Issue prefix: [EPPO-001].
|
|
20
|
+
|
|
21
|
+
### Pass 3: Cognitive Scannability (Info Mapping)
|
|
22
|
+
|
|
23
|
+
Goal: can the reader scan the page in under 10 seconds and find the key answer? Checks: are descriptive labels used for every 2-3 paragraphs? Are paragraphs chunked into small units? Are tables and lists used for complex data? Issue prefix: [SCAN-001].
|
|
24
|
+
|
|
25
|
+
### Pass 4: Accuracy, "Whole Game" & Fail-States
|
|
26
|
+
|
|
27
|
+
Goal: is the content technically sound and resilient? Checks: are code snippets verified? Does it show the complete result? Are common errors documented? In tutorials, is the Martini Glass pattern followed (guided context then open exploration)? Issue prefix: [ACC-001].
|
|
28
|
+
|
|
29
|
+
### Pass 5: Excellence & AI-Readiness
|
|
30
|
+
|
|
31
|
+
Goal: is it production-ready and optimized for AI agents? Checks: is there a TL;DR for LLMs? Are headers semantically unique for RAG? Is the Answer First (Pyramid Principle) in the TL;DR and first paragraph? Use `references/ai-readiness-criteria.md` for the deep AI-readiness checks (`llms.txt`, RAG chunking, dual-audience, schema sync). Issue prefix: [EXCL-001].
|
|
32
|
+
|
|
33
|
+
## Final Report
|
|
34
|
+
|
|
35
|
+
- Total Issues by Severity (Critical, High, Medium, Low).
|
|
36
|
+
- Top 3 Findings.
|
|
37
|
+
- Verdict: Ready, Needs Revision, or Needs Rework.
|
|
38
|
+
- Rationale.
|
|
39
|
+
|
|
40
|
+
## Rules
|
|
41
|
+
|
|
42
|
+
- Reference exact locations (file, section, paragraph).
|
|
43
|
+
- Validate issues exist; do not flag "potential" issues without evidence.
|
|
44
|
+
- The canonical theory lives in `content/research-documentation-frameworks.md`; `references/ai-readiness-criteria.md` is an operational excerpt that links back to it.
|
|
45
|
+
|
|
46
|
+
## Related Skills
|
|
47
|
+
|
|
48
|
+
- `research-documentation` — architecture-level gaps.
|
|
49
|
+
- `implement-documentation` — fixing what the review finds.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# AI-Readiness Criteria (Pass 5)
|
|
2
|
+
|
|
3
|
+
Deep checks for Pass 5. The basic pass (TL;DR present, headers unique, Answer First) catches surface issues; these checks catch whether the page is actually consumable by an AI agent. The canonical theory is `content/research-documentation-frameworks.md` (section "Machine Readability").
|
|
4
|
+
|
|
5
|
+
## LLM-friendly structure
|
|
6
|
+
|
|
7
|
+
- Is there a concise TL;DR (1-2 sentences) at the top suitable for context-window injection?
|
|
8
|
+
- Is the page free of navigation chrome when exported (menus, footers, ads) so the body text is clean?
|
|
9
|
+
- Is prose minimalist and high-signal? Verbose docs cost more and retrieve worse.
|
|
10
|
+
|
|
11
|
+
## RAG-compatible chunking
|
|
12
|
+
|
|
13
|
+
- Does the page cover one well-defined topic so it chunks cleanly for retrieval?
|
|
14
|
+
- Are section headings stable and unique so a chunk can be addressed precisely?
|
|
15
|
+
- Is there redundant cross-page duplication that would pollute retrieval results?
|
|
16
|
+
|
|
17
|
+
## Semantic headers
|
|
18
|
+
|
|
19
|
+
- Are headers descriptive of content, not generic ("Overview", "Details")?
|
|
20
|
+
- Are headers unique across the site so a model can disambiguate?
|
|
21
|
+
- Is front matter present (title, description, version, category) for indexing?
|
|
22
|
+
|
|
23
|
+
## Dual-audience precision
|
|
24
|
+
|
|
25
|
+
- Is language precise enough for a machine? Natural-language ambiguity a human resolves from context is opaque to an agent.
|
|
26
|
+
- Are error conditions and their meanings explicit?
|
|
27
|
+
- Are capability boundaries stated (what the tool/API can and cannot do)?
|
|
28
|
+
|
|
29
|
+
## Schema and spec sync (reference pages)
|
|
30
|
+
|
|
31
|
+
- For API reference: is it generated from or synchronized with a machine-readable spec (OpenAPI, AsyncAPI, JSDoc/TypeDoc, Sphinx autodoc)?
|
|
32
|
+
- For tool/agent docs: are MCP manifests and agent cards present with precise descriptions and JSON schemas for inputs/outputs?
|
|
33
|
+
- Are code examples complete and runnable? Agents execute what they read; partial snippets mislead.
|
|
34
|
+
|
|
35
|
+
## Site-level (flag only if the page is the canonical entry)
|
|
36
|
+
|
|
37
|
+
- Is a `llms.txt` present at the documentation root and does it reference this page where authoritative?
|
|
38
|
+
- Are canonical URLs set so a model retrieves the current stable version?
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: whisper
|
|
3
|
+
description: "Manage the ~/.whisper/ knowledge workspace: init, check, status, link plan to beads, decommission, and knowledge routing. Trigger when the user says '/whisper', '/w', 'init workspace', 'check workspace', 'workspace status', 'link plan', or 'decommission worktree'."
|
|
4
|
+
tools: Read, Write, Edit, Bash
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Whisper — Accumulated Operational Knowledge
|
|
8
|
+
|
|
9
|
+
Manage `~/.whisper/` — a global, tiered knowledge directory that accumulates operational knowledge and planning context across all your work. Works with or without beads issue tracking.
|
|
10
|
+
|
|
11
|
+
## Directory Layout
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
~/.whisper/
|
|
15
|
+
rules.md ← Global agent behavior rules (bd remember equiv)
|
|
16
|
+
|
|
17
|
+
repos/
|
|
18
|
+
github.com/user/repo/
|
|
19
|
+
env.md ← Repo-wide: deploy commands, infra facts, auth quirks
|
|
20
|
+
branches/
|
|
21
|
+
branch-slug/ ← One slot per branch (/ in name → -- in slug)
|
|
22
|
+
context.md ← Branch anchor: repo, branch, beads epic ID, status
|
|
23
|
+
plan.md ← Narrative implementation plan
|
|
24
|
+
notes.md ← Free-form scratch and findings
|
|
25
|
+
agents/ ← Optional sub-agent files when work is split across agents
|
|
26
|
+
worktrees/
|
|
27
|
+
worktree-name/ ← One slot per worktree (basename of worktree path)
|
|
28
|
+
env.md ← Worktree-specific: ports, venvs, credentials, local-only setup
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
**Branch slug rule:** `git rev-parse --abbrev-ref HEAD | sed 's|/|--|g'`
|
|
32
|
+
|
|
33
|
+
**Worktree slot rule:** `basename $(git rev-parse --git-common-dir 2>/dev/null)` (the `.git` worktree dir name), or `basename $(pwd)` when not in a worktree.
|
|
34
|
+
|
|
35
|
+
## Knowledge Routing
|
|
36
|
+
|
|
37
|
+
When a session learns something worth keeping, route it by scope:
|
|
38
|
+
|
|
39
|
+
| Scope | Test | Destination |
|
|
40
|
+
|---|---|---|
|
|
41
|
+
| **Global** | True for every repo and every project | `~/.whisper/rules.md` — append, don't overwrite |
|
|
42
|
+
| **Repo-wide infra** | True regardless of which branch or feature you're on (deploy behavior, gateway/timeout limits, log retention, auth quirks) | `~/.whisper/repos/<host>/<repo>/env.md` — create or extend |
|
|
43
|
+
| **Branch-specific** | Only matters for the work on *this* epic/branch | `~/.whisper/repos/<host>/<repo>/branches/<slug>/notes.md`, or `bd note <epic-id>` if beads is available |
|
|
44
|
+
| **Worktree setup** | Credentials, service IDs, ports, venv/docker specifics for *this checkout* | `~/.whisper/repos/<host>/<repo>/worktrees/<name>/env.md` |
|
|
45
|
+
| **Universal agent rule** | A standing instruction for how the agent should behave, independent of any branch or repo | `bd remember` if available, else `~/.whisper/rules.md` |
|
|
46
|
+
|
|
47
|
+
**Rules:**
|
|
48
|
+
- **No secrets anywhere.** Never write tokens, keys, passwords, or PII into `~/.whisper/`.
|
|
49
|
+
- **Extend, don't duplicate.** Append to or correct an existing note rather than creating a new one that says the same thing.
|
|
50
|
+
- **Search first.** Before creating a new entry, check if one already exists for the same topic.
|
|
51
|
+
- If `bd` is not available, everything falls back to `~/.whisper/` files — there's no beads-backed alternative.
|
|
52
|
+
|
|
53
|
+
## Modes
|
|
54
|
+
|
|
55
|
+
Determine mode from how the skill is triggered:
|
|
56
|
+
|
|
57
|
+
| Trigger | Mode |
|
|
58
|
+
|---|---|
|
|
59
|
+
| `/w init` or `~/.whisper/` does not exist | **init** |
|
|
60
|
+
| `/w` or `/w status` | **status** |
|
|
61
|
+
| `/w check` or called by `renew` | **check** |
|
|
62
|
+
| `/w link [<path>]` or "link plan" | **link** |
|
|
63
|
+
| `/w decommission` | **decommission** |
|
|
64
|
+
|
|
65
|
+
See each reference file for the full procedure:
|
|
66
|
+
|
|
67
|
+
- `references/init.md`
|
|
68
|
+
- `references/check.md`
|
|
69
|
+
- `references/status.md`
|
|
70
|
+
- `references/link.md`
|
|
71
|
+
- `references/decommission.md`
|
|
72
|
+
|
|
73
|
+
## Rules
|
|
74
|
+
|
|
75
|
+
- Never run `git worktree remove` automatically — always print the command for the user to execute.
|
|
76
|
+
- Never close beads issues during decommission — only defer. Closing is intentional.
|
|
77
|
+
- **One epic per branch, children via `--parent`, not flat siblings.**
|
|
78
|
+
- **`env.md` is shared and immutable across branch switches.** Never overwrite it during init or check — only create if absent.
|
|
79
|
+
- **Branch slug sanitization is mandatory.** Always run `sed 's|/|--|g'` on the branch name before using it as a directory path.
|
|
80
|
+
- **Worktree reuse across branches is normal, not an edge case.** Expect multiple slots to accumulate in `branches/` over time.
|
|
81
|
+
- **Legacy layout is still the common case.** Most worktrees never needed multiple branch slots — only migrate when a mismatch is detected.
|
|
82
|
+
- This skill is self-contained. Do not rely on `create-plan`, `park`, or `create-handoff` having `~/.whisper/` awareness.
|
|
83
|
+
- If `bd` is not initialized in the repo, skip beads steps gracefully and note what was skipped.
|