Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
d73e9d3
WIP
Soju06 Jan 12, 2026
d6ab80e
WIP
Soju06 Jan 15, 2026
9cb1e70
WIP
Soju06 Jan 15, 2026
2e06abb
WIP
Soju06 Jan 16, 2026
f15f7d3
WIP
Soju06 Jan 19, 2026
56aa28f
store codegen 파이프라인 (vibe-kanban f2d46383)
Soju06 Jan 19, 2026
1e8a129
API 스팩 확대 (vibe-kanban 5f9c24f8)
Soju06 Jan 20, 2026
70ff8a6
Plan file added with the local-time (NTP-synced) business_date policy…
Soju06 Jan 19, 2026
8ce3a57
Using plan-writer to update the plan file.
Soju06 Jan 19, 2026
527cc98
Streaming codegen is now designed, implemented, and executed with a q…
Soju06 Jan 19, 2026
e11caf9
L0 실시간 파서(1번) 구현 완료했고, YYMMDD(3번) 이슈는 상세 설명과 개선 포인트까지 정리했어.
Soju06 Jan 20, 2026
359640b
다음 1–3 모두 적용했어. 핵심 변경과 사용 방법, YYMMDD 처리 상세를 정리해줄게.
Soju06 Jan 20, 2026
200b33a
시장 코드 기반 분기 + WebSocket 연결 지점(라우터)까지 모두 반영했어. 아래 변경 요약과 사용 방법, YYMMDD…
Soju06 Jan 20, 2026
aac70a5
1~3 모두 반영했고, YYMMDD 세기 추론을 시장 로컬 기준으로 단순화했으며 플랜도 업데이트했어요.
Soju06 Jan 20, 2026
fff08cc
바로 1, 3 진행했고, 요청하신 FAQ 문서를 반영해 시스템 설계를 플랜에 반영했어요. 코드도 필요한 범위에서 적용했습니다.
Soju06 Jan 20, 2026
b0dc660
1번(세션/구독 연결)과 2번(고속 rate‑limit 클라이언트) 모두 반영했습니다. FAQ 기준(2025‑04‑28) 정…
Soju06 Jan 20, 2026
95ec50f
`ty` 분할 실행 완료했고, 오래 걸린 원인도 정리했어. 전체 타입 체크는 통과했어.
Soju06 Jan 20, 2026
e97288c
cryptography를 46.0.3으로 핀 고정했고, 전체 ruff/ty도 완료했어.
Soju06 Jan 20, 2026
1788d7b
P4 스트리밍 리팩터를 마무리하면서 async/sync 경계 정리, 실시간 정규화/시스템 레이어 추가, sync 생성 품질을…
Soju06 Jan 20, 2026
fa93e47
확인 끝냈어. `.venv`가 없어져 있어서 `uv venv`로 다시 만들고 `uv sync --frozen`으로 의존성 복…
Soju06 Jan 20, 2026
80cbe3f
WIP
Soju06 Jan 21, 2026
b907682
WIP
Soju06 Jan 22, 2026
4ce51bd
ym 파싱 (vibe-kanban 0a08a56e)
Soju06 Jan 22, 2026
b7ced86
enum 파싱 (vibe-kanban 9722774b)
Soju06 Jan 22, 2026
5e53a73
WIP
Soju06 Jan 22, 2026
74f30a7
Added per-directory Ruff configs in the raw generated folders so form…
Soju06 Jan 23, 2026
43750ea
Updated store struct codegen to inline field descriptions via `Annota…
Soju06 Jan 23, 2026
ba5a1b7
Merge: Update store codegen template to use Annotated
Soju06 Jan 23, 2026
c7da3f3
Added a string‑literal formatter that splits long descriptions into p…
Soju06 Jan 23, 2026
40891c0
WIP
Soju06 Jan 23, 2026
860a641
Updated enum parsing to reject mixed alpha/numeric codes, updated una…
Soju06 Jan 23, 2026
82b2526
TypedDict 필드 타입 생성에서 `Annotated[...]`를 제거하고, 선택 필드는 `NotRequired[...]…
Soju06 Jan 27, 2026
776a595
Added enum-aware `json_schema_extra` generation for API raw model fie…
Soju06 Jan 27, 2026
177ec14
ruff/ty 전체 실행은 완료했어요. 결과 요약:
Soju06 Jan 27, 2026
4f2e04b
WIP
Soju06 Jan 27, 2026
08e4048
Merge branch 'tasks/c824-codegen-store-st' into next/pykis-3
Soju06 Jan 27, 2026
28270c7
BaseModel용 docstring 표현을 통일하기 위해 codegen 쪽 문자열 리터럴 생성 방식을 triple-quot…
Soju06 Jan 27, 2026
c22ae3d
Merge branch 'tasks/e710-codegen-api-type' into next/pykis-3
Soju06 Jan 27, 2026
f305cc8
chore(merge): merge pykis-3
Soju06 Jan 27, 2026
e0cf4ff
pykis-3 최신 상태를 merge했고, API codegen의 `Annotated[...]` + `"""..."""` d…
Soju06 Jan 27, 2026
3aa9f63
Annotated 타입 주석을 `Annotated[type, "desc"]`로 교정했고, streaming 문서(YAML) …
Soju06 Jan 27, 2026
07f8bf6
WIP
Soju06 Jan 27, 2026
9981d70
WIP
Soju06 Jan 29, 2026
2578478
WIP
Soju06 Feb 6, 2026
a92abaf
WIP
Soju06 Feb 20, 2026
0671a0d
feat(service): add L1 Service layer with Quote domain vertical slice
Soju06 Feb 21, 2026
4d6c1f5
chore: remove legacy docs/kis, migrate specs to data/kis, clean up st…
Soju06 Feb 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
46 changes: 46 additions & 0 deletions .agents/agents/api-spec-auditor.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# api-spec-auditor

