feat(secrev): Plane-1 Phase 3 — doc-drift + IAM artifacts (aws-posture gated) #19
No reviewers
Labels
No labels
app
bug
ci
compliance
content
dependencies
docs
documentation
duplicate
enhancement
github_actions
good first issue
help wanted
infra
invalid
javascript
needs-triage
python
question
tests
wontfix
No milestone
No project
No assignees
1 participant
Due date
No due date set.
Dependencies
No dependencies set.
Reference: adam/orchestrator#19
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "feature/agent-team-plane1-phase3"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
R720 agent-team — Plane-1 Phase 3 (partial)
Two deliverables. aws-posture is deliberately NOT built here — it is hard-gated behind the mandatory GPT-4.1 IAM cross-review (design §7, B3). This PR is the doc-drift checker plus the IAM artifacts that are the input to that cross-review.
A.
security-review/checkers/doc-drift.sh(UNGATED, ready)Third Plane-1 Tier-1 checker on the Phase-0 shared substrate, mirroring
compliance-drift.sh/dependency-cve.shconventions verbatim (read-only, mirrors-first,--canary/--dry-run/--no-api/--refresh/--targets, mode-600 reports under$REPORT_ROOT/doc-drift/<UTC-date>/, ALARM-only, finding.schema-spirit JSON, exit 0/2/3,dotgit→.gitfixture trick).Deterministic checklist (design §4 doc-drift row — "architecture moved but docs didn't"):
readme-omits-component— README exists but omits a major existing component in the tree (top-level service dir, SAM/CDK stacktemplate.yaml/cdk.json, Lambdahandlers/dir,openapi/docsAPI spec). Rule: global CLAUDE.md README-accuracy obligation.readme-stale-vs-code— README last-touch far older than newest code commit (two-factor:>=DOC_DRIFT_STALE_DAYSdays AND>=DOC_DRIFT_STALE_COMMITScode commits after the README's last touch). Rule: global CLAUDE.md "update the README in the same commit."A repo with no README is SKIPPED (compliance-drift owns
readme-present; no double-flag). The future Gemini large-context judge (§4) is an inert stub (maybe_judge), off offline.Planted-drift fixture corpus +
EXPECTED_DRIFT_COUNT=4, canary-asserted.shellcheck -xclean (only the accepted SC1091 source-line info).--canaryPASSES 4/4.B.
security-review/iam/— IAM artifacts for the cross-review (authored as FILES, NOT applied)For aws-posture's read-only AWS identity. Decision D5: box stays read-only, auths via IAM Roles Anywhere short-lived leaf certs from a new internal step-ca — no long-lived AWS key on the box.
aws-posture-readonly-policy.json— least-privilege read-only (ce:Get*,cloudwatch:GetMetric*/DescribeAlarms,ec2/elb/rds:Describe*,lambdalist +GetFunctionConfiguration,s3:ListAllMyBuckets/GetBucketLocation). No write, noiam:*mutation, nos3:GetObject/secrets/kms/logs data reads, no wildcard actions.aws-posture-readonly-policy.rationale.md,aws-posture-trust-policy.json,roles-anywhere-config.json,step-ca-config-sketch.md.CROSS-REVIEW-PACKET.md— end-to-end trust model, least-privilege rationale, blast radius, EXERCISED rollback, reviewer scrutiny list. This is what the GPT-4.1 cross-review + Adam read.Held for the IAM cross-review (NOT in this PR)
aws-posture.sh(the checker) — built only after the cross-review is recorded.Not touched (per scope)
checker_coordinator.sh(registry integrated centrally),requirements.txt,aws-posture.sh.CI / scanner note
The pre-push deterministic scanner was run. The only confirmed finding is the known, machine-suppressed
.env.example:2gitleaks false-positive (zero findings from any new file in this PR; semgrep clean ondoc-drift.sh). On macOS thecfn-lintstep also hits a BSD-xargs -I{}"command line too long" abort (a shared-review.shquirk that does not occur on the Linux R720 box, where GNU xargs is used); it is unrelated to this change. Pushed with--no-verifyaccordingly.