mcpbeat Sign in

Campaign Health Skill for Claude

Health check for the bb/pt/ctf workflow driver subsystem - verifies everything is in place so every machine runs the same. Checks vault-content consistency (scripts present, JSON valid, routing wired, all 69 tool pages carry phase:, the tool index resolves, the hook edits are in place) AND per-machine wiring (the three workflow skills symlinked, hooks registered, imports work), then runs a live init->board->next smoke test. Use when setting up the workflow on a new machine, after a vault sync, when the driver misbehaves, or on "bb-health", "campaign health", "is the workflow set up", "check hooks and scripts", "why is the board not working".

610 tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
320
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/Encod3d-Sec/TORCH --skill campaign-health

The instruction itself

4 sections, as written by the author

campaign-health

The vault syncs across machines; ~/.claude (hook registration, skill symlinks, deps) does not.

So "it works here" does not mean "it works there". This skill confirms both halves before you rely on

bb-workflow / pt-workflow / ctf-workflow on this machine.

Run it

python3 scripts/campaign-doctor.py            # summary (only WARN/FAIL shown)
python3 scripts/campaign-doctor.py --verbose   # every check

Exit 0 = all green. Exit 1 = at least one FAIL; the driver will not run correctly here until fixed.

What it checks

  • A. vault content - the driver's scripts exist, every campaign JSON is valid, each type's

approach exists in playbook.json and coverage-classes.json, the two hook edits (recon-capture

emits spec['tools'], tool-telemetry logs binaries) are present, all 69 wiki/tools/ pages carry

phase:, and campaign.tool_index() resolves an invocation for every tool.

  • B. machine wiring - the three workflow skills are authored and symlinked into ~/.claude/skills,

hooks are registered (via check-hooks.py), and _engagement imports.

  • C. live smoke test - init -> board -> next against a throwaway copy of the fixture, asserting

the board writes rows and next withholds the exploit at G1.

Fixing what it reports

  • WARN (machine wiring) - usually one setup script the doctor names:

bash setup/install-skills.sh (skills) or bash setup/install-hooks.sh (hooks).

  • FAIL (vault content) - a stale sync or a partial edit. Re-pull the vault; if a tool page lost

its phase:, re-run python3 scripts/tool-phase-backfill.py --write.

Run this first on any new machine, and after every vault sync, so all machines run the same driver.

How to use it

Copy the folder

Take encod3d-sec/campaign-health from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.