Files
holocron/plugins/kyberforge/.apm/skills/forge/references/version-bump.md
Defame1297 965208bddd fix(kyberforge): resolve PR #144 review and audit round 2
- factory-audit: ./ and bare/absolute script checks scoped to command
  position (no false FAILs on ./src or printf); hook sources limited to
  .apm/hooks or package-root hooks/; Kiro-aware lowercase events;
  unfilled template placeholders FAIL; repo-only instructions FAIL at
  any scope; Vale description FAIL documented; bats 367 -> 378
- primitive-author: split-quote/spaced paths and handler-less entries
  promoted to Must; Step 4.2 renders into a scratch consumer instead of
  a no-op dry run; dispatch and gate hand-off trimmed
- apm-workflow 1.0.2: mutual boundary with primitive-author
- forge: no double package bump; gotcha wording
- skill-author: create keeps seeded 0.1.0 (ADR-0022); portable,
  retry-safe new-skill.sh; template and flow consistency fixes
- hook docs: cite the ADR-0019 correction; guard caveat

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KkT7RSDwDbmrM9T34b6sTi
2026-09-28 20:50:22 +00:00

2.2 KiB

source_keys
source_keys
claude-code-subagents-docs

Bumping the package version after a route

Reached from SKILL.md Step 3 after a route has finished. A skill route always lands here: skill-author moves only a skill's own metadata.version, which is not the package manifest's number, so the package version is still behind when it reports done. agent-author and primitive-author bump the resolved package's apm.yml themselves at plugin/APM scope, and apm-workflow's configure flow carries the same policy — read those routes' output before acting here, because a second bump for one change is wrong.

Find the owning package

Walk up from the artifact's path to the nearest ancestor apm.yml that declares a top-level type: field (instructions, skill, hybrid or prompts).

An apm.yml with no type: field is a marketplace-only manifest: it lists packages rather than declaring one, so it does not count as a match. Skip it and keep walking up.

Skip this step entirely if no ancestor apm.yml carries a type: field: the artifact is then standalone or scoped to a user agent directory, and there is no package to version.

Skip the bump, and report that you skipped it, if the branch already moved this package's version for unreleased work: git diff $(git merge-base HEAD main) -- <package>/apm.yml shows a changed version: line. One bump covers all unreleased work on a branch — primitive-author skips on the same condition — so bumping again here double-counts it.

Delegate the bump

Invoke apm-workflow as a clean-context subagent — fresh, not forked — with this brief:

"The package at <package-path> gained a new <artifact-type> (<artifact-name>). Bump the version field in that package's apm.yml. Determine whether to bump minor (0.1.0) or patch (0.0.1) based on whether this is a new capability (minor) or a fix/refactor (patch). Do not release or tag — just update apm.yml and commit."

Clean context rather than a fork is the point: the bump decision is made independently, without anchoring on the authoring conversation that just argued for the artifact's significance.

Then report to the user: "Updated <package-name> version from <old> to <new> to reflect the new <artifact-name>."