---
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.