@laitszkin/apollo-toolkit 2.14.9 → 2.14.11

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,18 @@ All notable changes to this repository are documented in this file.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [v2.14.11] - 2026-04-09
8
+
9
+ ### Changed
10
+ - Re-scope `merge-changes-from-local-branches` so it merges only verified child branches that forked from the current branch, and lands the result back onto that same current branch instead of sweeping all local branches into `main`.
11
+ - Require `merge-changes-from-local-branches` to run `archive-specs` after merge verification so completed plan sets are archived and durable project docs are synchronized before `commit-and-push` creates the final current-branch submission.
12
+
13
+ ## [v2.14.10] - 2026-04-09
14
+
15
+ ### Changed
16
+ - Strengthen `generate-spec` coordination guidance and template so parallel worktree batches must record file ownership guardrails, shared API or schema freeze rules, compatibility-shim retention rules, and post-merge integration checkpoints that reduce functional merge conflicts.
17
+ - Update `implement-specs-with-worktree` so engineers executing batch specs must treat those `coordination.md` guardrails as blocking constraints during implementation instead of optional notes.
18
+
7
19
  ## [v2.14.9] - 2026-04-08
8
20
 
9
21
  ### Changed
@@ -84,7 +84,7 @@ docs/plans/<today>/membership-cutover/
84
84
  - `checklist.md`: use `- [ ]` only, adapt items to real scope, and record actual results.
85
85
  - `contract.md`: when external dependencies materially shape the change, record their official-source-backed invocation surface, constraints, and caller obligations in the standard dependency-record format.
86
86
  - `design.md`: record the architecture/design delta in the standard format, including affected modules, flow, invariants, tradeoffs, and validation plan.
87
- - `coordination.md`: for multi-spec batches only, record shared preparation, ownership boundaries, replacement direction, merge order, and cross-spec integration checkpoints, but never use it to make one spec depend on another spec's implementation before it can be completed.
87
+ - `coordination.md`: for multi-spec batches only, record shared preparation, ownership boundaries, replacement direction, file ownership guardrails, shared API/schema freeze or additive-only rules, compatibility-shim retention rules, merge order, and cross-spec integration checkpoints, but never use it to make one spec depend on another spec's implementation before it can be completed.
88
88
  - If clarification responses change the plan, update the docs and obtain approval again before coding.
89
89
 
90
90
  ## Notes
@@ -104,6 +104,11 @@ Own the shared planning-doc lifecycle for feature work so other skills can reuse
104
104
  - Record shared fields, shared contracts, or shared data-shape preparation that multiple spec sets must align on before implementation starts.
105
105
  - When one spec set replaces or removes legacy behavior, state that direction explicitly so all worktrees implement toward the same target rather than preserving the old behavior accidentally.
106
106
  - Capture which spec set may touch which modules, which files require coordination, and whether any landing order or cutover sequence must be respected.
107
+ - Treat `coordination.md` as a merge-conflict prevention contract, not just a planning summary.
108
+ - Record the concrete file ownership map, forbidden touch points, and shared files that require explicit coordination before edits begin.
109
+ - For shared APIs, event schemas, config shapes, manifests, or artifact fields, record whether changes are additive-only during the batch and which spec set owns the canonical naming.
110
+ - When temporary compatibility shims, adapters, or legacy bridges must survive until the whole batch lands, record that retention rule explicitly so one worktree does not remove a path another still depends on.
111
+ - Record the post-merge integration checkpoints that must be re-verified after multiple worktrees land, especially when text merges may succeed while behavior still drifts.
107
112
  - If the batch still needs a recommended merge order, make that order operationally convenient rather than functionally required for any single spec to work correctly.
108
113
  - Keep single-spec concerns in that spec's own `design.md`; reserve `coordination.md` for batch-wide rules only.
109
114
 
@@ -148,6 +153,7 @@ Own the shared planning-doc lifecycle for feature work so other skills can reuse
148
153
  - When a request exceeds that scope, split it into independent, non-conflicting, non-dependent spec sets before approval.
149
154
  - For batch specs, independence is mandatory: each spec must describe a complete slice that can be implemented, tested, reviewed, and merged without waiting for another spec in the same batch.
150
155
  - When multiple spec sets are created for one batch, keep their shared implementation direction in one `coordination.md` instead of duplicating cross-spec rules in every `design.md`.
