Skip to content

Sharpen CLAUDE.md wake-compliance stanza + fix settings churn (v0.8.1) - #5

Merged
convenientlymike merged 1 commit into
mainfrom
docs/wake-compliance-stanza
Sep 5, 2026
Merged

convenientlymike merged 1 commit into
mainfrom
docs/wake-compliance-stanza

Conversation

@convenientlymike

Copy link
Copy Markdown
Owner

The agent-facing capstone of the wake-reliability work.

Delivery of DMs is now a mechanism (v0.7.0) and visibility is automatic (v0.8.0). But two steps are irreducibly the agent's job — a hook physically cannot call the Monitor tool: arming the watcher, and acting on a DM once received. Compliance is the only lever left for those, so the managed CLAUDE.md stanza is where to amplify it.

Changed

  • Rewrote the managed stanza into a compliance amplifier for exactly those two steps:
    • "ARM your inbox watcher first thing each session" — explicit first action, with the precise Monitor-tool invocation (persistent: true, timeout_ms: 3600000), and a note that the ⚠ FLEET WAKE NOT ARMED re-nudge (v0.8.0) fires every turn until done.
    • "A FLEET DM is a TASK, not an FYI — ACT on it" — delivery is guaranteed regardless of arming (arming only changes latency); so read it, do what it asks, reply with the result. Never merely acknowledge — an unactioned DM stalls a waiting agent.
    • Points to fleet.sh monitors for reachability before relying on a wake.

Fixed

  • init no longer re-dirties .claude/settings.json every run. The checked-in file was compact one-line arrays while init emits pretty-printed JSON, so each run produced a whitespace-only diff (drift that masks real changes). Committed the installer-canonical pretty form → init is now byte-idempotent on settings.json (verified: two consecutive runs = identical output).

Verified

  • shellcheck --severity=warning install.sh .fleet/bin/*.sh → exit 0 (CI's exact invocation).
  • selftest-collateral.sh → every control bites, incl. SETTINGS (hooks still wired after reformat) + LIVENESS.
  • fleet.sh init refreshes the marker-guarded stanza in place; the checked-in CLAUDE.md matches its output.

🤖 Generated with Claude Code

Delivery of DMs is a mechanism (0.7.0) and visibility is automatic (0.8.0),
but arming the Monitor and ACTING on a received DM are irreducibly the agent's
job — a hook cannot call the Monitor tool. Rewrite the managed stanza to
amplify exactly those two steps: arm-first-thing with the precise Monitor
invocation, and "a FLEET DM is a task to ACT on, not an FYI" (delivery is
guaranteed; arming only changes latency). Point to `fleet.sh monitors` for
reachability.

Also fix a perpetual churn: `init` emits pretty-printed settings.json while the
checked-in file was compact one-line arrays, so every `init` re-dirtied it with
a whitespace-only diff. Commit the installer-canonical pretty form → `init` is
now byte-idempotent on settings.json (verified by two consecutive runs).

Verified: shellcheck --severity=warning clean (CI's exact invocation);
selftest-collateral OK (every control bites, incl. SETTINGS + LIVENESS);
`fleet.sh init` refreshes the stanza in place.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@convenientlymike
convenientlymike merged commit bbde444 into main Sep 5, 2026
2 checks passed
@convenientlymike
convenientlymike deleted the docs/wake-compliance-stanza branch September 5, 2026 18:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant