skills/hypothesis-generation/SKILL.md
Turn an observation into a transparent set of candidate explanations and tests. A hypothesis is a proposal to be challenged, not a finding, fact, diagnosis, or recommendation.
Before using unpublished, sensitive, controlled, personal, proprietary, export-controlled, or security-relevant material:
Never:
If a request crosses a safety gate, produce only a high-level risk/oversight note and route it to the qualified local authority. Do not continue with operational detail.
| Object | Meaning |
|---|---|
| Observation | What was measured, noticed, or reported, with provenance and uncertainty |
| Research question | The answerable question that defines scope |
| Hypothesis | A candidate explanatory or relational proposition |
| Mechanism | The proposed process connecting conditions to an outcome |
| Causal estimand | The precisely defined causal contrast to estimate |
| Prediction | An observable implication derived before checking the target result |
| Alternative explanation | A rival account, including bias or non-causal explanations |
| Null hypothesis | A specified no-effect/no-difference model used by an analysis |
| Negative control | A control expected not to operate through the proposed mechanism |
| Operationalization | How a construct becomes a variable, measurement, intervention, or category |
| Analysis plan | Prespecified transformations, models, contrasts, uncertainty, and decision rules |
| Evidence | Observations or sources that bear on a claim; never the claim itself |
Do not collapse these labels. A mechanistic story is not a prediction; a prediction is not evidence; rejection of one null does not prove a mechanism; support for one candidate does not eliminate unconsidered rivals.
Record:
No script approval is an ethics, safety, regulatory, or scientific approval.
Write the observation before interpretation:
Use “reported,” “observed,” or “associated,” not causal language, unless a causal design and estimand justify it.
Choose a framework only when it fits:
PICO is not a universal template. Define stakeholders, context, boundaries, feasibility, and what answer would change knowledge or practice. FINER is a question-refinement mnemonic—Feasible, Interesting, Novel, Ethical, Relevant—not a scoring system. Treat “Novel” as unresolved until a documented, fit-for-purpose search and expert review support it.
Search before making literature-dependent statements. Prefer primary research, official policies, primary methods papers, current reporting guidelines, and systematic reviews used for orientation.
Record:
A search can establish what was searched, not universal absence. Say “not located within the documented search boundary,” never “no prior work exists.” Use assets/search_boundary_template.json, assets/evidence_ledger_template.csv, and references/literature_search_strategies.md.
Create multiple candidates from genuinely different explanatory classes when plausible:
Generate an initial rival set independently before AI-assisted expansion to reduce anchoring and homogenization. Do not force a fixed number or false symmetry. Keep every candidate labeled candidate.
Platt’s strong-inference pattern motivates alternative hypotheses and crucial tests, but failed alternatives do not make the survivor true. Unknown alternatives, auxiliary assumptions, measurement error, and mixed mechanisms remain possible.
Classify each target as:
For a causal target, define before analysis:
Document confounding, selection, collider, measurement, and reverse-causation risks separately. An observational causal estimate remains assumption-dependent. Use references/causal_inference_and_claims.md.
For every candidate:
Prefer tests where rivals predict meaningfully different outcomes. Add positive, procedural, and negative controls when scientifically appropriate. A negative control must be incapable of operating through the target mechanism while sharing relevant bias pathways; it is not a decorative untreated group.
Use assets/prediction_rival_matrix_template.csv and assets/falsification_controls_template.json.
For every construct record:
Do not treat a convenient proxy as the construct itself. Validate with:
python3 scripts/check_operationalization.py local-operationalization.json
Specify:
Do not use universal sample-size minima. Do not interpret a thresholded p-value as the probability a hypothesis is true or as effect importance. See references/experimental_design_patterns.md.
For intervention trials, use the current SPIRIT 2025 protocol guidance and CONSORT 2025 reporting guidance where applicable. These improve completeness; they do not certify design quality, ethics, or regulatory compliance.
Before accessing the target outcomes, timestamp the question, candidates, predictions, outcomes, exclusions, transformations, analysis, multiplicity, missing-data plan, and stopping rule when feasible.
Afterward:
Preregistration is a transparent plan, not a ban on adaptation. Registered Reports add results-blind peer review and in-principle acceptance under journal policy. See references/preregistration_and_open_science.md.
Distinguish:
Preserve provenance, versions, code, materials, and decision logs when sharing is authorized. Plan independent replication or transport tests across relevant boundaries. Update candidate status when contrary, null, or replication evidence arrives; do not hide negative results.
The accountable human must verify:
AI can confabulate citations, anchor reasoning, and homogenize candidate sets. Record permitted AI use and material influence. Keep independent human ideation and rival generation in the process.
All CLIs are bounded, dependency-free, local, deterministic, and non-scoring:
| Task | Asset | Command |
|---|---|---|
| Hypothesis-record schema | assets/hypothesis_record_template.json | python3 scripts/validate_hypothesis_schema.py record.json |
| Measurement checklist | assets/operationalization_template.json | python3 scripts/check_operationalization.py checklist.json |
| Prediction/rival matrix | assets/prediction_rival_matrix_template.csv | python3 scripts/validate_prediction_matrix.py matrix.csv |
| Claim-language lint | Annotated Markdown | python3 scripts/lint_causal_claims.py draft.md |
| Falsification/controls | assets/falsification_controls_template.json | python3 scripts/check_falsification_controls.py controls.json |
| Evidence/source audit | assets/evidence_ledger_template.csv + assets/search_boundary_template.json | python3 scripts/audit_evidence_ledger.py ledger.csv boundary.json |
| Preregistration scaffold | assets/preregistration_scaffold_template.md | python3 scripts/generate_preregistration_scaffold.py record.json -o preregistration.md |
Exit codes are 0 for structurally valid output, 1 for completed validation with errors, and 2 for malformed/unsafe input. Reports validate declarations and internal consistency only; they do not verify scientific truth or choose a hypothesis. Full schemas are in references/tool_reference.md.
references/concepts_and_workflow.md — object model, strong inference, uncertainty, and candidate lifecyclereferences/hypothesis_quality_criteria.md — non-scoring human review criteriareferences/literature_search_strategies.md — traceable, bounded evidence searchreferences/causal_inference_and_claims.md — estimands and causal-bias risksreferences/experimental_design_patterns.md — design, controls, measurement, multiplicity, and replicationreferences/preregistration_and_open_science.md — preregistration, Registered Reports, deviations, and open sciencereferences/ethics_safety_and_ai.md — oversight gates, dual use, data handling, and responsible AIreferences/tool_reference.md — CLI schemas, limits, and examplesreferences/source_ledger.md — dated authoritative source notesreferences/security_validation.md — baseline findings and validation recordThe bundled source ledger is assets/source_ledger.csv, verified through 2026-07-23. Recheck time-sensitive policy and guidance before a later or jurisdiction-specific use.