research-guidance

Instructions for Guidance, a Microsoft Research library that constrains AI-generated text to formats such as JSON, XML, dates, or code. It also describes connecting the library to supported language models.

In plain words
What is it for?
Use it to define generation rules, require valid structured responses, reduce invalid model output, or build controlled workflows in Python.
Why use it?
It helps prevent malformed structured output and can make multi-step generation workflows more predictable.

Skill for Claude CodeCodex

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.

agentmods
npx agentmods add skills/graycodeai/starling/research-guidance
Any agent
npx skills add GrayCodeAI/starling --skill research-guidance
Clone the repo
git clone --depth 1 https://github.com/GrayCodeAI/starling

Made for: Claude Code, Codex.

Per session 39 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 3,971 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin 92% copy Near-identical to another mod 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 $0.00039 $0.03971
Opus 5 $0.00019 $0.01985
Sonnet 5 $0.00008 $0.00794
Haiku 4.5 $0.00004 $0.00397

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

Security

Grade A, and why

research-guidance 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

This is a copy

92% identical to guidance — 14 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.

categories/ai-ml/research-guidance/SKILL.md · 570 lines

How it starts

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

Guidance: Constrained LLM Generation

When to Use This Skill

Use Guidance when you need to:

  • Control LLM output syntax with regex or grammars
  • Guarantee valid JSON/XML/code generation
  • Reduce latency vs traditional prompting approaches
  • Enforce structured formats (dates, emails, IDs, etc.)
  • Build multi-step workflows with Pythonic control flow
  • Prevent invalid outputs through grammatical constraints

GitHub Stars: 18,000+ | From: Microsoft Research

Installation

# Base installation
pip install guidance

# With specific backends
pip install guidance[transformers]  # Hugging Face models
pip install guidance[llama_cpp]     # llama.cpp models

Quick Start

Basic Example: Structured Generation

from guidance import models, gen

# Load model (supports OpenAI, Transformers, llama.cpp)
lm = models.OpenAI("gpt-4")

# Generate with constraints
result = lm + "The capital of France is " + gen("capital", max_tokens=5)

print(result["capital"])  # "Paris"

With Anthropic Claude

from guidance import models, gen, system, user, assistant

# Configure Claude
lm = models.Anthropic("claude-sonnet-4-5-20250929")

# Use context managers for chat format
with system():
    lm += "You are a helpful assistant."

with user():
    lm += "What is the capital of France?"

with assistant():
    lm += gen(max_tokens=20)

Core Concepts

1. Context Managers

Guidance uses Pythonic context managers for chat-style interactions.

from guidance import system, user, assistant, gen

lm = models.Anthropic("claude-sonnet-4-5-20250929")

# System message
with system():
    lm += "You are a JSON generation expert."

# User message
with user():
    lm += "Generate a person object with name and age."

# Assistant response
with assistant():
    lm += gen("response", max_tokens=100)

print(lm["response"])

Benefits:

  • Natural chat flow
  • Clear role separation
  • Easy to read and maintain

2. Constrained Generation

Read the full file on GitHub · 570 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. 2d ago First seen · 570 lines · 39 tokens per session scan A 270ed44e671d

Subscribe to this mod's changes

research-guidance is a skill published in the GitHub repository GrayCodeAI/starling (2 stars, last pushed 3d ago), licensed MIT. It adds 39 tokens to every session and 3,971 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. It is 92% identical to guidance, differing in 14 lines, and is treated as a copy.

Related

Other skills, from other repositories

ai-prompt-evaluator

Activate when designing, evaluating, red-teaming, and refining LLM system prompts, agent instructions, structured JSON schemas, and defense boundaries against prompt injections and hallucinations — trigger phrasings include "evaluate my system prompt", "red-team this AI prompt", "improve my prompt to prevent…

ieeecsopen/mcp-cs · 109 tokens

soul-grader

Use when grading, reviewing, rewriting, or approving a Hermes Agent SOUL.md. Uses the SOUL.md field-guide research artifacts as the only normative source for what makes a good SOUL.md.

cobibean/soul-grader-skill · 45 tokens

prompt-optimization

Analyzes and optimizes prompts using BP-001009 patterns and a gated 3-step flow. Use when "optimize this prompt", "review prompt quality", "analyze prompt issues", or creating/reviewing rashomon skill content.

shinpr/rashomon · 54 tokens

prompt-writer

Write maximally terse agent prompts from scratch. Use when creating agent specs, command prompts, or instruction sets with constitutional governance.

rp1-run/rp1 · 29 tokens

prompt-improver

Transform vague prompts into precise, verifiable structured XML prompts that coding agents execute reliably. Modes: execute (default — generate then run) and plan (generate XML for review first). Use when the user says improve prompt, make this work better, prompt engineer, structure a request, plan a complex change…

owenob1/prompt-improver · 104 tokens

thanos

Turn any raw prompt into an optimized prompt with the right agent loop, skills, and model. Advisory only — never executes the task itself. TRIGGER when: user invokes /thanos followed by a raw prompt, or says "optimize this prompt", "what loop does this need", "improve my prompt", "how should I prompt for", "rewrite…

thanospapage/thanos · 134 tokens