@laitszkin/apollo-toolkit 2.14.7 → 2.14.9

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,17 @@ All notable changes to this repository are documented in this file.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [v2.14.9] - 2026-04-08
8
+
9
+ ### Changed
10
+ - Update `merge-changes-from-local-branches` so it must inspect active batch-spec `coordination.md` files under `docs/plans/` and follow their documented merge order when one is explicitly provided.
11
+ - Clarify that merge-order guidance from active batch specs is authoritative unless the plan is stale, conflicting, or cannot be mapped safely to the current branches.
12
+
13
+ ## [v2.14.8] - 2026-04-08
14
+
15
+ ### Changed
16
+ - Tighten `generate-spec` so multi-spec batch planning must slice work into independently completable specs that can each be approved, implemented, tested, and merged without depending on another spec in the same batch landing first.
17
+ - Update `generate-spec` coordination guidance and templates so batch-level merge order may be a convenience only, never a functional prerequisite between specs.
7
18
  ## [v2.14.7] - 2026-04-08
8
19
 
9
20
  ### Changed
@@ -5,7 +5,7 @@ A shared planning skill for feature work. It centralizes creation and maintenanc
5
5
  ## Core capabilities
6
6
 
7
7
  - Generates single-spec plans under `docs/plans/{YYYY-MM-DD}/{change_name}/`.
8
- - Generates multi-spec parallel batches under `docs/plans/{YYYY-MM-DD}/{batch_name}/{change_name}/` with a shared `coordination.md`.
8
+ - Generates multi-spec parallel batches under `docs/plans/{YYYY-MM-DD}/{batch_name}/{change_name}/` with a shared `coordination.md`, while keeping every batch spec independently completable.
9
9
  - Uses shared templates so spec-first and brownfield workflows follow the same planning structure.
10
10
  - Requires clarification handling and explicit user approval before implementation starts.
11
11
  - Backfills task and checklist status after implementation and testing.
@@ -84,10 +84,11 @@ 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.
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.
88
88
  - If clarification responses change the plan, update the docs and obtain approval again before coding.
89
89
 
90
90
  ## Notes
91
91
 
92
92
  - `scripts/...` and `references/...` are skill-folder paths, not project-folder paths.
93
93
  - The generator replaces `[YYYY-MM-DD]`, `[Feature Name]`, `[功能名稱]`, `[change_name]`, and `[batch_name]` placeholders.
