Files
llm-wiki/docs/superpowers/plans/2026-06-05-investment-wiki-pipeline.md
T

37 KiB

투자 자료·전략 파이프라인 구현 계획 (Implementation Plan)

For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (- [ ]) syntax for tracking.

⚠️ 커밋 정책 (사용자 요청): 자동 커밋 비활성화. 각 Task의 "Stage" 스텝은 git add(스테이징)까지만 수행하고, 실제 git commit은 사용자가 일괄 수행한다. 계획서의 어떤 스텝도 git commit을 자동 실행하지 않는다.

Goal: 개발과 무관한 개인 투자(현 자본 60만원) 운용을 위해, 기존 raw → wiki canonical 파이프라인을 별도 invest-* 폴더·6개 Claude 전용 명령으로 복제하고, 출처 검증을 마친 전략 규칙을 seed한다.

Architecture: raw(증거: invest-daily/research/ledger) → wiki canonical(invest-concepts/strategy/plan). 명령은 /invest-daily · research · ingest · plan · decide · review 6종(Claude Code 전용, 3-플랫폼 sync 안 함). 구조 린터는 templates/ 를 자동 인덱싱하므로 새 템플릿 생성만으로 적합성 검사가 활성화됨(Python 훅 수정 불필요).

Tech Stack: Markdown + YAML frontmatter (Obsidian), Python 구조 린터(wiki_structure_lint.py, 기존), deep-research 스킬 호출.

근거 SSOT: 설계 문서 docs/superpowers/specs/2026-06-05-investment-wiki-pipeline-design.md (특히 §4 전략 확정본, §7 검증 근거표).


검증 방법 (이 plan의 "테스트")

코드가 아니라 문서 시스템이므로 각 Task의 검증은 다음 중 해당하는 것을 사용한다:

  • 구조 린트: python3 .claude/hooks/wiki_structure_lint.py --file <경로>PASS 기대 (또는 FAIL 메시지 확인).
  • frontmatter 확인: 파일 상단 source_type 등 필수 키 존재.
  • 링크 검증: python3 .claude/hooks/wiki_structure_lint.py --file <경로>의 C2(broken wikilink) 항목 0건.
  • self-grep: verbatim 인용이 원문과 일치하는지 raw 문서에서 grep.

린터 사용법은 파일 상단 docstring 참조(--file 단일, 인자 없으면 vault 전체). 새 source_type을 가진 템플릿을 만들면 build_template_index가 자동 인덱싱한다.


File Structure (생성/수정 맵)

생성 (디렉터리): raw/invest-daily/, raw/invest-research/, raw/invest-ledger/, wiki/invest-concepts/, wiki/invest-strategy/, wiki/invest-plan/, wiki/invest/

생성 (템플릿 6): templates/invest-{daily,research,ledger,concept,strategy,plan}-template.md

생성 (명령 6): .claude/commands/invest-{daily,research,ingest,plan,decide,review}.md

생성 (허브+seed): wiki/invest/invest-hub.md, raw/invest-research/2026-06-05-passive-vs-active-diversification.md 외 검증 근거 아카이브, wiki/invest-strategy/strategy.md

수정: CLAUDE.md(§4 source_type, §5 신뢰도, 3-플랫폼 예외 표기), rules/tag-taxonomy.md(invest 어휘), wiki/llm-wiki.md(MOC 등록), .claude/commands/lint.md(invest 의미 검사 항목)


Phase A — Foundation (폴더 + 메타 등록)

Task 1: 디렉터리 구조 생성

Files:

  • Create: 7개 디렉터리 + 각 .gitkeep (빈 디렉터리는 git이 추적 안 함)

  • Step 1: 디렉터리와 .gitkeep 생성

Run:

cd /home/donghyeon/dev/llm-wiki-private
for d in raw/invest-daily raw/invest-research raw/invest-ledger wiki/invest-concepts wiki/invest-strategy wiki/invest-plan wiki/invest; do
  mkdir -p "$d" && touch "$d/.gitkeep"
done
  • Step 2: 생성 확인

Run: ls -d raw/invest-* wiki/invest* Expected: 7개 경로 모두 출력.

  • Step 3: Stage

Run: git add raw/invest-*/.gitkeep wiki/invest*/.gitkeep


Task 2: CLAUDE.md 메타 등록 (source_type 어휘 + 신뢰도 + 3-플랫폼 예외)

Files:

  • Modify: CLAUDE.md (§4 source_type 목록, §5 신뢰도 표, 자동화 서술의 3-플랫폼 예외)

  • Step 1: §4 source_type 허용 어휘에 6종 추가

CLAUDE.md §4의 source_type 허용 어휘 문단 끝에 다음 문장을 추가:

**투자 도메인 source_type (Claude 전용 파이프라인):** `invest-daily`(raw/invest-daily/), `invest-research`(raw/invest-research/), `invest-ledger`(raw/invest-ledger/), `invest-concept`(wiki/invest-concepts/), `invest-strategy`(wiki/invest-strategy/), `invest-plan`(wiki/invest-plan/). 각 카테고리명을 그대로 source_type 으로 사용. 개인 투자 관리용이며 개발 프로젝트와 분리된 트리.

또한 frontmatter 표준 코드블록의 source_type: 줄 enum에 | invest-daily | invest-research | invest-ledger | invest-concept | invest-strategy | invest-plan을 끝에 추가.

  • Step 2: §5 신뢰도 표에 행 추가

CLAUDE.md §5 출처 신뢰도 표(| source_type | 취급 방식 |)의 llm-generated 행 위에 추가:

