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 skills add panjose/Co-Scientist --skill strategy-routergit clone --depth 1 https://github.com/panjose/Co-ScientistWrote 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/panjose/co-scientist/strategy-router)<a href="https://agentmods.dev/skills/panjose/co-scientist/strategy-router"><img src="https://agentmods.dev/badge/skills/panjose/co-scientist/strategy-router/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/panjose/co-scientist/strategy-router"><img src="https://agentmods.dev/badge/skills/panjose/co-scientist/strategy-router.svg" alt="Reviewed on agentmods" width="80" 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.00029 | $0.01100 |
| Opus 5 | $0.00015 | $0.00550 |
| Sonnet 5 | $0.00006 | $0.00220 |
| Haiku 4.5 | $0.00003 | $0.00110 |
Grade A, and why
strategy-router 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 9d 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 — 76 lines — stays where its author put it; the contents beside it link to each section on GitHub.
strategy-router
Goal:
- Produce the current
state/STRATEGY_PLAN.jsonbundle for configuration, generation, review, evolution, or overview routing.
Inputs:
- current run-local artifacts
RUN_POLICY.yamlstate/RESOLVED_RUN_CONFIG.json- optional
state/PIPELINE_STATE.json - optional
state/CURRENT_STAGE.json - optional
state/EVOLUTION_STATE.json - optional
state/COMPLETION_DECISION.json
Outputs:
- updated
state/STRATEGY_PLAN.json - appended
state/STRATEGY_DECISIONS.jsonl
Context Loading:
- Open
skills/shared-references/schema-index.md. - Read
packages/agent_contracts/strategy_plan.pyand confirm the exactStrategyPlanContractshape before writingstate/STRATEGY_PLAN.json. - Read
packages/agent_contracts/pipeline_control.pywhen completion or evolution signals are present. - Read persisted stage information from
state/PIPELINE_STATE.jsonandstate/CURRENT_STAGE.jsonbefore inferring a route.
Execution Contract:
- This skill is deterministic and must not call an LLM.
- Use
python -m tools.policy.plan_strategy <run_dir> [--phase <Configuration|Generation|Evolution|Insights from Reviews|Proximity|Ranking|Research Overview>]as the canonical invocation surface. - The underlying implementation lives in
tools/policy/plan_strategy.py. - The router must honor the effective run policy, resolved numeric config, persisted stage artifacts, and completion advisories while still emitting one explicit next-action artifact.
- When
research_plan/RESEARCH_PLAN.jsonis missing or invalid, the router must emitnext_action = run_configurationbefore any generation or evolution work. - Omit
--phasewhen refreshing routing from persistedstate/PIPELINE_STATE.jsonorstate/CURRENT_STAGE.json. - Use an explicit
--phaseoverride only when the caller is intentionally forcing a fresh stage transition instead of resuming the persisted one.
Execution Steps:
- Open
skills/shared-references/schema-index.md, then readpackages/agent_contracts/strategy_plan.pybefore writingstate/STRATEGY_PLAN.json. - Read
RUN_POLICY.yaml,state/RESOLVED_RUN_CONFIG.json, and the current persisted run-state artifacts. - Run
python -m tools.policy.plan_strategy <run_dir>for persisted-state refreshes, or add--phase <...>only when explicitly forcing a new stage route. - Persist the returned
StrategyPlanContracttostate/STRATEGY_PLAN.json. - Append the matching decision record to
state/STRATEGY_DECISIONS.jsonl, unless the canonical router detects an equivalent unconsumed opencontinue_evolutiondecision and only refreshesstate/STRATEGY_PLAN.json. - Validate both artifacts before declaring completion.
Artifact Rules:
- The strategy audit log is append-only and must preserve prior decisions for replay and debugging.
- Call this skill before every generation batch and before every individual evolution round rather than only once at bootstrap.
- When the returned plan is
run_configuration, configuration must write and validateresearch_plan/RESEARCH_PLAN.jsonbefore the caller refreshes routing again. - When the returned plan stays in
continue_evolution, the selected parent set insignals.selected_parent_idsis the only valid parent set for the next child hypothesis in that round. - Repeated refreshes of the same unconsumed
continue_evolutionroute must not create duplicate open decisions. A new decision is valid only when the pre-round state changed or the earlier equivalent decision has already been consumed by a completedEVOLUTION_ROUNDS.jsonlreceipt. - The router must preserve the island-selection outcome for the round:
signals.selection_strategysignals.selected_parent_idssignals.selected_island_ids
- For
next_action = continue_evolution, all router signals must describe the state immediately before the next child is created:signals.hypothesis_countandsignals.viable_hypothesis_countcome from currently persisted hypothesis artifacts.signals.convergence_countandsignals.entered_top_k_last_roundcome fromstate/EVOLUTION_STATE.json.signals.top_hypothesis_idscomes from the current persisted top-k frontier.signals.selected_parent_idsmust only select viable hypotheses that already exist.signals.selected_island_idsmust match the selected parents' persistedisland_idvalues.- Do not set
signals.entered_top_k_last_round = truewhilesignals.convergence_countis positive.
- The router does not finalize the concrete evolution strategy itself. It emits the allowed bundle, and
evolution-strategy-supervisormust choose one strategy from that bundle before child generation.
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.
- 9d ago First seen · 76 lines · 29 tokens per session scan A 7cb8f7ad5d1a
strategy-router is a skill published in the GitHub repository panjose/Co-Scientist (5 stars, last pushed 3mo ago), licensed Apache-2.0. It adds 29 tokens to every session and 1,100 once invoked, about $0.0001 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
figure-style
Publication-grade correctness and legibility rules for final-deliverable scientific figures, not exploratory plots. Use for a figure that will ship in a report, paper, export, or kept artifact. Covers data fidelity, label economy, color threading, chart choice, layout, and render-then-verify QA without imposing a…
remote-compute-ssh
Evaluate and use SSH Remote Compute before choosing where to run GPU, high-memory, parallel, batch, model-inference, bioinformatics, or other long-running scientific work; supports short remote commands and asynchronous jobs with automatic harvest and analysis.
scvi-tools
Probabilistic single-cell RNA-seq with scvi-tools — scVI for a batch-corrected latent space, scANVI for semi-supervised label transfer, and Bayesian differential expression. Reach for this skill to integrate scRNA-seq batches, embed cells for clustering, transfer annotations from a reference onto a query, or score…
literature-review
Find, verify, and synthesize scientific literature — from "what's the seminal paper for X" through full multi-source reviews. Covers grounding claims in real retrieved sources, avoiding fabricated citations, handling retractions, and calibrating confidence to evidence strength.
openfold3
Structure prediction using OpenFold3, an open-weights PyTorch reproduction of AlphaFold3 from the AlQuraishi Lab. Use this skill when predicting protein/nucleic-acid/ligand complex structures with an Apache-2.0-licensed AF3 reimplementation.
self-awareness
Inspect Open Science's JavaScript control REPL, discover managed Project files, Sessions, and Agent Frames, and safely feature-gate host. calls with host.capabilities(). Use when an Agent needs to discover available host APIs, locate an Artifact or Upload Version, diagnose a Session, or read a Frame transcript in the…