Agent skill

Structured Output

by Archive228 in Archive228/loopkit

Get JSON out of the model reliably. An agent skill from Archive228/loopkit.

MITAuto-check passedAI & LLM Engineering

Install Structured Output

skills CLI
$ npx skills add Archive228/loopkit --skill structured-output -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install Archive228/loopkit structured-output --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/Archive228/loopkit.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/structured-output .claude/skills/structured-output && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
structured-output
GitHub stars
756
Token cost
~830 tokens
SKILL.md length
434 words
Files
1
Skills in repo
43
Repo updated
First seen
Licence
MIT

At a glance

Get JSON out of the model reliably. An agent skill from Archive228/loopkit.

  • Works in 3 steps: Tool use with schema (best) — declare a… → JSON mode / response_format (good) —… → Prompted JSON with strict rules…
  • Downstream code will parse the response
  • SKILL.md covers The hierarchy — use the…, The validate-and-retry pattern, Schema design — keep it flat and When free JSON is acceptable, plus 2 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Structured Output is an agent skill from Archive228/loopkit. Get JSON out of the model reliably. Prefer tooluse with a schema over prompted-JSON, validate on receive, retry on parse fail. Use when downstream code will parse the response.

Its SKILL.md is about 830 tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in AI & LLM Engineering, covering Structured output and tool calling. The repository describes itself as: 33 battle-tested skills + minimal .claude harness for any coding agent (Claude Code, Cursor, Codex, Gemini CLI). The licence is MIT.

When your agent uses it

  • Downstream code will parse the response
  • Tasks that involve Structured output and tool calling

Example prompts

  • “/structured-output”

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Tool use with schema (best) — declare a tool with a JSON Schema for its input. Force the model to call that tool. The API validates the…
  2. JSON mode / response_format (good) — where supported. Guarantees a valid JSON object at the top level; does not guarantee schema…
  3. Prompted JSON with strict rules (fallback) — for models/tiers without tool use. Say "output ONLY the JSON object, no code fences, no…

What it can do on your machine

Read from SKILL.md and the folder at commit 5ae033e. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Structured Output loads about 830 tokens when it runs. Until then it costs about 49 tokens; SKILL.md has 434 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~49
When it runs · the whole SKILL.md, loaded when a task matches
~830

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from Archive228/loopkit at commit 5ae033e, republished under its MIT licence (© Archive228). 434 words, ~830 tokens.

