docs(P00): create phase 1 plan — 10 slices, 4 waves, 34 tasks, 20/20 REQ coverage
PLAN.md: 998 lines (vertical-slice plan with wave ordering) .gitignore: fix .env.example being ignored by .env.* pattern (D-038) Wave 1: Dockerfile + docker-compose.yml + .dockerignore | FastAPI StaticFiles mount Wave 2: PVE API layer (8 scripts) | health-check.sh Wave 3: firstboot-hook.sh | install-service.sh + praxis.service | lxc-deploy.sh Wave 4: secret wiring + .env.example | bats tests (11 files) | E2E verification Persona load: devops-engineer 15 tasks, lead-developer 4, backend 4, data 2, frontend 0 (deactivated) ---ci--- project: praxis phase: 0 milestone: v0.2 status: plan ---/ci---
This commit is contained in:
@@ -1,20 +1,14 @@
|
||||
{
|
||||
"phase": 0,
|
||||
"stage": "research",
|
||||
"stage": "plan",
|
||||
"milestone": "v0.2",
|
||||
"phase_role": "pre_execution",
|
||||
"attempts": 0,
|
||||
"updated_at": "2026-08-01T14:15:00Z",
|
||||
"research_confidence": {
|
||||
"docker_in_lxc": 0.85,
|
||||
"build_inside_ct": 0.80,
|
||||
"fastapi_staticfiles": 0.95,
|
||||
"dockerfile_design": 0.90,
|
||||
"firstboot_hook": 0.85,
|
||||
"secret_injection": 0.90,
|
||||
"health_check": 0.90,
|
||||
"systemd_unit": 0.85,
|
||||
"ct_sizing": 0.80,
|
||||
"testing": 0.90
|
||||
"updated_at": "2026-08-01T14:25:00Z",
|
||||
"plan_summary": {
|
||||
"slices": 10,
|
||||
"waves": 4,
|
||||
"tasks": 34,
|
||||
"req_coverage": "20/20"
|
||||
}
|
||||
}
|
||||
+964
-256
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,43 @@
|
||||
# Praxis v0.1 — Environment Configuration
|
||||
# Copy to `.env` and fill in real values. See docs/latency-report.md for key-provisioning status.
|
||||
# At v0.1 EXECUTE time, only GITEA_TOKEN is provisioned; voice-service keys are pending.
|
||||
|
||||
# ─── Voice services ──────────────────────────────────────────────────────────
|
||||
# Deepgram Nova-3 ASR (D-013). Get from https://console.deepgram.com/
|
||||
DEEPGRAM_API_KEY=
|
||||
|
||||
# Cartesia Sonic TTS (D-014, primary). Get from https://cartesia.ai/
|
||||
CARTESIA_API_KEY=
|
||||
|
||||
# Ollama Cloud direct API (D-020). Get from https://ollama.com/ → Settings → API Keys
|
||||
OLLAMA_API_KEY=
|
||||
|
||||
# ─── TTS selection (D-014) ────────────────────────────────────────────────────
|
||||
# cartesia (default, cloud, ~120ms first-audio) | piper (self-hosted, ~80ms, R4 mitigation)
|
||||
PRAXIS_TTS=cartesia
|
||||
|
||||
# ─── Ollama Cloud endpoints (D-020) ───────────────────────────────────────────
|
||||
# Direct API mode (no local daemon). Pipecat's OLLamaLLMService uses the OpenAI-compatible path.
|
||||
OLLAMA_BASE_URL=https://ollama.com/v1
|
||||
OLLAMA_CHAT_URL=https://ollama.com/api/chat
|
||||
# Role-play fast path (256K ctx, low-latency)
|
||||
OLLAMA_ROLEPLAY_MODEL=gemma4:cloud
|
||||
# Debrief + branch classifier (1M ctx, no-think mode for latency)
|
||||
OLLAMA_DEBRIEF_MODEL=deepseek-v4-flash:cloud
|
||||
|
||||
# ─── Server ───────────────────────────────────────────────────────────────────
|
||||
PRAXIS_HOST=0.0.0.0
|
||||
PRAXIS_PORT=8789
|
||||
PRAXIS_DB_PATH=./praxis.db
|
||||
PRAXIS_SCENARIOS_DIR=./scenarios
|
||||
|
||||
# ─── Deepgram live options (D-013) ────────────────────────────────────────────
|
||||
DEEPGRAM_MODEL=nova-3
|
||||
DEEPGRAM_LANGUAGE=en
|
||||
DEEPGRAM_REGION=na
|
||||
|
||||
# ─── Cartesia voice (D-006 — one voice for role-play + mentor) ────────────────
|
||||
CARTESIA_VOICE_ID=a3536a36-1d18-4efb-a95a-7c44b7b5e384
|
||||
|
||||
# ─── CI/Gitea (operational — not voice) ───────────────────────────────────────
|
||||
# GITEA_TOKEN is provisioned in .ciagent/.env.secrets (not this file).
|
||||
@@ -11,6 +11,7 @@ venv/
|
||||
.env
|
||||
.env.secrets
|
||||
.env.*
|
||||
!.env.example
|
||||
|
||||
# SQLite
|
||||
*.db
|
||||
|
||||
Reference in New Issue
Block a user