| `invest-daily` | 그날의 거시 자금흐름 조사. **수치마다 출처+조사시점 필수**. 영구 보관, `/invest-ingest`로 검증분만 추출 |
| `invest-research` | 특정 분야/자산 심층 조사. verbatim 인용 보존. canonical 정제 전 증거 |
| `invest-ledger` | 실제 매매 기록(사실). 영구 보관. wiki로 옮기지 않음 |
| `invest-concept` | wiki/invest-concepts canonical 투자 개념 |
| `invest-strategy` | wiki/invest-strategy canonical 전략 규칙. **면허 자문 아님 고지 필수** |
| `invest-plan` | wiki/invest-plan canonical 활성 투자 계획 |
  • Step 3: 3-플랫폼 서술에 Claude 전용 예외 표기

CLAUDE.md에서 "3-플랫폼 패리티 예외"를 언급하는 부분(project-readiness-auditor / /project·/project-spec 서술 근처)에 한 문장 추가:

**투자 파이프라인(`/invest-*` 6개 명령 + invest 템플릿)도 Claude Code 전용 — Codex/Antigravity 포팅 대상 아님** (개인 투자 관리용, `/project` 파이프라인과 동일한 3-플랫폼 예외).
  • Step 4: 검증

Run: grep -n "invest-daily\|invest-strategy\|invest-ledger" CLAUDE.md Expected: §4·§5·예외 표기에서 다수 매칭.

  • Step 5: Stage

Run: git add CLAUDE.md


Task 3: tag-taxonomy.md 에 invest 어휘 추가

Files:

  • Modify: rules/tag-taxonomy.md (L1 Type, L2 Project, L3 Domain, L5 Concept + 권장 조합 표)

  • Step 1: 계층별 어휘 추가

rules/tag-taxonomy.md §1 표에서:

  • L1 Type 예시 끝에 추가: invest-daily, invest-research, invest-ledger, invest-concept, invest-strategy, invest-plan

  • L2 Project 예시 끝에 추가: personal-invest

  • L3 Domain 예시 끝에 추가: finance, macro, tax-account

  • L5 Concept 예시 끝에 추가: etf, index-fund, diversification, asset-allocation, position-sizing, behavior-gap, dollar-cost-averaging, stop-loss, isa-account, pension-account

  • Step 2: §2 권장 조합 표에 행 추가

| concept (wiki) | 행 아래에 추가:

| invest-daily | `invest-daily` | `personal-invest` | `finance`/`macro` | 0~2 | 0~2 |
| invest-research | `invest-research` | `personal-invest` | `finance` 1~2 | 0~1 | 1~2 |
| invest-strategy | `invest-strategy` | `personal-invest` | `finance` 1 | 0~1 | 1~2 |
  • Step 3: 검증

Run: grep -n "personal-invest\|asset-allocation\|tax-account" rules/tag-taxonomy.md Expected: §1·§2에서 매칭.

  • Step 4: Stage

Run: git add rules/tag-taxonomy.md


Phase B — 템플릿 6종

각 템플릿은 concrete source_type(파이프 없음)을 선언해야 린터가 인덱싱한다. 필수 섹션 = 템플릿의 (선택)이 없는 ## 헤더. (선택)이 붙은 헤더는 is_optional()이 면제.

Task 4: invest-daily-template.md

Files:

  • Create: templates/invest-daily-template.md

  • Step 1: 파일 작성

---
title: YYYY-MM-DD 투자 일일 조사
source_type: invest-daily
status: raw
confidence: unknown
tags: [invest-daily, personal-invest, macro]
date: YYYY-MM-DD
last_reviewed: YYYY-MM-DD
---

# YYYY-MM-DD 투자 일일 조사

> Layer: `raw/invest-daily/` — 그날의 거시 자금흐름 조사. **수치마다 출처 링크 + 조사 시점 필수**(실시간 아님). `/invest-ingest`가 검증 가능한 항목만 `wiki/invest-concepts/`로 추출. 원본은 raw에 영구 보관.

## Parent

> 이 노트가 속한 cluster 루트로 upward link (linking-rules).

- `[[wiki/invest/invest-hub]]`

## 고정 체크리스트 (매일 동일)

> 각 항목은 **수치 + 방향(↑/↓) + 출처 + 조사시점**. 모르면 비우되 추측 금지.

| 자산군 | 핵심 지표 | 값 / 방향 | 출처 | 조사시점 |
|---|---|---|---|---|
| 금리 | 미 10Y / 한 기준금리 | | | |
| 환율 | USD/KRW | | | |
| 원자재 | WTI / 금 | | | |
| 주요지수 | S&P500 / KOSPI / 나스닥 | | | |
| 코인 | BTC / ETH | | | |

## 오늘의 이슈 (가변)

> 그날 가장 큰 움직임·뉴스. 각 항목 출처 링크 필수.

- 이슈 1 — <한 줄> ([출처](url), 조사 YYYY-MM-DD)

## 관찰·가설 (미검증)

> 내 해석. **검증 전이므로 사실 아님.** canonical로 옮기기 전 `/invest-research`로 확인 대상.

- 가설 1:

## Promotable 후보

> `/invest-ingest`로 `wiki/invest-concepts/` 또는 `invest-strategy/`에 올릴 만한 것만 표기.

- 후보 1 (→ 어떤 canonical 문서로?)

## Related

- 어제 노트: `[[raw/invest-daily/{{어제}}]]`
  • Step 2: 린트 인덱싱 확인

