@laitszkin/apollo-toolkit 2.14.17 → 2.14.19
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
|
@@ -7,6 +7,17 @@ All notable changes to this repository are documented in this file.
|
|
|
7
7
|
### Changed
|
|
8
8
|
- None yet.
|
|
9
9
|
|
|
10
|
+
## [v2.14.19] - 2026-04-14
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
- Update `version-release` so same-version prerelease hotfixes retarget the existing prerelease tag and GitHub release instead of forcing an extra semver bump.
|
|
14
|
+
|
|
15
|
+
## [v2.14.18] - 2026-04-13
|
|
16
|
+
|
|
17
|
+
### Changed
|
|
18
|
+
- Update `review-codebases` so issue-publishing runs must search for overlapping open or recent issues first and skip publishing duplicates when the root cause already has a tracker.
|
|
19
|
+
- Tighten `implement-specs-with-worktree` so archived or already-landed spec requests must verify whether the work is already present before creating a fresh worktree, and report a no-op with evidence when appropriate.
|
|
20
|
+
|
|
10
21
|
## [v2.14.17] - 2026-04-12
|
|
11
22
|
|
|
12
23
|
### Changed
|
|
@@ -23,8 +23,8 @@ description: >-
|
|
|
23
23
|
|
|
24
24
|
## Standards
|
|
25
25
|
|
|
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.
|
|
26
|
+
- Evidence: Read and understand the complete specs set before starting implementation, identify the authoritative parent branch that the worktree should inherit from, verify whether the requested scope is already implemented on that parent branch or current main working tree, 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 only when the requested spec still needs work, 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.
|
|
28
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.
|
|
29
29
|
- Output: Keep the worktree branch clean with only the intended implementation commits.
|
|
30
30
|
|
|
@@ -63,10 +63,14 @@ Implement approved spec planning sets in an isolated git worktree, ensuring the
|
|
|
63
63
|
- if the current checkout already comes from a branch, reuse that branch as the base
|
|
64
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
65
|
- do not default to `main` unless `main` is actually the parent branch of the worktree you are extending
|
|
66
|
+
- Before creating a new worktree, inspect the parent branch and current main working tree for evidence that the requested spec is already implemented:
|
|
67
|
+
- search the codebase, tests, and recent git history for the exact feature boundary or cutover named by the spec
|
|
68
|
+
- if the requested plan is archived, treat that as a signal to verify whether the implementation already landed before starting any new branch
|
|
69
|
+
- when the requested behavior is already present and verified, report a `no-op` result with concrete evidence instead of recreating the same work in a fresh worktree
|
|
66
70
|
|
|
67
71
|
### 3) Create a new worktree if needed
|
|
68
72
|
|
|
69
|
-
If not already in a worktree, or if the user explicitly requests a fresh worktree:
|
|
73
|
+
If not already in a worktree, or if the user explicitly requests a fresh worktree, and the spec is not already implemented:
|
|
70
74
|
|
|
71
75
|
- Derive the canonical spec name from the requested `change_name` directory.
|
|
72
76
|
- Use that spec name as the shared branch/worktree identifier:
|
|
@@ -132,6 +136,7 @@ After implementation and testing:
|
|
|
132
136
|
## Working Rules
|
|
133
137
|
|
|
134
138
|
- Always work in an isolated worktree to keep the parent checkout clean.
|
|
139
|
+
- Treat an already-landed spec as complete work, not as a reason to recreate a duplicate worktree.
|
|
135
140
|
- 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
141
|
- Use the spec-set name as the canonical identifier for the branch and worktree unless the user explicitly asks for a different naming scheme.
|
|
137
142
|
- Complete all planned tasks before committing; do not stop with partial work.
|
package/package.json
CHANGED
|
@@ -8,7 +8,7 @@ description: Repository-wide code review workflow that requires reading the full
|
|
|
8
8
|
## Dependencies
|
|
9
9
|
|
|
10
10
|
- Required: none.
|
|
11
|
-
- Conditional: `open-github-issue` when confirmed findings should be tracked as GitHub issues.
|
|
11
|
+
- Conditional: `read-github-issue` when issue publication requires duplicate checks; `open-github-issue` when confirmed findings should be tracked as GitHub issues.
|
|
12
12
|
- Optional: none.
|
|
13
13
|
- Fallback: If publication is needed and `open-github-issue` is unavailable, return draft issue bodies instead of inventing another publisher.
|
|
14
14
|
|
|
@@ -58,7 +58,11 @@ Only continue to the next level when the current level has no confirmed findings
|
|
|
58
58
|
5. Review edge cases last
|
|
59
59
|
- Run this step only when there are no architecture or code-quality findings.
|
|
60
60
|
- Check null or empty inputs, boundary values, partial failures, retries, concurrency, ordering assumptions, idempotency, and invalid state transitions.
|
|
61
|
-
6.
|
|
61
|
+
6. Check for duplicate issues before publication
|
|
62
|
+
- When findings will be published, use `read-github-issue` to search the target repository for open and recently closed issues that match the same module, failure mode, or architectural boundary.
|
|
63
|
+
- Treat an existing issue as a duplicate when the underlying root cause, affected boundary, and requested outcome materially overlap, even if the wording differs.
|
|
64
|
+
- If a duplicate exists, cite it in the final report and do not publish a new issue for that finding.
|
|
65
|
+
7. Publish each confirmed non-duplicate finding
|
|
62
66
|
- Invoke `open-github-issue` once per finding.
|
|
63
67
|
- Use a tier-specific title prefix:
|
|
64
68
|
- `[Architecture] <short finding>`
|
|
@@ -99,6 +103,7 @@ Use this structure in responses:
|
|
|
99
103
|
- impact
|
|
100
104
|
- confidence
|
|
101
105
|
4. GitHub issue publication status
|
|
106
|
+
- duplicate-check status and any matching existing issue URLs
|
|
102
107
|
- publication mode (`gh-cli` / `github-token` / `draft-only`)
|
|
103
108
|
- created issue URL or draft output per finding
|
|
104
109
|
5. Deferred follow-up
|
package/version-release/SKILL.md
CHANGED
|
@@ -15,7 +15,7 @@ description: "Guide the agent to prepare and publish a versioned release (versio
|
|
|
15
15
|
## Standards
|
|
16
16
|
|
|
17
17
|
- Evidence: Inspect the active change set, current version files, existing tag format, existing remote tags/releases, and root `CHANGELOG.md` `Unreleased` content before touching version files, tags, or release metadata.
|
|
18
|
-
- Execution: Use this workflow only for explicit release intent, run the required quality gates when applicable, and treat every conditional gate whose scenario is met as blocking before versioning or publication; hand the repository to `submission-readiness-check` before versioning work, invoke `archive-specs` directly whenever completed plan sets should be converted or project docs need alignment, and if the worktree is already clean inspect the current version, local/remote tag state, and existing GitHub release state before deciding whether the request is already satisfied;
|
|
18
|
+
- Execution: Use this workflow only for explicit release intent, run the required quality gates when applicable, and treat every conditional gate whose scenario is met as blocking before versioning or publication; hand the repository to `submission-readiness-check` before versioning work, invoke `archive-specs` directly whenever completed plan sets should be converted or project docs need alignment, and if the worktree is already clean inspect the current version, local/remote tag state, and existing GitHub release state before deciding whether the request is already satisfied; when the user explicitly wants the same prerelease version to point at newer fixes, retarget the existing prerelease tag and GitHub release instead of inventing an extra version bump; otherwise cut the release directly from `CHANGELOG.md` `Unreleased`, update versions and docs, commit, tag, push, and publish the GitHub release with actual release tooling rather than PR-surrogate directives; run git mutations sequentially and verify both the branch tip and release tag exist remotely before publishing the GitHub release.
|
|
19
19
|
- Quality: Never guess versions, align user-facing docs with actual code, do not bypass readiness blockers from `submission-readiness-check`, do not reconstruct release notes from `git diff` when curated changelog content already exists, and do not report release success until the commit, tag, and GitHub release all exist for the same version.
|
|
20
20
|
- Output: Produce a versioned release commit and tag, publish a matching GitHub release, and keep changelog plus relevant repository documentation synchronized.
|
|
21
21
|
|
|
@@ -69,11 +69,13 @@ Load only when needed:
|
|
|
69
69
|
- Read existing version files (for example `project.toml`, `package.json`, or repo-specific version files).
|
|
70
70
|
- Infer existing tag format (`vX.Y.Z` or `X.Y.Z`) from repository tags.
|
|
71
71
|
- Inspect existing local and remote tags plus any existing GitHub Release for the target version before creating new release metadata, so duplicate or conflicting releases are caught early.
|
|
72
|
+
- If the user explicitly asks to keep the same prerelease version or to `repoint`, `retarget`, or `move` an existing prerelease after follow-up fixes, treat that as a retarget flow: keep the version unchanged, confirm the existing prerelease tag/release name, and plan to move that tag/release to the new commit instead of bumping semver.
|
|
72
73
|
- If the requested version tag and matching published GitHub release already exist and point at the intended commit, report that the release is already complete instead of creating duplicate metadata.
|
|
73
74
|
- If the user provides the target version, use it directly.
|
|
74
75
|
- If it is missing, ask the user for the target version or semver bump type.
|
|
75
76
|
- Provide recommendations only when explicitly requested.
|
|
76
77
|
- Do not continue until you can state the current version, the intended next version, and the exact tag name that will be created.
|
|
78
|
+
- For retarget flows, explicitly state that the intended next version stays unchanged and that the existing tag name will be moved to the new commit.
|
|
77
79
|
6. Update version files
|
|
78
80
|
- Update every detected version file consistently.
|
|
79
81
|
- Preserve file formatting; change only version values.
|
|
@@ -87,15 +89,18 @@ Load only when needed:
|
|
|
87
89
|
- Update `AGENTS.md` only when agent workflow/rules changed.
|
|
88
90
|
8. Commit and tag
|
|
89
91
|
- Create a release-oriented commit message (for example `chore(release): publish 2.12.1`) when applicable.
|
|
90
|
-
-
|
|
92
|
+
- For new-version flows, create the version tag locally after commit.
|
|
93
|
+
- For prerelease retarget flows, move the existing tag locally only after the new fix commit exists, and verify the target commit hash before rewriting the tag.
|
|
91
94
|
- Re-read the version files after editing and before tagging to confirm they all match the intended release version.
|
|
92
95
|
9. Push
|
|
93
96
|
- Push commit(s) and the release tag to the current branch before publishing the GitHub release when the hosting platform requires the tag to exist remotely.
|
|
97
|
+
- For prerelease retarget flows, push the rewritten tag explicitly (for example `--force-with-lease` for the single tag only), then verify the remote tag hash matches local `HEAD` before touching the GitHub release.
|
|
94
98
|
- Do not overlap `git commit`, `git tag`, `git push`, or release-publish steps; wait for each mutation to finish before starting the next one.
|
|
95
99
|
- After pushing, verify the remote branch tip matches local `HEAD`, and verify the release tag exists remotely via `git ls-remote --tags <remote> <tag>`.
|
|
96
100
|
- If any git step finishes ambiguously or the remote hashes do not match local state, rerun the missing step sequentially and re-check before publishing the GitHub release.
|
|
97
101
|
10. Publish the GitHub release
|
|
98
102
|
- Create a non-draft GitHub release that matches the pushed version tag.
|
|
103
|
+
- For prerelease retarget flows, update the existing GitHub prerelease so it points at the rewritten tag/commit and refresh its notes when the new fix changes the shipped behavior.
|
|
99
104
|
- Use the release notes from the new `CHANGELOG.md` entry unless the repository has a stronger established release-note source.
|
|
100
105
|
- If the repository has publish automation triggered by `release.published`, ensure the GitHub release is actually published rather than left as a draft.
|
|
101
106
|
- Prefer `gh release create <tag>` or the repository's existing release tool when available.
|