Draft live-state signature packs
Epic 5329 ask (verbatim): "Analyze current code, processes and documentation and close the gap to being SOC 2 compliant. Humans can participate but only where it cannot be avoided legally. Ask questions, but do not offload any work that you are technically able to do."
Sources: PRD (Task 5330) and architecture (Task 5331, §3 A9) of epic 5329 — read them with `task_read` / `task_read_artifact`. Binding decisions (verbatim): "D3 Outreach: None." "D5 ... Ground truth is code, terraform and live AWS reached through `jaah/system/bootstrap-admin`, not the old docs."
Credentials: `jaah/system/bootstrap-admin` (read-only AWS across every org account via `OrganizationAccountAccessRole`, explicit `--region`) and the GitHub read access `jaah-forge` provides; confirm with `task_credential_list` first (missing = BLOCKER ask). Evidence filing: `tools/evidence_store.py` CLI with `EVIDENCE_BUCKET=jaah-main-evidence-366008913850`; Object Lock GOVERNANCE 3y — every filing is permanent; dry-run to `./evidence-out/` first; never file a placeholder.
## Requirement (verbatim from PRD)
"### R8 ... **AC8.3** The following drafts are in `reviews/` as files ready for Roman to sign: the first annual risk assessment; the asset inventory reconciled against live AWS (every org account) and GitHub; the first quarterly management-review minutes pack."
PRD §5 quality bar (verbatim): "Drafts for signature must be complete, specific to Jaah's real setup, and correct against live state."
## Scope and approach (from the settled architecture)
Architecture A9, part 2 — runs after prod verification so these state-describing drafts are filed ONCE, against final live state (Object Lock: a stale filing is permanent). Read every upstream child's settle summary (`task_read`) for late risk rows and the backup-account outcome. Documents (Markdown or HTML readable via `aws s3 cp`, R29), filed per DA6 as `reviews/<date>/<slug>.draft.<ext>` with `Status: awaiting signature`:
- **Annual risk assessment:** walks `docs/compliance/system-description.md` and the live AWS account list; covers R-SOC-1..7 and every late risk named upstream.
- **Asset inventory, reconciled live:** every org account via `resourcegroupstaggingapi` / Config, plus GitHub; also updates `docs/compliance/asset-inventory.md` in a develop PR.
- **Q1 management-review minutes pack:** agenda, inputs (this epic's live results, risk register, incidents, vendor status), decisions to record, attendance/signature block.
Name the three "sign X" acts in the settle summary for the close-out child's R16 list.
Out of scope: Epic-wide fences (PRD §6, verbatim): "No agent merges or pushes to `master`. No agent approves its own promotion. No agent applies to prod any change not yet promoted. Delivery is a PR to `develop` (D1)." "No contact with any outside party: no emails, Slack messages to externals, vendor portals, NDA click-throughs or RFPs sent; no contracts; no new vendor or subprocessor, which also excludes PagerDuty/Opsgenie and Drata (D3, D7, D8)." "Legacy account 210352747749 is untouched." "Out of scope: Security Hub MEDIUM and LOW findings (D10) — registered only; evidence automation: no new crons, workflows or collectors whose purpose is recurring evidence (D7); Type II, the observation window, the audit, auditor engagement; `compliance_locks` and the vault-lock *compliance* mode." "No change to the console Compliance page, `portfolio/registry.toml` or `portfolio/engine/`" (epic 5303 owns them). "No secret value in any doc, register, evidence object or report." "No weakening of an existing control to make a check pass." This child: No policy or risk-register edits (policies child / close-out child). Nothing sent to anyone (D3). PRD quality bar: placeholders fail done.
Done means:
- Filed — oracle: `aws s3 ls s3://jaah-main-evidence-366008913850/reviews/ --recursive` lists the three `.draft.` objects (URIs cited).
- Not a stub — oracle: `grep -nEi 'todo|tbd|lorem|placeholder|<[a-z_ ]+>'` on each fetched object returns nothing; each has `Status: awaiting signature`.
- Inventory reconciled — oracle: it lists EVERY account from `aws organizations list-accounts` at run time (count matches; the backup account included if it exists) with resource counts from the live API calls named in the doc, plus GitHub repos/collaborators; `docs/compliance/asset-inventory.md` updated in a merged develop PR; `./dc check full` green. (Pushed as the fleet user, the PR touches `/docs/compliance/` and may need Roman's code-owner approval once rulesets are live — ask once with the PR link if so.)
- Risk assessment covers every R-SOC row in `docs/compliance/risk-register.md` plus late rows named upstream — oracle: row IDs cross-checked in the report.
Outcome
3 locked drafts filed to reviews/2026-10-09; inventory doc reconciled (PR #4762 merged, deploy green). R16 acts: sign risk assessment; sign inventory reconciliation; hold mgmt review + sign minutes. Prod canary in ALARM (L-23). Pre-existing selftest red.
Artifacts
Activity
- Draft
- Ready
- Runner started
- Runner ended (done)