156
+ - For parallel worktree batches, make `coordination.md` specific enough that another engineer can tell which files they may edit, which shared contracts are frozen or additive-only, which shims must remain in place, and what combined behaviors need verification after merge.
151
157
  - Prefer realistic coverage over boilerplate: add or remove checklist items based on actual risk.
152
158
  - When external dependencies materially shape the change, `contract.md` is required and must capture the official-source-backed contract in the standardized record format.
153
159
  - `design.md` is required and must describe the architecture/design delta for the spec in the standardized format, even when the final design is intentionally minimal.
@@ -48,6 +48,9 @@
48
48
 
49
49
  ## Conflict Boundaries
50
50
  - Shared files requiring coordination: [file/module list or `None`]
51
+ - File ownership / edit guardrails: [which spec set owns which shared files or `None`]
52
+ - Shared API / schema freeze: [frozen owner + additive-only rule, or `None`]
53
+ - Compatibility shim retention rules: [which adapters/flags/tests must remain until batch completion, or `None`]
51
54
  - Merge order / landing order: [independent / optional convenience order only, never a functional prerequisite]
52
55
  - Worktree notes: [branch naming, rebase expectations, or `None`]
53
56
 
@@ -75,6 +75,7 @@ Use branch naming from `references/branch-naming.md`.
75
75
  - Verify latest authoritative docs for involved stacks/integrations.
76
76
  - When `coordination.md` exists, respect its shared-field preparation, legacy-replacement direction, and allowed touch-point boundaries before editing.
77
77
  - Implement each task in `tasks.md` systematically.
78
+ - When `coordination.md` defines file ownership guardrails, additive-only shared-contract rules, or compatibility-shim retention requirements, treat them as blocking execution constraints rather than optional guidance.
78
79
  - For each implemented change, add appropriate tests:
79
80
  - Unit tests for changed logic
80
81
  - Regression tests for bug-prone behavior
@@ -119,6 +120,7 @@ After implementation and testing:
119
120
  - Complete all planned tasks before committing; do not stop with partial work.
120
121
  - Treat the specs as the source of truth for scope — do not deviate without user approval.
121
122
  - When `coordination.md` exists, treat it as the source of truth for batch-level ownership and cutover direction.
123
+ - Never remove a shared shim, rename a shared field, or rewrite a shared file outside the ownership map unless `coordination.md` explicitly allows that change or the user approves a coordination update first.
122
124
  - Follow the testing standards from `enhance-existing-features` and `develop-new-features`.
123
125
  - Do not push to remote unless the user explicitly requests it.
124
126
 
@@ -1,76 +1,84 @@
1
1
  ---
2
2
  name: merge-changes-from-local-branches
3
3
  description: >-
