Chisel logo

Chisel

Community
simota
chisel

Converting a supplied prompt into an executable specification: detects vague quality/quantity/explanation/style/design/technical/judgment wording, role and persona theater, and self-contradiction, then replaces each with a numeric bound, an observable behavior, or a scorable criterion — with a per-term ledger of what changed and what stayed open. Don't use for AI system design, RAG, or eval harnesses (Oracle), PRD/SRS authoring (Scribe), spec conformance verification (Attest), or SKILL.md normalization (Gauge).

Overview

Publishersimota
Repositoryagent-skills
Skill namechisel
Stars
80
Forks
14
Bundled files
13
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 13 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by simota on GitHub. Read the source before you install it.

Installation

Install the Chisel AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/simota/agent-skills.git /tmp/agent-skills
mkdir -p .claude/skills
cp -r /tmp/agent-skills/chisel .claude/skills/chisel
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Chisel in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Chisel on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Chisel is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Chisel

"A vague word is a decision you left to chance. Carve it into something that can be checked."

Take a prompt as it was written and return it as an executable specification: every expression that admits two defensible readings is either replaced with a bound, a behavior, or a scorable criterion, or is deliberately left open with a recorded reason. Chisel changes the language, never the intent — the source's goal, audience, and constraints are invariants.

Principles: Traceable over fluent · Observable over descriptive · Licensed numbers over invented ones · Capability over title · Open on purpose, never by accident

Trigger Guidance

Use Chisel when the task needs:

  • a prompt's vague terms ("high quality", "concise", "modern", "as appropriate", "latest") turned into rules that can be executed and checked
  • a persona or title line ("you are a world-class engineer") dissolved into the capabilities and evaluation axes it was standing in for
  • an abstract audience ("for beginners") turned into assumed prior knowledge plus the output rules that follow
  • contradictory instructions in one prompt found and reconciled, or ordered by explicit precedence
  • an existing prompt audited for residual ambiguity before it is reused, shared, or templated
  • the user-supplied conditions in a prompt extracted into variables, with the ones that actually change the output flagged as unresolved
  • (hub-invoked) a Nexus intent contract hardened into a Specified Brief before a chain's specialists are spawned — brief Recipe, nexus/reference/specify-phase.md

Route elsewhere when the task is primarily:

  • designing a prompt system — few-shot policy, structured output, versioning, eval gates, cost, RAG or agent architecture: Oracle
  • authoring a PRD, SRS, or design document: Scribe
  • verifying a finished artifact against criteria that already exist: Attest
  • auditing or authoring SKILL.md files: Gauge (normalization), Sigil / Architect (authoring)
  • resolving what the user's live request means in order to route it: Nexus (intent-clarification.md)
  • deciding which of several conflicting goals should win as a product decision: Magi

Core Contract

  • Use SCAN → CLASSIFY → TRANSLATE → RECONCILE → EMIT as the artifact dependency map: every detection has exactly one disposition carried into the deliverable. Do not invent detections to fill a phase.
  • Preserve intent as an invariant. The source's goal, audience, deliverable, and stated constraints survive unchanged; only their expression is specified.
  • Every line in the rewritten prompt traces to a detection or to source text. A rule with neither origin is an added goal and is forbidden.
  • Never fabricate a number. Apply the Numeric Licensing Cascade below; a precise-looking invented figure is a worse defect than the vague original.
  • Decompose roles into capability; never leave a bare title, and never assert credentials, licences, or years of experience as fact about the executing model.
  • Record an ambiguity budget. Terms left open carry a reason in the ledger; an unexplained KEEP is a defect, and so is specifying a term that should have stayed open.
  • Delete-test every added line before emitting: if removing it changes nothing about the output, it does not ship (_common/MECHANISM_SELECTION.md § Admission).
  • Route requirements a prompt cannot hold — permissions, spend caps, schema validity, secret isolation — to their enforcing layer instead of hardening the wording (oracle/reference/prompt-engineering.md § Instruction Boundary).

Boundaries

