Files
kebab/tasks/p9/p9-fb-25-config-include-removal.md
2026-05-05 12:20:38 +00:00

2.1 KiB

phase, component, task_id, title, status, depends_on, unblocks, contract_source, contract_sections, source_feedback
phase component task_id title status depends_on unblocks contract_source contract_sections source_feedback
P9 kebab-config p9-fb-25 Config workspace.include 제거 + 지원 형식 가시성 (post-merge dogfooding) completed
p9-fb-23
../../docs/superpowers/specs/2026-04-27-kebab-final-form-design.md
§6.2 Workspace
§3.x IngestReport
§2.4a IngestEvent
사용자 도그푸딩 2026-05-05 — include + exclude 의미 모호 + 지원 형식 가시성 부족.

p9-fb-25 — Config workspace.include 제거 + 지원 형식 가시성

상세 설계: docs/superpowers/specs/2026-05-05-p9-fb-25-config-include-removal-design.md. 구현 계획: docs/superpowers/plans/2026-05-05-p9-fb-25-config-include-removal.md.

Goal

  • WorkspaceCfg.include 필드 제거 (denylist-only 모델 정착).
  • 사용자가 ingest 결과에서 어떤 파일이 왜 skip 됐는지 즉시 파악.
  • 지원 형식 (md / png / jpg / pdf) 을 README + kebab init config 주석에 명시.

Behavior contract

  • 옛 config 의 include = [...] 은 silently 무시 + 단발 deprecation warning.
  • Skipped 시 IngestItem.warnings = ["unsupported media type: .ext"] 또는 ["unsupported media type: <no-ext>"] 또는 ["kb:// URI not yet supported"].
  • IngestReport.skipped_by_extension = BTreeMap<lowercase-ext, count>. no-ext 키 = <no-ext>.
  • CLI / TUI summary final / aborted 라인에 "N skipped: A docx, B txt, ..." (desc 정렬, 모두 표시, ties by key alphabetic).

Tests

  • legacy include 무시 + 새 WorkspaceCfg 필드 destructure (kebab-config).
  • skip_reason 통합 (kebab-app): docx + Makefile 두 파일 ingest → warnings + skipped_by_extension 채워짐.
  • init_template 헤더 (kebab-app).
  • status_line breakdown 완료 / abort (kebab-tui).

Risks / notes

  • 옛 config 가 narrow allowlist (예: include = ["**/*.md"]) 면 본 변경 후 .png 등이 자동 ingest 시작 — deprecation warning + README 가 alarm.
  • SourceScope.include (kebab-core) 는 그대로.

Live deviations 반영 위치: tasks/HOTFIXES.md 2026-05-05 — p9-fb-25 항목.