- cron/jobs.json: heartbeat last_run / next_run actualizat de scheduler-ul live - tasks/spike-planning-findings.md: validare empirică Spike Step 0 pentru planning agent subprocess (claude -p + skills gstack + --resume round-trip) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
4.3 KiB
4.3 KiB
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 <id> -p '<user reply>'î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-20per invocare; detectterminal_reason != "completed"→ fallback strategy (retry cu mesaj mai concis, sau abort cu mesaj util către user).
- Recomandare W2:
- 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_usdaggregat per planning session.
- Recomandare W2: monitoring rate limits; instrumentation usage
- 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
- Skills înlănțuite (ex:
/plan-ceo-reviewurmat de/plan-eng-reviewîn sesiuni separate, citind disk artifacts) — netestat în spike. Risc mediu — știm că skill-uri individuale merg. --add-dircu paths multiple pentru a expune ~/workspace/ + ~/.gstack/projects/ + ~/.claude/skills/ — netestat. Risc mic, doar configurație.- 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:
PlanningOrchestratorcu--max-turns 20default și retry strategy peerror_max_turns- Telemetry pe
total_cost_usdînresultJSON pentru rate limit monitoring - Re-resume logic la restart echo-core (citește
sessions/planning.json, continuă cu--resume <stored_id>)
Total cost spike: ~$2.88 (subscription rate-limit consumption, nu USD direct).