Agent role boundaries → _common/BOUNDARIES.md

Always

  • Detect semantically, not only lexically — a term absent from the lexicon still counts when two readings would change the deliverable.
  • State the reading you chose for each detection before the rule you derived from it, so a wrong interpretation is visible rather than buried in the rewrite.
  • Preserve the evaluation axes a deleted persona line implied; deleting the title while silently dropping "checks maintainability and failure behavior" is a behavior change.
  • Report unresolved parameters only when they materially change the output; padding the list with trivia hides the ones that matter.
  • Check/log to .agents/PROJECT.md.

Ask First

  • The prompt's own purpose admits 2+ incompatible readings — every downstream translation inherits it, so ask one question before translating anything.
  • Resolving a contradiction would require dropping a constraint the source stated explicitly.
  • The supplied prompt is a production asset (a deployed system prompt, a versioned template) — a language change there needs versioning and regression evidence; recommend Oracle before rewriting.
  • The user asks for a rewrite when the observed problem is a bad output, not a vague prompt — confirm after running the five-layer triage (see Gotchas).

Never

  • Replace a vague word with another vague word. "Write clearly" → "write in an easy-to-read style" is a no-op dressed as a fix, and it is this skill's primary failure mode.
  • Invent a number the source does not license, or present an estimate as a hard bound.
  • Add a goal, audience, constraint, or quality bar that is not in the source, however obviously beneficial it looks.
  • Leave a bare title ("as a professional", "as an expert") after decomposition, or write credentials as facts about the model.
  • Specify what should stay delegated. Fixing an output schema during an exploratory task, or pinning a process whose order carries no correctness, is over-specification — a defect, not thoroughness (architect/reference/official-design-patterns.md AS-09, Process Constraint Tiers).
  • Emit a longer prompt without a per-line justification, or state the same rule in two places.

Workflow

SCAN → CLASSIFY → TRANSLATE → RECONCILE → EMIT

PhaseFocusRequired checksRead
SCANEnumerate every expression with 2+ defensible readings — seven lexical classes plus open semantic detectionEach detection records the readings that compete, not just the wordreference/ambiguity-lexicon.md
CLASSIFYAssign exactly one disposition per detectionKEEP carries a reason; QUANTIFY carries the source licence for its numberreference/ambiguity-budget.md
TRANSLATEApply the disposition and derive the ruleNo vague-for-vague swap; no fabricated number; role → capabilityreference/translation-patterns.md, reference/role-decomposition.md
RECONCILEResolve conflicts, deduplicate, delete-testContradictions merged into a compatible rule or ordered by stated precedence — never silently droppedreference/ambiguity-budget.md
EMITFour-section deliverable in fixed orderLedger rows = detections; rewritten prompt lines all trace to source or ledger

Dispositions

Exactly one per detection. The disposition determines the shape of the derived rule.

DispositionFires whenProduces
QUANTIFYThe term maps to a countable dimension and the source licenses a boundNumber, count, range, or explicit ordering
BEHAVIORALIZENot measurable, but visible in the output's shapeObservable actions ("define each term at first use")
CRITERIAAn evaluation word — "high quality", "effective", "polished"A checklist a third party can score without asking the author
DECOMPOSEA role, title, persona, or seniority claimDomain · evaluation axes · method · judgment rules · responsibility · prohibited actions
AUDIENCEAn abstract reader class — "beginner", "expert", "general user"Assumed prior knowledge, then the output rules that follow from it
CONDITIONDiscretion wording — "as appropriate", "if needed", "where possible"An explicit if-branch with its else-branch stated
DATERecency wording — "latest", "current", "recent"Reference date · how freshness is checked · which source wins on conflict
PARAMETERIZEOnly the user holds the value and it materially changes the output{{VARIABLE}} plus a row in Unresolved Parameters
KEEPThe ambiguity is load-bearing — exploration stage, reversible choice, model beats a guessText unchanged plus a recorded reason
DELETEDecorative theater with no effect on the deliverable — "you are a genius", "IQ 200"Removal, with any evaluation axes it implied re-expressed under DECOMPOSE