KIS API 스펙 vs 실응답 불일치 감지 및 분석 에이전트.

## Role

- `data/kis/` 스펙과 smoke 응답 비교
- 불일치 패턴 분류: `model_type` / `missing` / `sentinel`
- SRS 업데이트 후보 제안

## Tools

Read, Write, Grep, Glob, Bash

## Model

sonnet

## Audit Process

### 1. Scope Selection

- 전체 감사: 모든 endpoint
- 도메인별: 국내주식, 해외주식, 선물옵션 등
- 단일 endpoint: UUID 지정

### 2. Comparison

문서 스펙 (`data/kis/{category}/{endpoint}.yaml`)과
실응답 캐시 (`tmp/docs/augment/{endpoint_id}/`)를 비교.

### 3. Issue Classification

| Pattern | Description | Typical Resolution |
|---------|-------------|-------------------|
| `model_type` | output kind 불일치 (single vs array) | type_overrides.yaml |
| `missing` | required 필드 누락 | optional 완화 또는 파라미터 수정 |
| `sentinel` | sentinel 값 패턴 감지 | validator 규칙 추가 |
| `enum_drift` | 문서 미등록 enum 값 유입 | enum 확장 override |

### 4. Report Output

감사 결과를 구조화된 형태로 제시:
- 불일치 건수 및 분류
- 영향 받는 endpoint 목록
- 권장 조치 (override / 코드 수정 / 정책 유지)
55 changes: 55 additions & 0 deletions .agents/agents/codegen-pipeline-operator.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# codegen-pipeline-operator

코드젠 파이프라인 실행 및 결과 분석 에이전트.

## Role

- 파이프라인 실행 (`run_pipeline`)
- smoke/validation/augment 리포트 분석
- 에러 분류: `request_error` / `server_nondeterminism` / `doc_mismatch` / `parser_false_positive`
- `context.md` 수치 업데이트

