Files
echo-core/tasks/spike-planning-findings.md
Marius Mutu b95395ec2c chore: scheduler runtime state + spike findings
- 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>
2026-04-26 18:17:53 +00:00

4.3 KiB
Raw Permalink Blame History

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-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 <stored_id>)

Total cost spike: ~$2.88 (subscription rate-limit consumption, nu USD direct).