Files
kebab/tasks/p9/p9-fb-27-introspection-and-error-wire.md
th-kim0823 cc0e4e6551 📝 docs(tasks): HOTFIXES entry + p9-fb-27 status → completed
HOTFIXES 항목이 fb-27 의 live binding 변경 + interim wire shape
deviation 의 source of truth (error.v1.details 가 신규 typed signal
도입 전까지 spec literal 과 일부 일탈).

spec 상단 banner 와 frontmatter status 가 frozen 상태 + post-merge
HOTFIXES cross-link 으로 갱신.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 12:40:38 +09:00

2.2 KiB

phase, component, task_id, title, status, target_version, depends_on, unblocks, contract_source, contract_sections, source_feedback
phase component task_id title status target_version depends_on unblocks contract_source contract_sections source_feedback
P9 kebab-cli + kebab-app + wire-schema p9-fb-27 Introspection (`kebab schema`) + structured error wire completed 0.3.0
p9-fb-30
../../docs/superpowers/specs/2026-04-27-kebab-final-form-design.md
§10 UX
wire-schema 전반
사용자 도그푸딩 2026-05-06 — agent 가 kebab 인스턴스의 wire 버전 / 기능 / 모델 / 인덱스 통계 알아야 통합 안전. error 도 stderr text 가 아닌 structured JSON 필요.

p9-fb-27 — Introspection + structured error wire

구현 완료. 본 spec 은 구현 시점의 frozen 상태. post-merge deviation (특히 error.v1.details 의 interim shape) 은 HOTFIXES.md2026-05-07 — p9-fb-27 항목 참조 — live source of truth.

증상 / 동기

  • agent 가 kebab 의 wire schema 버전 / 기능 플래그 / 모델 정보 / 인덱스 통계 introspect 못 함.
  • error 는 stderr text — agent parse 어려움. timeout vs no-results vs config-missing vs not-indexed 구분 불가.

Goal (skeleton)

  • kebab schema --json — wire schema 버전 list, capability flags (mcp / daemon / streaming / 등), model versions (parser / chunker / embedding / prompt_template / index), index stats (doc count, chunk count, last ingest).
  • kebab stats --json 으로 분리 가능 — schema 는 정적, stats 는 동적. brainstorm 단계 결정.
  • 모든 명령의 error 출력을 structured JSON (stderr ndjson 또는 stdout 의 error.v1 wire).
  • exit code: 0 = OK, 1 = generic, 2 = config, 3 = not-indexed, 4 = timeout, 5 = no-results, …

후속 작업 — brainstorm 필요 항목

  • error.v1 wire schema — fields (code, message, details, hint).
  • 기존 명령의 error path 전수 변환 — anyhow chain → error.v1.
  • schema vs stats 분리 여부.
  • fb-30 MCP initialize response 와 capability matrix 공유.

Risks / notes

  • error wire 변경 = breaking — 기존 stderr text 출력은 유지 (둘 다 출력 또는 --json 일 때만 wire).
  • exit code 안정성 — README 에 표 명시.
  • fb-30 / 29 의 prerequisite — agent 가 server 능력 먼저 introspect.