Initial commit — generate-hypothesis skill

Standalone Claude Code skill repo extracted from CVGL vault
(.claude/skills/generate-hypothesis/). Generates testable
If/Then/Because hypotheses for the NADEZHDA / SOFIA research
project from the literature library.

Contents:
- SKILL.md             — behaviour spec (6-phase pipeline, output contract)
- README.md            — human-facing entry: when to use, install, examples
- templates/hypothesis_full.md     — full template (8 required sections)
- templates/hypothesis_compact.md  — short draft template
- reference/method_taxonomy.md     — methods to NADEZHDA components mapping

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-04 10:43:03 +03:00
commit f374b0dafc
6 changed files with 546 additions and 0 deletions

140
README.md Normal file
View File

@@ -0,0 +1,140 @@
# skill-claude-generate-hypothesis
Claude Code skill for generating testable scientific hypotheses for the CVGL / NADEZHDA research project. Analyzes the vault's literature library, extracts evidence from analyzed papers, deduplicates against existing hypotheses, and produces structured `If / Then / Because` claims ready to drop into `2_hypotesis/`.
> Behaviour spec — see [`SKILL.md`](SKILL.md). This file is the human-facing entry point.
## Installation
Drop this repo's contents into your vault's Claude Code skills directory:
```bash
git clone https://git.lissad.keenetic.name/Pikaliov/skill-claude-generate-hypothesis.git \
.claude/skills/generate-hypothesis
```
Or as a submodule, if you prefer to track upstream:
```bash
git submodule add https://git.lissad.keenetic.name/Pikaliov/skill-claude-generate-hypothesis.git \
.claude/skills/generate-hypothesis
```
After installation Claude Code picks up the skill on the next session. Verify with `/help``/generate-hypothesis` should appear in the user-invocable list.
**Vault prerequisites** (referenced by the skill but not bundled here):
- `1_lit_research/{2_backbone,3_fusion,4_reduction,5_multimodal_approach,6_cvgl}/` — paper analyses (P/B/F/R/M-prefixed)
- `1_lit_research/СИНТЕЗсех_статей_для_LUPI_CVGL.md` — synthesis index
- `2_hypotesis/cvgl/HYP_*.md` — existing hypotheses (used for dedup)
- `0_prompts/tag_taxonomy.md` — tag whitelist for frontmatter
- `CONVENTIONS.md` — repo-wide RU/EN split rules
If you adapt the skill to another vault layout, update the path globs in [`SKILL.md`](SKILL.md) §"Фаза 2: Поиск литературы".
## When to use
- Designing a new experiment and need a falsifiable claim before writing code.
- Synthesizing 58 related papers into one actionable research direction.
- Exploring "what if we replaced X with Y" without re-reading the entire vault.
- Stress-testing an idea against existing hypotheses to find duplicates or contradictions.
## Invocation
```text
/generate-hypothesis "<research-question>" [Teacher|Student|Fusion|Loss|Edge|Dataset]
```
**Examples**
```text
/generate-hypothesis "Поможет ли Coupled Mamba fusion для объединения drone и satellite признаков в Student?" Fusion
/generate-hypothesis "Снизит ли GGeM с FP16 кэшем latency на Jetson?" Edge
/generate-hypothesis "Заменит ли DINOv3-L текущий DINOv2-L Teacher?" Teacher
```
## What it does (6 phases)
| # | Phase | Output |
|---|-------|--------|
| 1 | Parse the question, route to the right NADEZHDA component | component tag, keywords |
| 2 | Targeted vault search across `1_lit_research/{2_backbone,3_fusion,4_reduction,5_multimodal_approach,6_cvgl}` and the synthesis index | 58 papers read |
| 3 | Dedup against `2_hypotesis/cvgl/HYP_*.md` | extend existing or create new |
| 4 | Extract method / numbers / limitations / applicability | per-paper evidence rows |
| 5 | Synthesize the claim in `If / Then / Because` form (≤30 words) | hypothesis statement |
| 6 | Render via [`templates/hypothesis_full.md`](templates/hypothesis_full.md) or [`templates/hypothesis_compact.md`](templates/hypothesis_compact.md) with frontmatter, wiki-links, math, tables | drop-in `.md` for `2_hypotesis/` |
## Output contract
Every produced hypothesis must have:
1. **Formal claim**`If [method], then [±X% on metric Y on dataset Z], because [mechanistic rationale]`
2. **Confidence** — High / Medium / Low + one-line justification
3. **Scope** — Teacher / Student / Fusion / Loss / Edge / Full system
4. **Evidence** — 24 papers, wiki-linked, with concrete numbers (R@1, params, FLOPs, latency)
5. **Falsifiable test** — baseline, metric, threshold, p-value
6. **Experimental plan** — datasets, stages, timeline
7. **Assumptions** — what must hold for the claim to be testable
8. **Links**`extends` / `contradicts` / `similar` references to existing hypotheses
## Hard constraints
- ❌ Никогда не выдумывать статьи, числа или wiki-links на несуществующие файлы. Если evidence отсутствует — `confidence = LOW` с явной отметкой.
- ✅ Текст — русский, формулы и термины — английский (см. `[[../../CONVENTIONS.md]]`).
- ✅ Каждое число должно иметь источник (откуда взято).
- ✅ Имя файла: `HYP_<метод>_<компонент>_<суть>.md`.
- ✅ Теги — только из `[[0_prompts/tag_taxonomy]]`.
- ✅ Перед расширением похожей гипотезы — обязательная проверка `2_hypotesis/cvgl/HYP_*.md`, не создавать дубликат.
## NADEZHDA component cheat-sheet
| Component | Current state | Where the skill looks |
|-----------|--------------|----------------------|
| **Teacher** | DINOv3-L, ~356 M frozen, 5 modalities (sat/UAV/street-view/depth/text), Multi-FiLM-Fusion, modality dropout p=0.3 | `1_lit_research/2_backbone/`, `5_multimodal_approach/` |
| **Student** | SOFIA v7.1 / FastViT-T12 weight-shared, 2 modalities, CVD, GGeM → 512-dim | `1_lit_research/2_backbone/`, `3_fusion/` |
| **Fusion** | Multi-FiLM-Fusion (Teacher) / late gated (Student) | `1_lit_research/3_fusion/` |
| **Distillation** | 7 losses (InfoNCE, LUPI-MSE, feature alignment, RKD, seg distill, CVD_MI, CVD_Recon) + GradNorm + progressive staging | `2_hypotesis/kd_hypotesis/`, `6_cvgl/` |
| **Edge** | Jetson Orin NX, < 50 ms, INT8, ≤ 5 GFLOPs (Tiny) / ≤ 500 MB (M-preset) | `1_lit_research/4_reduction/` |
Detailed taxonomy of methods → component mapping: [`reference/method_taxonomy.md`](reference/method_taxonomy.md).
## File layout
```
generate-hypothesis/
├── SKILL.md — full skill specification (frontmatter + 6-phase pipeline)
├── README.md — this file (human entry point)
├── templates/
│ ├── hypothesis_full.md — full template with all 8 required sections + tables + math
│ └── hypothesis_compact.md — short template for "draft" status hypotheses
└── reference/
└── method_taxonomy.md — mapping of literature methods → NADEZHDA components
```
## Allowed tools
`Read`, `Glob`, `Grep`, `WebSearch` — read-only literature analysis. Skill does not write to the vault directly; the model returns the hypothesis as a code block, the user persists it under `2_hypotesis/cvgl/`.
## Related skills (sibling skills in the host vault, not bundled here)
- `/analyze-paper` — single-paper deep-dive that feeds evidence into this skill.
- `/synthesize-review` — cross-paper review that the dedup phase consults.
- `/tag-vault` — keeps the tag taxonomy in sync so frontmatter tags stay valid.
## Worked example
**Input:**
```text
/generate-hypothesis "Поможет ли Coupled Mamba fusion для объединения drone и satellite признаков в Student?" Fusion
```
**Expected output (sketch):**
- Title: `HYP_coupled_mamba_Student_fusion.md`
- Claim: «Если заменить bottleneck cross-attention в Student на Coupled Mamba SSM fusion, то latency на Jetson Orin NX снизится на ≥ 15 % при сохранении R@1 ± 0.5 % на University-1652, потому что SSM имеет линейную сложность O(L) против O(L²) у attention…»
- Confidence: Medium
- Evidence: `[[Coupled_Mamba_NeurIPS_2024]]`, `[[F35_Sigma_Siamese_Mamba]]`, `[[B6_BB_2024_Efficient VMamba]]`
- Test: baseline = current cross-attention fusion · metric = R@1 + Jetson latency · threshold = ΔR@10.5 % AND Δlatency ≤ 15 % · 5 seeds, paired t-test p < 0.05
- Plan: 4 weeks on University-1652 + GTA-UAV, ablation per direction count
See `2_hypotesis/cvgl/` for previously generated hypotheses to study the produced format.