Files
claudetools/session-logs/2026-06/2026-06-19-mike-selfcheck-remediation.md
Mike Swanson 11d4bfbf65 sync: auto-sync from GURU-5070 at 2026-06-19 09:10:40
Author: Mike Swanson
Machine: GURU-5070
Timestamp: 2026-06-19 09:10:40
2026-06-19 09:11:51 -07:00

7.9 KiB

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 --checkCOMPLIANT — 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.