1006 lines
37 KiB
Markdown
1006 lines
37 KiB
Markdown
# 투자 자료·전략 파이프라인 구현 계획 (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:
|
|
```bash
|
|
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` 허용 어휘 문단 끝에 다음 문장을 추가:
|
|
|
|
```markdown
|
|
**투자 도메인 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` 행 위에 추가:
|
|
|
|
```markdown
|
|
| `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` 서술 근처)에 한 문장 추가:
|
|
|
|
```markdown
|
|
**투자 파이프라인(`/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) |` 행 아래에 추가:
|
|
|
|
```markdown
|
|
| 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: 파일 작성**
|
|
|
|
```markdown
|
|
---
|
|
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 분리)
|
|
|
|
```markdown
|
|
---
|
|
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: 파일 작성**
|
|
|
|
```markdown
|
|
---
|
|
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 차용)
|
|
|
|
```markdown
|
|
---
|
|
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: 파일 작성**
|
|
|
|
```markdown
|
|
---
|
|
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: 파일 작성**
|
|
|
|
```markdown
|
|
---
|
|
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)
|
|
|
|
```markdown
|
|
---
|
|
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`에서 카테고리/허브를 나열하는 섹션에 한 줄 추가:
|
|
|
|
```markdown
|
|
- **개인 투자 (개발과 분리)**: `[[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: 파일 작성**
|
|
|
|
```markdown
|
|
---
|
|
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: Stage** — `git add .claude/commands/invest-daily.md`
|
|
|
|
---
|
|
|
|
### Task 12: /invest-research
|
|
|
|
**Files:**
|
|
- Create: `.claude/commands/invest-research.md`
|
|
|
|
- [ ] **Step 1: 파일 작성**
|
|
|
|
```markdown
|
|
---
|
|
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: Stage** — `git add .claude/commands/invest-research.md`
|
|
|
|
---
|
|
|
|
### Task 13: /invest-ingest
|
|
|
|
**Files:**
|
|
- Create: `.claude/commands/invest-ingest.md`
|
|
|
|
- [ ] **Step 1: 파일 작성**
|
|
|
|
```markdown
|
|
---
|
|
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: Stage** — `git add .claude/commands/invest-ingest.md`
|
|
|
|
---
|
|
|
|
### Task 14: /invest-plan
|
|
|
|
**Files:**
|
|
- Create: `.claude/commands/invest-plan.md`
|
|
|
|
- [ ] **Step 1: 파일 작성**
|
|
|
|
```markdown
|
|
---
|
|
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: Stage** — `git add .claude/commands/invest-plan.md`
|
|
|
|
---
|
|
|
|
### Task 15: /invest-decide (규칙 강제의 심장)
|
|
|
|
**Files:**
|
|
- Create: `.claude/commands/invest-decide.md`
|
|
|
|
- [ ] **Step 1: 파일 작성**
|
|
|
|
```markdown
|
|
---
|
|
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: Stage** — `git add .claude/commands/invest-decide.md`
|
|
|
|
---
|
|
|
|
### Task 16: /invest-review
|
|
|
|
**Files:**
|
|
- Create: `.claude/commands/invest-review.md`
|
|
|
|
- [ ] **Step 1: 파일 작성**
|
|
|
|
```markdown
|
|
---
|
|
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: Stage** — `git 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: Stage** — `git 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 1~2개 / 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: Stage** — `git add wiki/invest-strategy/strategy.md`
|
|
|
|
---
|
|
|
|
## Phase F — Lint 연동 & 최종 검증
|
|
|
|
### Task 19: /lint 명령에 invest 의미 검사 항목 추가
|
|
|
|
**Files:**
|
|
- Modify: `.claude/commands/lint.md`
|
|
|
|
- [ ] **Step 1: invest 검사 항목 추가** — `lint.md`의 검사 항목 목록에 다음 추가:
|
|
|
|
```markdown
|
|
### 투자 트리(invest-*) 추가 검사
|
|
- `raw/invest-daily/`·`raw/invest-research/` 의 수치/주장에 **출처 링크 누락** → 플래그.
|
|
- `wiki/invest-strategy/` 규칙 중 Supporting Claim 도 `UNSUPPORTED_DECISION` 라벨도 없는 행 → 플래그.
|
|
- `wiki/invest-strategy/` 에 ⚠️ 고지 섹션 누락 → 플래그.
|
|
- `wiki/invest-plan/` 항목 중 근거 링크 없는 종목/배분 → 플래그.
|
|
- 2026 ISA 확대안 등 **미확정 수치를 확정처럼 단정** → 플래그.
|
|
```
|
|
|
|
- [ ] **Step 2: Stage** — `git add .claude/commands/lint.md`
|
|
|
|
---
|
|
|
|
### Task 20: 전체 구조·링크 최종 검증
|
|
|
|
**Files:** (없음 — 검증 전용)
|
|
|
|
- [ ] **Step 1: invest 트리 전체 린트**
|
|
|
|
Run:
|
|
```bash
|
|
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.md`를 `raw/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: Stage** — `git 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 11~16)·§4 전략 확정본(Task 18)·§5 템플릿 6 + 메타등록(Task 2·3·4~9)·§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·검증에서 일관. ✅
|