Download SKILL.mdSave it as .claude/skills/structured-output/SKILL.md (or your agent's skills folder).
name
structured-output
description
Get JSON out of the model reliably. Prefer tool_use with a schema over prompted-JSON, validate on receive, retry on parse fail. Use when downstream code will parse the response.
when_to_use
extracting structured data, agent-to-agent handoff, verifier verdicts, anything a script has to json.loads

Structured Output

Prompted JSON — "reply as JSON" in the system prompt — fails on ~2-8% of calls in the wild: stray prose before the object, trailing commas, unescaped quotes, code fences. That failure rate is fine for a demo and fatal for a loop that runs a thousand times.

The hierarchy — use the strongest that fits

  1. Tool use with schema (best) — declare a tool with a JSON Schema for its input. Force the model to call that tool. The API validates the arguments against the schema before you see them. Malformed JSON never leaves the model. Use this whenever the downstream is a real parser.

  2. JSON mode / response_format (good) — where supported. Guarantees a valid JSON object at the top level; does not guarantee schema conformance. Cheap upgrade over prompted-JSON.

  3. Prompted JSON with strict rules (fallback) — for models/tiers without tool use. Say "output ONLY the JSON object, no code fences, no prose", give an example, and validate on receive. Assume ~5% failure and handle it.

The validate-and-retry pattern

call → parse → if fail: retry once with the parse error appended → parse → if fail: hard fail
  • One retry, not a loop. If the model can't produce it in two tries, the schema is too complex or the prompt is wrong. Log and stop.
  • Feed the parse error back verbatim on retry — the model will fix specific issues ("expected string at line 3") that it can't guess from a generic "please try again".
  • Never silently coerce. If a required field is missing, fail loudly. Auto-defaults hide prompt bugs.
Show full SKILL.md (194 more words)Show less

Schema design — keep it flat

  • Flat objects beat nested. Every level of nesting is another chance to hallucinate.
  • Enums over free strings. "severity": "high|medium|low" not "severity": "...".
  • Optional fields default to null explicitly in the schema. Don't ask the model to "omit if unknown".
  • No additionalProperties: true without a reason. If the model can add fields, it will, and they'll be inconsistent.

When free JSON is acceptable

  • Single scalar field, low-stakes ({"answer": "yes"}).
  • Human-in-the-loop reviewing every output.
  • Prototype throwaway.

Otherwise use tool_use.

Red flags

  • Regex to extract JSON from a code fence. You're one prompt tweak away from breakage. Use tool_use.
  • json.loads with a bare try/except: pass. Silent failure — you'll be debugging a downstream nil for hours.
  • Schema is a wall of oneOf/anyOf. Split into multiple tools and let the model choose which to call.
  • "Just add 'ONLY JSON' to the system prompt" in a hot loop. Works 95% of the time. That's the problem.
  • Different structured output on retry with same input. Set temperature to 0 for extraction tasks.

Loopkit-adjacent

Loopkit's adversarial-verify output is {"passes": bool, "failures": [...]} — that is exactly the shape this skill formalizes. When you compose skills, keep every machine-consumed hop tool_use'd.

© Archive228, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/structured-output of Archive228/loopkit.

Open the folder on GitHubat commit 5ae033e

Compare with similar skills

Structured Output next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Structured Output compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Structured Output this skillArchive228/loopkit756—~830Automated safety check: PassMIT
Planning With Filesjarrodwatts/claude-code-config1.1k5 repos~967Automated safety check: PassNone
Tool Use Data Synthesissunny-glow/Auto-BenchMax1.3k—~3.3kAutomated safety check: PassNone
Agent Harness ConstructionKartikLabhshetwar/mind-mentor1477 repos~500Automated safety check: PassApache-2.0
Prompt Engineering Patternswshobson/agents40k—~1.3kAutomated safety check: PassMIT
Model Benchmarkstheopenco/llmgateway1.7k—~1.1kAutomated safety check: NotesCustom licence

Similar skills

  • Planning With Files

    jarrodwatts/claude-code-config

    Transforms workflow to use Manus-style persistent markdown files for planning, progress tracking, and knowledge storage.

    1.1k GitHub starsUsed in 5 repos~967 tokens
    AI & LLM EngineeringAuto-check passed
  • Tool Use Data Synthesis

    sunny-glow/Auto-BenchMax

    Synthesize training data for ANY tool-use / agentic benchmark, in ANY repo.

    1.3k GitHub stars~3.3k tokensUpdated 2 mo ago
    AI & LLM EngineeringAuto-check passed
  • Agent Harness Construction

    KartikLabhshetwar/mind-mentor

    Design and optimize AI agent action spaces, tool definitions, and observation formatting for higher completion rates.

    147 GitHub starsUsed in 7 repos~500 tokens
    AI & LLM EngineeringAuto-check passed
  • Reference for designing and tuning production LLM prompts: few-shot examples, chain-of-thought, structured outputs, templates and system prompts.

    40k GitHub stars~1.3k tokensUpdated 3 days ago
    AI & LLM EngineeringAuto-check passed
  • Model Benchmarks

    theopenco/llmgateway

    Run and report repository model or provider-mapping benchmarks.

    1.7k GitHub stars~1.1k tokensUpdated today
    AI & LLM EngineeringAuto-check: notes
  • Agent Prompt Quality Bar

    mastra-ai/mastra

    Universal quality bar and final audit rubric for any agent system prompt.

    29k GitHub stars~2k tokensUpdated today
    AI & LLM EngineeringAuto-check passed

More from Archive228/loopkit

All 43 skills in this repo
  • Hitl Escalate

    Archive228/loopkit

    Escalate blocked runs to a human via configured channel or fallback to BLOCKED.md and exit the loop.

    756 GitHub stars~1.2k tokensUpdated 2 mo ago
    Auto-check passed
  • Using Loopkit

    Archive228/loopkit

    A skill your agent uses when starting any conversation in a loopkit-enabled project - establishes how to find and use loopkit's 49 skills, requiring skill invocation before ANY response including…

    756 GitHub stars~1.4k tokensUpdated 2 mo ago
    Auto-check passed
  • Active Memory Reminder

    Archive228/loopkit

    Before compaction Loopkit extracts decisions into claude-decisions.json (machine-readable).

    756 GitHub stars~1.2k tokensUpdated 2 mo ago
    Auto-check passed
  • Eval Harness

    Archive228/loopkit

    Build a repeatable eval loop that grades agent output with an LLM judge, so prompt/skill changes get scored against a baseline instead of eyeballed.

    756 GitHub stars~876 tokensUpdated 2 mo ago
    Auto-check passed
  • Feature List JSON

    Archive228/loopkit

    Enumerate every end-to-end feature as strict JSON entries with passes:false, editable-passes-only discipline, and priority order.

    756 GitHub stars~1.2k tokensUpdated 2 mo ago
    Auto-check passed
  • Prompt Caching

    Archive228/loopkit

    Cache the parts of the prompt that don't change so a long-running loop stops paying full price on every turn.

    756 GitHub stars~735 tokensUpdated 2 mo ago
    Auto-check passed

Questions about Structured Output

What does Structured Output do?

Get JSON out of the model reliably. An agent skill from Archive228/loopkit. Structured Output is an agent skill from Archive228/loopkit. Get JSON out of the model reliably.

When should I use Structured Output?

Structured Output fits situations like: downstream code will parse the response; tasks that involve Structured output and tool calling.

How do I install Structured Output in Claude Code?

Run `npx skills add Archive228/loopkit --skill structured-output -a claude-code`. Or copy the skill folder (skills/structured-output in Archive228/loopkit) into .claude/skills/structured-output in your project. Claude Code loads it when a task matches its description.

How do I install Structured Output in Codex?

Run `npx skills add Archive228/loopkit --skill structured-output -a codex`. Or copy the skill folder (skills/structured-output in Archive228/loopkit) into .agents/skills/structured-output in your project. Codex loads it when a task matches its description.

Can I use Structured Output in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Archive228/loopkit --skill structured-output -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/structured-output, .gemini/skills/structured-output, .github/skills/structured-output and .opencode/skills/structured-output in your project.

What does Structured Output need to run?

SKILL.md names no scripts, command-line tools or credentials: Structured Output is instructions for the agent only.

Does Structured Output access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Structured Output safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Structured Output use?

Structured Output is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Structured Output use?

About 830 tokens (SKILL.md is roughly 3.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Structured Output?

Skills that share tags, products or a category with Structured Output: Planning With Files (jarrodwatts/claude-code-config, 1.1k stars), Tool Use Data Synthesis (sunny-glow/Auto-BenchMax, 1.3k stars), Agent Harness Construction (KartikLabhshetwar/mind-mentor, 147 stars) and Prompt Engineering Patterns (wshobson/agents, 40k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Structured Output?

Archive228 (a GitHub user) maintains it in Archive228/loopkit, which has 756 GitHub stars. The repository holds 43 skills in this directory. The repository was last updated on July 14, 2026.

Source: Archive228/loopkit on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.