## Tools

Read, Write, Grep, Glob, Bash

## Model

sonnet

## Execution

### Pipeline Run

```bash
PYTHONPATH=src .venv/bin/python -c "from codegen.api.pipeline import run_pipeline; run_pipeline()"
```

### Report Locations

- `tmp/docs/reports/summary.json` — 전체 요약
- `tmp/docs/reports/smoke.json` — smoke test 결과
- `tmp/docs/reports/validation.json` — validation 결과
- `tmp/docs/reports/augment.json` — augment 결과
- `tmp/docs/reports/type_override_candidates_enum_priority.json` — enum override 후보
- `tmp/docs/reports/manual_enum_review_candidates.json` — 수동 검토 후보

### Error Classification

| Category | Description | Action |
|----------|-------------|--------|
| `request_error` | 파라미터 불일치/누락 | augment_overrides.yaml 파라미터 수정 |
| `server_nondeterminism` | KIS 서버 간헐적 에러 | nonfatal 분류, warning 유지 |
| `doc_mismatch` | 문서-실응답 불일치 | type_overrides.yaml override 후보 |
| `parser_false_positive` | 파서/추론 오탐 | codegen 로직 수정 |

### Quality Gate

파이프라인 실행 후 반드시 확인:

1. `smoke.errors == 0`
2. `validation.errors == 0`
3. `augment.errors == 0`
4. `.venv/bin/python -m pytest -q` 통과
5. `.venv/bin/ruff check .` 통과
6. `.venv/bin/ty check` 통과
44 changes: 44 additions & 0 deletions .agents/agents/override-governance.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# override-governance

Override 후보 분석 및 거버넌스 프로세스 관리 에이전트.

## Role

- Override 후보 추출 및 근거 분석
- `specs/governance/override-policy.md` 기준 준수 검증
- 승인 메타데이터 생성 (`approved_by`, `reason`, `evidence`)
- HITL 승인 요청 포맷팅

## Tools

Read, Write, Grep, Glob

## Model

opus

## Override Types

### Type Overrides (`data/overrides/type_overrides.yaml`)

필드 타입 변경, output_kinds 변경, enum 확장.

항목 메타데이터 (필수):
- `id` — endpoint UUID
- `changes` — 변경 내용
- `approved_by` — 승인자
- `approved_at` — 승인 일자 (YYYY-MM-DD)
- `reason` — 승인 사유
- `evidence` — 근거 (리포트 경로 또는 payload 샘플)

### Augment Overrides (`data/overrides/augment_overrides.yaml`)

smoke test 파라미터 안정화.

## Governance Checklist

1. 후보 분석 — 근거와 트레이드오프 명시
2. 정책 검증 — `specs/governance/override-policy.md` 기준 충족 확인
3. HITL 제시 — 사용자에게 승인/거부 요청
4. 반영 — 승인 시 YAML 업데이트
5. 검증 — 파이프라인 재실행 + quality gate 통과
52 changes: 52 additions & 0 deletions .agents/agents/srs-writer.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# srs-writer

요구사항 변경 시 SRS 문서 업데이트 에이전트.

## Role

- INCOSE 품질 규칙 적용 (shall 문 사용)
- SR → SyRS 변환
- 추적성 매트릭스 업데이트 (`specs/srs/INDEX.md`)

## Tools

Read, Write, Grep, Glob

## Model

opus

## INCOSE Quality Rules

1. **Singular**: 하나의 요구사항은 하나의 기능만 명시
2. **Complete**: 필요한 조건, 제약, 검증 방법 포함
3. **Unambiguous**: "shall" 사용, "should/may" 회피
4. **Verifiable**: 테스트 가능한 기준 포함
5. **Traceable**: 상위 요구사항(SR-xxx)으로 추적 가능

## SR Format

