Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,7 @@ Supported primaries deny watcher-arm anti-patterns before execution, including s
The tool reference names the integration form.
Validate changes against the real harness in a scratch project before trusting them.

A primary must also account for built-in delegation that can create work outside Firstmate's durable records.
Claude's verified delegation guard is in `references/harness/claude.md`.
`../../../docs/subagent-guard.md` owns its full contract, local hardening, escape hatch, and per-harness applicability review.
Never generalize Claude tool names or permissions without live evidence.
[`Primary helper agents and durable project work`](../../../../../docs/subagent-guard.md) owns helper-tool availability and points to the unchanged project-work delegation authority.

## Session start

Expand Down
11 changes: 2 additions & 9 deletions .agents/skills/harness-adapters/references/harness/claude.md
Original file line number Diff line number Diff line change
Expand Up @@ -86,13 +86,6 @@ The model handles notifications but never routine re-arm.
In a home with `config/supervision-host` the hook foregrounds the supervision host instead, which also runs Claude's print mode as its headless engine; [`supervision-host.md`](../../../../../docs/supervision-host.md#engines) owns the verified engine facts.
Claude's PreToolUse seatbelt blocks directly, and its deny is honored only with empty stdout; `../../../docs/arm-pretool-check.md` owns that contract.

### Delegation guard
### Helper agents

Claude delegation, scheduling, and worktree tools can create work without `state/<id>.meta`, making guards unable to count it.
`../../../bin/fm-subagent-pretool-check.sh` denies delegation-shaped tool names.
A primary should also keep an untracked home-local `permissions.deny` for known delegation tools so they disappear from the schema.
Never track it in project `.claude/settings.json`, which is Claude-only and propagates to worker copies where it would disarm legitimate delegation.
`../../../docs/subagent-guard.md` owns the contract, recommendation, `FM_ALLOW_SUBAGENT=1`, and applicability review.

On Claude 2.1.217 the tool presents as `Agent`, and both `Agent` and `Task` worked as deny keys in an A/B with nonsense control.
`permissions.allow` pre-approves rather than controls availability, so no closed positive allowlist exists.
[`Primary helper agents and durable project work`](../../../../../docs/subagent-guard.md) owns helper-tool availability and points to the unchanged project-work delegation authority.
9 changes: 0 additions & 9 deletions .claude/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,6 @@
"command": "[ -z \"${GROK_AGENT:-}${GROK_HOOK_EVENT:-}\" ] || exit 0; exec \"$CLAUDE_PROJECT_DIR\"/bin/fm-cd-pretool-check.sh --claude"
}
]
},
{
"matcher": ".*",
"hooks": [
{
"type": "command",
"command": "\"$CLAUDE_PROJECT_DIR\"/bin/fm-subagent-pretool-check.sh --claude"
}
]
}
],
"UserPromptSubmit": [
Expand Down
207 changes: 0 additions & 207 deletions bin/fm-subagent-pretool-check.sh

This file was deleted.

2 changes: 0 additions & 2 deletions bin/fm-test-run.sh
Original file line number Diff line number Diff line change
Expand Up @@ -293,7 +293,6 @@ family_for_basename() {
fm-calm-claude-mod.test.sh|\
fm-harness-adapter-references.test.sh|\
fm-send-popup-settle.test.sh|fm-send-settle.test.sh|\
fm-subagent-pretool-check.test.sh|\
fm-supervision-instructions.test.sh|fm-task-delivery.test.sh|\
fm-timeout-lib.test.sh|\
fm-tmux-submit-busy.test.sh|fm-trace-context-lib.test.sh|\
Expand Down Expand Up @@ -827,7 +826,6 @@ tests/fm-startup-memory-budget.test.sh 7392
tests/fm-startup-network.test.sh 61336
tests/fm-stat-shadowing.test.sh 48
tests/fm-stow-cascade.test.sh 3022
tests/fm-subagent-pretool-check.test.sh 949
tests/fm-supervision-events.test.sh 659
tests/fm-supervision-host-live-e2e.test.sh 50
tests/fm-supervision-host.test.sh 41512
Expand Down
1 change: 0 additions & 1 deletion docs/scripts.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,6 @@ The shared no-mistakes gate lifecycle boundary is summarized in [architecture.md
| `fm-kimi-turnend-hook.sh` | Surgically install or remove Kimi's guarded global crew turn-end hook |
| `fm-arm-pretool-check.sh` | Stable PreToolUse transport for the watcher-arm command policy (docs/arm-pretool-check.md) |
| `fm-arm-command-policy.mjs` | Semantic owner of the watcher-arm PreToolUse policy (docs/arm-pretool-check.md) |
| `fm-subagent-pretool-check.sh` | Primary-home delegation-shape PreToolUse guard (docs/subagent-guard.md) |
| `fm-supervision-instructions.sh` | Render the session-start primary-harness supervision block or the one-line repair instruction |
| `fm-home-seed.sh` | Transactionally provision a local secondmate home and maintain `data/secondmates.md` |
| `fm-remote-home-seed.sh` | Register and provision a whole secondmate home on an SSH-reachable host |
Expand Down
Loading
Loading