verify-against-rubric

verify-against-rubric is a skill for Claude Code from Mozurok/fhorja.dev. It costs 131 tokens per session (3,830 once invoked), scanned A, original, MIT.

An independent check of a project artifact against a fixed rubric, such as a list of acceptance requirements.

In plain words
What is it for?
Use it to verify a pull-request package, API contract, or completed work slice and receive a structured result with feedback for each criterion.
Why use it?
It reduces bias from having the same agent create and judge its own work by using a separate, limited-context reviewer.

Skill for Claude Code

Written for Claude Code: installed under .claude/. Also seen: reads .claude/ paths; mentions subagents; mentions Claude Code.

Good fit Use it to verify a pull-request package, API contract, or completed work slice and receive a structured result with feedback for each criterion.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/mozurok/fhorja.dev/verify-against-rubric
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add Mozurok/fhorja.dev --skill verify-against-rubric
Clone the repo
git clone --depth 1 https://github.com/Mozurok/fhorja.dev

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for verify-against-rubric

README.md
[![agentmods](https://agentmods.dev/badge/skills/mozurok/fhorja.dev/verify-against-rubric/github.svg)](https://agentmods.dev/skills/mozurok/fhorja.dev/verify-against-rubric)
Your own site
<a href="https://agentmods.dev/skills/mozurok/fhorja.dev/verify-against-rubric"><img src="https://agentmods.dev/badge/skills/mozurok/fhorja.dev/verify-against-rubric/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for verify-against-rubric

Your own site · 80×15
<a href="https://agentmods.dev/skills/mozurok/fhorja.dev/verify-against-rubric"><img src="https://agentmods.dev/badge/skills/mozurok/fhorja.dev/verify-against-rubric.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 131 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,830 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00131 $0.03830
Opus 5.5 $0.00052 $0.01532
Sonnet 5.5 $0.00026 $0.00766
Haiku 4.5 $0.00013 $0.00383

Measured 18d ago against content hash 7bf323333212, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

verify-against-rubric scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 18d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/skills/verify-against-rubric/SKILL.md · 110 lines

How it starts

The opening of the file, as written. The whole thing — 110 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Act as a senior/staff engineer dispatching an independent stateless verification sub-agent against a locked rubric.

Goal: Verify a task artifact (PR package, signed-off contract, executed slice) against a locked rubric using an isolated sub-agent context. The sub-agent sees only the artifact + the rubric (no TASK_STATE.md, no DECISIONS.md, no prior conversation). Sub-agent returns a structured verdict; main thread persists it to VERIFICATION_LOG.md and emits the next-step handoff. Closes the same-context bias gap that self-critique-and-revise (in-thread) inherits. Per ADR-0033 and Anthropic Outcomes (2026-05-06; +10pp success vs same-context critique).

Mandatory context bootstrap (before any output):

  • Read these sections in WORKFLOW_OPERATING_SYSTEM.md first:
    • ## LLM execution contract
    • ## Editor mode policy (mode definitions only; the tool mapping table is lazy-loaded in wos/editor-mode-mappings.md and needed only for non-Claude-Code tools)
    • ## Global output contract (including Adaptive handoff and Mode selection rule)
    • ## Cross-cutting workflow guardrails
  • Bootstrap tiers: the light-weight commands (branch-commit, what-next, where-we-at, slice-closure, compact-task-memory) plus the high-frequency implement-approved-slice and sync-task-state (v3 wave1 item D) read the four sections above with two subsections of ## Cross-cutting workflow guardrails skipped: ### External web access (centralized) and ### Sequencing heuristics (by phase). Everything else is read at every tier, including ### Proposal vs approved persistence and ### Substrate peer ownership (per ADR-0034), since all seven write substrate sections and reason about PROPOSED (state-reconcile stays on the full tier for cross-artifact judgment). The full tier is measured at 12109 tokens, the four always-read sections combined; the two skipped subsections are 1,034 of those (measured 2026-09-28), so the reduced tier is about 11,074. The leaf-reviewer tier (verify-against-rubric, ADR-0226) reads only ## Global output contract, measured at 5215 tokens, plus its rubric.
  • Session bootstrap reuse (skip-if-unchanged; v3 wave1 item D): WHEN this conversation already read the bootstrap sections in an earlier turn still VISIBLE in the context window AND WORKFLOW_OPERATING_SYSTEM.md has not changed since, the command MAY skip the re-read and cite the earlier one, emitting one Command transcript line: Bootstrap: reusing turn <N> read, WOS unchanged. Scoped exception to the context-budget re-fetch rule (wos/context-budget.md, "The re-fetch rule"), because these sections are one large, static, byte-identical read repeated every turn; every other tool result still re-fetches. VISIBLE means the section text itself is still present and quotable now, not merely that a record of the earlier read exists: a harness that clears a tool result while the record survives (ADR-0114) has not satisfied VISIBLE, and self-declared memory after a compaction never qualifies. A stateless-per-turn harness is excluded. The transcript line is mandatory; a silent skip is invalid output.
  • Resolving the spec and wos/<topic>.md: canonical repository FIRST. Otherwise use active-adapter docs: ~/.claude/workflow-docs (CLAUDE_WORKFLOW_DOCS_DIR), ~/.cursor/workflow-docs (WORKFLOW_DOCS_DIR; project .cursor/workflow-docs on project installs), ~/.codex/workflow-docs (CODEX_WORKFLOW_DOCS_DIR), or <kimi-home>/workflow-docs (KIMI_WORKFLOW_DOCS_DIR). Nonempty overrides win. Kimi home: KIMI_CODE_HOME, else existing ~/.kimi-code, else existing ~/.kimi, default ~/.kimi-code. Use one root for both paths; try other adapters if absent or unknown. Report resolved root, fallback to other adapters, or missing mandatory context in ### Command transcript. Installed snapshots refresh and prune retired topics only on sync.
  • Read additional sections only when relevant to this command's role.
  • Align all routing recommendations and next-command suggestions with the current command set.
  • Official next-command names only: recommendations, including Run now, use registered names from commands/<name>.md or commands/<name>/SKILL.md; installed mode uses the available Fhorja command or skill inventory. No invented aliases. Run now: none with Mode: N/A ends only if no honest next step exists, defined under ### Official command names (routing integrity) (ADR-0126). Required inputs:
  • artifact path (PR_PACKAGE.md, contract document, slice file, etc.)
  • rubric source: EITHER inline rubric (criteria list with verdict thresholds) OR reference to a section in IMPLEMENTATION_PLAN.md or DECISIONS.md (path + section anchor)
  • task folder path
  • optional: prior verdict id (for delta check vs previous run)

Read the full file on GitHub · 110 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 18d ago Changed · -92 tokens per session 7bf323333212
  2. 21d ago Changed · -1 lines 9b3505bb7f8f
  3. 28d ago Changed · -1 lines c95dba1619f7
  4. 29d ago Changed · -16 lines · +35 tokens per session 87e447f68293
  5. 1mo ago First seen · 128 lines · 188 tokens per session scan A 98d1d74025d6

Subscribe to this mod's changes

verify-against-rubric is a skill published in the GitHub repository Mozurok/fhorja.dev (10 stars, last pushed 18d ago), licensed MIT. It adds 131 tokens to every session and 3,830 once invoked, about $0.0005 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.