@laitszkin/apollo-toolkit 2.14.10 → 2.14.12
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.12] - 2026-04-10
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
- Tighten `implement-specs-with-worktree` so detached or temporary worktrees must recover the exact requested `docs/plans/...` spec set from the authoritative branch or main working tree before coding, instead of substituting nearby plans.
|
|
11
|
+
- Require `implement-specs-with-worktree` to sync only the in-scope spec directory plus its governing batch `coordination.md`, avoiding accidental sibling-spec imports into the worktree.
|
|
12
|
+
|
|
13
|
+
## [v2.14.11] - 2026-04-09
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
- 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`.
|
|
17
|
+
- 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.
|
|
18
|
+
|
|
7
19
|
## [v2.14.10] - 2026-04-09
|
|
8
20
|
|
|
9
21
|
### Changed
|
|
@@ -22,9 +22,9 @@ description: >-
|
|
|
22
22
|
|
|
23
23
|
## Standards
|
|
24
24
|
|
|
25
|
-
- Evidence: Read and understand the complete specs set before starting implementation.
|
|
26
|
-
- Execution: Create or use an isolated worktree for implementation, follow the implementation standards from the dependent skills, and commit to a local branch when done.
|
|
27
|
-
- Quality: Complete all planned tasks, run relevant tests,
|
|
25
|
+
- Evidence: Read and understand the complete specs set before starting implementation, and when the requested plan path is missing from the current worktree verify where the authoritative copy actually lives before substituting any nearby spec.
|
|
26
|
+
- Execution: Create or use an isolated worktree for implementation, sync the exact approved plan set into that worktree when it is missing there, follow the implementation standards from the dependent skills, and commit to a local branch when done.
|
|
27
|
+
- Quality: Complete all planned tasks, run relevant tests, backfill the spec documents with actual completion status, and avoid dragging unrelated sibling specs into the worktree just because they share a batch directory.
|
|
28
28
|
- Output: Keep the worktree branch clean with only the intended implementation commits.
|
|
29
29
|
|
|
30
30
|
## Goal
|
|
@@ -38,6 +38,11 @@ Implement approved spec planning sets in an isolated git worktree, ensuring main
|
|
|
38
38
|
- Locate the specs directory. The path format is `docs/plans/{YYYY-MM-DD}/{change_name}/` for single-spec work, or `docs/plans/{YYYY-MM-DD}/{batch_name}/{change_name}/` for coordinated multi-spec work.
|
|
39
39
|
- If the user provides a specific path, use that directly.
|
|
40
40
|
- If only a `change_name` or date is given, search for matching directories under `docs/plans/`.
|
|
41
|
+
- If the requested path is absent from the current worktree, stop and identify the authoritative source before implementing:
|
|
42
|
+
- inspect the main working tree and any relevant local branches/worktrees for that exact `docs/plans/...` path
|
|
43
|
+
- prefer the exact matching plan directory from the repository's authoritative branch or main working tree over archived, approximate, or sibling plan directories
|
|
44
|
+
- if the plan lives under a batch directory, sync only the requested spec directory plus the shared `coordination.md` that governs it
|
|
45
|
+
- do not copy neighboring sibling spec directories into the worktree unless the user explicitly expanded scope
|
|
41
46
|
- When the plan sits under a batch directory, also read the sibling `coordination.md` before implementation.
|
|
42
47
|
- Read all five spec files:
|
|
43
48
|
- `spec.md` — requirements and BDD behaviors
|
|
@@ -52,6 +57,7 @@ Implement approved spec planning sets in an isolated git worktree, ensuring main
|
|
|
52
57
|
|
|
53
58
|
- Run `git worktree list` to see existing worktrees and branches.
|
|
54
59
|
- Determine if the current session is already inside a worktree (check `git rev-parse --show-toplevel` and compare with `git worktree list`).
|
|
60
|
+
- 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.
|
|
55
61
|
|
|
56
62
|
### 3) Create a new worktree if needed
|
|
57
63
|
|
|
@@ -1,76 +1,84 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: merge-changes-from-local-branches
|
|
3
3
|
description: >-
|
|
4
|
-
Read changes from
|
|
5
|
-
branch
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
to
|
|
11
|
-
|
|
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
|
|
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
|
|
26
|
-
- Execution: Merge only the relevant
|
|
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
|
|
28
|
-
- Output: Produce a clean
|
|
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
|
|
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
|
|
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
|
-
-
|
|
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
|
-
-
|
|
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
|
|
63
|
+
### 2) Ensure clean state on the original current branch
|
|
57
64
|
|
|
58
|
-
- Check `git status` on
|
|
59
|
-
- If
|
|
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
|
|
72
|
+
For each in-scope child branch:
|
|
65
73
|
|
|
66
|
-
1. Check out
|
|
74
|
+
1. Check out the original current branch:
|
|
67
75
|
```bash
|
|
68
|
-
git checkout
|
|
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
|
|
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
|
|
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
|
|
115
|
+
- If verification fails, fix the merged state on the current branch before proceeding.
|
|
108
116
|
|
|
109
|
-
### 5)
|
|
117
|
+
### 5) Archive completed specs and sync durable project docs
|
|
110
118
|
|
|
111
|
-
- After
|
|
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
|
-
-
|
|
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
|
|
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
|
-
-
|
|
129
|
-
- the
|
|
130
|
-
- Do not duplicate commit-message
|
|
131
|
-
- If a follow-up fix is required after verification, make that fix on
|
|
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
|
-
###
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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