Skip to content

Agile+ Workstream Guide: Venture Platform

Date: 2026-02-21 Status: ACTIVE Purpose: Define sprint structure, ceremonies, and coordination model for Venture MVP delivery


Overview

The Venture platform is delivered as a series of 2-week sprints, each aligned to a milestone phase (M0–M6). Each sprint:

  • Has a clear entry condition (prior phase complete)
  • Runs 3 parallel L3 copilot agents
  • Produces shippable artifacts (code + tests passing)
  • Has explicit exit criteria (all tests ≥80% coverage, zero suppressions)
  • Results in a merged worktree on main branch

Total Timeline: 12–14 weeks (6–7 sprints) to full v1 MVP


Sprint Structure

Sprint 0: M0 Foundation (Week 1–2)

Entry Condition: Project initialized; all specs finalized

Theme: Stand up all infrastructure; establish baseline data persistence and event governance

Stories:

  • FR-INFRA-001: PostgreSQL schema + Alembic migrations
  • FR-INFRA-002: NATS JetStream streams (events + tasks)
  • FR-INFRA-003: Redis cache + rate limiter
  • FR-INFRA-004: process-compose manifest with health checks
  • FR-INFRA-005: Schema registry + EventEnvelopeV1 validation

L3 Agent Dispatch Batch Script

bash
#!/bin/bash
# sprint-m0-dispatch.sh

set -e

REPO_PATH="/Users/kooshapari/temp-PRODVERCEL/485/kush/parpour"
WTV="venture-wt-m0-foundation"

# Create worktree if not exists
if [ ! -d "../$WTV" ]; then
  cd ..
  git worktree add "$WTV" main
  cd "$WTV"
else
  cd "../$WTV"
fi

# Dispatch 3 parallel agents

# Agent 1: PostgreSQL + migrations
copilot -p "$(cat <<'PROMPT'
Task: FR-INFRA-001 — Initialize PostgreSQL schema via Alembic

Test first: tests/test_db_migrations.py
- Verify artifact_ir, ledger, audit_log, policy_bundles tables exist
- Verify all required columns present
- Verify migrations run idempotently

Implement: alembic/versions/ and src/infra/db.py

Must pass:
  uv run pytest tests/test_db_migrations.py -v
  uv run alembic upgrade head
  uv run alembic downgrade base
  uv run alembic upgrade head

Must pass linting:
  uv run ruff check src/infra/db.py

Commit message: "feat(infra): FR-INFRA-001 PostgreSQL schema via Alembic"

Do not: push, modify other modules, add new suppressions
PROMPT
)" --yolo --model gpt-5-mini \
  --add-dir "$REPO_PATH" \
  --allow-tool 'write' \
  --allow-tool 'shell(uv:*)' \
  --allow-tool 'shell(git:*)' \
  --deny-tool 'shell(git push)' &

# Agent 2: NATS JetStream setup
copilot -p "$(cat <<'PROMPT'
Task: FR-INFRA-002 — Stand up NATS JetStream streams

Test first: tests/test_nats_streams.py
- Verify events.* stream created with replication 3
- Verify tasks.* stream created with replication 3
- Verify durable subscriptions persist
- Verify pub-sub round-trip works

Implement: src/infra/nats_setup.py

Must pass:
  uv run pytest tests/test_nats_streams.py -v

Must pass linting:
  uv run ruff check src/infra/nats_setup.py

Commit message: "feat(infra): FR-INFRA-002 NATS JetStream setup"

Do not: push, modify other modules, add new suppressions
PROMPT
)" --yolo --model gpt-5-mini \
  --add-dir "$REPO_PATH" \
  --allow-tool 'write' \
  --allow-tool 'shell(uv:*)' \
  --allow-tool 'shell(git:*)' \
  --deny-tool 'shell(git push)' &

# Agent 3: Schema registry + EventEnvelopeV1 validation
copilot -p "$(cat <<'PROMPT'
Task: FR-INFRA-003 + FR-INFRA-005 — Schema registry and EventEnvelopeV1

Test first: tests/test_schema_registry.py
- Test EventEnvelopeV1 accepts valid events
- Test EventEnvelopeV1 rejects malformed events
- Test schema versioning works
- Test schema caching works

Implement: src/infra/schema_registry.py

