3.0 KiB
3.0 KiB
Sprint 0 — Mimic
Repo skeleton + foundational modules. Nothing that depends on PR1/PR2/PR3.
Backend (backend)
- B0.1 —
backend/Python project:pyproject.toml(ruff, mypy strict, pytest, coverage),Makefile,Dockerfile,docker-compose.ymlfor Postgres dev DB. - B0.2 — Alembic init + complete initial migration covering the §8 schema (incl.
c2_credential,user,group,user_group,permission,group_permission,soc_session, audit_log with write-only Postgres role). Nottp_versiontable (D-009). Seed groupsrt_operator,rt_lead,soc_analystwith F11 permissions (D-008). - B0.3 — SQLAlchemy 2 typed mapped classes for every table + repositories scaffold.
- B0.4 —
C2ConnectorABC + dataclasses (Payload,TaskHandle,TaskResult) + enumpayload_type+ factory keyed onc2_type. No real implementation. - B0.5 — Jinja2 SandboxedEnvironment +
regex_extractfilter viagoogle-re2+{{outputs.text}}and{{outputs.blob(key)}}accessors with 10 MB cap. - B0.6 — Local auth (login/password bcrypt + Flask server-side sessions) + RBAC group-based decorators + F11 permission matrix declared in code.
- B0.7 — Flat CRUD endpoints (engagements, hosts, TTPs, scenarios) — no orchestration, no WebSocket, no reporting yet.
- B0.8 — pytest baseline: unit (SQLite) + integration scaffold (testcontainers Postgres).
Frontend (ux-frontend)
- F0.1 —
frontend/Vite + React + TypeScript strict + Tailwind 4 + TanStack Query 5, eslint strict + prettier, Playwright skeleton. - F0.2 — Design system provisional: semantic tokens in
theme.css(status colors, RT accent, data mono / UI sans), dark-first palette, placeholder logo. - F0.3 — Wireframes (via
frontend-designskill) on mock data: Login + engagement selection, Live cockpit, Scenario composer, Report + MITRE matrix, TTP library + import. - F0.4 — Routing skeleton + role-aware layout shell (no real auth wired yet).
Spec / Docs (spec-analyst)
- S0.1 — Cross-check the data model in B0.2 against §8 of the spec; report deltas before merge.
- S0.2 — Cross-check the RBAC matrix in B0.6 against F11; report deltas before merge.
- S0.3 — Maintain
tasks/spec-decisions.mdas new arbitrations land. - S0.4 — Open
docs/architecture.mdonce backend layout is committed.
Review (code-reviewer)
- R0.1 — Review each PR per the published charter; block on security/OPSEC violations.
- R0.2 — Verify mypy strict and ruff clean before approving any backend PR.
- R0.3 — Verify TS strict, no
useEffect(fetch), exhaustive deps before approving any frontend PR.
Conventions
- Branches:
feature/<scope>,fix/<scope>,docs/<scope>,chore/<scope>. Long-lived:main. - Commits: Conventional Commits (
feat:,fix:,chore:,docs:,test:,refactor:). - PRs: each branch → review (
code-reviewer) → team-lead merges. - No direct push to
main.