# 2026-06-19 — Self-Check Remediation + Post-Split Fleet Coordination

## User
- **User:** Mike Swanson (mike)
- **Machine:** GURU-5070
- **Role:** admin

## Session Summary

Post-cutover harness verification and remediation on GURU-5070, following the 2026-06-18 repo split (history rewrite; projects → submodules; bulk data → Gitea-Storage/Jupiter). The session began with routine `/sync` runs (clean), then a fleet broadcast asking all machines to verify config after the submodule changes, then a full `/self-check` on this machine which surfaced a RED grade.

The initial `/self-check` graded RED on one FAIL — the `/autotask` command was missing from the repo. Investigation showed `/autotask` (Autotask PSA read-ops, ~20KB, verified 2026-05-27) existed only in the global `~/.claude/commands/` deploy with zero git history — a casualty of the history rewrite. The printed fix ("restore via /sync") was wrong because the file isn't in the repo and `/sync` only deploys repo→global. Mike decided to **remove autotask from the manifest** rather than recover it (Syncro is the fleet-default PSA). Edited `manifest.json` to drop `autotask` from required `commands[]`, which cleared the FAIL (RED → AMBER).

Mike then asked to fix the three remaining AMBER WARNs and sync. Fixed: (1) installed the dev-alerts post-commit hook from `.claude/hooks/post-commit.template`; (2) added the missing `[Prefer SSH over RMM]` index line to `MEMORY.md` for the orphaned `feedback_prefer_ssh_over_rmm.md`; (3) trimmed the skill-registry description budget from 12,742 chars back under the 10,500 budget by tightening 14 verbose SKILL.md `description:` fields (moving trigger lists/examples into bodies, preserving routing keywords). The budget trim was iterative — measured against the authoritative self-check awk until it passed with margin.

The remediation sync converged with **GURU-KALI**, which had been doing the identical cleanup concurrently (commit `cd478ca` dropped `/autotask`; `416f2a3` trimmed the same skill descriptions). The rebase merged cleanly. KALI's manifest edit was better than the plain removal: it added a `capability_commands` block documenting `/autotask` as a gated PSA command (Syncro is default, absence is INFO not FAIL). Verified no conflict markers landed and the merged manifest was coherent. Final `/self-check` graded **GREEN (PASS 83 / WARN 0 / FAIL 0)**.

Two coordination broadcasts went out: one early (verify harness config after the split — reclone per RECLONE.md if pre-split, then /self-check), paired with a durable rollout todo; one at the end (self-check baseline fixes pushed at HEAD b668430 — /sync then /self-check for GREEN). Also confirmed this clone's compliance via `migrate-to-submodules.sh --check` (COMPLIANT — shares history with rewritten origin/main) before syncing, prompted by GURU-BEAST-ROG's broadcast warning not to sync from an old disjoint clone.

## Key Decisions

