agentleFS
terravicterravic/pde-agent-plugin/skills/hypothesis-schema/SKILL.md

hypothesis-schema

Skill0 starsChanged 13 days agoApache-2.0View on GitHub

Hypothesis JSON schema reference, quality bar, and hypex CLI usage for creating and validating hypotheses.

1 other project uses a version of this, 1 of them edited.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

8 rules. About 0 are common, 5 are distinctive, and 3 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈5

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Every hypothesis is a JSON file conforming to schemas/hypothesis.schema.json.

    line 16
  2. Distinctive:

    All of the following fields are required:

    line 21
  3. Distinctive:

    No additional properties are allowed on experiment objects.

    line 63
  4. Distinctive:

    No additional properties are allowed on evidence objects.

    line 83
  5. Distinctive:

    Every hypothesis you produce must meet these minimum requirements:

    line 136
  6. Very specific:

    At least 1 evidence item with a lit_id: Every factual claim needs a literature citation.

    line 142
  7. Very specific:

    If you include an id in your JSON, it will be overwritten.

    line 249
  8. Distinctive:

    Validation happens automatically: If your hypothesis does not conform to the schema, the command will fail with a validation error.

    line 252

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Hypothesis Schema

This skill teaches you the hypothesis data format, quality requirements, and how to use the hypex CLI to create and validate hypotheses.

These records remain in the native datastore until the supervisor publishes the completed run with pkde hypex analyze.

Schema Reference

Every hypothesis is a JSON file conforming to schemas/hypothesis.schema.json. The schema uses JSON Schema draft 2020-12.

Required Fields

All of the following fields are required:

FieldTypeConstraintsDescription
idstringPattern: H-NNNN (e.g., H-0042)Unique identifier. Assigned automatically by hypex add-hypothesis -- do not set this yourself.
titlestringMax 120 charactersShort descriptive title. Aim for <= 15 words.
statementstring--One-paragraph falsifiable claim.
mechanismstring--Proposed causal mechanism explaining the claim.
predictionsarray of stringsMin 1 itemObservable, testable predictions that follow from the hypothesis.
experimentsarray of objectsMin 1 itemProposed experiments to test the hypothesis (see below).
evidencearray of objectsMin 1 itemLiterature evidence with PkDE-resolved record IDs (see below).
focus_areastring--Research focus area this hypothesis belongs to.
lineageobject--Evolutionary lineage tracking (see below).
statusstringEnum: proposed, reviewed, active, merged, retired, quarantinedCurrent lifecycle status. Use "proposed" for new hypotheses.
created_bystring--Name of the agent that created this hypothesis.
epochintegerMin: 0Epoch in which this hypothesis was created.
created_atstringISO 8601 date-timeTimestamp of creation (e.g., "2026-09-05T14:30:00Z").

Optional Fields

FieldTypeConstraintsDescription
clusterstringPattern: C-NN (e.g., C-03)Proximity cluster identifier. Not set by generation agents -- assigned later by the proximity agent.

The experiments Array

Each experiment object has three required fields:

{
  "design": "Description of the experimental design",
  "readout": "Expected measurement or readout",
  "est_difficulty": "low|med|high"
}
FieldTypeValuesDescription
designstring--What the experiment involves -- methodology, model system, key controls.
readoutstring--What you measure and what the expected result looks like.
est_difficultystringlow, med, highEstimated difficulty. low = standard lab techniques; med = specialized equipment or expertise; high = novel methods or multi-year effort.

No additional properties are allowed on experiment objects.

The evidence Array

Each evidence item links a literature record to the hypothesis:

{
  "lit_id": "PMID:38012345",
  "role": "supports",
  "note": "Brief explanation of how this evidence relates to the hypothesis"
}
FieldTypeValuesDescription
lit_idstring--Literature record identifier from PkDE search/resolve results (e.g., PMID:38012345, arXiv:2301.12345v2, 10.1101/2024.01.01.573838).
rolestringsupports, constrains, contradictsRelationship of this evidence to the hypothesis.
notestring--Brief explanation of relevance -- what the cited paper shows and why it matters.

No additional properties are allowed on evidence objects.

Role definitions:

  • supports -- the evidence directly supports the hypothesis claim or mechanism.
  • constrains -- the evidence limits the scope or applicability of the hypothesis (e.g., effect is tissue-specific, or only observed in certain conditions).
  • contradicts -- the evidence conflicts with the hypothesis. Include contradicting evidence to demonstrate awareness of counterarguments.

