con un clic
ai-maestro-janitor
ai-maestro-janitor contiene 61 skills recopiladas de Emasoft, con cobertura ocupacional por repositorio y páginas de detalle dentro del sitio.
Skills en este repositorio
CONSOLIDATE (MERGE) executor — fuses two duplicate memory notes about the SAME subject + same type into one page (dedup lessons, redirect backlinks, keep the oldest origin date), through the crash-safe transaction core, never editing a live page. ABSTAINS on uncertainty, cross-type/cross-scope/two-hub, or a third page sharing the subject. Use on a [janitor-memory-consolidate] marker, or "consolidate / merge / deduplicate the memory", "two notes cover the same thing", "fold these memory pages together".
RECALL — before working on a file or debugging/deciding, surface the right memory WIKI page and navigate it. Two entry points - FILE-anchored (about to edit a file → surface that functionality's HUB page and descend its links to the detail needed) and SYMPTOM ("have we hit this before?" → rank pages by how the symptom hits their description/title/tags). Use before re-deriving architecture/gotchas, or when the user says "recall memories about X" or "did we already solve this". Reads only the pages the task needs, degrading to grep when memgrep is absent. The RECALL leg of the wiki-memory protocol.
MEMORIZE — capture a durable decision/fact into the project's memory WIKI as a navigable page, not a loose note. Use after a bug-autopsy gotcha, a design/architecture decision, a project constraint not derivable from code, a confirmed user preference, or when the user says "remember this", "memorize this", "save a memory". Finds the right existing wikimem page first so it never duplicates; only when none fits, creates a HUB / ASPECT / COMPONENT page via the expand/reduce decision, wires it into the See-also web, and indexes it by symptom. The MEMORIZE leg of the wiki-memory protocol.
UPDATE — modify an existing memory WIKI page when something changes — ADD a decision to the page that owns the subject, CORRECT a memory a new discovery contradicts (the 2-step non-destructive protocol), or RESHAPE a page that outgrew its tier (expand a shared rule into an aspect, reduce element-specific detail into its component page). Use when a decision changes, a memory turns out wrong, a page mixes too many subjects, or the user says "update the memory", "that's no longer true", "fix the note about Y", "this memory is outdated". Keeps the See-also web, the hub map, and the lessons trail consistent. The UPDATE leg of the wiki-memory protocol.
Opts THIS machine into the janitor's unattended multi-account OAuth rotator. Sets an opt-in flag the always-on janitor daemon's 60s oauth-rotator-tick Task reads to rotate the live Claude Code credential to an alternate paid account before a rate-limit 429 stalls an overnight session. Default OFF, macOS only, idempotent; refuses if a pinning env var would defeat rotation. Trigger with /janitor-auto-manage-oauth-on, "turn on oauth rotation", or "enable account rotator".
Rank every project on this machine by how many tokens it is burning right now and name the one to throttle — the fleet token-attribution dashboard. The account 5h/7d utilization% is aggregate across all your parallel projects; this scans each project's transcripts to say WHICH one is over-consuming (large 5h share AND above its own baseline) and where its spike came from. Read-only. Use when the user asks which project is eating the token budget / which session to throttle / who is burning the rate-limit window.
BOOTSTRAP — stand up the three-scope wiki-memory system in a project that doesn't have it yet (the one-time adoption / fleet-rollout step). Creates the git-tracked PROJECT-scope memory dir, seeds the project's overview entry page (never a MEMORY.md stub — that file is the harness-owned buffer the harvest mirrors into the wiki), and points the agent at the recall rule + the write/recall/update skills. Use when a project has no wikimem and you want to "set up memory for this project", "bootstrap the wiki memory", "adopt the memory system", or onboard the project's memory. Run ONCE per project; idempotent if re-run.
HARVEST executor — the daily NON-DESTRUCTIVE chore that MIRRORS newly-created harness BUFFER memories into the curated wiki. MEMORY.md + the raw notes at the scope root are the harness-owned buffer (auto-loaded each session); the janitor never touches them. For each RAW buffer note not yet mirrored, RECALL its subject across memory/wikimem/ then UPDATE-or-CREATE a curated wikimem/<name>.md copy and stamp a watermark. The buffer is left 100% intact (separate parallel copies coexist). Use on a [janitor-memory-harvest] marker, or "harvest the memory", "mirror new MEMORY.md memories into the wiki".
SPLIT executor — breaks ONE oversized wikimem page (over split_max_bytes) into a concise overview + type-preserving linked sub-pages, losing no fact or lesson, redirecting inbound [[links]], partitioning hub globs. One page per run, one level deep (recursion across later heartbeats). Mutates only through the crash-safe transaction core (scripts/memory_txn_cli.py begin/commit --op split); refuses to fragment a component. Use on a [janitor-memory-split] marker, or "split the big memory page", "the memory wiki page is too large".
Arms or renews the ai-maestro-janitor heartbeat cron. Use when first installing the plugin, upgrading from pre-stub (≤ v0.4.10), or in response to a [janitor-renew] nudge before the 7-day auto-expiry. Trigger with /janitor-arm or "arm the janitor heartbeat".
Flips the machine-wide maintenance flag ON — every armed session's heartbeat drops to cache-refresh-only fires (keeps the prompt cache warm at the 0.1x READ rate instead of paying a 1.0x rewrite) and the janitor daemon idles all task workloads except oauth-rotator-tick. INDEPENDENT of the LOCAL /janitor-maintenance-mode flag — effects OR together. Trigger with /janitor-global-maintenance-on, "turn on global maintenance mode", "put the fleet in maintenance", "idle the janitor daemon fleet-wide".
Flips the machine-wide maintenance flag OFF — every armed session's heartbeat resumes full fires (due chores, agents, the daemon's task workloads) as soon as its next fire lands. INDEPENDENT of the LOCAL /janitor-maintenance-mode flag — clearing global does not touch local, and vice versa. Trigger with /janitor-global-maintenance-off, "turn off global maintenance mode", "take the fleet out of maintenance", "resume full janitor heartbeats fleet-wide".
Keep THIS project's janitor heartbeat ARMED but make every fire cache-refresh-only (no chores, no daemon spawn, no agents — only the token-burn monitors stay on), so the prompt cache stays warm at ~1/10 the cost of letting it die and rewriting — the cheap middle ground between a full heartbeat and disarm. LOCAL-only; see /janitor-global-maintenance-on for the fleet-wide equivalent. Trigger with /janitor-maintenance-mode, "maintenance mode", "keep the cache warm cheaply"; add "off" to disable.
Self-compact the current Claude Code session's context, then auto-resume. ⚠ PREFER /janitor-handoff-and-clear over this skill — a link-only handoff + /clear is cheaper AND less lossy than /compact's whole-context re-summary when your state is durably captured (TRDDs, git, memory); use /compact only as a last resort for live scratch not yet on disk. Invoke when context is high, before the wall where /compact itself fails. SOFT by default; --hard interrupts for emergencies; --handoff writes a rich handoff first. Trigger with /janitor-compact-context [--hard] [--handoff].
Browse THIS project's janitor findings ledger — the per-project mailbox where every janitor finding (drift, security, supply-chain) is indexed with a traceable ref (ticket/TRDD). Use when the user asks what the janitor found / to see janitor findings / to read a finding by its T- or TRDD- ref / to ack the inbox, or when you need the full body behind a finding ref the session-start injection only summarized. Verbs — list [N], show <ref>, ack.
Run /reload-plugins --force for this Claude Code session so freshly auto-updated plugin hooks/skills take effect, without the human typing it. Invoke on a [janitor-reload] heartbeat marker, or when plugin code changed on disk and the session must pick it up. SOFT by default (enqueues after the turn); --hard interrupts now. ⚠ Do NOT reload at ≥350k context used — it breaks the prompt cache and re-bills the whole window next turn; shrink first via /janitor-handoff-and-clear, then reload. Trigger with /janitor-reload-plugins [--hard].
Run /reload-skills for this session so freshly installed STANDALONE (non-plugin) skills/commands take effect — /reload-plugins reloads ONLY plugin-bundled ones. Invoke on a [janitor-reload-skills] marker (from /janitor-global-reload-skills), or when a standalone skill changed on disk. SOFT by default (enqueues after the turn); --hard presses ESC first. ⚠ Do NOT reload at ≥350k context used — it breaks the prompt cache and re-bills the whole window next turn; shrink first via /janitor-handoff-and-clear, then reload. Trigger with /janitor-reload-skills [--hard].
Harvest the session's material state into wikimem, write a CONCISE LINK-ONLY handoff (an index of [[wikimem]]/ATOM-id/TRDD links, never inlined content), then /clear this session and bootstrap the fresh one to re-arm the heartbeat and resume from the handoff. Prefer over /janitor-compact-context when the in-flight work is fully captured in TRDDs/wikimem/files already — /clear resets to base-context with NO residual summary (cheaper steady-state than /compact) but is UNRECOVERABLE, so the handoff must be complete first. Trigger with /janitor-handoff-and-clear, or by asking to hand off and clear.
Refresh the claude.ai login session (cookie) for each rotator account when one nears expiry — the ~monthly human REAUTHENTICATE step the rotator can't automate (claude.ai login needs an OS-level passkey / Google-2FA prompt). Opens Chrome per account (you log in), verifies the session, then mints fresh OAuth tokens via RENEW. Use on an oauth-login-needed / oauth-cookie-reminder nudge, or when "had to log in manually / accounts won't switch / cookie expired". Trigger with /janitor-refresh-cc-logins, "reauth my accounts". (Named cc-logins, not claude-logins — a skill name may not contain the reserved word "claude".)
Report this Claude Code session's full runtime environment — terminal, OS, filesystem, sandboxing, CI, editor/IDE, network, cloud, python env, git/GitHub, MCP servers, wikimem, and installed plugins. Secret-safe and fail-open; writes full detail to disk as JSON and returns a compact digest. Use when the user asks where this session is running / what environment this is / which terminal, OS, container, or CI this is, or when you need to ground a decision in the actual runtime (network mount? headless? behind NAT? which tools installed?).
Show or change how often the wikimem editorial passes run (consolidate, split, conflict, repair, harvest, atomize) and the split max-size. No args lists every setting. Global, machine-wide. Use when the user asks how often memory pages are merged, split, repaired, harvested, atomized, or conflict-checked, or asks to change / enable / disable a wikimem editorial-pass cadence.
Show a whole-host HTML dashboard of EVERY running Claude Code instance and its janitor health — project, model, git, armed/active state, cron liveness, what each is waiting for, version, uncommitted files, wikimem page counts, last job/error, security-scan and PRRD status. Diagnoses each janitor (healthy / frozen / cron_dead / unarmed) from outside, renders one wide HTML table, and opens it in the default browser. Read-only. Use when the user asks to see the global fleet status / all running claude instances / which janitors are broken, or when you need a machine-wide view of every session's janitor health.
Show the per-heartbeat token cost — how many output/input tokens each janitor heartbeat fire spent, plus mean / p50 / p95 / max and spike flags — so you can see if the heartbeat's token consumption is spiking or the average is too high to bear. Reads the log the on-stop-token-meter hook writes after each fire. Also --live (exact current-session context-window usage + last-turn breakdown + auto-compact point), --window 5h|7d (exact subscription windows + graphs), and --attribution (which project is eating the budget). Read-only. Use when the user asks how much the janitor heartbeat costs in tokens, how full the context is, or whether they're near a rate limit.
Control the janitor's never-stop continue-nudge for this session — every due heartbeat prints a resume cue telling the agent to keep working on its pending task instead of silently idling between turns. The nudge is ON BY DEFAULT (user directive 2026-07-16); this skill re-asserts it after an opt-out, or turns it off. Trigger with /janitor-keep-going, "keep going", "never stop", "don't stall between turns"; add "off" to disable this session's full-mode nudge.
ATOMIZE executor — the autonomous pass that migrates a FREE-PROSE wikimem page into first-class ATOMS: inserts a LEADING block-property marker `^<id> [keywords: …]` above each durable fact so memgrep recalls it individually by its keywords and returns its full per-atom record. Purely ADDITIVE + transaction-gated + verified — never drops or rewords a fact. Runs on a [janitor-memory-atomize] marker, or "atomize this page", "give the memory facts their atom markers".
Stops the ai-maestro-janitor heartbeat cron. Use when pausing janitor activity without uninstalling, debugging heartbeat behaviour, or switching projects. Trigger with /janitor-disarm, "stop the janitor", or "kill the heartbeat".
The janitor's support-ticket console (TRDD-CGYMUKO6). Inspect the incident queue: what the janitor has found, what it is repairing, what failed, what needs a human, and how much of the daily dispatch budget is left. Also retry a stuck ticket or cancel one you do not want. Use when the user asks what the janitor is working on, when a `[ticket]` line appears in the heartbeat, or when a ticket is reported as NEEDS A HUMAN.
Review and FIX GitHub-config drift on ai-maestro plugin repos — an UNPROTECTED default branch, a required_linear_history rule that BLOCKS merges, or a missing PR-review / status-check / tag-protection gate. Plan-first: it prints exactly what would change and applies only after you approve, only where you are an admin. Use on a [github-config] heartbeat drift line, or when asked to 'fix the github config', 'harden the plugin repos', or 'remove linear history so I can merge'.
THE APPROVAL BUTTON for a janitor fix in the user's own repo (TRDD-CGYMUKO6). Run /janitor-support-open-ticket TRDD-XXXXXXXX to approve a finding the janitor PROPOSED — it opens the support ticket and promotes the proposal TRDD from `proposal` to `planned`, after which the janitor's scheduler may dispatch an agent to fix it. Until this runs, nothing is dispatched and nothing in the repo is touched. Use when the heartbeat surfaced a `[ticket] … approve the fix with: /janitor-support-open-ticket TRDD-…` line and you (or the user) want that fix to happen.
The PROCEDURE for working one janitor support ticket (TRDD-CGYMUKO6). Loaded by the janitor-repair-agent (and by janitor-security-agent for a security ticket) after the heartbeat's [janitor-ticket] marker dispatches it. Carries the claim → read-as-data → repair → verify → close loop, and the hard safety preamble that no ticket can override. Use when you have been handed a ticket id (T-XXXXXXXX) and told to work it.
Applies the ratified two-ruleset branch-protection baseline on the default branch of the project's GitHub repo — baseline-history-protect (block force-push/deletion; NOT linear history — that is deliberately excluded because it jams the many-agent merge workflow) and baseline-pr-and-checks (PR with 1 approval + dismiss-stale + thread-resolution + auto-detected required status checks). Idempotent — re-running PATCHes in place and never duplicates; an orphaned legacy janitor-baseline ruleset is cleaned up. Trigger with /janitor-branch-protection-setup, "set up branch protection", "harden the default branch", or "add a baseline ruleset to GitHub".
Resume the current Claude Code session NOW after a compaction or rate-limit, without waiting for the next heartbeat cron fire. Runs the janitor dispatcher stub immediately and handles its stdout per the janitor-heartbeat-protocol rule, so a pending [janitor-resume] cue fires in seconds instead of up to 30 min (the SLOW cron floor). Invoked automatically by the PostCompact push (scripts/hooks/post-compact-resume.py), or by typing /janitor-resume to force a resume / fire a heartbeat on demand. Trigger with /janitor-resume, or by asking to resume now.
CONFLICT + fact-verify executor — reconciles contradictory or obsolete wikimem pages against source + git history. Default is a non-destructive DEMOTE (obsolete page folded into a compounding footnote on the survivor, WHY git-sourced); DELETE only behind an N>=3 skeptic vote WITH provenance + a git verify. Runs as an ultracode Workflow; all mutation via scripts/memory_txn_cli.py. Use on a [janitor-memory-conflict] marker, a memory-reorg-proposed.md Conflict candidate, or "resolve memory conflicts" / "fact-check the memories" / "this memory is obsolete".
Turn OFF GitHub issue monitoring for THIS project - the heartbeat stops notifying you about new issues and new comments on the tracker. Use when the user says "stop watching the issues", "disable issue notifications", "turn off the issue tracker monitoring", "too many github issue notifications".
Turn ON GitHub issue monitoring for THIS project - the heartbeat then notifies you whenever a new issue is opened or a new comment lands on the tracker, and keeps reporting until it is turned off. Use when the user says "watch the github issues", "notify me about new issues", "monitor the issue tracker", "enable issue notifications". Seeds a baseline from the currently-open issues first, so enabling it does NOT dump the existing backlog into context.
Machine-wide reload of freshly installed STANDALONE (non-plugin) skills and commands across EVERY running Claude Code session, without visiting each one. Stamps a machine-wide skills-reload generation; each session's next heartbeat emits [janitor-reload-skills] once and runs /reload-skills locally, so a standalone skill/command added at local/project/user scope loads fleet-wide. The all-sessions sibling of /janitor-reload-skills (which reloads only THIS session). Note /reload-skills is DISTINCT from /reload-plugins — the latter reloads only plugin-bundled skills. Trigger with /janitor-global-reload-skills, "reload skills everywhere", "reload standalone skills in all sessions".
Write a rich, agent-authored session handoff to .janitor/state/agent-handoff.md before a context compaction, so the next turn re-grounds from YOUR semantic account (what you were doing, the plan, the next action, the traps hit) — not just the mechanical PreCompact snapshot. Invoke for a delicate juncture where the always-on zero-cost pre-compact-handoff hook isn't enough. Usually run by /janitor-compact-context --handoff (which passes --then-compact so this chains to /compact when done); a bare /janitor-write-handoff writes the handoff and stops. Trigger with /janitor-write-handoff, or by asking to write a handoff before compacting.
Runs an on-demand audit of open PRs, git worktrees, TRDD drift, and task/PR mismatches. Use when the user asks "janitor audit", "what's drifted?", or "audit pending things". Trigger with `/janitor-audit` or by asking for a janitor audit report.
HARVEST recent changes into the Wikimem NOW — the on-demand counterpart of the memorize-nudge heartbeat. Use when Claude made many code changes but forgot to update memory, or the user says "/janitor-memory-record-recent", "record recent changes to memory", "memorize what we just did", or "harvest recent changes into wikimem". Gathers recent changes (git log since last memory touch, edited files, git diff), and for EACH substantive change RECALLS first then ADDS/UPDATES/CREATES the right Wikimem page via /janitor-memory-write + /janitor-memory-update. Only NUDGES a harvest; it does not reorganize the corpus.
REPAIR — the autonomous page-shape / metadata fixer for the memory wiki. Fires on the bare [janitor-memory-repair] heartbeat marker (or /janitor-memory-repair). Finds malformed wikimem pages — missing ocd/lmd/node_type/tier or the Notes section, no frontmatter, an INVERTED tier shape (an aspect built like a component), an answer-shaped description — and fixes each IN PLACE via the memory_txn_cli --op repair transaction, which proves every lesson and the birth date survive. Bounded, crash-safe, disable-able. One of the six wikimem-editor passes (split/consolidate/conflict/repair/atomize/harvest).