Run: python3 .claude/hooks/wiki_structure_lint.py --file templates/invest-daily-template.md Expected: 템플릿 자체는 PASS 또는 템플릿 면제. (목적은 파싱 에러 없음 확인.)

  • Step 3: Stage

Run: git add templates/invest-daily-template.md


Task 5: invest-research-template.md

Files:

  • Create: templates/invest-research-template.md

  • Step 1: 파일 작성 (raw-source-template의 증거규율 차용 — verbatim 인용 + Claim 분리)

---
title:
source_type: invest-research
status: raw
confidence: unknown
url:
archive_url:
tags: [invest-research, personal-invest, finance]
created: YYYY-MM-DD
last_reviewed: YYYY-MM-DD
---

# {{title}}

> Layer: `raw/invest-research/` — 특정 분야/자산/주장에 대한 심층 조사. **외부 출처의 verbatim 인용 보존**(evidence-first-research). 검증된 결론만 `/invest-ingest`로 `wiki/invest-concepts/` 또는 `invest-strategy/`로 추출.

## Parent

- `[[wiki/invest/invest-hub]]`

## 조사 질문 / Research Question

> 무엇을 확인하려고 조사했는가 1~2줄.

## 출처 / Sources

| # | 제목 | 출처 등급 | URL | 발행/조사일 |
|---|---|---|---|---|
| S1 | | official / vendor-research / academic / media / blog(약함) | | |

## 핵심 인용 / Key quotes (verbatim)

> 원문 그대로. 출처 # 표기. 의역 금지.

> [S1] "원문 발췌 1."

## Claims Extracted / 추출된 주장

> 출처가 **직접 말하는 것만**. 내 적용 결론은 여기 쓰지 않음. Claim ID는 문서 내 안정 유지.

| Claim ID | Claim | Evidence quote | Strength | 적용 조건 | 증명 못 하는 것 |
|---|---|---|---|---|---|
| C1 | | [S1] "<인용>" | academic / official / vendor-research / media / needs-confirmation | | |

## 판정 / Verdict

> 각 Claim에 대한 KEEP / CORRECT / REJECT + 한 줄 사유.

- C1: KEEP — <사유>

## Usage Boundaries / 적용 경계

- 직접 증명하는 것:
- 증명하지 않는 것:
- 내 상황(소액·국내 거주)에 적용하려면 추가 확인할 것:

## Related

- 같은 주제 다른 조사: `[[raw/invest-research/<...>]]`
- 이 조사를 인용한 canonical: `[[wiki/invest-strategy/strategy]]` (생성 시)
  • Step 2: 검증

Run: python3 .claude/hooks/wiki_structure_lint.py --file templates/invest-research-template.md Expected: 파싱 에러 없음.

  • Step 3: Stage

Run: git add templates/invest-research-template.md


Task 6: invest-ledger-template.md (단일 원장)

Files:

  • Create: templates/invest-ledger-template.md

  • Step 1: 파일 작성

---
title: 매매 원장 / Trade Ledger
source_type: invest-ledger
status: raw
confidence: unknown
tags: [invest-ledger, personal-invest, finance]
created: YYYY-MM-DD
last_reviewed: YYYY-MM-DD
---

# 매매 원장 / Trade Ledger

> Layer: `raw/invest-ledger/` — 실제 매수/매도의 **사실 기록**. 단일 원장 파일에 모든 거래를 누적(설계 §8-3). `/invest-decide`가 행을 추가하며 `wiki/invest-strategy/`의 규칙 위반을 체크. wiki로 옮기지 않음.

## Parent

- `[[wiki/invest/invest-hub]]`

## 현재 포지션 / Open Positions

| 종목/티커 | 분류(코어/베팅) | 보유수량 | 평균단가 | 현재 비중% | 메모 |
|---|---|---|---|---|---|

## 거래 내역 / Trade Log

> 시간 역순(최신 위). 모든 행은 근거 문서 링크 필수.

| 날짜 | 매수/매도 | 종목 | 수량 | 단가 | 금액 | 계좌 | 근거(링크) | 규칙체크 |
|---|---|---|---|---|---|---|---|---|

## 규칙 위반 이력 / Rule-check Findings

> `/invest-decide`가 빨간 플래그를 낸 건 기록. 무시하고 진행했다면 그 사유도.

| 날짜 | 위반 규칙 | 내용 | 사용자 처리 |
|---|---|---|---|

## 손익 요약 / P&L Summary

> `/invest-review` 실행 시 갱신.

- 총 투입원금:
- 평가금액:
- 실현손익:
- 목표 대비:
  • Step 2: 검증

Run: python3 .claude/hooks/wiki_structure_lint.py --file templates/invest-ledger-template.md Expected: 파싱 에러 없음.

  • Step 3: Stage

Run: git add templates/invest-ledger-template.md


Task 7: invest-concept-template.md

Files:

  • Create: templates/invest-concept-template.md

  • Step 1: 파일 작성 (concept-template 차용)

---
title:
source_type: invest-concept
status: draft
confidence: unknown
tags: [invest-concept, personal-invest, finance]
last_reviewed: YYYY-MM-DD
---

# {{title}}

> Layer: `wiki/invest-concepts/` — 검증된 투자 개념(ETF·금리·환율·분산 등). 내 전략 규칙은 `wiki/invest-strategy/`, 활성 계획은 `wiki/invest-plan/`.

## Parent

- `[[wiki/invest/invest-hub]]`

## Summary

