Affirm
Claude Code Plugins
npx -y skills add nullphase-net/enfurbish --skill affirmAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Affirm, show, or revoke trust in the current project's CLAUDE.md, .claude/rules/* files, and the files they @import. Use after reviewing changes flagged by the SessionStart hook. Invoke as /affirm.
SKILL.md
2.5 KB, as published. Nobody here has run it
/affirm — affirm project instruction files
CLAUDE.md, anything under .claude/rules/, and any files they pull in via Claude Code's @import syntax are loaded as Claude's system instructions for this project. A malicious or accidental change can silently re-program Claude. /affirm is the explicit trust gate: bare /affirm shows you what's there; /affirm -a records SHA-256 hashes once you've reviewed; /affirm -r revokes. The SessionStart hook compares stored hashes on every session start and warns on any mismatch.
Procedure
Forward args to the CLI verbatim and relay output to the user. No confirmation prompts — the user types -a when they're ready to attest.
The CLI lives at <skill-base-dir>/../../lib/cli.ts.
Bare /affirm — show details
bun run "<skill-base-dir>/../../lib/cli.ts"
Relay the output. This is read-only — nothing is recorded.
/affirm -a (or --apply) — record hashes
bun run "<skill-base-dir>/../../lib/cli.ts" -a
Relay the output. The user invoking -a is the attestation; do not add a separate confirmation step.
/affirm -r (or --revoke) — drop affirmation
bun run "<skill-base-dir>/../../lib/cli.ts" -r
Relay the output.
/affirm --help
bun run "<skill-base-dir>/../../lib/cli.ts" --help
Relay the output.
What this skill does NOT do
- Read the contents of
CLAUDE.mdor rules files. That's the user's job — they're the one attesting. - Modify any instruction file. Affirmation is hash-only.
- Affirm files the project doesn't reference. Scope is
<cwd>/CLAUDE.md+<cwd>/.claude/rules/*plus whatever they@import(followed two levels deep; an import pointing outside the project is hashed but flagged out-of-tree). User-global~/.claude/CLAUDE.mdis out of scope unless a tracked file imports it. - Prompt the user "are you sure?". The flag is the attestation.
Edge cases
- No instruction files in cwd: the CLI prints a single line and exits. Relay that and stop.
- Unknown flag: the CLI exits 2 with usage. Relay it.
-aand-rtogether: the CLI exits 2 with a "mutually exclusive" error. Relay it.- Hash file at
~/.claude/affirm-hashes.jsonis missing or unparseable: the CLI treats it as empty and writes a fresh one on next-a. No action needed.