codex-genesis-harness 0.1.1 → 0.1.5
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/ARCHITECTURE_REVIEW_COMPLETE.md +216 -0
- package/.codebase/CURRENT_STATE.md +4 -5
- package/.codebase/DOMAIN_MODELS.md +5 -3
- 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/PHASE3_SKILLS_NAMING_COMPLETE.md +292 -0
- package/.codebase/PHASE_DEPENDENCY_MAP.md +486 -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/state.json +37 -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-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-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 +743 -82
- package/.codex/skills/genesis-harness/checklists/bug-fix-qa.md +169 -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/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/genesis-harness/scripts/check-architecture-boundaries.sh +23 -23
- package/.codex/skills/genesis-harness/scripts/check-docs-sync.sh +24 -24
- package/.codex/skills/genesis-harness/scripts/check-no-debug-logs.sh +21 -21
- package/.codex/skills/genesis-harness/scripts/check-required-planning-files.sh +46 -46
- package/.codex/skills/genesis-harness/scripts/check-spec-changelog.sh +24 -24
- package/.codex/skills/genesis-harness/scripts/check-task-tracking.sh +25 -25
- package/.codex/skills/genesis-harness/scripts/compact-context.sh +54 -0
- package/.codex/skills/genesis-harness/scripts/create-adr.sh +74 -74
- package/.codex/skills/genesis-harness/scripts/create-bug.sh +160 -160
- package/.codex/skills/genesis-harness/scripts/create-feature.sh +217 -217
- package/.codex/skills/genesis-harness/scripts/detect-stack.sh +26 -26
- package/.codex/skills/genesis-harness/scripts/init-planning.sh +750 -719
- package/.codex/skills/genesis-harness/scripts/list-changed-files.sh +12 -12
- package/.codex/skills/genesis-harness/scripts/offload-log.sh +72 -0
- package/.codex/skills/genesis-harness/scripts/run-verification.sh +47 -47
- package/.codex/skills/genesis-harness/scripts/run-verify-loop.sh +75 -0
- package/.codex/skills/genesis-harness/scripts/update-state.sh +33 -33
- package/.codex/skills/genesis-harness-engineering/SKILL.md +159 -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-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-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-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-state-machine/SKILL.md +34 -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-plugin/plugin.json +7 -7
- package/README.EN.md +730 -0
- package/README.VI.md +723 -0
- package/README.md +266 -107
- package/VERSION +1 -1
- package/bin/genesis-harness.js +20 -11
- package/package.json +62 -43
- package/scripts/README.md +342 -0
- package/scripts/compact-context.sh +54 -0
- package/scripts/detect-changes.sh +152 -0
- package/scripts/install.sh +50 -41
- package/scripts/offload-log.sh +72 -0
- package/scripts/run-evals.sh +70 -43
- package/scripts/run-verify-loop.sh +75 -0
- package/scripts/transition_state.sh +67 -0
- package/scripts/uninstall.sh +52 -43
- package/scripts/validation_gates.sh +46 -0
- package/scripts/verify.sh +165 -73
- package/.codex/skills/harness-engineering-skill/SKILL.md +0 -45
- package/.codex/skills/harness-engineering-skill/checklists/checklist.md +0 -8
- package/.codex/skills/harness-engineering-skill/examples/example.md +0 -4
- package/.codex/skills/harness-engineering-skill/templates/harness-change-template.md +0 -8
- /package/.codex/skills/{ai-provider-skill → genesis-ai-provider}/SKILL.md +0 -0
- /package/.codex/skills/{ai-provider-skill → genesis-ai-provider}/agents/openai.yaml +0 -0
- /package/.codex/skills/{ai-provider-skill → genesis-ai-provider}/checklists/checklist.md +0 -0
- /package/.codex/skills/{ai-provider-skill → genesis-ai-provider}/examples/example.md +0 -0
- /package/.codex/skills/{ai-provider-skill → genesis-ai-provider}/templates/provider-contract-template.md +0 -0
- /package/.codex/skills/{api-contract-skill → genesis-api-contract}/SKILL.md +0 -0
- /package/.codex/skills/{api-contract-skill → genesis-api-contract}/agents/openai.yaml +0 -0
- /package/.codex/skills/{api-contract-skill → genesis-api-contract}/checklists/checklist.md +0 -0
- /package/.codex/skills/{api-contract-skill → genesis-api-contract}/examples/example.md +0 -0
- /package/.codex/skills/{api-contract-skill → genesis-api-contract}/templates/api-contract-template.md +0 -0
- /package/.codex/skills/{architecture-skill → genesis-architecture}/SKILL.md +0 -0
- /package/.codex/skills/{architecture-skill → genesis-architecture}/agents/openai.yaml +0 -0
- /package/.codex/skills/{architecture-skill → genesis-architecture}/checklists/checklist.md +0 -0
- /package/.codex/skills/{architecture-skill → genesis-architecture}/examples/example.md +0 -0
- /package/.codex/skills/{architecture-skill → genesis-architecture}/templates/architecture-decision-template.md +0 -0
- /package/.codex/skills/{codebase-map-skill → genesis-codebase-map}/SKILL.md +0 -0
- /package/.codex/skills/{codebase-map-skill → genesis-codebase-map}/agents/openai.yaml +0 -0
- /package/.codex/skills/{codebase-map-skill → genesis-codebase-map}/checklists/checklist.md +0 -0
- /package/.codex/skills/{codebase-map-skill → genesis-codebase-map}/examples/example.md +0 -0
- /package/.codex/skills/{codebase-map-skill → genesis-codebase-map}/templates/map-update-template.md +0 -0
- /package/.codex/skills/{design-spec-skill → genesis-design-spec}/SKILL.md +0 -0
- /package/.codex/skills/{design-spec-skill → genesis-design-spec}/agents/openai.yaml +0 -0
- /package/.codex/skills/{design-spec-skill → genesis-design-spec}/checklists/checklist.md +0 -0
- /package/.codex/skills/{design-spec-skill → genesis-design-spec}/examples/example.md +0 -0
- /package/.codex/skills/{design-spec-skill → genesis-design-spec}/templates/design-spec-template.md +0 -0
- /package/.codex/skills/{docs-skill → genesis-docs}/SKILL.md +0 -0
- /package/.codex/skills/{docs-skill → genesis-docs}/agents/openai.yaml +0 -0
- /package/.codex/skills/{docs-skill → genesis-docs}/checklists/checklist.md +0 -0
- /package/.codex/skills/{docs-skill → genesis-docs}/examples/example.md +0 -0
- /package/.codex/skills/{docs-skill → genesis-docs}/templates/docs-update-template.md +0 -0
- /package/.codex/skills/{harness-engineering-skill → genesis-harness-engineering}/agents/openai.yaml +0 -0
- /package/.codex/skills/{pipeline-orchestration-skill → genesis-pipeline-orchestration}/SKILL.md +0 -0
- /package/.codex/skills/{pipeline-orchestration-skill → genesis-pipeline-orchestration}/agents/openai.yaml +0 -0
- /package/.codex/skills/{pipeline-orchestration-skill → genesis-pipeline-orchestration}/checklists/checklist.md +0 -0
- /package/.codex/skills/{pipeline-orchestration-skill → genesis-pipeline-orchestration}/examples/example.md +0 -0
- /package/.codex/skills/{pipeline-orchestration-skill → genesis-pipeline-orchestration}/templates/orchestration-template.md +0 -0
- /package/.codex/skills/{planning-skill → genesis-planning}/SKILL.md +0 -0
- /package/.codex/skills/{planning-skill → genesis-planning}/agents/openai.yaml +0 -0
- /package/.codex/skills/{planning-skill → genesis-planning}/checklists/checklist.md +0 -0
- /package/.codex/skills/{planning-skill → genesis-planning}/examples/example.md +0 -0
- /package/.codex/skills/{planning-skill → genesis-planning}/templates/plan-template.md +0 -0
- /package/.codex/skills/{release-skill → genesis-release}/SKILL.md +0 -0
- /package/.codex/skills/{release-skill → genesis-release}/agents/openai.yaml +0 -0
- /package/.codex/skills/{release-skill → genesis-release}/checklists/checklist.md +0 -0
- /package/.codex/skills/{release-skill → genesis-release}/examples/example.md +0 -0
- /package/.codex/skills/{release-skill → genesis-release}/templates/release-checklist-template.md +0 -0
- /package/.codex/skills/{research-skill → genesis-research}/SKILL.md +0 -0
- /package/.codex/skills/{research-skill → genesis-research}/agents/openai.yaml +0 -0
- /package/.codex/skills/{research-skill → genesis-research}/checklists/checklist.md +0 -0
- /package/.codex/skills/{research-skill → genesis-research}/examples/example.md +0 -0
- /package/.codex/skills/{research-skill → genesis-research}/templates/research-note-template.md +0 -0
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
# Performance Tracking Log
|
|
2
|
+
|
|
3
|
+
This file tracks performance measurements over time. Append a new entry after every profiling cycle. Never delete old entries — they form the historical record. Archive entries older than 6 months to `observability/archive/PERF_LOG_[year].md`.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## PERF_LOG.md Format
|
|
8
|
+
|
|
9
|
+
Each entry must follow this exact format:
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
---
|
|
13
|
+
date: 2026-05-31
|
|
14
|
+
version: 1.4.2
|
|
15
|
+
commit: abc1234def5678
|
|
16
|
+
environment: staging-isolated
|
|
17
|
+
test_type: baseline | regression | optimization | incident
|
|
18
|
+
triggered_by: PR #123 | scheduled | incident INC-456 | manual
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
### Summary
|
|
22
|
+
|
|
23
|
+
[One paragraph describing what was measured, why, and the outcome]
|
|
24
|
+
|
|
25
|
+
### Metrics (averaged across N runs)
|
|
26
|
+
|
|
27
|
+
| Endpoint | p50 ms | p95 ms | p99 ms | RPS | Error % | vs previous p95 | Status |
|
|
28
|
+
|----------|--------|--------|--------|-----|---------|-----------------|--------|
|
|
29
|
+
| GET /api/users | 42 | 165 | 380 | 312 | 0.02 | -8% | ✅ |
|
|
30
|
+
| POST /api/orders | 89 | 240 | 510 | 156 | 0.05 | +2% | ✅ |
|
|
31
|
+
|
|
32
|
+
### Memory profile
|
|
33
|
+
- Heap at start: X MB
|
|
34
|
+
- Heap at end: X MB
|
|
35
|
+
- Delta: +X MB over Y minutes (rate: Z MB/min)
|
|
36
|
+
- Leak assessment: NONE / SUSPECT / CONFIRMED
|
|
37
|
+
|
|
38
|
+
### Regressions detected
|
|
39
|
+
- [none] OR [list with PERF-ID reference]
|
|
40
|
+
|
|
41
|
+
### Optimizations implemented
|
|
42
|
+
- [none] OR [description with before/after]
|
|
43
|
+
|
|
44
|
+
### Next actions
|
|
45
|
+
- [list of follow-up items]
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Example Entry: Initial Baseline
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
---
|
|
54
|
+
date: 2026-05-31
|
|
55
|
+
version: 1.4.2
|
|
56
|
+
commit: abc1234def5678
|
|
57
|
+
environment: staging-isolated
|
|
58
|
+
test_type: baseline
|
|
59
|
+
triggered_by: release-1.4.2 preparation
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
### Summary
|
|
63
|
+
|
|
64
|
+
Initial baseline captured for release 1.4.2 ahead of production deployment. Five-run protocol with
|
|
65
|
+
warm-up discarded. Environment was fully isolated with background CPU < 2%. All endpoints pass their
|
|
66
|
+
p95 SLA targets. Memory growth was minimal (< 5 MB over 10 minutes). No regressions or anomalies
|
|
67
|
+
detected. System is ready for production release.
|
|
68
|
+
|
|
69
|
+
### Metrics (averaged across 4 measurement runs)
|
|
70
|
+
|
|
71
|
+
| Endpoint | p50 ms | p95 ms | p99 ms | RPS | Error % | SLA p95 | Status |
|
|
72
|
+
|----------|--------|--------|--------|-----|---------|---------|--------|
|
|
73
|
+
| GET /api/users | 42 | 165 | 380 | 312 | 0.02 | 200 ms | ✅ |
|
|
74
|
+
| GET /api/users/:id | 18 | 72 | 145 | 489 | 0.01 | 200 ms | ✅ |
|
|
75
|
+
| POST /api/orders | 89 | 195 | 420 | 156 | 0.05 | 300 ms | ✅ |
|
|
76
|
+
| GET /api/products | 25 | 88 | 180 | 401 | 0.00 | 150 ms | ✅ |
|
|
77
|
+
| POST /auth/login | 145 | 320 | 580 | 89 | 0.10 | 500 ms | ✅ |
|
|
78
|
+
|
|
79
|
+
### Memory profile
|
|
80
|
+
- Heap at start: 256 MB
|
|
81
|
+
- Heap at end: 261 MB
|
|
82
|
+
- Delta: +5 MB over 10 minutes (rate: 0.5 MB/min)
|
|
83
|
+
- Leak assessment: NONE (well within acceptable < 5 MB/min threshold)
|
|
84
|
+
|
|
85
|
+
### Regressions detected
|
|
86
|
+
- none (first baseline — no previous baseline to compare)
|
|
87
|
+
|
|
88
|
+
### Optimizations implemented
|
|
89
|
+
- none
|
|
90
|
+
|
|
91
|
+
### Next actions
|
|
92
|
+
- Set this baseline as the production reference. Store at: observability/baselines/v1.4.2-production.json
|
|
93
|
+
- Schedule next baseline review for v1.5.0 release
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## Performance Trend Tracking
|
|
99
|
+
|
|
100
|
+
Use this table to track p95 across releases at a glance:
|
|
101
|
+
|
|
102
|
+
| Date | Version | GET /api/users p95 | POST /api/orders p95 | Auth p95 | Notes |
|
|
103
|
+
|------|---------|--------------------|---------------------|---------|-------|
|
|
104
|
+
| 2026-01-15 | 1.0.0 | 450 ms | 380 ms | 520 ms | Initial release |
|
|
105
|
+
| 2026-02-20 | 1.1.0 | 420 ms | 350 ms | 500 ms | Minor improvements |
|
|
106
|
+
| 2026-03-10 | 1.2.0 | 380 ms | 310 ms | 490 ms | DB indexes added |
|
|
107
|
+
| 2026-04-05 | 1.3.0 | 320 ms | 280 ms | 480 ms | Query optimization |
|
|
108
|
+
| 2026-05-01 | 1.4.0 | 290 ms | 260 ms | 470 ms | Cache added |
|
|
109
|
+
| 2026-05-31 | 1.4.2 | 165 ms | 195 ms | 320 ms | N+1 fix + new indexes |
|
|
110
|
+
|
|
111
|
+
**Trend visualization (ASCII chart — p95 GET /api/users):**
|
|
112
|
+
```
|
|
113
|
+
450 ─ ●
|
|
114
|
+
420 ─ ●
|
|
115
|
+
380 ─ ●
|
|
116
|
+
320 ─ ●
|
|
117
|
+
290 ─ ●
|
|
118
|
+
165 ─ ● ← Current (v1.4.2)
|
|
119
|
+
─────────────────
|
|
120
|
+
1.0 1.1 1.2 1.3 1.4 1.4.2
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
## Regression Detection Queries
|
|
126
|
+
|
|
127
|
+
### Find all regressions in the log
|
|
128
|
+
```bash
|
|
129
|
+
grep -n "REGRESSION" observability/PERF_LOG.md
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Find all entries for a specific endpoint
|
|
133
|
+
```bash
|
|
134
|
+
grep -A 20 "GET /api/users" observability/PERF_LOG.md | grep "p95"
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Find entries where memory leak was suspected
|
|
138
|
+
```bash
|
|
139
|
+
grep -B 2 "Leak assessment: SUSPECT\|CONFIRMED" observability/PERF_LOG.md
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Extract p95 trend for charting (requires jq and baseline JSONs)
|
|
143
|
+
```bash
|
|
144
|
+
ls observability/baselines/*.json | sort | while read f; do
|
|
145
|
+
version=$(jq -r '.version' "$f")
|
|
146
|
+
p95=$(jq -r '.endpoints["GET /api/users"].p95_ms' "$f")
|
|
147
|
+
echo "$version: $p95 ms"
|
|
148
|
+
done
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## SLA Budget Tracking
|
|
154
|
+
|
|
155
|
+
Track how much of the SLA "budget" each service version consumes:
|
|
156
|
+
|
|
157
|
+
| Endpoint | SLA (p95) | Latest p95 | Budget used | Budget remaining | Risk level |
|
|
158
|
+
|----------|-----------|-----------|------------|-----------------|-----------|
|
|
159
|
+
| GET /api/users | 200 ms | 165 ms | 82.5% | 35 ms (17.5%) | 🟡 MEDIUM |
|
|
160
|
+
| GET /api/users/:id | 200 ms | 72 ms | 36% | 128 ms (64%) | 🟢 LOW |
|
|
161
|
+
| POST /api/orders | 300 ms | 195 ms | 65% | 105 ms (35%) | 🟢 LOW |
|
|
162
|
+
| GET /api/products | 150 ms | 88 ms | 58.7% | 62 ms (41.3%) | 🟢 LOW |
|
|
163
|
+
| POST /auth/login | 500 ms | 320 ms | 64% | 180 ms (36%) | 🟢 LOW |
|
|
164
|
+
|
|
165
|
+
**Risk levels:**
|
|
166
|
+
- 🔴 HIGH: > 90% budget used (< 10% headroom). Any regression will breach SLA.
|
|
167
|
+
- 🟡 MEDIUM: 75-90% budget used (10-25% headroom). Watch carefully.
|
|
168
|
+
- 🟢 LOW: < 75% budget used (> 25% headroom). Comfortable buffer.
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## Incident Correlation
|
|
173
|
+
|
|
174
|
+
When a performance incident occurs, link it here for post-mortem reference:
|
|
175
|
+
|
|
176
|
+
| Incident | Date | Affected endpoints | p95 during incident | Root cause | Resolution | PERF_LOG entry |
|
|
177
|
+
|----------|------|-------------------|--------------------|-----------|-----------|----|
|
|
178
|
+
| INC-001 | 2026-03-15 | GET /api/users | 3200 ms (16× SLA) | Missing index after schema migration | Added index CONCURRENTLY | 2026-03-15 entry |
|
|
179
|
+
| INC-002 | 2026-04-22 | ALL endpoints | 1500 ms | Memory exhaustion (OOM) on 2 of 4 pods | Increased memory limit; fixed memory leak | 2026-04-23 entry |
|
|
180
|
+
|
|
181
|
+
### Incident-to-optimization pipeline
|
|
182
|
+
|
|
183
|
+
When an incident reveals a performance root cause:
|
|
184
|
+
1. Add entry to this incident correlation table.
|
|
185
|
+
2. Create an `OPTIMIZATION RECOMMENDATION` entry in `PERF_LOG.md`.
|
|
186
|
+
3. After fix is deployed, add an after-baseline entry showing recovery.
|
|
187
|
+
4. Close the incident with a link to the PERF_LOG entry.
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## Observability Maturity Indicators
|
|
192
|
+
|
|
193
|
+
Track improvement over time in observability completeness:
|
|
194
|
+
|
|
195
|
+
| Capability | Current status | Target | Progress |
|
|
196
|
+
|-----------|---------------|--------|----------|
|
|
197
|
+
| Baseline automation | Manual | Automated on merge | 60% |
|
|
198
|
+
| Regression gating in CI | Partial (p95 only) | All metrics | 50% |
|
|
199
|
+
| Real-time performance dashboard | Grafana dashboard exists | Alert on breach | 70% |
|
|
200
|
+
| Incident → optimization pipeline | Manual | Semi-automated | 30% |
|
|
201
|
+
| Soak test automation | Manual | Weekly scheduled | 10% |
|
|
202
|
+
| Load test data realism | Synthetic | Production traffic replay | 25% |
|