한두 문장 핵심 정의.

## Standard (기준)

공식/학술 기준의 정의. 출처는 Sources 섹션.

## 한계 / 주의점

적용 한계·흔한 오해·트레이드오프. 검증된 것만 사실로, 그 외 `needs-confirmation`.

## Claim-backed Knowledge

> 핵심 설명은 raw 증거 claim으로 뒷받침.

| Knowledge Point | Supporting Claims | Confidence | Notes |
|---|---|---|---|
| <설명> | `raw/invest-research/<slug>.md#C1` | `high`/`medium`/`low` | |

## Strategy 연결

> 이 개념이 어떤 전략 규칙으로 연결되는지 링크.

- `[[wiki/invest-strategy/strategy]]` — <어느 규칙>

## Do Not Overclaim

이 개념을 말할 때 과장 금지 지점.

## Sources

- [출처 제목](url) — 핵심
- `[[raw/invest-research/<...>]]` — 보존 원본
  • Step 2: 검증

Run: python3 .claude/hooks/wiki_structure_lint.py --file templates/invest-concept-template.md Expected: 파싱 에러 없음.

  • Step 3: Stage

Run: git add templates/invest-concept-template.md


Task 8: invest-strategy-template.md (5규칙군 + 고지)

Files:

  • Create: templates/invest-strategy-template.md

  • Step 1: 파일 작성

---
title:
source_type: invest-strategy
status: draft
confidence: unknown
tags: [invest-strategy, personal-invest, finance]
last_reviewed: YYYY-MM-DD
---

# {{title}}

> Layer: `wiki/invest-strategy/` — 내 투자 전략 규칙. `/invest-decide`가 이 문서의 고정 규칙과 매매를 대조한다.

## ⚠️ 고지 (Disclaimer)

> **면허 있는 투자자문이 아님.** Claude는 환각으로 틀릴 수 있고 손실에 책임지지 않는다. 모든 수치는 조사 시점 기준이며 본인이 출처로 교차검증한다. 이 시스템은 "규율 강제 + 리서치 보조"이지 자산관리사가 아니다.

## Parent

- `[[wiki/invest/invest-hub]]`

## 내 프로필 (규칙 기준점)

- 시작 자본:
- 목표 금액 / 기간:
- 월 추가납입:
- 최대 감내손실(MDD):
- **현재 과세소득(결정세액) 유무:** <있음/없음/미확인 — 절세계좌 규칙이 의존. 미확인 시 연금계좌 권고 보류>

## ① 포지션 크기 규칙 (자본 구간별)

| 자본 구간 | 기본 전략 | 근거 |
|---|---|---|

## ② 손절 / 익절 규칙

- 코어(광범위 ETF):
- 개별 베팅: <두면 `UNSUPPORTED_DECISION` 라벨 + "근거 아닌 재량" 명시>

## ③ 행동 가드레일

- 패닉셀 쿨다운:
- FOMO 가드:
- 거래 빈도 상한:
- 선근거 원칙:

## ④ 절세계좌 우선순위 (조건부)

- 사전 체크:
- 계좌별 한도(연도 명시):

## ⑤ 목표·금액

- (위 프로필과 연결)

## 규칙 근거 / Rule Provenance

> 각 규칙이 어느 증거에서 도출됐는지. 근거 없는 규칙은 `UNSUPPORTED_DECISION` 라벨.

| 규칙 | Supporting Claim | 판정 |
|---|---|---|

## Sources

- `[[raw/invest-research/<...>]]`
  • Step 2: 검증

Run: python3 .claude/hooks/wiki_structure_lint.py --file templates/invest-strategy-template.md Expected: 파싱 에러 없음.

  • Step 3: Stage

Run: git add templates/invest-strategy-template.md


Task 9: invest-plan-template.md

Files:

  • Create: templates/invest-plan-template.md

  • Step 1: 파일 작성

---
title:
source_type: invest-plan
status: draft
confidence: unknown
tags: [invest-plan, personal-invest, finance]
last_reviewed: YYYY-MM-DD
---

# {{title}}

> Layer: `wiki/invest-plan/` — 현재 활성 투자 계획. `wiki/invest-strategy/` 규칙 + 최근 `raw/invest-daily/` 조사에서 도출. 모든 항목은 canonical/증거 근거 링크 필수.

## Parent

- `[[wiki/invest/invest-hub]]`

## 현재 자본·목표

- 가용 자본:
- 이번 분기 목표:

## 목표 자산 배분 / Target Allocation

| 자산 | 분류(코어/베팅) | 목표 비중% | 근거(링크) |
|---|---|---|---|

## 워치리스트 / Watchlist

| 종목/티커 | 왜 후보인가 | 근거(invest-research 링크) | 진입 조건 |
|---|---|---|---|

## 실행 계획

> 무엇을, 언제, 어느 계좌에서. 전략 규칙 위반 없는지 사전 점검.

- [ ] 항목 1 — (전략 규칙 ID 충족 확인)

## 리스크·한계

- 이 계획이 틀릴 수 있는 지점:
- 말하면 안 되는 범위(검증 안 된 것):

## Sources

- `[[wiki/invest-strategy/strategy]]`
- `[[raw/invest-daily/<...>]]`
  • Step 2: 검증

Run: python3 .claude/hooks/wiki_structure_lint.py --file templates/invest-plan-template.md Expected: 파싱 에러 없음.

  • Step 3: Stage

Run: git add templates/invest-plan-template.md


Phase C — 허브 & MOC

Task 10: invest-hub named hub + llm-wiki MOC 등록