Also: src/infra/redis.py for cache (uses Redis from local setup)

Must pass:
  uv run pytest tests/test_schema_registry.py -v

Must pass linting:
  uv run ruff check src/infra/schema_registry.py src/infra/redis.py

Commit message: "feat(infra): FR-INFRA-003 FR-INFRA-005 Schema registry and EventEnvelopeV1"

Do not: push, modify other modules, add new suppressions
PROMPT
)" --yolo --model gpt-5-mini \
  --add-dir "$REPO_PATH" \
  --allow-tool 'write' \
  --allow-tool 'shell(uv:*)' \
  --allow-tool 'shell(git:*)' \
  --deny-tool 'shell(git push)' &

# Wait for all agents
wait

echo "M0 Sprint dispatch complete. All agents should have committed."
echo "Review commits and merge worktree:"
echo "  git switch main"
echo "  git merge $WTV"

Definition of Done (M0)

  • [ ] All 5 stories implemented and tested
  • [ ] Tests pass: pytest tests/test_db_migrations.py tests/test_nats_streams.py tests/test_schema_registry.py -v
  • [ ] Coverage ≥80% for all infra modules
  • [ ] No new suppressions in code
  • [ ] All commits follow format: feat(infra): FR-XXX-YYY description
  • [ ] Worktree merged to main
  • [ ] process-compose up starts all services successfully

Exit Criteria (M0 Complete)

  1. PostgreSQL migrations run idempotently
  2. NATS streams persist data across restart
  3. Schema registry validates EventEnvelopeV1 correctly
  4. Event replay from NATS produces identical results
  5. All services respond to health checks

Sprint 1: M1 Control Plane Part 1 (Week 3–4a)

Entry Condition: M0 complete and merged; all infra services running

Theme: Policy engine, tool allowlist, FSM framework

Stories:

  • FR-CP-001: Policy engine + bundle versioning
  • FR-CP-002: Tool allowlist engine
  • FR-CP-004: FSM framework

L3 Agent Dispatch Batch Script

bash
#!/bin/bash
# sprint-m1a-dispatch.sh

REPO_PATH="/Users/kooshapari/temp-PRODVERCEL/485/kush/parpour"
WTV="venture-wt-m1-control-plane"

if [ ! -d "../$WTV" ]; then
  cd ..
  git worktree add "$WTV" main
  cd "$WTV"
else
  cd "../$WTV"
fi

# Agent 1: Policy engine
copilot -p "$(cat <<'PROMPT'
Task: FR-CP-001 — Policy engine with bundle versioning

Test first: tests/test_policy_engine.py
- Test policy bundle CRUD
- Test schema snapshot on creation
- Test every decision includes policy_bundle_id and reason_code
- Test policy replay: old decision with old bundle produces same result

Implement: src/control_plane/policy_engine.py

Must pass:
  uv run pytest tests/test_policy_engine.py -v

Commit: "feat(control-plane): FR-CP-001 Policy engine and bundle versioning"

Do not: push, modify other modules, add new suppressions
PROMPT
)" --yolo --model gpt-5-mini \
  --add-dir "$REPO_PATH" \
  --allow-tool 'write' \
  --allow-tool 'shell(uv:*)' \
  --allow-tool 'shell(git:*)' \
  --deny-tool 'shell(git push)' &

# Agent 2: Tool allowlist
copilot -p "$(cat <<'PROMPT'
Task: FR-CP-002 — Tool allowlist engine

Test first: tests/test_tool_allowlist.py
- Test role-to-tools mapping
- Test allowlist enforcement: allowed tool → permit, denied tool → 403
- Test agent_role propagation in trace

Implement: src/control_plane/tool_allowlist.py

Must pass:
  uv run pytest tests/test_tool_allowlist.py -v

Commit: "feat(control-plane): FR-CP-002 Tool allowlist engine"

Do not: push, modify other modules, add new suppressions
PROMPT
)" --yolo --model gpt-5-mini \
  --add-dir "$REPO_PATH" \
  --allow-tool 'write' \
  --allow-tool 'shell(uv:*)' \
  --allow-tool 'shell(git:*)' \
  --deny-tool 'shell(git push)' &

# Agent 3: FSM framework
copilot -p "$(cat <<'PROMPT'
Task: FR-CP-004 — FSM framework for workflow/task/action state machines

Test first: tests/test_fsm.py
- Test FSM states and transitions
- Test invalid transitions rejected
- Test events emitted on entry/exit
- Test idempotent state transitions

Implement: src/control_plane/fsm.py

Must pass:
  uv run pytest tests/test_fsm.py -v

Commit: "feat(control-plane): FR-CP-004 FSM framework"

Do not: push, modify other modules, add new suppressions
PROMPT
)" --yolo --model gpt-5-mini \
  --add-dir "$REPO_PATH" \
  --allow-tool 'write' \
  --allow-tool 'shell(uv:*)' \
  --allow-tool 'shell(git:*)' \
  --deny-tool 'shell(git push)' &

wait

echo "M1a Sprint dispatch complete."
echo "Merge: git switch main && git merge $WTV"

Definition of Done (M1a)

  • [ ] Policy engine stores bundles + versions + snapshots
  • [ ] Tool allowlist correctly enforces per-role permissions
  • [ ] FSM validates transitions; rejects invalid ones
  • [ ] All tests pass; coverage ≥80%
  • [ ] No suppressions

Sprint 1b: M1 Control Plane Part 2 (Week 4b)

Entry Condition: M1a complete; policy + tool allowlist + FSM running

Theme: Founder API and WebSocket

Stories:

  • FR-CP-003: Founder REST API
  • FR-CP-005: WebSocket live feed

L3 Agent Dispatch Batch Script

bash
#!/bin/bash
# sprint-m1b-dispatch.sh

REPO_PATH="/Users/kooshapari/temp-PRODVERCEL/485/kush/parpour"
WTV="venture-wt-m1b-api"

if [ ! -d "../$WTV" ]; then
  cd ..
  git worktree add "$WTV" main
  cd "$WTV"
else
  cd "../$WTV"
fi

# Agent: Founder API + WebSocket
copilot -p "$(cat <<'PROMPT'
Task: FR-CP-003 + FR-CP-005 — Founder REST API and WebSocket live feed

Test first: tests/test_founder_api.py tests/test_websocket.py
- Test API CRUD for policies, workspaces, agents
- Test WebSocket subscribers receive state changes
- Test latency < 100ms for WebSocket messages

Implement: src/control_plane/api.py (FastAPI) and src/control_plane/websocket.py

Must pass:
  uv run pytest tests/test_founder_api.py tests/test_websocket.py -v

Commit: "feat(control-plane): FR-CP-003 FR-CP-005 Founder API and WebSocket"

Do not: push, modify other modules, add new suppressions
PROMPT
)" --yolo --model gpt-5-mini \
  --add-dir "$REPO_PATH" \
  --allow-tool 'write' \
  --allow-tool 'shell(uv:*)' \
  --allow-tool 'shell(git:*)' \
  --deny-tool 'shell(git push)' &

wait

echo "M1b Sprint dispatch complete."
echo "Merge: git switch main && git merge $WTV"

Definition of Done (M1b)

  • [ ] Founder API responds on :8000
  • [ ] All CRUD endpoints tested and passing
  • [ ] WebSocket broadcasts with <100ms latency
  • [ ] All tests pass; coverage ≥80%

Sprint 2: M2 Agent Runtime (Week 5–6)

Entry Condition: M1 complete; control plane running

Theme: Agent orchestration, task execution, deterministic replay

Stories:

  • FR-RT-001: L1/L2 orchestrator
  • FR-RT-002: L3 copilot pool
  • FR-RT-003: Task envelope
  • FR-RT-004: Tracer
  • FR-RT-005: Integration

L3 Agent Dispatch Batch Script

bash
#!/bin/bash
# sprint-m2-dispatch.sh

REPO_PATH="/Users/kooshapari/temp-PRODVERCEL/485/kush/parpour"
WTV="venture-wt-m2-runtime"

if [ ! -d "../$WTV" ]; then
  cd ..
  git worktree add "$WTV" main
  cd "$WTV"
else
  cd "../$WTV"
fi

# Agent 1: Orchestrator
copilot -p "$(cat <<'PROMPT'
Task: FR-RT-001 — L1/L2 orchestrator with capability filtering

Test first: tests/test_orchestrator.py
- Test task dispatch based on required capability
- Test policy checks before dispatch
- Test timeout handling
- Test concurrent tasks isolation

Implement: src/runtime/orchestrator.py

Must pass:
  uv run pytest tests/test_orchestrator.py -v

Commit: "feat(runtime): FR-RT-001 L1/L2 orchestrator"

Do not: push, modify other modules, add new suppressions
PROMPT
)" --yolo --model gpt-5-mini \
  --add-dir "$REPO_PATH" \
  --allow-tool 'write' \
  --allow-tool 'shell(uv:*)' \
  --allow-tool 'shell(git:*)' \
  --deny-tool 'shell(git push)' &

# Agent 2: Copilot pool
copilot -p "$(cat <<'PROMPT'
Task: FR-RT-002 — L3 copilot pool with health monitoring

Test first: tests/test_copilot_pool.py
- Test worker spawn with env vars
- Test health check detection (< 10s)
- Test dead worker replacement
- Test graceful shutdown

Implement: src/runtime/copilot_pool.py

Must pass:
  uv run pytest tests/test_copilot_pool.py -v

Commit: "feat(runtime): FR-RT-002 L3 copilot pool"

Do not: push, modify other modules, add new suppressions
PROMPT
)" --yolo --model gpt-5-mini \
  --add-dir "$REPO_PATH" \
  --allow-tool 'write' \
  --allow-tool 'shell(uv:*)' \
  --allow-tool 'shell(git:*)' \
  --deny-tool 'shell(git push)' &

# Agent 3: Task envelope + tracer
copilot -p "$(cat <<'PROMPT'
Task: FR-RT-003 + FR-RT-004 — Task envelope and tracer

Test first: tests/test_task_envelope.py tests/test_tracer.py
- Test envelope wraps task with context (trace_id, workflow_id, agent_role, budget)
- Test tracer logs inputs, outputs, execution time
- Test replay: rebuild from trace logs, outputs match original
- Test deterministic: same replay twice = same output

Implement: src/runtime/task_envelope.py src/runtime/tracer.py

Must pass:
  uv run pytest tests/test_task_envelope.py tests/test_tracer.py -v

Commit: "feat(runtime): FR-RT-003 FR-RT-004 Task envelope and tracer"

Do not: push, modify other modules, add new suppressions
PROMPT
)" --yolo --model gpt-5-mini \
  --add-dir "$REPO_PATH" \
  --allow-tool 'write' \
  --allow-tool 'shell(uv:*)' \
  --allow-tool 'shell(git:*)' \
  --deny-tool 'shell(git push)' &

wait

# Wait for agents to complete, then integration test
echo "Agents complete. Now testing integration..."

# Manual integration test
copilot -p "$(cat <<'PROMPT'
Task: FR-RT-005 — Runtime integration: orchestrator + pool + envelope + tracer

Test first: tests/test_runtime_integration.py
- 10 concurrent tasks dispatched, all complete
- All traces logged and queryable
- Agent death detected and logged
- Replay verification: 5 tasks replayed, outputs match original

Implement: integration test only (no new modules)

Must pass:
  uv run pytest tests/test_runtime_integration.py -v

Commit: "test(runtime): FR-RT-005 Runtime integration tests"

Do not: push
PROMPT
)" --yolo --model gpt-5-mini \
  --add-dir "$REPO_PATH" \
  --allow-tool 'write' \
  --allow-tool 'shell(uv:*)' \
  --allow-tool 'shell(git:*)' \
  --deny-tool 'shell(git push)' &

wait

echo "M2 Sprint dispatch complete."
echo "Merge: git switch main && git merge $WTV"

Definition of Done (M2)

  • [ ] Agents spawn and accept tasks
  • [ ] Task envelope injects all context fields
  • [ ] Traces logged and queryable
  • [ ] Replay verification produces identical outputs
  • [ ] Agent death detected within 10s
  • [ ] Concurrent tasks isolated
  • [ ] All tests pass; coverage ≥80%

Sprint 3: M3 Treasury (Week 7–8)

Entry Condition: M2 complete; agent runtime operational

Theme: Financial controls, ledger, reconciliation

Stories:

  • FR-TRE-001: Money authorization API
  • FR-TRE-002: Double-entry ledger
  • FR-TRE-003: Authorization + ledger integration
  • FR-TRE-004: Reconciliation
  • FR-TRE-005: Compliance gates

L3 Agent Dispatch Batch Script

bash
#!/bin/bash
# sprint-m3-dispatch.sh

REPO_PATH="/Users/kooshapari/temp-PRODVERCEL/485/kush/parpour"
WTV="venture-wt-m3-treasury"

if [ ! -d "../$WTV" ]; then
  cd ..
  git worktree add "$WTV" main
  cd "$WTV"
else
  cd "../$WTV"
fi

# Agent 1: Money API
copilot -p "$(cat <<'PROMPT'
Task: FR-TRE-001 — Default-deny money authorization

Test first: tests/test_money_api.py
- Spend without intent → 403
- Spend with valid intent → 200 + authorization_id
- Reason_code and policy_bundle_id logged
- No fallback on intent check

Implement: src/treasury/money_api.py

Must pass:
  uv run pytest tests/test_money_api.py -v

Commit: "feat(treasury): FR-TRE-001 Money authorization API"

Do not: push, modify other modules, add new suppressions
PROMPT
)" --yolo --model gpt-5-mini \
  --add-dir "$REPO_PATH" \
  --allow-tool 'write' \
  --allow-tool 'shell(uv:*)' \
  --allow-tool 'shell(git:*)' \
  --deny-tool 'shell(git push)' &

# Agent 2: Ledger + reconciliation
copilot -p "$(cat <<'PROMPT'
Task: FR-TRE-002 + FR-TRE-004 — Double-entry ledger and reconciliation

Test first: tests/test_ledger.py tests/test_reconciliation.py
- Ledger: debit + credit pairs, immutable entries, sum to zero
- Reconciliation: daily run compares to processor export, detects drift > $0.01

Implement: src/treasury/ledger.py src/treasury/reconciliation.py

Must pass:
  uv run pytest tests/test_ledger.py tests/test_reconciliation.py -v

Commit: "feat(treasury): FR-TRE-002 FR-TRE-004 Ledger and reconciliation"

Do not: push, modify other modules, add new suppressions
PROMPT
)" --yolo --model gpt-5-mini \
  --add-dir "$REPO_PATH" \
  --allow-tool 'write' \
  --allow-tool 'shell(uv:*)' \
  --allow-tool 'shell(git:*)' \
  --deny-tool 'shell(git push)' &

# Agent 3: Integration + compliance
copilot -p "$(cat <<'PROMPT'
Task: FR-TRE-003 + FR-TRE-005 — Authorization-ledger integration and compliance gates

Test first: tests/test_authorization_ledger.py tests/test_compliance_gates.py
- Authorization → ledger entry created immediately
- Compliance gates block spend based on jurisdiction
- Fail-closed: if policy unavailable, deny

Implement: src/treasury/compliance_gates.py (integration happens in money_api.py)

Must pass:
  uv run pytest tests/test_authorization_ledger.py tests/test_compliance_gates.py -v

Commit: "feat(treasury): FR-TRE-003 FR-TRE-005 Integration and compliance gates"

Do not: push, modify other modules, add new suppressions
PROMPT
)" --yolo --model gpt-5-mini \
  --add-dir "$REPO_PATH" \
  --allow-tool 'write' \
  --allow-tool 'shell(uv:*)' \
  --allow-tool 'shell(git:*)' \
  --deny-tool 'shell(git push)' &

wait

echo "M3 Sprint dispatch complete."
echo "Merge: git switch main && git merge $WTV"

Definition of Done (M3)

  • [ ] Unauthorized spends rejected
  • [ ] Ledger balances
  • [ ] Reconciliation detects drift and creates case
  • [ ] Compliance policy enforces jurisdiction controls
  • [ ] All tests pass; coverage ≥85%

Sprint 4: M4 Artifact Compiler (Week 9–10)

Entry Condition: M3 complete; treasury operational

Theme: Artifact IR, deterministic compilation, provenance

Stories:

  • FR-ART-001: IR schemas
  • FR-ART-002: Compiler pipeline
  • FR-ART-003: Build cache
  • FR-ART-004: Provenance
  • FR-ART-005: Replay verification

L3 Agent Dispatch Batch Script — Similar pattern to M3; 3 parallel agents

Definition of Done (M4)

  • [ ] IR schemas validate all artifact types
  • [ ] Deterministic builds: same IR + toolchain = byte-identical output
  • [ ] Build cache works; cache hits return identical bytes
  • [ ] Provenance signature verifies
  • [ ] Replay verification passes
  • [ ] All tests pass; coverage ≥85%

Sprint 5: M5 Venture Portfolio (Week 11–12)

Entry Condition: M4 complete; artifact compiler operational

Theme: Venture registry, P&L tracking, portfolio management

Stories:

  • FR-PF-001: Venture registry
  • FR-PF-002: P&L engine
  • FR-PF-003: Health score
  • FR-PF-004: Portfolio optimizer
  • FR-PF-005: Tier enforcement

L3 Agent Dispatch Batch Script — 3 parallel agents; similar pattern

Definition of Done (M5)

  • [ ] Ventures created and tracked with tiers
  • [ ] P&L accurate (profit = revenue - spend)
  • [ ] Portfolio optimizer recommends tier changes
  • [ ] Tier spend limits enforced
  • [ ] All tests pass; coverage ≥80%

Sprint 6: M6 Compliance + Hardening (Week 13–14)

Entry Condition: M5 complete; all systems integrated

Theme: Audit trail, DSAR, incident response, load testing

Stories:

  • FR-HRD-001: Audit trail (append-only)
  • FR-HRD-002: DSAR orchestration
  • FR-HRD-003: Incident classification + response
  • FR-HRD-004: Test coverage (≥95%)
  • FR-HRD-005: Load test (1000 agents)

L3 Agent Dispatch Batch Script

bash
#!/bin/bash
# sprint-m6-dispatch.sh

REPO_PATH="/Users/kooshapari/temp-PRODVERCEL/485/kush/parpour"
WTV="venture-wt-m6-hardening"

if [ ! -d "../$WTV" ]; then
  cd ..
  git worktree add "$WTV" main
  cd "$WTV"
else
  cd "../$WTV"
fi

# Agent 1: Audit + DSAR
copilot -p "$(cat <<'PROMPT'
Task: FR-HRD-001 + FR-HRD-002 — Audit trail and DSAR workflows

Test first: tests/test_audit_trail.py tests/test_dsar.py
- Audit trail: append-only, immutable, includes policy_bundle_id
- DSAR: request → process → deletion within 24h

Implement: src/compliance/audit_trail.py src/compliance/dsar.py

Must pass:
  uv run pytest tests/test_audit_trail.py tests/test_dsar.py -v

Commit: "feat(compliance): FR-HRD-001 FR-HRD-002 Audit and DSAR"

Do not: push, modify other modules, add new suppressions
PROMPT
)" --yolo --model gpt-5-mini \
  --add-dir "$REPO_PATH" \
  --allow-tool 'write' \
  --allow-tool 'shell(uv:*)' \
  --allow-tool 'shell(git:*)' \
  --deny-tool 'shell(git push)' &

# Agent 2: Incident response
copilot -p "$(cat <<'PROMPT'
Task: FR-HRD-003 — Incident classification and automated response

Test first: tests/test_incident_response.py
- Classify: OVERSPEND, UNAUTHORIZED_TOOL, DATA_BREACH, POLICY_FAILURE
- Execute playbooks: freeze workflow, revoke capability, create case
- Idempotent execution

Implement: src/compliance/incident_response.py

Must pass:
  uv run pytest tests/test_incident_response.py -v

Commit: "feat(compliance): FR-HRD-003 Incident response"

Do not: push, modify other modules, add new suppressions
PROMPT
)" --yolo --model gpt-5-mini \
  --add-dir "$REPO_PATH" \
  --allow-tool 'write' \
  --allow-tool 'shell(uv:*)' \
  --allow-tool 'shell(git:*)' \
  --deny-tool 'shell(git push)' &

# Agent 3: Coverage + load test
copilot -p "$(cat <<'PROMPT'
Task: FR-HRD-004 + FR-HRD-005 — Test coverage audit and load testing

Work:
1. Run coverage: pytest --cov=src --cov-report=term-missing
2. Identify modules with <95% coverage
3. Add integration tests for gaps
4. Load test: spawn 1000 agents, each runs 10 tasks
   - Measure: latency p50/p95/p99, throughput, errors
   - Acceptance: p99 < 5s, throughput > 100 tasks/sec