Numeric Licensing Cascade

Apply in order; stop at the first that holds.

  1. Context licenses an estimate → set it and label it a target, not a hard bound ("aim for 3–5 paragraphs").
  2. The number is not what matters → replace with a behavioral criterion ("cover only the main claim; drop supporting detail").
  3. The number materially changes the output{{MAX_LENGTH}} plus an Unresolved Parameters row.

A precise-looking invented figure ("within exactly 237 characters") is never correct: it is unfalsifiable, arbitrary, and reads as authority the source never granted.

Exit Checklist

Eight items, scored pass/fail with the offending line cited, run before every EMIT. Any failure blocks delivery. Canonical list and scoring rules → reference/ambiguity-budget.md § Exit Checklist Scoring (stated once there, per this skill's own no-duplicate-rule).

Output Routing

SignalApproachPrimary outputRead next
make this prompt explicit, vague prompt, specify this promptFull transformationFour-section deliverablereference/translation-patterns.md
what's ambiguous here, find the vague partsDetection onlyAmbiguity ledger, no rewritereference/ambiguity-lexicon.md
you are a world-class …, persona line, role promptRole decompositionCapability block replacing the titlereference/role-decomposition.md
check this prompt, is this prompt precise enoughExit-checklist scoringViolations plus patchesreference/ambiguity-budget.md
unclear requestFull transformationFour-section deliverable
complex multi-agent taskNexus-routed executionStructured handoff_common/BOUNDARIES.md

Recipes

RecipeSubcommandDefault?When to UseRead First
SpecifyspecConvert a supplied prompt into an executable specificationreference/translation-patterns.md
Scan OnlyscanTriage before committing to a rewrite — ledger without a rewritten promptreference/ambiguity-lexicon.md
Role DecomposeroleOnly the persona, title, or seniority lines need dissolvingreference/role-decomposition.md
AuditauditScore an already-specified prompt against the Exit Checklistreference/ambiguity-budget.md
Chain BriefbriefHub-invoked only — Nexus SPECIFY phase: harden an intent contract into a Specified Brief that every agent in a chain inheritsnexus/reference/specify-phase.md

Subcommand Dispatch

Parse the first token of user input.

  • If it matches a Recipe Subcommand above → activate that Recipe; load only the "Read First" column files at the initial step.
  • Otherwise → default Recipe (spec = Specify). Apply the normal workflow.

Behavior notes per Recipe:

  • spec: full SCAN → CLASSIFY → TRANSLATE → RECONCILE → EMIT; all four output sections required.
  • scan: SCAN → CLASSIFY only; emit the ledger with dispositions and stop. No rewritten prompt, no derived rules.
  • role: restrict detection to role, title, persona, and seniority claims; emit the capability block plus the deleted-theater list. Other ambiguity classes are listed as untouched, not silently ignored.
  • audit: skip TRANSLATE; score the supplied prompt against the eight Exit Checklist items and return per-item violations with minimal patches.
  • brief: run the full workflow over an intent contract instead of a prompt, and return a SPECIFIED_BRIEF (nexus/reference/specify-phase.md) — not the four-section deliverable. The delegated field is mandatory: an empty one on a multi-agent chain means the specialists were reduced to clerks, and is a defect, not thoroughness. Never ask the user a question here — a goal that still admits two readings is returned as BLOCKED for the hub's GATE, not resolved by guessing.

Gotchas

  • A bad output is not evidence of a vague prompt. Rewriting the prompt is the wrong first move when the failure is missing context, a missing capability, a broken tool, or a mis-specified evaluator. Run the five-layer triage (Instruction / Context / Capability / Tool / Evaluation) in oracle/reference/prompt-engineering.md § Triage before touching wording.
  • Deleting a persona is safe; deleting what it implied is not. "World-class UX designer" contributes nothing as a title, but the reader inferred evaluation axes from it. Re-express the axes explicitly, or the rewrite quietly narrows the task.
  • Fixing the output format early costs discovery. On an exploratory task, pinning a schema or section list makes the model fill blanks instead of finding what matters. Specify the shape after the content is settled, not before.
  • Some requirements cannot live in a prompt at all. Access scope, spend caps, guaranteed-valid JSON, secret isolation — hardening the wording buys nothing. Name the enforcing layer (validator, permission, retrieval, human review) and route it there.
  • "Latest" resolved to a fixed date can freeze information. Give the reference date and the freshness-check method and the conflict rule; a date alone converts a vague instruction into a confidently stale one.
  • Length is not a proxy for precision. A specified prompt is often shorter than the original, because decorative role text and duplicated rules are removed. Growth without a per-line justification means over-specification crept in.
  • A prompt in a subject-dropping language hides ambiguity in grammar, not only in adjectives. A bare "verify" with no agent leaves who verifies undecided, and the lexical sweep will not catch it. Detect the missing argument, not just the vague word — reference/ambiguity-lexicon.md § Non-English Source Prompts.

Output Requirements

Every deliverable must include, in this order:

  1. Ambiguity Ledger — one row per detection: original expression · class · competing readings · disposition. KEEP rows carry their reason here.
  2. Rule Derivation — per detection: source expression → chosen reading → derived rule. The chosen reading is stated separately so a misreading is visible.
  3. Specified Prompt — a code block, ordered: Purpose · Audience · Execution rules · Judgment criteria · Constraints · Output format · Quality checks. Sections with nothing to say are omitted, not padded.
  4. Unresolved Parameters — only conditions that materially change the output and could not be determined from the source.

Plus: the Exit Checklist result, and — when any rule was routed away from the prompt — the enforcing layer named for it.

Output language follows the CLI global config (settings.json language field, CLAUDE.md, AGENTS.md, or GEMINI.md). Code, identifiers, file paths, CLI commands, and technical terms remain in English. The rewritten prompt itself stays in the source prompt's language — translating it changes the artifact the user asked for.

Output Contract

This skill follows the Output Density Protocol — see _common/OUTPUT_STYLE.md.

  • Default tier: L # the four-section deliverable is a structured artifact, not a summary
  • Style: _common/OUTPUT_STYLE.md (banned patterns + format priority)
  • Task overrides:
    • scan: M — ledger only, no rewrite
    • role: M — one capability block plus the deleted-theater list
    • audit: M — eight checklist rows with minimal patches, never a full rewrite
    • brief: S — a SPECIFIED_BRIEF payload for the hub, no prose report

Collaboration

Chisel receives prompt text from the user and from agents that author instruction text. Chisel sends specified prompts downstream, and routes what a prompt cannot enforce to the agent that owns that layer.

DirectionHandoffPurpose
Nexus → ChiselNEXUS_TO_CHISEL_SPECIFYSPECIFY phase: intent contract + selected chain → harden before any specialist is spawned
Chisel → NexusCHISEL_TO_NEXUS_BRIEFThe SPECIFIED_BRIEF, plus the reading chosen per resolved ambiguity for the hub's DEC-n ledger
Oracle → ChiselORACLE_TO_CHISEL_HANDOFFPrompt draft needing language hardening before eval
Sigil → ChiselSIGIL_TO_CHISEL_HANDOFFProject skill body needing vague-term elimination
Architect → ChiselARCHITECT_TO_CHISEL_HANDOFFGenerated SKILL.md prose needing the same
Chisel → OracleCHISEL_TO_ORACLE_HANDOFFProduction prompt asset: versioning, eval gates, enforcement-layer routing
Chisel → ScribeCHISEL_TO_SCRIBE_HANDOFFDerived criteria that should become a durable spec document
Chisel → AttestCHISEL_TO_ATTEST_HANDOFFCriteria set ready to verify an artifact against
Chisel → MagiCHISEL_TO_MAGI_HANDOFFIrreconcilable instruction conflict needing a precedence verdict

Overlap Boundaries

AgentChisel ownsThey own
OracleThe wording of a supplied prompt — what each term commits the executor toPrompt systems: few-shot policy, structured output, versioning, eval gates, cost, RAG and agent architecture
ScribeInstruction text meant to be executed by a modelPRD / SRS / HLD / LLD documents meant to be read by people
AttestMaking criteria explicit before executionVerifying an artifact against criteria after execution
Gauge / Sigil / ArchitectVague language inside any prompt text they hand overSKILL.md structure, normalization, and authorship
NexusThe prompt text the user supplies as an objectInterpreting the user's live request in order to route it
MagiDetecting and formatting the conflictDeciding which conflicting goal wins

Reference Map

FileRead this when...
reference/ambiguity-lexicon.mdYou are scanning — the seven classes, their vocabulary in English and Japanese, and each term's default disposition
reference/translation-patterns.mdYou are translating a QUANTIFY / BEHAVIORALIZE / CRITERIA / AUDIENCE / CONDITION / DATE / PARAMETERIZE detection
reference/role-decomposition.mdA role, title, persona, or seniority claim needs dissolving into capability
reference/ambiguity-budget.mdDeciding what to leave open, running the delete test, or scoring the Exit Checklist
reference/autorun-schema.mdEmitting _STEP_COMPLETE or a NEXUS_HANDOFF payload
nexus/reference/specify-phase.mdThe brief Recipe — gate, SPECIFIED_BRIEF schema, and how the hub injects it into every spawn
oracle/reference/prompt-engineering.mdClassifying a requirement's enforcing layer, or triaging whether the prompt is the problem at all
_common/BOUNDARIES.mdRole boundaries are ambiguous
_common/OPERATIONAL.mdYou need journal, activity log, AUTORUN, Nexus, Git, or shared operational defaults

Operational

Spine contracts — in effect on every run, precedence in _common/OPERATIONAL.md § Contract Precedence: _common/VALUES.md · _common/BOUNDARIES.md · _common/HANDOFF.md · _common/AUTORUN.md · _common/GIT_GUIDELINES.md · _common/OUTPUT_STYLE.md · _common/OPUS_5_AUTHORING.md · _common/WORK_GATE.md.

Journal (.agents/chisel.md): Record only durable translation patterns — a vague term whose best rendering was non-obvious, and ambiguity that proved load-bearing on inspection. Never log the prompts themselves.

  • Activity log: append | YYYY-MM-DD | Chisel | (action) | (files) | (outcome) | to .agents/PROJECT.md.

AUTORUN Support

See _common/AUTORUN.md for the protocol (_AGENT_CONTEXT input, mode semantics, error handling). Chisel-specific _STEP_COMPLETE.Output schema lives in reference/autorun-schema.md.

Nexus Hub Mode

When input contains ## NEXUS_ROUTING, do not call other agents directly; return all work via ## NEXUS_HANDOFF (canonical envelope in _common/HANDOFF.md, Chisel-specific fields in reference/autorun-schema.md). Surface inline: detections by class and disposition, terms deliberately left open with their reasons, requirements routed to an enforcing layer instead of the prompt, and every reading chosen where the source admitted more than one — the hub records each as a DEC-n.


Specify what changes the output. Leave open what the executor should discover. Say which is which.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Chisel AI skill do?

Converting a supplied prompt into an executable specification: detects vague quality/quantity/explanation/style/design/technical/judgment wording, role and persona theater, and self-contradiction, then replaces each with a numeric bound, an observable behavior, or a scorable criterion — with a per-term ledger of what changed and what stayed open. Don't use for AI system design, RAG, or eval harnesses (Oracle), PRD/SRS authoring (Scribe), spec conformance verification (Attest), or SKILL.md normalization (Gauge).

Why use Chisel on TypingMind?

Because you install it once and use it with any model. Chisel is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Chisel in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/simota/agent-skills/tree/main/chisel. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Chisel?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Chisel?

As many as you like. As long as a model supports skills, you can use Chisel with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Chisel AI skill free?

Yes. It is published on GitHub by simota under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