The lineage Object

Lineage tracks how a hypothesis was derived:

{
  "parents": [],
  "operator": "null"
}
FieldTypeDescription
parentsarray of stringsParent hypothesis IDs (each matching H-NNNN). Empty array for original hypotheses.
operatorstringEvolution operator used. One of: combine, ground, simplify, oob, null. Use "null" for original hypotheses.

Operator meanings:

OperatorWhen UsedParents
nullOriginal hypothesis (no parent)[] (empty)
groundStrengthened weakest claim with new literature["H-NNNN"] (one parent)
simplifyReduced experimental complexity["H-NNNN"] (one parent)
combineMerged complementary aspects of two hypotheses["H-NNNN", "H-MMMM"] (two parents)
oobOut-of-the-box analogy transfer from adjacent field["H-NNNN"] (one parent)

Status Lifecycle

StatusSet ByMeaning
proposedGeneration / Evolution agentNewly created, awaiting review
reviewedReflection agentHas been reviewed at least once
activeSupervisorParticipating in the tournament
mergedProximity agentSubsumed by another hypothesis
retiredSupervisorRemoved from active consideration
quarantinedReflection agentFlagged for safety concerns

For new hypotheses, always set status to "proposed".


Quality Bar

Every hypothesis you produce must meet these minimum requirements:

  1. Title <= 120 characters. Concise and descriptive.
  2. At least 1 prediction. Each prediction must be observable and testable.
  3. At least 1 experiment. With concrete design, readout, and difficulty estimate.
  4. At least 1 evidence item with a lit_id. Every factual claim needs a literature citation. The lit_id must be a real record ID from a PkDE search results -- never fabricate IDs.
  5. Falsifiable statement. The statement must be a claim that could be proven wrong by experiment.
  6. Causal mechanism. The mechanism must explain why the claim is expected to be true -- not just that it is true.

Hypotheses that fail these requirements will be rejected by schema validation or flagged in review.


Using hypex add-hypothesis

This is the only way to add hypotheses to the datastore. Never write hypothesis JSON files directly.

Command

hypex add-hypothesis [file|-] --run <run-id> --run-dir <run-base>

Arguments

