docs(secrets): start W4 access hardening #435

Merged
pdurlej merged 1 commit from codex/w4/secrets-access-triage into main 2026-05-24 18:54:17 +02:00
Collaborator

Canary status: missing - rely on required Forgejo checks before merge

Canary Context Pack

Product story

W3 is accepted enough to continue, so W4 needs a clean secrets/access map before agents start touching PATs, Infisical, MCP identity, Redis argv, Kan config, or Vault sunset.

What changed

  • Adds state/cycle/W4-secrets-access-hardening-output.md.
  • Marks W4 active in state/STATUS_NOW.md.
  • Adds W4 subwaves to state/roadmap/current-platform-roadmap.md.

Why it changed

W4 is security-sensitive and too broad to execute as a single blob. This PR creates the operator-visible split: W4a runner/PAT, W4b identity/MCP, W4c secrets pipeline/leaks, W4d YubiKey design, W4e Vault handoff.

Files touched

  • state/cycle/W4-secrets-access-hardening-output.md
  • state/STATUS_NOW.md
  • state/roadmap/current-platform-roadmap.md

Relevant context

  • W3 immediate gate accepted in #434.
  • Milestone 03 issues: #56, #124, #131, #132, #181, #237, #265, #274.
  • docs/forgejo-agent-operations.md secret/identity rules.
  • docs/ci/runner-contract.md deploy-runner Token Auth target state.
  • docs/specs/vault-to-infisical-migration-v0/ for Vault handoff boundaries.

Runtime evidence

No runtime mutation and no secret reads. This is W4 entry triage only.

Known constraints

  • No direct PAT/fallback removal until W4a evidence proves Infisical Token Auth is live and rollbackable.
  • No bulk secret migration.
  • No Vault writes/sunset from this PR.
  • No production restart or apply.

Explicit out-of-scope

  • Implementing #56/#124/#237/#265.
  • Reading or printing secret values.
  • Changing RS2000/VPS1000 runtime.

Requested decision

Approve merge if checks pass. Next PR should be W4a read-only evidence for deploy runner Token Auth/direct PAT state.

Merge blockers

  • Any wording that implies all secrets should be migrated in one batch.
  • Any wording that authorizes direct PAT removal without evidence.
  • Any accidental runtime instruction that prints values.

Spec sources read

  • state/STATUS_NOW.md
  • state/roadmap/current-platform-roadmap.md
  • docs/forgejo-agent-operations.md
  • docs/ci/runner-contract.md
  • runbooks/forgejo-actions-runner.md
  • state/runtime-layout.md
  • docs/specs/forgejo-mcp-identity-split-v0/02-plan.md
  • docs/specs/vault-to-infisical-migration-v0/00-constitution.md
  • docs/specs/vault-to-infisical-migration-v0/02-plan-and-tasks.md
  • Forgejo issues #56, #124, #131, #132, #181, #237, #265, #274

Refs #56, #124, #131, #132, #181, #237, #265, #274.

