docs(kyberforge): fix PR #91 review findings in ADR-0015 and apm docs
ADR-0015's Decision bullet stated ADR-0001 was superseded as present fact while Consequences framed it as conditional on issue #90 — reworded Decision to match, and added a Supersedes header (repo convention per ADR-0007/ADR-0010) so the pending change is visible from the title. Also fixed a forward-note that misattributed the pre-existing .agent.md convention (ADR-0005/0010) to the APM move, and reworded the rejected-plugins/apm/ rationale to acknowledge the shipped skills are actually generic rather than repo-specific. CONTEXT.md's Plugin/Plugin-marketplace glossary entries got a forward-pointer to ADR-0015 so a session-start read surfaces the pending manifest-authoring change. apm-orchestrate.md/.agent.md: removed a Hard Rule requiring ${VAR} secret indirection that can never fire (the orchestrator has no Edit/Write tool and never touches apm.yml — apm-workflow's SKILL.md already owns this rule where content is actually written); removed compile-manifest-check, an operation with no backing apm CLI command anywhere in the research docs; added explicit CLI mappings for add-package/add-marketplace so an executing agent can't invert them. marketplace.md's release steps shelled out to raw git add/commit/ tag/push — replaced with a pointer to the git-commits/git-remotes skills per AGENTS.md's "prefer plugin skills over raw shell" rule. compile.md now states audit runs after compile/pack (audit scans deployed output, not the source apm.yml) — answers a reviewer question that had no documented answer. Refs: #91 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0186ERbyACLRuRxPRnqwpa4m
This commit is contained in:
@@ -20,7 +20,6 @@ You resolve the package root once per dispatched operation (the directory contai
|
||||
|
||||
These are non-negotiable regardless of `confirm` or any skill-local override:
|
||||
- `apm publish` claims a version on a registry — treat it as irreversible. Refuse without explicit `confirm: true`; always dispatch with `--dry-run -v` first and surface that output to the caller before the real publish, even when `confirm: true` was given.
|
||||
- MCP server secrets in any `apm.yml` content this orchestrator writes or edits must use `${VAR}` indirection — never a literal value.
|
||||
- `apm marketplace add` (registering a marketplace as a consumer) and `apm marketplace package add` (registering a local package into a marketplace being built) are opposite directions — resolve which one the caller means from the operation name, never guess from context alone.
|
||||
- `apm.yml`'s `type:` field constrains what `.apm/` may contain — when scaffolding (`init-package`), set `type:` before any primitive content is added; do not defer it.
|
||||
- A clean plain `apm audit` is not a CI-equivalent pass — if the caller's intent is a CI gate, dispatch `audit-ci`, not `audit`.
|
||||
@@ -38,8 +37,8 @@ When invoked, you:
|
||||
## Inputs
|
||||
|
||||
- **operation:** string, one of:
|
||||
- configure: init-package, compile-manifest-check (does `apm.yml` parse and match `type:`)
|
||||
- marketplace: init-marketplace, check-marketplace, add-package, add-marketplace
|
||||
- configure: init-package
|
||||
- marketplace: init-marketplace, check-marketplace, add-package (→ `apm marketplace package add` — register a local package into a marketplace being built), add-marketplace (→ `apm marketplace add` — register a marketplace as a consumer)
|
||||
- compile: compile, pack, publish, run-script
|
||||
- audit: audit, audit-ci
|
||||
- **package_root:** string, path to the directory containing the target `apm.yml` (required for every operation except `init-marketplace` when scaffolding the repo root)
|
||||
|
||||
@@ -20,7 +20,6 @@ You resolve the package root once per dispatched operation (the directory contai
|
||||
|
||||
These are non-negotiable regardless of `confirm` or any skill-local override:
|
||||
- `apm publish` claims a version on a registry — treat it as irreversible. Refuse without explicit `confirm: true`; always dispatch with `--dry-run -v` first and surface that output to the caller before the real publish, even when `confirm: true` was given.
|
||||
- MCP server secrets in any `apm.yml` content this orchestrator writes or edits must use `${VAR}` indirection — never a literal value.
|
||||
- `apm marketplace add` (registering a marketplace as a consumer) and `apm marketplace package add` (registering a local package into a marketplace being built) are opposite directions — resolve which one the caller means from the operation name, never guess from context alone.
|
||||
- `apm.yml`'s `type:` field constrains what `.apm/` may contain — when scaffolding (`init-package`), set `type:` before any primitive content is added; do not defer it.
|
||||
- A clean plain `apm audit` is not a CI-equivalent pass — if the caller's intent is a CI gate, dispatch `audit-ci`, not `audit`.
|
||||
@@ -38,8 +37,8 @@ When invoked, you:
|
||||
## Inputs
|
||||
|
||||
- **operation:** string, one of:
|
||||
- configure: init-package, compile-manifest-check (does `apm.yml` parse and match `type:`)
|
||||
- marketplace: init-marketplace, check-marketplace, add-package, add-marketplace
|
||||
- configure: init-package
|
||||
- marketplace: init-marketplace, check-marketplace, add-package (→ `apm marketplace package add` — register a local package into a marketplace being built), add-marketplace (→ `apm marketplace add` — register a marketplace as a consumer)
|
||||
- compile: compile, pack, publish, run-script
|
||||
- audit: audit, audit-ci
|
||||
- **package_root:** string, path to the directory containing the target `apm.yml` (required for every operation except `init-marketplace` when scaffolding the repo root)
|
||||
|
||||
@@ -24,6 +24,8 @@ apm pack --marketplace=claude --json # JSON output for CI pipelines
|
||||
|
||||
Bundles a producer package into a distributable artifact. Default to `--dry-run -v` first when packing something for the first time or after a dependency change — resolution errors surface before anything is written.
|
||||
|
||||
Run `apm audit` after compile/pack, not before — audit scans deployed/compiled output, not the source `apm.yml` manifest; see `references/audit.md`.
|
||||
|
||||
## Publish
|
||||
|
||||
```bash
|
||||
|
||||
@@ -11,10 +11,11 @@ apm marketplace init # 1. add the marketplace: block to
|
||||
$EDITOR apm.yml # 2. describe each package
|
||||
apm marketplace check # 3. validate refs resolve
|
||||
apm pack # 4. build marketplace artifacts
|
||||
git add apm.yml .claude-plugin/marketplace.json
|
||||
git commit -m "Release v1.0.0" && git tag v1.0.0 && git push --tags
|
||||
```
|
||||
|
||||
5. Commit and release — via the `git-commits` skill (commit message + tag) and `git-remotes` skill
|
||||
(push), not raw `git` commands; see this repo's AGENTS.md "Prefer plugin skills over raw shell".
|
||||
|
||||
`apm pack` emits `.claude-plugin/marketplace.json` as one of its compile targets — an APM-based marketplace stays consumable by Claude Code's existing marketplace mechanism without a separately hand-maintained file.
|
||||
|
||||
## Registering a package into a marketplace you're building
|
||||
|
||||
Reference in New Issue
Block a user