94
+ - If a batch split produces specs that must land in a functional sequence, re-slice the work so each spec becomes independently implementable, testable, and mergeable.
@@ -15,9 +15,9 @@ description: Generate and maintain shared feature planning artifacts (`spec.md`,
15
15
  ## Standards
16
16
 
17
17
  - Evidence: Review the relevant code, configs, and authoritative docs before filling requirements or test plans; when external dependencies, libraries, frameworks, APIs, or platforms are involved, checking their official documentation is mandatory during spec creation.
18
- - Execution: Generate the planning files first, keep each spec set tightly scoped, split broader work into multiple independent spec sets when needed, complete them with traceable requirements and risks, handle clarification updates, then wait for explicit approval before implementation.
18
+ - Execution: Generate the planning files first, keep each spec set tightly scoped, split broader work into multiple independent spec sets when needed, ensure every batch spec is independently completable without depending on another spec set to land first, complete them with traceable requirements and risks, handle clarification updates, then wait for explicit approval before implementation.
19
19
  - Quality: Keep `spec.md`, `tasks.md`, `checklist.md`, `contract.md`, and `design.md` synchronized, map each planned test to a concrete risk or requirement, and tailor the templates so only applicable items remain active.
20
- - Output: Store planning artifacts under `docs/plans/{YYYY-MM-DD}/{change_name}/` for single-spec work, or `docs/plans/{YYYY-MM-DD}/{batch_name}/{change_name}/` plus `coordination.md` for multi-spec parallel work, and keep them concise, executable, and easy to update.
20
+ - Output: Store planning artifacts under `docs/plans/{YYYY-MM-DD}/{change_name}/` for single-spec work, or `docs/plans/{YYYY-MM-DD}/{batch_name}/{change_name}/` plus `coordination.md` for multi-spec parallel work whose member specs remain independently approvable and independently implementable, and keep them concise, executable, and easy to update.
21
21
 
22
22
  ## Goal
23
23
 
@@ -45,6 +45,8 @@ Own the shared planning-doc lifecycle for feature work so other skills can reuse
45
45
  - If the requested work would span more than three modules, do not draft one oversized coupled plan.
46
46
  - Instead, split the work into multiple spec sets, each independently valid and each covering no more than three modules.
47
47
  - Define those spec sets so they do not conflict with each other and do not require another spec set to land first in order to be approved or implemented safely.
48
+ - For batch generation, treat cross-spec implementation dependency as a planning bug: if Spec B cannot be completed safely until Spec A lands, they should be one spec set or be re-sliced so each spec has its own self-contained outcome.
49
+ - Allow shared preparation in `coordination.md` only when each spec can still complete that preparation or operate against an already-existing baseline without waiting for another spec's code changes.
48
50
  - Use:
49
51
  - `SKILL_ROOT=<path_to_generate-spec_skill>`
50
52
  - `WORKSPACE_ROOT=<target_project_root>`
@@ -98,9 +100,11 @@ Own the shared planning-doc lifecycle for feature work so other skills can reuse
98
100
  - Create `coordination.md` only when one user request is intentionally split into multiple spec sets that may be implemented in parallel.
99
101
  - Place it at `docs/plans/{YYYY-MM-DD}/{batch_name}/coordination.md`.
100
102
  - Use it as the batch-level source of truth for shared preparation, ownership boundaries, merge order, and cross-spec constraints.
103
+ - Record explicitly that each spec set must remain independently completable and must not rely on another spec set's code changes, unfinished tasks, or merge order to achieve its own approved outcome.
101
104
  - Record shared fields, shared contracts, or shared data-shape preparation that multiple spec sets must align on before implementation starts.
102
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.
103
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
+ - 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.
104
108
  - Keep single-spec concerns in that spec's own `design.md`; reserve `coordination.md` for batch-wide rules only.
105
109
 
106
110
  ### 7) Fill `checklist.md`
@@ -142,6 +146,7 @@ Own the shared planning-doc lifecycle for feature work so other skills can reuse
142
146
  - Keep requirement IDs, task IDs, and test IDs traceable across all three files.
143
147
  - Never allow one spec set to cover more than three modules.
144
148
  - When a request exceeds that scope, split it into independent, non-conflicting, non-dependent spec sets before approval.
149
+ - 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.
145
150
  - 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`.
146
151
  - Prefer realistic coverage over boilerplate: add or remove checklist items based on actual risk.
147
152
  - When external dependencies materially shape the change, `contract.md` is required and must capture the official-source-backed contract in the standardized record format.
@@ -1,4 +1,4 @@
1
1
  interface:
2
2
  display_name: "generate-spec"
3
3
  short_description: "Generate shared feature spec, task, and checklist docs before coding"
4
- default_prompt: "Use $generate-spec to create or update single-spec plans under docs/plans/<date>/<change_name>/ or parallel batches under docs/plans/<date>/<batch_name>/<change_name>/ with a shared coordination.md, fill BDD requirements and risk-driven test planning, document external dependency contracts in contract.md when they materially constrain the change, write the architecture/design delta in design.md, record shared preparation and legacy-replacement direction in coordination.md when multiple specs will be implemented in parallel, process clarification updates, and wait for explicit approval before implementation."
4
+ default_prompt: "Use $generate-spec to create or update single-spec plans under docs/plans/<date>/<change_name>/ or parallel batches under docs/plans/<date>/<batch_name>/<change_name>/ with a shared coordination.md, but ensure every spec in a batch remains independently approvable and independently implementable without depending on another batch spec landing first; fill BDD requirements and risk-driven test planning, document external dependency contracts in contract.md when they materially constrain the change, write the architecture/design delta in design.md, record shared preparation and legacy-replacement direction in coordination.md when multiple specs will be implemented in parallel, process clarification updates, and wait for explicit approval before implementation."
@@ -10,6 +10,7 @@
10
10
  - Included spec sets: [[spec-name-1], [spec-name-2]]
11
11
  - Shared outcome: [what the batch delivers when all spec sets land]
12
12
  - Out of scope: [shared exclusions for the batch]
13
+ - Independence rule: [state how each spec remains independently implementable, testable, and mergeable without another spec in this batch landing first]
13
14
 
14
15
  ## Shared Context
15
16
  - Current baseline: [the current system shape that all spec sets must assume]
@@ -35,17 +36,19 @@
35
36
  - Primary concern: [what this spec owns]
36
37
  - Allowed touch points: [files/modules it may change]
37
38
  - Must not change: [files/modules owned by another spec unless explicitly coordinated]
38
- - Depends on shared preparation: [None / specific shared item above]
39
+ - Depends on shared preparation: [None / specific shared item above that already exists or can be completed within this spec]
40
+ - Cross-spec implementation dependency: [None; if not None, re-slice the batch]
39
41
 
40
42
  ### Spec Set 2: [spec-name-2]
41
43
  - Primary concern: [what this spec owns]
42
44
  - Allowed touch points: [files/modules it may change]
43
45
  - Must not change: [files/modules owned by another spec unless explicitly coordinated]
44
- - Depends on shared preparation: [None / specific shared item above]
46
+ - Depends on shared preparation: [None / specific shared item above that already exists or can be completed within this spec]
47
+ - Cross-spec implementation dependency: [None; if not None, re-slice the batch]
45
48
 
46
49
  ## Conflict Boundaries
47
50
  - Shared files requiring coordination: [file/module list or `None`]
48
- - Merge order / landing order: [independent / explicit order]
51
+ - Merge order / landing order: [independent / optional convenience order only, never a functional prerequisite]
49
52
  - Worktree notes: [branch naming, rebase expectations, or `None`]
50
53
 
51
54
  ## Integration Checkpoints
@@ -22,8 +22,8 @@ description: >-
22
22
 
23
23
  ## Standards
24
24
 
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, 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.
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
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
28
  - Output: Produce a clean local main branch with all local changes integrated and ready for the shared submit workflow.
29
29
 
@@ -37,19 +37,29 @@ Consolidate all local branch changes into the local main branch with automatic c
37
37
 
38
38
  - Run `git branch` to list all local branches.
39
39
  - Check the current branch with `git branch --show-current` and capture `git status -sb`.
40
+ - Inspect active planning artifacts under `docs/plans/` and look for batch roots that still contain live spec sets plus a `coordination.md`.
41
+ - When an active batch is present, read its `coordination.md` before deciding merge order.
40
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.
41
43
  - For each branch, note:
42
44
  - Branch name
43
45
  - Commits ahead of main
44
46
  - Last commit message (via `git log -1 --oneline`)
45
47
 
48
+ ### 1.5) Resolve merge order from active batch specs
49
+
50
+ - Treat active batch specs as authoritative merge-order guidance when they include a concrete `Merge order / landing order` entry in `coordination.md`.
51
+ - 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.
53
+ - 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
+ - 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
+
46
56
  ### 2) Ensure clean state on main
47
57
 
48
58
  - Check `git status` on `main`.
49
59
  - If `main` has uncommitted changes that are unrelated to the merge request, stop and report them instead of stashing automatically.
50
60
  - Only proceed once you can state which branch or branches actually need to be merged.
51
61
 
52
- ### 3) Merge branches sequentially
62
+ ### 3) Merge branches sequentially in the resolved order
53
63
 
54
64
  For each local branch (excluding main):
55
65
 
@@ -139,6 +149,7 @@ For each local branch (excluding main):
139
149
  - If a branch's merge breaks tests, resolve the conflict differently before committing.
140
150
  - Do not stash or discard unrelated work automatically; stop when the working tree state makes the merge ambiguous.
141
151
  - 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.
142
153
 
143
154
  ## Conflict Resolution Examples
144
155
 
@@ -1,4 +1,4 @@
1
1
  interface:
2
2
  display_name: "Merge Changes from Local Branches"
3
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, delete successfully merged source branches and detached worktrees only after verification succeeds, and leave remote state untouched."
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."
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@laitszkin/apollo-toolkit",
3
- "version": "2.14.7",
3
+ "version": "2.14.9",
4
4
  "description": "Apollo Toolkit npm installer for managed skill copying across Codex, OpenClaw, and Trae.",
5
5
  "license": "MIT",
6
6
  "author": "LaiTszKin",