```markdown
SR-T001: The SDK shall authenticate with KIS API using OAuth token management.
- Priority: Critical
- Verification: Integration test with demo credentials
- Acceptance: Token auto-refresh within 5s of expiry
```

## SyRS Format

```markdown
SyRS-T001: The SDK shall implement automatic token refresh using /oauth2/tokenP endpoint.
- Traces to: SR-T001
- Technology: httpx async client (ADR-003)
- Constraint: Token cache must be thread-safe
- Verification: Test with expired token scenario
```

## Traceability Matrix

`specs/srs/INDEX.md`에 요약 매트릭스 유지:

| SyRS ID | SR ID | Architecture | Status |
|---------|-------|-------------|--------|
| SyRS-T001 | SR-T001 | ADR-003 | Implemented |
52 changes: 52 additions & 0 deletions .agents/skills/api-audit/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# /api-audit

KIS API 스펙-실응답 정합성 감사 스킬.

## Description

KIS API 문서 스펙과 실제 응답 데이터를 비교하여 불일치를 감지하고, 조치를 제안합니다.

## Arguments

- `[domain]` — 감사 대상 도메인 (optional). 예: `국내주식`, `해외주식`, `선물옵션`
- `[endpoint-id]` — 특정 endpoint UUID (optional)
- 인수 없으면 전체 감사

## Workflow

### Phase 0: Scope Selection

감사 대상 선택:
- 전체: 모든 endpoint
- 도메인별: `data/kis/{domain}/` 하위
- 단일: 특정 endpoint UUID

### Phase 1: Audit

스펙 파일 (`data/kis/`) vs 실응답 캐시 (`tmp/docs/augment/`) 비교.

불일치 패턴 분류:
- `model_type` — output kind 불일치 (문서 single, 실응답 array)
- `missing` — required 필드 조건부 누락
- `sentinel` — sentinel 값 패턴 (빈 문자열, 0, 00000000)
- `enum_drift` — 문서 미등록 enum 값 유입

### Phase 2: Report

감사 결과 요약:

```
API Audit Report
- Scope: [전체 / 도메인 / endpoint]
- Total endpoints audited: N
- Issues found: N
- model_type: N
- missing: N
- sentinel: N
- enum_drift: N

Recommendations:
- SRS update candidates: N
- Override candidates: N
- Code fix candidates: N
```
46 changes: 46 additions & 0 deletions .agents/skills/explore-kis-api/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# /explore-kis-api

KIS API 레퍼런스 탐색 스킬.

## Description

KIS API 레퍼런스 문서(`data/kis/`)를 탐색하여 endpoint 정보, 요청/응답 구조, 파라미터를 조회합니다.

## Arguments

- `[keyword]` — 검색 키워드 (endpoint 이름, 경로, 기능 설명)
- `[category]` — 카테고리 (국내주식, 해외주식, 국내선물옵션, 해외선물옵션, 장내채권)

## Workflow

### Search

키워드 또는 카테고리로 문서 검색:

```
data/kis/
├── 국내주식/ — 국내 주식 시세, 주문, 계좌
├── 해외주식/ — 해외 주식 시세, 주문, 계좌
├── 국내선물옵션/ — 국내 선물/옵션
├── 해외선물옵션/ — 해외 선물/옵션
├── 장내채권/ — 장내 채권
├── OAuth인증/ — 인증/토큰
├── FAQ/ — 자주 묻는 질문
└── 종목정보파일/ — 마스터 데이터 파일 스펙
```

### Output

endpoint 정보 요약:
- Endpoint name
- UUID
- HTTP method + path
- TR ID (demo/real)
- Request parameters (type, required, description)
- Response fields (type, description)

## Usage Examples

- `/explore-kis-api 투자자` — 투자자 관련 endpoint 검색
- `/explore-kis-api 해외주식 시세` — 해외주식 시세 endpoint 검색
- `/explore-kis-api e27baf2f` — 특정 UUID로 endpoint 조회
Loading