@laitszkin/apollo-toolkit 2.14.0 → 2.14.2

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 CHANGED
@@ -4,6 +4,23 @@ All notable changes to this repository are documented in this file.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [v2.14.2] - 2026-04-06
8
+
9
+ ### Changed
10
+ - Rewire `merge-changes-from-local-branches` so its final local-branch submission stage is handed to `commit-and-push`, which now owns the shared changelog/readiness/archival flow after merges.
11
+ - Rework `archive-specs` so documentation alignment is delegated to `align-project-documents` and `maintain-project-constraints` before completed plan sets are archived.
12
+ - Clarify that `commit-and-push` and `version-release` depend directly on `archive-specs` for completed plan conversion and project-doc alignment, instead of duplicating downstream documentation-sync steps.
13
+
14
+ ## [v2.14.1] - 2026-04-06
15
+
16
+ ### Changed
17
+ - Tighten `merge-changes-from-local-branches` so it inspects branch divergence before merging, resolves conflicts by composing verified behavior instead of relying on blanket `-X ours/theirs` or timestamp heuristics, and requires targeted verification after conflictful merges.
18
+
19
+ ### Fixed
20
+ - Add missing `agents/openai.yaml` metadata for `merge-changes-from-local-branches` and `implement-specs-with-worktree` so repository agent-config validation passes and both skills expose UI metadata consistently.
21
+
22
+ ## [v2.14.0] - 2026-04-05
23
+
7
24
  ### Added
8
25
  - Add `agents` install mode to CLI and installer, aligning npm-based CLI with shell script capabilities.
9
26
  - Add `implement-specs-with-worktree` skill for implementing specs in isolated git worktrees.
@@ -7,7 +7,7 @@ description: Convert completed project plan sets into maintainable project docum
7
7
 
8
8
  ## Dependencies
9
9
 
10
- - Required: none.
10
+ - Required: `align-project-documents` to align repository docs with current code before archiving, and `maintain-project-constraints` to synchronize `AGENTS.md` after the doc update.
11
11
  - Conditional: none.
12
12
  - Optional: none.
13
13
  - Fallback: not applicable.
@@ -15,9 +15,9 @@ description: Convert completed project plan sets into maintainable project docum
15
15
  ## Standards
16
16
 
17
17
  - Evidence: Treat code, config, deployment files, and current spec files as evidence sources; never guess when a detail is missing.
18
- - Execution: Inventory all relevant specs first, reconcile them with the current repository, then generate or update standardized docs from the provided templates.
18
+ - Execution: Inventory all relevant specs first, reconcile them with the current repository, use `align-project-documents` to update durable project docs, use `maintain-project-constraints` to refresh `AGENTS.md` when repository guidance changed, then archive only the truly consumed planning artifacts.
19
19
  - Quality: Prefer source-of-truth behavior over stale plan text, align existing docs to the same standard structure, and call out unknowns explicitly instead of inventing missing setup details.
20
- - Output: Produce a concise `README.md` plus a categorized project-doc set, then archive or remove superseded spec files after the conversion is complete.
20
+ - Output: Produce synchronized durable docs (`README.md`, categorized project docs, and `AGENTS.md` when needed), then archive or remove superseded spec files after the conversion is complete.
21
21
 
22
22
  ## Goal
23
23
 
@@ -44,6 +44,7 @@ Convert completed planning artifacts into stable, standardized project documenta
44
44
 
45
45
  ### 3) Standardize existing project docs into categorized outputs
46
46
 
47
+ - Hand the documentation rewrite/alignment work to `align-project-documents`; use the templates below only as the target shape and evidence checklist.
47
48
  - If the project already has `README.md`, handbooks, setup guides, architecture docs, or runbooks, rewrite or reorganize them so they follow this skill's standardized split-document structure instead of leaving mixed formats in place.
48
49
  - Use `references/templates/readme.md` for the concise project introduction.
49
50
  - Use `references/templates/docs-index.md` for the project documentation index and reference list.
@@ -85,6 +86,7 @@ Ensure the split project docs cover all of the following:
85
86
  - `docs/README.md` should act as the reference list for the categorized docs.
