@laitszkin/apollo-toolkit 3.8.4 → 3.9.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/CHANGELOG.md +5 -0
- package/align-project-documents/SKILL.md +49 -121
- package/analyse-app-logs/scripts/__pycache__/filter_logs_by_time.cpython-312.pyc +0 -0
- package/analyse-app-logs/scripts/__pycache__/log_cli_utils.cpython-312.pyc +0 -0
- package/analyse-app-logs/scripts/__pycache__/search_logs.cpython-312.pyc +0 -0
- package/commit-and-push/SKILL.md +52 -75
- package/develop-new-features/SKILL.md +53 -113
- package/docs-to-voice/scripts/__pycache__/docs_to_voice.cpython-312.pyc +0 -0
- package/enhance-existing-features/SKILL.md +59 -125
- package/generate-spec/SKILL.md +86 -195
- package/generate-spec/scripts/__pycache__/create-specscpython-312.pyc +0 -0
- package/implement-specs/SKILL.md +47 -43
- package/implement-specs-with-subagents/SKILL.md +69 -165
- package/implement-specs-with-worktree/SKILL.md +53 -102
- package/katex/scripts/__pycache__/render_katex.cpython-312.pyc +0 -0
- package/maintain-project-constraints/SKILL.md +53 -105
- package/maintain-skill-catalog/SKILL.md +46 -42
- package/open-github-issue/scripts/__pycache__/open_github_issue.cpython-312.pyc +0 -0
- package/package.json +1 -1
- package/read-github-issue/scripts/__pycache__/find_issues.cpython-312.pyc +0 -0
- package/read-github-issue/scripts/__pycache__/read_issue.cpython-312.pyc +0 -0
- package/resolve-review-comments/scripts/__pycache__/review_threads.cpython-312.pyc +0 -0
- package/review-spec-related-changes/SKILL.md +49 -82
- package/solve-issues-found-during-review/SKILL.md +46 -106
- package/text-to-short-video/scripts/__pycache__/enforce_video_aspect_ratio.cpython-312.pyc +0 -0
- package/version-release/SKILL.md +52 -88
|
@@ -1,134 +1,85 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: implement-specs-with-worktree
|
|
3
3
|
description: >-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
the approved tasks within an isolated git worktree, with every code, test, and
|
|
8
|
-
spec edit made inside that worktree rather than the parent checkout. Use when the user asks
|
|
9
|
-
to implement from an existing spec set, execute a spec plan, or work on a
|
|
10
|
-
feature branch without affecting the parent working tree. If not already in a
|
|
11
|
-
worktree, create a new worktree with a spec-named branch from the same parent
|
|
12
|
-
branch as the worktree base, implement all planned tasks, then commit the
|
|
13
|
-
changes to that local branch when complete.
|
|
4
|
+
Same contract as **`implement-specs`** but every write happens inside a dedicated `git worktree` + feature branch; verify `pwd` equals `git rev-parse --show-toplevel` before touching code; parent checkout remains read-only for deliverables; honor `preparation.md` baselines and sibling collision rules from `coordination.md`.
|
|
5
|
+
Pick when the user or batch workflow demands isolation (“don’t disturb my dirty main”, per-spec worker). Plain same-branch edits stay on **`implement-specs`** instead.
|
|
6
|
+
Good: commands show matching paths after `git worktree add ../oauth-scope feat/oauth-scope`. Bad: patching files under the primary checkout tree for implementation output.
|
|
14
7
|
---
|
|
15
8
|
|
|
16
9
|
# Implement Specs with Worktree
|
|
17
10
|
|
|
18
11
|
## Dependencies
|
|
19
12
|
|
|
20
|
-
- Required: `implement-specs
|
|
13
|
+
- Required: `implement-specs` for the shared discovery / implementation / backfill / commit / reporting lifecycle; `enhance-existing-features` and `develop-new-features` for implementation standards.
|
|
21
14
|
- Conditional: `generate-spec` if spec files need clarification or updates.
|
|
22
|
-
- Fallback: If
|
|
15
|
+
- Fallback: If any required dependency skill is unavailable, **MUST** stop and report it.
|
|
23
16
|
|
|
24
|
-
##
|
|
17
|
+
## Non-negotiables
|
|
25
18
|
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
19
|
+
- **MUST** perform every write (product code, tests, and spec-document backfill) inside the active worktree: after each `cd`, **MUST** confirm `pwd` equals `git rev-parse --show-toplevel` for that worktree before editing.
|
|
20
|
+
- **MUST NOT** edit implementation files from the parent checkout except for creating or listing worktrees and read-only inspection; the parent checkout is write-prohibited for this spec’s deliverables.
|
|
21
|
+
- **MUST** follow the **`implement-specs` Workflow** for discovery, implementation, backfill, commit discipline, and completion reporting—**except** that branch/worktree restrictions in `implement-specs` Non-negotiables are replaced by this skill’s worktree rules.
|
|
22
|
+
- **MUST** create the implementation branch from the **same parent branch** the user/session identified as the baseline (often the branch that will receive the merge—not necessarily `main` unless that branch is verified as the base).
|
|
23
|
+
- **MUST** use the spec directory name (`change_name`) as the canonical basename for the worktree path and branch stem; branch **`type`/name** must follow `references/branch-naming.md`.
|
|
24
|
+
- **MUST** use `git show-ref` and `git worktree list --porcelain` (not shell guesses) when checking whether a branch or worktree already exists; if creation fails ambiguously, **MUST** re-query those commands before retrying.
|
|
25
|
+
- When `preparation.md` exists: **MUST** treat it as an already-committed shared baseline for parallel work; **MUST NOT** redo its tasks inside the member spec unless the preparation commit is missing or the document states the prerequisite is still blocked. If baseline assumptions break, **MUST** update `preparation.md` or stop for coordination—**MUST NOT** silently move prerequisite work into the member spec.
|
|
26
|
+
- **MUST** complete the same quality bar as `implement-specs`: all in-scope tasks, relevant tests, honest backfill, no sibling-spec scope creep, revert formatter-only noise outside owned files before commit.
|
|
27
|
+
- **MUST NOT** `git push` unless the user explicitly asks.
|
|
28
|
+
- For targeted Rust tests: **MUST** pass at most one positional `cargo test` filter per invocation; use separate commands or a broader confirmed filter when multiple selectors are needed.
|
|
30
29
|
|
|
31
|
-
##
|
|
30
|
+
## Standards (summary)
|
|
32
31
|
|
|
33
|
-
|
|
32
|
+
- **Evidence**: Read full spec set plus `coordination.md` and `preparation.md` when present; verify whether the spec is already implemented on the baseline before opening a new worktree; if the plan is missing in the worktree, sync the authoritative copy and re-read before coding.
|
|
33
|
+
- **Execution**: Isolated worktree only; branch naming per `references/branch-naming.md`; check sibling worktrees before editing shared boundaries in a parallel batch.
|
|
34
|
+
- **Quality**: Same as `implement-specs`, plus collision awareness with sibling worktrees per `coordination.md`.
|
|
35
|
+
- **Output**: Clean local branch in the worktree with intended commits only; parent working tree unchanged by this implementation.
|
|
34
36
|
|
|
35
37
|
## Workflow
|
|
36
38
|
|
|
37
|
-
|
|
39
|
+
**Chain-of-thought:** Answer each **`Pause →`** question before leaving the phase; if any answer conflicts with Non-negotiables, fix state first (right directory, right root, right baseline).
|
|
38
40
|
|
|
39
|
-
|
|
41
|
+
### A) Specs and baseline
|
|
40
42
|
|
|
41
|
-
|
|
43
|
+
- Run **`implement-specs` Workflow steps 1–2** in spirit: resolve paths, read all core files and `coordination.md`; run `git status` / `git worktree list` as needed. If the plan files are absent in the target worktree, sync them in, then re-read in that tree.
|
|
44
|
+
- Read `preparation.md` when present; apply the Non-negotiable baseline rule above.
|
|
45
|
+
- **Pause →** Where will authoritative plan text live **for this session**—parent tree, worktree after sync—and have I opened that copy end-to-end?
|
|
46
|
+
- **Pause →** Does `coordination.md` / `preparation.md` imply **anything** I must not redo or must assume stable before coding?
|
|
42
47
|
|
|
43
|
-
|
|
48
|
+
### B) Worktree and branch
|
|
44
49
|
|
|
45
|
-
|
|
50
|
+
- If the requested scope is already implemented and verified on the baseline, **MUST** report `no-op` with evidence instead of creating duplicate work.
|
|
51
|
+
- Otherwise: ensure the shell is in the correct worktree (create one if required):
|
|
52
|
+
- Derive `change_name`; branch pattern `<type>/<spec-name>` per `references/branch-naming.md`; worktree directory `../<spec-name>` (or an equivalent path the user approves).
|
|
53
|
+
- `git branch <branch-name> <parent-branch>` then `git worktree add <path> <branch-name>`; `cd` into it; verify `pwd` vs `git rev-parse --show-toplevel`.
|
|
54
|
+
- Before editing shared modules in a batch, check `git worktree list --porcelain` and `coordination.md` for sibling ownership; read sibling diffs when the same file is touched.
|
|
55
|
+
- **Pause →** Why is **`parent-branch`** definitely the correct baseline—not an unexamined assumption that `main` is default?
|
|
56
|
+
- **Pause →** Could this work duplicate an **already-merged** implementation; what **evidence** (`git log`, tests, code search) did I use to rule that in or out?
|
|
57
|
+
- **Pause →** After `cd`, do `pwd` and `git rev-parse --show-toplevel` **match**; if not, why am I not stopping before any write?
|
|
58
|
+
- **Pause →** Which sibling worktree might already own the shared file I am about to touch, and did I inspect their diff?
|
|
46
59
|
|
|
47
|
-
|
|
48
|
-
- Determine if the current session is already inside a worktree (check `git rev-parse --show-toplevel` and compare with `git worktree list`).
|
|
49
|
-
- If the current worktree is missing the exact requested plan set, sync that plan into the worktree before coding and re-read the synced files there so implementation happens against the same plan snapshot that will be backfilled later.
|
|
50
|
-
- Before making any edits, confirm the active shell is inside the intended worktree directory; if not, stop editing, create or enter the required worktree first, and only then continue.
|
|
51
|
-
- Determine the authoritative parent branch for the new worktree:
|
|
52
|
-
- if the current checkout already comes from a branch, reuse that branch as the base
|
|
53
|
-
- if the current session is inside a detached worktree, identify the parent branch that owns that worktree before creating another branch from it
|
|
54
|
-
- do not default to `main` unless `main` is actually the parent branch of the worktree you are extending
|
|
55
|
-
- Before creating a new worktree, inspect the parent branch and current main working tree for evidence that the requested spec is already implemented:
|
|
56
|
-
- search the codebase, tests, and recent git history for the exact feature boundary or cutover named by the spec
|
|
57
|
-
- if the requested plan is archived, treat that as a signal to verify whether the implementation already landed before starting any new branch
|
|
58
|
-
- when the requested behavior is already present and verified, report a `no-op` result with concrete evidence instead of recreating the same work in a fresh worktree
|
|
59
|
-
- When the spec belongs to a parallel batch and other local worktrees for sibling specs already exist, inspect those sibling worktrees before editing any shared boundary module (for example shared runtime, config, or contract files):
|
|
60
|
-
- use `git worktree list --porcelain` plus the batch ownership map in `coordination.md` to identify likely sibling worktrees
|
|
61
|
-
- if a sibling worktree already touches the same shared file, read that diff first and either stay within your owned additive boundary or update the coordination evidence before proceeding
|
|
62
|
-
- do not assume coordination is collision-free just because the plan scopes differ at the directory level
|
|
60
|
+
### C) Implement, backfill, commit, report
|
|
63
61
|
|
|
64
|
-
|
|
62
|
+
- Execute **`implement-specs` Workflow steps 3–6** (implement, backfill, commit, report) **entirely from the worktree root**, applying `enhance-existing-features` / `develop-new-features` standards.
|
|
63
|
+
- In the report, **MUST** include branch name, worktree path, commit hash, tests run, backfilled docs, and an explicit statement that the parent checkout was not modified for implementation files.
|
|
64
|
+
- **Pause →** Am I honoring **implement-specs** step 3–6 **constraints** literally while respecting that all writes happen **only** under this worktree root?
|
|
65
|
+
- **Pause →** If I used Rust `cargo test` filters, did I violate the **single positional filter** rule; how would I split the commands?
|
|
65
66
|
|
|
66
|
-
|
|
67
|
+
## Sample hints
|
|
67
68
|
|
|
68
|
-
-
|
|
69
|
-
- Use that spec name as the shared branch/worktree identifier:
|
|
70
|
-
- branch name: `<type>/<spec-name>` following `references/branch-naming.md`
|
|
71
|
-
- worktree directory name: `<spec-name>`
|
|
72
|
-
- Create a new branch for this implementation from the same parent branch identified in step 2:
|
|
69
|
+
- **Root check** (must print the same path twice before edits):
|
|
73
70
|
```bash
|
|
74
|
-
git
|
|
71
|
+
pwd && git rev-parse --show-toplevel
|
|
75
72
|
```
|
|
76
|
-
-
|
|
73
|
+
- **Skeleton commands** (`change_name` `oauth-scope`, parent `feature/x`, type `feat`):
|
|
77
74
|
```bash
|
|
78
|
-
git
|
|
75
|
+
git branch feat/oauth-scope feature/x
|
|
76
|
+
git worktree add ../oauth-scope feat/oauth-scope
|
|
77
|
+
cd ../oauth-scope
|
|
79
78
|
```
|
|
80
|
-
-
|
|
81
|
-
- Do not start editing until the shell is operating inside the new worktree directory and the worktree root has been verified.
|
|
82
|
-
- When checking whether the target branch or worktree already exists, use direct git evidence instead of shell heuristics:
|
|
83
|
-
```bash
|
|
84
|
-
git show-ref --verify --quiet refs/heads/<branch-name>
|
|
85
|
-
git worktree list --porcelain
|
|
86
|
-
```
|
|
87
|
-
- If branch creation or worktree creation fails in a way that leaves the state unclear, stop and re-read `git show-ref` plus `git worktree list --porcelain` before retrying; do not guess from wrapper output or compound shell conditionals.
|
|
88
|
-
|
|
89
|
-
Use branch naming from `references/branch-naming.md`.
|
|
90
|
-
|
|
91
|
-
### 4) Implement the planned tasks
|
|
92
|
-
|
|
93
|
-
Use $implement-specs for the standard implementation workflow.
|
|
94
|
-
|
|
95
|
-
Additionally:
|
|
96
|
-
|
|
97
|
-
- When `preparation.md` exists, implement against its prepared baseline assumptions and avoid duplicating preparation tasks in the member spec.
|
|
98
|
-
- When using targeted Rust `cargo test` commands, pass at most one positional test filter per invocation; if multiple selectors are needed, run separate commands or a broader confirmed selector.
|
|
99
|
-
|
|
100
|
-
### 5) Backfill completion status
|
|
101
|
-
|
|
102
|
-
Use $implement-specs for the standard backfill workflow.
|
|
103
|
-
|
|
104
|
-
Additionally:
|
|
105
|
-
|
|
106
|
-
- If preparation assumptions changed or were found missing, update `preparation.md` or stop for re-coordination instead of silently moving prerequisite work into the member spec.
|
|
107
|
-
|
|
108
|
-
### 6) Commit changes
|
|
109
|
-
|
|
110
|
-
Use $implement-specs for the standard commit workflow.
|
|
111
|
-
|
|
112
|
-
### 7) Report completion
|
|
113
|
-
|
|
114
|
-
See $implement-specs for the standard reporting format. Add the following context-specific details:
|
|
115
|
-
|
|
116
|
-
- Note the spec-derived branch name and worktree location.
|
|
117
|
-
- Confirm that the parent branch remains unaffected.
|
|
118
|
-
|
|
119
|
-
## Working Rules
|
|
120
|
-
|
|
121
|
-
- Always work in an isolated worktree to keep the parent checkout clean.
|
|
122
|
-
- Treat the parent checkout as read-only for implementation work; use it only for inspection, worktree creation, or verification, never for file edits.
|
|
123
|
-
- Treat an already-landed spec as complete work, not as a reason to recreate a duplicate worktree.
|
|
124
|
-
- Keep the new branch based on the same parent branch as the worktree base; do not silently rebase the workflow onto a different branch.
|
|
125
|
-
- Use the spec-set name as the canonical identifier for the branch and worktree unless the user explicitly asks for a different naming scheme.
|
|
126
|
-
- When `preparation.md` exists, treat it as a prerequisite baseline owned outside the member spec; do not duplicate or alter its tasks unless explicitly requested.
|
|
127
|
-
- Revert formatter-only edits outside the owned spec scope before the final commit so the worktree stays reviewable and merge-safe.
|
|
128
|
-
- The shared working rules from $implement-specs also apply (complete all tasks, treat specs as truth, respect coordination.md, follow testing standards, no remote push unless asked).
|
|
79
|
+
- **Cargo** (two filters ⇒ two commands): run `cargo test parser::` **and separately** `cargo test cache::`, not `cargo test parser:: cache::`.
|
|
129
80
|
|
|
130
81
|
## References
|
|
131
82
|
|
|
132
|
-
- `
|
|
133
|
-
- `
|
|
134
|
-
- `develop-new-features`: implementation standards
|
|
83
|
+
- `implement-specs`: shared lifecycle (read → implement → backfill → commit → report)
|
|
84
|
+
- `references/branch-naming.md`: branch naming
|
|
85
|
+
- `enhance-existing-features`, `develop-new-features`: implementation standards
|
|
Binary file
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: maintain-project-constraints
|
|
3
|
-
description:
|
|
3
|
+
description: >-
|
|
4
|
+
Maintain root `AGENTS.md` / `CLAUDE.md` with exactly three mirrored sections (unless the repo documents deliberate divergence): Common Development Commands traced to real scripts/Makefile targets, Project Business Goals capturing macro why/who/outcome, Project Documentation Index enumerating every standardized `docs/features`, `docs/architecture`, `docs/principles` file plus important root docs—purge invented commands, prune deleted paths, forbid stuffing feature lists into Goals.
|
|
5
|
+
Invoke after missing files, drift after refactors, or once `align-project-documents` reshapes `docs/`.
|
|
6
|
+
Bad: documenting `npm run magic` absent from `package.json`. Good: cite `npm test` with file reference. Bad: ten micro-features listed under Goals instead of the docs index…
|
|
4
7
|
---
|
|
5
8
|
|
|
6
9
|
# Maintain Project Constraints
|
|
@@ -12,134 +15,79 @@ description: Create and maintain AGENTS.md/CLAUDE.md with the project's macro bu
|
|
|
12
15
|
- Optional: none.
|
|
13
16
|
- Fallback: not applicable.
|
|
14
17
|
|
|
15
|
-
##
|
|
18
|
+
## Non-negotiables
|
|
16
19
|
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
|
|
20
|
-
|
|
20
|
+
- **MUST** derive commands and business purpose from **current** repo artifacts (`package.json`, `Makefile`, `bin/`, `scripts/`, `README`, `docs/features/`, code entrypoints)—**MUST NOT** invent flags, task names, or CLI paths.
|
|
21
|
+
- **`AGENTS.md` / `CLAUDE.md` content** is **exactly three sections**—no extra tutorials, architecture essays, or style guides (those belong in `docs/`):
|
|
22
|
+
1. **Common Development Commands**
|
|
23
|
+
2. **Project Business Goals**
|
|
24
|
+
3. **Project Documentation Index**
|
|
25
|
+
- **MUST** list **every** file under `docs/features/`, `docs/architecture/`, `docs/principles/` plus notable root docs (`README.md`, `CONTRIBUTING.md`, …) that exist; paths **MUST** exist on disk—**MUST NOT** stale links.
|
|
26
|
+
- If **both** `AGENTS.md` and `CLAUDE.md` exist, the three sections **MUST** be **identical** between them unless the repo documents an intentional divergence (otherwise keep parity).
|
|
27
|
+
- **Project Business Goals** = macro **why/for whom/outcome**—**MUST NOT** duplicate the feature inventory (index already points there).
|
|
21
28
|
|
|
22
|
-
##
|
|
29
|
+
## Standards (summary)
|
|
23
30
|
|
|
24
|
-
|
|
31
|
+
- **Evidence**: Scripts and docs on disk drive command list and index—no memory.
|
|
32
|
+
- **Execution**: Inventory → draft three sections → verify paths → prune stray sections.
|
|
33
|
+
- **Quality**: Scannable; no speculative architecture.
|
|
34
|
+
- **Output**: Fresh root constraint files aligned with repo.
|
|
25
35
|
|
|
26
|
-
##
|
|
36
|
+
## Triggers
|
|
27
37
|
|
|
28
|
-
|
|
38
|
+
- Missing `AGENTS.md`/`CLAUDE.md`, post-change drift suspected, or after `align-project-documents` reshapes `docs/`.
|
|
29
39
|
|
|
30
|
-
|
|
31
|
-
2. `AGENTS.md` or `CLAUDE.md` exists but may have drifted after code changes, documentation updates, or workflow changes.
|
|
32
|
-
3. After `align-project-documents` has updated the `docs/` structure and the document index needs to be refreshed.
|
|
40
|
+
## Workflow
|
|
33
41
|
|
|
34
|
-
|
|
42
|
+
**Chain-of-thought:** **`Pause →`** before writing each section—if a command is uncertain, grep config before committing text.
|
|
35
43
|
|
|
36
|
-
|
|
44
|
+
### 1) Inventory
|
|
37
45
|
|
|
38
|
-
|
|
46
|
+
- Parse command surfaces (`package.json` scripts, `Makefile`, CI, CLIs).
|
|
47
|
+
- Enumerate `docs/features/`, `docs/architecture/`, `docs/principles/`; note root docs.
|
|
48
|
+
- **Pause →** Can I cite the **source line** (script name, target) for every command I plan to list?
|
|
39
49
|
|
|
40
|
-
|
|
41
|
-
- Prefer repository-owned entry points: package scripts, CLIs, `bin/` programs, `scripts/`, `Makefile`, `justfile`, or equivalent task runners.
|
|
42
|
-
- For each command, explain when to use it in one short phrase.
|
|
43
|
-
- Prioritize commands that help an agent inspect, validate, build, test, or operate the repository.
|
|
44
|
-
- Do not invent commands, aliases, flags, or task names not traceable to the repository.
|
|
50
|
+
### 2) Business goals
|
|
45
51
|
|
|
46
|
-
|
|
52
|
+
- Prefer `README` + `docs/features/` tone; else infer from user-facing entrypoints—still **product-level sentences**, not file lists.
|
|
47
53
|
|
|
48
|
-
|
|
49
|
-
- Write at the product or business level, not at the implementation level.
|
|
50
|
-
- Keep it concise but self-contained — a reader should understand why the project exists without reading other documents.
|
|
54
|
+
### 3) Write / update files
|
|
51
55
|
|
|
52
|
-
|
|
56
|
+
- Create or overwrite **only** the three sections per file conventions (create missing file among `AGENTS.md`/`CLAUDE.md` per repo habit).
|
|
57
|
+
- **Pause →** Did any stray `## Installation` creep in—must delete if not part of repo’s mandated format?
|
|
53
58
|
|
|
54
|
-
|
|
55
|
-
- Organize by category: `docs/features/`, `docs/architecture/`, `docs/principles/`.
|
|
56
|
-
- For each document, provide the file path and a one-line description of what it covers.
|
|
57
|
-
- List any additional root-level documentation files (e.g., `README.md`, `CONTRIBUTING.md`, `SECURITY.md`).
|
|
59
|
+
### 4) Documentation index
|
|
58
60
|
|
|
59
|
-
|
|
61
|
+
- One line per file: `path — short purpose`. Mirror reality; drop deleted; add new.
|
|
60
62
|
|
|
61
|
-
|
|
62
|
-
## Common Development Commands
|
|
63
|
+
### 5) Verification
|
|
63
64
|
|
|
64
|
-
-
|
|
65
|
-
- `npm run build` — compile the project for production.
|
|
66
|
-
- `apltk validate-skill-frontmatter` — validate every top-level `SKILL.md` frontmatter block.
|
|
65
|
+
- Each command reproducible from declared config; every indexed path exists; both files match if both present; strip extra sections.
|
|
67
66
|
|
|
68
|
-
##
|
|
67
|
+
## Sample hints
|
|
69
68
|
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
- **Command bad**: “`npm run magic` — deploy” when no script `magic` in `package.json`.
|
|
70
|
+
- **Command OK**: `` `npm test` — runs Node test suite (see `package.json`) ``.
|
|
71
|
+
- **Goals bad**: Listing ten micro-features → belongs in features index + separate files.
|
|
72
|
+
- **Goals OK**: “This repo ships X for Y operators; primary outcome Z.”
|
|
73
|
+
- **Index**: If `docs/features/auth.md` deleted, **remove** line same run.
|
|
72
74
|
|
|
73
|
-
##
|
|
75
|
+
## Template sketch
|
|
74
76
|
|
|
75
|
-
|
|
77
|
+
```markdown
|
|
78
|
+
## Common Development Commands
|
|
79
|
+
- `…` — …
|
|
76
80
|
|
|
77
|
-
|
|
78
|
-
|
|
81
|
+
## Project Business Goals
|
|
82
|
+
…
|
|
79
83
|
|
|
84
|
+
## Project Documentation Index
|
|
85
|
+
### Features (`docs/features/`)
|
|
86
|
+
- `…` — …
|
|
80
87
|
### Architecture (`docs/architecture/`)
|
|
81
|
-
|
|
82
|
-
- `docs/architecture/skill-system.md` — skill loading, resolution, and execution model
|
|
83
|
-
- `docs/architecture/validation-pipeline.md` — validation pipeline design
|
|
84
|
-
|
|
88
|
+
- …
|
|
85
89
|
### Principles (`docs/principles/`)
|
|
86
|
-
|
|
87
|
-
- `docs/principles/naming-conventions.md` — file and identifier naming rules
|
|
88
|
-
- `docs/principles/dependency-management.md` — internal and external dependency rules
|
|
89
|
-
|
|
90
|
+
- …
|
|
90
91
|
### Root Documents
|
|
91
|
-
|
|
92
|
-
- `README.md` — project overview and quick start
|
|
92
|
+
- `README.md` — …
|
|
93
93
|
```
|
|
94
|
-
|
|
95
|
-
## Workflow
|
|
96
|
-
|
|
97
|
-
### 1) Build factual understanding
|
|
98
|
-
|
|
99
|
-
- Read the repository entry points, configuration, and command surfaces (`package.json`, `bin/`, `scripts/`, `Makefile`, etc.).
|
|
100
|
-
- If standardized project documentation exists under `docs/`, read `docs/features/`, `docs/architecture/`, and `docs/principles/` to understand the documented capabilities and to build the index.
|
|
101
|
-
- If `docs/` does not exist or is incomplete, read the source code directly to extract business goals and common commands.
|
|
102
|
-
- Build a concrete inventory of:
|
|
103
|
-
- Every stable, repository-specific command.
|
|
104
|
-
- The project's macro business purpose (from docs, README, or inferred from the codebase's capabilities).
|
|
105
|
-
- Every file under `docs/` that should appear in the index.
|
|
106
|
-
|
|
107
|
-
### 2) Extract macro business goals
|
|
108
|
-
|
|
109
|
-
- Derive the project's business purpose from:
|
|
110
|
-
1. Existing documentation (`README.md`, `docs/features/`) if available.
|
|
111
|
-
2. The set of user-facing capabilities found in the codebase.
|
|
112
|
-
- Write at the product level: what problem does this solve? who uses it? what outcome does it produce?
|
|
113
|
-
- Do not restate implementation details or list features; the document index already points to feature docs.
|
|
114
|
-
|
|
115
|
-
### 3) Write or update AGENTS.md/CLAUDE.md
|
|
116
|
-
|
|
117
|
-
- If `AGENTS.md` exists, update it. If `CLAUDE.md` exists, update it. If both exist, update both with identical content for the three sections.
|
|
118
|
-
- If neither exists, check for the repository's convention and create the appropriate file.
|
|
119
|
-
- Write only the three sections: Common Development Commands, Project Business Goals, Project Documentation Index.
|
|
120
|
-
- Do not add architecture descriptions, code style guidance, business flows, or any content that belongs in `docs/`.
|
|
121
|
-
|
|
122
|
-
### 4) Maintain the project documentation index
|
|
123
|
-
|
|
124
|
-
- Enumerate every file under `docs/features/`, `docs/architecture/`, and `docs/principles/`.
|
|
125
|
-
- For each file, write a one-line description of what it covers.
|
|
126
|
-
- List root-level documentation files (`README.md`, `CONTRIBUTING.md`, `SECURITY.md`, `CHANGELOG.md`, etc.) that exist in the repository.
|
|
127
|
-
- Keep the index synchronized with the actual files on disk; remove entries for deleted files and add entries for new files.
|
|
128
|
-
|
|
129
|
-
### 5) Quality checks before finishing
|
|
130
|
-
|
|
131
|
-
- Verify every command in Common Development Commands is traceable to a repository entry point.
|
|
132
|
-
- Verify Project Business Goals describes the macro purpose, not a feature list.
|
|
133
|
-
- Verify every file listed in the Documentation Index exists on disk.
|
|
134
|
-
- Verify the index covers all files under `docs/features/`, `docs/architecture/`, and `docs/principles/`.
|
|
135
|
-
- If both `AGENTS.md` and `CLAUDE.md` exist, verify their content is consistent.
|
|
136
|
-
- Remove any sections beyond the three required ones.
|
|
137
|
-
|
|
138
|
-
## Writing Rules
|
|
139
|
-
|
|
140
|
-
- Keep the document concise and scannable.
|
|
141
|
-
- Use the repository's own terminology.
|
|
142
|
-
- Do not speculate about architecture or implementation details.
|
|
143
|
-
- In Project Business Goals, describe the macro purpose; for example, the user or business problem the project solves.
|
|
144
|
-
- In the Documentation Index, prefer descriptive one-line summaries over bare file paths.
|
|
145
|
-
- When both `AGENTS.md` and `CLAUDE.md` exist, keep their content identical for the three sections.
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: maintain-skill-catalog
|
|
3
|
-
description:
|
|
3
|
+
description: >-
|
|
4
|
+
Maintain this SKILL catalog repo: reconcile `SKILL.md` frontmatter/`Dependencies`, `agents/openai.yaml`, README inventory, classify vendored vs external vs unpublished-local aliases, prefer extracting shared workflows over duplicating long prose, and always rerun `apltk validate-skill-frontmatter` plus `apltk validate-openai-agent-config` before finishing—never invent package names or installers for unverified deps.
|
|
5
|
+
Use when CI metadata breaks, users ask to “sync skills”, or dependency docs drift. Do not use for random application repos that are not this catalog layout.
|
|
6
|
+
Bad: marketing a `~/.claude` draft as an npm dependency… Good: label it “local optional” and link once in README instead of pasting the blurb into five skills…
|
|
4
7
|
---
|
|
5
8
|
|
|
6
9
|
# Maintain Skill Catalog
|
|
@@ -9,60 +12,61 @@ description: Audit and maintain a repository of installable skills so the catalo
|
|
|
9
12
|
|
|
10
13
|
- Required: none.
|
|
11
14
|
- Conditional: `find-skills` when a dependency is external and the installation source is unknown.
|
|
12
|
-
- Optional: `skill-creator` when
|
|
13
|
-
- Fallback: If an external dependency cannot be verified,
|
|
15
|
+
- Optional: `skill-creator` when extracting a repeated workflow into a new shared skill or heavily reshaping a skill.
|
|
16
|
+
- Fallback: If an external dependency cannot be verified, **MUST** document unknowns honestly—**MUST NOT** invent package names, install commands, or skill aliases.
|
|
14
17
|
|
|
15
|
-
##
|
|
18
|
+
## Non-negotiables
|
|
16
19
|
|
|
17
|
-
-
|
|
18
|
-
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
20
|
+
- **MUST** read actual skill directories, validator scripts (`scripts/validate_*.py`, CI), `README.md`, and `agents/openai.yaml` patterns **before** reclassifying dependencies or rewriting catalog prose.
|
|
21
|
+
- **MUST** treat each skill’s `## Dependencies` block as authoritative for skill-to-skill references; reconcile docs to match folders, not the reverse by guess.
|
|
22
|
+
- **MUST** classify each dependency edge as: vendored-in-repo · local unpublished (not advertised as external) · external-with-install-guidance · alias-only (explain, don’t duplicate as separate dep).
|
|
23
|
+
- **MUST NOT** duplicate skills or paste long prose into README without verifying whether a narrower edit or extraction fixes the repetition.
|
|
24
|
+
- **MUST NOT** advertise a colleague’s unpublished `~/.codex/skills/...` name as if it were an npm-installable artifact unless verified.
|
|
25
|
+
- After metadata or agent-config edits, **MUST** run **`apltk validate-skill-frontmatter`** and **`apltk validate-openai-agent-config`** (or fail the session with explanation if CLI unavailable)—**MUST NOT** declare the catalog consistent while validators fail.
|
|
26
|
+
- If validator failures reveal a **systemic** gap, **MUST** prefer tightening the validator/CI in the **same** change set when appropriate, not only patching one skill ad hoc.
|
|
21
27
|
|
|
22
|
-
##
|
|
28
|
+
## Standards (summary)
|
|
23
29
|
|
|
24
|
-
|
|
30
|
+
- **Evidence**: Folders + scripts + frontmatter reality; optional `~/.codex/skills` spot-check for external names.
|
|
31
|
+
- **Execution**: Inventory → classify → minimal focused edits → validate → report.
|
|
32
|
+
- **Quality**: One skill one purpose; naming matches folder; agent configs synchronized.
|
|
33
|
+
- **Output**: Updated lists/docs + green validators + explicit unknowns.
|
|
25
34
|
|
|
26
35
|
## Workflow
|
|
27
36
|
|
|
28
|
-
|
|
37
|
+
**Chain-of-thought:** Answer **`Pause →`** before moving to the next subsection; validator red **MUST** block “done.”
|
|
29
38
|
|
|
30
|
-
|
|
31
|
-
- Check whether the requested workflow already exists under another name or can be handled by a focused update.
|
|
32
|
-
- Read current `README.md`, `AGENTS.md/CLAUDE.md/CLAUDE.md`, validator scripts, and any existing dependency notes that may need synchronization.
|
|
33
|
-
- When the task involves external dependencies, inspect local installed skills under `~/.codex/skills` first to confirm the exact skill names.
|
|
39
|
+
### 1) Inventory
|
|
34
40
|
|
|
35
|
-
|
|
41
|
+
- Enumerate top-level skill dirs (`SKILL.md` present); read touched `SKILL.md` files before inventing merges or new skills.
|
|
42
|
+
- Read `README.md`, `AGENTS.md`/`CLAUDE.md`, and existing dependency notes.
|
|
43
|
+
- **Pause →** Is the requested change already satisfied by renaming or merging **existing** skill text instead of adding a sibling skill?
|
|
44
|
+
- **Pause →** Which validator script actually enforces description length and keys—did I open its source?
|
|
36
45
|
|
|
37
|
-
|
|
38
|
-
- Read the current validator scripts before changing frontmatter-heavy files so metadata limits come from implementation rather than memory.
|
|
39
|
-
- Classify each dependency as:
|
|
40
|
-
- vendored in this repository
|
|
41
|
-
- local/private skill that should not be documented as external
|
|
42
|
-
- external skill that needs install guidance
|
|
43
|
-
- alias/compatibility name that should be explained but not treated as a separate dependency
|
|
44
|
-
- Verify exact external skill names before editing docs; do not invent pluralizations or package names.
|
|
45
|
-
- If multiple skills repeat the same workflow, prefer extracting that shared portion into a dedicated skill instead of duplicating instructions.
|
|
46
|
+
### 2) Audit dependencies and conventions
|
|
46
47
|
|
|
47
|
-
|
|
48
|
+
- Align `## Dependencies` across skills with shared vocabulary (`Required` / `Conditional` / `Optional` / `Fallback`).
|
|
49
|
+
- Exact external strings only—verify spelling/plural vs installed tree.
|
|
50
|
+
- Repeated workflows ⇒ prefer **extract** to new skill (`skill-creator`) over copy-paste.
|
|
51
|
+
- **Pause →** Would classifying dep X as “external” confuse installers—could it actually be repo-vendored or optional?
|
|
48
52
|
|
|
49
|
-
|
|
50
|
-
- Update `README.md` skill lists and external dependency sections when the catalog actually changes.
|
|
51
|
-
- Update `AGENTS.md/CLAUDE.md` when the repository gains or loses a user-visible capability or a standing convention changes.
|
|
52
|
-
- When creating a new shared skill, align naming, frontmatter, `agents/openai.yaml`, and any lightweight README with neighboring skills.
|
|
53
|
-
- When a failure comes from validator drift or a metadata constraint that was not caught early, tighten the validator or CI path in the same change instead of only fixing the offending skill text.
|
|
54
|
-
- Do not treat unpublished local skills as external dependencies just because they are not yet installed elsewhere.
|
|
53
|
+
### 3) Apply catalog edits
|
|
55
54
|
|
|
56
|
-
|
|
55
|
+
- Minimal diffs; update `README` skill lists and external-dep sections **only when** inventory changed facts.
|
|
56
|
+
- New shared skill: kebab-case folder = frontmatter `name`; add `agents/openai.yaml` following neighbors.
|
|
57
|
+
- **Pause →** Did I treat a **template** path under `references/` as a runtime skill—classification error?
|
|
57
58
|
|
|
58
|
-
|
|
59
|
-
- `apltk validate-skill-frontmatter`
|
|
60
|
-
- `apltk validate-openai-agent-config`
|
|
61
|
-
- If the change touched installer or repo-discovery behavior, verify the relevant install scripts or discovery logic as well.
|
|
62
|
-
- Resolve validation failures before finishing; missing `agents/openai.yaml`, stale prompt references, and mismatched skill names are catalog bugs, not follow-up work.
|
|
59
|
+
### 4) Validate
|
|
63
60
|
|
|
64
|
-
|
|
61
|
+
- Run `apltk validate-skill-frontmatter` and `apltk validate-openai-agent-config`. If installer/discovery scripts changed behavior, smoke the paths they document.
|
|
62
|
+
- **Pause →** Any skill missing `agents/openai.yaml` or stale tool names—still acceptable for this repo’s rules?
|
|
65
63
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
-
|
|
64
|
+
### 5) Report
|
|
65
|
+
|
|
66
|
+
- Skills touched, conventions updated, external deps verified vs unknown; encode user-stated repo rules into skill or README so regressions recur less.
|
|
67
|
+
|
|
68
|
+
## Sample hints
|
|
69
|
+
|
|
70
|
+
- **Classification**: Skill A says `Conditional: Foo` but `Foo` lives only under `~/.claude/` unpublished → document as **local optional**, not “install Foo from npm.”
|
|
71
|
+
- **Validator**: frontmatter `description` 1100 chars → expect **fail** if limit 1024—fix text, don’t disable check.
|
|
72
|
+
- **Anti-pattern**: “We should mention skill X everywhere” → add **once** to README index + Dependencies of callers, not five duplicate paragraphs.
|
|
Binary file
|
package/package.json
CHANGED
|
Binary file
|
|
Binary file
|