@laitszkin/apollo-toolkit 3.8.3 → 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.
Files changed (27) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/align-project-documents/SKILL.md +49 -121
  3. package/analyse-app-logs/scripts/__pycache__/filter_logs_by_time.cpython-312.pyc +0 -0
  4. package/analyse-app-logs/scripts/__pycache__/log_cli_utils.cpython-312.pyc +0 -0
  5. package/analyse-app-logs/scripts/__pycache__/search_logs.cpython-312.pyc +0 -0
  6. package/commit-and-push/SKILL.md +52 -75
  7. package/develop-new-features/SKILL.md +53 -113
  8. package/docs-to-voice/scripts/__pycache__/docs_to_voice.cpython-312.pyc +0 -0
  9. package/enhance-existing-features/SKILL.md +59 -125
  10. package/generate-spec/SKILL.md +86 -197
  11. package/generate-spec/references/templates/checklist.md +33 -88
  12. package/generate-spec/scripts/__pycache__/create-specscpython-312.pyc +0 -0
  13. package/implement-specs/SKILL.md +47 -43
  14. package/implement-specs-with-subagents/SKILL.md +69 -165
  15. package/implement-specs-with-worktree/SKILL.md +53 -102
  16. package/katex/scripts/__pycache__/render_katex.cpython-312.pyc +0 -0
  17. package/maintain-project-constraints/SKILL.md +53 -105
  18. package/maintain-skill-catalog/SKILL.md +46 -42
  19. package/open-github-issue/scripts/__pycache__/open_github_issue.cpython-312.pyc +0 -0
  20. package/package.json +1 -1
  21. package/read-github-issue/scripts/__pycache__/find_issues.cpython-312.pyc +0 -0
  22. package/read-github-issue/scripts/__pycache__/read_issue.cpython-312.pyc +0 -0
  23. package/resolve-review-comments/scripts/__pycache__/review_threads.cpython-312.pyc +0 -0
  24. package/review-spec-related-changes/SKILL.md +49 -82
  25. package/solve-issues-found-during-review/SKILL.md +46 -106
  26. package/text-to-short-video/scripts/__pycache__/enforce_video_aspect_ratio.cpython-312.pyc +0 -0
  27. package/version-release/SKILL.md +52 -88
@@ -1,134 +1,85 @@
1
1
  ---
2
2
  name: implement-specs-with-worktree
3
3
  description: >-
