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 hypothesis-proximity-updategit 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/hypothesis-proximity-update)<a href="https://agentmods.dev/skills/panjose/co-scientist/hypothesis-proximity-update"><img src="https://agentmods.dev/badge/skills/panjose/co-scientist/hypothesis-proximity-update/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/hypothesis-proximity-update"><img src="https://agentmods.dev/badge/skills/panjose/co-scientist/hypothesis-proximity-update.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.00020 | $0.01271 |
| Opus 5 | $0.00010 | $0.00635 |
| Sonnet 5 | $0.00004 | $0.00254 |
| Haiku 4.5 | $0.00002 | $0.00127 |
Grade A, and why
hypothesis-proximity-update 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 12d 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 — 77 lines — stays where its author put it; the contents beside it link to each section on GitHub.
hypothesis-proximity-update
Goal:
- Update hypothesis proximity state by invoking the canonical embedding bridge for one hypothesis.
Inputs:
- optional existing
state/PROXIMITY_GRAPH.json - target
hypothesis_id - run-frozen embedding provider settings from
state/RESOLVED_RUN_CONFIG.json
Outputs:
- updated
state/proximity_receipts/<hypothesis_id>.json - updated
state/PROXIMITY_STATUS.json - updated in-memory
ProximityGraphContract - updated
state/PROXIMITY_GRAPH.jsonwhen the provider returns a valid embedding - updated
state/PIPELINE_STATE.json - updated
state/CURRENT_STAGE.json
Context Loading:
- Open
skills/shared-references/schema-index.md. - Read
packages/agent_contracts/state.pyand confirm the exactProximityGraphContractshape before writingstate/PROXIMITY_GRAPH.json. - Read
packages/agent_contracts/proximity.pyand confirm the proximity receipt and status schemas before interpreting provider outcomes. - Read
packages/agent_contracts/pipeline_runtime.pybefore updatingstate/PIPELINE_STATE.jsonorstate/CURRENT_STAGE.json. - Load the current proximity graph if it exists. If it does not exist yet, start from an empty
ProximityGraphContract. - Treat embedding generation as a bridge/tool concern. Host agents must not generate, infer, paste, or hand-write numeric embeddings in prompt output.
- Do not skip this skill merely because no embedding vector is already present in the execution context.
Execution Contract:
- This skill is deterministic and must not call an LLM.
- Use
from tools import sync_pipeline_stage_artifactsas the canonical paired write surface for entering theProximitysubstage. - On entry, call
tools.sync_pipeline_stage_artifacts(run_dir, current_phase="Proximity", current_skill="hypothesis-proximity-update"). - Use
from tools import update_hypothesis_proximityas the stable invocation surface. - The exported bridge is implemented in
packages/agent_mechanics/hypothesis_embedding.py. - The canonical hypothesis-to-embedding text formatter is implemented in
packages/agent_mechanics/hypothesis_embedding_text.py. - The helper signature is
update_hypothesis_proximity(run_dir, hypothesis_id, config=None, provider=None) -> ProximityEmbeddingReceiptContract. - The bridge formats the hypothesis text, reads the run-frozen proximity provider settings from
state/RESOLVED_RUN_CONFIG.jsonunless an explicit test config is passed, calls the configured provider when enabled, records a proximity receipt/status, and updatesstate/PROXIMITY_GRAPH.jsononly when a valid embedding is returned. - Provider-specific backends such as
openai_compatibleandgeminimust remain behindtools.update_hypothesis_proximity(...); host agents must not call provider SDKs directly or paste provider-returned vectors into artifacts. - The lower-level graph helper remains
tools.update_proximity_graph(...), implemented inpackages/agent_mechanics/proximity_update.py; host agents must not call it with prompt-fabricated vectors. - This skill must not hand-write embeddings, infer embeddings from hypothesis prose, or fabricate placeholder numeric vectors.
- If the provider is disabled, unavailable, invalid, or fails, preserve the bridge-written receipt/status, do not fabricate a graph update, and return control to ranking with receipt-gated fallback semantics.
Execution Steps:
- Open
skills/shared-references/schema-index.md, then readpackages/agent_contracts/state.py,packages/agent_contracts/proximity.py, andpackages/agent_contracts/pipeline_runtime.pybefore writing proximity or run-level stage artifacts. - Before running the bridge, call
tools.sync_pipeline_stage_artifacts(run_dir, current_phase="Proximity", current_skill="hypothesis-proximity-update"). - Confirm the target
hypothesis_ididentifies an existing canonicalhypotheses/<id>/HYPOTHESIS.jsonartifact. - Call
tools.update_hypothesis_proximity(run_dir, hypothesis_id)exactly once for the target hypothesis. - Inspect the returned
ProximityEmbeddingReceiptContractand the persistedstate/proximity_receipts/<hypothesis_id>.json. - If the receipt status is
succeeded, validate the updatedstate/PROXIMITY_GRAPH.json. - If the receipt status is
skipped_disabled,skipped_provider_unavailable,failed_provider_error, orfailed_invalid_embedding, preserve the receipt/status and return control to ranking. Do not infer or fabricate placeholder embeddings from text, IDs, or manual feature heuristics. - Validate the updated receipt/status artifacts before declaring completion.
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.
- 12d ago First seen · 77 lines · 20 tokens per session scan A b8f0ff6f26c3
hypothesis-proximity-update is a skill published in the GitHub repository panjose/Co-Scientist (5 stars, last pushed 3mo ago), licensed Apache-2.0. It adds 20 tokens to every session and 1,271 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
swmm-rag-memory
Retrieve relevant Agentic SWMM modeling memory from audited runs, modeling-memory summaries, and Obsidian-compatible notes at query time. Use when a user asks for RAG, similar past runs, evidence-linked memory retrieval, historical QA/failure patterns, or memory-grounded answers.
embeddings
Vector embeddings with HNSW indexing, sql.js persistence, and hyperbolic support. 75x faster with agentic-flow integration. Use when: semantic search, pattern matching, similarity queries, knowledge retrieval. Skip when: exact text matching, simple lookups, no semantic understanding needed.
llm-app-patterns
Production-ready patterns for building LLM applications. Covers RAG pipelines, agent architectures, prompt IDEs, and LLMOps monitoring. Use when designing AI applications, implementing RAG, building agents, or setting up LLM observability.
9router-embeddings
Generate vector embeddings via 9Router /v1/embeddings using OpenAI / Gemini / Mistral / Voyage / Nvidia / GitHub embedding models for RAG, semantic search, similarity. Use when the user wants embeddings, vectors, RAG, semantic search, or to embed text.
azure-search-documents-dotnet
Azure AI Search SDK for .NET (Azure.Search.Documents). Use for building search applications with full-text, vector, semantic, and hybrid search. Covers SearchClient (queries, document CRUD), SearchIndexClient (index management), and SearchIndexerClient (indexers, skillsets). Triggers: "Azure Search .NET"…
evo2
Score, embed, and generate DNA sequences with Evo 2, a long-context genomic foundation model. Use this skill when: (1) Computing per-nucleotide or per-sequence likelihoods for variant effect scoring, (2) Embedding genomic windows for downstream classification, (3) Generating DNA conditioned on a prefix, (4) Scoring…