From 5c34e6c77b0dde124a90a8979e706bfc6788d5d8 Mon Sep 17 00:00:00 2001 From: Forge Swarm Date: Mon, 20 Jul 2026 22:29:51 +0200 Subject: [PATCH 01/47] docs(plan): audit remediation implementation plan --- .../plans/2026-07-20-audit-remediation.md | 382 ++++++++++++++++++ 1 file changed, 382 insertions(+) create mode 100644 docs/superpowers/plans/2026-07-20-audit-remediation.md diff --git a/docs/superpowers/plans/2026-07-20-audit-remediation.md b/docs/superpowers/plans/2026-07-20-audit-remediation.md new file mode 100644 index 00000000..9ce1fe85 --- /dev/null +++ b/docs/superpowers/plans/2026-07-20-audit-remediation.md @@ -0,0 +1,382 @@ +# Audit Remediation Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** Close every fixable gap found in the 2026-07-20 whole-project audit: wrong/stale docs, dead config knobs, unrun CI lanes, and four "looks wired but silently does nothing" code paths, plus missing trust-layer surfaces and docs. + +**Architecture:** Four phases. Phase 1 makes docs/config tell the truth (independent file sets, parallel-safe). Phase 2 makes CI actually gate what exists. Phase 3 wires the silent-failure code paths. Phase 4 completes the trust-layer surfaces (REST/UI). Each task is independently reviewable and committed separately. + +**Tech Stack:** Python 3.12 + uv workspace (FastAPI, Celery, SQLAlchemy/Alembic, pydantic), Next.js 16/React 19 + vitest (`apps/web`), GitHub Actions, docker compose, Caddy/nginx. + +## Global Constraints + +- Branch: all work lands on `audit-remediation` (branched from `main` @ `24832c7`). One conventional commit per task — `cz check` gates PR commits, so messages MUST match `type(scope): subject` (feat/fix/docs/ci/chore/test/refactor). +- NEVER run whole-repo `pytest` in a task (db migration tests alone take ~20 min). Run targeted paths only, e.g. `uv run pytest apps/worker/tests -q`. +- New Python test files MUST either have a repo-unique basename or live in a directory containing `__init__.py` — whole-repo collection breaks on duplicate bare basenames (until Task 9 lands importlib mode). +- Python: `uv run ` (pytest, mypy, ruff). Web: `pnpm --filter @forge/web