codex-genesis-harness 0.1.0 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.codebase/API_CONTRACTS.md +12 -0
- package/.codebase/ARCHITECTURE.md +6 -0
- package/.codebase/ARCHITECTURE_REVIEW_COMPLETE.md +216 -0
- package/.codebase/CURRENT_STATE.md +8 -0
- package/.codebase/DEPENDENCY_GRAPH.md +14 -0
- package/.codebase/DOMAIN_MODELS.md +10 -0
- package/.codebase/EVOLUTION_PLAN.md +35 -0
- package/.codebase/FILE_NAMING_CLARIFICATION.md +161 -0
- package/.codebase/HARNESS_COMPLETENESS_AUDIT.md +613 -0
- package/.codebase/IMPLEMENTATION_COMPLETE.md +429 -0
- package/.codebase/IMPLEMENTATION_HANDOFF.md +351 -0
- package/.codebase/IMPROVEMENTS_SUMMARY.md +419 -0
- package/.codebase/KNOWN_PROBLEMS.md +6 -0
- package/.codebase/MODULE_INDEX.md +13 -0
- package/.codebase/PHASE3_SKILLS_NAMING_COMPLETE.md +292 -0
- package/.codebase/PHASE_DEPENDENCY_MAP.md +486 -0
- package/.codebase/PIPELINE_FLOW.md +14 -0
- package/.codebase/QUICK_START_SPEC_IMPACT.md +456 -0
- package/.codebase/README.md +139 -0
- package/.codebase/RECOVERY_POINTS.md +438 -0
- package/.codebase/TEST_MATRIX.md +11 -0
- package/.codebase/UI_ROUTES.md +4 -0
- package/.codebase/context/backend-summary.md +4 -0
- package/.codebase/context/frontend-summary.md +4 -0
- package/.codebase/context/pipeline-summary.md +4 -0
- package/.codebase/context/providers-summary.md +4 -0
- package/.codebase/context/render-summary.md +4 -0
- package/.codebase/context/tests-summary.md +4 -0
- package/.codex/skills/genesis-ai-provider/SKILL.md +46 -0
- package/.codex/skills/genesis-ai-provider/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-ai-provider/checklists/checklist.md +9 -0
- package/.codex/skills/genesis-ai-provider/examples/example.md +4 -0
- package/.codex/skills/genesis-ai-provider/templates/provider-contract-template.md +9 -0
- package/.codex/skills/genesis-api-contract/SKILL.md +46 -0
- package/.codex/skills/genesis-api-contract/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-api-contract/checklists/checklist.md +8 -0
- package/.codex/skills/genesis-api-contract/examples/example.md +4 -0
- package/.codex/skills/genesis-api-contract/templates/api-contract-template.md +4 -0
- package/.codex/skills/genesis-api-sync/SKILL.md +354 -0
- package/.codex/skills/genesis-api-sync/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-api-sync/checklists/api-sync-checklist.md +101 -0
- package/.codex/skills/genesis-api-sync/examples/example.md +68 -0
- package/.codex/skills/genesis-api-sync/templates/api-change-template.md +257 -0
- package/.codex/skills/genesis-architecture/SKILL.md +46 -0
- package/.codex/skills/genesis-architecture/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-architecture/checklists/checklist.md +8 -0
- package/.codex/skills/genesis-architecture/examples/example.md +4 -0
- package/.codex/skills/genesis-architecture/templates/architecture-decision-template.md +14 -0
- package/.codex/skills/genesis-codebase-map/SKILL.md +46 -0
- package/.codex/skills/genesis-codebase-map/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-codebase-map/checklists/checklist.md +7 -0
- package/.codex/skills/genesis-codebase-map/examples/example.md +4 -0
- package/.codex/skills/genesis-codebase-map/templates/map-update-template.md +8 -0
- package/.codex/skills/genesis-debug-guide/SKILL.md +479 -0
- package/.codex/skills/genesis-debug-guide/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-debug-guide/checklists/flaky-test-investigation.md +339 -0
- package/.codex/skills/genesis-debug-guide/checklists/production-bug-debug.md +210 -0
- package/.codex/skills/genesis-debug-guide/checklists/test-failure-debug.md +158 -0
- package/.codex/skills/genesis-debug-guide/examples/example.md +48 -0
- package/.codex/skills/genesis-debug-guide/observability/debug-commands.md +365 -0
- package/.codex/skills/genesis-debug-guide/playbooks/unit-test-failures.md +289 -0
- package/.codex/skills/genesis-debug-guide/templates/debug-investigation-log.md +288 -0
- package/.codex/skills/genesis-design-spec/SKILL.md +46 -0
- package/.codex/skills/genesis-design-spec/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-design-spec/checklists/checklist.md +7 -0
- package/.codex/skills/genesis-design-spec/examples/example.md +4 -0
- package/.codex/skills/genesis-design-spec/templates/design-spec-template.md +9 -0
- package/.codex/skills/genesis-docs/SKILL.md +46 -0
- package/.codex/skills/genesis-docs/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-docs/checklists/checklist.md +7 -0
- package/.codex/skills/genesis-docs/examples/example.md +4 -0
- package/.codex/skills/genesis-docs/templates/docs-update-template.md +8 -0
- package/.codex/skills/genesis-docs-automation/SKILL.md +1003 -0
- package/.codex/skills/genesis-docs-automation/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-docs-automation/checklists/docs-validation.md +359 -0
- package/.codex/skills/genesis-docs-automation/checklists/spec-alignment.md +312 -0
- package/.codex/skills/genesis-docs-automation/examples/example.md +59 -0
- package/.codex/skills/genesis-docs-automation/observability/docs-tracking.md +382 -0
- package/.codex/skills/genesis-docs-automation/playbooks/auto-update-flow.md +851 -0
- package/.codex/skills/genesis-docs-automation/playbooks/changelog-generation.md +491 -0
- package/.codex/skills/genesis-docs-automation/templates/changelog-entry-template.md +187 -0
- package/.codex/skills/genesis-docs-automation/templates/handoff-template.md +297 -0
- package/.codex/skills/genesis-harness/SKILL.md +1418 -0
- package/.codex/skills/genesis-harness/agents/openai.yaml +9 -0
- package/.codex/skills/genesis-harness/checklists/bug-fix-qa.md +169 -0
- package/.codex/skills/genesis-harness/checklists/checklist.md +10 -0
- package/.codex/skills/genesis-harness/checklists/new-feature-qa.md +157 -0
- package/.codex/skills/genesis-harness/checklists/refactor-qa.md +216 -0
- package/.codex/skills/genesis-harness/checklists/requirements-validation.md +211 -0
- package/.codex/skills/genesis-harness/examples/example.md +4 -0
- package/.codex/skills/genesis-harness/resources/change-impact-matrix-template.md +204 -0
- package/.codex/skills/genesis-harness/resources/foundation-phase-template.md +131 -0
- package/.codex/skills/genesis-harness/resources/phase-00-foundation-template.md +76 -0
- package/.codex/skills/genesis-harness/resources/post-implementation-guide.md +347 -0
- package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/check-architecture-boundaries.sh +23 -23
- package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/check-docs-sync.sh +24 -24
- package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/check-no-debug-logs.sh +21 -21
- package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/check-required-planning-files.sh +46 -46
- package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/check-spec-changelog.sh +24 -24
- package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/check-task-tracking.sh +25 -25
- package/.codex/skills/genesis-harness/scripts/compact-context.sh +54 -0
- package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/create-adr.sh +74 -74
- package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/create-bug.sh +160 -160
- package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/create-feature.sh +217 -217
- package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/detect-stack.sh +26 -26
- package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/init-planning.sh +750 -719
- package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/list-changed-files.sh +12 -12
- package/.codex/skills/genesis-harness/scripts/offload-log.sh +72 -0
- package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/run-verification.sh +47 -47
- package/.codex/skills/genesis-harness/scripts/run-verify-loop.sh +75 -0
- package/.codex/skills/{project-genesis-harness → genesis-harness}/scripts/update-state.sh +33 -33
- package/.codex/skills/genesis-harness/templates/harness-workflow-template.md +10 -0
- package/.codex/skills/genesis-harness-engineering/SKILL.md +159 -0
- package/.codex/skills/genesis-harness-engineering/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-harness-engineering/checklists/checklist.md +48 -0
- package/.codex/skills/genesis-harness-engineering/examples/example.md +57 -0
- package/.codex/skills/genesis-harness-engineering/playbooks/harness-evolution.md +99 -0
- package/.codex/skills/genesis-harness-engineering/templates/harness-change-template.md +37 -0
- package/.codex/skills/genesis-new-design/SKILL.md +95 -0
- package/.codex/skills/genesis-new-design/agents/openai.yaml +4 -0
- package/.codex/skills/genesis-new-design/checklists/checklist.md +8 -0
- package/.codex/skills/genesis-new-design/examples/example.md +4 -0
- package/.codex/skills/genesis-new-design/templates/new-design-template.md +9 -0
- package/.codex/skills/genesis-observability-automation/SKILL.md +382 -0
- package/.codex/skills/genesis-observability-automation/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-observability-automation/examples/example.md +86 -0
- package/.codex/skills/genesis-performance-profiling/SKILL.md +510 -0
- package/.codex/skills/genesis-performance-profiling/agents/openai.yaml +6 -0
- package/.codex/skills/genesis-performance-profiling/checklists/optimization-verification.md +199 -0
- package/.codex/skills/genesis-performance-profiling/checklists/performance-baseline.md +183 -0
- package/.codex/skills/genesis-performance-profiling/examples/example.md +234 -0
- package/.codex/skills/genesis-performance-profiling/observability/performance-tracking.md +202 -0
- package/.codex/skills/genesis-performance-profiling/playbooks/load-testing-orchestration.md +593 -0
- package/.codex/skills/genesis-performance-profiling/playbooks/profiling-playbook.md +601 -0
- package/.codex/skills/genesis-performance-profiling/templates/load-test-config-template.md +428 -0
- package/.codex/skills/genesis-performance-profiling/templates/performance-report-template.md +238 -0
- package/.codex/skills/genesis-pipeline-orchestration/SKILL.md +46 -0
- package/.codex/skills/genesis-pipeline-orchestration/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-pipeline-orchestration/checklists/checklist.md +12 -0
- package/.codex/skills/genesis-pipeline-orchestration/examples/example.md +4 -0
- package/.codex/skills/genesis-pipeline-orchestration/templates/orchestration-template.md +12 -0
- package/.codex/skills/genesis-planning/SKILL.md +46 -0
- package/.codex/skills/genesis-planning/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-planning/checklists/checklist.md +8 -0
- package/.codex/skills/genesis-planning/examples/example.md +4 -0
- package/.codex/skills/genesis-planning/templates/plan-template.md +11 -0
- package/.codex/skills/genesis-release/SKILL.md +46 -0
- package/.codex/skills/genesis-release/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-release/checklists/checklist.md +8 -0
- package/.codex/skills/genesis-release/examples/example.md +4 -0
- package/.codex/skills/genesis-release/templates/release-checklist-template.md +9 -0
- package/.codex/skills/genesis-release-orchestration/SKILL.md +653 -0
- package/.codex/skills/genesis-release-orchestration/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-release-orchestration/checklists/post-deployment-verification.md +274 -0
- package/.codex/skills/genesis-release-orchestration/checklists/pre-release-validation.md +220 -0
- package/.codex/skills/genesis-release-orchestration/examples/example.md +78 -0
- package/.codex/skills/genesis-release-orchestration/observability/release-tracking.md +253 -0
- package/.codex/skills/genesis-release-orchestration/playbooks/canary-deployment-orchestration.md +472 -0
- package/.codex/skills/genesis-release-orchestration/playbooks/semantic-versioning-automation.md +494 -0
- package/.codex/skills/genesis-release-orchestration/templates/deployment-strategy-template.md +303 -0
- package/.codex/skills/genesis-release-orchestration/templates/release-runbook-template.md +420 -0
- package/.codex/skills/genesis-research/SKILL.md +46 -0
- package/.codex/skills/genesis-research/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-research/checklists/checklist.md +7 -0
- package/.codex/skills/genesis-research/examples/example.md +4 -0
- package/.codex/skills/genesis-research/templates/research-note-template.md +9 -0
- package/.codex/skills/genesis-research-first/SKILL.md +237 -0
- package/.codex/skills/genesis-research-first/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-research-first/examples/example.md +85 -0
- package/.codex/skills/genesis-spec-propagation/SKILL.md +534 -0
- package/.codex/skills/genesis-spec-propagation/agents/openai.yaml +7 -0
- package/.codex/skills/genesis-spec-propagation/checklists/phase-update-verification.md +384 -0
- package/.codex/skills/genesis-spec-propagation/checklists/spec-change-detection.md +257 -0
- package/.codex/skills/genesis-spec-propagation/examples/example.md +63 -0
- package/.codex/skills/genesis-spec-propagation/observability/propagation-tracking.md +373 -0
- package/.codex/skills/genesis-spec-propagation/playbooks/breaking-change-propagation.md +692 -0
- package/.codex/skills/genesis-spec-propagation/playbooks/feature-change-propagation.md +434 -0
- package/.codex/skills/genesis-spec-propagation/templates/migration-guide-template.md +407 -0
- package/.codex/skills/genesis-upgrade-design/SKILL.md +97 -0
- package/.codex/skills/genesis-upgrade-design/agents/openai.yaml +4 -0
- package/.codex/skills/genesis-upgrade-design/checklists/checklist.md +8 -0
- package/.codex/skills/genesis-upgrade-design/examples/example.md +4 -0
- package/.codex/skills/genesis-upgrade-design/templates/upgrade-design-template.md +9 -0
- package/.codex/skills/spec-impact-engine/SKILL.md +504 -0
- package/.codex/skills/spec-impact-engine/agents/openai.yaml +7 -0
- package/.codex/skills/spec-impact-engine/detect-spec-changes.sh +262 -0
- package/.codex/skills/spec-impact-engine/examples/example.md +98 -0
- package/.codex/skills/spec-impact-engine/templates/impact-report.md +248 -0
- package/.codex/skills/spec-impact-engine/templates/migration-guide.md +223 -0
- package/.codex/skills/ui-ux-test-skill/SKILL.md +46 -0
- package/.codex/skills/ui-ux-test-skill/agents/openai.yaml +7 -0
- package/.codex/skills/ui-ux-test-skill/checklists/checklist.md +8 -0
- package/.codex/skills/ui-ux-test-skill/examples/example.md +4 -0
- package/.codex/skills/ui-ux-test-skill/templates/playwright-test-template.md +4 -0
- package/.codex-plugin/plugin.json +13 -11
- package/README.EN.md +719 -0
- package/README.VI.md +712 -0
- package/README.md +318 -181
- package/VERSION +1 -1
- package/bin/genesis-harness.js +133 -79
- package/contracts/agents/CharacterBibleAgent/error.json +1 -0
- package/contracts/agents/CharacterBibleAgent/example.json +1 -0
- package/contracts/agents/CharacterBibleAgent/request.json +1 -0
- package/contracts/agents/CharacterBibleAgent/response.json +1 -0
- package/contracts/agents/CharacterBibleAgent/schema.json +1 -0
- package/contracts/agents/ImageGenerationAgent/error.json +1 -0
- package/contracts/agents/ImageGenerationAgent/example.json +1 -0
- package/contracts/agents/ImageGenerationAgent/request.json +1 -0
- package/contracts/agents/ImageGenerationAgent/response.json +1 -0
- package/contracts/agents/ImageGenerationAgent/schema.json +1 -0
- package/contracts/agents/PipelineOrchestrator/error.json +1 -0
- package/contracts/agents/PipelineOrchestrator/example.json +1 -0
- package/contracts/agents/PipelineOrchestrator/request.json +1 -0
- package/contracts/agents/PipelineOrchestrator/response.json +1 -0
- package/contracts/agents/PipelineOrchestrator/schema.json +1 -0
- package/contracts/agents/PromptGenerationAgent/error.json +1 -0
- package/contracts/agents/PromptGenerationAgent/example.json +1 -0
- package/contracts/agents/PromptGenerationAgent/request.json +1 -0
- package/contracts/agents/PromptGenerationAgent/response.json +1 -0
- package/contracts/agents/PromptGenerationAgent/schema.json +1 -0
- package/contracts/agents/RenderAgent/error.json +1 -0
- package/contracts/agents/RenderAgent/example.json +1 -0
- package/contracts/agents/RenderAgent/request.json +1 -0
- package/contracts/agents/RenderAgent/response.json +1 -0
- package/contracts/agents/RenderAgent/schema.json +1 -0
- package/contracts/agents/ScenePlanningAgent/error.json +1 -0
- package/contracts/agents/ScenePlanningAgent/example.json +1 -0
- package/contracts/agents/ScenePlanningAgent/request.json +1 -0
- package/contracts/agents/ScenePlanningAgent/response.json +1 -0
- package/contracts/agents/ScenePlanningAgent/schema.json +1 -0
- package/contracts/agents/ScreenplayAgent/error.json +1 -0
- package/contracts/agents/ScreenplayAgent/example.json +1 -0
- package/contracts/agents/ScreenplayAgent/request.json +1 -0
- package/contracts/agents/ScreenplayAgent/response.json +1 -0
- package/contracts/agents/ScreenplayAgent/schema.json +1 -0
- package/contracts/agents/StoryAnalysisAgent/error.json +1 -0
- package/contracts/agents/StoryAnalysisAgent/example.json +1 -0
- package/contracts/agents/StoryAnalysisAgent/request.json +1 -0
- package/contracts/agents/StoryAnalysisAgent/response.json +1 -0
- package/contracts/agents/StoryAnalysisAgent/schema.json +1 -0
- package/contracts/agents/SubtitleGenerationAgent/error.json +1 -0
- package/contracts/agents/SubtitleGenerationAgent/example.json +1 -0
- package/contracts/agents/SubtitleGenerationAgent/request.json +1 -0
- package/contracts/agents/SubtitleGenerationAgent/response.json +1 -0
- package/contracts/agents/SubtitleGenerationAgent/schema.json +1 -0
- package/contracts/agents/VoiceGenerationAgent/error.json +1 -0
- package/contracts/agents/VoiceGenerationAgent/example.json +1 -0
- package/contracts/agents/VoiceGenerationAgent/request.json +1 -0
- package/contracts/agents/VoiceGenerationAgent/response.json +1 -0
- package/contracts/agents/VoiceGenerationAgent/schema.json +1 -0
- package/contracts/api/README.md +4 -0
- package/contracts/api/endpoint-template/error.json +7 -0
- package/contracts/api/endpoint-template/example.json +11 -0
- package/contracts/api/endpoint-template/request.json +7 -0
- package/contracts/api/endpoint-template/response.json +6 -0
- package/contracts/api/endpoint-template/schema.json +9 -0
- package/contracts/events/README.md +4 -0
- package/contracts/events/event-template/error.json +4 -0
- package/contracts/events/event-template/example.json +6 -0
- package/contracts/events/event-template/request.json +6 -0
- package/contracts/events/event-template/response.json +3 -0
- package/contracts/events/event-template/schema.json +8 -0
- package/contracts/ui/README.md +4 -0
- package/contracts/ui/screen-template/error.json +4 -0
- package/contracts/ui/screen-template/example.json +7 -0
- package/contracts/ui/screen-template/request.json +4 -0
- package/contracts/ui/screen-template/response.json +4 -0
- package/contracts/ui/screen-template/schema.json +8 -0
- package/fixtures/agents/agent-fixture-template.md +14 -0
- package/fixtures/api/api-fixture-template.md +14 -0
- package/fixtures/images/image-fixture-template.md +14 -0
- package/fixtures/pipeline/pipeline-fixture-template.md +14 -0
- package/fixtures/render/render-fixture-template.md +14 -0
- package/fixtures/tts/tts-fixture-template.md +14 -0
- package/fixtures/videos/video-fixture-template.md +14 -0
- package/observability/agent-runs/agent-run-template.md +22 -0
- package/observability/decision-logs/decision-log-template.md +18 -0
- package/observability/failures/failure-template.md +18 -0
- package/package.json +8 -2
- package/playwright/e2e/e2e-template.md +4 -0
- package/playwright/fixtures/ui-fixture-template.md +4 -0
- package/playwright/smoke/smoke-template.md +4 -0
- package/playwright/visual/visual-regression-template.md +4 -0
- package/scripts/README.md +342 -0
- package/scripts/compact-context.sh +54 -0
- package/scripts/detect-changes.sh +152 -0
- package/scripts/install.sh +103 -69
- package/scripts/offload-log.sh +72 -0
- package/scripts/run-evals.sh +118 -52
- package/scripts/run-verify-loop.sh +75 -0
- package/scripts/uninstall.sh +81 -52
- package/scripts/verify.sh +380 -109
- package/tests/contracts/contract-template.test.md +10 -0
- package/tests/fixtures/fixture-index.md +4 -0
- package/tests/integration/integration-template.test.md +4 -0
- package/tests/unit/unit-template.test.md +4 -0
- package/.codex/skills/project-genesis-harness/SKILL.md +0 -727
- package/.codex/skills/project-genesis-harness/agents/openai.yaml +0 -9
- /package/.codex/skills/{project-genesis-harness → genesis-harness}/references/planning-schema.md +0 -0
- /package/.codex/skills/{project-genesis-harness → genesis-harness}/references/quality-rubric.md +0 -0
- /package/.codex/skills/{project-genesis-harness → genesis-harness}/references/research-rubric.md +0 -0
- /package/.codex/skills/{project-genesis-harness → genesis-harness}/references/workflows.md +0 -0
- /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/agents-template.md +0 -0
- /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/api-docs-template.md +0 -0
- /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/architecture-template.md +0 -0
- /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/audit-template.md +0 -0
- /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/bug-template.md +0 -0
- /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/check-template.md +0 -0
- /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/conventions-template.md +0 -0
- /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/decision-template.md +0 -0
- /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/design-template.md +0 -0
- /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/escalation-template.md +0 -0
- /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/feature-template.md +0 -0
- /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/integrations-template.md +0 -0
- /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/journeys-template.md +0 -0
- /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/lessons-learned-template.md +0 -0
- /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/observability-template.md +0 -0
- /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/phase-template.md +0 -0
- /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/pitfalls-template.md +0 -0
- /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/planning-tree-template.md +0 -0
- /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/project-template.md +0 -0
- /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/quality-score-template.md +0 -0
- /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/requirements-template.md +0 -0
- /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/research-template.md +0 -0
- /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/review-template.md +0 -0
- /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/spec-changelog-template.md +0 -0
- /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/stack-template.md +0 -0
- /package/.codex/skills/{project-genesis-harness → genesis-harness}/resources/verification-template.md +0 -0
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
# Release Tracking & Observability
|
|
2
|
+
|
|
3
|
+
**Purpose**: Log, track, and analyze all release deployments
|
|
4
|
+
**Format**: Machine-readable for automation, human-readable for review
|
|
5
|
+
**Retention**: 12 months (archive older)
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## RELEASE_LOG.md Format
|
|
10
|
+
|
|
11
|
+
```markdown
|
|
12
|
+
# Release Deployment Log
|
|
13
|
+
|
|
14
|
+
## v3.0.0 - May 31, 2026
|
|
15
|
+
|
|
16
|
+
**Metadata**:
|
|
17
|
+
- Date: 2026-05-31
|
|
18
|
+
- Version: v3.0.0
|
|
19
|
+
- Strategy: Canary (1%→10%→50%→100%)
|
|
20
|
+
- Risk Score: 7/10 (HIGH)
|
|
21
|
+
- Breaking Changes: 2
|
|
22
|
+
- Approvals: Tech Lead (John Doe), Product Lead (Jane Smith)
|
|
23
|
+
- Status: ✅ COMPLETE
|
|
24
|
+
- Duration: 8 hours 30 minutes
|
|
25
|
+
|
|
26
|
+
**Changes Summary**:
|
|
27
|
+
- Removed: POST /users/:id/avatar endpoint
|
|
28
|
+
- Changed: Response format { user: {...} } → { data: {...} }
|
|
29
|
+
- Added: PATCH /users/:id/profile endpoint
|
|
30
|
+
- Fixed: User role permission bug
|
|
31
|
+
|
|
32
|
+
**Deployment Details**:
|
|
33
|
+
- Stage 1: 1% traffic, 1 hour, ✅ PASS
|
|
34
|
+
- Stage 2: 10% traffic, 2 hours, ✅ PASS
|
|
35
|
+
- Stage 3: 50% traffic, 4 hours, ✅ PASS
|
|
36
|
+
- Stage 4: 100% traffic, 24+ hours, ✅ PASS
|
|
37
|
+
|
|
38
|
+
**Metrics**:
|
|
39
|
+
- Error Rate: 0.08% (target <1%) ✅
|
|
40
|
+
- Latency P95: 191ms (target <200ms) ✅
|
|
41
|
+
- Availability: 99.92%
|
|
42
|
+
- Issues: None
|
|
43
|
+
- Rollback: Not required
|
|
44
|
+
|
|
45
|
+
**Consumers Migrated**:
|
|
46
|
+
- WebApp: ✅ Updated (deployed v[X] with response parsing fix)
|
|
47
|
+
- Mobile: ✅ Already on v1.3+
|
|
48
|
+
- Dashboard: ✅ Updated
|
|
49
|
+
- Admin: ✅ Updated
|
|
50
|
+
- Partners: ⏳ In progress (2/3 clients migrated)
|
|
51
|
+
|
|
52
|
+
**Post-Deployment**:
|
|
53
|
+
- Monitoring window: 24 hours
|
|
54
|
+
- All checks: ✅ PASS
|
|
55
|
+
- Team stood down: 2026-06-01 18:00 UTC
|
|
56
|
+
- Previous version decommissioned: 2026-06-01 20:00 UTC
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## v2.5.3 - May 15, 2026
|
|
61
|
+
|
|
62
|
+
**Status**: ✅ COMPLETE (patch release)
|
|
63
|
+
...
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## release-metrics.csv Format
|
|
69
|
+
|
|
70
|
+
```csv
|
|
71
|
+
date,version,strategy,risk_score,breaking_changes,affected_consumers,duration_hours,error_rate_pct,latency_p95_ms,issues_count,rollback_required,approval_chain,status
|
|
72
|
+
2026-05-31,v3.0.0,canary,7,2,12,8.5,0.08,191,0,false,TL+PL,complete
|
|
73
|
+
2026-05-15,v2.5.3,rolling,2,0,0,2.0,0.06,185,0,false,TL,complete
|
|
74
|
+
2026-05-01,v2.5.2,rolling,1,0,0,1.5,0.07,187,0,false,auto,complete
|
|
75
|
+
2026-04-15,v2.5.1,blue-green,3,1,3,3.0,0.09,192,1,false,TL+PL,complete
|
|
76
|
+
2026-04-01,v2.5.0,canary,6,1,8,9.0,0.08,190,0,false,TL+PL+CTO,complete
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Monthly Health Report Template
|
|
82
|
+
|
|
83
|
+
```markdown
|
|
84
|
+
# Release Health Report - May 2026
|
|
85
|
+
|
|
86
|
+
## Summary
|
|
87
|
+
|
|
88
|
+
| Metric | May 2026 | April 2026 | Trend |
|
|
89
|
+
|--------|----------|-----------|-------|
|
|
90
|
+
| Releases | 5 | 4 | ↑ 25% |
|
|
91
|
+
| Avg Risk Score | 3.8/10 | 4.2/10 | ↓ Improving |
|
|
92
|
+
| Avg Error Rate | 0.077% | 0.081% | ↓ Improving |
|
|
93
|
+
| Avg Latency P95 | 189ms | 194ms | ↓ Improving |
|
|
94
|
+
| Rollback Rate | 0% | 0% | = Stable |
|
|
95
|
+
| Avg Deploy Time | 3.5 hrs | 4.1 hrs | ↓ Faster |
|
|
96
|
+
| Consumer Migration Success | 99.5% | 97% | ↑ Improving |
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
## May Releases
|
|
101
|
+
|
|
102
|
+
### v3.0.0 - May 31 (MAJOR)
|
|
103
|
+
- Strategy: Canary
|
|
104
|
+
- Duration: 8.5 hours
|
|
105
|
+
- Status: ✅ Success
|
|
106
|
+
- Issues: None
|
|
107
|
+
|
|
108
|
+
### v2.5.3 - May 15 (PATCH)
|
|
109
|
+
- Strategy: Rolling
|
|
110
|
+
- Duration: 2 hours
|
|
111
|
+
- Status: ✅ Success
|
|
112
|
+
- Issues: None
|
|
113
|
+
|
|
114
|
+
### v2.5.2 - May 1 (PATCH)
|
|
115
|
+
- Strategy: Rolling
|
|
116
|
+
- Duration: 1.5 hours
|
|
117
|
+
- Status: ✅ Success
|
|
118
|
+
- Issues: None (bug fix)
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## Performance Trends
|
|
123
|
+
|
|
124
|
+
### Deployment Duration (Hours)
|
|
125
|
+
|
|
126
|
+
```
|
|
127
|
+
May 31: 8.5 (canary v3.0.0, complex)
|
|
128
|
+
May 15: 2.0 (rolling v2.5.3, simple)
|
|
129
|
+
May 1: 1.5 (rolling v2.5.2, simple)
|
|
130
|
+
Apr 15: 3.0 (blue-green v2.5.1, medium)
|
|
131
|
+
Apr 1: 9.0 (canary v2.5.0, complex)
|
|
132
|
+
|
|
133
|
+
Average: 4.8 hours → Targeting: 3.5 hours
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Error Rates (%)
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
May avg: 0.077%
|
|
140
|
+
Apr avg: 0.081%
|
|
141
|
+
Mar avg: 0.095%
|
|
142
|
+
|
|
143
|
+
Trend: ↓ Improving (better automation, earlier detection)
|
|
144
|
+
Target: <0.05% by Q3 2026
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Rollback Rate (%)
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
May: 0% (5/5 successful, no rollbacks)
|
|
151
|
+
Apr: 0% (4/4 successful, no rollbacks)
|
|
152
|
+
Mar: 20% (1/5 rolled back due to API format issue)
|
|
153
|
+
|
|
154
|
+
Trend: ↑ Improving (pre-deployment validation preventing failures)
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## Improvement Opportunities
|
|
160
|
+
|
|
161
|
+
1. **Deployment Automation**: Canary stages could be automated further (currently manual decisions)
|
|
162
|
+
- Expected savings: 2+ hours per release
|
|
163
|
+
- Effort: Medium (auto-go criteria definition)
|
|
164
|
+
|
|
165
|
+
2. **Consumer Migration**: Manual tracking of consumer updates
|
|
166
|
+
- Expected savings: 1 hour per breaking change release
|
|
167
|
+
- Effort: High (requires consumer API integration)
|
|
168
|
+
|
|
169
|
+
3. **Database Migrations**: Currently manual (could auto-rollback if data inconsistency detected)
|
|
170
|
+
- Expected savings: 30 min per migration
|
|
171
|
+
- Effort: High (complex, risky)
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## Queries & Analytics
|
|
176
|
+
|
|
177
|
+
### Find all BREAKING releases in past 30 days
|
|
178
|
+
```
|
|
179
|
+
SELECT * FROM release_metrics
|
|
180
|
+
WHERE date > DATE('2026-05-01')
|
|
181
|
+
AND breaking_changes > 0
|
|
182
|
+
ORDER BY date DESC;
|
|
183
|
+
|
|
184
|
+
Result: v3.0.0 (2 breaking), v2.5.1 (1 breaking)
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### Find releases with longest deployment time
|
|
188
|
+
```
|
|
189
|
+
SELECT date, version, strategy, duration_hours, risk_score
|
|
190
|
+
FROM release_metrics
|
|
191
|
+
ORDER BY duration_hours DESC
|
|
192
|
+
LIMIT 5;
|
|
193
|
+
|
|
194
|
+
Result:
|
|
195
|
+
- v2.5.0: 9.0 hours (canary, risk 6)
|
|
196
|
+
- v3.0.0: 8.5 hours (canary, risk 7)
|
|
197
|
+
- v2.5.1: 3.0 hours (blue-green, risk 3)
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### Calculate average deployment time by strategy
|
|
201
|
+
```
|
|
202
|
+
SELECT strategy, COUNT(*) as count, AVG(duration_hours) as avg_duration
|
|
203
|
+
FROM release_metrics
|
|
204
|
+
GROUP BY strategy
|
|
205
|
+
ORDER BY avg_duration DESC;
|
|
206
|
+
|
|
207
|
+
Result:
|
|
208
|
+
- Canary: avg 8.75 hours (2 releases)
|
|
209
|
+
- Blue-Green: avg 3.0 hours (1 release)
|
|
210
|
+
- Rolling: avg 1.67 hours (2 releases)
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### Find releases with issues
|
|
214
|
+
```
|
|
215
|
+
SELECT date, version, issues_count, rollback_required, status
|
|
216
|
+
FROM release_metrics
|
|
217
|
+
WHERE issues_count > 0 OR rollback_required = true;
|
|
218
|
+
|
|
219
|
+
Result: None in May 2026 (all clean)
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
---
|
|
223
|
+
|
|
224
|
+
## Monthly Highlights
|
|
225
|
+
|
|
226
|
+
✅ **Successes**:
|
|
227
|
+
- 5 releases completed without rollbacks
|
|
228
|
+
- v3.0.0 (major, breaking) deployed successfully with canary strategy
|
|
229
|
+
- 99.5% consumer migration success rate
|
|
230
|
+
- Error rates improving month-over-month
|
|
231
|
+
|
|
232
|
+
⚠️ **Opportunities**:
|
|
233
|
+
- Reduce canary deployment time (currently 8+ hours for high-risk)
|
|
234
|
+
- Automate consumer migration tracking
|
|
235
|
+
- Enhance pre-deployment validation
|
|
236
|
+
|
|
237
|
+
🎯 **Targets for June**:
|
|
238
|
+
- Reduce avg deployment time to 3 hours (vs 4.8 current)
|
|
239
|
+
- Maintain 0% rollback rate
|
|
240
|
+
- 100% consumer migration for breaking changes
|
|
241
|
+
- Implement auto-canary-stage-progression
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
## Archive Strategy
|
|
246
|
+
|
|
247
|
+
- **Recent** (< 3 months): Keep in RELEASE_LOG.md + release-metrics.csv
|
|
248
|
+
- **Aging** (3-12 months): Archive to release-metrics-2026-Q1.csv.gz
|
|
249
|
+
- **Archived** (> 12 months): Store in S3, reference in historical reports
|
|
250
|
+
|
|
251
|
+
Example:
|
|
252
|
+
- 2026 Q1: release-metrics-2026-Q1.csv.gz (archived May 2026)
|
|
253
|
+
- 2025 Q4: release-metrics-2025-Q4.csv.gz (archived Feb 2026)
|
package/.codex/skills/genesis-release-orchestration/playbooks/canary-deployment-orchestration.md
ADDED
|
@@ -0,0 +1,472 @@
|
|
|
1
|
+
# Canary Deployment Orchestration Playbook
|
|
2
|
+
|
|
3
|
+
**Purpose**: Step-by-step canary deployment workflow for high-risk releases
|
|
4
|
+
**Duration**: 8-12 hours (4 stages, 1-4 hours each)
|
|
5
|
+
**Success Criteria**: Error rate <1%, latency within baseline, no critical issues
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Canary Deployment: Real-World Example
|
|
10
|
+
|
|
11
|
+
**Release**: v3.0.0 (breaking changes, risk score 7/10)
|
|
12
|
+
**Deployment Date**: May 31, 2026
|
|
13
|
+
**Team Lead**: John Doe
|
|
14
|
+
**Approval**: Tech Lead + Product Lead (both approved May 30)
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Pre-Deployment Checklist (30 min)
|
|
19
|
+
|
|
20
|
+
**Before 09:30 UTC (30 min before Stage 1)**
|
|
21
|
+
|
|
22
|
+
- ✅ Team assembled and on-call: Engineering, Ops, Product
|
|
23
|
+
- ✅ Deployment runbooks reviewed by ops team
|
|
24
|
+
- ✅ Monitoring dashboards created and live
|
|
25
|
+
- ✅ Alerts configured (error rate >5%, latency spike >2s)
|
|
26
|
+
- ✅ Rollback procedures rehearsed
|
|
27
|
+
- ✅ Consumer notification sent (email + Slack + status page)
|
|
28
|
+
- ✅ Database migrations tested and ready
|
|
29
|
+
- ✅ Previous version available for instant rollback
|
|
30
|
+
- ✅ Load balancer configured for canary (1% traffic ability)
|
|
31
|
+
- ✅ All approvals documented
|
|
32
|
+
|
|
33
|
+
**Go/No-Go Decision**: 09:30 UTC
|
|
34
|
+
- Team lead: "All checks pass, proceeding to Stage 1"
|
|
35
|
+
- Timestamp: 2026-05-31 09:30:00 UTC
|
|
36
|
+
- Team confirms: Ready to deploy
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Stage 1: 1% Traffic Canary (10:00-11:00 UTC)
|
|
41
|
+
|
|
42
|
+
**Objective**: Validate v3.0.0 works on minimal traffic before larger rollout
|
|
43
|
+
|
|
44
|
+
### **Deployment (10:00 UTC - 5 min)**
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# 1. Deploy v3.0.0 to isolated cluster
|
|
48
|
+
kubectl apply -f deployment-v3.0.0.yaml
|
|
49
|
+
|
|
50
|
+
# 2. Wait for pods to be Ready
|
|
51
|
+
kubectl get pods -w
|
|
52
|
+
# All pods: Running (Ready 1/1)
|
|
53
|
+
|
|
54
|
+
# 3. Configure load balancer to route 1% traffic to v3.0.0
|
|
55
|
+
# 99% → v2.5.3 (stable)
|
|
56
|
+
# 1% → v3.0.0 (canary)
|
|
57
|
+
|
|
58
|
+
aws elbv2 modify-rule --rule-arn <arn> \
|
|
59
|
+
--conditions Field=path-pattern,Values="/api/*" \
|
|
60
|
+
--actions Type=forward,TargetGroups="[{TargetGroupArn=<v3-tg>,Weight=1},{TargetGroupArn=<v2-tg>,Weight=99}]"
|
|
61
|
+
|
|
62
|
+
echo "✅ Deployment complete: 1% traffic to v3.0.0"
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### **Monitoring (10:05-11:00 UTC - 55 min)**
|
|
66
|
+
|
|
67
|
+
**Metrics to watch every 5 minutes**:
|
|
68
|
+
|
|
69
|
+
| Metric | Target | Alert Threshold | Status |
|
|
70
|
+
|--------|--------|-----------------|--------|
|
|
71
|
+
| Error Rate (5xx) | <0.1% | >1% | 🟢 0.08% |
|
|
72
|
+
| Response Time P95 | <200ms | >300ms | 🟢 185ms |
|
|
73
|
+
| Response Time P99 | <500ms | >750ms | 🟢 420ms |
|
|
74
|
+
| Database Connections | Stable | Growing | 🟢 Stable |
|
|
75
|
+
| CPU Usage | <70% | >80% | 🟢 45% |
|
|
76
|
+
| Memory Usage | <80% | >85% | 🟢 62% |
|
|
77
|
+
| Request Count | Normal | 2x spike | 🟢 Normal |
|
|
78
|
+
| Timeout Errors | 0 | >0 | 🟢 0 |
|
|
79
|
+
|
|
80
|
+
**Monitoring dashboard**:
|
|
81
|
+
```
|
|
82
|
+
Time: 10:05 UTC → Error rate: 0.08% ✓ | Latency P95: 185ms ✓
|
|
83
|
+
Time: 10:10 UTC → Error rate: 0.09% ✓ | Latency P95: 189ms ✓
|
|
84
|
+
Time: 10:15 UTC → Error rate: 0.07% ✓ | Latency P95: 182ms ✓
|
|
85
|
+
...
|
|
86
|
+
Time: 10:55 UTC → Error rate: 0.08% ✓ | Latency P95: 186ms ✓
|
|
87
|
+
|
|
88
|
+
✅ Stage 1 monitoring complete: All metrics green
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
**Sample errors seen** (all acceptable):
|
|
92
|
+
```
|
|
93
|
+
- 3 timeouts (normal, <0.01%)
|
|
94
|
+
- 2 authentication errors (client misconfigured, expected)
|
|
95
|
+
- 1 database connection pool exhaustion (expected on first requests)
|
|
96
|
+
|
|
97
|
+
ANALYSIS: All errors are non-critical. No signs of API format issues.
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### **Consumer Feedback (10:00-11:00 UTC)**
|
|
101
|
+
|
|
102
|
+
**Slack #api-v3-migration channel**:
|
|
103
|
+
```
|
|
104
|
+
10:15 - MobileApp team: "v3.0.0 working fine, receiving 1% of traffic"
|
|
105
|
+
10:20 - WebApp team: "No errors seen in our logs, data parsing works"
|
|
106
|
+
10:45 - Dashboard team: "Response format change working as expected"
|
|
107
|
+
|
|
108
|
+
✅ No consumer complaints reported during Stage 1
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### **Stage 1 Decision (11:00 UTC)**
|
|
112
|
+
|
|
113
|
+
**Go/No-Go Decision Meeting**:
|
|
114
|
+
- **Metrics**: ✅ All green (error rate 0.08%, latency normal)
|
|
115
|
+
- **Errors**: ✅ No critical issues
|
|
116
|
+
- **Consumers**: ✅ No complaints
|
|
117
|
+
- **Team consensus**: ✅ Ready to proceed
|
|
118
|
+
|
|
119
|
+
**Decision**: 🟢 **GO to Stage 2**
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
Stage 1 Summary:
|
|
123
|
+
Duration: 1 hour
|
|
124
|
+
Traffic: 1% (≈ 100-200 requests/sec)
|
|
125
|
+
Error rate: 0.08% (PASS - target <1%)
|
|
126
|
+
Latency: Normal, within baseline
|
|
127
|
+
Issues: None
|
|
128
|
+
|
|
129
|
+
Decision: Proceed to Stage 2 (10% traffic)
|
|
130
|
+
Time: 11:00 UTC
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## Stage 2: 10% Traffic Canary (11:15-13:15 UTC)
|
|
136
|
+
|
|
137
|
+
**Objective**: Validate v3.0.0 handles 10x traffic load
|
|
138
|
+
|
|
139
|
+
### **Deployment (11:15 UTC - 5 min)**
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
# Update load balancer weights: 1% → 10%
|
|
143
|
+
aws elbv2 modify-rule --rule-arn <arn> \
|
|
144
|
+
--actions Type=forward,TargetGroups="[{TargetGroupArn=<v3-tg>,Weight=10},{TargetGroupArn=<v2-tg>,Weight=90}]"
|
|
145
|
+
|
|
146
|
+
echo "✅ Stage 2: 10% traffic to v3.0.0"
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### **Monitoring (11:20-13:15 UTC - 2 hours)**
|
|
150
|
+
|
|
151
|
+
**Key metrics every 10 minutes**:
|
|
152
|
+
|
|
153
|
+
```
|
|
154
|
+
Time: 11:20 UTC
|
|
155
|
+
Error rate: 0.09% ✓ (target <1%)
|
|
156
|
+
P95 latency: 192ms ✓ (target <200ms)
|
|
157
|
+
P99 latency: 445ms ✓ (target <500ms)
|
|
158
|
+
Traffic: 1000-1500 req/sec ✓
|
|
159
|
+
|
|
160
|
+
Time: 11:30 UTC
|
|
161
|
+
Error rate: 0.10% ✓
|
|
162
|
+
P95 latency: 198ms ✓
|
|
163
|
+
P99 latency: 468ms ✓
|
|
164
|
+
Traffic: 1200-1600 req/sec ✓
|
|
165
|
+
|
|
166
|
+
Time: 12:00 UTC (30 min checkpoint)
|
|
167
|
+
Error rate: 0.08% ✓
|
|
168
|
+
P95 latency: 190ms ✓
|
|
169
|
+
P99 latency: 430ms ✓
|
|
170
|
+
Anomaly: None detected
|
|
171
|
+
|
|
172
|
+
Time: 12:30 UTC (60 min checkpoint)
|
|
173
|
+
Error rate: 0.09% ✓
|
|
174
|
+
P95 latency: 195ms ✓
|
|
175
|
+
P99 latency: 455ms ✓
|
|
176
|
+
CPU usage: 55% ✓ (room for growth)
|
|
177
|
+
|
|
178
|
+
Time: 13:00 UTC (100 min checkpoint)
|
|
179
|
+
Error rate: 0.07% ✓
|
|
180
|
+
P95 latency: 188ms ✓ (trending down - good!)
|
|
181
|
+
P99 latency: 420ms ✓
|
|
182
|
+
Request rate: 1500 req/sec (stable)
|
|
183
|
+
|
|
184
|
+
Time: 13:15 UTC (Stage 2 end)
|
|
185
|
+
Error rate: 0.08% ✓
|
|
186
|
+
P95 latency: 191ms ✓
|
|
187
|
+
Database connections: Stable (average 45)
|
|
188
|
+
Cache hit rate: 92% ✓
|
|
189
|
+
|
|
190
|
+
✅ Stage 2 complete: All metrics excellent
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
**Issues discovered** (and handled):
|
|
194
|
+
```
|
|
195
|
+
Time: 11:45 UTC
|
|
196
|
+
Alert: Cache connection pool exhaustion (brief, <1 min)
|
|
197
|
+
Root cause: New connection pooling in v3.0 didn't ramp gradually
|
|
198
|
+
Action: Increase cache connection pool from 50 → 100
|
|
199
|
+
Result: Issue resolved, no downstream impact
|
|
200
|
+
|
|
201
|
+
Conclusion: Minor configuration tuning, not a blocker
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### **Stage 2 Decision (13:15 UTC)**
|
|
205
|
+
|
|
206
|
+
**Decision Criteria Met**:
|
|
207
|
+
- ✅ Error rate <1% (actual: 0.08%)
|
|
208
|
+
- ✅ Latency within baseline (actual: +5%)
|
|
209
|
+
- ✅ No critical issues (1 minor config tuning)
|
|
210
|
+
- ✅ 10x traffic handled successfully
|
|
211
|
+
- ✅ Consumer feedback positive
|
|
212
|
+
|
|
213
|
+
**Decision**: 🟢 **GO to Stage 3**
|
|
214
|
+
|
|
215
|
+
```
|
|
216
|
+
Stage 2 Summary:
|
|
217
|
+
Duration: 2 hours
|
|
218
|
+
Traffic: 10% (≈ 1000-1600 requests/sec)
|
|
219
|
+
Error rate: 0.08% (PASS - target <1%)
|
|
220
|
+
Latency: Normal, within baseline
|
|
221
|
+
Issues: 1 minor (config tuning, resolved)
|
|
222
|
+
|
|
223
|
+
Decision: Proceed to Stage 3 (50% traffic)
|
|
224
|
+
Time: 13:15 UTC
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## Stage 3: 50% Traffic Canary (13:30-17:30 UTC)
|
|
230
|
+
|
|
231
|
+
**Objective**: Validate v3.0.0 handles majority traffic load
|
|
232
|
+
|
|
233
|
+
### **Deployment (13:30 UTC - 5 min)**
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
# Update load balancer: 10% → 50%
|
|
237
|
+
aws elbv2 modify-rule --rule-arn <arn> \
|
|
238
|
+
--actions Type=forward,TargetGroups="[{TargetGroupArn=<v3-tg>,Weight=50},{TargetGroupArn=<v2-tg>,Weight=50}]"
|
|
239
|
+
|
|
240
|
+
echo "✅ Stage 3: 50% traffic split between v3.0.0 and v2.5.3"
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
### **Monitoring (13:35-17:30 UTC - 4 hours)**
|
|
244
|
+
|
|
245
|
+
**Critical tracking - This is "real-world" load test**:
|
|
246
|
+
|
|
247
|
+
```
|
|
248
|
+
Time: 13:40 UTC (5 min checkpoint)
|
|
249
|
+
Error rate: 0.09% ✓
|
|
250
|
+
P95 latency: 194ms ✓
|
|
251
|
+
Traffic split: 50/50 v3.0.0 / v2.5.3
|
|
252
|
+
|
|
253
|
+
Time: 14:00 UTC (30 min checkpoint)
|
|
254
|
+
Error rate: 0.08% ✓
|
|
255
|
+
P95 latency: 191ms ✓
|
|
256
|
+
Memory usage v3: 68% (growing, but acceptable)
|
|
257
|
+
Database load: Balanced between versions
|
|
258
|
+
|
|
259
|
+
Time: 14:30 UTC (60 min checkpoint)
|
|
260
|
+
Error rate: 0.10% ✓
|
|
261
|
+
P95 latency: 198ms ✓
|
|
262
|
+
Peak traffic: 3000 req/sec (50% to v3.0.0)
|
|
263
|
+
v3.0.0 handling: Excellent
|
|
264
|
+
|
|
265
|
+
Time: 15:00 UTC (90 min checkpoint) - LUNCH RUSH
|
|
266
|
+
Error rate: 0.12% ⚠️ (spike during peak traffic)
|
|
267
|
+
P95 latency: 215ms ⚠️ (spike during peak traffic)
|
|
268
|
+
Traffic surge: 4500 req/sec (peak)
|
|
269
|
+
|
|
270
|
+
Investigation:
|
|
271
|
+
- v3.0.0 handling peak load: Yes ✓
|
|
272
|
+
- Spike is traffic-related, not version-related
|
|
273
|
+
- v2.5.3 shows same spike (confirms: normal behavior)
|
|
274
|
+
- Autoscaling: Adding 2 more pods
|
|
275
|
+
|
|
276
|
+
Time: 15:10 UTC
|
|
277
|
+
Error rate: 0.09% ✓ (back to normal)
|
|
278
|
+
P95 latency: 196ms ✓ (back to normal)
|
|
279
|
+
Pods: 5 → 7 (autoscale up completed)
|
|
280
|
+
|
|
281
|
+
Time: 15:30 UTC (120 min checkpoint)
|
|
282
|
+
Error rate: 0.08% ✓
|
|
283
|
+
P95 latency: 190ms ✓
|
|
284
|
+
Traffic: Back to 3000 req/sec (post-lunch rush)
|
|
285
|
+
|
|
286
|
+
Time: 16:00 UTC (150 min checkpoint)
|
|
287
|
+
Error rate: 0.08% ✓
|
|
288
|
+
P95 latency: 189ms ✓
|
|
289
|
+
Stability: Excellent for past hour
|
|
290
|
+
|
|
291
|
+
Time: 16:30 UTC (180 min checkpoint)
|
|
292
|
+
Error rate: 0.07% ✓ (trending down)
|
|
293
|
+
P95 latency: 188ms ✓
|
|
294
|
+
Database query times: Stable
|
|
295
|
+
Cache hit rate: 93% ✓
|
|
296
|
+
|
|
297
|
+
Time: 17:15 UTC (225 min checkpoint)
|
|
298
|
+
Error rate: 0.08% ✓
|
|
299
|
+
P95 latency: 190ms ✓
|
|
300
|
+
All systems stable
|
|
301
|
+
|
|
302
|
+
Time: 17:30 UTC (Stage 3 end)
|
|
303
|
+
Error rate: 0.08% ✓
|
|
304
|
+
P95 latency: 191ms ✓
|
|
305
|
+
Total Stage 3 requests: 720,000+ handled by v3.0.0
|
|
306
|
+
Success rate: 99.92%
|
|
307
|
+
|
|
308
|
+
✅ Stage 3 complete: Handled peak traffic successfully
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
**Stage 3 Issues** (none critical):
|
|
312
|
+
```
|
|
313
|
+
- Minor spike during lunch rush (expected, handled by autoscaling)
|
|
314
|
+
- No v3.0.0 specific issues
|
|
315
|
+
- Version performing identically to v2.5.3
|
|
316
|
+
```
|
|
317
|
+
|
|
318
|
+
### **Stage 3 Decision (17:30 UTC)**
|
|
319
|
+
|
|
320
|
+
**Decision Criteria Met**:
|
|
321
|
+
- ✅ Error rate maintained <0.1% even during peak (4500 req/sec)
|
|
322
|
+
- ✅ Handled 720,000+ requests successfully
|
|
323
|
+
- ✅ No version-specific issues
|
|
324
|
+
- ✅ Autoscaling working correctly
|
|
325
|
+
- ✅ 4-hour stability confirmed
|
|
326
|
+
|
|
327
|
+
**Decision**: 🟢 **GO to Stage 4 (Full Rollout)**
|
|
328
|
+
|
|
329
|
+
```
|
|
330
|
+
Stage 3 Summary:
|
|
331
|
+
Duration: 4 hours
|
|
332
|
+
Traffic: 50% (≈ 3000 req/sec average, 4500 peak)
|
|
333
|
+
Total requests: 720,000+ handled successfully
|
|
334
|
+
Error rate: 0.08% (PASS - target <1%)
|
|
335
|
+
Peak traffic handled: ✓ Yes
|
|
336
|
+
Issues: None critical
|
|
337
|
+
|
|
338
|
+
Decision: Proceed to Stage 4 (100% traffic - FULL ROLLOUT)
|
|
339
|
+
Time: 17:30 UTC
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
---
|
|
343
|
+
|
|
344
|
+
## Stage 4: 100% Traffic - Full Rollout (18:00-∞)
|
|
345
|
+
|
|
346
|
+
**Objective**: Complete production rollout, full traffic to v3.0.0
|
|
347
|
+
|
|
348
|
+
### **Deployment (18:00 UTC - 5 min)**
|
|
349
|
+
|
|
350
|
+
```bash
|
|
351
|
+
# Route 100% traffic to v3.0.0
|
|
352
|
+
aws elbv2 modify-rule --rule-arn <arn> \
|
|
353
|
+
--actions Type=forward,TargetGroups="[{TargetGroupArn=<v3-tg>,Weight=100}]"
|
|
354
|
+
|
|
355
|
+
echo "✅ Full rollout: 100% traffic to v3.0.0"
|
|
356
|
+
echo "✅ v2.5.3 kept running for 24 hours as instant rollback"
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
### **Continuous Monitoring (18:00 UTC → 24 hours)**
|
|
360
|
+
|
|
361
|
+
**First hour (18:00-19:00 UTC - Critical)**:
|
|
362
|
+
|
|
363
|
+
```
|
|
364
|
+
Time: 18:00 UTC (FULL ROLLOUT)
|
|
365
|
+
Traffic: 100% → v3.0.0
|
|
366
|
+
v2.5.3 kept running (instant rollback available)
|
|
367
|
+
Error rate: 0.08% ✓
|
|
368
|
+
P95 latency: 192ms ✓
|
|
369
|
+
|
|
370
|
+
Time: 18:05 UTC
|
|
371
|
+
Status: Excellent, no issues detected
|
|
372
|
+
Consumer feedback: Positive
|
|
373
|
+
|
|
374
|
+
Time: 18:30 UTC (30 min checkpoint)
|
|
375
|
+
Error rate: 0.08% ✓ (stable)
|
|
376
|
+
P95 latency: 190ms ✓
|
|
377
|
+
Requests: 6000+ req/sec (full production load)
|
|
378
|
+
|
|
379
|
+
Time: 19:00 UTC (60 min checkpoint)
|
|
380
|
+
Error rate: 0.08% ✓ (1 hour at full load)
|
|
381
|
+
All metrics: Excellent
|
|
382
|
+
v2.5.3: Kept running, ready for instant rollback
|
|
383
|
+
|
|
384
|
+
✅ 1 hour at full production load: SUCCESSFUL
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
**24-hour monitoring window (18:00 UTC Day 1 → 18:00 UTC Day 2)**:
|
|
388
|
+
|
|
389
|
+
- On-call team monitors for 24 hours
|
|
390
|
+
- Alerts: Error rate >1%, latency >500ms P95
|
|
391
|
+
- Rollback capability: Available for 24 hours
|
|
392
|
+
- Post-rollout: v2.5.3 stopped at 18:00 UTC (Day 2)
|
|
393
|
+
|
|
394
|
+
### **Success Criteria - All Met**
|
|
395
|
+
|
|
396
|
+
- ✅ 100% traffic routed to v3.0.0
|
|
397
|
+
- ✅ Error rate maintained <0.1% at full load
|
|
398
|
+
- ✅ Latency within baseline (190ms)
|
|
399
|
+
- ✅ No critical issues
|
|
400
|
+
- ✅ Consumer feedback positive
|
|
401
|
+
- ✅ 24-hour stability confirmed
|
|
402
|
+
- ✅ Rollback ready (24-hour window)
|
|
403
|
+
|
|
404
|
+
---
|
|
405
|
+
|
|
406
|
+
## Post-Deployment Sign-Off (24 hours later)
|
|
407
|
+
|
|
408
|
+
```
|
|
409
|
+
DEPLOYMENT: v3.0.0 Canary → Full Rollout
|
|
410
|
+
DATE: 2026-05-31 18:00 UTC (started) → 2026-06-01 18:00 UTC (complete)
|
|
411
|
+
ORCHESTRATED BY: John Doe (Tech Lead)
|
|
412
|
+
|
|
413
|
+
STAGE RESULTS:
|
|
414
|
+
Stage 1 (1% traffic, 1 hour): ✅ PASS
|
|
415
|
+
Stage 2 (10% traffic, 2 hours): ✅ PASS
|
|
416
|
+
Stage 3 (50% traffic, 4 hours): ✅ PASS
|
|
417
|
+
Stage 4 (100% traffic, 24+ hours): ✅ PASS
|
|
418
|
+
|
|
419
|
+
METRICS:
|
|
420
|
+
Error rate: 0.08% (target <1%) ✅
|
|
421
|
+
P95 latency: 191ms (target <200ms) ✅
|
|
422
|
+
Peak traffic handled: 4500+ req/sec ✅
|
|
423
|
+
Total requests: 2M+ processed successfully ✅
|
|
424
|
+
Uptime: 99.92% ✅
|
|
425
|
+
|
|
426
|
+
ISSUES: None critical
|
|
427
|
+
ROLLBACK: Not required, v2.5.3 deprecated
|
|
428
|
+
|
|
429
|
+
STATUS: ✅ v3.0.0 FULLY DEPLOYED AND STABLE
|
|
430
|
+
|
|
431
|
+
Next step: Stop v2.5.3 at 2026-06-01 18:00 UTC (24 hours post-rollout)
|
|
432
|
+
Follow-up: Monitor metrics for 7 days for stability
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
---
|
|
436
|
+
|
|
437
|
+
## Rollback Scenario (If Issue Found)
|
|
438
|
+
|
|
439
|
+
**Example**: Error rate spike to 5% at 12:00 UTC during Stage 2
|
|
440
|
+
|
|
441
|
+
```
|
|
442
|
+
Time: 12:00 UTC
|
|
443
|
+
Alert: Error rate >5% triggered
|
|
444
|
+
Decision: ROLLBACK to v2.5.3
|
|
445
|
+
|
|
446
|
+
Rollback execution (< 5 minutes):
|
|
447
|
+
1. Load balancer: Revert 100% traffic back to v2.5.3
|
|
448
|
+
2. Verify: Error rate drops to <0.1%
|
|
449
|
+
3. Verify: All requests processing normally
|
|
450
|
+
4. Notify: Stakeholders of rollback
|
|
451
|
+
5. Investigation: Root cause analysis
|
|
452
|
+
6. Fix: Implement correction
|
|
453
|
+
7. Retry: After fix verified in dev/staging
|
|
454
|
+
|
|
455
|
+
Status: v2.5.3 stable, v3.0.0 investigation ongoing
|
|
456
|
+
Timeline: Investigation continues, retry after root cause fixed
|
|
457
|
+
```
|
|
458
|
+
|
|
459
|
+
---
|
|
460
|
+
|
|
461
|
+
## Success Metrics Achieved
|
|
462
|
+
|
|
463
|
+
| Metric | Target | Actual | Status |
|
|
464
|
+
|--------|--------|--------|--------|
|
|
465
|
+
| Error rate | <1% | 0.08% | ✅ |
|
|
466
|
+
| Latency P95 | <200ms | 191ms | ✅ |
|
|
467
|
+
| Peak traffic | 4000+ req/sec | 4500 req/sec | ✅ |
|
|
468
|
+
| Deployment time | <10 hours | 8.5 hours | ✅ |
|
|
469
|
+
| Consumer impact | 0% downtime | 0% downtime | ✅ |
|
|
470
|
+
| Rollback capability | <5 min | <5 min | ✅ |
|
|
471
|
+
|
|
472
|
+
**Result**: 🎉 **v3.0.0 SUCCESSFULLY DEPLOYED**
|