boheling/deltasci/skill

Claude Code and agent skill by boheling/deltasci

Trust tier 2
  • community
LLM review pending
Source check pending

Checking that the SKILL.md file is still in the repository.

Two-perspective co-reasoning for AI4Science hypothesis generation. Runs a structured 4-round dialogue between a domain scientist (parameterized by a domain pack) and an ML engineer, producing a grounded, falsifiable research hypothesis that is honest about the AI's training-distribution edges. Domain-agnostic via pluggable packs (biomed, materials, climate, or your own). Use when a researcher has a vague idea and wants to turn it into a defensible, evaluable hypothesis with explicit handoffs for the things only the researcher can know.

Install

npx vskill@latest install boheling/deltasci/skill

SKILL.md

DeltaScience: Two-Perspective Co-Reasoning

Purpose

Generate AI4Science research hypotheses that are:

  1. Grounded — every factual claim is tagged with its evidence type, source, and the AI's self-assessed training coverage.
  2. Honest about AI's epistemic edges — claims outside the AI's training distribution are emitted as KNOWLEDGE_GAP for the researcher, not fabricated.
  3. Explicit about creative leaps — connections the AI is proposing (not citing) are emitted as NOVEL_SYNTHESIS.
  4. Falsifiable — every hypothesis ships with a measurable threshold for being wrong.
  5. Domain-aware — uses a pluggable lens specific to the scientific field.
  6. Two-perspective — alternates between domain expert and ML engineer.

This is the Claude Code skill version of the deltasci Python package. They share the same domain packs and grounding rules.

The three first-class tags

[CLAIM type=<TYPE> coverage=<COVERAGE> source="<CITATION>"]<text>[/CLAIM]
[KNOWLEDGE_GAP category=<CATEGORY>]<question for the researcher>[/KNOWLEDGE_GAP]
[NOVEL_SYNTHESIS rationale="<one-line>"]<the proposed connection>[/NOVEL_SYNTHESIS]

coverage ∈ {well-covered, sparse}. uncovered is not allowed on a CLAIM — for that, emit a KNOWLEDGE_GAP instead.

A round with zero KNOWLEDGE_GAPs and zero NOVEL_SYNTHESES is suspect — it suggests the AI is claiming complete certainty across the entire research idea, which is itself a hallucination signal. Synthesis refuses by default.

Inputs

ParameterRequiredDescription
ideaYesThe raw research idea.
packYesDomain pack name (biomed, materials, climate) or path to a custom pack.
context_dirNoDirectory of background papers/notes.
out_dirNoWhere to write outputs. Default: ./deltasci-output/.

Outputs

FileDescription
transcript.mdFull 4-round dialogue with all three tag types.
hypothesis.mdThree-section evidence trail (well-covered / sparse / researcher-required) + falsifiability + scorecard.
summary.jsonMachine-readable hypothesis schema + epistemic summary.

Step-by-Step Procedure

Step 1 — Identify the domain pack

Read <pack_dir>/pack.toml and <pack_dir>/lens.md. If the user's request doesn't name a pack and the domain is unambiguous, pick one without asking.

Step 2 — Run the 4-round dialogue

Follow the prompts in prompts/. The flow is:

Round 1 Domain Scientist (mechanism, unmet need, prior work, constraints)
Round 2 ML Engineer (data representation, method, precedents, risks)
Round 3 Domain Scientist (refinement, evaluation realism, falsifiable prediction)
Round 4 ML Engineer (revised plan, math, implementation, expected outcomes)

In every round, every factual statement must be one of the three tags. See references/grounding_rules.md and references/coverage_axis.md for the rationale.

After each round, scan the output. If you find untagged factual claims, redo that round (one repair attempt). If a round has zero KNOWLEDGE_GAPs and zero NOVEL_SYNTHESES, prompt yourself: "Am I being honest about my training-distribution edges? Am I being honest about which connections are leaps vs cited?" — and rewrite if needed.

Step 3 — Write the transcript

Write to <out_dir>/transcript.md with each round labeled and all three tag types preserved.

Step 4 — Synthesize the grounded hypothesis

Follow prompts/synthesis_round.md. Produce JSON with:

  • title, statement
  • domain_grounding, technical_approach
  • falsifiability (prediction + threshold + null_outcome — all required)
  • feasibility_scores, feasibility_justifications

The CLAIMs, KNOWLEDGE_GAPs, and NOVEL_SYNTHESES are collected automatically from the transcript — do NOT re-emit them in the synthesis JSON.

Hard rules:

  • No falsifiable threshold → refuse, output {"error": "no_falsifiable_clause", "reason": "..."}.
  • Across all rounds, zero KNOWLEDGE_GAPs and zero NOVEL_SYNTHESES → refuse, output {"error": "no_epistemic_humility", "reason": "..."}.
Step 5 — Render the hypothesis

The final hypothesis.md has THREE evidence sections, in this order:

  1. AI-confident foundations (well-covered claims with citations)
  2. Likely-reliable, please verify (sparse-coverage claims — cite carefully)
  3. Researcher knowledge required — KNOWLEDGE_GAPs + NOVEL_SYNTHESES

Plus an Epistemic summary with counts of each tag type and any warnings (e.g., "sparse claims outnumber well-covered ones").

Step 6 — Report

Tell the user:

  • The hypothesis title
  • Overall feasibility score
  • Counts: well-covered / sparse / knowledge gaps / novel syntheses
  • The falsifiability threshold
  • Any epistemic warnings
  • Where output files are

Configuration

SettingDefaultDescription
num_rounds4Total dialogue rounds (must be even).
grounding_strictnesshighReject tagless claims with one repair attempt.
require_falsifiabilitytrueRefuse to emit a hypothesis without a falsifiability clause.
require_epistemic_humilitytrueRefuse to emit a hypothesis when no KNOWLEDGE_GAPs and no NOVEL_SYNTHESES were emitted across the transcript.

Rules

  • Never invent citations. If you can't name a real reference, either tag the claim coverage=sparse and use the most-honest source you have, or emit a KNOWLEDGE_GAP.
  • Never use `coverage=uncovered` on a CLAIM. Uncovered material goes in a KNOWLEDGE_GAP.
  • Mark your leaps as NOVEL_SYNTHESIS. Combining two well-covered facts into a hypothesis nobody has written down is good — it's the point. But say so explicitly.
  • Skip the falsifiability gate is not allowed. A hypothesis without a measurable threshold is a wish.
  • The pack lens is read literally. It parameterizes how the domain expert reasons.

Checklist

  • [ ] Domain pack identified and lens loaded.
  • [ ] 4 rounds completed with proper CLAIM / KNOWLEDGE_GAP / NOVEL_SYNTHESIS tags.
  • [ ] At least one KNOWLEDGE_GAP and at least one NOVEL_SYNTHESIS across the transcript.
  • [ ] Synthesis produced valid JSON matching the schema.
  • [ ] Falsifiability clause has prediction + threshold + null_outcome.
  • [ ] Hypothesis.md has all three evidence sections.
  • [ ] Outputs written: transcript.md, hypothesis.md, summary.json.

Security

  • Security scanPassed, 100 of 100Pattern checks on the skill's files.
  • Model reviewNot runA model review is scheduled for the next rescan.

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

Repository stars
143
Repository forks
23
7-day trend score
25

Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/boheling/deltasci/skill/badge)](https://verified-skill.com/skills/boheling/deltasci/skill)

Something wrong with this skill or its page? Tell us.