framer

framer is an agent for Claude Code from MichaelYcJo/SpecSeal. It costs 71 tokens per session (2,545 once invoked), scanned A, original, MIT.

An agent that examines a repository before implementation and writes a specification, an implementation plan, and a list of unanswered questions. It does not write code or build the feature.

In plain words
What is it for?
Use it to understand a repository, gather decisions into one batch, and prepare spec.md, plan.md, and questions.md before coding.
Why use it?
Separating planning from implementation creates a description that the builder did not write about its own work. This gives later review a fixed plan to compare against.

Agent for Claude Code

Written for Claude Code: shipped in a Claude Code plugin. Also seen: mentions subagents; names the AskUserQuestion tool.

Part of the specseal plugin — 22 skills, 5 agents, 4 hooks shipped together

Good fit Use it to understand a repository, gather decisions into one batch, and prepare spec.md, plan.md, and questions.md before coding.

Compare 6 agents from other repositories ↓
Install with agentmods
npx agentmods add agents/michaelycjo/specseal/framer
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.

Clone the repo
git clone --depth 1 https://github.com/MichaelYcJo/SpecSeal

Made for: Claude Code.

Or install specseal, the plugin that ships this one along with the rest of its 22 skills, 5 agents, 4 hooks.

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 framer

README.md
[![agentmods](https://agentmods.dev/badge/agents/michaelycjo/specseal/framer/github.svg)](https://agentmods.dev/agents/michaelycjo/specseal/framer)
Your own site
<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.

agentmods 80×15 button for framer

Your own site · 80×15
<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>
Per session 71 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 2,545 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.00071 $0.02545
Opus 5.5 $0.00028 $0.01018
Sonnet 5.5 $0.00014 $0.00509
Haiku 4.5 $0.00007 $0.00254

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

Security

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.

agents/framer.md · 187 lines

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

  1. Read routing.md in the work item's directory; where it is absent, say so in the report. Every skills/, templates/ and docs/ 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.
  2. Write a skeleton spec.md inside 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.
  3. Open skills/implement/SKILL.md and read three sections: ## The language the records are written in, ### 1. Read the spec before the code and ### 3. The SDD file set. Where a heading is not found, read the file whole.
  4. 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). The check: 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 under seal/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 your plan.md. The process archive of the highest version, seal/process/<X.Y.Z>.md, once, where the seal/ root holds one: what that release changed in the way of working, and why, one row per change in the shape of templates/process.md. The ticket and its comments, and seal/parity.md where it is declared, which puts the original between the ticket and the code. A reference root (templates/config.md Reference specs) is read where the work touches what it describes, and cited in spec.md by path.
  5. 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, open skills/feature-planner/SKILL.md. Most frames need neither.
  6. Before writing, open skills/writing-style/SKILL.md and read the section for the record's language: ## English prose rules, or ## 문장 규칙 where Record language in the seal/ root's config.md is Korean.
  7. Write spec.md, then plan.md, then questions.md.
  8. Hand back. Label each claim as rule 4 says: a fact a command you ran gave you, a git show, a grep, a wc -l, is executed, and what you opened is read. 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 ## Removes rows, 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.

Read the full file on GitHub · 187 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. 4d ago Changed · +5 lines 052b8d5c5b6e
  2. 7d ago Changed · +12 lines cd09f2208e42
  3. 11d ago Changed · -198 lines 7e8136336a6c
  4. 12d ago Changed · -4 lines c2e7a7d74374
  5. 14d ago Changed · +2 lines 53037f77a46c
  6. 17d ago Changed · +4 lines 7f0a07635351
  7. 24d ago Changed · +15 lines d6f1a7959601
  8. 26d ago Changed · +2 lines a3d9038e349a
  9. 27d ago Changed · +45 lines a5ec61f792f8
  10. 1mo ago First seen · 304 lines · 71 tokens per session scan A f9e3015c58f2

Subscribe to this mod's changes

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.

Related

Other agents, from other repositories

code-reviewer

Code reviewer. Delegate only when the user explicitly starts an Octopus workflow.

nyldn/claude-octopus · 19 tokens

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…

testdouble/han · 135 tokens

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.

NikiforovAll/claude-code-rules · 37 tokens

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.

testdouble/han · 45 tokens

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.

swingerman/engineer · 52 tokens

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.

litestar-org/litestar-skills · 48 tokens