Switch the SessionStart hook to apm's target-neutral ${PLUGIN_ROOT} token.
Two scratch packages differing only in the token deploy byte-identical
SessionStart entries with apm 0.28.0, matching the committed
.claude/settings.json, so the deployed output does not change. The test
pin in tests/test-apm-current-hook.sh moves with it.
Correct the claim that Copilot loads no hooks from kyberforge. targets:
is package-wide, so apm also writes .github/hooks/kyberforge-hooks.json
(nested shape passed through, runtime unverified) and merges into
.codex/hooks.json when .codex/ exists. Recorded as accepted in an
ADR-0019 amendment dated 2026-09-28; README and docs/hooks.md updated.
Refs #94
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KkT7RSDwDbmrM9T34b6sTi
kyberforge
Skills and agents for creating, maintaining, and managing a Claude Code / Copilot CLI plugin marketplace.
Install
apm is the only supported install path (ADR-0024). Declare this package in the consuming project's apm.yml:
dependencies:
apm:
- git: git@git.rkdr.net:Defame1297/holocron.git
path: plugins/kyberforge
Then:
apm install
The entry above is unpinned and tracks the remote's default branch — add ref: <tag> to pin a release. Registering the catalogue instead (apm marketplace add git@git.rkdr.net:Defame1297/holocron.git --name holocron) gets you the kyberforge@holocron short name, but writes to ~/.apm/marketplaces.json at user scope; the git+path object needs nothing beyond the manifest.
Native plugin installs do not work. This package ships no per-plugin manifest and no flat content directories, so a host that installs it natively gets zero skills, agents and hooks — and Claude Code raises no error while doing it (ADR-0024).
Contents
Authoring source lives in .apm/; it is the only content source and the only thing apm install deploys (ADR-0024).
| Component | Path | Description |
|---|---|---|
| Skills | .apm/skills/ |
Slash commands available after install |
| Agents | .apm/agents/*.agent.md |
Role-based agents; one vendor-neutral .agent.md per agent (ADR-0016) |
| Hooks | .apm/hooks/ |
Event-triggered automation — authored for Claude Code, see below |
Hooks are authored for Claude Code, but apm writes them for every package target. apm merges .apm/hooks/*.json into the consuming project's .claude/settings.json at install. Because kyberforge also targets Copilot and Codex, apm writes the same hook to .github/hooks/kyberforge-hooks.json (nested shape passed through, not reshaped) and into .codex/hooks.json when .codex/ exists. Whether those harnesses execute it is unverified; the hook's behaviour is Claude-specific and it exits silently without an apm.lock.yaml. Details are in docs/hooks.md and ADR-0019's 2026-09-28 amendment.
Skills
| Skill | Description |
|---|---|
forge |
Grill an unclassified "I want to add something" request, decide whether it's a skill, agent, hook, instruction, prompt, plugin, or marketplace entry, then route to the matching author skill |
skill-author |
Create or improve a skill from scratch, audit findings, or inline feedback |
agent-author |
Author an agent definition file |
primitive-author |
Create or improve an apm hook, instruction or prompt, gated on whether it should be one at all (ADR-0029 for prompts) |
factory-audit |
Audit a skill directory, an agent definition, or an apm hook, instruction or prompt — structure, provider safety, description and body quality, and provenance; produces a findings report. Auto-detects which it was handed (ADR-0025) |
apm-install |
Install or upgrade the apm CLI and set up the agent runtimes it drives (Copilot CLI, Codex, Gemini, generic llm) |
apm-workflow |
Author apm.yml, scaffold an apm package/marketplace, install dependencies, and compile/pack/publish/audit apm content |
Pre-commit tooling (pc-author, pc-run) lives in the git plugin, not here.
Author
Defame1297