diff --git a/specs/codebase-wiki/traceability.md b/specs/codebase-wiki/traceability.md index f71bc224e..71043cb51 100644 --- a/specs/codebase-wiki/traceability.md +++ b/specs/codebase-wiki/traceability.md @@ -1,6 +1,6 @@ # Traceability Matrix -Generated: 2026-11-06T23:45:38.665656+00:00 +Generated: 2026-11-07T21:20:54.467550+00:00 ## Story Coverage @@ -71,15 +71,15 @@ Generated: 2026-11-06T23:45:38.665656+00:00 | e89s05 | Add Admin UI for project secrets | 2 | 1 | Covered | | e89s06 | Resolve project and site secrets in deployments | 2 | 0 | Covered | | e89s07 | Secure MCP secret-management tools | 2 | 1 | Covered | -| e90s01 | Provision BIGBASE_ROOT_ENCRYPTION_KEY and add required-env gate to CI | 1 | 0 | Covered | -| e90s02 | Fix .gitignore conflict marker and consolidate gosec config | 2 | 0 | Covered | -| e90s03 | Reconcile AGENTS.md ctxo mandate with 2026-08-11 revert reality | 1 | 0 | Covered | -| e90s04 | Add -race CI job and frontend lint/test gate | 1 | 1 | Covered | -| e90s05 | Canonical MCP config — single source, generated adapters | 1 | 0 | Covered | -| e90s06 | Consolidate agent instruction files — AGENTS.md as single source | 1 | 0 | Covered | -| e90s07 | Version declaration sweep and docs reconciliation | 1 | 0 | Covered | -| e90s08 | Dependabot grouping and big-release push discipline | 1 | 0 | Covered | -| e90s09 | Async-assert pattern sweep and test guideline | 1 | 1 | Covered | +| e90s01 | e90s01 | 1 | 0 | Covered | +| e90s02 | e90s02 | 2 | 0 | Covered | +| e90s03 | e90s03 | 1 | 0 | Covered | +| e90s04 | e90s04 | 1 | 1 | Covered | +| e90s05 | e90s05 | 1 | 0 | Covered | +| e90s06 | e90s06 | 1 | 0 | Covered | +| e90s07 | e90s07 | 1 | 0 | Covered | +| e90s08 | e90s08 | 1 | 0 | Covered | +| e90s09 | e90s09 | 1 | 1 | Covered | ## Gaps diff --git a/specs/epics/e90-dev-environment-hardening/e90s01-provision-env-gate.md b/specs/epics/archive/e90-dev-environment-hardening/e90s01-provision-env-gate.md similarity index 100% rename from specs/epics/e90-dev-environment-hardening/e90s01-provision-env-gate.md rename to specs/epics/archive/e90-dev-environment-hardening/e90s01-provision-env-gate.md diff --git a/specs/epics/e90-dev-environment-hardening/e90s01-tasks.yaml b/specs/epics/archive/e90-dev-environment-hardening/e90s01-tasks.yaml similarity index 100% rename from specs/epics/e90-dev-environment-hardening/e90s01-tasks.yaml rename to specs/epics/archive/e90-dev-environment-hardening/e90s01-tasks.yaml diff --git a/specs/epics/e90-dev-environment-hardening/e90s02-conflict-marker-gosec.md b/specs/epics/archive/e90-dev-environment-hardening/e90s02-conflict-marker-gosec.md similarity index 100% rename from specs/epics/e90-dev-environment-hardening/e90s02-conflict-marker-gosec.md rename to specs/epics/archive/e90-dev-environment-hardening/e90s02-conflict-marker-gosec.md diff --git a/specs/epics/e90-dev-environment-hardening/e90s02-tasks.yaml b/specs/epics/archive/e90-dev-environment-hardening/e90s02-tasks.yaml similarity index 100% rename from specs/epics/e90-dev-environment-hardening/e90s02-tasks.yaml rename to specs/epics/archive/e90-dev-environment-hardening/e90s02-tasks.yaml diff --git a/specs/epics/e90-dev-environment-hardening/e90s03-reconcile-agents-ctxo.md b/specs/epics/archive/e90-dev-environment-hardening/e90s03-reconcile-agents-ctxo.md similarity index 100% rename from specs/epics/e90-dev-environment-hardening/e90s03-reconcile-agents-ctxo.md rename to specs/epics/archive/e90-dev-environment-hardening/e90s03-reconcile-agents-ctxo.md diff --git a/specs/epics/e90-dev-environment-hardening/e90s03-tasks.yaml b/specs/epics/archive/e90-dev-environment-hardening/e90s03-tasks.yaml similarity index 100% rename from specs/epics/e90-dev-environment-hardening/e90s03-tasks.yaml rename to specs/epics/archive/e90-dev-environment-hardening/e90s03-tasks.yaml diff --git a/specs/epics/e90-dev-environment-hardening/e90s04-race-ci-ui-gates.md b/specs/epics/archive/e90-dev-environment-hardening/e90s04-race-ci-ui-gates.md similarity index 100% rename from specs/epics/e90-dev-environment-hardening/e90s04-race-ci-ui-gates.md rename to specs/epics/archive/e90-dev-environment-hardening/e90s04-race-ci-ui-gates.md diff --git a/specs/epics/e90-dev-environment-hardening/e90s04-tasks.yaml b/specs/epics/archive/e90-dev-environment-hardening/e90s04-tasks.yaml similarity index 100% rename from specs/epics/e90-dev-environment-hardening/e90s04-tasks.yaml rename to specs/epics/archive/e90-dev-environment-hardening/e90s04-tasks.yaml diff --git a/specs/epics/e90-dev-environment-hardening/e90s05-canonical-mcp-configs.md b/specs/epics/archive/e90-dev-environment-hardening/e90s05-canonical-mcp-configs.md similarity index 100% rename from specs/epics/e90-dev-environment-hardening/e90s05-canonical-mcp-configs.md rename to specs/epics/archive/e90-dev-environment-hardening/e90s05-canonical-mcp-configs.md diff --git a/specs/epics/e90-dev-environment-hardening/e90s05-tasks.yaml b/specs/epics/archive/e90-dev-environment-hardening/e90s05-tasks.yaml similarity index 100% rename from specs/epics/e90-dev-environment-hardening/e90s05-tasks.yaml rename to specs/epics/archive/e90-dev-environment-hardening/e90s05-tasks.yaml diff --git a/specs/epics/e90-dev-environment-hardening/e90s06-consolidate-agent-docs.md b/specs/epics/archive/e90-dev-environment-hardening/e90s06-consolidate-agent-docs.md similarity index 100% rename from specs/epics/e90-dev-environment-hardening/e90s06-consolidate-agent-docs.md rename to specs/epics/archive/e90-dev-environment-hardening/e90s06-consolidate-agent-docs.md diff --git a/specs/epics/e90-dev-environment-hardening/e90s06-tasks.yaml b/specs/epics/archive/e90-dev-environment-hardening/e90s06-tasks.yaml similarity index 100% rename from specs/epics/e90-dev-environment-hardening/e90s06-tasks.yaml rename to specs/epics/archive/e90-dev-environment-hardening/e90s06-tasks.yaml diff --git a/specs/epics/e90-dev-environment-hardening/e90s07-tasks.yaml b/specs/epics/archive/e90-dev-environment-hardening/e90s07-tasks.yaml similarity index 100% rename from specs/epics/e90-dev-environment-hardening/e90s07-tasks.yaml rename to specs/epics/archive/e90-dev-environment-hardening/e90s07-tasks.yaml diff --git a/specs/epics/e90-dev-environment-hardening/e90s07-version-declaration-sweep.md b/specs/epics/archive/e90-dev-environment-hardening/e90s07-version-declaration-sweep.md similarity index 100% rename from specs/epics/e90-dev-environment-hardening/e90s07-version-declaration-sweep.md rename to specs/epics/archive/e90-dev-environment-hardening/e90s07-version-declaration-sweep.md diff --git a/specs/epics/e90-dev-environment-hardening/e90s08-dependabot-groups-push-discipline.md b/specs/epics/archive/e90-dev-environment-hardening/e90s08-dependabot-groups-push-discipline.md similarity index 100% rename from specs/epics/e90-dev-environment-hardening/e90s08-dependabot-groups-push-discipline.md rename to specs/epics/archive/e90-dev-environment-hardening/e90s08-dependabot-groups-push-discipline.md diff --git a/specs/epics/e90-dev-environment-hardening/e90s08-tasks.yaml b/specs/epics/archive/e90-dev-environment-hardening/e90s08-tasks.yaml similarity index 100% rename from specs/epics/e90-dev-environment-hardening/e90s08-tasks.yaml rename to specs/epics/archive/e90-dev-environment-hardening/e90s08-tasks.yaml diff --git a/specs/epics/e90-dev-environment-hardening/e90s09-async-assert-pattern-sweep.md b/specs/epics/archive/e90-dev-environment-hardening/e90s09-async-assert-pattern-sweep.md similarity index 100% rename from specs/epics/e90-dev-environment-hardening/e90s09-async-assert-pattern-sweep.md rename to specs/epics/archive/e90-dev-environment-hardening/e90s09-async-assert-pattern-sweep.md diff --git a/specs/epics/e90-dev-environment-hardening/e90s09-tasks.yaml b/specs/epics/archive/e90-dev-environment-hardening/e90s09-tasks.yaml similarity index 100% rename from specs/epics/e90-dev-environment-hardening/e90s09-tasks.yaml rename to specs/epics/archive/e90-dev-environment-hardening/e90s09-tasks.yaml diff --git a/specs/epics/e90-dev-environment-hardening/epic.yaml b/specs/epics/archive/e90-dev-environment-hardening/epic.yaml similarity index 100% rename from specs/epics/e90-dev-environment-hardening/epic.yaml rename to specs/epics/archive/e90-dev-environment-hardening/epic.yaml diff --git a/specs/release-plan.yaml b/specs/release-plan.yaml index 4758cf8e1..cb6d033b1 100644 --- a/specs/release-plan.yaml +++ b/specs/release-plan.yaml @@ -781,5 +781,5 @@ epics: status: done depends_on: [e89] note: "Dev-environment hardening: config consolidation, CI gates, MCP configs, single source agent docs." - capsule_dir: epics/e90-dev-environment-hardening - file: epics/e90-dev-environment-hardening/epic.yaml + capsule_dir: epics/archive/e90-dev-environment-hardening + file: epics/archive/e90-dev-environment-hardening/epic.yaml diff --git a/specs/state.yaml b/specs/state.yaml index 0d82b57a4..0a50b44a4 100644 --- a/specs/state.yaml +++ b/specs/state.yaml @@ -12,9 +12,9 @@ project_cycle: release: pending current_phase: 5 active_phase: verify -active_flow: build_epic -active_epic: e90 -active_epic_id: e90 +active_flow: null +active_epic: null +active_epic_id: null active_story_id: null active_story_status: done bug_id: null @@ -153,12 +153,12 @@ decisions: restore / fail2ban), not to these repo changes. release: - target_version: 2.94.0 + target_version: 2.94.1 codename: "WCAG AAA Closing \u2014 Accent Links + Formal Conformance" - last_tag: v2.94.0 + last_tag: v2.94.1 last_publish: '2026-08-11' ci_verified: true - ci_verified_at: '2026-08-11T21:36:23Z' + ci_verified_at: '2026-11-07T03:30:00Z' release_skipped: 'no new release: pushed diff is chore/docs only (dependabot bumps, WCAG registry, e86 epic specs); big-release correctly skipped (default rules require feat/fix/perf)' @@ -258,17 +258,20 @@ cleanup: open_issues: 3 (all deferred/labeled) handoff: last_step_completed: >- - Build&Ship cycle (2026-11-06/07): BUG-2026-11-06-dashboard-metrics-hang fixed and shipped via - PR #313, merged to main, released as v2.94.1. Production Deploy still FAILS at the SCP upload step - (external VPS-side SSH) — the fix is on main but not yet in production. + release-branch finalization (2026-11-07): e90 epic capsule archived + (specs/epics/archive/e90-dev-environment-hardening). All stories done; v2.94.1 live on + production (footer confirms) after the VPS disk-full deploy blocker was cleared. Issue #312 + closed. prior_step: >- - Verified the fix (go test ./..., race, trace-stories --strict, 24 gate tests, preflight) and - merged PR #313. + Fixed the VPS 100%-full disk (cleared caches + stale build/backup/release leftovers, kept the + 9 running deployments) and re-triggered the Deploy workflow; v2.94.1 deployed. open_decisions: - >- - Production Deploy (GitHub Actions) fails at SCP to the VPS (issue #312). Needs a VPS-side fix - (authorized_keys / fail2ban / df -h on /tmp) or a CONTABO_* secret update before v2.94.1 reaches - production. - next_skill: null + exames.bigbase.click (Node site) exits with status 1 on startup — broken site build, separate + from the platform; needs a working build/rollback. + - >- + Monitoring alert rules 'VPS Disk above 80%' / 'VPS RAM above 85%' reference unknown metrics + (disk_used_percent, mem_used_percent) and are skipped — disk-full never alerted. Follow-up fix. + next_skill: survey-context context: >- - main == origin/main == 4af323ae8. PR #313 merged. v2.94.1 published but not deployed (SCP blocked). + main == origin/main. e90 archived. v2.94.1 in production. diff --git a/specs/traceability-matrix.json b/specs/traceability-matrix.json index d6a3cea02..b250f23e2 100644 --- a/specs/traceability-matrix.json +++ b/specs/traceability-matrix.json @@ -1,5 +1,5 @@ { - "generated_at": "2026-11-06T23:45:38.665656+00:00", + "generated_at": "2026-11-07T21:20:54.467550+00:00", "source": [ "specs/release-plan.yaml", "specs/epics/**/epic.yaml", @@ -596,88 +596,97 @@ }, { "story_id": "e90s01", - "title": "Provision BIGBASE_ROOT_ENCRYPTION_KEY and add required-env gate to CI", + "title": "e90s01", "files": [ "scripts/check-required-env-documented.sh" ], "tests": [], + "orphan": true, "status": "Covered" }, { "story_id": "e90s02", - "title": "Fix .gitignore conflict marker and consolidate gosec config", + "title": "e90s02", "files": [ "scripts/check-conflict-markers.sh", "scripts/verify-cwe-fixture-sync.sh" ], "tests": [], + "orphan": true, "status": "Covered" }, { "story_id": "e90s03", - "title": "Reconcile AGENTS.md ctxo mandate with 2026-08-11 revert reality", + "title": "e90s03", "files": [ "scripts/setup-dev.sh" ], "tests": [], + "orphan": true, "status": "Covered" }, { "story_id": "e90s04", - "title": "Add -race CI job and frontend lint/test gate", + "title": "e90s04", "files": [ "tests/e2e/axe-scan.spec.ts" ], "tests": [ "tests/e2e/axe-scan.spec.ts" ], + "orphan": true, "status": "Covered" }, { "story_id": "e90s05", - "title": "Canonical MCP config \u2014 single source, generated adapters", + "title": "e90s05", "files": [ "scripts/gen-mcp-configs.sh" ], "tests": [], + "orphan": true, "status": "Covered" }, { "story_id": "e90s06", - "title": "Consolidate agent instruction files \u2014 AGENTS.md as single source", + "title": "e90s06", "files": [ "scripts/generate-agent-guide.sh" ], "tests": [], + "orphan": true, "status": "Covered" }, { "story_id": "e90s07", - "title": "Version declaration sweep and docs reconciliation", + "title": "e90s07", "files": [ "scripts/check-version-drift.sh" ], "tests": [], + "orphan": true, "status": "Covered" }, { "story_id": "e90s08", - "title": "Dependabot grouping and big-release push discipline", + "title": "e90s08", "files": [ "scripts/land-branch.sh" ], "tests": [], + "orphan": true, "status": "Covered" }, { "story_id": "e90s09", - "title": "Async-assert pattern sweep and test guideline", + "title": "e90s09", "files": [ "components/deploy/state_lifecycle_test.go" ], "tests": [ "components/deploy/state_lifecycle_test.go" ], + "orphan": true, "status": "Covered" } ], @@ -685,7 +694,7 @@ "total": 74, "covered": 32, "dark": 42, - "orphans": 14 + "orphans": 23 }, "oracle_stats": { "explicit_tag_links": 32,