4
- Read a specs planning set (spec.md, tasks.md, checklist.md, contract.md, design.md)
5
- from `docs/plans/{YYYY-MM-DD}/{change_name}/` or `docs/plans/{YYYY-MM-DD}/{batch_name}/{change_name}/`
6
- plus parent `coordination.md` and `preparation.md` when present, and implement
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`, `enhance-existing-features`, and `develop-new-features` for implementation standards.
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 `implement-specs`, `enhance-existing-features`, or `develop-new-features` is unavailable, stop and report the missing dependency.
15
+ - Fallback: If any required dependency skill is unavailable, **MUST** stop and report it.
23
16
 
24
- ## Standards
17
+ ## Non-negotiables
25
18
 
26
- - Evidence: Read and understand the complete specs set before starting implementation, including parent `coordination.md` and `preparation.md` when present, identify the authoritative parent branch that the worktree should inherit from, verify whether the requested scope is already implemented on that parent branch or current main working tree, and when the requested plan path is missing from the current worktree verify where the authoritative copy actually lives before substituting any nearby spec.
27
- - Execution: Create or use an isolated worktree for implementation only when the requested spec still needs work, sync the exact approved plan set into that worktree when it is missing there, create the worktree branch from the same parent branch as the worktree base, use the spec-set name as the canonical branch/worktree name, inspect sibling worktrees for the same batch before editing shared files when parallel implementations may already be active, prefer direct `git` ref checks over brittle shell inference when deciding whether a branch or worktree already exists, and commit to a local branch when done. Do not edit product files from the parent checkout; every implementation, test, and spec backfill change must happen inside the active worktree directory after verifying `git rev-parse --show-toplevel` and `pwd` point at the same worktree root.
28
- - Quality: Complete all planned tasks, run relevant tests, backfill the spec documents with actual completion status, avoid dragging unrelated sibling specs into the worktree just because they share a batch directory, inspect overlapping runtime/config/shared touch points before diverging from another active sibling worktree in the same batch, revert unrelated formatter-only noise outside the spec-owned scope before committing, if branch/worktree creation reports ambiguous state re-check the actual git refs and worktree list before retrying, and when using targeted Rust `cargo test` selectors remember Cargo accepts only one positional test filter so each distinct selector needs its own confirmed command.
29
- - Output: Keep the worktree branch clean with only the intended implementation commits.
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
- ## Goal
30
+ ## Standards (summary)
32
31
 
33
- Implement approved spec planning sets in an isolated git worktree, ensuring the parent working tree is never interrupted by in-progress work.
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
- ### 1) Identify and read the specs set
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
- Use $implement-specs for the standard spec discovery and reading workflow.
41
+ ### A) Specs and baseline
40
42
 
41
- Additionally:
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
- - When `preparation.md` exists in the parent batch directory, treat it as the already-completed prerequisite baseline for this spec; do not redo its tasks inside the member spec unless the preparation commit is missing or the document says the prerequisite remains blocked.
48
+ ### B) Worktree and branch
44
49
 
45
- ### 2) Check current worktree state
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
- - Run `git worktree list` to see existing worktrees and branches.
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
- ### 3) Create a new worktree if needed
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
- If not already in a worktree, or if the user explicitly requests a fresh worktree, and the spec is not already implemented:
67
+ ## Sample hints
67
68
 
68
- - Derive the canonical spec name from the requested `change_name` directory.
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 branch <branch-name> <parent-branch>
71
+ pwd && git rev-parse --show-toplevel
75
72
  ```
76
- - Add a new worktree:
73
+ - **Skeleton commands** (`change_name` `oauth-scope`, parent `feature/x`, type `feat`):
77
74
  ```bash
78
- git worktree add ../<spec-name> <branch-name>
75
+ git branch feat/oauth-scope feature/x
76
+ git worktree add ../oauth-scope feat/oauth-scope
77
+ cd ../oauth-scope
79
78
  ```
80
- - Move into the new worktree directory and begin work there.
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
- - `references/branch-naming.md`: branch naming conventions
133
- - `enhance-existing-features`: implementation standards for brownfield work
134
- - `develop-new-features`: implementation standards for new feature work
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
@@ -1,6 +1,9 @@
1
1
  ---
2
2
  name: maintain-project-constraints
3
- description: Create and maintain AGENTS.md/CLAUDE.md with the project's macro business goals, common development commands, and an index of all standardized project documentation under docs/. Use when AGENTS.md/CLAUDE.md is missing or may be outdated.
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
- ## Standards
18
+ ## Non-negotiables
16
19
 
17
- - Evidence: Infer project business goals and common commands from current code, configuration, and existing project documentation not assumptions.
18
- - Execution: Read the entire codebase or existing project docs before writing; create or update only after building a concrete inventory.
19
- - Quality: Remove stale commands, paths, and references; keep AGENTS.md/CLAUDE.md focused on the three required sections only.
20
- - Output: Maintain a concise root-level `AGENTS.md`/`CLAUDE.md` with common development commands, macro business goals, and a project documentation index.
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
- ## Goal
29
+ ## Standards (summary)
23
30
 
24
- Keep `AGENTS.md`/`CLAUDE.md` accurate and synchronized with the current state of the repository, focused on helping agents understand the project's purpose, navigate its documentation, and run common development tasks.
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
- ## Trigger Conditions
36
+ ## Triggers
27
37
 
28
- Invoke this skill when:
38
+ - Missing `AGENTS.md`/`CLAUDE.md`, post-change drift suspected, or after `align-project-documents` reshapes `docs/`.
29
39
 
30
- 1. `AGENTS.md` or `CLAUDE.md` does not exist.
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
- ## Required Output Format
42
+ **Chain-of-thought:** **`Pause →`** before writing each section—if a command is uncertain, grep config before committing text.
35
43
 
