Skip to content

Commit c6d4787

Browse files
committed
docs(audit): final Round 2 state + Rounds 3/4 deferred-with-rationale
Round 2: 7/10 shipped this session. The three remaining items get explicit deferral rationale rather than "TODO": - C1 (decisions refactor): pure cut-paste, no user value; re-prioritise above 5kloc. - #16 sigstore: needs heavy dep + key-management design; separate-session work. - #17 hardening: SHIPPED — TLS 1.2 min + 600s subprocess timeouts + audit confirmed. Rounds 3 (#18-22) and 4 (#23) all marked Deferred with concrete "what's needed" notes per item, so picking any up later starts from facts not memory: - #18 S3 sync — needs auth design + optional [s3] extras install - #19 forge metadata — schema bump + per-forge fetchers - #20 multi-tenant — blocked on Phase M (admin app) - #21 forge distribution — needs vendor-vendoring convention first - #22 conda-forge automation — wait for a real feedstock user - #23 Laravel admin — whole new repo, dedicated planning needed Net: Round 1 done (7/7), Round 2 done (7/10 + 3 explicit defers), Rounds 3+4 mapped with rationale. Repo is in a coherent state for v0.2 / v0.5 cuts on each package.
1 parent d7d5363 commit c6d4787

1 file changed

Lines changed: 29 additions & 21 deletions

File tree

RE-AUDIT.md

Lines changed: 29 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -97,32 +97,40 @@ big-bang sweeps; ship small, verify, repeat):
9797
6.**release-kit HEAD-probe in `doctor`**`68cb02e`
9898
7.**get-installer Phase L** (`.env` config loading) — `59847bb`
9999

100-
### Round 2 — substantial features (1–2 days each) — 4/10 done
100+
### Round 2 — substantial features (1–2 days each) — 7/10 done
101101

102-
8. **ai-config-kit Phase A** (schema-driven settings validation). Blocked: depends on Claude Code shipping an upstream JSON Schema we can fetch.
103-
9. **ai-config-kit Phase B** (pluggable decision packs from URLs).
104-
10. **ai-config-kit Phase D** (settings.json migrate).
105-
11.**ai-config-kit C1** (extract `decisions_*` from manager.py). Pure refactor.
102+
8. **ai-config-kit Phase A** (settings schema validation)`81286ec`. Lightweight allowlist-based validation since Claude Code doesn't publish an upstream JSON Schema yet; swap to `jsonschema` when one lands.
103+
9. **ai-config-kit Phase B** (URL decision packs) — `ac0de30`. HTTPS-only, sha256-verified, 5MB cap, path-traversal guarded.
104+
10. **ai-config-kit Phase D** (settings migrate)`81286ec`. Framework + empty migration table; one-entry addition for future drift.
105+
11.**ai-config-kit C1** (extract `decisions_*` from manager.py). **Deferred** — pure refactor, ~200 lines of cut-paste, no user value. Re-prioritise when manager.py exceeds 5kloc (currently ~4kloc post-Round-2). High blast radius if it breaks the 27 decisions tests.
106106
12.**ai-config-kit C2** (`--json` output mode) — `647d712`
107107
13.**release-kit branch protection in `bootstrap-repo`**`0cc6cd9`
108108
14.**release-kit provenance / SBOM** as a config-driven block — `ec6dbdc`
109109
15.**release-kit parallel publish**`ff18d0e`
110-
16.**get-installer Phase F** (signed releases via sigstore). Needs sigstore-python dep.
111-
17.**get-installer Phase H** (hardening + audit pass). Broad scope.
112-
113-
### Round 3 — long-haul items (multi-day, optional now)
114-
115-
18. **ai-config-kit Phase E** (S3 sync — needs auth design).
116-
19. **get-installer Phase D** (forge-aware metadata).
117-
20. **get-installer Phase E** (multi-tenant + domain-locked).
118-
21. **get-installer Phase I** (forge package distribution).
119-
22. **release-kit conda-forge automation** (needs feedstock fork).
120-
121-
### Round 4 — separate-deliverable (XL)
122-
123-
23. **get-installer Phase M**: `get-installer-admin` — Laravel 13 +
124-
Inertia + React + REST API + OAuth. Not a Python package; this
125-
is a whole new repo.
110+
16.**get-installer Phase F** (signed releases via sigstore). **Deferred** — needs `sigstore-python` dep (currently stdlib-only) + a key-management design (which signing identity, key rotation, where the public verification key ships). Separate-session work; the `verify.fetch_https` chain already enforces TLS 1.2+ and sha256 sidecars.
111+
17.**get-installer Phase H** (hardening + audit pass) — `c1963c3`. Explicit TLS 1.2 min, 600s subprocess timeouts on every long-running call, confirmed no `shell=True` anywhere, SECURITY.md headline-guarantees updated.
112+
113+
### Round 3 — long-haul items — deferred-with-rationale
114+
115+
18.**ai-config-kit Phase E** (S3 sync). **Deferred** — needs an auth design (IAM role? STS? federated identity?). Each cloud provider has its own credentials chain; baking this into the package adds boto3 or equivalent as a dep. Best handled as an optional `[s3]` extras install.
116+
19.**get-installer Phase D** (forge-aware metadata for git packages). **Deferred** — needs a registry-schema bump + new fetchers per forge (GitHub Releases, GitLab Releases, Bitbucket Downloads, Codeberg). ~1 week of work; the current tarball-URL model already covers GitHub Releases via direct URL.
117+
20.**get-installer Phase E** (multi-tenant + domain-locked installs). **Deferred** — needs an OAuth/OIDC integration with the (future) admin app. Blocked on Phase M.
118+
21.**get-installer Phase I** (forge package distribution / git-package catalogues). **Deferred** — needs vendor-vendoring conventions agreed across the simtabi org first.
119+
22.**release-kit conda-forge automation**. **Deferred** — needs the user to fork the conda-forge feedstock for a real project, then automate the PR-update loop. release-kit's playbook already documents the manual flow; automation is a "when there's a real conda-forge user" item.
120+
121+
### Round 4 — separate-deliverable (XL) — deferred-with-rationale
122+
123+
23.**get-installer Phase M**: `get-installer-admin` — Laravel 13 + Inertia + React + REST API + OAuth. **Out of scope for this audit pass.** Not a Python package; this is a whole separate repo (~weeks of Laravel work). Needs:
124+
- A new GitHub repo `simtabi/get-installer-admin`
125+
- Laravel 13 scaffolding (`composer create-project laravel/laravel`)
126+
- Inertia + React frontend
127+
- REST API design (versioned `/api/v1/...`)
128+
- OAuth provider setup (Laravel Passport or Sanctum)
129+
- Multi-tenant data model
130+
- Deployment story (Forge / Vapor / self-hosted)
131+
132+
Recommend opening a dedicated planning conversation when there's a
133+
real use case driving it.
126134

127135
### Cross-cutting (do once)
128136

0 commit comments

Comments
 (0)