design-it-twice

design-it-twice is a skill for Codex from OutlineDriven/outline-driven-development. It costs 38 tokens per session (1,317 once invoked), scanned A, original, Apache-2.0.

A read-only method for comparing two designs for a module interface, seam, or testable boundary. A module can be a function, class, package, crate, or larger part of an application.

In plain words
What is it for?
Use it when deciding how callers should interact with a module or where to place a testable seam.
Why use it?
It exposes trade-offs before code is changed and helps make dependencies and testing points clearer. No files or source code are modified.

Skill for Codex

Written for Codex: agents/openai.yaml present.

Good fit Use it when deciding how callers should interact with a module or where to place a testable seam.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/outlinedriven/outline-driven-development/design-it-twice
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 OutlineDriven/outline-driven-development --skill design-it-twice
Clone the repo
git clone --depth 1 https://github.com/OutlineDriven/outline-driven-development

Made for: Codex.

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 design-it-twice

README.md
[![agentmods](https://agentmods.dev/badge/skills/outlinedriven/outline-driven-development/design-it-twice/github.svg)](https://agentmods.dev/skills/outlinedriven/outline-driven-development/design-it-twice)
Your own site
<a href="https://agentmods.dev/skills/outlinedriven/outline-driven-development/design-it-twice"><img src="https://agentmods.dev/badge/skills/outlinedriven/outline-driven-development/design-it-twice/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 design-it-twice

Your own site · 80×15
<a href="https://agentmods.dev/skills/outlinedriven/outline-driven-development/design-it-twice"><img src="https://agentmods.dev/badge/skills/outlinedriven/outline-driven-development/design-it-twice.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 38 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,317 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. Third-party audits
  • NVIDIA SkillSpector pass 7 Sept 2026
How audits are shown
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.00038 $0.01317
Opus 5 $0.00019 $0.00659
Sonnet 5 $0.00008 $0.00263
Haiku 4.5 $0.00004 $0.00132

Measured 2d ago against content hash 8a138a7d417f, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-08, from the pricing page.

Security

Grade A, and why

design-it-twice 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 2d 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.

Origin

Copies of this mod

1 near-identical copy found in the catalogue:

.devin/skills/design-it-twice/SKILL.md · 67 lines

How it starts

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

Design it twice

Contract

Field Bound contract
Trigger Design a module interface, seam, or testable boundary.
Authority Read-only. No file, VCS, credential, paid, published, deployed, or remote mutation. Design guidance only.
Side effect None. No artifacts are written; output is a design comparison and recommendation in chat.
Done The design uses explicit deep-module vocabulary and deliberately placed seams.

Inputs

  • A module, cluster, or boundary to design, named by the user or identified from context. Required.
  • The codebase's primary language and any second language family the project owns. Optional, but needed for cross-language interface sketches.
  • Existing callers and dependencies of the target. Optional; improves constraint framing.

Procedure

Use these terms exactly. Do not substitute "component," "service," "API," or "boundary."

  • Module: anything with an interface and an implementation: a function, class, package, crate, or tier-spanning slice.
  • Interface: everything a caller must know to use the module correctly: type signature, invariants, ordering constraints, error modes, required configuration, and performance characteristics.
  • Implementation: the body of code inside a module.
  • Depth: power at the interface: the amount of behaviour a caller can exercise per unit of interface they must learn. Deep = much behaviour behind a small interface; shallow = interface nearly as complex as implementation.
  • Seam: a place where behaviour can be altered without editing in that place. The location at which a module's interface lives; choosing where to put the seam is a design decision separate from the implementation.
  • Adapter: a concrete thing that satisfies an interface at a seam; describes role, not substance.
  • Leverage: what callers get from depth: more capability per unit of interface learned.
  • Locality: what maintainers get from depth: change, bugs, and verification concentrate in one place rather than spreading across callers.

Read the full file on GitHub · 67 lines

Files

What ships with it

1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

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. 2d ago Changed · -15 tokens per session 8a138a7d417f
  2. 5d ago First seen · 67 lines · 53 tokens per session scan A 770365c107ae

Subscribe to this mod's changes

design-it-twice is a skill published in the GitHub repository OutlineDriven/outline-driven-development (52 stars, last pushed 3d ago), licensed Apache-2.0. It adds 38 tokens to every session and 1,317 once invoked, about $0.0002 per session on Opus 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.

Related

Other skills, from other repositories

libfuzzer

Use when asked to build, run, or triage a coverage-guided C/C++ fuzz campaign on the libFuzzer or AFL++ engine. Not for harness design: use fuzz-harness-writing.

OutlineDriven/odin-claude-plugin · 45 tokens

strict-validation-setup

Use when a user invokes a strict-mode validation or verifiable-goals loop setup. Bootstraps strict-mode tooling and per-task GOALS.md scaffolding so an agentic loop can self-verify. Don't use for remote, credential, publish, deploy, or irreversible changes.

OutlineDriven/odin-claude-plugin · 61 tokens

oss-fuzz

Use when enrolling a project in OSS-Fuzz, running its helper workflow locally, or reproducing an OSS-Fuzz report. Not for remote, credential, publish, deploy, or irreversible changes.

OutlineDriven/odin-claude-plugin · 43 tokens

validation-first-driven

Use when building protocols, workflows, concurrent systems, or lifecycle-heavy state that needs explicit states, transitions, and temporal properties. Defines the state machine, encodes invariants in types, and for high-risk designs runs a TLA+ or Alloy model checker. Not for encoding domain models in types — use…

OutlineDriven/odin-claude-plugin · 78 tokens

testing-handbook-generator

Use when the user asks to discover, generate, refresh, or validate skills from the Trail of Bits Testing Handbook or appsec.guide. Not for tasks that require source or remote-system changes.

OutlineDriven/odin-claude-plugin · 44 tokens

ios-device-qa

Use when the user runs /ios-device-qa to drive a real iPhone over USB through a debug-bridge daemon and return a device QA report with verified interactions. Do not use for remote, credential, publish, deploy, or irreversible changes.

OutlineDriven/odin-claude-plugin · 55 tokens