--- phase: "13" plan: "11" type: execute wave: 8 depends_on: - "13-03" - "13-04" - "13-05" - "13-06" - "13-07" - "13-08" - "13-09" - "13-10" files_modified: - .planning/ROADMAP.md - AGENTS.md - README.md - RUNBOOK.md - SECURITY.md - backend/main.py - frontend/package.json autonomous: true requirements: - CONN-01 - CONN-02 - CONN-03 - CLOUD-02 - CLOUD-03 - CLOUD-04 - CLOUD-05 - CLOUD-06 - CLOUD-07 - CLOUD-09 must_haves: truths: - "Phase 13 closeout is isolated from implementation work." - "Documentation, security evidence, version bumps, and ship gates happen only after all scoped behavior exists." - "Full backend verification uses direct containerized pytest commands only, and the hardcoded-secret scan is non-skippable." artifacts: - path: "AGENTS.md" provides: "Updated current-state line and shared-module guidance for shipped Phase 13 behavior." - path: "SECURITY.md" provides: "Phase 13 gate evidence for IDOR, CSRF, SSRF, typed conflict handling, audit secrecy, no-probe behavior, and the passing secret scan." - path: ".planning/ROADMAP.md" provides: "Phase 13 plan list and closeout status updates." key_links: - from: "completed Phase 13 behavior" to: "docs, versions, and security evidence" via: "final closeout-only plan" pattern: "Phase 13" --- Run the Phase 13 closeout only after all implementation plans are complete: update roadmap and docs, bump versions, run the full suites and security gates, execute a non-skippable hardcoded-secret scan, and prepare the phase for atomic commit and push. Purpose: Keep documentation, versioning, security review, and ship gates isolated in one bounded final plan. Output: Ready-to-ship Phase 13 documentation and validation state. @$HOME/.codex/gsd-core/workflows/execute-plan.md @$HOME/.codex/gsd-core/templates/summary.md @AGENTS.md @.planning/ROADMAP.md @.planning/REQUIREMENTS.md @README.md @RUNBOOK.md @SECURITY.md @backend/main.py @frontend/package.json ## Artifacts this phase produces - Updated roadmap and phase-close documentation. - Version bumps for the shipped Phase 13 user-facing behavior. - Full Phase 13 validation, dependency-audit, and security-gate evidence collected in one place, including a passing hardcoded-secret scan. ## Pattern analogs - `.planning/phases/12.1-fix-nextcloud-root-listing-and-sync-visibility/12.1-04-SUMMARY.md` — bounded closeout-only phase finish. - `AGENTS.md` documentation protocol — required current-state, shared-module, and version-bump updates. Task 1: Update roadmap, docs, versions, and closeout evidence to match the shipped Phase 13 behavior .planning/ROADMAP.md, AGENTS.md, README.md, RUNBOOK.md, SECURITY.md, backend/main.py, frontend/package.json - AGENTS.md - .planning/ROADMAP.md - README.md - RUNBOOK.md - SECURITY.md Update Phase 13 planning and closeout documentation only after Plans 03 through 10 are complete. Record the finished health, reconnect, content, upload, create-folder, rename, move, delete, broader Drive scope, binary-only preview, and no-probe-on-navigation behavior accurately. Update the AGENTS current-state line and shared module map if the cloud operations layer became a new canonical shared module. Bump backend and frontend patch versions together for the shipped user-visible behavior, and record the final gate evidence in `SECURITY.md`, including the required hardcoded-secret scan result. - roadmap and docs describe the actual shipped Phase 13 scope without claiming Phase 14 cache lifecycle or deferred Collabora work - AGENTS and README reflect the final user-visible behavior and version numbers accurately - SECURITY captures the Phase 13 threat evidence, gate outcomes, and the passing hardcoded-secret scan docker compose config --quiet Phase 13 documentation, version metadata, and closeout evidence are ready for final validation. Task 2: Run the full test, dependency, security, and hardcoded-secret gates before commit and push .planning/ROADMAP.md, AGENTS.md, README.md, RUNBOOK.md, SECURITY.md, backend/main.py, frontend/package.json - AGENTS.md - SECURITY.md - .planning/phases/13-virtual-local-cloud-operations/13-VALIDATION.md Run the full backend and frontend suites, then the focused security and dependency gates required by AGENTS.md. Every backend pytest invocation must be a direct `docker compose run --rm backend pytest ...` command. Run `docker compose run --rm backend bandit -r .`, `docker compose run --rm backend pip audit`, `cd frontend && npm audit --audit-level=high`, and the non-skippable hardcoded-secret scan `trufflehog filesystem --no-update --fail .`. Confirm the wrong-owner, admin-negative, credential-secrecy, SSRF, typed conflict, audit secrecy, and no-probe-on-navigation invariants remain green. Review the final diff for unrelated files or secret exposure, then stage, commit, and push atomically as the closeout action for the completed phase. - full backend and frontend suites pass - backend security and dependency gates pass with direct containerized commands - `trufflehog filesystem --no-update --fail .` passes and is recorded as closeout evidence - the phase can be committed and pushed without unrelated files or secret exposure docker compose run --rm backend pytest -v cd frontend && npm run test docker compose run --rm backend bandit -r . docker compose run --rm backend pip audit cd frontend && npm audit --audit-level=high trufflehog filesystem --no-update --fail . git diff --check Phase 13 is fully validated, secret-scanned, and ready for atomic commit and push. ## Trust Boundaries | Boundary | Description | |----------|-------------| | shipped code → documentation/security evidence | Closeout must describe only what actually shipped. | | final diff → git history | Secret exposure and unrelated changes must be caught before commit. | ## STRIDE Threat Register | Threat ID | Category | Component | Disposition | Mitigation Plan | |-----------|----------|-----------|-------------|-----------------| | T-13-33 | R | closeout docs | mitigate | Final-plan-only doc update ensures documentation follows completed implementation. | | T-13-34 | I | release validation | mitigate | Full suites, dependency audits, and the non-skippable `trufflehog filesystem --no-update --fail .` gate run before commit and push. | - Confirm all backend pytest commands are direct containerized invocations. - Confirm full backend, frontend, security, dependency, and hardcoded-secret gates are isolated to this plan. - Confirm docs and versions match the implemented Phase 13 scope and nothing deferred is claimed as shipped. - Docs, versions, security evidence, full gates, and the explicit hardcoded-secret scan are isolated to one bounded plan. - Phase 13 can be closed without mixing implementation work into the same plan. - The final plan preserves the project’s commit, push, documentation, and closeout protocol exactly. Create `.planning/phases/13-virtual-local-cloud-operations/13-11-SUMMARY.md` when done