Files:

  • Create: wiki/invest/invest-hub.md

  • Modify: wiki/llm-wiki.md

  • Step 1: invest-hub.md 작성 (named hub — 형제 폴더 wiki/invest/는 비어도 무방, linking-rules §12)

---
title: 개인 투자 허브 (Personal Invest Hub)
source_type: invest-concept
status: draft
confidence: unknown
tags: [invest-concept, personal-invest, finance]
last_reviewed: 2026-06-05
---

# 개인 투자 허브 (Personal Invest Hub)

> Layer: `wiki/invest/` — 개인 투자 cluster의 named hub(루트). 개발 프로젝트와 분리된 트리. 모든 invest 문서가 이리로 upward link.

## ⚠️ 고지

면허 자문 아님. 상세는 `[[wiki/invest-strategy/strategy]]` §고지 참조.

## 파이프라인

조사(`/invest-daily`·`/invest-research`) → 변환(`/invest-ingest`) → 계획(`/invest-plan`) → 결정(`/invest-decide`) → 리뷰(`/invest-review`).

## Cluster

### 증거 (raw)
- 일일 조사: `raw/invest-daily/`
- 심층 조사: `raw/invest-research/`
- 매매 원장: `[[raw/invest-ledger/ledger]]`

### canonical (wiki)
- 개념: `wiki/invest-concepts/`
- 전략: `[[wiki/invest-strategy/strategy]]`
- 활성 계획: `wiki/invest-plan/`

## 현재 상태

- 시작 자본: 60만원
- 다음 액션: `/invest-daily`로 첫 거시 스냅샷 수집 → `/invest-plan` 초안
  • Step 2: wiki/llm-wiki.md MOC에 등록

wiki/llm-wiki.md에서 카테고리/허브를 나열하는 섹션에 한 줄 추가:

- **개인 투자 (개발과 분리)**: `[[wiki/invest/invest-hub]]` — 60만원 운용 파이프라인 (Claude 전용)
  • Step 3: 검증 (named hub 분류 + 링크)

Run: python3 .claude/hooks/wiki_structure_lint.py --file wiki/invest/invest-hub.md Expected: PASS (named-hub는 C1/C3 면제, C2 링크만). broken wikilink 0건 — 단, strategy·ledger는 아직 미생성이므로 이 Task는 broken이 날 수 있음 → Task 17·18·Phase D 이후 재검증(Task 21)에서 0건 확인.

  • Step 4: Stage

Run: git add wiki/invest/invest-hub.md wiki/llm-wiki.md


Phase D — 명령 6종 (Claude 전용)

모두 .claude/commands/에만 생성. scripts/sync_automation.py 실행하지 않음(3-플랫폼 예외). frontmatter는 description + argument-hint.

Task 11: /invest-daily

Files:

  • Create: .claude/commands/invest-daily.md

  • Step 1: 파일 작성

---
description: 오늘의 거시 자금흐름을 deep-research로 조사해 raw/invest-daily/에 기록
argument-hint: <선택: 날짜 YYYY-MM-DD, 비우면 오늘>
---

오늘(또는 지정 날짜)의 투자 일일 조사 노트를 생성합니다.

**대상 날짜:** $ARGUMENTS (비면 오늘)

## 작업 절차

1. **날짜 결정** — 인자 있으면 `YYYY-MM-DD` 검증, 없으면 오늘.
2. **파일 존재 확인**`raw/invest-daily/YYYY-MM-DD.md` 있으면 덮어쓰지 말고 경로 안내 후 종료.
3. **스캐폴딩**`templates/invest-daily-template.md` 복사, frontmatter `title`/`date`/`last_reviewed`와 본문 헤더의 날짜 치환.
4. **deep-research 호출**`deep-research` 스킬로 고정 체크리스트(미 10Y·한 기준금리·USD/KRW·WTI·금·S&P500·KOSPI·나스닥·BTC·ETH)의 현재 값/방향과 그날 주요 이슈를 조사. **각 수치에 출처 링크 + 조사시점**을 붙여 표/이슈 섹션을 채움.
5. **사용자 안내** — 경로 출력 + "관찰·가설은 미검증이니 `/invest-research`로 확인하세요."

## 규칙

- **수치마다 출처 + 조사시점 필수.** 출처 없는 단정 금지(환각 위험). 모르면 비움.
- "관찰·가설" 섹션은 미검증 표시 유지. canonical로 직접 가지 않음.
- `wiki/log.md` 기록 안 함(매일 생성, 노이즈).
  • Step 2: Stagegit add .claude/commands/invest-daily.md

Task 12: /invest-research

Files:

  • Create: .claude/commands/invest-research.md

  • Step 1: 파일 작성

---
description: 특정 분야/자산/주장을 deep-research로 심층 조사해 raw/invest-research/에 verbatim 인용과 함께 보존
argument-hint: <조사 주제 (예: "미국 배당 ETF SCHD 위험")>
---

**조사 주제:** $ARGUMENTS

## 작업 절차

1. **인자 검증** — 비면 주제 요청. 파일 슬러그는 `YYYY-MM-DD-<kebab-주제>.md` (naming-conventions).
2. **파일 존재 확인** — 있으면 덮어쓰지 말고 안내 후 종료.
3. **스캐폴딩**`templates/invest-research-template.md` 복사, frontmatter 치환.
4. **deep-research 호출** — 권위 출처(학술·공식·vendor-research) 우선, 블로그는 약함 표기. 각 출처에서 **verbatim 인용(byte-for-byte)** 추출 후 self-grep으로 원문 일치 확인(evidence-first-research). Claim 분리 + KEEP/CORRECT/REJECT 판정 채움.
5. **사용자 안내** — 경로 + "검증된 결론은 `/invest-ingest`로 canonical 추출."

