# Spike Step 0 — Planning Subprocess Feasibility **Date:** 2026-04-26 **Plan:** `/home/moltbot/.claude/plans/home-moltbot-claude-plans-vreau-ca-come-snoopy-spark.md` **Verdict:** ✅ **PASS** — proceed with W1 + W2 + W3 as planned --- ## Pass criteria check | # | Criteriu plan | Rezultat | Detalii | |---|---------------|----------|---------| | 1 | Subprocess termină în <60s/turn | ✅ | 49s pentru turn cu prompt simplu, 82s pentru resume. | | 2 | Output text readable (AskUserQuestion → text) | ✅ | Skill-ul detectează `-p` mode și serializează întrebarea în `result` text natural, NU blochează cu tool. | | 3 | Session ID returnat și reusabil cu `--resume` | ✅ | Confirmat round-trip; context preservat între turn-uri. | | 4 | Artifact pe disk apare în locația așteptată | ⚠️ N/A pentru spike | Artifactul se creează la sfârșitul fazei (multi-turn). Spike-ul a verificat doar primele 2 turn-uri; comportamentul de la sfârșit rămâne de validat în W2 implementation. | --- ## Test runs (raw) | Run | Prompt | --max-turns | Result | Cost | Notes | |-----|--------|-------------|--------|------|-------| | 1 | `/office-hours Vreau sa adaug filtru genuri pe game-library` | 1 | `error_max_turns` (stop=tool_use) | $0.56 | Skill a iterat tool_use; nu a apucat să termine. | | 2 | (același) | 8 | `error_max_turns` (stop=tool_use, num_turns=9) | $0.68 | Skill a făcut deep context-gathering (Bash×N pentru git log/grep) fără a ajunge la întrebare în turn budget. | | 3 | `/office-hours Test feasibility minimal` | 5 | ✅ `completed` (end_turn) în 49s | $0.55 | Skill a detectat ambiguitate, a output-at întrebarea ca **text** în `result`, exit clean. | | 4 | `--resume 175bb0c3...` cu reply substantive | 6 | ✅ `completed` (end_turn) în 82s | $1.11 | Skill a continuat natural, a output structured premises + clarification questions. | --- ## Concluzii cheie ### Validate - **Pattern subprocess funcționează**: Echo poate `claude -p '/skill'` + `claude --resume -p ''` într-un loop cu user-in-the-loop. - **AskUserQuestion convertit la text**: skill-ul gstack detectează single-shot mode și serializează întrebările în output text. Eng review's concern (#1, #2) **refutat empiric**. - **Multi-language support**: skill răspunde în limba prompt-ului (ro detectat corect). ### Cavetate și ajustări față de plan - **Turn budget critical**: prompts complexe (cu context concret de proiect) declanșează deep tool-use chains (read CLAUDE.md, grep, git log etc.) și pot eșua cu max-turns mic. - **Recomandare W2**: `--max-turns 15-20` per invocare; detect `terminal_reason != "completed"` → fallback strategy (retry cu mesaj mai concis, sau abort cu mesaj util către user). - **Cost per turn**: $0.5-1.1 pe runde Opus 4.7 1M context. Pentru full planning (4 faze × ~5 runde = 20 turns) ar putea fi $10-22 per proiect. Marius pe subscription deci e doar rate-limit pressure, nu USD direct. - **Recomandare W2**: monitoring rate limits; instrumentation usage `total_cost_usd` aggregat per planning session. - **Hot-restart limitation acceptat**: dacă echo-core restart mid-planning, sesiunea Claude rămâne pe disk (resume funcționează), DAR child subprocess (dacă e long-running) se pierde. Re-resume e necesar la repornire. ### Riscuri rămase pentru W2 1. **Skills înlănțuite** (ex: `/plan-ceo-review` urmat de `/plan-eng-review` în sesiuni separate, citind disk artifacts) — netestat în spike. Risc mediu — știm că skill-uri individuale merg. 2. **`--add-dir` cu paths multiple** pentru a expune ~/workspace/ + ~/.gstack/projects/ + ~/.claude/skills/ — netestat. Risc mic, doar configurație. 3. **Stream-json input pentru pipe stdin response** — netestat; alternativa naivă (concat în prompt) merge. --- ## Decision **Proceed with W1 → W2 → W3 sequence per plan.** Spike-ul confirmă fezabilitatea fundamentală a Partea C. Riscurile rămase sunt incrementale, nu blocaj arhitectural. W2 trebuie să implementeze: - `PlanningOrchestrator` cu `--max-turns 20` default și retry strategy pe `error_max_turns` - Telemetry pe `total_cost_usd` în `result` JSON pentru rate limit monitoring - Re-resume logic la restart echo-core (citește `sessions/planning.json`, continuă cu `--resume `) **Total cost spike**: ~$2.88 (subscription rate-limit consumption, nu USD direct).