factory-audit gains three Step 0 rows and flows for the apm primitives
that have no container of their own: a .json file under hooks/, a
*.instructions.md and a *.prompt.md. apm validates almost none of them
(invalid hook JSON is skipped silently, instruction validate() only
warns, input: names are never checked against ${input:x}), so the
deterministic checks live in a new scripts/lib-checks-primitive.sh,
wired into validate.sh's path-shape detection. Each check and tier
traces to the Authoring checklists in the microsoft-apm research docs.
- Hook: JSON/shape/event-list checks mirroring the Copilot payload
validator, never-firing event casing, missing/escaping/non-executable
scripts (FAIL); deprecated filename routing and ${CLAUDE_PLUGIN_ROOT}
(SUGGESTION).
- Instruction: location, frontmatter, description, body, stem clash
(FAIL); missing or list applyTo and unread keys (SUGGESTION).
- Prompt: location/name, frontmatter, description, input names, the
upstream `- name: x` docs bug, declared-vs-used ${input:x} (FAIL);
ADR-0029 description length and trigger clause, dropped keys,
camelCase aliases, argument-hint with input (SUGGESTION). Whether a
prompt carries procedure is judgment in prompt-flow.md, not a script
heuristic.
Vale now lints *.instructions.md and *.prompt.md with the Kyberforge
style; test-vale-wrap.sh gains their probe rows. New
tests/validate-primitive.bats (31 cases). kyberforge 2.0.1 -> 2.1.0 with
the executables.allow key, catalog 0.5.1 -> 0.5.2, marketplace.json
regenerated.
Refs #94
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KkT7RSDwDbmrM9T34b6sTi
62 lines
2.2 KiB
JSON
62 lines
2.2 KiB
JSON
{
|
|
"name": "holocron",
|
|
"description": "AI development skills for Claude Code, and for GitHub Copilot through apm — factory, design, implement, review, and cross-cutting workflows.",
|
|
"version": "0.5.2",
|
|
"owner": {
|
|
"name": "Defame1297",
|
|
"email": "defame1297@rkdr.net",
|
|
"url": "https://git.rkdr.net/Defame1297/"
|
|
},
|
|
"plugins": [
|
|
{
|
|
"name": "kyberforge",
|
|
"description": "Skills and agents for creating, maintaining, and managing an apm plugin marketplace for Claude Code and GitHub Copilot.",
|
|
"version": "2.1.0",
|
|
"category": "Developer Tools",
|
|
"source": "./plugins/kyberforge"
|
|
},
|
|
{
|
|
"name": "bin",
|
|
"description": "Skills for everyday AI-assisted development work that is not tied to a single tool, forge or language, and has not yet been split into a focused plugin.",
|
|
"version": "1.1.9",
|
|
"category": "Utilities",
|
|
"source": "./plugins/bin"
|
|
},
|
|
{
|
|
"name": "git",
|
|
"description": "Skills and agents for working with a local Git clone over the git wire protocol, and for authoring and running the pre-commit hooks that guard it.",
|
|
"version": "1.3.9",
|
|
"category": "Version Control",
|
|
"source": "./plugins/git"
|
|
},
|
|
{
|
|
"name": "gitea",
|
|
"description": "Skills and agents for working with a Gitea forge through its HTTP API — the forge's own objects, as distinct from the local git clone.",
|
|
"version": "1.3.10",
|
|
"category": "Version Control",
|
|
"source": "./plugins/gitea"
|
|
},
|
|
{
|
|
"name": "onedev",
|
|
"description": "Skills and agents for working with a OneDev forge through the TOD CLI — the forge's own objects, as distinct from the local git clone.",
|
|
"version": "0.1.1",
|
|
"category": "Version Control",
|
|
"source": "./plugins/onedev"
|
|
},
|
|
{
|
|
"name": "core",
|
|
"description": "Skills for authoring and auditing a repo's AGENTS.md and the provider adapter files that defer to it.",
|
|
"version": "1.1.4",
|
|
"category": "Productivity",
|
|
"source": "./plugins/core"
|
|
},
|
|
{
|
|
"name": "lint",
|
|
"description": "Skills and agents for configuring and running linters.",
|
|
"version": "1.1.9",
|
|
"category": "Developer Tools",
|
|
"source": "./plugins/lint"
|
|
}
|
|
]
|
|
}
|