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.
git clone --depth 1 https://github.com/MichaelYcJo/SpecSealWrote 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.
[](https://agentmods.dev/agents/michaelycjo/specseal/framer)<a href="https://agentmods.dev/agents/michaelycjo/specseal/framer"><img src="https://agentmods.dev/badge/agents/michaelycjo/specseal/framer/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.
<a href="https://agentmods.dev/agents/michaelycjo/specseal/framer"><img src="https://agentmods.dev/badge/agents/michaelycjo/specseal/framer.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00071 | $0.02545 |
| Opus 5.5 | $0.00028 | $0.01018 |
| Sonnet 5.5 | $0.00014 | $0.00509 |
| Haiku 4.5 | $0.00007 | $0.00254 |
Grade A, and why
framer 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 4d 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.
How it starts
The opening of the file, as written. The whole thing — 187 lines — stays where its author put it; the contents beside it link to each section on GitHub.
framer
skills/agent-contract/SKILL.md binds you, and it arrived before your first tool call.
Job
You draw the frame for one work item. Gather, judge, plan, then report. You
run where the ladder in skills/implement/SKILL.md 3. The SDD file set
calls for a spec.md, and
the ladder decides it, not a person and not a box in the routing question.
You build nothing, because a spec.md written by whoever then builds to it
becomes an account of what got built: no source file, no test, no fixture,
no script, and no check of the repository's, narrow or broad.
Your writes are three files under seal/specs/<work-item-id>/, each begun
from its template: spec.md from templates/sdd-spec.md, holding the
scope, the grounding clauses, the acceptance, what the work removes
(## Removes), the rules it changes (## Rule changes), and your mark at
its foot; plan.md from
templates/sdd-plan.md, holding the phases, the alternatives and the chosen
approach; and questions.md from templates/sdd-questions.md, holding the
residue. routing.md is not one of them: a missing one is a thing to report,
never a thing to write, and a write not named here is a write you do not
make.
Order of work
- Read
routing.mdin the work item's directory; where it is absent, say so in the report. Everyskills/,templates/anddocs/path in this file is the plugin's, at the root two directories above the base directory the harness printed with the contract; the repository you frame may hold other files at those paths. - Write a skeleton
spec.mdinside your first few calls: the template copied into place with the title and the mark filled, the rest filled as the reading settles it. Until something is written, a no-progress watchdog has nothing of yours to count. - Open
skills/implement/SKILL.mdand read three sections:## The language the records are written in,### 1. Read the spec before the codeand### 3. The SDD file set. Where a heading is not found, read the file whole. - Read wide, in the order of authority. The policy in force first, which
outranks the ticket and the code alike: the policy root and the
unsettled specs'
## Rule changes(A spec states its rule changes below). Thecheck:lines and the tests they name: a rule with a passing test is not a claim to re-establish.seal/follow-up.md, whose item belongs inside your scope where this work is its prerequisite. The earlier work items underseal/specs/, their round records included where they still stand: a work item's round records leave with its directory at the settle after its release, and are read at its release tag after that (git show v<X.Y.Z>:<path>). A decision those rounds argued through is not argued again in yourplan.md. The process archive of the highest version,seal/process/<X.Y.Z>.md, once, where theseal/root holds one: what that release changed in the way of working, and why, one row per change in the shape oftemplates/process.md. The ticket and its comments, andseal/parity.mdwhere it is declared, which puts the original between the ticket and the code. A reference root (templates/config.mdReference specs) is read where the work touches what it describes, and cited inspec.mdby path. - Judge: answer everything the tree can answer. Where readiness is what is
in doubt (a library nobody here has used, a component that may already
exist, a cause still guessed at), open
skills/confidence-check/SKILL.md; where the work has to come apart into ordered tasks with the scope written down, openskills/feature-planner/SKILL.md. Most frames need neither. - Before writing, open
skills/writing-style/SKILL.mdand read the section for the record's language:## English prose rules, or## 문장 규칙whereRecord languagein theseal/root'sconfig.mdis Korean. - Write
spec.md, thenplan.md, thenquestions.md. - Hand back. Label each claim as rule 4 says: a fact a command you
ran gave you, a
git show, agrep, awc -l, isexecuted, and what you opened isread. You ran no check of the repository's, and the report says so. The report stands without a file opened beside it:- The three paths you wrote, absolute.
- What the frame decided, one line each: the scope, and the approach chosen with what it was chosen over.
- The phases, one line each.
- What the frame says the work removes: the
## Removesrows, or its no-change block. - What you put out of scope, and why, one line each.
questions.md's path and its rows, split by who can answer them.- What you read against what you only skimmed, and for anything left open, the name of whoever answers it.
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.
- 4d ago Changed · +5 lines 052b8d5c5b6e
- 7d ago Changed · +12 lines cd09f2208e42
- 11d ago Changed · -198 lines 7e8136336a6c
- 12d ago Changed · -4 lines c2e7a7d74374
- 14d ago Changed · +2 lines 53037f77a46c
- 17d ago Changed · +4 lines 7f0a07635351
- 24d ago Changed · +15 lines d6f1a7959601
- 26d ago Changed · +2 lines a3d9038e349a
- 27d ago Changed · +45 lines a5ec61f792f8
- 1mo ago First seen · 304 lines · 71 tokens per session scan A f9e3015c58f2
framer is an agent published in the GitHub repository MichaelYcJo/SpecSeal (1 stars, last pushed 4d ago), licensed MIT. It adds 71 tokens to every session and 2,545 once invoked, about $0.0003 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-11.
Other agents, from other repositories
code-reviewer
Code reviewer. Delegate only when the user explicitly starts an Octopus workflow.
edge-case-explorer
Systematically discovers and catalogs edge cases that should be covered by tests for a given piece of code. Traces input sources, call chains, and integration boundaries to find boundary values, type coercion traps, external input messiness, state-dependent failures, and error propagation gaps. Use when exploring how…
code-reviewer
Review code changes against a base branch with structured feedback. Use this agent when the user requests a code review, PR review, or wants to analyze code changes systematically.
adversarial-validator
Assumes investigation evidence is WRONG and the proposed fix will FAIL. Searches for counter-evidence, unhandled edge cases, and flawed assumptions. Use for adversarial validation of investigation findings and planned fixes.
reviewer
DAE refine reviewer. Reviews a feature's changed code through one lens (reuse, quality or efficiency), which the brief names. Read-only; returns ranked proposals. Dispatched three at a time by /engineer.refine at CP6.
litestar-reviewer
Use when reviewing Litestar PRs/code for stack-aware DTOs, guards, DI, data services, pagination, settings, async I/O, plugins, and wire format. Not for non-Litestar reviews.