Source of truth for the harness extraction. Cross-referenced with the issues and the project board.
✅ Merged
🔄 In progress
📋 Backlog
#
Title
Size
Priority
Status
1
chore: bootstrap repo (pyproject, uv lockfile, Python 3.14, MIT license)
M
Critical
✅
#
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
✅
#
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
✅
#
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
✅
#
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
📋
#
Title
Size
Priority
Depends
Status
28
chore: publish — flip public, mark template, topics, portfolio polish (badges, screenshots)
S
Medium
#27
📋
#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.