ArgumentDescription
filePath to a JSON file containing the hypothesis
-Read hypothesis JSON from stdin
--runRequired. Run ID to add the hypothesis to
--run-dirBase directory containing runs (default: executions)
--schema-dirDirectory containing JSON schemas (defaults to PkDE's provisioned Hypex schemas)

What It Does

  1. Reads the hypothesis JSON from the specified file or stdin.
  2. Allocates the next sequential ID (e.g., H-0042) via an atomic lockfile-based counter. Any id field in your input is overwritten.
  3. Validates the complete hypothesis against hypothesis.schema.json.
  4. Writes the file atomically (temp file + rename) to <run-dir>/<run-id>/hypotheses/H-NNNN.json.
  5. Prints Added hypothesis: H-NNNN -> <path> to stdout.

Usage Examples

From stdin (preferred for agents):

cat <<'EOF' | hypex add-hypothesis --run my-run --run-dir <run-base> -
{
  "title": "Gut Lactobacillus depletion accelerates tau pathology via vagal signaling",
  "statement": "Depletion of Lactobacillus species in the gut microbiome accelerates tau protein aggregation in the hippocampus through aberrant vagus nerve signaling, contributing to Alzheimer's disease progression.",
  "mechanism": "Lactobacillus metabolites (especially short-chain fatty acids) normally suppress pro-inflammatory cytokine release in the gut epithelium. When Lactobacillus is depleted, increased TNF-alpha and IL-6 travel via the vagus nerve afferents to the brainstem and hippocampus, activating microglia and promoting tau hyperphosphorylation.",
  "predictions": [
    "Germ-free mice colonized with Lactobacillus-depleted microbiomes show increased hippocampal p-tau levels compared to controls",
    "Vagotomy blocks the tau-accelerating effect of gut Lactobacillus depletion"
  ],
  "experiments": [
    {
      "design": "Colonize germ-free mice with defined microbiome communities with and without Lactobacillus. Measure hippocampal p-tau by ELISA at 3, 6, and 9 months.",
      "readout": "p-tau/total-tau ratio in hippocampal lysates",
      "est_difficulty": "med"
    },
    {
      "design": "Perform subdiaphragmatic vagotomy vs sham surgery in Lactobacillus-depleted mice. Compare hippocampal p-tau levels.",
      "readout": "p-tau levels and microglial activation markers (Iba1) in vagotomized vs sham mice",
      "est_difficulty": "high"
    }
  ],
  "evidence": [
    {
      "lit_id": "PMID:38012345",
      "role": "supports",
      "note": "Demonstrates altered gut microbiome composition in Alzheimer's patients with reduced Lactobacillus abundance"
    },
    {
      "lit_id": "arXiv:2401.12345",
      "role": "supports",
      "note": "Computational model predicting vagal signaling as the primary gut-brain axis for neuroinflammation"
    }
  ],
  "focus_area": "Gut-brain axis in neurodegeneration",
  "lineage": {"parents": [], "operator": "null"},
  "status": "proposed",
  "created_by": "hypex-generation-01",
  "epoch": 1,
  "created_at": "2026-09-05T14:30:00Z"
}
EOF

From a file:

hypex add-hypothesis hypothesis-draft.json --run my-run --run-dir <run-base>

Piping (useful in agent workflows):

echo '<hypothesis-json>' | hypex add-hypothesis --run my-run --run-dir <run-base> -

Important Notes

  • Do not set the id field -- it is assigned automatically by the command. If you include an id in your JSON, it will be overwritten.
  • Do not set the cluster field -- it is assigned later by the proximity agent. The field is optional in the schema.
  • Validation happens automatically. If your hypothesis does not conform to the schema, the command will fail with a validation error. Fix the error and retry.
  • Writes are atomic. The file is written via temp file + rename, so other agents will never see a partially written hypothesis.

Other Useful hypex Commands

hypex validate

Validate hypothesis (and other artifact) files against their schemas:

# Validate a specific file
hypex validate <run-dir>/hypotheses/H-0042.json

# Validate all artifacts in a run
hypex validate --run my-run --run-dir <run-base>

hypex list

List hypotheses in a run:

# List all hypotheses
hypex list --run my-run --run-dir <run-base>

# Filter by status
hypex list --run my-run --run-dir <run-base> --status proposed

hypex next-id

Allocate the next sequential ID (used internally by add-hypothesis, but available if needed):

hypex next-id hypothesis --run my-run --run-dir <run-base>           # -> H-0043
hypex next-id match --run my-run --run-dir <run-base>                # -> M-0001
hypex next-id review --run my-run --run-dir <run-base> --for H-0043  # -> H-0043.R-01

hypex status

Show a run dashboard:

hypex status --run my-run --run-dir <run-base>

hypex init-run

Initialize a new run (typically done by the supervisor):

hypex init-run my-run --run-dir <run-base> --goal "Explore mechanisms of age-related cognitive decline"

Complete Example: Well-Formed Hypothesis JSON

{
  "title": "Gut Lactobacillus depletion accelerates tau pathology via vagal signaling",
  "statement": "Depletion of Lactobacillus in the gut accelerates hippocampal tau aggregation through vagus nerve-mediated neuroinflammation.",
  "mechanism": "Lactobacillus metabolites suppress gut epithelial cytokine release. Depletion increases TNF-alpha and IL-6 signaling via vagal afferents, activating hippocampal microglia and promoting tau hyperphosphorylation.",
  "predictions": [
    "Germ-free mice with Lactobacillus-depleted microbiomes show elevated hippocampal p-tau",
    "Vagotomy blocks the tau-accelerating effect of Lactobacillus depletion"
  ],
  "experiments": [
    {
      "design": "Colonize germ-free mice +/- Lactobacillus; measure p-tau at 3, 6, 9 months",
      "readout": "p-tau/total-tau ratio in hippocampal lysates",
      "est_difficulty": "med"
    }
  ],
  "evidence": [
    {
      "lit_id": "PMID:38012345",
      "role": "supports",
      "note": "Reduced Lactobacillus in Alzheimer's patients"
    }
  ],
  "focus_area": "Gut-brain axis in neurodegeneration",
  "lineage": {"parents": [], "operator": "null"},
  "status": "proposed",
  "created_by": "hypex-generation-01",
  "epoch": 1,
  "created_at": "2026-09-05T14:30:00Z"
}

Do not include id or cluster -- they are assigned by the system.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.