@laitszkin/apollo-toolkit 2.14.13 → 2.14.15
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 +12 -0
- package/codex/learn-skill-from-conversations/SKILL.md +2 -1
- package/commit-and-push/SKILL.md +8 -4
- package/implement-specs-with-worktree/SKILL.md +23 -12
- package/implement-specs-with-worktree/agents/openai.yaml +1 -1
- package/merge-changes-from-local-branches/SKILL.md +30 -28
- package/merge-changes-from-local-branches/agents/openai.yaml +2 -2
- package/package.json +1 -1
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.15] - 2026-04-11
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
- Update `merge-changes-from-local-branches` so merge scope is determined from explicit branch names or spec-name mappings, instead of verifying child-branch ancestry from git history.
|
|
11
|
+
- Update `implement-specs-with-worktree` so new worktree branches inherit from the same parent branch as the worktree base, and use the spec-set name as the canonical branch/worktree identifier.
|
|
12
|
+
|
|
13
|
+
## [v2.14.14] - 2026-04-11
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
- Tighten `commit-and-push` so it must distinguish staged versus unstaged work before choosing commit scope, preserve intentionally separated commit boundaries, and only broaden scope after an explicit user request.
|
|
17
|
+
- Update `learn-skill-from-conversations` so repeated follow-ups that correct commit scope or local-versus-remote submission boundaries are treated as evidence to harden the owning submit workflow.
|
|
18
|
+
|
|
7
19
|
## [v2.14.13] - 2026-04-10
|
|
8
20
|
|
|
9
21
|
### Added
|
|
@@ -15,7 +15,7 @@ description: Learn and evolve the local skill library from recent Codex conversa
|
|
|
15
15
|
## Standards
|
|
16
16
|
|
|
17
17
|
- Evidence: Extract recent Codex session history first and derive reusable lessons only from actual conversation patterns.
|
|
18
|
-
- Execution: Inventory the current working directory's existing skills before editing, prioritize repeated requests, user corrections, tool failures, logic bugs, architecture mismatches, documentation drift, and post-completion follow-up asks that reveal missing closure, then prefer a focused update to the strongest related skill or create a new skill only when the overlap is weak; when a Codex automation prompt includes an explicit `Automation memory:` path, treat that path as the authoritative run-memory location instead of assuming `$CODEX_HOME` is available in the shell.
|
|
18
|
+
- Execution: Inventory the current working directory's existing skills before editing, prioritize repeated requests, user corrections, tool failures, logic bugs, architecture mismatches, documentation drift, and post-completion follow-up asks that reveal missing closure, then prefer a focused update to the strongest related skill or create a new skill only when the overlap is weak; treat repeated scope-correction follow-ups around staged versus unstaged work, local-commit versus push boundaries, and similar submission-scope misunderstandings as signals to tighten the owning submit workflow instead of inventing a parallel skill; when a Codex automation prompt includes an explicit `Automation memory:` path, treat that path as the authoritative run-memory location instead of assuming `$CODEX_HOME` is available in the shell.
|
|
19
19
|
- Quality: Take no action when there are no recent sessions, avoid unrelated broad refactors, keep shared skills cross-project reusable, route project-specific tooling patterns into the relevant project's `~/.codex/skills/`, and validate every changed skill.
|
|
20
20
|
- Output: Report the analyzed sessions, extracted lessons, created or updated skills, shared-vs-project-specific placement decisions, and the reasoning behind each decision.
|
|
21
21
|
|
|
@@ -53,6 +53,7 @@ python3 ~/.codex/skills/learn-skill-from-conversations/scripts/extract_recent_co
|
|
|
53
53
|
- Treat tool-call failures, broken code paths, logic mistakes, weak architecture choices, and outputs that drifted from official documentation as valuable evidence when they expose a reusable missing guardrail or workflow.
|
|
54
54
|
- Treat a user follow-up that asks for cleanup or an omitted finalization step immediately after the assistant reported completion as evidence that the workflow's done criteria were incomplete.
|
|
55
55
|
- When that kind of follow-up recurs, tighten the owning skill's completion checklist before considering any new-skill extraction.
|
|
56
|
+
- Treat a user follow-up that changes commit scope after the assistant already inferred a narrower or broader submission boundary as evidence that the relevant submit workflow needs clearer staged-versus-unstaged and local-versus-remote boundary rules.
|
|
56
57
|
- Even when a user request was highly specific, check whether the underlying workflow can be generalized into a reusable skill for the same class of tasks.
|
|
57
58
|
- When multiple existing skills use a near-identical workflow fragment, consider extracting that fragment into a dedicated shared skill instead of leaving the duplication in place.
|
|
58
59
|
- When an external skill is repeatedly used with the same user-specific customization layer, prefer wrapping it in a new local skill that encodes those standing conventions.
|
package/commit-and-push/SKILL.md
CHANGED
|
@@ -14,10 +14,10 @@ description: "Guide the agent to submit local changes with commit and push only
|
|
|
14
14
|
|
|
15
15
|
## Standards
|
|
16
16
|
|
|
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 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
|
-
- Quality: Re-run relevant validation for runtime changes, preserve unrelated local work safely when branch switching or post-push local sync is required,
|
|
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.
|
|
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, while also distinguishing the staged surface from additional unstaged work before deciding commit scope.
|
|
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; when the user asks for multiple commits or a narrower staged subset, keep those commit boundaries explicit instead of broadening scope implicitly; 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
|
+
- Quality: Re-run relevant validation for runtime changes, preserve unrelated local work safely when branch switching or post-push local sync is required, do not bypass blocking readiness findings such as missing/stale `Unreleased` bullets or unsynchronized project docs, and never collapse intentionally separated commit scopes just because related unstaged changes are present.
|
|
20
|
+
- Output: Produce a concise Conventional Commit, push it to the intended branch, and report any temporary stash/restore, commit-scope separation, or local branch sync that was required.
|
|
21
21
|
|
|
22
22
|
## Overview
|
|
23
23
|
|
|
@@ -35,6 +35,7 @@ Load only when needed:
|
|
|
35
35
|
1. Inspect current state
|
|
36
36
|
- Run `git status -sb`, `git diff --stat`, and `git diff --cached --stat`.
|
|
37
37
|
- Check staged files with `git diff --cached --name-only`.
|
|
38
|
+
- Compare the staged and unstaged surfaces explicitly so you can tell whether the user already prepared a narrower commit than the full worktree diff.
|
|
38
39
|
- Inventory repository planning artifacts and project docs, not only staged files, to detect repo specs and non-standard documentation layouts.
|
|
39
40
|
- If the worktree is already clean, inspect `git log -1 --stat`, local `HEAD`, and the configured upstream state before concluding there is nothing to submit; use that evidence to determine whether the requested work was already committed and pushed, committed but not pushed, or never landed.
|
|
40
41
|
2. Classify changes
|
|
@@ -68,6 +69,8 @@ Load only when needed:
|
|
|
68
69
|
- When readiness indicates doc conversion or project-doc drift, run `archive-specs` before the final commit instead of duplicating documentation alignment work locally.
|
|
69
70
|
6. Commit
|
|
70
71
|
- Preserve user staging intent where possible.
|
|
72
|
+
- If the user explicitly asks for separate commits, or the staged set is already a deliberate subset of the worktree, keep those scopes separated and do not auto-stage the remaining diff unless the user expands the requested scope.
|
|
73
|
+
- If the user later broadens the requested scope, restate the new grouping, verify it against the actual staged/unstaged surfaces, and only then create the additional commit(s).
|
|
71
74
|
- Write a concise Conventional Commit message using `references/commit-messages.md`.
|
|
72
75
|
7. Push
|
|
73
76
|
- Push commit(s) to the intended branch.
|
|
@@ -86,6 +89,7 @@ Load only when needed:
|
|
|
86
89
|
- Never claim the repository is ready to commit while root `CHANGELOG.md` `Unreleased` is missing the current change or still describes superseded work.
|
|
87
90
|
- Never fabricate a commit/push result when the worktree is already clean; either identify the exact existing commit/upstream state that satisfies the user's request or say that no matching new submission exists.
|
|
88
91
|
- Never delete a temporary worktree before the target branch has been updated, tested, and verified to contain the intended final content.
|
|
92
|
+
- Never auto-stage or auto-merge unrelated unstaged changes into a commit when the user or current index state already defines narrower commit boundaries.
|
|
89
93
|
- If release/version/tag work is requested, use `version-release` instead.
|
|
90
94
|
- If a new branch is required, follow `references/branch-naming.md`.
|
|
91
95
|
- A pushed implementation can still leave an active spec set behind; commit completion and spec archival are separate decisions.
|
|
@@ -6,9 +6,10 @@ description: >-
|
|
|
6
6
|
plus parent `coordination.md` when present, and implement the approved tasks
|
|
7
7
|
within an isolated git worktree. Use when the user asks to implement from an
|
|
8
8
|
existing spec set, execute a spec plan, or work on a feature branch without
|
|
9
|
-
affecting the
|
|
10
|
-
worktree with
|
|
11
|
-
the changes to that local
|
|
9
|
+
affecting the parent working tree. If not already in a worktree, create a new
|
|
10
|
+
worktree with a spec-named branch from the same parent branch as the worktree
|
|
11
|
+
base, implement all planned tasks, then commit the changes to that local
|
|
12
|
+
branch when complete.
|
|
12
13
|
---
|
|
13
14
|
|
|
14
15
|
# Implement Specs with Worktree
|
|
@@ -22,14 +23,14 @@ description: >-
|
|
|
22
23
|
|
|
23
24
|
## Standards
|
|
24
25
|
|
|
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.
|
|
26
|
+
- Evidence: Read and understand the complete specs set before starting implementation, identify the authoritative parent branch that the worktree should inherit from, 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, 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, follow the implementation standards from the dependent skills, and commit to a local branch when done.
|
|
27
28
|
- 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
29
|
- Output: Keep the worktree branch clean with only the intended implementation commits.
|
|
29
30
|
|
|
30
31
|
## Goal
|
|
31
32
|
|
|
32
|
-
Implement approved spec planning sets in an isolated git worktree, ensuring
|
|
33
|
+
Implement approved spec planning sets in an isolated git worktree, ensuring the parent working tree is never interrupted by in-progress work.
|
|
33
34
|
|
|
34
35
|
## Workflow
|
|
35
36
|
|
|
@@ -58,18 +59,26 @@ Implement approved spec planning sets in an isolated git worktree, ensuring main
|
|
|
58
59
|
- Run `git worktree list` to see existing worktrees and branches.
|
|
59
60
|
- Determine if the current session is already inside a worktree (check `git rev-parse --show-toplevel` and compare with `git worktree list`).
|
|
60
61
|
- 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.
|
|
62
|
+
- Determine the authoritative parent branch for the new worktree:
|
|
63
|
+
- if the current checkout already comes from a branch, reuse that branch as the base
|
|
64
|
+
- if the current session is inside a detached worktree, identify the parent branch that owns that worktree before creating another branch from it
|
|
65
|
+
- do not default to `main` unless `main` is actually the parent branch of the worktree you are extending
|
|
61
66
|
|
|
62
67
|
### 3) Create a new worktree if needed
|
|
63
68
|
|
|
64
69
|
If not already in a worktree, or if the user explicitly requests a fresh worktree:
|
|
65
70
|
|
|
66
|
-
-
|
|
71
|
+
- Derive the canonical spec name from the requested `change_name` directory.
|
|
72
|
+
- Use that spec name as the shared branch/worktree identifier:
|
|
73
|
+
- branch name: `<type>/<spec-name>` following `references/branch-naming.md`
|
|
74
|
+
- worktree directory name: `<spec-name>`
|
|
75
|
+
- Create a new branch for this implementation from the same parent branch identified in step 2:
|
|
67
76
|
```bash
|
|
68
|
-
git branch <branch-name>
|
|
77
|
+
git branch <branch-name> <parent-branch>
|
|
69
78
|
```
|
|
70
79
|
- Add a new worktree:
|
|
71
80
|
```bash
|
|
72
|
-
git worktree add ../<
|
|
81
|
+
git worktree add ../<spec-name> <branch-name>
|
|
73
82
|
```
|
|
74
83
|
- Move into the new worktree directory and begin work there.
|
|
75
84
|
|
|
@@ -117,12 +126,14 @@ After implementation and testing:
|
|
|
117
126
|
### 7) Report completion
|
|
118
127
|
|
|
119
128
|
- Summarize what was implemented.
|
|
120
|
-
- Note the branch name and worktree location.
|
|
121
|
-
- Confirm that
|
|
129
|
+
- Note the spec-derived branch name and worktree location.
|
|
130
|
+
- Confirm that the parent branch remains unaffected.
|
|
122
131
|
|
|
123
132
|
## Working Rules
|
|
124
133
|
|
|
125
|
-
- Always work in an isolated worktree to keep
|
|
134
|
+
- Always work in an isolated worktree to keep the parent checkout clean.
|
|
135
|
+
- Keep the new branch based on the same parent branch as the worktree base; do not silently rebase the workflow onto a different branch.
|
|
136
|
+
- 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
137
|
- Complete all planned tasks before committing; do not stop with partial work.
|
|
127
138
|
- Treat the specs as the source of truth for scope — do not deviate without user approval.
|
|
128
139
|
- When `coordination.md` exists, treat it as the source of truth for batch-level ownership and cutover direction.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
interface:
|
|
2
2
|
display_name: "Implement Specs with Worktree"
|
|
3
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, including parent coordination.md when the spec belongs to a parallel batch, create or reuse an isolated git worktree, implement all approved tasks within the shared ownership and replacement-direction constraints, backfill completion status into the planning docs, and commit the result to the local worktree branch without affecting
|
|
4
|
+
default_prompt: "Use $implement-specs-with-worktree to read the full plan set under docs/plans, including parent coordination.md when the spec belongs to a parallel batch, identify the parent branch that the worktree should inherit from, create or reuse an isolated git worktree whose branch and directory names are derived from the spec name, implement all approved tasks within the shared ownership and replacement-direction constraints, backfill completion status into the planning docs, and commit the result to the local worktree branch without affecting the parent branch."
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: merge-changes-from-local-branches
|
|
3
3
|
description: >-
|
|
4
|
-
Read changes from local
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
4
|
+
Read changes from local branches identified by branch name and merge them back
|
|
5
|
+
into the current local branch. When conflicts arise, auto-resolve them by
|
|
6
|
+
keeping correct functionality (preferring the more recent change on the same
|
|
7
|
+
line, or the change that preserves working behavior). Run `archive-specs`
|
|
8
|
+
after merge verification so completed plan sets are archived and durable
|
|
9
|
+
project docs are synchronized, then hand the current branch state to
|
|
10
|
+
`commit-and-push` so the final submit workflow commits and pushes on that same
|
|
11
|
+
local branch. Use when the user asks to consolidate local branch work, merge
|
|
12
|
+
named branches into the current branch, or prepare the current branch for
|
|
13
|
+
integration.
|
|
14
14
|
---
|
|
15
15
|
|
|
16
16
|
# Merge Changes from Local Branches
|
|
@@ -24,41 +24,43 @@ description: >-
|
|
|
24
24
|
|
|
25
25
|
## Standards
|
|
26
26
|
|
|
27
|
-
- Evidence: Inspect the original current branch, local branches,
|
|
28
|
-
- Execution: Merge only the relevant
|
|
29
|
-
- Quality: Never use blanket timestamp rules or default `-X ours/theirs` conflict resolution as the primary merge strategy, never infer branch
|
|
30
|
-
- Output: Produce a clean current branch with all relevant
|
|
27
|
+
- Evidence: Inspect the original current branch, local branches, branch-name matches provided by the user or active spec names, actual conflicting files, and any active batch-spec `coordination.md` merge-order guidance before deciding what to merge.
|
|
28
|
+
- Execution: Merge only the relevant named branches back into the original current 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 source 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 in-scope branches from ancestry heuristics when branch names already define the target set, 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 named-branch changes integrated and ready for the shared submit workflow.
|
|
31
31
|
|
|
32
32
|
## Goal
|
|
33
33
|
|
|
34
|
-
Consolidate
|
|
34
|
+
Consolidate the intended named local branches back into the original current branch with automatic conflict resolution that preserves correct functionality.
|
|
35
35
|
|
|
36
36
|
## Workflow
|
|
37
37
|
|
|
38
|
-
### 1) Inventory the current branch and in-scope
|
|
38
|
+
### 1) Inventory the current branch and in-scope named branches
|
|
39
39
|
|
|
40
40
|
- Run `git branch` to list all local branches.
|
|
41
41
|
- Check the current branch with `git branch --show-current` and capture `git status -sb`.
|
|
42
42
|
- Inspect active planning artifacts under `docs/plans/` and look for batch roots that still contain live spec sets plus a `coordination.md`.
|
|
43
43
|
- When an active batch is present, read its `coordination.md` before deciding merge order.
|
|
44
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
|
|
46
|
-
-
|
|
47
|
-
-
|
|
45
|
+
- Determine the in-scope branches directly from branch names:
|
|
46
|
+
- prefer the exact branch names the user provided
|
|
47
|
+
- otherwise map active spec-set names or documented merge-order entries to branch names
|
|
48
|
+
- otherwise stop and report the missing branch-name target instead of inferring from ancestry
|
|
49
|
+
- Accept a branch as in scope only when its branch name can be matched unambiguously to the requested merge set; skip unrelated local branches.
|
|
48
50
|
- 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.
|
|
49
51
|
- For each branch, note:
|
|
50
52
|
- Branch name
|
|
51
|
-
-
|
|
53
|
+
- How the branch name was matched to the requested merge set
|
|
52
54
|
- Commits ahead of the current branch
|
|
53
55
|
- Last commit message (via `git log -1 --oneline`)
|
|
54
56
|
|
|
55
57
|
### 1.5) Resolve merge order from active batch specs
|
|
56
58
|
|
|
57
59
|
- Treat active batch specs as authoritative merge-order guidance when they include a concrete `Merge order / landing order` entry in `coordination.md`.
|
|
58
|
-
- Map branch names to the corresponding spec sets or worktrees using the batch folder names, spec-set names, and
|
|
59
|
-
- Merge only the in-scope
|
|
60
|
+
- Map branch names to the corresponding spec sets or worktrees using the batch folder names, spec-set names, and documented merge-order entries; do not guess when the mapping is ambiguous.
|
|
61
|
+
- Merge only the in-scope named branches in the documented order when that order is explicit.
|
|
60
62
|
- 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.
|
|
61
|
-
- If no active batch spec provides an explicit merge order, fall back to the
|
|
63
|
+
- If no active batch spec provides an explicit merge order, fall back to the requested branch-name list and merge the relevant branches sequentially in that explicit name order.
|
|
62
64
|
|
|
63
65
|
### 2) Ensure clean state on the original current branch
|
|
64
66
|
|
|
@@ -69,7 +71,7 @@ Consolidate verified child-branch changes back into the original current branch
|
|
|
69
71
|
|
|
70
72
|
### 3) Merge branches sequentially in the resolved order
|
|
71
73
|
|
|
72
|
-
For each in-scope
|
|
74
|
+
For each in-scope named branch:
|
|
73
75
|
|
|
74
76
|
1. Check out the original current branch:
|
|
75
77
|
```bash
|
|
@@ -124,7 +126,7 @@ For each in-scope child branch:
|
|
|
124
126
|
|
|
125
127
|
### 6) Hand off the merged result for shared submission handling
|
|
126
128
|
|
|
127
|
-
- After a
|
|
129
|
+
- After a source branch has been merged successfully and the merged current-branch state has been verified, remove the source branch worktree if one exists:
|
|
128
130
|
```bash
|
|
129
131
|
git worktree list
|
|
130
132
|
git worktree remove <worktree-path>
|
|
@@ -148,7 +150,7 @@ For each in-scope child branch:
|
|
|
148
150
|
|
|
149
151
|
### 7) Report completion
|
|
150
152
|
|
|
151
|
-
- List all
|
|
153
|
+
- List all named branches that were merged.
|
|
152
154
|
- List any branches intentionally skipped because they were already merged, empty, or out of scope.
|
|
153
155
|
- Confirm the original current branch is updated with all merged changes.
|
|
154
156
|
- Note any conflicts that were resolved and the rationale.
|
|
@@ -161,13 +163,13 @@ For each in-scope child branch:
|
|
|
161
163
|
- Never force-push; use only merge or rebase with merge.
|
|
162
164
|
- Prefer preserving functionality over keeping either branch's exact changes.
|
|
163
165
|
- 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
|
|
166
|
+
- Never merge unrelated or ambiguously matched branches into the current branch; merge only branches whose names are explicitly requested or can be matched unambiguously from the active spec context.
|
|
165
167
|
- If a branch contains no meaningful changes (empty merge), skip it.
|
|
166
168
|
- Keep the current branch history clean and readable.
|
|
167
169
|
- If a branch's merge breaks tests, resolve the conflict differently before committing.
|
|
168
170
|
- Do not stash or discard unrelated work automatically; stop when the working tree state makes the merge ambiguous.
|
|
169
171
|
- Delete merged source branches and their detached worktrees only after the merge commit and verification both succeed.
|
|
170
|
-
- When active batch specs provide merge-order guidance for in-scope
|
|
172
|
+
- When active batch specs provide merge-order guidance for in-scope named 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.
|
|
171
173
|
|
|
172
174
|
## Conflict Resolution Examples
|
|
173
175
|
|
|
@@ -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 the current branch plus
|
|
3
|
+
short_description: "Merge named local 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 the named local branches that should be merged, inspect active batch-spec `coordination.md` files under `docs/plans/` and follow their documented merge order when present, match the merge scope by branch name instead of branch ancestry, merge only those in-scope 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