Canary status: missing - rely on required Forgejo checks before merge ## Canary Context Pack ### Product story W3 is accepted enough to continue, so W4 needs a clean secrets/access map before agents start touching PATs, Infisical, MCP identity, Redis argv, Kan config, or Vault sunset. ### What changed - Adds `state/cycle/W4-secrets-access-hardening-output.md`. - Marks W4 active in `state/STATUS_NOW.md`. - Adds W4 subwaves to `state/roadmap/current-platform-roadmap.md`. ### Why it changed W4 is security-sensitive and too broad to execute as a single blob. This PR creates the operator-visible split: W4a runner/PAT, W4b identity/MCP, W4c secrets pipeline/leaks, W4d YubiKey design, W4e Vault handoff. ### Files touched - `state/cycle/W4-secrets-access-hardening-output.md` - `state/STATUS_NOW.md` - `state/roadmap/current-platform-roadmap.md` ### Relevant context - W3 immediate gate accepted in #434. - Milestone 03 issues: #56, #124, #131, #132, #181, #237, #265, #274. - `docs/forgejo-agent-operations.md` secret/identity rules. - `docs/ci/runner-contract.md` deploy-runner Token Auth target state. - `docs/specs/vault-to-infisical-migration-v0/` for Vault handoff boundaries. ### Runtime evidence No runtime mutation and no secret reads. This is W4 entry triage only. ### Known constraints - No direct PAT/fallback removal until W4a evidence proves Infisical Token Auth is live and rollbackable. - No bulk secret migration. - No Vault writes/sunset from this PR. - No production restart or apply. ### Explicit out-of-scope - Implementing #56/#124/#237/#265. - Reading or printing secret values. - Changing RS2000/VPS1000 runtime. ### Requested decision Approve merge if checks pass. Next PR should be W4a read-only evidence for deploy runner Token Auth/direct PAT state. ### Merge blockers - Any wording that implies all secrets should be migrated in one batch. - Any wording that authorizes direct PAT removal without evidence. - Any accidental runtime instruction that prints values. ## Spec sources read - `state/STATUS_NOW.md` - `state/roadmap/current-platform-roadmap.md` - `docs/forgejo-agent-operations.md` - `docs/ci/runner-contract.md` - `runbooks/forgejo-actions-runner.md` - `state/runtime-layout.md` - `docs/specs/forgejo-mcp-identity-split-v0/02-plan.md` - `docs/specs/vault-to-infisical-migration-v0/00-constitution.md` - `docs/specs/vault-to-infisical-migration-v0/02-plan-and-tasks.md` - Forgejo issues #56, #124, #131, #132, #181, #237, #265, #274 Refs #56, #124, #131, #132, #181, #237, #265, #274.
docs(secrets): start W4 access hardening
All checks were successful
base-is-main / guard (pull_request) Successful in 1s
canary-required / collect-diff (pull_request) Successful in 4s
patchwarden-pr-sanity / collect-diff (pull_request) Successful in 4s
canary-required / canary (pull_request) Has been skipped
patchwarden-pr-sanity / sanity (pull_request) Successful in 20s
bd3d6637a3
Sign in to join this conversation.
No reviewers
No labels
W6d-automerge-calibration
agent/claude-code
agent/codex
agent/hermes
agent/iskra
agent/ollama
agent/patchwarden
automerge-candidate
class/security-sensitive
cutover-gate
dependency/blocked
dependency/blocks-others
dependency/cross-repo
dependency/needs-confirmation
domain:agents
domain:ci
domain:docs
domain:forgejo
domain:infra
domain:memory
domain:runtime
domain:signal
domain:ux
flow/architecture
flow/blocked
flow/deployed
flow/done
flow/implementation
flow/intake
flow/maintained
flow/observed
flow/ready
flow/refining
flow/retired
flow/review
iterating
judge/codex-candidate
judge/hermes-candidate
judge/low-confidence
judge/needs-refinement
judge/operator-needed
judge/p0
judge/p1
judge/p2
judge/p3
judge/park
judge/patchwarden-candidate
judge/stale-priority
kind/adr
kind/bug
kind/chore
kind/feature
kind/infra
kind/ops
kind/refactor
kind/research
large-impact
merge/auto
merge/manual
merge/manual-dependency-conflict
merge/manual-failing-tests
merge/manual-merge-conflict
merge/manual-missing-review
merge/manual-operator-preference
merge/manual-red-zone
merge/manual-security-sensitive
merge/manual-unclear-scope
merge/manual-unknown
meta
mode:operator-only
mode:patchwarden-iskra-approved
mode:safe-auto
needs-operator-decision
needs-triage
not-ready
observed/erroring
observed/needs-followup
observed/pending
observed/retire-candidate
observed/unused
observed/used
operator-emotional
owner-attention
phase/02
phase/03
priority:p0
priority:p1
priority:p2
priority:p3
proposed
ready-for-agent
ready-for-operator
recovery
review:claude-reviewed
review:codex-reviewed
review:dziadek-reviewed
review:needs-human
risk/exposure
risk/process
risk/product
risk/runtime
safety:external-write
safety:no-prod-mutation
safety:prod-impact
safety:secret-touch
size/large
size/medium
size/small
size/tiny
size/unknown
source/adr
source/agent-generated
source/manual
source/operator-chat
source/voice-note
status:blocked
status:codex-ready
status:merged:pending-evidence
status:needs-evidence
status:operator-needed
status:parked
tier/full
tier/lite
tier/stacked
tier:0-platform-substrate
tier:1-iskra-value-layer
tier:2-tools-products-modules
type:bug
type:chore
type:docs
type:feat
type:policy
type:research
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
pdurlej/platform!435
No description provided.