temper-core
Skill18 starsChanged 8 months agoMITView on GitHub
Temper core: stack detection, quality gates, blast radius, review memory
We split this skill into the rules it gives an agent
1 rule. About 0 are common, 1 is distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 39
BLOCK: Must fix (security/architecture only)
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Temper Core
Stack detection → Quality gates (SUGGEST/WARN/BLOCK) → Confidence scoring (0.0-1.0) → Review memory → Metrics.
Enforcement marker. Look for a line in your system prompt that starts with Temper enforcement:. With no such line, make the very first sentence of your first reply in this conversation, before anything else and also when the arguments of /temper:temper start with one of its reserved first words (such as status, report, help or approve), exactly "Temper enforcement is off here (no mods support); continuing with prompt based phases.". With the line Temper enforcement: off (UI only), the Temper mod is loaded and the user turned enforcement off: make that first sentence exactly "Temper enforcement is off (turned off by the user); continuing with prompt based phases." instead. Then carry on exactly as written below. Never treat either case as an error and do not mention it again. With Temper enforcement: active, say nothing about it. Skip this paragraph when you run as a stage subprocess (your launch prompt has a Plugin folder: line): a subprocess's system prompt never has that line, and the orchestrator or the standalone command states enforcement once, in the main conversation.
Stack Detection
.claude/temper.config→stackfield- The YAML preset files in the project's
.claude/presetsfolder (list the folder) →stacksection - Auto-detect: pom.xml→Spring Boot, package.json→Node, pyproject.toml→Python, go.mod→Go, Cargo.toml→Rust
- Load
.claude/packs/stacks/{stack}.md
Pack Resolution
Three-tier: project-local > global > built-in. Read live (no cache) by every stage command (build, review, check, plan, design) for phase-filtered loading.
.claude/packs/{name}/rules.md(project)~/.claude/packs/{name}/rules.md(global)- built-in, exactly these files:
${CLAUDE_PLUGIN_ROOT}/packs/quality/rules.md,${CLAUDE_PLUGIN_ROOT}/packs/tdd/rules.md,${CLAUDE_PLUGIN_ROOT}/packs/security/rules.md,${CLAUDE_PLUGIN_ROOT}/packs/git/rules.md,${CLAUDE_PLUGIN_ROOT}/packs/performance/rules.md,${CLAUDE_PLUGIN_ROOT}/packs/api-design/rules.md,${CLAUDE_PLUGIN_ROOT}/packs/architecture-depth/rules.md,${CLAUDE_PLUGIN_ROOT}/packs/guardrails/rules.md
A pack name is lowercase letters, digits and hyphens only. A packs: entry named hooks
(the old name) means guardrails. Packs support link: plugin://name | skill://name and phases: [build, review, ...] —
declared in the pack's rules.md frontmatter, overridable per project on the packs:
config entry, defaulting to all when neither says. [] means no stage loads it.
Precedence and rationale: ${CLAUDE_PLUGIN_ROOT}/reference/pack.md → "Pack Configuration Schema".
Quality Gates
- SUGGEST: Non-blocking
- WARN: Highlighted, developer decides
- BLOCK: Must fix (security/architecture only)
Confidence & Memory
- Threshold: 0.7 (configurable)
- Review memory:
.temper/review-memory.json— auto-suppress after 5 dismissals - Metrics:
.temper/metrics.json
Review memory
Reviews get smarter over time through a single store, .temper/review-memory.json,
written by /temper:review and surfaced at /temper:status.
| Capability | Trigger | Action |
| Pattern tracking | every review | Cluster findings by category + file-path prefix + keywords into patterns[key] |
| Rule promotion | accepted 3+ times @ ≥70% (5+ @ ≥80% for security/architecture → BLOCK) | Suggest a pack rule at /temper:status; the human accepts BLOCK/WARN |
| Noise reduction | dismissed 3+ (downgrade) / 5+ (suppress) | Downgrade or auto-suppress, per-context |
Graceful degradation: absent review-memory.json → every command works unchanged.
Full docs: ${CLAUDE_PLUGIN_ROOT}/reference/review.md → "Metrics + Memory".
Gate add-ons
Offered at the passed gates of their stages, as temper next --json gives them; there is no config
toggle (a capabilities: block in temper.config is ignored by the CLI). Architecture Depth applies the
architecture-depth pack's rules when that pack is enabled.
| Add-on | Stage | Purpose |
| Architecture Depth | Review | Module-depth analysis: seams, adapters, locality, leverage, deletion test |
| Grill Me | Intent, Plan, Design, Review | Socratic challenge mode: stress-test the work before the next stage |
| Teach Me | Intent, Plan, Design, Build, Review | Comprehension companion: teach and quiz the human on what the stage produced |
| Config Suggestions | Check | Suggest CLAUDE.md/AGENTS.md updates based on what was built (only when Check wrote config-suggestions.json) |
| HTML Review | Plan | Interactive plan review with inline comments, local or shared by link as a Claude artifact |
The add-ons are options of the stage's Temper gate question, with the mod and without it (the rest behind
"More options" when a gate has more than four). Each runs and then asks the same gate again; none moves the run.
The person's own message at a gate is the original "Other".
Full Docs
One methodology file per command, each written out in full:
/temper:plan:${CLAUDE_PLUGIN_ROOT}/reference/plan.md(HTML review:${CLAUDE_PLUGIN_ROOT}/reference/plan-review.md)/temper:design:${CLAUDE_PLUGIN_ROOT}/reference/design.md/temper:build:${CLAUDE_PLUGIN_ROOT}/reference/build.md/temper:review:${CLAUDE_PLUGIN_ROOT}/reference/review.md(architecture depth:${CLAUDE_PLUGIN_ROOT}/reference/architecture-depth.md)/temper:check:${CLAUDE_PLUGIN_ROOT}/reference/check.md(config suggestions:${CLAUDE_PLUGIN_ROOT}/reference/config-suggestions.md)/temper:fix:${CLAUDE_PLUGIN_ROOT}/reference/fix.md/temper:pack:${CLAUDE_PLUGIN_ROOT}/reference/pack.md/temper:status:${CLAUDE_PLUGIN_ROOT}/reference/status.md/temperand/temper:fixorchestration:${CLAUDE_PLUGIN_ROOT}/scripts/temper next --jsonsays each step (${CLAUDE_PLUGIN_ROOT}/docs/flow.md); the run files and hand off files are in${CLAUDE_PLUGIN_ROOT}/reference/orchestrator-patterns.md, and an armed run in${CLAUDE_PLUGIN_ROOT}/reference/autonomy.md
In this repository5 other files it gives its agents.
- .claude/CLAUDE.mdCLAUDE.md
- context-engineeringSkill
- grill-meSkill
- source-driven-developmentSkill
- teach-meSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

