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/fbabelle/prettyseriousresearcher/research-reflectionnpx skills add fbabelle/PrettySeriousResearcher --skill research-reflectiongit clone --depth 1 https://github.com/fbabelle/PrettySeriousResearcherWrote 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/fbabelle/prettyseriousresearcher/research-reflection)<a href="https://agentmods.dev/skills/fbabelle/prettyseriousresearcher/research-reflection"><img src="https://agentmods.dev/badge/skills/fbabelle/prettyseriousresearcher/research-reflection.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.1 | $0.00049 | $0.01917 |
| Opus 5 | $0.00024 | $0.00958 |
| Sonnet 5 | $0.00010 | $0.00383 |
| Haiku 4.5 | $0.00005 | $0.00192 |
Grade A, and why
research-reflection 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 today.
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 — 54 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Research self-reflection
A guardrailed protocol for periodically challenging the work, so the paper doesn't lock in an early-but-suboptimal decision. It is invoked, not automatic — the orchestrator offers it; this skill runs once the user confirms (or when the algo-design solvability gate fails and a reframe is forced).
The anti-tilt principle (read first)
The goal is a correct answer about whether to change course — not to manufacture changes. It is fully legitimate, and often the right outcome, to conclude "the current approach is already optimal; no change." Do not force constructiveness; reflexive change-for-its-own-sake introduces tilted behavior and churn. Reflect honestly, recommend honestly.
When it fires
- At each phase boundary (a natural checkpoint).
- Roughly every ~15 agent-active hours within a long phase.
- On a surprising event, not only on cadence — a strong prior-art hit that threatens novelty, a competitor that appears dead/alive, a failed or too-good-to-be-true result. These are the moments a scoped reflection pays off most.
- On an algo-design solvability-gate failure (revisit the framing/topic before spending the experiments budget).
- Before submission — a fresh adversarial read of the whole argument.
The orchestrator opens it with a targeted question, e.g. "While the experiments run, want me to revisit and pressure-test the algorithm design and confirm it's still the optimal approach?" Act only once the user confirms the scope.
The protocol
- Draft a revision plan. State exactly what's being re-examined (topic / design / implementation / a specific module) and the criteria for "better." Keep it scoped — one target per pass.
- Broad adversarial search — via a diverse panel. Use the host agent's current web-search and page-fetch tools to look outward: has the field moved? Is there a stronger baseline, a known failure mode of this approach, a simpler method that would do as well, a critique of the assumptions? Search to challenge the current choice, not to confirm it. When more than one coding-agent CLI is available (
claude,codex,gemini), run the challenge as a multi-family panel — the same CLI-driven, reviewer-≠-author mechanism asresearch-mock-review; first determine whether each CLI invocation is subscription-covered or metered and log it accordingly — so the critique isn't a single model agreeing with itself. Cross-family disagreement is itself the signal to escalate to the user, not to average away. Cross-family CONVERGENCE is equally informative in the other direction: when independent model families propose the same alternative unprompted, treat that as the strongest available change signal.- CLI practicalities (Windows-earned): pass long prompts via stdin (
Get-Content -Raw file | codex exec -) — npm.ps1shims re-split multi-line arguments; a CLI whose default model returns "requires a newer version" needs a CLI upgrade, and explicit-mmodel picks can be rejected per account type. Verify each panel member actually completed — a member that dies mid-run (session limits) silently shrinks the panel. - Dated re-audit, by lane. A prior-art scan has a freeze date and a shelf life of weeks in a hot lane. At every later design gate — and before any flagship claim is committed — re-audit "since ", split across parallel probes by lane (domain lane / method lane / theory lane / evaluation+venue lane), each scoring every hit 0–3 against the paper's named claims, and maintain a claim-status table (open / contested / absorbed). "First X" claims are the most perishable — expect them to die first and prefer conjunctive, narrowed wording that survives a single scooping paper.
- Label vs plan. When the families disagree only on framing/label while converging on the experiment plan, escalate just the label — with an option-value argument (which framing can be downgraded later at zero waste, which must be designed in from the start). If the user delegates the call, decide once, with falsifiable fallback conditions written into the verdict — not a re-survey.
- CLI practicalities (Windows-earned): pass long prompts via stdin (
- Apply the AI-critic reliability map. Auto-resolve the checks the agent is reliable at (internal consistency, number/citation grounding, assumption decomposition, obvious failure modes) and only escalate to the user the judgments AI is provably weak at — novelty, significance, "is this worth doing." This is what keeps reflection from either rubber-stamping or dumping raw doubt on the user. Panel output is evidence to verify, not a verdict: before acting, run an author verification pass on every decision-critical claim — internal facts against the repo's own artifacts (run results, derivations: a panel can surface a violation the spike verdict never wrote down), external references by fetching the primary page — and record it as a verification table in the verdict.
- Compare honestly. Put the current approach against the strongest alternative the search surfaced, on the criteria from step 1 (effectiveness, cost, risk, novelty, validity). Show the comparison, not a conclusion-first rationalization.
- Decide and recommend.
- Optimization found → propose the concrete change, its expected benefit, its cost (including the rework and effort/budget hit via
research-tracking), and a recommendation. Get the user's go before large rework. Label every proposed change with its driver (venue-mechanics / statistical-validity / competitiveness / data-feasibility) — users legitimately ask "is this forced by the venue or by the analysis?", and an attribution table answers it before it's asked. - Already optimal → say so plainly, with the evidence that the alternatives are weaker or not worth the switch. This is a successful reflection, not a failed one.
- Optimization found → propose the concrete change, its expected benefit, its cost (including the rework and effort/budget hit via
- Record it — including what was rejected. Note the reflection and its outcome in
docs/changelogs.md(and back the plan todocs/plans/if it leads to rework) so the decision trail is auditable. Reversals are recorded, never overwritten: when a later spike or run contradicts one of the reflection's recommendations, annotate the original change row as "reversed by evidence" with the run pointer and leave the original text struck through — those rows are the audit trail's most valuable entries, and the same recommendation must not resurface in a later pass. Carry a rejected-approach memory forward (the topics/designs/venues already killed and why) so later passes don't re-propose an idea that was already ruled out — churn the anti-tilt principle is meant to prevent.
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.
- today Changed · +7 lines 0f87a53976db
- 5d ago First seen · 47 lines · 49 tokens per session scan A 4bc5f109e7e4
research-reflection is a skill published in the GitHub repository fbabelle/PrettySeriousResearcher (2 stars, last pushed today), licensed Apache-2.0. It adds 49 tokens to every session and 1,917 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
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
local-ai-agents
Build local-first AI agents that run entirely on a developer workstation with Microsoft Foundry Local and Qwen function-calling models. Covers Small Language Models (SLMs), the OpenAI-compatible local endpoint, sandboxed local tools, local RAG with Chroma, local MCP servers, hybrid cloud/local routing, and the…
next-cache-components-adoption
Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…
next-partial-prefetching-adoption
Turn on Partial Prefetching in a Next.js app and work through the insights it surfaces. Use when the user wants to enable or adopt Partial Prefetching, flip the partialPrefetching flag, opt routes in with export const prefetch = 'partial', audit Link prefetch={true} behavior, preserve existing prefetched UI with…
chronicle
Analyze Copilot session history for standup reports, usage tips, session search, and session reindexing. Use when the user asks for a standup, daily summary, usage tips, workflow recommendations, wants to search or find past sessions by keyword/file/PR, wants to reindex their session store, or asks about deleting…
imagegen
Generate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts. Use when Codex should create a brand-new image, transform an existing image, or derive visual variants from references, and the output…