## 규칙

- verbatim 인용은 의역 금지. self-grep 미통과 인용은 삭제.
- 출처 등급 명시(공식 vs 블로그). 회사/블로그 사례를 일반 법칙으로 격상 금지.
- 내 적용 결론은 raw에 쓰지 않음(canonical에서).
  • Step 2: Stagegit add .claude/commands/invest-research.md

Task 13: /invest-ingest

Files:

  • Create: .claude/commands/invest-ingest.md

  • Step 1: 파일 작성

---
description: raw/invest-* 의 검증된 항목을 wiki/invest-concepts/ 또는 invest-strategy/로 추출
argument-hint: <원본 경로 (예: raw/invest-research/2026-06-05-xxx.md)>
---

**원본:** $ARGUMENTS

## 작업 절차

1. **입력 검증** — 경로가 `raw/invest-daily/` 또는 `raw/invest-research/` 인지 확인. 아니면 거부.
2. **추출 대상 판정** — 일반 개념이면 `wiki/invest-concepts/`(`invest-concept-template`), 전략 규칙이면 `wiki/invest-strategy/strategy.md`에 규칙 추가.
3. **Claim 연결** — canonical의 모든 Knowledge Point/규칙은 raw의 `#C<n>` claim을 Supporting Claim으로 링크. 근거 없으면 `UNSUPPORTED_DECISION` 라벨.
4. **양방향 링크** — concept↔strategy, invest-hub upward link 추가.
5. **로그**`wiki/log.md`에 한 줄: `YYYY-MM-DD HH:mm /invest-ingest — <입력> → <출력>`.

## 규칙

- **출력은 wiki/invest-concepts/ 또는 invest-strategy/ 로만.** invest-plan은 `/invest-plan`이 생성.
- 검증 안 된(판정 REJECT/needs-confirmation) claim은 canonical로 올리지 않음.
- 환각 금지 — raw에 없는 사실 생성 금지.
  • Step 2: Stagegit add .claude/commands/invest-ingest.md

Task 14: /invest-plan

Files:

  • Create: .claude/commands/invest-plan.md

  • Step 1: 파일 작성

---
description: 전략 규칙 + 최근 조사로 wiki/invest-plan/active-plan.md 를 생성/갱신
argument-hint: <선택: 메모 (예: "이번 달 추가납입 10만 반영")>
---

**메모:** $ARGUMENTS

## 작업 절차

1. **전제 확인**`wiki/invest-strategy/strategy.md` 존재 + `status ≥ draft`. 없으면 "먼저 전략을 seed 하세요" 안내.
2. **입력 수집** — strategy의 프로필·규칙 + 최근 `raw/invest-daily/` 스냅샷 + `raw/invest-ledger/ledger.md` 현재 포지션.
3. **계획 산출** — 없으면 `templates/invest-plan-template.md``wiki/invest-plan/active-plan.md` 생성, 있으면 갱신. 목표 배분·워치리스트·실행계획을 채움. **모든 항목에 근거 링크**.
4. **규칙 사전 점검** — 계획이 전략 규칙(포지션 크기·절세계좌 조건)을 위반하지 않는지 확인. 위반 시 플래그.
5. **로그**`wiki/log.md` 한 줄.

## 규칙

- 모든 배분·종목은 canonical/증거 링크 필수. 근거 없는 종목 금지.
- 60만원 구간 기본값: 광범위 ETF 1~2개(전략 ① 규칙). 임의 집중 베팅은 `UNSUPPORTED_DECISION` 라벨.
  • Step 2: Stagegit add .claude/commands/invest-plan.md

Task 15: /invest-decide (규칙 강제의 심장)

Files:

  • Create: .claude/commands/invest-decide.md

  • Step 1: 파일 작성

---
description: 매매 결정을 raw/invest-ledger/ledger.md 에 기록하고 전략 규칙 위반을 강제 체크
argument-hint: <매수|매도 종목 수량 단가 (예: "매수 SCHD 2주 27.5달러")>
---

**결정:** $ARGUMENTS

## 작업 절차

1. **인자 파싱** — 매수/매도, 종목, 수량, 단가, (선택)계좌. 불명확하면 되물음.
2. **선근거 확인** — 이 매매의 근거 문서(`raw/invest-research/` 또는 `wiki/invest-plan/`) 링크를 요구. **근거 없으면 기록 거부**(전략 ③ 선근거 원칙).
3. **규칙 강제 체크**`wiki/invest-strategy/strategy.md`의 고정 규칙과 대조:
   - **포지션 크기**: 이 매매 후 한 종목 비중이 구간 규칙 초과? (60만 구간: 광범위 ETF 외 집중 베팅 경고)
   - **손절/익절**: 매도가 코어 ETF 손절이면 경고("코어는 손절 안 함" 규칙). 개별 베팅 익절이 기계적 +X%면 `UNSUPPORTED_DECISION` 환기.
   - **패닉셀 쿨다운**: 최근 24h 내 급락 보고 후 매도면 빨간 플래그 + "이유 먼저 쓰라".
   - **거래 빈도**: 이번 주 매매 횟수 > 상한이면 플래그.
   - **절세계좌**: 일반계좌 매수인데 더 유리한 계좌(ISA 등) 조건 충족 시 권고(소득·락업 조건 먼저 확인).
