plan(p10-1a-1): code ingest framework implementation plan + spec wire-shape fix
21 task plan: kebab-core 도메인 타입 (Citation::Code variant, SearchHit repo/code_lang, IngestReport skip counters, Metadata extension), 새 kebab-parse-code crate (lang/repo/skip 모듈, gix dep), kebab-source-fs gitignore+blacklist 통합, kebab-config [ingest.code] 절, kebab-cli --repo/--code-lang flag, wire schema JSON 갱신, frozen design doc 갱신, README/HANDOFF/SMOKE 갱신, task index. 각 task 가 5-step TDD cycle (test fail → impl → pass → commit). 코드 chunker 는 1A-1 에 없음 — 1A-2 에서 추가.
spec 의 Citation::Code 예시가 기존 5 variants 의 flat wire 형태와 안 맞아서 (`code: {...}` 중첩이 아니라 top-level field) 같이 fix.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2265
docs/superpowers/plans/2026-05-15-p10-1a-1-code-ingest-framework.md
Normal file
2265
docs/superpowers/plans/2026-05-15-p10-1a-1-code-ingest-framework.md
Normal file
File diff suppressed because it is too large
Load Diff
@@ -101,18 +101,17 @@ frozen design §2.1 의 5 variant (`line` / `page` / `region` / `caption` / `tim
|
||||
"kind": "code",
|
||||
"path": "kebab/crates/kebab-chunk/src/md_heading_v1.rs",
|
||||
"uri": "kebab/crates/kebab-chunk/src/md_heading_v1.rs#L142-L168",
|
||||
|
||||
"code": {
|
||||
"line_start": 142,
|
||||
"line_end": 168,
|
||||
"symbol": "MdHeadingV1Chunker::chunk_doc",
|
||||
"lang": "rust"
|
||||
}
|
||||
"line_start": 142,
|
||||
"line_end": 168,
|
||||
"symbol": "MdHeadingV1Chunker::chunk_doc",
|
||||
"lang": "rust"
|
||||
}
|
||||
```
|
||||
|
||||
`code.symbol` 은 nullable — Tier 1 AST chunk 면 채움, Tier 2/3 면 비움 (`null`).
|
||||
`code.lang` 은 `--code-lang` filter 와 같은 식별자 (lowercase). null 가능.
|
||||
**Wire 형태 — flat**: 기존 5 variants 와 동일한 패턴 (`Citation::Line` 도 `start` / `end` / `section` 이 top-level, 중첩 없음). serde `#[serde(tag = "kind")]` 외부 tag enum 이라 variant 별 필드가 top-level 에 들어감.
|
||||
|
||||
`symbol` 은 nullable — Tier 1 AST chunk 면 채움, Tier 2/3 면 `null`.
|
||||
`lang` 은 `--code-lang` filter 와 같은 식별자 (lowercase). null 가능.
|
||||
|
||||
기존 5 variant 와 마찬가지로 `path` + `uri` 는 항상 채움. `uri` 는 `path#L<start>-L<end>` (W3C Media Fragments) 그대로.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user