skills/SystemCheck/SKILL.md
Check the forge ecosystem for staleness — installed skills vs source, binary freshness, lib consistency, version drift, submodule pointers, hook config. USE WHEN stale, freshness, out of date, check staleness, need to rebuild, make install needed, system check.
npx skillsauth add n4m3z/forge-core SystemCheckInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Quick diagnostic that answers: "is everything current, or do I need to make install?"
Checks six staleness vectors across the forge ecosystem and produces a pass/fail summary with actionable fixes.
system-check.sh in this skill directory implements all six checks. Run it first:
bash "${FORGE_MODULE_ROOT:-Modules/forge-core}/skills/SystemCheck/system-check.sh"
For per-item breakdown, add --verbose:
bash "${FORGE_MODULE_ROOT:-Modules/forge-core}/skills/SystemCheck/system-check.sh" --verbose
Run the companion script (compact mode).
Present the output table to the user as-is.
If any check fails, the script prints a Fixes: section. Offer to run the suggested commands.
If the user asks to drill down into a specific check, re-run with --verbose and explain the details.
If the script is unavailable or a check needs manual investigation, use the check procedures below.
Read .claude/skills/.manifest (written by forge install) to determine which module owns each installed skill. For each entry, compare the installed SKILL.md body against its source using shasum -a 256 (strip frontmatter first — forge install merges claude: keys, so frontmatter will differ by design).
Three failure modes:
.manifestFalls back to directory scanning if .manifest is absent.
For each symlink in ~/.local/bin that points into the forge root, find the crate's src/ directory and compare the binary mtime against the newest .rs source file. If any source is newer, the binary is stale.
Verify that the forge binary is on PATH and responds to forge --version. Report the installed version.
For each module, read version from up to three sources and report mismatches within a module:
| Source | How to read |
|--------|-------------|
| module.yaml | awk '/^version:/{print $2; exit}' |
| plugin.json | python3 -c "import json; print(json.load(open('plugin.json'))['version'])" |
| Cargo.toml | awk -F'"' '/^version/{print $2; exit}' |
Compare the parent repo's recorded submodule pointer against each submodule's actual HEAD. A + prefix in git submodule status means the submodule HEAD has moved beyond the recorded pointer. A - means not initialized.
Read .claude/settings.json and verify all expected dispatch events are present:
SessionStart, PreToolUse, PostToolUse, Stop, PreCompact, UserPromptSubmit, SubagentStop, SessionEnd, Notification
| Problem | Fix |
|---------|-----|
| Skills stale | make install |
| Binaries stale | make build && make install-binaries |
| forge CLI missing | Install forge-cli: cargo install forge-cli |
| Version drift | Align versions in the affected module |
| Submodule pointers dirty | Commit parent repo |
| Hook config incomplete | make install-hooks |
shasum -a 256 (macOS compatible), not sha256sumgit -C directly for submodule operations (RTK does not support -C)development
Reactive correction and root-cause fix. USE WHEN something went wrong, user is frustrated, demands a correction, says wtf, what the hell, why did you, that's wrong, this is broken, no not that, stop. Executes the immediate fix, then hunts the upstream artifact that caused it and creates a corrective change.
development
Decompose a research question into sub-queries, spawn parallel WebResearcher agents per angle, synthesize findings with citations and explicit confidence. USE WHEN the user asks to research, investigate, look online, look up, dig into, find sources, gather evidence, or survey what's known about a topic. Single-pass; for multi-round adversarial research use ResearchCouncil in forge-council.
tools
Author project documentation that future humans (and AI sessions) actually read. Covers TLDRs for tools, READMEs, runbooks, journals. USE WHEN write documentation, create tldr, tool one-pager, document a cli, write readme, runbook, journal entry, capture knowledge about a tool, distill a session into reusable notes.
development
Review your own staged changes via a code-review TUI before triggering a commit. USE WHEN about to commit, walking through your own staged diff, self-reviewing before approval, tuicr, revdiff, git diff cached.