Skip to content

Latest commit

 

History

History
93 lines (67 loc) · 4.52 KB

File metadata and controls

93 lines (67 loc) · 4.52 KB

TASKS

Source of truth for the harness extraction. Cross-referenced with the issues and the project board.

Status legend

  • ✅ Merged
  • 🔄 In progress
  • 📋 Backlog

Phases

Phase 0 — Bootstrap

# Title Size Priority Status
1 chore: bootstrap repo (pyproject, uv lockfile, Python 3.14, MIT license) M Critical

Phase 1 — Configuration

# Title Size Priority Depends Status
2 chore: ruff + mypy strict + import-linter + commitizen config M Critical #1
3 chore: pre-commit hook stack (ruff, gitleaks, commitizen, mypy, hygiene) S Critical #2
4 chore: justfile recipes (lint, typecheck, test, architecture, check, frontend-check) S High #2
5 chore: .gitignore, .editorconfig, .dockerignore S High #1
6 chore: Dockerfile (multi-stage, Python 3.14, non-root, healthcheck) M High #1
7 chore: docker-compose.yml (app + frontend + jaeger) S High #6
8 chore: GitHub issue + PR templates + CODEOWNERS S High #1

Phase 2 — Claude harness

# Title Size Priority Depends Status
15 chore: .claude hooks (pretooluse_bash, posttooluse_writeedit, sessionstart) + settings.local.json.example M High #1
16 chore: port portable .claude/skills S Medium #15

Phase 3 — CI + repo policy

# Title Size Priority Depends Status
9 chore: CI workflow (lint, typecheck, tests, coverage ≥75%, architecture) L Critical #2, #3
10 chore: CI meta-gates (branch-protection contexts sync, commit-types sync) M High #9
11 chore: security workflow (gitleaks, pip-audit, npm audit, trivy) M High #9
12 chore: PR title lint + release-drafter S High #2
13 chore: release workflow (tag-triggered, SBOM, GH Release publish) M Medium #6, #12
14 chore: branch-protection JSON + apply workflow + artifact cleanup + CodeQL M High #9, #10

Phase 4 — Backend scaffold

# Title Size Priority Depends Status
17 feat: backend scaffold (FastAPI app, /api/v1/health, /api/v1/echo, sessions) M Critical #2
18 feat: Pydantic StrictModel base + example schemas (health, session, config) S Critical #17
19 feat: observability setup (OTel SDK, OTLP exporter, structured logging, span helpers) M High #17
20 feat: tool-registry pattern + example echo_tool (demonstrates layering) S Medium #18

Phase 5 — Frontend scaffold

# Title Size Priority Depends Status
21 feat: frontend scaffold (Vite + React 19.2 + TS strict, eslint flat + prettier + vitest) M Critical #1
22 feat: typed SSE client primitive (typed POST + ReadableStream) S High #21
23 feat: hello page hitting /api/v1/health + CSS-variable palette + sample component test S Medium #21, #22

Phase 6 — Eval scaffolding

# Title Size Priority Depends Status
24 feat: eval harness scaffold (runner, judge, report, models) + 1 example golden case + nightly workflow_dispatch M High #18, #19

Phase 7 — Documentation

# Title Size Priority Depends Status
25 docs: HARNESS, INVARIANTS, BOUNDARIES, DEVELOPMENT, EVAL_HARNESS, SECURITY, ARCHITECTURE skeletons L High #2, #9, #15
26 docs: README, CONTRIBUTING, CLAUDE.md, CHANGELOG seed, TASKS.md M High #25

Phase 8 — Verification

# Title Size Priority Depends Status
27 test: end-to-end smoke (docker compose up, sample PR runs every gate green, eval workflow_dispatch) M Critical all above 📋

Phase 9 — Publish

# Title Size Priority Depends Status
28 chore: publish — flip public, mark template, topics, portfolio polish (badges, screenshots) S Medium #27 📋

Critical-path summary

#1 → #2 → #9 → (#10 + #11 + #12 + #13 + #14) clears CI; #17–#20 clears backend; #21–#23 clears frontend; #24 adds eval; #25–#26 adds docs; #27 smokes the whole thing; #28 publishes.