4. **기록**`raw/invest-ledger/ledger.md`의 "거래 내역" 행 추가, "현재 포지션" 갱신. 플래그가 있었으면 "규칙 위반 이력"에도 기록(사용자 처리 포함).
5. **결과 리포트** — 위반 0건이면 ✅, 있으면 ⚠️ 목록 + 그래도 진행할지 사용자 확인.

## 규칙

- **규칙 위반을 사용자가 무시할 수 있으나, 무시 사실을 원장에 기록**(나중 회고용).
- 근거 링크 없는 매매는 기록하지 않음.
- 면허 자문 아님 — 체크는 사용자가 정한 규칙의 기계적 대조일 뿐.
  • Step 2: Stagegit add .claude/commands/invest-decide.md

Task 16: /invest-review

Files:

  • Create: .claude/commands/invest-review.md

  • Step 1: 파일 작성

---
description: 포지션 vs 목표 vs 규칙을 점검하고 리밸런싱·stale·이탈을 플래그
argument-hint: <선택: 기간 (예: "주간")>
---

**범위:** $ARGUMENTS (비면 전체)

## 작업 절차

1. **입력**`raw/invest-ledger/ledger.md`(포지션·손익) + `wiki/invest-plan/active-plan.md`(목표) + `wiki/invest-strategy/strategy.md`(규칙).
2. **점검 항목**:
   - 목표 배분 대비 현재 비중 이탈(리밸런싱 필요?)
   - 손익 vs 목표 진척
   - 패닉셀/과다거래 이력(원장 규칙 위반 누적)
   - stale: 워치리스트 종목 근거(`raw/invest-research/`)가 오래됨(>90일)?
   - 절세계좌 활용도
3. **원장 손익 요약 갱신** — ledger "손익 요약" 섹션 업데이트.
4. **리포트** — 발견 + 권고(리밸런싱/추가조사). 권고도 근거 링크.
5. **로그**`wiki/log.md` 한 줄.

## 규칙

- 권고는 강제가 아님. 사용자 결정 보조.
- 새 사실 생성 금지 — 기존 ledger/plan/strategy/raw 기반 재구성만.
  • Step 2: Stagegit add .claude/commands/invest-review.md

Phase E — Seed 콘텐츠 (검증 근거 아카이브 + 전략 초기본)

Task 17: 검증 근거를 raw/invest-research/에 아카이브

2026-06-05 병렬 리서치 결과(설계 §7)를 증거 문서로 보존. 4개 클러스터를 1파일로 묶거나 주제별 분리. 여기선 2파일로: (a) 패시브·분산·행동, (b) 손절익절·절세계좌.

Files:

  • Create: raw/invest-research/2026-06-05-passive-diversification-behavior.md

  • Create: raw/invest-research/2026-06-05-stoploss-takeprofit-tax-accounts.md

  • Step 1: 파일 (a) 작성templates/invest-research-template.md 구조로, 설계 §7의 KEEP/CORRECT 항목(SPIVA·Statman·Barber-Odean·Morningstar Mind the Gap·Vanguard DCA·Ibbotson-Kaplan)을 출처표·verbatim 인용·Claim·판정으로 채움. 인용은 설계 문서 §7 및 brainstorming 리서치 결과의 verbatim 문장을 사용(예: SPIVA "65% of all active large-cap U.S. equity funds underperformed the S&P 500"; Barber-Odean "those that trade most earn an annual return of 11.4 percent, while the market returns 17.9 percent"; Morningstar "Investors lost out on about 15% of the return their funds generated"; Vanguard "Lump-sum investment strategies beat common cost averaging investment strategies two-thirds of the time").

  • Step 2: 파일 (b) 작성 — 동일 구조로 손절/익절(Kaminski-Lo "Under the Random Walk Hypothesis, simple 0/1 stop-loss rules always decrease a strategy's expected return, but in the presence of momentum, stop-loss rules can add value"; 익절 REJECT 근거 Haghani/Dybvig)과 한국 절세계좌(ISA 연 2,000만/총 1억/비과세 200만·서민 400만, 연금저축 600만 세액공제 16.5%/13.2%, IRP 합산 900만 — 전부 2025년 기준, 국세청·KB 출처, 2026 확대안 미확정 표기)를 채움.

  • Step 3: self-grep 검증 — 각 verbatim 인용이 출처 표기와 일관되는지 확인. (원문 URL은 설계 §7 표 참조.)

Run: python3 .claude/hooks/wiki_structure_lint.py --file raw/invest-research/2026-06-05-passive-diversification-behavior.md Expected: PASS (또는 broken link만 — strategy 미생성 시).

  • Step 4: Stagegit add raw/invest-research/2026-06-05-*.md

Task 18: wiki/invest-strategy/strategy.md 초기본 작성

