primitive-author: - description excludes read-only review (-> factory-audit) - validation Gotcha now matches the research: compile never reads prompts, install fails only on a bad Copilot hook payload and warns on prompt input names and dropped keys - instruction fold-in into AGENTS.md/CLAUDE.md stated as conditional on dedup and --force-instructions - hook checklist gains the wrapped-shape Must, drops hardlinks, notes why executable is stricter than the research, and states the separate Copilot-targeted package route instead of a blanket "don't" - prompt Must 5 keeps the research's Copilot-only-key exception; adds model-slug and 250-char Shoulds; descriptions name skills or agents - placeholder instruction covers both FILL IN and FILL_IN_ tokens factory-audit: hardlink FAIL scoped to instructions and prompts (find_hook_files skips symlinks only), with bats cases; prompt-flow description rubric names skills or agents. forge: version-bump, apm-routes and sources references updated for the primitive route. Refs #94 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KkT7RSDwDbmrM9T34b6sTi
1.9 KiB
source_keys
| source_keys | |
|---|---|
|
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.
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 theversionfield in that package'sapm.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 updateapm.ymland 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>."