36
- `AGENTS.md`/`CLAUDE.md` must contain exactly three sections:
44
+ ### 1) Inventory
37
45
 
38
- ### 1. Common Development Commands
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
- - Include only commands that are real, current, and useful in this repository.
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
- ### 2. Project Business Goals
52
+ - Prefer `README` + `docs/features/` tone; else infer from user-facing entrypoints—still **product-level sentences**, not file lists.
47
53
 
48
- - Describe the project's macro business purpose: what problem it solves, what outcome it aims to achieve, who it serves.
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
- ### 3. Project Documentation Index
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
- - List all standardized project documentation files under `docs/`.
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
- ### Template Example
61
+ - One line per file: `path — short purpose`. Mirror reality; drop deleted; add new.
60
62
 
61
- ```markdown
62
- ## Common Development Commands
63
+ ### 5) Verification
63
64
 
64
- - `npm test` run the test suite.
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
- ## Project Business Goals
67
+ ## Sample hints
69
68
 
70
- This project enables users to manage and run reusable automation workflows.
71
- It solves the problem of scattered, inconsistent automation scripts by providing a unified catalog of versioned, validated skills.
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
- ## Project Documentation Index
75
+ ## Template sketch
74
76
 
75
- ### Features (`docs/features/`)
77
+ ```markdown
78
+ ## Common Development Commands
79
+ - `…` — …
76
80
 
77
- - `docs/features/skill-management.md` skill creation, editing, and lifecycle management
78
- - `docs/features/validation.md` — skill and configuration validation workflows
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: Audit and maintain a repository of installable skills so the catalog stays internally consistent. Use when users ask to standardize `SKILL.md` structure across many skills, classify internal vs external skill dependencies, sync skill lists and external dependency docs, extract shared workflows into new skills, or fix catalog-wide validation/agent-config issues.
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 splitting a repeated workflow into a new shared skill or significantly reshaping an existing skill.
13
- - Fallback: If an external dependency cannot be verified, leave it undocumented rather than guessing the package name or install command.
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
- ## Standards
18
+ ## Non-negotiables
16
19
 
17
- - Evidence: Read the actual skill folders, validation scripts, repository docs, and local installed skill names before changing dependency classifications or catalog docs.
18
- - Execution: Audit first, classify findings, make focused catalog updates, then run the repo validators before finishing.
19
- - Quality: Avoid duplicate skills, avoid rewording behavior without checking the implementation, distinguish aliases or local unpublished skills from true external dependencies, and enforce the repository's current metadata constraints such as `SKILL.md` frontmatter validity, description-length limits, and synchronized agent configs.
20
- - Output: Leave the catalog with synchronized skill metadata, dependency documentation, and validation status.
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
- ## Goal
28
+ ## Standards (summary)
23
29
 
24
- Keep a skill repository coherent when many top-level skills evolve together.
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
- ### 1) Inventory the catalog before editing
37
+ **Chain-of-thought:** Answer **`Pause →`** before moving to the next subsection; validator red **MUST** block “done.”
29
38
 
30
- - List the tracked top-level skill directories and read the relevant `SKILL.md` files before deciding that a new skill is needed.
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
- ### 2) Audit dependency declarations and shared conventions
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
- - Use the standardized `## Dependencies` section as the source of truth for skill-to-skill relationships.
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
- ### 3) Update catalog docs and skill metadata carefully
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
- - Keep edits minimal and repo-wide only where necessary.
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
- ### 4) Validate the catalog after changes
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
- - Run:
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
- ### 5) Record conclusions explicitly
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
- - Summarize which skills were audited, which conventions were updated, and which dependencies were confirmed as external.
67
- - Call out any unresolved unknowns, such as an external dependency whose install source could not be verified.
68
- - When a user correction changes the catalog rules, encode that rule in the skill or repository docs so the same mistake does not recur.
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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@laitszkin/apollo-toolkit",
3
- "version": "3.8.3",
3
+ "version": "3.9.0",
4
4
  "description": "Apollo Toolkit npm installer for managed skill copying across Codex, OpenClaw, and Trae.",
5
5
  "license": "MIT",
6
6
  "author": "LaiTszKin",