reflect

reflect is a skill for Claude Code, Codex from foundry-works/foundry-research. It costs 41 tokens per session (6,032 once invoked), scanned A, original, MIT.

A tool that evaluates a completed deep-research session by examining its saved searches, sources, findings, reasoning notes, and final report.

In plain words
What is it for?
Use it to produce a written assessment and structured scores for improving research workflows.
Why use it?
It helps identify gaps and weaknesses in research quality using evidence from the session instead of relying on a general impression.

Skill for Claude CodeCodex

Installs and runs on its own, but its text points at files inside its plugin — anything it tells you to read at a ${CLAUDE_PLUGIN_ROOT} path is only there once the plugin is installed. Installing the plugin gets both.

Part of the foundry-research plugin — 4 skills, 10 agents, 1 hook shipped together

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/foundry-works/foundry-research/reflect
Any agent
npx skills add foundry-works/foundry-research --skill reflect
Clone the repo
git clone --depth 1 https://github.com/foundry-works/foundry-research

Made for: Claude Code, Codex.

Or install foundry-research, the plugin that ships this one along with the rest of its 4 skills, 10 agents, 1 hook.

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 reflect

README.md
[![agentmods](https://agentmods.dev/badge/skills/foundry-works/foundry-research/reflect.svg)](https://agentmods.dev/skills/foundry-works/foundry-research/reflect)
Your own site
<a href="https://agentmods.dev/skills/foundry-works/foundry-research/reflect"><img src="https://agentmods.dev/badge/skills/foundry-works/foundry-research/reflect.svg" alt="Measured on agentmods" height="20"></a>
Per session 41 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 6,032 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
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 $0.00041 $0.06032
Opus 5 $0.00020 $0.03016
Sonnet 5 $0.00008 $0.01206
Haiku 4.5 $0.00004 $0.00603

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

Security

Grade A, and why

reflect 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.

The scan reads SKILL.md. This mod also ships 1 executable file (scripts/metrics.py), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

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.

skills/reflect/SKILL.md · 534 lines

How it starts

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

Reflect

You are a research quality evaluator. Given a deep-research session directory, you analyze session artifacts and produce a structured quality assessment — scores grounded in evidence, contextual interpretation, and actionable recommendations for pipeline improvement.

Activate when: The user asks to evaluate, reflect on, review, or score a completed deep-research session.

You produce:

  1. Narrative markdown — human-readable assessment with interpretive context. What you read when a score moves and you want to understand why.
  2. reflection.json — structured scores, metrics, and session metadata. What you aggregate and chart across sessions.

Key principle: Be honest and specific. Vague praise is useless for hill-climbing. Every score must cite concrete evidence from the session artifacts.


Inputs

The user provides a session directory path (e.g., ./deep-research-topic/). All analysis reads from files in that directory.

File Purpose
state.db SQLite database — searches, sources, findings, gaps, brief, metrics
report.md Final report (structure, citations, synthesis quality)
journal.md Orchestrator reasoning trail (5 mandatory milestone entries)
sources/metadata/*.json Per-source metadata, quality tier, enrichment status
sources/*.md / *.toc Downloaded content and tables of contents
notes/*.md Reader agent summaries — one per deeply-read source

How to Read Session Data

Metrics script

Run the metrics script to compute all Layer 1 deterministic metrics in a single call:

python3 ${CLAUDE_PLUGIN_ROOT}/skills/reflect/scripts/metrics.py SESSION_DIR

This outputs a JSON object to stdout with all search, source, coverage, report, file count, and journal metrics. The script handles schema variations in older sessions gracefully — missing columns produce null values rather than errors.

Key output fields in metrics:

  • Search: searches_total, searches_zero_ingested, search_providers, search_modes, search_types, searches_by_provider
  • Source: sources_total, sources_downloaded, sources_with_notes, sources_with_doi, sources_with_venue, sources_with_citations, sources_orphaned, sources_by_provider, sources_by_type, sources_by_quality, sources_by_status, sources_by_year, metadata_json_count, notes_on_disk
  • Coverage: findings_total, findings_by_question, findings_unsourced, gaps_total, gaps_resolved, gaps_open
  • Evidence: evidence_units_total, evidence_units_by_claim_type, evidence_units_by_question, evidence_units_by_source, evidence_units_with_spans, evidence_units_avg_per_source, findings_with_evidence, findings_without_evidence, evidence_json_files, evidence_link_count
  • Report: report_exists, report_word_count, report_section_count, report_reference_count, report_unique_citations, report_citation_instances, report_max_citation, report_phantom_refs
  • Files: source_md_files, notes_md_files, metadata_json_files, toc_files
  • Journal: journal_exists, journal_char_count, journal_milestones_found, journal_milestones_detail

Read the full file on GitHub · 534 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. 4d ago First seen · 534 lines · 41 tokens per session scan A f25b183c8592

Subscribe to this mod's changes

reflect is a skill published in the GitHub repository foundry-works/foundry-research (2 stars, last pushed 4mo ago), licensed MIT. It adds 41 tokens to every session and 6,032 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-08-31.

Related

Other skills, from other repositories

audit-context

Evaluates ambient context artifacts (CLAUDE.md, memory, local skills, settings hooks) for compatibility with swarm governance. Returns a classified report so users can address interference before launching a team.

DheerG/swarms · 42 tokens

autosearch:citation-index

Deduplicate URLs across all sources, assign stable citation numbers, and merge citations from multiple subagents / sections into one consistent reference list. Prevents "same URL cited as [3] in one paragraph and [17] in another" and "different URLs merged under [5]" bugs that come from per-section synthesis.

0xmariowu/Autosearch · 71 tokens

autosearch:experience-capture

Append a single skill-execution event to the per-skill experience/patterns.jsonl file. Runs every time a leaf skill is used. Append-only — runtime AI never reads this file directly; only the compacted experience.md digest. Fast tier, no LLM required.

0xmariowu/Autosearch · 68 tokens

autosearch:graph-search-plan

Represent a research plan as a directed graph — nodes are sub-questions, edges are "answer-depends-on" dependencies. Independent nodes can be executed in parallel; downstream nodes wait for their predecessors. Borrowed from MindSearch's WebSearchGraph pattern. Replaces list/tree decomposition for plans with non-linear…

0xmariowu/Autosearch · 72 tokens

autosearch:trace-harvest

Distill reusable knowledge from successful session tool-call traces. Reads runtime tool-call logs + Evidence outputs + user acceptance signals, filters successful paths, and writes compact patterns to per-skill experience/patterns.jsonl. Differs from outcome-tracker (which only records downstream acceptance) by…

0xmariowu/Autosearch · 82 tokens

fetch-crawl4ai

Deep URL fetch using crawl4ai (Playwright-powered) for JS-rendered pages, anti-bot sites, and dynamic content. Slower than fetch-jina but handles sites that block simple fetchers. Requires user-installed crawl4ai package.

0xmariowu/Autosearch · 56 tokens