KeiSeiKit-1.0/_capabilities/tools/deny-tools/text.md
Parfii-bot e4b64418fc feat(convergence/u2): capability renames + back-compat aliases
Pre-unlock wave U2. Task 3 from CONVERGENCE-PLAN — rename misleading
capability names, keep old names as deprecated aliases.

Renames:
- tools::read-only → tools::deny-tools (mechanism is tool-name denial,
  not "read-only" metaphor)
- tools::cargo-only-bash → tools::bash-allowlist (mechanism is Bash
  pattern allow-list; cargo-only is one config value)

Back-compat via registry.resolve_alias():
- Old dir _capabilities/tools/{read-only,cargo-only-bash}/ retained with
  capability.toml-only stub: `alias = "<new-name>"` + `deprecated` field
- registry.rs loads alias stubs, redirects lookup before dispatch
- warn_deprecated_once() emits single-shot stderr per alias per process
  via OnceLock<Mutex<HashSet>>
- Zero breaking change to existing manifests / task.toml referencing
  old names

Rust impl files renamed in place:
- gates/tools_read_only.rs → gates/tools_deny_tools.rs (struct
  DenyTools)
- gates/tools_cargo_only_bash.rs → gates/tools_bash_allowlist.rs
  (struct BashAllowlist)
- gates/mod.rs + registry.rs + gate_smoke.rs updated

Roles updated (3): read-only.toml, explorer.toml, edit-local.toml —
reference new names directly.

Tests: kei-agent-runtime 41/41 (was 40, +1 deprecated_aliases_resolve
_to_new_names), _assembler 40/40 unchanged (substrate role expansion
follows new paths).

Docs updated: AGENT-ROLES.md, AGENT-SUBSTRATE-SCHEMA.md, 4 _manifests
referencing the old names (comment-only annotations).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 03:43:40 +08:00

1.1 KiB

Read-only agent (deny-tools capability)

You MUST NOT use the Edit or Write tools. Any attempt to call them is blocked at the gate.

You are a read-only role. Your job is to inspect, explain, analyse, or review — never to mutate the filesystem. Use Read, Glob, Grep, and (where permitted) Bash for read-only commands and WebFetch to work through what is already on disk and on the web.

If your task appears to require an edit, STOP. Do not try to work around the tool denial (e.g. by shelling out sed/awk through Bash, by creating a file via cat > file <<EOF, or by piping a heredoc into tee). The orchestrator considers such attempts a policy violation and will reject your return.

Return your findings as a structured report (see the output::report-format and, if applicable, output::severity-grade capabilities that accompany this role). Include every file path and line number you think the follow-up editor should touch — the orchestrator will route the actual edits to an edit-local or edit-shared agent.

Reading any file in the repository is permitted and encouraged.