Grand Diomande Research · Full HTML Reader

SEA-4.2 — /skill mute and /skill unmute

Implemented skill mute/unmute controls for the SEA ecosystem. Users can now silence individual skills from autonomous activation via Tier 1 routing and Tier 2 scoring while preserving all skill state. Mute events are logged to activation-log.jsonl for audit trail.

Agents That Account for Themselves architecture technical paper candidate score 28 .md

Full Public Reader

SEA-4.2 — /skill mute and /skill unmute

Summary

Implemented skill mute/unmute controls for the SEA ecosystem. Users can now silence individual skills from autonomous activation via Tier 1 routing and Tier 2 scoring while preserving all skill state. Mute events are logged to activation-log.jsonl for audit trail.

Changes

- File: `[home-path]` — Created. Core controller with `mute`, `unmute`, `status`, `list-muted` subcommands. Manages `muted` boolean in state.json, tracks `muted_at` timestamp and `muted_reason`, increments `suppressed_count`, and logs mute/unmute events to activation-log.jsonl. Exposes `is_muted()` function for import by router/scorer.

- File: `[home-path]` — Modified. Imports `is_muted` from skill_controller and filters muted skills from candidate list in `route_message()`.

- File: `[home-path]` — Modified. Imports `is_muted` from skill_controller and short-circuits `score_skill()` to return `{score: 0.0, reason: "skill is muted", inject: false}` without making any API call when skill is muted.

State Schema Addition

Added to each skill's `state.json` when muted:

json
{
  "muted": true,
  "muted_at": "2026-02-18T04:10:30.497928+00:00",
  "muted_reason": "optional user reason"
}

Fields are removed on unmute (clean state).

RTD Verification

  • [x] Structure: skill_controller.py created in correct location alongside tier1/tier2
  • [x] Compilation: All 3 files import clean (`python3 -c "import ..."` passes)
  • [x] Integration: is_muted() imported by both router and scorer, no circular deps
  • [x] Content: mute → score returns 0 (verified), unmute restores, idempotent ops, invalid skill rejected
  • [x] User Journey: `mute art:snark` → `list-muted` shows it → scorer returns 0 → `unmute art:snark` → restored
  • [x] Deployment: committed with conventional commit

Cross-Pollination

N/A — no cross-track dependencies

Promotion Decision

Promote into a technical note or architecture paper with implementation anchors.

Source Anchor

skill-entity-architecture/SEA-4.2-COMPLETE.md

Detected Structure

Code Anchors