86
87
  - Each category doc should stay focused on one topic instead of acting like another monolithic handbook.
87
88
  - Remove template placeholders and stale planning language before finishing.
89
+ - After the docs are aligned, run `maintain-project-constraints` whenever the documentation changes imply `AGENTS.md` needs to reflect updated workflows, commands, or repository capabilities.
88
90
 
89
91
  ### 7) Archive superseded spec files after successful conversion
90
92
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: commit-and-push
3
- description: "Guide the agent to submit local changes with commit and push only (no versioning). Use when users ask to commit, submit, or push changes without requesting tag/version/release operations. During submission, run `archive-specs` to convert completed spec sets into project documentation and archive the consumed plans, and also use it when existing project docs do not match the standardized project-doc structure."
3
+ description: "Guide the agent to submit local changes with commit and push only (no versioning). Use when users ask to commit, submit, or push changes without requesting tag/version/release operations. Depend directly on `archive-specs` when completed plan sets should become durable docs or when project docs need alignment, and let that skill own the downstream documentation synchronization work."
4
4
  ---
5
5
 
6
6
  # Commit and Push
@@ -8,14 +8,14 @@ description: "Guide the agent to submit local changes with commit and push only
8
8
  ## Dependencies
9
9
 
10
10
  - Required: `submission-readiness-check` before the final commit.
11
- - Conditional: `review-change-set` is required for code-affecting changes; `discover-edge-cases` and `harden-app-security` are important review gates that remain conditional, but become required whenever the reviewed scope or risk profile warrants them.
11
+ - Conditional: `archive-specs` when completed plan sets should be converted or repository docs need alignment; `review-change-set` is required for code-affecting changes; `discover-edge-cases` and `harden-app-security` are important review gates that remain conditional, but become required whenever the reviewed scope or risk profile warrants them.
12
12
  - Optional: none.
13
13
  - Fallback: If any required dependency is unavailable, stop and report the missing dependency.
14
14
 
15
15
  ## Standards
16
16
 
17
17
  - Evidence: Inspect git state and classify the change set before deciding which quality gates apply, then compare the actual pending diff against root `CHANGELOG.md` `Unreleased` before committing.
18
- - Execution: Run the required quality-gate skills when applicable, and treat every conditional gate whose scenario is met as blocking before submission; hand the repository to `submission-readiness-check` for changelog/docs/plan finalization, preserve staging intent, honor any explicit user-specified target branch, and when the worktree is already clean inspect local `HEAD`, upstream state, and the most recent relevant commit before deciding the request is a no-op; when worktree-based delivery is involved, verify where the authoritative target branch lives before moving history, re-validate on that target branch after replay or merge, and remove the temporary worktree only after the target branch is safely updated; then commit and push without release steps; run dependent git mutations sequentially and verify the remote branch actually contains the new local `HEAD` before reporting success.
18
+ - Execution: Run the required quality-gate skills when applicable, and treat every conditional gate whose scenario is met as blocking before submission; hand the repository to `submission-readiness-check` for readiness classification, invoke `archive-specs` directly whenever completed plan sets should be converted or project docs need alignment, preserve staging intent, honor any explicit user-specified target branch, and when the worktree is already clean inspect local `HEAD`, upstream state, and the most recent relevant commit before deciding the request is a no-op; when worktree-based delivery is involved, verify where the authoritative target branch lives before moving history, re-validate on that target branch after replay or merge, and remove the temporary worktree only after the target branch is safely updated; then commit and push without release steps; run dependent git mutations sequentially and verify the remote branch actually contains the new local `HEAD` before reporting success.
19
19
  - Quality: Re-run relevant validation for runtime changes, preserve unrelated local work safely when branch switching or post-push local sync is required, and do not bypass blocking readiness findings such as missing/stale `Unreleased` bullets or unsynchronized project docs.
20
20
  - Output: Produce a concise Conventional Commit, push it to the intended branch, and report any temporary stash/restore or local branch sync that was required.
21
21
 
@@ -61,10 +61,11 @@ Load only when needed:
61
61
  - Re-run relevant tests when runtime logic changes.
62
62
  5. Run shared submission readiness
63
63
  - Execute `$submission-readiness-check` after code/doc scans are complete and before the final commit.
64
- - Let it decide whether completed plan sets should be converted, whether project docs or `AGENTS.md` need synchronization, and whether `CHANGELOG.md` is blocking submission.
64
+ - Let it decide whether completed plan sets should be converted, whether project docs need alignment through `archive-specs`, and whether `CHANGELOG.md` is blocking submission.
65
65
  - Do not continue to commit while `submission-readiness-check` reports unresolved readiness blockers.
66
66
  - Treat root `CHANGELOG.md` `Unreleased` coverage as mandatory for code-affecting or user-visible changes: if the current work is not reflected there yet, update it before committing instead of merely noting the gap.
67
67
  - Re-open the final `CHANGELOG.md` diff after readiness updates and confirm the `Unreleased` bullets describe the same scope as the commit you are about to create.
68
+ - When readiness indicates doc conversion or project-doc drift, run `archive-specs` before the final commit instead of duplicating documentation alignment work locally.
68
69
  6. Commit
69
70
  - Preserve user staging intent where possible.
70
71
  - Write a concise Conventional Commit message using `references/commit-messages.md`.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Implement Specs with Worktree"
3
+ short_description: "Implement an approved spec set inside an isolated git worktree"
4
+ default_prompt: "Use $implement-specs-with-worktree to read the full plan set under docs/plans, create or reuse an isolated git worktree, implement all approved tasks with the required tests, backfill completion status into the planning docs, and commit the result to the local worktree branch without affecting main."
@@ -4,26 +4,28 @@ description: >-
4
4
  Read changes from all local git branches and merge them into the local main
5
5
  branch. When conflicts arise, auto-resolve them by keeping correct functionality
6
6
  (preferring the more recent change on the same line, or the change that preserves
7
- working behavior). Commit the merged result to local main without pushing to
8
- remote. Use when the user asks to consolidate local branch work, merge all
9
- changes into main, or prepare local branches for integration.
7
+ working behavior). Hand the final merged local branch state to `commit-and-push`
8
+ so the commit workflow can handle changelog/readiness steps and any required
9
+ spec archival before the work is considered complete. Use when the user asks
10
+ to consolidate local branch work, merge all changes into main, or prepare local
11
+ branches for integration.
10
12
  ---
11
13
 
12
14
  # Merge Changes from Local Branches
13
15
 
14
16
  ## Dependencies
15
17
 
16
- - Required: none (uses native git commands).
18
+ - Required: `commit-and-push` for the final local-branch submission flow after merge verification.
17
19
  - Conditional: none.
18
- - Optional: `commit-and-push` if commit message guidance is needed.
20
+ - Optional: none.
19
21
  - Fallback: If git operations fail, stop and report the error.
20
22
 
21
23
  ## Standards
22
24
 
23
- - Evidence: Inspect all local branches and their changes before merging.
24
- - Execution: Merge each branch into main, auto-resolve conflicts to preserve functionality, and commit the result.
25
- - Quality: Ensure the final merged state is functional with no broken code.
26
- - Output: Produce a clean main branch with all local changes integrated.
25
+ - Evidence: Inspect the current branch state, local branches, ahead/behind status, and actual conflicting files before deciding what to merge.
26
+ - Execution: Merge only the relevant local branches into `main` sequentially, resolve conflicts by reading both sides and editing the merged result to preserve shipped behavior, verify the merged state, then hand the final local branch state to `commit-and-push` so commit/changelog/spec-archival work happens through the shared submission workflow.
27
+ - Quality: Never use blanket timestamp rules or default `-X ours/theirs` conflict resolution as the primary merge strategy, and do not declare success until the final `main` state has been checked and verified.
28
+ - Output: Produce a clean local main branch with all local changes integrated and ready for the shared submit workflow.
27
29
 
28
30
  ## Goal
29
31
 
@@ -34,6 +36,8 @@ Consolidate all local branch changes into the local main branch with automatic c
34
36
  ### 1) Inventory all local branches
35
37
 
36
38
  - Run `git branch` to list all local branches.