Files:

  • Create: wiki/invest-strategy/strategy.md

  • Step 1: 파일 작성templates/invest-strategy-template.md 구조로, 설계 §4 확정본을 채움:

    • ⚠️ 고지(설계 §0)
    • 프로필: 시작자본 60만, 목표/MDD는 비워 사용자 입력 대기, 과세소득 유무 = 미확인(연금계좌 권고 보류)
    • ① 포지션: 자본 구간표(200만=광범위 ETF 12개 / 200만1,000만 / 1,000만), 근거 [[raw/invest-research/2026-06-05-passive-diversification-behavior.md#C?]]
    • ② 손절/익절: 코어=무손절·무익절(KEEP), 개별 베팅=재량+UNSUPPORTED_DECISION, 기계적 익절 비권장(REJECT 근거 링크)
    • ③ 행동 가드레일: 패닉셀 24h 쿨다운·FOMO·주간 거래상한·선근거(Barber-Odean·Mind the Gap 링크), "최고의 날" 논리 사용 금지 메모
    • ④ 절세계좌: 조건부(결정세액·락업 먼저), 2025 한도 숫자 + 2026 미확정 표기, 근거 링크
    • ⑤ 목표·금액: 프로필 연결
    • 규칙 근거표: 각 규칙 → Supporting Claim → 판정
  • Step 2: 검증

Run: python3 .claude/hooks/wiki_structure_lint.py --file wiki/invest-strategy/strategy.md Expected: PASS (필수 섹션 + frontmatter + broken link 0).

  • Step 3: Stagegit add wiki/invest-strategy/strategy.md

Phase F — Lint 연동 & 최종 검증

Task 19: /lint 명령에 invest 의미 검사 항목 추가

Files:

  • Modify: .claude/commands/lint.md

  • Step 1: invest 검사 항목 추가lint.md의 검사 항목 목록에 다음 추가:

### 투자 트리(invest-*) 추가 검사
- `raw/invest-daily/`·`raw/invest-research/` 의 수치/주장에 **출처 링크 누락** → 플래그.
- `wiki/invest-strategy/` 규칙 중 Supporting Claim 도 `UNSUPPORTED_DECISION` 라벨도 없는 행 → 플래그.
- `wiki/invest-strategy/` 에 ⚠️ 고지 섹션 누락 → 플래그.
- `wiki/invest-plan/` 항목 중 근거 링크 없는 종목/배분 → 플래그.
- 2026 ISA 확대안 등 **미확정 수치를 확정처럼 단정** → 플래그.
  • Step 2: Stagegit add .claude/commands/lint.md

Task 20: 전체 구조·링크 최종 검증

Files: (없음 — 검증 전용)

  • Step 1: invest 트리 전체 린트

Run:

for f in $(git diff --cached --name-only -- 'raw/invest-*' 'wiki/invest*' 'templates/invest-*'); do
  echo "=== $f ==="; python3 .claude/hooks/wiki_structure_lint.py --file "$f"
done

Expected: 모든 콘텐츠 문서 PASS. broken wikilink 0건(strategy·ledger·hub 상호 링크 해소 확인). ledger는 아직 인스턴스 미생성일 수 있음 → hub의 [[raw/invest-ledger/ledger]] 링크는 사용자가 첫 매매 시 templates/invest-ledger-template.md로 생성(또는 이 Task에서 빈 인스턴스 생성).

  • Step 2: ledger 인스턴스 생성(선택) — hub 링크 해소를 위해 templates/invest-ledger-template.mdraw/invest-ledger/ledger.md로 복사, frontmatter title/created/last_reviewed 치환. (첫 매매 전이라 거래내역은 빈 표.)

Run: python3 .claude/hooks/wiki_structure_lint.py --file raw/invest-ledger/ledger.md Expected: PASS.

  • Step 3: vault 전체 링크 회귀 확인

Run: python3 .claude/hooks/wiki_structure_lint.py 2>&1 | grep -i "invest" || echo "invest 관련 신규 위반 없음" Expected: 신규 위반 없음(기존 무관 경고는 무시).

  • Step 4: Stagegit add raw/invest-ledger/ledger.md

Task 21: 첫 실사용 스모크 (사용자와 함께)

Files: (실행 검증)

  • Step 1: /invest-daily 1회 실행 → raw/invest-daily/2026-06-XX.md에 출처 링크 달린 스냅샷 생성 확인.
  • Step 2: /invest-plan 실행 → wiki/invest-plan/active-plan.md 초안 생성, 60만원=광범위 ETF 1~2개 규칙이 반영됐는지 확인.
  • Step 3: (모의) /invest-decide 매수 <ETF> 1주 ... → 규칙 체크 리포트가 동작하고 ledger에 기록되는지 확인.
  • Step 4: 사용자에게 최종 검토 요청 후, 모든 staged 변경을 사용자가 직접 커밋.

Self-Review (작성자 점검)

Spec coverage: 설계 §2 폴더(Task 1)·§3 명령 6종(Task 1116)·§4 전략 확정본(Task 18)·§5 템플릿 6 + 메타등록(Task 2·3·49)·§5 hub/MOC/태그(Task 3·10)·§6 lint(Task 19)·§7 근거 아카이브(Task 17)·§8 결정(전반 반영: Claude전용=Phase D 주석, 단일원장=Task 6, 고정체크리스트=Task 4·11, 소득필드=Task 18) — 전부 매핑됨.

Placeholder scan: 각 템플릿·명령은 완전한 본문 포함. Task 17·18은 "설계 §7/§4를 채운다"는 데이터 채움 작업이라 정확한 출처 문장을 예시로 명시(SPIVA·Barber-Odean·Vanguard·Kaminski-Lo verbatim). TODO/TBD 없음.

Type consistency: source_type 값(invest-daily/research/ledger/concept/strategy/plan)이 Task 2(CLAUDE.md)·Task 3(tags)·Task 4~9(템플릿 frontmatter)·Task 19(lint)에서 동일 철자. 파일 경로(wiki/invest-strategy/strategy.md, raw/invest-ledger/ledger.md, wiki/invest/invest-hub.md)가 명령·hub·검증에서 일관.