| name | insane-research-main |
| description | Comprehensive, citation-heavy research workflow with session state, structured outputs, and source-quality checks. Use when the user wants deep research, a long-form report, or citation-backed analysis on a topic. Korean triggers โ "๋ฆฌ์์นํด์ค", "๋ฅ๋ฆฌ์์น", "์ฌ์ธต ์ฐ๊ตฌ", "[์ฃผ์ ]์ ๋ํด ๋ฆฌ์์นํด์ค". English triggers โ "deep research on", "research report". |
Insane Research for Codex
๋ฉํฐํ์ด์ฆ ๋ฆฌ์์น ์์คํ
โ ์ธ์
์ํ ๊ด๋ฆฌ, ์์ค ๊ฒ์ฆ, ๊ตฌ์กฐํ๋ ์ฐ์ถ๋ฌผ. AI๊ฐ ์์จ์ ์ผ๋ก ๋ค๋จ๊ณ ๋ฆฌ์์น๋ฅผ ์ํํ๊ณ ์ถ์ฒ๋ฅผ ๊ฒ์ฆํ๋ค.
๋จผ์ ์ฝ๊ธฐ:
$PLUGIN_ROOT/skills/insane-research-main/references/phase_contracts.md
$PLUGIN_ROOT/skills/insane-research-main/references/citation_rules.md
$PLUGIN_ROOT/skills/insane-research-main/references/quality_rubric.md
ํ์ํ ๋ ์ฝ๊ธฐ:
$PLUGIN_ROOT/skills/insane-research-main/references/query_generator.md
$PLUGIN_ROOT/skills/insane-research-main/references/tool_strategy.md
$PLUGIN_ROOT/skills/insane-research-main/references/agent_prompts.md
$PLUGIN_ROOT/skills/insane-research-main/references/query_schema.json
$PLUGIN_ROOT/skills/insane-research-main/examples/*.json
ํธ๋ฆฌ๊ฑฐ๋๋ฉด ์ฆ์ ์คํ
์ด ๋ฌธ์๋ฅผ ์ถ๋ ฅ๋ง ํ์ง ๋ง๊ณ , ๋ฆฌ์์น ํ๋ก์ฐ๋ฅผ ์ฆ์ ์คํํ๋ค. ์ฌ์ฉ์ ์
๋ ฅ์์ ์ฃผ์ ๋ฅผ ์ถ์ถํ๊ณ ์๋ ๋ชจ๋ ํ๋ณ๋ก ๋ค์ด๊ฐ๋ค.
๋ชจ๋ ํ๋ณ (์ธ์ ํ์ฑ)
์ฌ์ฉ์ ์
๋ ฅ์ผ๋ก ๋์์ ๊ฒฐ์ ํ๋ค:
| ์
๋ ฅ ํจํด | ๋์ |
|---|
resume [session_id] | ์ด์ ๋ฆฌ์์น ์ธ์
์ฌ๊ฐ |
status | ๋ชจ๋ ๋ฆฌ์์น ์ธ์
๊ณผ ์งํ๋ ๋์ด |
query | ์ธํฐ๋ํฐ๋ธ ์ฟผ๋ฆฌ ๋น๋ โ insane-research-query ์คํฌ๋ก ์์ |
[๊ทธ ์ธ ํ
์คํธ] | ์ฃผ์ด์ง ์ฃผ์ ๋ก ์ ๋ฆฌ์์น ์์ |
| (์ธ์ ์์) | ์๋ ยงA ๋ฒํธํ ๋ฉ๋ด ์ถ๋ ฅ ํ ๋ต๋ณ ๋๊ธฐ |
์ธ์๊ฐ ์์ ๋ โ ยงA ๋ฒํธํ ๋ฉ๋ด
Codex CLI์๋ AskUserQuestion ๊ฐ์ ๊ฐ๊ด์ ์นด๋ UI๊ฐ ์๋ค. shared/questioning-policy.md ยงA์ ์ฑํ
๋ฒํธ ๋ธ๋ก์ผ๋ก ๋์ฒดํ๋ค. ๋ค์์ ์ฑํ
์ ์ถ๋ ฅํ๊ณ ์ฌ์ฉ์ ๋ต๋ณ์ ๊ธฐ๋ค๋ฆฐ๋ค:
๋ฌด์์ ํ ๊น์?
1. ์ ๋ฆฌ์์น โ ์์ ์ฃผ์ ๋ก ๋ฅ๋ฆฌ์์น ์์ (์ฃผ์ โ ๋ฒ์ โ ๋ฉํฐ๊ฒ์ โ ์ข
ํฉ โ ๋ฆฌํฌํธ, 10~30๋ถ)
2. ์ธ์
์ฌ๊ฐ โ ์ค๋จ๋ ๋ฆฌ์์น๋ฅผ ๋ง์ง๋ง ์ฒดํฌํฌ์ธํธ๋ถํฐ ์ด์ด์ (RESEARCH/*/state.json)
3. ์ธ์
ํํฉ โ ๋ชจ๋ ์ธ์
์ ํ์ฌ ํ์ด์ฆ/์์ค ์/๊ฐฑ์ ์๊ฐ ๋์ด
4. ์ฟผ๋ฆฌ ๋น๋ โ ๋ชจํธํ ์ฃผ์ ๋ฅผ ๊ตฌ์กฐํ๋ ๋ฆฌ์์น ์ฟผ๋ฆฌ๋ก ๋ค๋ฌ๊ธฐ
(๋ฒํธ ๋๋ "X ์ฃผ์ ๋ก ์ ๋ฆฌ์์น"์ฒ๋ผ ๋ฌธ์ฅ์ผ๋ก ๋ตํด๋ ๋ฉ๋๋ค)
๋ต๋ณ ํ:
- 1 ์ ๋ฆฌ์์น โ ์ฃผ์ ๋ฅผ ํ์ธํ ๋ค ์๋ 7-ํ์ด์ฆ ํ๋ก์ฐ ์คํ
- 2 ์ธ์
์ฌ๊ฐ โ
RESEARCH/*/state.json ๋ชฉ๋ก ์ ์ โ ์ ํ โ ์ฌ๊ฐ ํ๋กํ ์ฝ
- 3 ์ธ์
ํํฉ โ ๋ชจ๋ ์ธ์
์งํ ์์ฝ ์ถ๋ ฅ
- 4 ์ฟผ๋ฆฌ ๋น๋ โ
insane-research-query ์คํฌ๋ก ์์
์ง๋ฌธ ์์น (shared/questioning-policy.md ยงAยทยง1ยทยง2c)
๋ฆฌ์์น ์ ๋ฒ์ ์ขํ๊ธฐ๋ ์ถ๋ก ๊ฐ๋ฅํ ๊ฑด ๋ฌป์ง ์๋๋ค(ยง1). ๋ฌผ์ด์ผ ํ๋ฉด ๊ธฐ๋ณธ๊ฐ์ ์ ์ํ๊ณ ํ์ธ๋ฐ๋๋ค("์ข
ํฉ ๋ฆฌํฌํธ๋ก ๊ฐ์ ํ ๊ฒ์ โ ์๋๋ฉด ๋ง์ ์ฃผ์ธ์"). ์์ฒญ์ด ์ด๋ฏธ ๊ตฌ์ฒด์ ์ด๋ฉด ๊ณผ์์ง๋ฌธ ์์ด ๋ฐ๋ก ์งํํ๋ค(ยง2c); ์ ๋ง underspecified์ผ ๋๋ง ๋ฒ์๋ฅผ ์ขํ๋ค.
์ธ์ด ๊ฐ์ง: ์ฌ์ฉ์ ์
๋ ฅ ์ธ์ด์ ๋ง์ถฐ ๋ชจ๋ ์ง๋ฌธ/์ ํ์ง/์ฐ์ถ๋ฌผ ์ธ์ด๋ฅผ ์ผ์น์ํจ๋ค(ํ๊ตญ์ด ์
๋ ฅ โ ํ๊ตญ์ด).
๋ฒ์๊ฐ ์ง์ง ๋ชจํธํ๋ฉด ยงA ๋ฒํธ ๋ธ๋ก์ผ๋ก ํ ๋ฒ๋ง, ๊ฐ์ฅ ํฐ ๋ฏธ์ง์๋ง ๋ฌป๋๋ค. ์:
์ด ๋ฆฌ์์น์ ์ด์ ์ ๋ฌด์์ด ๊ฐ์ฅ ๊ฐ๊น์ด๊ฐ์?
1. ๋ชจ๋ ํฌํจ (์ถ์ฒ) โ ํ์ฌ ์ํ/๊ธฐ์ /์์ฅ์ ์ข
ํฉ ๋ถ์
2. ํ์ฌ ์ํ์ ํธ๋ ๋ โ ์ต์ ๋ํฅ, ์์ฅ ํํฉ, ์ฃผ์ ํ๋ ์ด์ด
3. ๊ธฐ์ ์ฌ์ธต ๋ถ์ โ ์ํคํ
์ฒ, ๊ตฌํ, ๊ธฐ์ ์คํ
4. ๋ฌธ์ฅ์ผ๋ก ์ง์ ์ง์
(์ฌ๋ฌ ๊ฐ๋ฉด 1,3์ฒ๋ผ ์ ์ด์ฃผ์ธ์ / ๋ชจ๋ฅด๋ฉด 1๋ฒ์ผ๋ก ์งํํ๊ฒ ์ต๋๋ค)
์ฐ์ถ๋ฌผ ํํ(์ข
ํฉ ๋ฆฌํฌํธ / ์์ฝ / ๋ชจ๋ํ)ยท๋
์(๊ธฐ์ ํ / ๊ฒฝ์์ง / ์ฐ๊ตฌ์ / ์ผ๋ฐ)ยท์์ค ์ ํธ(ํ์ / ์ฐ์
๋ฆฌํฌํธ / ๋ด์ค / ์ ์ฒด)๋ ์ ๋ง ๋ชจํธํ ๋๋ง ๊ฐ์ ๋ฒํธ ๋ธ๋ก์ผ๋ก ํ์ธํ๋ค. ์ด๋ฏธ ์ถ๋ก ๊ฐ๋ฅํ๋ฉด ๋ฌป์ง ๋ง๊ณ ๊ธฐ๋ณธ๊ฐ(์ข
ํฉ ๋ฆฌํฌํธ / ์ ์ฒด ์์ค)์ผ๋ก ์งํํ๋ค.
7-ํ์ด์ฆ ๋ฅ๋ฆฌ์์น ํ๋ก์ธ์ค
Phase 1: Question Scoping (๋ฒ์ ์ค์ )
- ๋ฆฌ์์น ์ง๋ฌธ์ ๋ช
ํํ ํ๋ค (์ ยง1ยทยง2c ์์น)
- ์ฐ์ถ ํ์๊ณผ ์ฑ๊ณต ๊ธฐ์ค ์ ์
- ์ ์ฝ๊ณผ ํค ์๋ณ
- ํ๋ผ๋ฏธํฐ๊ฐ ๋ถ๋ช
ํ ๋ชจํธํ์ง ์์ ์ฟผ๋ฆฌ ์์ฑ
Phase 2: Retrieval Planning (๊ฒ์ ๊ณํ)
- ๋ฉ์ธ ์ง๋ฌธ์ 3~5๊ฐ ์๋ธํ ํฝ์ผ๋ก ๋ถํด
- ์๋ธํ ํฝ๋ณ ๊ตฌ์ฒด์ ๊ฒ์ ์ฟผ๋ฆฌ ์์ฑ
- ์ ํฉํ ๋ฐ์ดํฐ ์์ค ์ ํ
- ๋ฆฌ์์น ํ๋์ ์ฌ์ฉ์ ์น์ธ์ฉ์ผ๋ก ์ ๋ฆฌ
DATE-AWARE ์ฟผ๋ฆฌ ์์ฑ (ํ์)
๋ชจ๋ ๊ฒ์ ์ฟผ๋ฆฌ๋ freshness๋ฅผ ์ํด ํ์ฌ ๋ ์ง ๋งฅ๋ฝ์ ํฌํจํ๋ค.
๊ฒ์ ์ฟผ๋ฆฌ๋ฅผ ๋ง๋ค๊ธฐ ์ ์ ์์คํ
์ปจํ
์คํธ์์ ์ค๋ ๋ ์ง๋ฅผ ๋จผ์ ํ์ธํ๋ค.
- ์ฟผ๋ฆฌ์ ์ฐ๋ ์ถ๊ฐ:
- ๋์จ: "AI code assistants market"
- ์ข์: "AI code assistants market 2026"
- ์ข์: "AI code assistants trends 2026"
- recency ์ฐ์ฐ์ ์ฌ์ฉ: "after:2025", "since:2025", "2025..2026"
- freshness ํค์๋: "latest", "recent", "current", "new", "[ํ์ฌ์ฐ๋] update"
- ๋ณํ ์์:
| ์ฌ์ฉ์ ์ฟผ๋ฆฌ | ์์ฑ๋ ๊ฒ์ ์ฟผ๋ฆฌ |
|---|
| AI ์ฝ๋ฉ ์ด์์คํดํธ | AI ์ฝ๋ฉ ์ด์์คํดํธ 2026 ์ต์ ๋ํฅ |
| startup trends | startup trends 2026 latest |
| React vs Vue | React vs Vue 2026 comparison |
- ํ์ /์ญ์ฌ ๋ฆฌ์์น: "state of" ์ฟผ๋ฆฌ์๋ ํ์ฌ ์ฐ๋ ํฌํจ, ๋ ์ง ๋ฒ์ ์ฌ์ฉ ("climate change research 2020-2026")
์ฟผ๋ฆฌ ํ
ํ๋ฆฟ: [topic] [ํ์ฌ์ฐ๋] [freshness_keyword] [specific_aspect]
Phase 3: Iterative Querying (๋ฐ๋ณต ๊ฒ์)
- ๊ฒ์์ ์ฒด๊ณ์ ์ผ๋ก ์คํ (์๋ Rate-Limit & Reliability Guard ์ค์)
- ๊ด๋ จ ์ ๋ณด ์ถ์ถยท๋ฐ์ท
- WebFetch/๋ธ๋ผ์ฐ์ง ์คํจ ์ โ
tool_strategy.md์ ํ๋ซํผ๋ณ ์ ๊ทผ ์ ๋ต ๋๋ Fallback ์์๋๋ก ์๋
- ์ฐํ ์ฑ๊ณต ์ ์์ค ์ ๋ขฐ๋์
via_fallback ํ๊ทธ ์ถ๊ฐ
- ์คํจํ URL๊ณผ ์ฐํ ์๋ ๊ฒฐ๊ณผ๋ฅผ
sources/failed_urls.txt์ ๊ธฐ๋ก
- ๋ฐ๊ฒฌ์ ๋ฐ๋ผ ์ ์ฟผ๋ฆฌ ๋์ถ, ๋ค์ค ๊ฒ์ ๋ชจ๋ฌ๋ฆฌํฐ(์นยทํ์ ยท์ฝ๋) ํ์ฉ
Phase 4: Source Triangulation (์ถ์ฒ ๊ต์ฐจ๊ฒ์ฆ)
- ์ฌ๋ฌ ์์ค์ ๊ฑธ์ณ ๋ฐ๊ฒฌ ๋น๊ต
- ํต์ฌ ์ฃผ์ฅ์ ์ต์ 2๊ฐ ์์ค๋ก ๊ต์ฐจ ๊ฒ์ฆ
- ๋ถ์ผ์น ์ฒ๋ฆฌยท๋ชจ์ ๊ธฐ๋ก
- A~E ๋ฑ๊ธ์ผ๋ก ์์ค ์ ๋ขฐ๋ ํ๊ฐ
โ ๏ธ ํต์ฌ ์ฃผ์ฅ ๊ฒ์ฆ ๋ ์ด์ด (Claim Verification Layer) โ ํ์ ์ฐ์ถ ๊ณ์ฝ
ํต์ฌ ์ฃผ์ฅ(์์นยท์ ์ ์จยท๋ ์งยท๋ฒ๋ นยท์ธ๊ณผ ๋ฑ "ํ๋ฆฌ๋ฉด ์ํด ํฐ" ์ฃผ์ฅ)์ ๋งค๋๋ฌ์ด ๋ฌธ์ฅ์ผ๋ก ๋จ์ ํ๊ธฐ ์ ์ claim ledger๋ฅผ ๋ง๋ ๋ค. ledger๋ **๋ฐ๋์ artifacts/claim_ledger.jsonl์ ํ ์ค๋น 1๊ฐ ๋ ์ฝ๋(JSONL)**๋ก ์ ์ฅํ๋ค โ ์ด ํ์ผ์ด Phase 6์ validate_ledger.py ๊ฒ์ดํธ ์
๋ ฅ์ด๋ค. ๊ฐ ํต์ฌ ์ฃผ์ฅ 1๊ฑด๋น ๋ ์ฝ๋:
{
"claim_id": "clm_001",
"text": "์ฃผ์ฅ ํ
์คํธ",
"risk": "high | normal",
"claim_type": "numeric | legal | causal | descriptive",
"source_ids": ["src_001", "src_003"],
"counter_search": "๋ฐ์ฆ ๊ฒ์ 1ํ ๊ฒฐ๊ณผ ์์ฝ (high-risk ํ์)",
"counter_refuted": false,
"conflicting": false,
"primary_source": true
}
status/confidence๋ ์ง์ ์ฐ์ง ์๋๋ค. validate_ledger.py๊ฐ source_ids๋ฅผ ๋ ์ง์คํธ๋ฆฌ(sources/sources.jsonl)์ ๋์กฐํด ๋
๋ฆฝ ๋๋ฉ์ธ ์ยทcounter_search ์ ๋ฌดยท1์ฐจ์์คยท๋ฑ๊ธ์ ๋ณด๊ณ status๋ฅผ ๊ณ์ฐํ๋ค. risk:"high"๋ ์์น/์ ์ ์จ/๋ ์ง/๋ฒ๋ น/์ธ๊ณผ/์ฌ๋ฌด ์ฃผ์ฅ์ ๋ถ์ฌํ๋ค. source_ids๋ sources/sources.jsonl์ id์ ์ ํํ ์ผ์นํด์ผ ํ๋ค(๋ถ์ผ์น ์ ๊ฒ์ดํธ๊ฐ ํ๋ ์๋ฌ).
Abstention ๊ฐ์ ๊ท์น (๋ถ๊ฐ์นจ) โ ๋ค์ ์ค ํ๋๋ผ๋ ํด๋นํ๋ฉด ๊ฒ์ดํธ๊ฐ status=unresolved("๋ฏธํ์ ")๋ก ๊ณ์ฐํ๊ณ , ํด๋น ์ฃผ์ฅ์ ๋ณธ๋ฌธ์์ ๋จ์ ๊ธ์ง. "๋ฏธํ์ / ํ์ธ ํ์"๋ก ํ๊ธฐํ๊ณ Unresolved ์น์
์ ๋ชจ์๋ค:
- ๋
๋ฆฝ ์ถ์ฒ(๋๋ฉ์ธ) 2๊ฐ ๋ฏธ๋ง
- ์ถ์ฒ ๊ฐ ์ถฉ๋์ด ํด์๋์ง ์์ (
conflicting=true)
- 1์ฐจ ์์ค ๋ฏธ๋๋ฌ (high-risk์ธ๋ฐ
primary_source=false)
- high-risk์ธ๋ฐ B๋ฑ๊ธ ์ด์ ์ถ์ฒ ์์
๊ฒฝ๋ red-team (ํ์) โ ๊ฐ high-risk ์ฃผ์ฅ๋ง๋ค ๋ฐ์ฆ counter-search 1ํ๋ฅผ ์ํํ๊ณ counter_search์ ์์ฝ์ ๊ธฐ๋กํ๋ค(๋น์ด ์์ผ๋ฉด ๊ฒ์ดํธ๊ฐ ํ๋ก์ธ์ค ์๋ฐ์ผ๋ก exit 1). ์ ๋ขฐํ ๋งํ ๋ฐ๋ฐ์ด ๋์ค๋ฉด counter_refuted=true๋ก ๋๋ฉด ๊ฒ์ดํธ๊ฐ status=refuted๋ก ๊ณ์ฐํด Refuted ์น์
์ผ๋ก ๋ณด๋ธ๋ค(๋ณธ๋ฌธ ๋จ์ ๊ธ์ง).
1์ฐจ ์์ค ์ฐ์ โ ์ ๋ถ/๋ฒ๋ น DB(law.go.krยทmoleg), ๊ณต์(SEC/IR), ํผ์ด๋ฆฌ๋ทฐ๋ฅผ 2์ฐจ ์ ๊ทธ๋ฆฌ๊ฒ์ดํฐยท๋ธ๋ก๊ทธ๋ณด๋ค ๋จผ์ ์๋ํ๊ณ , quality_rubric.md ๊ธฐ์ค์ผ๋ก ๋ฑ๊ธ์ ๋งค๊ฒจ primary_source ์ถฉ์กฑ ์ฌ๋ถ๋ฅผ ledger์ ๊ธฐ๋กํ๋ค.
โ ์ด ๋ ์ด์ด๋ ํต์ฌ ์ฃผ์ฅ์๋ง ์ ์ฉํ๋ค. ๋ณธ๋ฌธ์ ํญ๋์ ์์ฌยท๋งฅ๋ฝยท๊ฐ๋
์ฑ์ ์ ์งํ๋, ํต์ฌ ์์น/์ฃผ์ฅ๋ง ledger ๊ฒ์ดํธ๋ฅผ ํต๊ณผ์ํจ๋ค.
Phase 5: Knowledge Synthesis (์ง์ ์ข
ํฉ)
- ๋ด์ฉ์ ๋
ผ๋ฆฌ์ ์ผ๋ก ๊ตฌ์กฐํ
- ์ข
ํฉ ์น์
์์ฑ
- ๋ชจ๋ ์ฃผ์ฅ์ ์ธ๋ผ์ธ ์ธ์ฉ ํฌํจ
- ๊ด๋ จ ์ ๋ฐ์ดํฐ ์๊ฐํ ์ถ๊ฐ
โ ๏ธ Verified-only ํฉ์ฑ ๊ฒ์ดํธ (๋ถ๊ฐ์นจ โ ๋ฐ์ดํฐ ํ๋ฆ ๋ฝ)
Phase 5์ ๋ค์ด๊ฐ๊ธฐ ์ ์ validate_ledger.py๋ฅผ ๋๋ ค outputs/verified_claims.json์ ๋จผ์ ์์ฑํด์ผ ํ๋ค(์๋ Phase 6 "๊ฒ์ฆ ๋ ์ด์ด ๋ง๊ฐ"์ ๋ช
๋ น). ๊ทธ ๋ค์:
- ํต์ฌ ์ฃผ์ฅ(์์นยท๋ฒ๋ นยท์ธ๊ณผยท์ฌ๋ฌด ๋ฑ high-risk)์ ์ค์ง
outputs/verified_claims.json์ ์๋ ํญ๋ชฉ๋ง ๋ณธ๋ฌธ์ ๋จ์ ํ์ผ๋ก ์ด๋ค. raw ๊ฒ์ ๊ฒฐ๊ณผ(sources.jsonlยท๊ฒ์ findings)๋ฅผ ์ง์ ๋ณด๊ณ ํต์ฌ ์์น๋ฅผ ๋จ์ ํ์ง ์๋๋ค.
outputs/unresolved_claims.jsonยทoutputs/refuted_claims.json์ ์ฃผ์ฅ์ ๋ณธ๋ฌธ ๋จ์ ๊ธ์ง โ Unresolved/Refuted annex ์น์
์๋ง ๋
ธ์ถํ๋ค.
- ํญ๋์ ์์ฌยท๋งฅ๋ฝยท๊ฐ๋
์ฑ ๋ฌธ์ฅ์ ๊ทธ๋๋ก ์์ ๋กญ๊ฒ ์ฐ๋, ๊ฒ์ฆ ๊ฒ์ดํธ๋ ํต์ฌ ์ฃผ์ฅ์๋ง ์ ์ฉํ๋ค.
์ด์ : ์ฒด์ปค๋ง์ด verified_claims.json์ ์์ฐํ๋ค. ์ฒด์ปค๋ฅผ ๊ฑด๋๋ฐ๋ฉด ํฉ์ฑํ ์
๋ ฅ์ด ๋น์ด ์๊ธฐํ๊ดด์ ์ด๋ฏ๋ก, ๊ฒ์ฆ์ ์ฐํํ ์ ์๋ค(์์ ํ๋กฌํํธ ๊ถ๊ณ ๊ฐ ์๋๋ผ ๋ฐ์ดํฐ ์์กด์ฑ์ผ๋ก ๊ฐ์ ).
Phase 6: Quality Assurance (ํ์ง ๋ณด์ฆ)
- ํ๊ฐยท์ค๋ฅ ์ ๊ฒ
- ๋ชจ๋ ์ธ์ฉ์ด ๋ด์ฉ๊ณผ ์ผ์นํ๋์ง ๊ฒ์ฆ
- ์์ ์ฑยท๋ช
๋ฃ์ฑ ํ๋ณด
- Chain-of-Verification ์ ์ฉ
ํต์ฌ ์ฃผ์ฅ ๊ฒ์ฆ ๋ ์ด์ด ๋ง๊ฐ (ํ์ โ ๊ฒฐ์ ๋ก ์ ๊ฒ์ดํธ)
๊ฒ์ฆ์ "๊ถ๊ณ "๊ฐ ์๋๋ผ ์ฝ๋ ๊ฒ์ดํธ๋ค. artifacts/claim_ledger.jsonl๊ณผ sources/sources.jsonl์ด ์ค๋น๋๋ฉด ๋ฐ๋์ ์๋๋ฅผ ์คํํ๋ค(Phase 5 ํฉ์ฑ ์ ์ 1์ฐจ ์คํํด verified_claims.json์ ๋ง๋ค๊ณ , Phase 7 ์ง์ ์ ์ฌ์คํํด ํต๊ณผ๋ฅผ ํ์ ):
python3 "$PLUGIN_ROOT/skills/insane-research-main/scripts/validate_ledger.py" --session "RESEARCH/{topic}_{timestamp}"
์ข
๋ฃ ์ฝ๋์ ๋ฐ๋ผ:
- exit 2 (ํ๋ ์๋ฌ) โ ์คํค๋ง ๊นจ์งยท๋ฏธ๋ฑ๋ก source idยทA-E ๋ฑ๊ธ ๋ชจ์. ๋ฐ์ดํฐ๋ฅผ ๊ณ ์น๊ณ ์ฌ์คํ. ์ ๋ Phase 7๋ก ์งํ ๊ธ์ง.
- exit 1 (ํ๋ก์ธ์ค ์๋ฐ) โ high-risk ์ฃผ์ฅ์
counter_search ๋๋ฝ. ํด๋น ์ฃผ์ฅ์ ๋ฐ์ฆ ๊ฒ์ 1ํ๋ฅผ ์ํํด ledger๋ฅผ ๊ฐฑ์ ํ๊ณ ์ฌ์คํ.
- exit 0 (ํต๊ณผ) โ
outputs/{verified,unresolved,refuted}_claims.json ์์ฑ, state.json.verification.signature ๊ธฐ๋ก ์๋ฃ. ์ด์ Phase 7 ์งํ ๊ฐ๋ฅ.
๋ง๊ฐ ์ ๊ฒ:
state.json์ verification.signature๊ฐ ์๊ณ verification.passed=true์ธ์ง ํ์ธํ๋ค(์์ผ๋ฉด ๊ฒ์ดํธ ๋ฏธ์คํ = ๋ฏธ์).
- ๋ณด๊ณ ์์
Confidence / Refuted / Unresolved 3๊ฐ ์น์
์ ๋
ธ์ถํ๋ค.
unresolved/refuted ์ฃผ์ฅ์ด ๋ณธ๋ฌธ์ ๋จ์ ํ์ผ๋ก ์์ด์ง ์์๋์ง ์ต์ข
์ ๊ฒํ๋ค(verified-only ํฉ์ฑ ๊ฒ์ดํธ ์๋ฐ ์ฌ๋ถ).
Strict ๋ชจ๋ (์ตํธ์ธ โ ๊ณ ์ํ ์ฃผ์ฅ ์ฌ๊ฒ์ฆ)
๊ธฐ๋ณธ ๋ชจ๋๋ ๋น ๋ฅด๊ณ ๋๊ฒ โ ํต์ฌ ์ฃผ์ฅ ledger + ๊ฒฐ์ ๋ก ์ ๊ฒ์ดํธ๋ก ์ถฉ๋ถํ๋ค. ๊ทธ๋ฌ๋ ํ๋ฆฌ๋ฉด ์ํด๊ฐ ํฐ ์ฃผ์ (๋ฒ๋ฅ ยท์๋ฃยท์ฌ๋ฌดยท๊ท์ ยทํต์ฌ ์์น) ์ด๊ฑฐ๋ ์ฌ์ฉ์๊ฐ strict๋ฅผ ๋ช
์ํ๋ฉด, ledger์ unresolved ๋๋ high-risk ์ฃผ์ฅ๋ง ๊ณจ๋ผ ์ ๋์ ์ฌ๊ฒ์ฆํ๋ค:
- Phase 4 ledger์์ ๊ฒ์ดํธ๊ฐ
unresolved๋ก ๊ณ์ฐํ๊ฑฐ๋ high-risk(๊ฐํ ์์นยท๋ฒ๋ นยท์ธ๊ณผ)์ธ ์ฃผ์ฅ์ ์ถ๋ฆฐ๋ค.
- ๊ฐ ์ฃผ์ฅ์ ๊ฒ์ฆ ๊ฐ๋ฅํ ์ง๋ฌธ์ผ๋ก ๋ฐ๊ฟ ๋
๋ฆฝ ๊ฒ์์ผ๋ก confirm/refuteํ๋ค (๊ฐ๋ฅํ๋ฉด 1์ฐจ ์์ค๋ก). Codex์๋ ๋ณ๋ Workflow ํ๋ค์ค๊ฐ ์์ผ๋ฏ๋ก ๋ฉ์ธ ์ค๋ ๋์์ ์ถ๊ฐ ๊ฒ์์ ์ง์ ์ํํ๋ค.
- ๊ฒฐ๊ณผ๋ฅผ ledger์ ๋จธ์ง(
source_idsยทcounter_searchยทcounter_refutedยทprimary_source ๊ฐฑ์ )ํ ๋ค validate_ledger.py๋ฅผ ์ฌ์คํํด status๋ฅผ ๋ค์ ๊ณ์ฐํ๋ค: confirmed โ verified ์น๊ฒฉ, refuted โ Refuted, ์ฌ์ ํ inconclusive โ Unresolved ์ ์ง.
- ๊ธฐ๋ณธ ๋ชจ๋๋ ์ด ๋จ๊ณ๋ฅผ ๊ฑด๋๋ด๋ค(๋น ๋ฆ). strict ๋ชจ๋๋ง ๊ฐ์ฌ ๊ฐ๋ฅํ ์ฌ๊ฒ์ฆ์ ๋ถ์ธ๋ค.
โ ๋์ด(๊ธฐ๋ณธ ๊ฒ์) + ์ ๋ฐ(strict ์ฌ๊ฒ์ฆ)์ ๊ฒฐํฉํ๋ ์ ์ฒด๊ฐ ์๋๋ผ ๊ณ ์ํ/๋ฏธํ์ ์ฃผ์ฅ์๋ง ์ ์ฉํด ๋น์ฉ์ ์ ์ดํ๋ค. ๋จ์ /ํฉ์ฑ์ ํญ์ ๊ฒ์ดํธ๊ฐ ๋ง๋ verified_claims.json๋ง ๊ทผ๊ฑฐ๋ก ํ๋ค.
Phase 7: Output & Packaging (์ฐ์ถยทํจํค์ง)
- ๊ฐ๋
์ฑ ์ต์ ํ ํฌ๋งท
- ์์ฝ(executive summary) ํฌํจ
- ์ ์ bibliography ์์ฑ
- ์์ฒญ ํ์์ผ๋ก export
- (์ ํ) ์ธํฐ๋ํฐ๋ธ ์น์ฌ์ดํธ ์์ฑ
๋ง๊ฐ ์๊ธฐ๊ฒ์ฆ (ํ์ โ ์ธก์ )
๋ณด๊ณ ์๋ฅผ ๋ค ์ด ๋ค ํ๊ฐ ์ฑ์ ๊ธฐ๋ฅผ ๋๋ ค ๋ณธ๋ฌธ์ด ๊ฒ์ฆ ๊ณ์ฝ์ ์ค์ ๋ก ์ง์ผฐ๋์ง ์ซ์๋ก ํ์ธํ๋ค:
python3 "$PLUGIN_ROOT/skills/insane-research-main/scripts/eval_report.py" --session "RESEARCH/{topic}_{timestamp}"
verdict: FAIL์ด๋ฉด(๋ฏธ๊ฒ์ฆ/๋ฐ๋ฐ ์ฃผ์ฅ์ด ๋ณธ๋ฌธ์ ์๊ฑฐ๋ ์ธ์ฉ์ด ๋ ์ง์คํธ๋ฆฌ์ ์์) ๊ณ ์ณ์ ๋ค์ ๋๋ฆฐ๋ค โ ๊ทธ ์ํ๋ก ๋ง๊ฐ ๊ธ์ง.
- ์งํ(
leak_rateยทcitation_resolution_rateยทorphan_source_rateยทverified_coverage_rate)๋ outputs/eval_report.json์ ์ ์ฅ๋๋ค. ๊ฒ์ดํธ on/off A/B๋ ํ๊ท ์ถ์ ์ ์ด๋ค.
๋ฉํฐ ์์ค ๋ฆฌ์์น ์ ๋ต
์๋ธํ ํฝยท์์คํ์
ยท๊ต์ฐจ๊ฒ์ฆ์ ๋๋ ์ปค๋ฒ๋ฆฌ์ง๋ฅผ ๋์ธ๋ค. Codex์์๋ ๋ค์์ ์์น์ผ๋ก ํ๋ค:
| ์ญํ | ์ด์ | ์ฐ์ถ |
|---|
| ์น ๋ฆฌ์์น | ํ์ฌ ์ ๋ณดยทํธ๋ ๋ยท๋ด์ค | ์ถ์ฒ URL ํฌํจ ๊ตฌ์กฐํ ์์ฝ |
| ํ์ /๊ธฐ์ | ๋
ผ๋ฌธยท์คํยท๋ฐฉ๋ฒ๋ก | ์ธ์ฉ ํฌํจ ๊ธฐ์ ๋ถ์ |
| ๊ต์ฐจ๊ฒ์ฆ | ํฉํธ์ฒดํฌยท๊ฒ์ฆ | ํต์ฌ ๋ฐ๊ฒฌ์ confidence ๋ฑ๊ธ |
๊ธฐ๋ณธ์ ๋ฉ์ธ ์ค๋ ๋ ์์ฐจ ์คํ์ด๋ค. ์ฌ์ฉ์๊ฐ ๋ช
์์ ์ผ๋ก ๋ณ๋ ฌ/ํ ๋ฆฌ์์น๋ฅผ ์์ฒญํ ๋๋ง Codex ์๋ธ์์ด์ ํธ๋ฅผ ์ฐ๊ณ , ๊ฐ ์์ ์๋ธํ ํฝ์ ๋ฒ์๋ฅผ ์ข๊ฒ ๋ฌถ๋๋ค. ์์ด์ ํธ ํ๋กฌํํธ ํ
ํ๋ฆฟ๊ณผ Graph of Thoughts ํตํฉ:
$PLUGIN_ROOT/skills/insane-research-main/references/agent_prompts.md
โ ๏ธ Rate-Limit & Reliability Guard (ํ์)
- ๋์ ํฌ์์ throttle โ ํ ๋ฒ์ ๋ค์ ์์ด์ ํธ(๋๋ ๋ค์ ๋ณ๋ ฌ ๊ฒ์ฆ ํธ์ถ)๋ฅผ ๋์ ์คํํ๋ฉด ๊ตฌ๋
ํ๋ ์๋ฒ์ธก rate-limit์ ๊ฑธ๋ ค ๋ฌด๋๊ธฐ ์คํจํ๋ค. ๋ณ๋ ฌ์ ์ฐ๋๋ผ๋ ์ต๋ 2~3๊ฐ์ฉ ์์ฐจ ๋ฐฐ์น๋ก ์คํํ๊ณ ํ ๋ฐฐ์น ์๋ฃ ํ ๋ค์ ๋ฐฐ์น๋ฅผ ๋์ด๋ค. ๊ต์ฐจ๊ฒ์ฆยทfact-check์ฒ๋ผ ํธ์ถ ์๊ฐ ๋ง์ ๋จ๊ณ๋ ํนํ ์์ฐจ๋ก ์ฒ๋ฆฌํ๋ค.
- ๋ฐฑ๊ทธ๋ผ์ด๋ silent death ํํผ โ ๋ฐฑ๊ทธ๋ผ์ด๋๋ก ๋์ด ์์ด์ ํธ๋ rate-limitยท์ธ์
๋ถํ์์ ์๋ฆผ ์์ด ์ฃฝ์ด ๋ฌด์ฐ์ถ์ด ๋ ์ ์๋ค. ๋ฐฑ๊ทธ๋ผ์ด๋๋ฅผ ์ด ๋ค์๋ ์ฐ์ถ๋ฌผ/ํธ๋์คํฌ๋ฆฝํธ๋ก ์์กด์ ํ์ธํ๊ณ , ์ฃฝ์๊ฑฐ๋ ๋ถํ์คํ๋ฉด ๋ฉ์ธ ์ค๋ ๋์์ ์์ฐจ๋ก ์ง์ ๊ฒ์ํ๋ ํด๋ฐฑ์ผ๋ก ์ ํํ๋ค. ์์ ์ฑ์ด ์ค์ํ๋ฉด ์ฒ์๋ถํฐ ํฌ๊ทธ๋ผ์ด๋/๋ฉ์ธ์ค๋ ๋ ์์ฐจ๋ฅผ ์ฐ์ ํ๋ค.
๋๊ตฌ ์ฌ์ฉ
๊ธฐ๋ณธ ๋๊ตฌ(์น ๊ฒ์, ๋ธ๋ผ์ฐ์ง, curl/gh ๋ฑ ์
ธ)๋ก ๋ฆฌ์์น๋ฅผ ์ํํ๋ค. ํ๋ซํผ๋ณ ์ต์ ์ ๊ทผ๋ฒ์ tool_strategy.md๋ฅผ ์ฐธ์กฐํ๋ค. ํ๊ฒฝ์ MCP ๋๊ตฌ(Perplexity, Firecrawl, Exa, ๋ธ๋ผ์ฐ์ ๋ฑ)๊ฐ ์ค์น๋ผ ์์ผ๋ฉด ์ฐ์ ํ์ฉํ๋, ์์ด๋ ๊ธฐ๋ณธ ๋๊ตฌ๋ง์ผ๋ก ์ถฉ๋ถํ๋ค.
ํฐ run_in_background ํฌ์์์ ํผํ๋ค โ rate-limit์ ๊ฑธ๋ฆฌ๊ณ ๋ฐฑ๊ทธ๋ผ์ด๋ ์์ด์ ํธ๊ฐ ์กฐ์ฉํ ์ฃฝ์ ์ ์์ผ๋ฏ๋ก, ์ ๋ขฐ์ฑ์ด ์ค์ํ๋ฉด ํฌ๊ทธ๋ผ์ด๋/๋ฉ์ธ์ค๋ ๋ ์์ฐจ๋ฅผ ์ฐ์ ํ๋ค. ์์ธ ์ ๋ตยท์์:
$PLUGIN_ROOT/skills/insane-research-main/references/tool_strategy.md
์ธ์ฉ ์๊ฑด
๋ชจ๋ ์ฌ์ค ์ฃผ์ฅ์ ์ธ๋ผ์ธ ์ธ์ฉ์ ํฌํจํ๋ค.
ํ์ ํ์ค
- Author/Organization โ ๋๊ฐ ์ฃผ์ฅํ๋์ง
- Date โ ๋ฐํ ์์
- Source Title โ ๋
ผ๋ฌธยท๊ธฐ์ฌยท๋ฆฌํฌํธ ์ด๋ฆ
- URL/DOI โ ๊ฒ์ฆ์ฉ ์ง์ ๋งํฌ
- Page Numbers โ ๊ธด ๋ฌธ์์ผ ๋(ํด๋น ์)
์์ค ํ์ง ๋ฑ๊ธ
| ๋ฑ๊ธ | ์ค๋ช
| ์์ |
|---|
| A | ํผ์ด๋ฆฌ๋ทฐยท์ฒด๊ณ์ ๋ฆฌ๋ทฐยท๋ฉํ๋ถ์ | Nature, Lancet, IEEE |
| B | ๊ณต์ ๋ฌธ์ยท์์ ๊ฐ์ด๋ยท์ฝํธํธ ์ฐ๊ตฌ | FDA, W3C, WHO |
| C | ์ ๋ฌธ๊ฐ ์๊ฒฌยท์ฌ๋ก ๋ณด๊ณ ยท์ฐ์
๋ฆฌํฌํธ | Gartner, ์ปจํผ๋ฐ์ค |
| D | ์๋น ์ฐ๊ตฌยทํ๋ฆฌํ๋ฆฐํธยท๋ฐฑ์ | arXiv, ํ์ฌ ๋ธ๋ก๊ทธ |
| E | ์ผํ์ ยท์ด๋ก ์ ยท์ถ์ธก์ฑ | ์์
๋ฏธ๋์ด, ํฌ๋ผ |
Red Flags (์ ๋ขฐ ๋ถ๊ฐ ์์ค)
์ ์ ๋ฏธ์ / ๋ฐํ์ผ ๋๋ฝ / ๊นจ์ง๊ฑฐ๋ ์์ฌ์ค๋ฌ์ด URL / ๋ฐ์ดํฐ ์๋ ์ฃผ์ฅ / ๋ฏธ๊ณต๊ฐ ์ดํด์์ถฉ / ์ฝํ์ ์ ๋ / ์ฒ ํ๋ ๋
ผ๋ฌธ.
์์ธ ์ธ์ฉ ๊ท์น: $PLUGIN_ROOT/skills/insane-research-main/references/citation_rules.md
์์ค ํ์ง ๋ฃจ๋ธ๋ฆญ: $PLUGIN_ROOT/skills/insane-research-main/references/quality_rubric.md
ํ๊ฐ ๋ฐฉ์ง
- ๋ชจ๋ ์ง์ ์ ์์ค์ grounding โ ๊ฒ์ฆ ๊ฐ๋ฅํ ์์ค ์์ด ๋จ์ ๊ธ์ง. ๋ถํ์คํ๋ฉด ์ถ์ธก ๋์ "Source needed".
- ํต์ฌ ์ฃผ์ฅ์ Chain-of-Verification โ ๊ฒ์ฆ ์ง๋ฌธ ์์ฑ โ ๋
๋ฆฝ ๊ฒ์ โ ๊ฒ์ฆ ํ์๋ง ํ์ .
- ๋ค์ค ์์ค ๊ต์ฐจ์ฐธ์กฐ โ ํต์ฌ ๋ฐ๊ฒฌ์ 2๊ฐ ์ด์ ๋
๋ฆฝ ์์ค. ์์ค๊ฐ ์ถฉ๋ํ๋ฉด ๋ช
์.
- ๋ถํ์ค์ฑ ๋ช
์ โ "Studies show..." ๋์ "According to [source]...". ์๋น/๋
ผ์์ ๋ฐ๊ฒฌ์ ํ์ .
๊ฒ์ฆ ์ฒดํฌ๋ฆฌ์คํธ
์ํ ๊ด๋ฆฌ
state.json ์คํค๋ง
{
"session_id": "Topic_Name_20260224_143000",
"topic": "Research Topic",
"created_at": "2026-02-24T14:30:00Z",
"updated_at": "2026-02-24T15:45:00Z",
"status": "PHASE_3_QUERYING",
"current_phase": 3,
"requirements": {
"focus": ["aspect1", "aspect2"],
"output_format": "comprehensive_report",
"scope": {"timeframe": {}, "geography": {}},
"sources": {"required_types"
sources.jsonl ์คํค๋ง (ํ ์ค๋น JSON ํ๋)
{"id": "src_001", "url": "https://...", "title": "Article Title", "author": "Author", "date": "2024-06-15", "domain": "nature.com", "type": "academic", "quality_rating": "A", "snippet": "relevant excerpt...", "claims": ["claim1"], "verified": true}
ํ์ด์ฆ ์
์ถ๋ ฅ ๊ณ์ฝ: $PLUGIN_ROOT/skills/insane-research-main/references/phase_contracts.md
์ฐ์ถ ๊ตฌ์กฐ
RESEARCH/{topic}_{timestamp}/
โโโ state.json # ์ธ์
์ํ (์ฌ๊ฐ ๊ฐ๋ฅ)
โโโ README.md # ๋ค๋น๊ฒ์ด์
๊ฐ์ด๋
โโโ artifacts/ # ์ค๊ฐ ์ฐ์ถ๋ฌผ
โ โโโ research_plan.json
โ โโโ agent_results/
โ โโโ drafts/
โโโ sources/
โ โโโ sources.jsonl # ์์ง ์์ค ์ ์ฒด
โ โโโ bibliography.md # ์ ๋ฆฌ๋ ์ธ์ฉ
โ โโโ quality_report.md # ์์ค ํ์ง ๋ฑ๊ธ
โโโ outputs/ # ์ต์ข
์ฐ์ถ๋ฌผ
โ โโโ 00_executive_summary.md
โ โโโ 01_full_report/
โ โ โโโ 01_introduction.md
โ โ โโโ 02_current_landscape.md
โ โ โโโ 03_challenges.md
โ โ โโโ 04_future_outlook.md
โ โ โโโ 05_conclusions.md
โ โโโ 02_appendices/
โ โโโ comparison_data.json
โโโ website/ # (์ ํ) ๋น์ฃผ์ผ ํ๋ ์ ํ
์ด์
โโโ index.html
โโโ styles.css
โโโ script.js
์ถ๋ ฅ ํ
ํ๋ฆฟ
์ผ๊ด๋ ํฌ๋งท์ ์ํด $PLUGIN_ROOT/skills/insane-research-main/assets/templates/์ ํ
ํ๋ฆฟ์ ์ฌ์ฉํ๋ค:
| ํ
ํ๋ฆฟ | ์ฉ๋ |
|---|
executive_summary.md | ์์ฝ ๊ตฌ์กฐ |
full_report_section.md | ๊ฐ๋ณ ๋ฆฌํฌํธ ์น์
ํ
ํ๋ฆฟ |
bibliography.md | ํ์ง ๋ถํฌ ํฌํจ bibliography |
readme_research.md | ๋ฆฌ์์น ์ธ์
README/๋ค๋น๊ฒ์ด์
|
website_template.html | ์ธํฐ๋ํฐ๋ธ ์น ํ๋ ์ ํ
์ด์
|
Research Type ๊ธฐ๋ฐ ๊ณจ๊ฒฉ ๋์ ์์ฑ (์ฐธ๊ณ ์ฉ โ ๊ธฐ๋ณธ 5์น์
์ ์ง)
๊ธฐ๋ณธ 5์น์
๊ณจ๊ฒฉ(introduction/landscape/challenges/future_outlook/conclusions)์ด ๋ชจ๋ ๋ฆฌ์์น์ default. ์ฌ์ฉ์๊ฐ ๋ช
์์ ์ผ๋ก ๋ค๋ฅธ type์ ์์ฒญํ ๊ฒฝ์ฐ์๋ง, ์๋ ์ฐธ๊ณ ์์ ํจํด์ ๋ณด๊ณ ์ฌ์ฉ์ ๋ฆฌ์์น์ ๋ง๊ฒ ๊ณจ๊ฒฉ์ ์ฆ์ ๋์ ์์ฑํ๋ค.
์ฃผ์: ๊ธฐ๋ณธ 7-Phase + 5์น์
+ Date-aware๋ ๋ชจ๋ insane-research์ ํต์ฌ contract๋ก ๋ณด์กด. type๋ณ ๊ณจ๊ฒฉ์ ์ฌ์ฉ์ ๋ช
์ ์์ฒญ ์์๋ง ์ ์ฉ๋๋ advanced ์ต์
์ด๋ฉฐ, ํ๋ ๋ฉ๋ด๊ฐ ์๋๋ผ ๋์ ์์ฑ ํ์ต์ฉ ์์๋ค.
์ฐธ๊ณ ์์ (๋ฉ๋ด ์๋ โ ํจํด ํ์ต์ฉ)
| Research Type | 5์น์
ํจํด ์์ | ์ ํฉ ์ฌ๋ก |
|---|
| Exploratory (์ ์์ญ ํ์) | introduction / landscape / opportunities / challenges / conclusions | ์ ๊ท ์์ฅ/๊ธฐ์ ํ์ |
| Comparative (A vs B ๋น๊ต) | introduction / criteria / comparison_matrix / recommendation / conclusions | ๋๊ตฌ/์ ํ ๋น๊ต |
| Predictive (๋ฏธ๋ ์๋๋ฆฌ์ค) | introduction / current_state / trends / scenarios / risks_and_recommendations | ์์ฅ ์์ธก / ๊ธฐ์ ๋ก๋๋งต |
| Analytical (์์ธ-๊ฒฐ๊ณผ) | introduction / problem / causes / effects / conclusions | ์ฌ๊ฑด ๋ถ์ / ์ธ๊ณผ ์ถ์ |
| ๊ธฐ๋ณธ (Generic) | introduction / current_landscape / challenges / future_outlook / conclusions | ์ข
ํฉ ๋ฆฌ์์น (default) |
์ ์ฉ ์ ์ฐจ
- Phase 1์์ ์ฌ์ฉ์ ์์ฐ์ด๋ก๋ถํฐ ๋ฆฌ์์น type ์ถ์ (๊ฐ์ฅ ๊ฐ๊น์ด ํจํด)
- ์์ ํจํด์ ํ์ต ํ, ์ฌ์ฉ์ ์ฃผ์ ์ ๋ง์ถฐ 5 ์น์
๋ช
์ ๋์ ์์ฑ (์น์
๋ช
๊ทธ๋๋ก ์นดํผ ๊ธ์ง)
- ์ฌ์ฉ์์๊ฒ confirm (ยงA ๋ฒํธ ๋ธ๋ก): "์ด ๋ฆฌ์์น๋ [Comparative] ํจํด์ ๊ฐ๊น์ ๋ณด์
๋๋ค โ 5์น์
์ [introduction / X ๋น๊ต ๊ธฐ์ค / X vs Y ๋น๊ต / ์ถ์ฒ / ๊ฒฐ๋ก ]์ผ๋ก ๊ฐ๊น์, ๊ธฐ๋ณธ 5์น์
์ผ๋ก ๊ฐ๊น์?"
- confirm โ ๋์ ๊ณจ๊ฒฉ ์ฌ์ฉ / ๋ฏธ๋ช
์ยท๋ชจํธ โ ๊ธฐ๋ณธ 5์น์
(์์ default)
- state.json
report_skeleton ํ๋์ ์ต์ข
๊ณจ๊ฒฉ ๊ธฐ๋ก (resume ๊ฐ๋ฅ)
โ ๏ธ ์ฃผ์
- type ์๋ ๊ฒฐ์ ๊ธ์ง โ ์ฌ์ฉ์ confirm ํ์
- ํ๋ ์นดํ๋ก๊ทธ๊ฐ ์๋ ํจํด ์์์ง โ ์ type ์ฌ๋ก๋ฅผ ํ์ ์ถ๊ฐํ์ง ๋ง ๊ฒ
- 7-Phase / minimum 2 sources / A-E quality / Hallucination Prevention ๋ฑ contract๋ ๋ชจ๋ ๊ทธ๋๋ก ์ ์ง
๊ตฌ์กฐํ ์ฟผ๋ฆฌ ์ง์
์ ๋ฐ ์ ์ด๋ฅผ ์ํด ๋ค์ ์คํค๋ง๋ฅผ ๋ฐ๋ฅด๋ ๊ตฌ์กฐํ JSON ์ฟผ๋ฆฌ๋ฅผ ๋ฐ๋๋ค:
$PLUGIN_ROOT/skills/insane-research-main/references/query_schema.json
์ฌ์ฉ์๊ฐ JSON ๊ฐ์ฒด๋ฅผ ์
๋ ฅ์ผ๋ก ์ ๊ณตํ๋ฉด ์คํค๋ง๋๋ก ํ์ฑํ๊ณ Phase 1(Question Scoping)์ ๊ฑด๋๋ด๋ค(์๊ฑด์ด ์ด๋ฏธ ์ ์๋จ). ์์ ์ฟผ๋ฆฌ:
$PLUGIN_ROOT/skills/insane-research-main/examples/
Resume ํ๋กํ ์ฝ
resume ํธ๋ฆฌ๊ฑฐ ์:
- ๊ฐ์ฉ ์ธ์
๋์ด:
RESEARCH/*/state.json
- ์ ํ ์ธ์
์
state.json ๋ก๋
progress ๊ฐ์ฒด์์ ๋ง์ง๋ง ์๋ฃ ํ์ด์ฆ ํ์ธ
- ๋ค์ pending ํ์ด์ฆ๋ถํฐ ์ฌ๊ฐ
- ์คํ ๋ฃจํ ๊ณ์
for phase_num in range(1, 8):
phase_key = f"phase_{phase_num}"
if state["progress"][phase_key] == "in_progress":
resume_phase(phase_num); break
elif state["progress"][phase_key] == "pending":
start_phase(phase_num); break
์๋ฌ ์ฒ๋ฆฌ
ํ์ด์ฆ ์คํจ
state.json errors ๋ฐฐ์ด์ ์๋ฌ ๋ก๊น
- progress์์ ํ์ด์ฆ๋ฅผ
failed๋ก ํ์
- ์ฌ์ฉ์์๊ฒ ์์ธ ํต์ง
- ์ ์: Retry / Skip / Abort
๋คํธ์ํฌ ์คํจ
- ๋ฐฑ์คํ์ ํจ๊ป ์ต๋ 3ํ ์ฌ์๋
- ์ฌ์ ํ ์คํจ โ
tool_strategy.md์ "์ ๊ทผ ๋ถ๊ฐ ์ ์ฐํ ์ ๋ต(Fallback)" ์ฐธ์กฐ (๋ชจ๋ฐ์ผ UA curl โ OGP ๋ฉํํ๊ทธ โ Google ์บ์/Wayback โ curl_cffi โ ๋ธ๋ผ์ฐ์ )
- ์๋ต ๊ฒ์ฆ ๊ท์น์ผ๋ก ์ฑ๊ณต/์คํจ ํ์ (๋ก๊ทธ์ธ ํ์ด์งยทCAPTCHAยท๋น SPA ๊ฐ์ง)
- ์คํจ URL + fallback ๊ฒฐ๊ณผ๋ฅผ
sources/failed_urls.txt์ ๋ก๊น
- ๊ฐ์ฉ ์์ค(์ฐํ ํ์ ์ฝํ
์ธ ํฌํจ)๋ก ๊ณ์ ์งํ
ํ ํฐ ํ๊ณ
- ๊ธด ๋ฌธ์๋ ์ฒญํฌ ๋ถํ / ์ค๊ฐ ๊ฒฐ๊ณผ ์์ฃผ ์ ์ฅ / ๋งค์ฐ ๊ธด ์์ค๋ ์์ฝ
์๋ฃ ์ ํ์ง ์ฒดํฌ๋ฆฌ์คํธ
์คํฌ๋ฆฝํธ์ ์ ํธ๋ฆฌํฐ
์คํฌ๋ฆฝํธ: $PLUGIN_ROOT/skills/insane-research-main/scripts/
| ์คํฌ๋ฆฝํธ | ์ฉ๋ | ๊ถ์ |
|---|
validate_ledger.py | ๊ฒ์ฆ ๊ฒ์ดํธ (ํ์). claim_ledger + sources๋ฅผ ์ฝ์ด status๋ฅผ ๊ฒฐ์ ๋ก ์ ์ผ๋ก ๊ณ์ฐ, verified_claims.json ์์ฐ, state.json์ ์๋ช
๊ธฐ๋ก | authoritative โ Phase 5/7 ์ง์
๊ฒ์ดํธ |
eval_report.py | ํ๊ฐ ์ฑ์ ๊ธฐ (ํ์). ๋ณธ๋ฌธ์ด ๊ฒ์ฆ ๊ณ์ฝ์ ์ง์ผฐ๋์ง ์ธก์ โ leak/citation-resolution/orphan/coverage 4์งํ, eval_report.json ์์ฐ | authoritative โ Phase 7 ๋ง๊ฐ ์๊ธฐ๊ฒ์ฆ |
orchestrator.py | ์ธ์
ํด๋/state.json ์์ฑยท์์ค append ๋ฑ ์ํ ํฌํผ. ๋ด๋ถ phase ์ ์ด ๋ก์ง์ ๊ถ์๊ฐ ์๋ค(SKILL.md ํ๋ฆ์ด ์ค์ผ์คํธ๋ ์ด์
) | helper (์ ์ ์์ฐ) |
pipelines.py | ์์ด์ ํธ ํ๋กฌํํธ ํ
ํ๋ฆฟยทclarificationยทsynthesis ํ๋กฌํํธ ์ ์ ์์ฐ | helper (์ ์ ์์ฐ) |
์ค์ผ์คํธ๋ ์ด์
์ ํ๋กฌํํธ(์ด SKILL.md)๊ฐ, ๊ฒ์ฆ์ ์ฝ๋(validate_ledger.py)๊ฐ ๋ด๋นํ๋ค. orchestrator.py/pipelines.py์ state-machineยทplan ์คํ
์ ์ฐธ๊ณ ์ฉ ํฌํผ์ผ ๋ฟ ์คํ ๊ถ์๊ฐ ์์ผ๋, ๊ฒ์ฆ/ํฉ์ฑ ๊ฒ์ดํธ๋ ๋ฐ๋์ validate_ledger.py๋ก ๊ฐ์ ํ๋ค.
References
| ๋ ํผ๋ฐ์ค | ์์น |
|---|
| ์ธ์ฉ ํฌ๋งท ๊ท์น | $PLUGIN_ROOT/skills/insane-research-main/references/citation_rules.md |
| ํ์ด์ฆ ์
์ถ๋ ฅ ๊ณ์ฝ | $PLUGIN_ROOT/skills/insane-research-main/references/phase_contracts.md |
| ์์ค ํ์ง ๋ฃจ๋ธ๋ฆญ | $PLUGIN_ROOT/skills/insane-research-main/references/quality_rubric.md |
| ์์ด์ ํธ ํ๋กฌํํธ ํ
ํ๋ฆฟ & GoT | $PLUGIN_ROOT/skills/insane-research-main/references/agent_prompts.md |
| ๋๊ตฌ ์ ๋ต & ์ฝ๋ ์์ | $PLUGIN_ROOT/skills/insane-research-main/references/tool_strategy.md |
| ๊ตฌ์กฐํ ์ฟผ๋ฆฌ ์คํค๋ง | $PLUGIN_ROOT/skills/insane-research-main/references/query_schema.json |
| ์ฟผ๋ฆฌ ์์ฑ ๊ฐ์ด๋ | $PLUGIN_ROOT/skills/insane-research-main/references/query_generator.md |