39
+ - Check the current branch with `git branch --show-current` and capture `git status -sb`.
40
+ - Compare each candidate branch against `main` with `git log --oneline main..branch`, `git diff --stat main...branch`, or equivalent evidence so empty or already-merged branches are skipped.
37
41
  - For each branch, note:
38
42
  - Branch name
39
43
  - Commits ahead of main
@@ -41,11 +45,9 @@ Consolidate all local branch changes into the local main branch with automatic c
41
45
 
42
46
  ### 2) Ensure clean state on main
43
47
 
44
- - Check `git status` on main branch.
45
- - If there are uncommitted changes on main, stash them:
46
- ```bash
47
- git stash push -m "WIP: temporary stash before branch merging"
48
- ```
48
+ - Check `git status` on `main`.
49
+ - If `main` has uncommitted changes that are unrelated to the merge request, stop and report them instead of stashing automatically.
50
+ - Only proceed once you can state which branch or branches actually need to be merged.
49
51
 
50
52
  ### 3) Merge branches sequentially
51
53
 
@@ -62,19 +64,14 @@ For each local branch (excluding main):
62
64
  ```
63
65
 
64
66
  3. If conflicts occur, resolve them automatically using these rules:
65
- - **Same line, different content**: Prefer the change with:
66
- - More recent timestamp, OR
67
- - The change that preserves existing functionality (analyze context to determine which branch's change maintains correct behavior)
68
- - **File deleted in one branch, modified in another**: Keep the modification unless the deletion is explicitly required for the feature
69
- - **Both branches modified same file differently**: Keep both sets of changes if non-overlapping; if overlapping, use the more recent change
70
- - **Test files conflicting**: Keep both test cases unless they test mutually exclusive behaviors
71
-
72
- Auto-resolve using git's merge strategies:
73
- ```bash
74
- git merge -X ours <branch-name> # Prefer main's version for conflicts
75
- git merge -X theirs <branch-name> # Prefer the merged branch's version
76
- ```
77
- Or manually edit conflicted files and:
67
+ - Read the conflict markers and both parent versions before editing.
68
+ - **Same line, different content**: keep the version that matches the intended post-merge behavior, not simply the newer edit.
69
+ - **File deleted in one branch, modified in another**: keep the version supported by current code references and tests; do not silently drop reachable code.
70
+ - **Both branches modified the same file differently**: preserve both changes when they are compatible; if they overlap, manually compose a merged result that keeps the verified logic from both sides.
71
+ - **Test files conflicting**: preserve coverage for both behaviors unless one assertion is now obsolete by verified implementation changes.
72
+ - Use `-X ours` / `-X theirs` only for a narrowly justified conflict after reading the actual content; never use those flags as the default merge strategy.
73
+
74
+ After resolving files:
78
75
  ```bash
79
76
  git add <resolved-files>
80
77
  ```
@@ -82,7 +79,8 @@ For each local branch (excluding main):
82
79
  4. If auto-resolution is ambiguous, prefer the change that:
83
80
  - Does not break existing tests
84
81
  - Preserves the documented feature intent
85
- - Keeps more recent bug fixes
82
+ - Aligns with the code currently shipped on the source branch
83
+ - Minimizes hidden semantic drift between the merged modules
86
84
 
87
85
  5. Complete the merge:
88
86
  ```bash
@@ -91,46 +89,48 @@ For each local branch (excluding main):
91
89
 
92
90
  ### 4) Verify merged state
93
91
 
94
- - Run relevant tests to ensure nothing is broken:
92
+ - After each conflictful merge, run the most relevant targeted tests or build checks for the files that changed.
93
+ - After all merges complete, run the repository's broader validation command when one exists:
95
94
  ```bash
96
- # Run tests if a test command exists
97
95
  npm test # or yarn test, cargo test, etc.
98
96
  ```
99
- - If tests fail, investigate and fix the conflict resolution.
100
-
101
- ### 5) Commit the merged result
97
+ - If verification fails, fix the merged state on `main` before proceeding.
102
98
 
103
- The merge commits already serve as commits. If additional staging is needed:
99
+ ### 5) Hand off the merged result for shared submission handling
104
100
 