Must pass:
  pytest --cov=src --cov-report=term-missing -v
  tests/load_test.py --agents 1000

Commit: "test: FR-HRD-004 FR-HRD-005 Full coverage and load tests"

Do not: push
PROMPT
)" --yolo --model gpt-5-mini \
  --add-dir "$REPO_PATH" \
  --allow-tool 'write' \
  --allow-tool 'shell(uv:*)' \
  --allow-tool 'shell(git:*)' \
  --deny-tool 'shell(git push)' &

wait

echo "M6 Sprint dispatch complete."
echo "Merge: git switch main && git merge $WTV"

Definition of Done (M6)

  • [ ] Audit trail append-only and tamper-evident
  • [ ] DSAR processed in <24h; data deleted
  • [ ] Incident playbooks execute automatically
  • [ ] Test coverage ≥95% across all modules
  • [ ] Load test passes: 1000 agents, p99 < 5s
  • [ ] Reconciliation still passes after load test (no data loss)

Ceremony Schedule

Weekly Sync (Every Monday, 9 AM)

  • Duration: 30 min
  • Attendees: Venture Platform Team (1 user, 3–5 L3 copilot agents)
  • Agenda:
    1. Sprint status: which agents on track, which blockers
    2. Blocker resolution: dependencies, environment issues
    3. Upcoming sprint preview
  • Output: Updated WORK_STREAM.md with status

Sprint Planning (Day 1 of Sprint)

  • Duration: 1 hour
  • Attendees: Venture Platform Team
  • Agenda:
    1. Review exit criteria for previous sprint
    2. Confirm all dependencies met
    3. Dispatch L3 agent batch script
    4. Define success metrics for sprint
  • Output: Worktree created; agents dispatched; monitoring set up

Daily Standup (Async, End of Each Day)

  • Format: Commit log review
  • Check: git log --oneline venture-wt-m{N}-* | head -10
  • Verify: Agents making progress; commits formatted correctly; tests passing

Sprint Review (End of Sprint)

  • Duration: 1 hour
  • Attendees: Venture Platform Team
  • Agenda:
    1. Demo: run all tests for sprint
    2. Verify coverage ≥80%
    3. Review commits and code quality
    4. Discuss next sprint readiness
  • Output: Decision to merge worktree or rework

Sprint Retrospective (End of Sprint, Optional)

  • Duration: 30 min
  • Attendees: Venture Platform Team
  • Agenda:
    1. What went well?
    2. What could improve?
    3. Adjust agent dispatch script or guidance for next sprint
  • Output: Updated L3 dispatch script with lessons learned

Monitoring and Observability

Git Log Monitoring (Real-Time)

bash
# Watch for new commits
watch -n 5 'git log --oneline venture-wt-m*.* | head -20'

# Or scripted:
while true; do
  clear
  echo "=== M0 Foundation ==="
  git log --oneline venture-wt-m0-foundation | head -5
  sleep 10
done

Test Results Tracking

bash
# After each agent completes:
git switch venture-wt-m{N}-{name}
uv run pytest tests/ -v --tb=short
uv run ruff check src/

Coverage Dashboard

bash
# Post-sprint:
uv run pytest --cov=src --cov-report=html
open htmlcov/index.html  # View coverage by module

Git Worktree Management

Create Worktree (Sprint Start)

bash
cd /Users/kooshapari/temp-PRODVERCEL/485/kush/parpour
git worktree add ../venture-wt-m{N}-{name} main
cd ../venture-wt-m{N}-{name}

Review Commits (User, During Sprint)

bash
# See what agents committed
git log --oneline -20

# Review specific commit
git show <commit-hash>

# See all changes since main
git diff main..HEAD

Merge Worktree (Sprint End)

bash
cd /Users/kooshapari/temp-PRODVERCEL/485/kush/parpour
git switch main
git merge venture-wt-m{N}-{name}
git worktree remove ../venture-wt-m{N}-{name}

If Merge Conflict

bash
# Resolve manually
git status
# Edit conflicting files
git add <resolved-files>
git commit -m "merge: resolve conflicts from venture-wt-m{N}-{name}"

