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.
npx agentmods add skills/foundry-works/foundry-research/reflectnpx skills add foundry-works/foundry-research --skill reflectgit clone --depth 1 https://github.com/foundry-works/foundry-researchWrote 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.
[](https://agentmods.dev/skills/foundry-works/foundry-research/reflect)<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>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.
| Model | Per session | Once 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 |
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.
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.
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:
- Narrative markdown — human-readable assessment with interpretive context. What you read when a score moves and you want to understand why.
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
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.
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.
- 4d ago First seen · 534 lines · 41 tokens per session scan A f25b183c8592
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.
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.
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.
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.
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…
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…
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.