105
- ```bash
106
- git status
107
- git add -A
108
- git commit --amend --no-edit # Amend the last merge commit if needed
109
- ```
101
+ - Once merge verification passes, invoke `commit-and-push` for the authoritative local branch so the final submission flow owns:
102
+ - `CHANGELOG.md` readiness
103
+ - any required `archive-specs` run
104
+ - the final commit creation on the local target branch
105
+ - Do not duplicate commit-message, changelog, or spec-archival logic inside this skill.
106
+ - If a follow-up fix is required after verification, make that fix on `main` before handing off to `commit-and-push`.
110
107
 
111
108
  ### 6) Report completion
112
109
 
113
110
  - List all branches that were merged.
111
+ - List any branches intentionally skipped because they were already merged, empty, or out of scope.
114
112
  - Confirm main is updated with all changes.
115
113
  - Note any conflicts that were resolved and the rationale.
116
- - Confirm no remote push was performed.
114
+ - Report the verification commands that were run.
115
+ - Confirm whether the workflow stopped at the local commit boundary or continued into a remote push because the user explicitly requested it.
117
116
 
118
117
  ## Working Rules
119
118
 
120
119
  - Never force-push; use only merge or rebase with merge.
121
120
  - Prefer preserving functionality over keeping either branch's exact changes.
122
- - Do not push to remote this skill only merges to local main.
121
+ - Do not push to remote from this skill directly; let `commit-and-push` own any later publish step only when the user explicitly requests it.
123
122
  - If a branch contains no meaningful changes (empty merge), skip it.
124
123
  - Keep the main branch history clean and readable.
125
124
  - If a branch's merge breaks tests, resolve the conflict differently before committing.
125
+ - Do not stash or discard unrelated work automatically; stop when the working tree state makes the merge ambiguous.
126
126
 
127
127
  ## Conflict Resolution Examples
128
128
 
129
129
  | Scenario | Resolution Strategy |
130
130
  |----------|---------------------|
131
- | Same line, main has older change | Keep branch's change |
132
- | Same line, branch has older change | Keep main's change |
133
- | File deleted in branch, modified in main | Keep main's modification |
131
+ | Same line, both branches changed behavior | Read both code paths and compose the merged logic that preserves the verified invariant |
132
+ | Same line, one branch is a bug fix and the other is a refactor | Keep the bug fix and reapply the compatible refactor structure manually if needed |
133
+ | File deleted in branch, modified in main | Keep the version supported by current references/tests and remove only if the deletion is proven correct |
134
134
  | Both added same function differently | Keep both; rename if needed |
135
135
  | Config file conflict | Keep both values if non-overlapping |
136
136
  | Test file conflict | Keep both test cases |
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Merge Changes from Local Branches"
3
+ short_description: "Merge relevant local branches into main with verified conflict resolution"
4
+ default_prompt: "Use $merge-changes-from-local-branches to inventory local branches, merge only the relevant ones into local main, resolve conflicts by reading and composing the correct behavior instead of relying on blanket merge strategies, run targeted verification after conflictful merges, and leave remote state untouched."
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@laitszkin/apollo-toolkit",
3
- "version": "2.14.0",
3
+ "version": "2.14.2",
4
4
  "description": "Apollo Toolkit npm installer for managed skill copying across Codex, OpenClaw, and Trae.",
5
5
  "license": "MIT",
6
6
  "author": "LaiTszKin",
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: version-release
3
- description: "Guide the agent to prepare and publish a versioned release (version bump, changelog, tag, GitHub release, and push). Use only when users explicitly request version/tag/release work. Before finalizing the release, run `archive-specs` to convert completed spec sets into project documentation and archive the consumed plans, and also use it when existing project docs do not match the standardized project-doc structure."
3
+ description: "Guide the agent to prepare and publish a versioned release (version bump, changelog, tag, GitHub release, and push). Use only when users explicitly request version/tag/release work. Depend directly on `archive-specs` when completed plan sets should become durable docs or when project docs need alignment, and let that skill own the downstream documentation synchronization work."
4
4
  ---