L3 Agent Best Practices

Commit Message Format

feat(module): FR-XXX-YYY Short description

Optional longer description. What was implemented.
Why this approach. Any tradeoffs considered.

Tests: pytest tests/test_module.py -v [PASS]
Lint: ruff check src/module.py [PASS]

What to Do If Stuck

  1. First: Check PLAN.md for acceptance criteria; are you on track?
  2. Second: Review test failures carefully; run locally
  3. Third: If true blocker (e.g., missing service), ask user via commit message or note
  4. Fourth: Never commit failing tests or suppressions

Safe Permission Set by Task Type

  • Research tasks (reading specs, understanding code): Read-only (--allow-tool 'shell(git status)')
  • Write + test: --allow-tool 'write' + --allow-tool 'shell(uv:*)' + --allow-tool 'shell(git:*)'
  • Infra setup: Same as write + test, plus --allow-tool 'shell(docker:*)' if needed

Cross-Sprint Dependencies

M0 → M1 Critical Path

  • M0 must complete PostgreSQL, NATS, Redis, process-compose before M1 can start policy engine

M2 → M3 Critical Path

  • M2 runtime must be working before M3 can test money authorization with real agent tasks

M4 → M5 Critical Path

  • M4 artifact compiler must be deterministic before M5 can build venture portfolio

M6 Must Complete All Predecessors

  • Load test (M6) requires all M0–M5 running without data loss

Success Metrics for Entire Workstream

MetricTargetMeasurement
Schedule Adherence12–14 weeksWall-clock time from sprint 0 start to M6 merge
Quality Gate≥95% coveragepytest --cov=src --cov-report=term-missing
Test Pass Rate100%All tests pass on main branch
Load Testp99 < 5s, 1000 agentstests/load_test.py --agents 1000
ReconciliationZero driftLedger balances; processor export matches
SuppressionsZero newNo new # noqa, # pragma, # type: ignore
CommitsClean formatAll commits follow feat(module): FR-XXX description

Troubleshooting

Agent Not Making Progress

  1. Check copilot session: ls -la ~/.copilot/sessions/
  2. Check error logs in agent output
  3. Re-dispatch agent with --resume flag (if stuck in infinite loop)
  4. Check task dependencies: is required predecessor complete?

Test Failure During Sprint

  1. Pull latest from main: git fetch origin main
  2. Rebase on main: git rebase main (in worktree)
  3. Run tests locally: uv run pytest tests/test_module.py -v
  4. Fix code; commit; continue

Data Loss During Load Test

  1. Check reconciliation: uv run pytest tests/test_reconciliation.py -v
  2. Check ledger balance: SELECT SUM(amount) FROM ledger WHERE type='DEBIT' vs CREDIT
  3. If drift: investigate transaction log; fix missing entries
  4. Run reconciliation again

Merge Conflict in Worktree

  1. List conflicting files: git status
  2. Open each file; resolve manually
  3. git add <file> for each resolved file
  4. git commit -m "merge: resolve conflicts"

Appendix: Sprint at a Glance

SprintMilestoneDatesKey DeliverablesExit Gate
0M0: FoundationWk 1–2PostgreSQL, NATS, Redis, process-compose, schema registryAll services up; event validation works
1aM1a: Control (Part 1)Wk 3–4aPolicy engine, tool allowlist, FSMPolicy bundles versioned; FSM validates
1bM1b: Control (Part 2)Wk 4bFounder API, WebSocketAPI responds; WebSocket broadcasts <100ms
2M2: RuntimeWk 5–6L1/L2 orchestrator, L3 pool, envelope, tracerAgents execute; replay deterministic
3M3: TreasuryWk 7–8Money API, ledger, reconciliation, complianceLedger balances; reconciliation detects drift
4M4: CompilerWk 9–10IR schemas, pipeline, cache, provenanceBuilds deterministic; provenance verifies
5M5: PortfolioWk 11–12Venture registry, P&L, optimizer, tier enforcementP&L accurate; optimizer recommends
6M6: ComplianceWk 13–14Audit trail, DSAR, incident response, load testCoverage ≥95%; load test passes 1000 agents

Workstream Status: ACTIVE Last Updated: 2026-02-21 Next Review: Sprint 0 Planning (Day 1)