4
- Read changes from all local git branches and merge them into the local main
5
- branch. When conflicts arise, auto-resolve them by keeping correct functionality
6
- (preferring the more recent change on the same line, or the change that preserves
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.
4
+ Read changes from local child branches that forked from the current local
5
+ branch and merge them back into that same branch. When conflicts arise,
6
+ auto-resolve them by keeping correct functionality (preferring the more recent
7
+ change on the same line, or the change that preserves working behavior). Run
8
+ `archive-specs` after merge verification so completed plan sets are archived
9
+ and durable project docs are synchronized, then hand the current branch state
10
+ to `commit-and-push` so the final submit workflow commits and pushes on that
11
+ same local branch. Use when the user asks to consolidate child-branch work,
12
+ merge branches branched from the current branch, or prepare the current branch
13
+ for integration.
12
14
  ---
13
15
 
14
16
  # Merge Changes from Local Branches
15
17
 
16
18
  ## Dependencies
17
19
 
18
- - Required: `commit-and-push` for the final local-branch submission flow after merge verification.
20
+ - Required: `archive-specs` to archive completed plan sets and synchronize durable project docs after merge verification, and `commit-and-push` for the final current-branch submission flow.
19
21
  - Conditional: none.
20
22
  - Optional: none.
21
23
  - Fallback: If git operations fail, stop and report the error.
22
24
 
23
25
  ## Standards
24
26
 
25
- - Evidence: Inspect the current branch state, local branches, ahead/behind status, actual conflicting files, and any active batch-spec `coordination.md` merge-order guidance before deciding what to merge.
26
- - Execution: Merge only the relevant local branches into `main` sequentially, read any active batch-spec `coordination.md` and honor its documented merge order when present, resolve conflicts by reading both sides and editing the merged result to preserve shipped behavior, verify the merged state, delete each successfully merged branch and its detached worktree only after the merged result is confirmed, 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
+ - Evidence: Inspect the original current branch, local branches, ahead/behind status, verified child-branch ancestry, actual conflicting files, and any active batch-spec `coordination.md` merge-order guidance before deciding what to merge.
28
+ - Execution: Merge only the relevant child branches that verifiably forked from the original current branch back into that same branch, read any active batch-spec `coordination.md` and honor its documented merge order when present, resolve conflicts by reading both sides and editing the merged result to preserve shipped behavior, verify the merged state, delete each successfully merged child branch and its detached worktree only after the merged result is confirmed, run `archive-specs` so completed plan sets are archived and durable docs are synchronized, then hand the final current-branch state to `commit-and-push` so changelog/readiness/commit/push work happens through the shared submission workflow on the same branch.
29
+ - Quality: Never use blanket timestamp rules or default `-X ours/theirs` conflict resolution as the primary merge strategy, never infer branch parentage without git evidence, and do not declare success until the final current-branch state has been checked, verified, and cleared for post-merge archival/doc-sync work.
30
+ - Output: Produce a clean current branch with all relevant child-branch changes integrated and ready for the shared submit workflow.
29
31
 
30
32
  ## Goal
31
33
 
32
- Consolidate all local branch changes into the local main branch with automatic conflict resolution that preserves correct functionality.
34
+ Consolidate verified child-branch changes back into the original current branch with automatic conflict resolution that preserves correct functionality.
33
35
 
34
36
  ## Workflow
35
37
 
36
- ### 1) Inventory all local branches
38
+ ### 1) Inventory the current branch and in-scope child branches
37
39
 
38
40
  - Run `git branch` to list all local branches.
39
41
  - Check the current branch with `git branch --show-current` and capture `git status -sb`.
40
42
  - Inspect active planning artifacts under `docs/plans/` and look for batch roots that still contain live spec sets plus a `coordination.md`.
41
43
  - When an active batch is present, read its `coordination.md` before deciding merge order.
42
- - 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.
44
+ - Treat the original current branch as the authoritative merge target for the whole workflow; do not silently switch that target to `main`.
45
+ - Determine whether each candidate branch is a child branch of the current branch by using git evidence such as `git merge-base --fork-point <current-branch> <candidate>`, `git merge-base <current-branch> <candidate>`, and branch reflog/history when needed.
46
+ - Accept a branch as in scope only when the evidence shows it actually forked from the current branch; skip parent branches, sibling branches, and unrelated local branches.
47
+ - If child-branch ancestry is ambiguous, stop and report the ambiguity instead of guessing.
48
+ - Compare each in-scope candidate branch against the current branch with `git log --oneline <current-branch>..<candidate>`, `git diff --stat <current-branch>...<candidate>`, or equivalent evidence so empty or already-merged branches are skipped.
43
49
  - For each branch, note:
44
50
  - Branch name
45
- - Commits ahead of main
51
+ - Verified fork-point evidence from the current branch
52
+ - Commits ahead of the current branch
46
53
  - Last commit message (via `git log -1 --oneline`)
47
54
 
48
55
  ### 1.5) Resolve merge order from active batch specs
49
56
 
50
57
  - Treat active batch specs as authoritative merge-order guidance when they include a concrete `Merge order / landing order` entry in `coordination.md`.
51
58
  - Map branch names to the corresponding spec sets or worktrees using the batch folder names, spec-set names, and current git evidence; do not guess when the mapping is ambiguous.
52
- - Merge branches in the documented order when that order is explicit.
59
+ - Merge only the in-scope child branches in the documented order when that order is explicit.
53
60
  - If multiple active batches exist, reconcile their merge-order guidance before merging; if the orders conflict or the branch-to-spec mapping is unclear, stop and report the ambiguity instead of choosing an arbitrary sequence.
54
61
  - If no active batch spec provides an explicit merge order, fall back to the normal branch inventory evidence and merge the relevant branches sequentially based on the safest verified order.
55
62
 
56
- ### 2) Ensure clean state on main
63
+ ### 2) Ensure clean state on the original current branch
57
64
 
58
- - Check `git status` on `main`.
59
- - If `main` has uncommitted changes that are unrelated to the merge request, stop and report them instead of stashing automatically.
65
+ - Check `git status` on the original current branch.
66
+ - If the current branch has uncommitted changes that are unrelated to the merge request, stop and report them instead of stashing automatically.
67
+ - Never change the authoritative target branch unless the user explicitly asks for a different destination.
60
68
  - Only proceed once you can state which branch or branches actually need to be merged.
61
69
 
62
70
  ### 3) Merge branches sequentially in the resolved order
63
71
 
64
- For each local branch (excluding main):
72
+ For each in-scope child branch:
65
73
 
66
- 1. Check out main:
74
+ 1. Check out the original current branch:
67
75
  ```bash
68
- git checkout main
76
+ git checkout <current-branch>
69
77
  ```
70
78
 
71
79
  2. Merge the branch:
72
80
  ```bash
73
- git merge <branch-name> --no-ff -m "Merge branch '<branch-name>' into main"
81
+ git merge <branch-name> --no-ff -m "Merge branch '<branch-name>' into <current-branch>"
74
82
  ```
75
83
 
76
84
  3. If conflicts occur, resolve them automatically using these rules:
@@ -94,7 +102,7 @@ For each local branch (excluding main):
94
102
 
95
103
  5. Complete the merge:
96
104
  ```bash
97
- git commit -m "Merge branch '<branch-name>' into main"
105
+ git commit -m "Merge branch '<branch-name>' into <current-branch>"
98
106
  ```
99
107
 
100
108
  ### 4) Verify merged state
@@ -104,11 +112,19 @@ For each local branch (excluding main):
104
112
  ```bash
105
113
  npm test # or yarn test, cargo test, etc.
106
114
  ```
107
- - If verification fails, fix the merged state on `main` before proceeding.
115
+ - If verification fails, fix the merged state on the current branch before proceeding.
108
116
 
109
- ### 5) Hand off the merged result for shared submission handling
117
+ ### 5) Archive completed specs and sync durable project docs
110
118
 
111
- - After a branch has been merged successfully and the merged `main` state has been verified, remove the source branch worktree if one exists:
119
+ - After all in-scope merges succeed and the current-branch state has been verified, invoke `archive-specs`.
120
+ - Let `archive-specs` convert and archive any completed `docs/plans/...` spec sets that now reflect the delivered outcome.
121
+ - Let `archive-specs` synchronize durable project docs and `AGENTS.md` when the merged result changed operator workflows, repository guidance, or user-visible behavior.
122
+ - Do not proceed to the final submission commit while required archival or documentation updates remain unfinished.
123
+ - If no completed spec sets or project-doc drift are present, record that evidence explicitly before moving on.
124
+
125
+ ### 6) Hand off the merged result for shared submission handling
126
+
127
+ - After a child branch has been merged successfully and the merged current-branch state has been verified, remove the source branch worktree if one exists:
112
128
  ```bash
113
129
  git worktree list
114
130
  git worktree remove <worktree-path>
@@ -119,24 +135,25 @@ For each local branch (excluding main):
119
135
  ```
120
136
  - If a branch still has an attached worktree, remove the worktree before deleting the branch.
121
137
  - Never delete:
122
- - `main`
138
+ - the original current branch
123
139
  - the currently checked-out branch
124
140
  - branches that were skipped, failed to merge, or still need manual follow-up
125
141
  - If `git branch -d` refuses deletion because the branch is not actually merged, stop and report the branch instead of forcing deletion with `-D`.
126
- - Once merge verification passes, invoke `commit-and-push` for the authoritative local branch so the final submission flow owns:
142
+ - Once merge verification plus archival/doc synchronization pass, invoke `commit-and-push` for the original current branch so the final submission flow owns:
127
143
  - `CHANGELOG.md` readiness
128
- - any required `archive-specs` run
129
- - the final commit creation on the local target branch
130
- - Do not duplicate commit-message, changelog, or spec-archival logic inside this skill.
131
- - If a follow-up fix is required after verification, make that fix on `main` before handing off to `commit-and-push`.
144
+ - the final commit creation on the original current branch
145
+ - the user-requested push on that same branch
146
+ - Do not duplicate commit-message or changelog-readiness logic inside this skill; post-merge archival must flow through `archive-specs`.
147
+ - If a follow-up fix is required after verification or archival/doc sync, make that fix on the original current branch before handing off to `commit-and-push`.
132
148
 
133
- ### 6) Report completion
149
+ ### 7) Report completion
134
150
 
135
- - List all branches that were merged.
151
+ - List all child branches that were merged.
136
152
  - List any branches intentionally skipped because they were already merged, empty, or out of scope.
137
- - Confirm main is updated with all changes.
153
+ - Confirm the original current branch is updated with all merged changes.
138
154
  - Note any conflicts that were resolved and the rationale.
139
155
  - Report the verification commands that were run.
156
+ - Report whether `archive-specs` updated durable docs or found no archival/doc-sync work to do.
140
157
  - Confirm whether the workflow stopped at the local commit boundary or continued into a remote push because the user explicitly requested it.
141
158
 
142
159
  ## Working Rules
@@ -144,12 +161,13 @@ For each local branch (excluding main):
144
161
  - Never force-push; use only merge or rebase with merge.
145
162
  - Prefer preserving functionality over keeping either branch's exact changes.
146
163
  - 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.
164
+ - Never merge parent branches, sibling branches, or unverified branches into the current branch; merge only branches whose child relationship to the original current branch is supported by git evidence.
147
165
  - If a branch contains no meaningful changes (empty merge), skip it.
148
- - Keep the main branch history clean and readable.
166
+ - Keep the current branch history clean and readable.
149
167
  - If a branch's merge breaks tests, resolve the conflict differently before committing.
150
168
  - Do not stash or discard unrelated work automatically; stop when the working tree state makes the merge ambiguous.
151
169
  - Delete merged source branches and their detached worktrees only after the merge commit and verification both succeed.
152
- - When active batch specs provide merge-order guidance, follow that order unless new evidence proves the plan is stale or inapplicable; if so, stop and report the mismatch instead of silently overriding the batch plan.
170
+ - When active batch specs provide merge-order guidance for in-scope child branches, follow that order unless new evidence proves the plan is stale or inapplicable; if so, stop and report the mismatch instead of silently overriding the batch plan.
153
171
 
154
172
  ## Conflict Resolution Examples
155
173
 
@@ -157,7 +175,7 @@ For each local branch (excluding main):
157
175
  |----------|---------------------|
158
176
  | Same line, both branches changed behavior | Read both code paths and compose the merged logic that preserves the verified invariant |
159
177
  | 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 |
160
- | File deleted in branch, modified in main | Keep the version supported by current references/tests and remove only if the deletion is proven correct |
178
+ | File deleted in branch, modified in current branch | Keep the version supported by current references/tests and remove only if the deletion is proven correct |
161
179
  | Both added same function differently | Keep both; rename if needed |
162
180
  | Config file conflict | Keep both values if non-overlapping |
163
181
  | Test file conflict | Keep both test cases |
@@ -1,4 +1,4 @@
1
1
  interface:
2
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, inspect active batch-spec `coordination.md` files under docs/plans and follow their documented merge order when present, 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, delete successfully merged source branches and detached worktrees only after verification succeeds, and leave remote state untouched."
3
+ short_description: "Merge verified child branches back into the current branch with checked conflict resolution"
4
+ default_prompt: "Use $merge-changes-from-local-branches to inventory the current branch plus any local child branches that verifiably forked from it, inspect active batch-spec `coordination.md` files under `docs/plans/` and follow their documented merge order when present, merge only those in-scope child branches back into the same current branch, resolve conflicts by reading and composing the correct behavior instead of relying on blanket merge strategies, run targeted verification after conflictful merges, run `archive-specs` so completed plan sets are archived and durable docs are synchronized before the final submit step, delete successfully merged source branches and detached worktrees only after verification succeeds, and leave remote publication to `commit-and-push`."
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@laitszkin/apollo-toolkit",
3
- "version": "2.14.9",
3
+ "version": "2.14.11",
4
4
  "description": "Apollo Toolkit npm installer for managed skill copying across Codex, OpenClaw, and Trae.",
5
5
  "license": "MIT",
6
6
  "author": "LaiTszKin",