- **Remove `/autotask` from the manifest rather than recover the file** (Mike's call): Syncro is the fleet-default PSA, so `/autotask` is intentionally not in the shared repo and absent on Syncro machines. The dropped file was a real history-rewrite casualty but not worth re-adding fleet-wide.
- **Preferred KALI's `capability_commands` framing over plain deletion**: documenting *why* `/autotask` is gated (capability, INFO-not-FAIL) beats silently removing it — a gated command stays visible in the manifest instead of looking dropped.
- **Verified clone compliance before every sync this session**: FF-ancestry check + `migrate --check`, because GURU-BEAST-ROG's broadcast warned that syncing from an old disjoint clone causes non-FF rejects. This clone was confirmed compliant (shares rewritten history).
- **Trimmed registry descriptions by moving triggers into SKILL.md bodies, not deleting keywords**: routing depends on trigger phrases in the description, so the cut preserved keywords while removing verbose examples/parentheticals.
- **Paired the rollout broadcast with a coord todo**: a message can be read-and-forgotten; the todo (`ab3bab84`) persists as the fleet-rollout backstop.

## Problems Encountered

- **`/self-check` RED from `/autotask` missing, with a misleading fix hint.** The printed "restore via /sync" was wrong (file not in repo; /sync deploys repo→global only). Diagnosed via `git log --all` (zero history) → confirmed history-rewrite casualty. Resolved by removing from manifest per Mike.
- **Registry-budget trim undershot twice.** First pass (6 skills) left 11,327; second (3 more) left 10,998; third (3 more) 10,888; needed several more iterations to clear 10,500. Resolved by re-measuring against the exact self-check awk after each batch until GREEN with ~margin.
- **Concurrent identical edits from GURU-KALI on the same files.** Both machines trimmed the same SKILL.md descriptions and dropped `/autotask` simultaneously. Risk of rebase conflict. Resolved cleanly by the rebase; verified no conflict markers (`<<<<<<<`) and coherent merged manifest afterward.
- **Transient "divergent skill" WARNs after editing repo SKILL.md.** Repo copies differed from stale global `~/.claude` copies. Resolved automatically by sync's Phase 5c skill-deploy (15 skills synced to global); cleared on the post-sync self-check.
- **Bash heredoc ordering / py.sh hang.** A `mkdir -p` placed after a heredoc redirect failed (No such file or directory); a `py.sh -` heredoc went to background. Resolved by ordering `mkdir` first and using explicit script paths.

## Configuration Changes

Modified:
- `.claude/skills/self-check/baseline/manifest.json` — removed `autotask` from `commands[]`; merged with KALI's added `capability_commands` block (autotask gated).
- `.claude/memory/MEMORY.md` — added `[Prefer SSH over RMM]` index line.
- 14 SKILL.md `description:` fields trimmed: agy, b2, bitdefender, coord, discord-dm, frontend-design, grok, mailprotector, onboard365, rmm-audit, rmm-search, stop-slop, unifi-wifi, vault.

Created:
- `.git/hooks/post-commit` — installed from `.claude/hooks/post-commit.template` (not tracked; per-clone).

## Credentials & Secrets

None surfaced, created, or rotated this session.

## Infrastructure & Servers

- Gitea (internal): `http://172.16.3.20:3000` — sync remote.
- Coord API: `http://172.16.3.30:8001/api/coord` — broadcasts + todo.
- Machines referenced: GURU-5070 (this), GURU-KALI (concurrent identical cleanup), GURU-BEAST-ROG (re-clone broadcast author), HOWARD-HOME (Cascades RF report).

## Commands & Outputs

- `bash .claude/scripts/migrate-to-submodules.sh --check` → `COMPLIANT — shares history with rewritten origin/main`.
- `git merge-base --is-ancestor HEAD origin/main` → YES (FF-safe; proves not a disjoint old clone).
- Registry budget probe (matches self-check awk): 12,742 → final under 10,500.
- `bash .claude/skills/self-check/scripts/self-check.sh report` → final **GREEN  PASS 83  WARN 0  FAIL 0  INFO 28**.
- Conflict-marker grep post-rebase: only `===` echo banners in `onboard365.sh`, no real `<<<<<<<` markers.

## Pending / Incomplete Tasks

- Other fleet machines must `/sync` then `/self-check` to confirm GREEN (broadcast `cf7d3302` + rollout todo `ab3bab84` track this).
- `/autotask` command file survives only in this machine's global `~/.claude/commands/` deploy; intentionally not recovered to the repo. If an Autotask-PSA machine ever needs it, it must be re-added under the gated capability, not the shared baseline.
- Howard's deferred Cascades items (6GHz WPA3 conversion on CSCNet, 3a/3b channel-plan) await a supervised window — not this session's work.

## Reference Information

- Final HEAD: `b668430` (sync auto-commit, rebased onto KALI's work).
- Key commits: `c23bdc2` (my remediation, pre-rebase), `cd478ca` (KALI drop /autotask), `416f2a3` (KALI skill trims), `dafcec5` (migrate script).
- Coord broadcasts: `7fd1e9aa` (verify config after split), `cf7d3302` (self-check fixes pushed). Rollout todo: `ab3bab84`.
- Budget config: `manifest.harness.registry_desc_budget_chars = 10500`.
