docs: stop the preloaded instruction set asserting machine state
Why: four defects in the files every session pays for, all introduced or left behind by the trim. AGENTS.md told agents the `<plugin>:` form still resolves "because user-scope native installs were left enabled on purpose", and that a working namespaced call "is not something to fix". That premise is false on this machine: installed_plugins.json is empty, no enabledPlugins key exists in ~/.claude.json, and ~/.apm/marketplaces.json is empty. ADR-0018 already reversed itself once on this exact claim (Correction 2026-08-14) using that same enablement as its evidence, so flipping the assertion again would be the third revision in three. Both files now assert nothing about install state at all, which removes the flip-flop surface instead of re-aiming it. The other three are guard-rails whose instruction survived the trim while the caveat that made it safe did not: - The run-tests.sh line omitted --strict, so it named the one invocation that reports SKIPPED rather than failed when a dependency is missing. gates.md records this gate going green having verified 15 of 17 suites on a vale-less PATH. .pre-commit-config.yaml:70 already uses --strict for that reason. - The .claude/settings.json prohibition lost its ADR-0019 exception, so an agent applying it literally would strip apm's own merged SessionStart entry and create the drift the rule exists to prevent. - LESSONS.md still routed graduated rules to CONTEXT.md's Principles section, which this branch deleted. Implementation notes: the six terms the trim dropped while AGENTS.md still claimed CONTEXT.md glosses everything -- authoring root, content mirror, apm package, output profile, near-miss, vacuous green -- are restored as one-line entries per CONTEXT-FORMAT.md, sourced from architecture.md, gates.md and skill-audit's description-quality.md rather than reworded. ADR-0018 gets a third dated note recording the observation and the fact that the state has now been described two ways, and its stale user-scope inventory is replaced by a pointer to it; the decision it records is untouched. LESSONS.md:3 carried the identical stale claim as :5 and is fixed with it. Impact: preloaded context is now free of assertions about machine state. Refs: #105 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TmFqzpuExLJv3m114XVE9w
This commit is contained in:
40
CONTEXT.md
40
CONTEXT.md
@@ -57,6 +57,24 @@ The deployable unit — one or more skills, agents, hooks, commands, and MCP ser
|
||||
single installable directory under `plugins/<name>/`, compiled from that plugin's `.apm/` source.
|
||||
_Avoid_: package, bundle, module
|
||||
|
||||
**apm package**:
|
||||
The unit apm builds and installs — `plugins/<name>/apm.yml` plus the hand-authored
|
||||
`plugins/<name>/.apm/` tree it compiles from (ADR-0015).
|
||||
_Avoid_: plugin directory, source tree
|
||||
|
||||
**Content mirror**:
|
||||
The generated flat `skills/`, `agents/`, `commands/`, `instructions/`, `extensions/` directories and
|
||||
merged `hooks/hooks.json` at a plugin root — also called the flat mirror — compiled from that
|
||||
plugin's `.apm/` tree so hosts that convention-scan those paths discover the content (ADR-0017).
|
||||
_Avoid_: generated copy, duplicate tree
|
||||
|
||||
**Output profile**:
|
||||
An `apm pack` target format for a generated manifest; apm has `claude`
|
||||
(`.claude-plugin/marketplace.json`) and `codex` (the differently-shaped
|
||||
`.agents/plugins/marketplace.json`) and none for Copilot CLI's legacy path, which a sync script
|
||||
mirrors instead. Mechanics: `docs/spec/architecture.md`.
|
||||
_Avoid_: build target, export format
|
||||
|
||||
**Plugin marketplace**:
|
||||
A Git repository carrying a `marketplace.json` manifest that lists installable plugins. There is no
|
||||
backend, registry, or SaaS — the Git repo is the marketplace.
|
||||
@@ -135,6 +153,22 @@ The deterministic Vale pass that runs ahead of `skill-audit`/`agent-audit`'s Des
|
||||
so LLM judgment is spent only on what a pattern cannot catch. Mechanics: `docs/spec/gates.md`.
|
||||
_Avoid_: linting, style check
|
||||
|
||||
**Authoring root**:
|
||||
The directory a gate resolves against — the nearest ancestor of the file being checked holding
|
||||
`plugins/*/.apm/skills` or `plugins/*/.apm/agents`, falling back to the nearest ancestor holding
|
||||
`.git`. The walk: `docs/spec/gates.md`.
|
||||
_Avoid_: repo root, project root
|
||||
|
||||
**Near-miss**:
|
||||
A sibling skill or agent whose plausible queries share keywords with this one but need something
|
||||
different — the only thing a boundary clause should exclude.
|
||||
_Avoid_: overlap, similar skill
|
||||
|
||||
**Vacuous green**:
|
||||
A check that reports success because it measured nothing — zero files scanned, an unparsed value read
|
||||
as empty, a conditional branch that never armed.
|
||||
_Avoid_: false pass, clean run
|
||||
|
||||
**Issue**:
|
||||
The cross-provider term for a tracked unit of work. Gitea is this repo's canonical tracker
|
||||
(ADR-0007), but skills say "linked issue" generically rather than naming a provider.
|
||||
@@ -181,9 +215,9 @@ _Avoid_: ticket, card, task
|
||||
- "skill" was used for both the authored `SKILL.md` under `plugins/<name>/.apm/skills/` and the
|
||||
deployed copy under `.claude/skills/` — resolved: the authoring source is the **Skill**; the
|
||||
deployed copy is gitignored `apm install` output and is never edited.
|
||||
- Skills answer to two names, bare (`gitea-prs`) and namespaced (`gitea:gitea-prs`), because
|
||||
user-scope native installs were left enabled deliberately (ADR-0018) — resolved: write the bare
|
||||
name; a working namespaced call is not evidence of a defect.
|
||||
- Skills can answer to two names, bare (`gitea-prs`) and namespaced (`gitea:gitea-prs`), depending on
|
||||
whether a native install exists at user scope alongside the apm one (ADR-0018) — resolved: write
|
||||
the bare name, which is the only form `apm install` produces.
|
||||
- "context" means both the model's live token window (the **Preload tax** sense) and the bounded
|
||||
domain this file describes — resolved: unqualified "context" in this repo means the token window.
|
||||
- "audit" was used for both an author skill's inline closeout and `forge`'s independent
|
||||
|
||||
Reference in New Issue
Block a user