5
5
 
6
6
  # Version Release
@@ -8,14 +8,14 @@ description: "Guide the agent to prepare and publish a versioned release (versio
8
8
  ## Dependencies
9
9
 
10
10
  - Required: `submission-readiness-check` before version metadata edits, tagging, or release publication.
11
- - Conditional: `review-change-set` is required for code-affecting releases before metadata edits and the final commit; `discover-edge-cases` and `harden-app-security` are important review gates that remain conditional, but become required whenever the reviewed scope or risk profile warrants them.
11
+ - Conditional: `archive-specs` when completed plan sets should be converted or repository docs need alignment; `review-change-set` is required for code-affecting releases before metadata edits and the final commit; `discover-edge-cases` and `harden-app-security` are important review gates that remain conditional, but become required whenever the reviewed scope or risk profile warrants them.
12
12
  - Optional: none.
13
13
  - Fallback: If a required release dependency is unavailable, stop and report the missing dependency.
14
14
 
15
15
  ## Standards
16
16
 
17
17
  - Evidence: Inspect the active change set, current version files, existing tag format, existing remote tags/releases, and root `CHANGELOG.md` `Unreleased` content before touching version files, tags, or release metadata.
18
- - Execution: Use this workflow only for explicit release intent, run the required quality gates when applicable, and treat every conditional gate whose scenario is met as blocking before versioning or publication; hand the repository to `submission-readiness-check` before versioning work, and if the worktree is already clean inspect the current version, local/remote tag state, and existing GitHub release state before deciding whether the request is already satisfied; then cut the release directly from `CHANGELOG.md` `Unreleased`, update versions and docs, commit, tag, push, and publish the GitHub release with actual release tooling rather than PR-surrogate directives; run git mutations sequentially and verify both the branch tip and release tag exist remotely before publishing the GitHub release.
18
+ - Execution: Use this workflow only for explicit release intent, run the required quality gates when applicable, and treat every conditional gate whose scenario is met as blocking before versioning or publication; hand the repository to `submission-readiness-check` before versioning work, invoke `archive-specs` directly whenever completed plan sets should be converted or project docs need alignment, and if the worktree is already clean inspect the current version, local/remote tag state, and existing GitHub release state before deciding whether the request is already satisfied; then cut the release directly from `CHANGELOG.md` `Unreleased`, update versions and docs, commit, tag, push, and publish the GitHub release with actual release tooling rather than PR-surrogate directives; run git mutations sequentially and verify both the branch tip and release tag exist remotely before publishing the GitHub release.
19
19
  - Quality: Never guess versions, align user-facing docs with actual code, do not bypass readiness blockers from `submission-readiness-check`, do not reconstruct release notes from `git diff` when curated changelog content already exists, and do not report release success until the commit, tag, and GitHub release all exist for the same version.
20
20
  - Output: Produce a versioned release commit and tag, publish a matching GitHub release, and keep changelog plus relevant repository documentation synchronized.
21
21
 
@@ -61,8 +61,9 @@ Load only when needed:
61
61
  - Resolve all confirmed findings before changing version files, tags, or release metadata.
62
62
  4. Run shared submission readiness
63
63
  - Execute `$submission-readiness-check` before version file edits, tags, or release publication.
64
- - Let it decide whether completed plan sets should be archived, whether project docs or `AGENTS.md` need synchronization, and whether `CHANGELOG.md` `Unreleased` is ready to be cut into a versioned release entry.
64
+ - Let it decide whether completed plan sets should be converted, whether project docs need alignment through `archive-specs`, and whether `CHANGELOG.md` `Unreleased` is ready to be cut into a versioned release entry.
65
65
  - Do not continue while `submission-readiness-check` reports unresolved blockers.
66
+ - When readiness indicates completed-spec conversion or project-doc drift, run `archive-specs` before version edits instead of reproducing documentation alignment inside the release workflow.
66
67
  5. Decide version and tag format
67
68
  - Read existing version files (for example `project.toml`, `package.json`, or repo-specific version files).
68
69
  - Infer existing tag format (`vX.Y.Z` or `X.Y.Z`) from repository tags.