From 2e8de14434c6926c253b220012062f30c88823c3 Mon Sep 17 00:00:00 2001
From: th-kim0823
Date: Thu, 7 May 2026 13:58:02 +0900
Subject: [PATCH] =?UTF-8?q?=F0=9F=93=9D=20docs:=20defer=20fb-29=20HTTP=20d?=
=?UTF-8?q?aemon=20+=20fb-30=20stdio-only?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
2026-05-07 brainstorm 결정 — fb-29 HTTP daemon defer.
근거:
- single-user local-first 환경에서 daemon 복잡도 (PID file / port lock /
single-instance / lifecycle UX / loopback security) 가 비대.
- fb-30 stdio MCP 가 동일 사용자 가치 (agent integration + session 동안
hot cache) 를 daemon 없이 제공 — agent host (Claude Code, Cursor 등)
가 subprocess 띄우면 session 동안 process 유지 = 자연스러운 hot state.
- ask 의 dominant cost 는 Ollama LLM 추론 (수 초) 라 daemon 효과 제한적.
search 만 의미 있는데 그 비용도 fastembed model load (~1s) 가 dominant —
stdio MCP subprocess 가 동일하게 회피.
후속 fb-30 의 transport 는 stdio 단일. HTTP-SSE 옵션은 future task —
재개 trigger:
- browser agent / remote multi-host 시나리오 등장.
- TUI ↔ CLI 다중 인스턴스 state sharing 요구.
- fb-30 MCP HTTP-SSE 변형 도입 검토.
영향:
- fb-29 spec frontmatter `status: open` → `deferred`,
`target_version: 0.3.0` → `P+`, `unblocks: [p9-fb-30]` → `[]`.
- fb-30 `depends_on: [p9-fb-27, p9-fb-29]` → `[p9-fb-27]`.
- INDEX.md 의 0.3.0 group + HANDOFF 의 release 그룹 표 갱신.
Co-Authored-By: Claude Opus 4.7 (1M context)
---
HANDOFF.md | 2 +-
tasks/INDEX.md | 8 ++++----
tasks/p9/p9-fb-29-http-daemon.md | 13 +++++++++----
tasks/p9/p9-fb-30-mcp-server.md | 6 +++---
4 files changed, 17 insertions(+), 12 deletions(-)
diff --git a/HANDOFF.md b/HANDOFF.md
index d067a90..27b9160 100644
--- a/HANDOFF.md
+++ b/HANDOFF.md
@@ -84,7 +84,7 @@ P9-2/3/4 는 P9-1 의 parallel-safety contract (sub-state slot 패턴) 덕에
2026-05-06 도그푸딩 누적 피드백 + "AI agent 가 kebab 을 쓰게 한다" 궁극 목표용 surface 확장. 17 항목 모두 **status: open + brainstorm 선행 필요**. 각 spec 상단 banner 명시. cascade 영향 / 분량 고려해 한 minor 에 묶지 않고 4 분할. 2026-05-06 renumber — **번호 = release 순서**:
-- **0.3.0 — agent foundation**: fb-26 (log), fb-27 (introspection/error wire), fb-28 (readonly/quiet), fb-29 (daemon), fb-30 (MCP), fb-31 (single-file ingest). agent 통합 MVP.
+- **0.3.0+ — agent foundation**: fb-26 (log), fb-27 (introspection/error wire) ✅ 머지 + v0.3.0 cut (2026-05-07), fb-28 (readonly/quiet), ~~fb-29 (daemon)~~ → 🚫 **deferred (2026-05-07 brainstorm)** — fb-30 stdio MCP 가 동일 가치 (agent integration + session 동안 hot cache) 를 daemon 복잡도 (PID file / port lock / loopback security / lifecycle UX) 없이 제공, single-user local-first 환경에 비대. fb-30 (MCP, stdio-only — fb-29 의존 제거 → depends_on `[p9-fb-27]` 만), fb-31 (single-file ingest). 후속 fb 들은 0.3.x patch / 0.4.0 minor 로 누적.
- **0.4.0 — agent surface refinement (additive)**: fb-32 (stale), fb-33 (streaming), fb-34 (budget), fb-35 (verbatim fetch), fb-36 (filters), fb-37 (trace/stats).
- **0.5.0 — RAG quality (cascade 동반)**: fb-38 (score semantics), fb-39 (precision tuning, embedding_version cascade + V00X), fb-40 (fact-grounded, prompt_template_version cascade).
- **0.6.0 또는 P+**: fb-41 (multi-hop, XL), fb-42 (bulk/rerank, Nice).
diff --git a/tasks/INDEX.md b/tasks/INDEX.md
index d5630e6..29373e5 100644
--- a/tasks/INDEX.md
+++ b/tasks/INDEX.md
@@ -111,12 +111,12 @@ P0~P5 는 직렬. P6~P9 는 P5 이후 병렬 가능.
- [p9-fb-25 config workspace.include 제거 + 지원 형식 가시성 (post-도그푸딩)](p9/p9-fb-25-config-include-removal.md)
- **⏳ fb-26 ~ fb-42: 백로그 only — 미구현 + brainstorm 선행 필요.** spec 작성 시 [superpowers:brainstorming](../docs/superpowers/) 부터 시작. status: open. 다른 세션에서 이 그룹 손대기 전 사용자 확인 필요. **번호 = release 순서** — 작은 번호일수록 먼저 작업 (2026-05-06 renumber).
- ### 🎯 0.3.0 — agent foundation (MCP + daemon + introspection)
+ ### 🎯 0.3.0+ — agent foundation (MCP + introspection)
- [p9-fb-26 ingest 로그 출력 일관성](p9/p9-fb-26-ingest-log-consistency.md) — ⏳ 미구현, brainstorm 필요
- - [p9-fb-27 introspection + structured error wire](p9/p9-fb-27-introspection-and-error-wire.md) — ⏳ 미구현, brainstorm 필요
+ - [p9-fb-27 introspection + structured error wire](p9/p9-fb-27-introspection-and-error-wire.md) — ✅ 머지 + v0.3.0 cut (2026-05-07)
- [p9-fb-28 agent invocation flags (--readonly / --quiet)](p9/p9-fb-28-agent-invocation-flags.md) — ⏳ 미구현, brainstorm 필요
- - [p9-fb-29 HTTP daemon (`kebab serve`)](p9/p9-fb-29-http-daemon.md) — ⏳ 미구현, brainstorm 필요
- - [p9-fb-30 MCP server](p9/p9-fb-30-mcp-server.md) — ⏳ 미구현, brainstorm 필요 (depends_on 27, 29)
+ - [p9-fb-29 HTTP daemon (`kebab serve`)](p9/p9-fb-29-http-daemon.md) — 🚫 deferred (2026-05-07) — fb-30 stdio MCP 가 동일 가치 제공, daemon 복잡도 회피. P+ 재개 trigger 는 spec 참조.
+ - [p9-fb-30 MCP server](p9/p9-fb-30-mcp-server.md) — ⏳ 미구현, brainstorm 필요 (depends_on 27 ✅, stdio-only)
- [p9-fb-31 single-file / stdin ingest](p9/p9-fb-31-single-file-stdin-ingest.md) — ⏳ 미구현, brainstorm 필요
### 🎯 0.4.0 — agent surface refinement (additive only)
diff --git a/tasks/p9/p9-fb-29-http-daemon.md b/tasks/p9/p9-fb-29-http-daemon.md
index 33e8643..049e33c 100644
--- a/tasks/p9/p9-fb-29-http-daemon.md
+++ b/tasks/p9/p9-fb-29-http-daemon.md
@@ -3,10 +3,10 @@ phase: P9
component: kebab-cli + new crate (kebab-server)
task_id: p9-fb-29
title: "HTTP daemon (`kebab serve`) — subprocess overhead 제거"
-status: open
-target_version: 0.3.0
+status: deferred
+target_version: P+
depends_on: []
-unblocks: [p9-fb-30]
+unblocks: []
contract_source: ../../docs/superpowers/specs/2026-04-27-kebab-final-form-design.md
contract_sections: [§7 RAG, §10 UX]
source_feedback: 사용자 도그푸딩 2026-05-06 — agent loop 가 kebab CLI 를 반복 호출 시 subprocess fork + Lance/SQLite cold start 비용 누적. local HTTP daemon 이 latency 해결.
@@ -14,7 +14,12 @@ source_feedback: 사용자 도그푸딩 2026-05-06 — agent loop 가 kebab CLI
# p9-fb-29 — HTTP daemon (`kebab serve`)
-> ⏳ **백로그 only — 미구현.** 본 spec 은 도그푸딩 피드백 skeleton. 구현 착수 전 [superpowers:brainstorming](../../docs/superpowers/) 으로 설계 단계 선행 필요. bind / auth / endpoint scheme / lifecycle (auto-start vs explicit) brainstorm 후 확정.
+> 🚫 **Deferred (2026-05-07 brainstorm).** fb-30 stdio MCP 가 동일 사용자 가치 (agent integration + session 동안 hot cache) 를 daemon 복잡도 (PID file / port lock / single-instance / lifecycle UX / loopback security) 없이 제공. single-user local-first 환경에서 HTTP transport 가치 미미 (cold start 의 dominant cost = fastembed model load 는 stdio MCP subprocess 가 session 동안 보유 시 동일하게 회피, ask 는 Ollama 추론 latency 가 dominant 라 daemon 효과 제한적). 본 task 는 다음 trigger 시 재개:
+> - browser agent / remote multi-host 시나리오 등장 (현재 사용자 패턴 외).
+> - TUI ↔ CLI 다중 인스턴스 state sharing 요구.
+> - fb-30 MCP HTTP-SSE transport 옵션 도입 검토.
+>
+> fb-30 의 prerequisite 였던 본 task 는 fb-30 stdio-only 결정으로 의존 제거. 본 spec 은 brainstorm 결정의 기록 보존용.
## 증상 / 동기
diff --git a/tasks/p9/p9-fb-30-mcp-server.md b/tasks/p9/p9-fb-30-mcp-server.md
index 2015aa5..1b83166 100644
--- a/tasks/p9/p9-fb-30-mcp-server.md
+++ b/tasks/p9/p9-fb-30-mcp-server.md
@@ -5,7 +5,7 @@ task_id: p9-fb-30
title: "MCP server — agent host 무관 protocol surface"
status: open
target_version: 0.3.0
-depends_on: [p9-fb-27, p9-fb-29]
+depends_on: [p9-fb-27]
unblocks: []
contract_source: ../../docs/superpowers/specs/2026-04-27-kebab-final-form-design.md
contract_sections: [§7 RAG, §10 UX, externalAI 통합 절]
@@ -32,7 +32,7 @@ source_feedback: 사용자 도그푸딩 2026-05-06 — Claude Code 같은 AI age
## 후속 작업 — brainstorm 필요 항목
-- transport: stdio default, http (fb-29 daemon) 위에 SSE 옵션.
+- transport: stdio only (default + sole). fb-29 HTTP daemon 은 deferred — HTTP-SSE 옵션은 browser agent / remote 시나리오 demand 발생 시 fb-29 와 함께 재개.
- tool 이름 / 인자 스키마 — wire schema v1 재사용 가능?
- authentication — local-only 면 무인증, daemon 위면 token.
- 새 crate `kebab-mcp` 위치 / 의존성 boundary (kebab-app facade 만 import).
@@ -41,4 +41,4 @@ source_feedback: 사용자 도그푸딩 2026-05-06 — Claude Code 같은 AI age
- MCP spec 진화 중 — 버전 lock 명시 필요.
- skill 과 surface 중복 — 사용자 혼란 방지 README 안내.
-- fb-29 (daemon) 선행 또는 동시 — daemon 모드 위에 MCP HTTP 변형 가능.
+- fb-29 deferral 결과 — MCP transport 는 stdio 단일. HTTP 변형은 future task.