#3335's P3 tail bundles permissionMode, MultiEdit and
context as one cosmetic sweep of 74 declarations. Reading the CC 2.1.227 binary
promoted two of them and disqualified the third. The sweep ships as 5 files, not 74.
CC's plugin-agent loader walks a fixed key array and warns on every one it finds set:
[permissionMode, hooks, mcpServers] `Plugin agent file ${e} sets ${G}, which is ignored for plugin agents. Use .claude/agents/ for this level of configuration.`
| ignored key | ork agents setting it | meaning |
|---|---|---|
permissionMode | 5 | permissionMode: plan never applied |
hooks | 33 | the 45 agent-scoped hooks, see #3430 |
mcpServers | 36 | and a perf test FAILs any agent missing it |
context | 36 | absent from the array, so possibly honoured |
Each one is a load-time warning for a
setting that does nothing. That makes removal a fix rather than tidying. It also means the fields are
inert because ork ships plugin agents — copied into a project's own
.claude/agents/, they would work.
| field | issue says | evidence says | action |
|---|---|---|---|
MultiEdit | 12 dead declarations | 5 are tools: GRANTS (dead); 7 are disallowedTools: [Write, Edit, MultiEdit] DENIES | removed 5, kept 7 |
permissionMode | zero consumers | in CC's ignored array, and warns on load | removed 5 |
context | genuinely cosmetic, 36 agents + 4 gates | NOT in the ignored array | dropped from this PR |
Granting a tool that does not exist is dead weight and misleads the reader. Denying one is a
guard that costs nothing today and protects if CC ever reintroduces MultiEdit. Collapsing
both into "12 declarations of a nonexistent tool" would have removed a safeguard to satisfy a count.
All 5 agents that lost a grant retain 2 Write/Edit grants, so
test-agent-model-tool-correlation.sh's write-capable classification is unchanged.
The issue's case for deleting context: from 36 agents is that CC does not read it. The
ignored-key array does not contain it. Deleting a field that may control agent context forking, and
loosening three gates to allow its absence, cannot rest on an unverified premise. It needs its own
proof, so it gets its own change.
PASSTHROUGH_KEYS build-plugins.sh:97, not :100 (untouched either way)
test-agent-lifecycle-e2e needs NO loosening: its context check is
already conditional on the field being present
category still live ork-side, correctly not a candidate
build · hooks-build 0 validate-frontmatter · counts 0 test:agents · test:manifests 0 test-build-drift 0 (regenerated plugins/ committed) model-tool-correlation 0 context-modes · agent-lifecycle 0 static-analysis 0 security suite 0 net 22 files, -24 lines
Traps asserted untouched, not merely avoided. The ship script refuses to commit
if scripts/build-plugins.sh, bin/validate-frontmatter.sh,
tests/agents/test-agent-context-modes.sh or
tests/performance/test-mcp-overhead.sh shows a diff, and it recounts that
context: is still on 36 agents and the MultiEdit denies still on 7.