@accelerationguy/accel 1.0.0
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/CLAUDE.md +19 -0
- package/LICENSE +33 -0
- package/README.md +275 -0
- package/bin/install.js +661 -0
- package/docs/getting-started.md +164 -0
- package/docs/module-guide.md +139 -0
- package/modules/drive/LICENSE +21 -0
- package/modules/drive/PAUL-VS-GSD.md +171 -0
- package/modules/drive/README.md +555 -0
- package/modules/drive/assets/terminal.svg +67 -0
- package/modules/drive/bin/install.js +210 -0
- package/modules/drive/integration.js +76 -0
- package/modules/drive/package.json +38 -0
- package/modules/drive/src/commands/add-phase.md +36 -0
- package/modules/drive/src/commands/apply.md +83 -0
- package/modules/drive/src/commands/assumptions.md +37 -0
- package/modules/drive/src/commands/audit.md +57 -0
- package/modules/drive/src/commands/complete-milestone.md +36 -0
- package/modules/drive/src/commands/config.md +175 -0
- package/modules/drive/src/commands/consider-issues.md +41 -0
- package/modules/drive/src/commands/discover.md +48 -0
- package/modules/drive/src/commands/discuss-milestone.md +33 -0
- package/modules/drive/src/commands/discuss.md +34 -0
- package/modules/drive/src/commands/flows.md +73 -0
- package/modules/drive/src/commands/handoff.md +201 -0
- package/modules/drive/src/commands/help.md +525 -0
- package/modules/drive/src/commands/init.md +54 -0
- package/modules/drive/src/commands/map-codebase.md +34 -0
- package/modules/drive/src/commands/milestone.md +34 -0
- package/modules/drive/src/commands/pause.md +44 -0
- package/modules/drive/src/commands/plan-fix.md +216 -0
- package/modules/drive/src/commands/plan.md +36 -0
- package/modules/drive/src/commands/progress.md +138 -0
- package/modules/drive/src/commands/register.md +29 -0
- package/modules/drive/src/commands/remove-phase.md +37 -0
- package/modules/drive/src/commands/research-phase.md +209 -0
- package/modules/drive/src/commands/research.md +47 -0
- package/modules/drive/src/commands/resume.md +49 -0
- package/modules/drive/src/commands/status.md +78 -0
- package/modules/drive/src/commands/unify.md +87 -0
- package/modules/drive/src/commands/verify.md +60 -0
- package/modules/drive/src/references/checkpoints.md +234 -0
- package/modules/drive/src/references/context-management.md +219 -0
- package/modules/drive/src/references/git-strategy.md +206 -0
- package/modules/drive/src/references/loop-phases.md +254 -0
- package/modules/drive/src/references/plan-format.md +263 -0
- package/modules/drive/src/references/quality-principles.md +152 -0
- package/modules/drive/src/references/research-quality-control.md +247 -0
- package/modules/drive/src/references/sonarqube-integration.md +244 -0
- package/modules/drive/src/references/specialized-workflow-integration.md +186 -0
- package/modules/drive/src/references/subagent-criteria.md +179 -0
- package/modules/drive/src/references/tdd.md +219 -0
- package/modules/drive/src/references/work-units.md +161 -0
- package/modules/drive/src/rules/commands.md +108 -0
- package/modules/drive/src/rules/references.md +107 -0
- package/modules/drive/src/rules/style.md +123 -0
- package/modules/drive/src/rules/templates.md +51 -0
- package/modules/drive/src/rules/workflows.md +133 -0
- package/modules/drive/src/templates/CONTEXT.md +88 -0
- package/modules/drive/src/templates/DEBUG.md +164 -0
- package/modules/drive/src/templates/DISCOVERY.md +148 -0
- package/modules/drive/src/templates/HANDOFF.md +77 -0
- package/modules/drive/src/templates/ISSUES.md +93 -0
- package/modules/drive/src/templates/MILESTONES.md +167 -0
- package/modules/drive/src/templates/PLAN.md +328 -0
- package/modules/drive/src/templates/PROJECT.md +219 -0
- package/modules/drive/src/templates/RESEARCH.md +130 -0
- package/modules/drive/src/templates/ROADMAP.md +328 -0
- package/modules/drive/src/templates/SPECIAL-FLOWS.md +70 -0
- package/modules/drive/src/templates/STATE.md +210 -0
- package/modules/drive/src/templates/SUMMARY.md +221 -0
- package/modules/drive/src/templates/UAT-ISSUES.md +139 -0
- package/modules/drive/src/templates/codebase/architecture.md +259 -0
- package/modules/drive/src/templates/codebase/concerns.md +329 -0
- package/modules/drive/src/templates/codebase/conventions.md +311 -0
- package/modules/drive/src/templates/codebase/integrations.md +284 -0
- package/modules/drive/src/templates/codebase/stack.md +190 -0
- package/modules/drive/src/templates/codebase/structure.md +287 -0
- package/modules/drive/src/templates/codebase/testing.md +484 -0
- package/modules/drive/src/templates/config.md +181 -0
- package/modules/drive/src/templates/milestone-archive.md +236 -0
- package/modules/drive/src/templates/milestone-context.md +190 -0
- package/modules/drive/src/templates/paul-json.md +147 -0
- package/modules/drive/src/vector-config/PAUL +26 -0
- package/modules/drive/src/vector-config/PAUL.manifest +11 -0
- package/modules/drive/src/workflows/apply-phase.md +393 -0
- package/modules/drive/src/workflows/audit-plan.md +344 -0
- package/modules/drive/src/workflows/complete-milestone.md +479 -0
- package/modules/drive/src/workflows/configure-special-flows.md +283 -0
- package/modules/drive/src/workflows/consider-issues.md +172 -0
- package/modules/drive/src/workflows/create-milestone.md +268 -0
- package/modules/drive/src/workflows/debug.md +292 -0
- package/modules/drive/src/workflows/discovery.md +187 -0
- package/modules/drive/src/workflows/discuss-milestone.md +245 -0
- package/modules/drive/src/workflows/discuss-phase.md +231 -0
- package/modules/drive/src/workflows/init-project.md +698 -0
- package/modules/drive/src/workflows/map-codebase.md +459 -0
- package/modules/drive/src/workflows/pause-work.md +259 -0
- package/modules/drive/src/workflows/phase-assumptions.md +181 -0
- package/modules/drive/src/workflows/plan-phase.md +385 -0
- package/modules/drive/src/workflows/quality-gate.md +263 -0
- package/modules/drive/src/workflows/register-manifest.md +107 -0
- package/modules/drive/src/workflows/research.md +241 -0
- package/modules/drive/src/workflows/resume-project.md +200 -0
- package/modules/drive/src/workflows/roadmap-management.md +334 -0
- package/modules/drive/src/workflows/transition-phase.md +368 -0
- package/modules/drive/src/workflows/unify-phase.md +290 -0
- package/modules/drive/src/workflows/verify-work.md +241 -0
- package/modules/forge/README.md +281 -0
- package/modules/forge/bin/install.js +200 -0
- package/modules/forge/package.json +32 -0
- package/modules/forge/skillsmith/rules/checklists-rules.md +42 -0
- package/modules/forge/skillsmith/rules/context-rules.md +43 -0
- package/modules/forge/skillsmith/rules/entry-point-rules.md +44 -0
- package/modules/forge/skillsmith/rules/frameworks-rules.md +43 -0
- package/modules/forge/skillsmith/rules/tasks-rules.md +52 -0
- package/modules/forge/skillsmith/rules/templates-rules.md +43 -0
- package/modules/forge/skillsmith/skillsmith.md +82 -0
- package/modules/forge/skillsmith/tasks/audit.md +277 -0
- package/modules/forge/skillsmith/tasks/discover.md +145 -0
- package/modules/forge/skillsmith/tasks/distill.md +276 -0
- package/modules/forge/skillsmith/tasks/scaffold.md +349 -0
- package/modules/forge/specs/checklists.md +193 -0
- package/modules/forge/specs/context.md +223 -0
- package/modules/forge/specs/entry-point.md +320 -0
- package/modules/forge/specs/frameworks.md +228 -0
- package/modules/forge/specs/rules.md +245 -0
- package/modules/forge/specs/tasks.md +344 -0
- package/modules/forge/specs/templates.md +335 -0
- package/modules/forge/terminal.svg +70 -0
- package/modules/ignition/README.md +245 -0
- package/modules/ignition/bin/install.js +184 -0
- package/modules/ignition/checklists/planning-quality.md +55 -0
- package/modules/ignition/data/application/config.md +21 -0
- package/modules/ignition/data/application/guide.md +51 -0
- package/modules/ignition/data/application/skill-loadout.md +11 -0
- package/modules/ignition/data/campaign/config.md +18 -0
- package/modules/ignition/data/campaign/guide.md +36 -0
- package/modules/ignition/data/campaign/skill-loadout.md +10 -0
- package/modules/ignition/data/client/config.md +18 -0
- package/modules/ignition/data/client/guide.md +36 -0
- package/modules/ignition/data/client/skill-loadout.md +11 -0
- package/modules/ignition/data/utility/config.md +18 -0
- package/modules/ignition/data/utility/guide.md +31 -0
- package/modules/ignition/data/utility/skill-loadout.md +8 -0
- package/modules/ignition/data/workflow/config.md +19 -0
- package/modules/ignition/data/workflow/guide.md +41 -0
- package/modules/ignition/data/workflow/skill-loadout.md +10 -0
- package/modules/ignition/integration.js +54 -0
- package/modules/ignition/package.json +35 -0
- package/modules/ignition/seed.md +81 -0
- package/modules/ignition/tasks/add-type.md +164 -0
- package/modules/ignition/tasks/graduate.md +182 -0
- package/modules/ignition/tasks/ideate.md +221 -0
- package/modules/ignition/tasks/launch.md +137 -0
- package/modules/ignition/tasks/status.md +71 -0
- package/modules/ignition/templates/planning-application.md +193 -0
- package/modules/ignition/templates/planning-campaign.md +138 -0
- package/modules/ignition/templates/planning-client.md +149 -0
- package/modules/ignition/templates/planning-utility.md +112 -0
- package/modules/ignition/templates/planning-workflow.md +125 -0
- package/modules/ignition/terminal.svg +74 -0
- package/modules/mission-control/CONTEXT-CONTINUITY-SPEC.md +293 -0
- package/modules/mission-control/CONTEXT-ENGINEERING-GUIDE.md +282 -0
- package/modules/mission-control/README.md +91 -0
- package/modules/mission-control/assets/terminal.svg +80 -0
- package/modules/mission-control/examples/entities.example.json +133 -0
- package/modules/mission-control/examples/projects.example.json +318 -0
- package/modules/mission-control/examples/state.example.json +183 -0
- package/modules/mission-control/examples/vector.example.json +245 -0
- package/modules/mission-control/mission-control/checklists/install-verification.md +46 -0
- package/modules/mission-control/mission-control/frameworks/framework-registry.md +83 -0
- package/modules/mission-control/mission-control/mission-control.md +83 -0
- package/modules/mission-control/mission-control/tasks/insights.md +73 -0
- package/modules/mission-control/mission-control/tasks/install.md +194 -0
- package/modules/mission-control/mission-control/tasks/status.md +125 -0
- package/modules/mission-control/schemas/entities.schema.json +89 -0
- package/modules/mission-control/schemas/projects.schema.json +221 -0
- package/modules/mission-control/schemas/state.schema.json +108 -0
- package/modules/mission-control/schemas/vector.schema.json +200 -0
- package/modules/momentum/README.md +678 -0
- package/modules/momentum/bin/install.js +563 -0
- package/modules/momentum/integration.js +131 -0
- package/modules/momentum/package.json +42 -0
- package/modules/momentum/schemas/entities.schema.json +89 -0
- package/modules/momentum/schemas/projects.schema.json +221 -0
- package/modules/momentum/schemas/state.schema.json +108 -0
- package/modules/momentum/src/commands/audit-claude-md.md +31 -0
- package/modules/momentum/src/commands/audit.md +33 -0
- package/modules/momentum/src/commands/groom.md +35 -0
- package/modules/momentum/src/commands/history.md +27 -0
- package/modules/momentum/src/commands/pulse.md +33 -0
- package/modules/momentum/src/commands/scaffold.md +33 -0
- package/modules/momentum/src/commands/status.md +28 -0
- package/modules/momentum/src/commands/surface-convert.md +35 -0
- package/modules/momentum/src/commands/surface-create.md +34 -0
- package/modules/momentum/src/commands/surface-list.md +27 -0
- package/modules/momentum/src/commands/vector-hygiene.md +33 -0
- package/modules/momentum/src/framework/context/momentum-principles.md +71 -0
- package/modules/momentum/src/framework/frameworks/audit-strategies.md +53 -0
- package/modules/momentum/src/framework/frameworks/satellite-registration.md +44 -0
- package/modules/momentum/src/framework/tasks/audit-claude-md.md +68 -0
- package/modules/momentum/src/framework/tasks/audit.md +64 -0
- package/modules/momentum/src/framework/tasks/groom.md +164 -0
- package/modules/momentum/src/framework/tasks/history.md +34 -0
- package/modules/momentum/src/framework/tasks/pulse.md +83 -0
- package/modules/momentum/src/framework/tasks/scaffold.md +202 -0
- package/modules/momentum/src/framework/tasks/status.md +35 -0
- package/modules/momentum/src/framework/tasks/surface-convert.md +143 -0
- package/modules/momentum/src/framework/tasks/surface-create.md +184 -0
- package/modules/momentum/src/framework/tasks/surface-list.md +42 -0
- package/modules/momentum/src/framework/tasks/vector-hygiene.md +160 -0
- package/modules/momentum/src/framework/templates/workspace-json.md +96 -0
- package/modules/momentum/src/hooks/_template.py +129 -0
- package/modules/momentum/src/hooks/active-hook.py +178 -0
- package/modules/momentum/src/hooks/backlog-hook.py +115 -0
- package/modules/momentum/src/hooks/mission-control-insights.py +169 -0
- package/modules/momentum/src/hooks/momentum-pulse-check.py +351 -0
- package/modules/momentum/src/hooks/operator.py +53 -0
- package/modules/momentum/src/hooks/psmm-injector.py +67 -0
- package/modules/momentum/src/hooks/satellite-detection.py +248 -0
- package/modules/momentum/src/packages/momentum-mcp/index.js +119 -0
- package/modules/momentum/src/packages/momentum-mcp/package.json +10 -0
- package/modules/momentum/src/packages/momentum-mcp/tools/entities.js +226 -0
- package/modules/momentum/src/packages/momentum-mcp/tools/operator.js +106 -0
- package/modules/momentum/src/packages/momentum-mcp/tools/projects.js +322 -0
- package/modules/momentum/src/packages/momentum-mcp/tools/psmm.js +206 -0
- package/modules/momentum/src/packages/momentum-mcp/tools/state.js +199 -0
- package/modules/momentum/src/packages/momentum-mcp/tools/surfaces.js +404 -0
- package/modules/momentum/src/skill/momentum.md +111 -0
- package/modules/momentum/src/tasks/groom.md +164 -0
- package/modules/momentum/src/templates/operator.json +66 -0
- package/modules/momentum/src/templates/workspace.json +111 -0
- package/modules/momentum/terminal.svg +77 -0
- package/modules/radar/README.md +1552 -0
- package/modules/radar/commands/audit.md +233 -0
- package/modules/radar/commands/guardrails.md +194 -0
- package/modules/radar/commands/init.md +207 -0
- package/modules/radar/commands/playbook.md +176 -0
- package/modules/radar/commands/remediate.md +156 -0
- package/modules/radar/commands/report.md +172 -0
- package/modules/radar/commands/resume.md +176 -0
- package/modules/radar/commands/status.md +148 -0
- package/modules/radar/commands/transform.md +205 -0
- package/modules/radar/commands/validate.md +177 -0
- package/modules/radar/docs/ARCHITECTURE.md +336 -0
- package/modules/radar/docs/GETTING-STARTED.md +287 -0
- package/modules/radar/docs/standards/agents.md +197 -0
- package/modules/radar/docs/standards/commands.md +250 -0
- package/modules/radar/docs/standards/domains.md +191 -0
- package/modules/radar/docs/standards/personas.md +211 -0
- package/modules/radar/docs/standards/rules.md +218 -0
- package/modules/radar/docs/standards/runtime.md +445 -0
- package/modules/radar/docs/standards/schemas.md +269 -0
- package/modules/radar/docs/standards/tools.md +273 -0
- package/modules/radar/docs/standards/workflows.md +254 -0
- package/modules/radar/docs/terminal.svg +72 -0
- package/modules/radar/docs/validation/convention-compliance-report.md +183 -0
- package/modules/radar/docs/validation/cross-reference-report.md +195 -0
- package/modules/radar/docs/validation/validation-summary.md +118 -0
- package/modules/radar/docs/validation/version-manifest.yaml +363 -0
- package/modules/radar/install.sh +711 -0
- package/modules/radar/integration.js +53 -0
- package/modules/radar/src/core/agents/architect.md +25 -0
- package/modules/radar/src/core/agents/compliance-officer.md +25 -0
- package/modules/radar/src/core/agents/data-engineer.md +25 -0
- package/modules/radar/src/core/agents/devils-advocate.md +22 -0
- package/modules/radar/src/core/agents/performance-engineer.md +25 -0
- package/modules/radar/src/core/agents/principal-engineer.md +23 -0
- package/modules/radar/src/core/agents/reality-gap-analyst.md +22 -0
- package/modules/radar/src/core/agents/security-engineer.md +25 -0
- package/modules/radar/src/core/agents/senior-app-engineer.md +25 -0
- package/modules/radar/src/core/agents/sre.md +25 -0
- package/modules/radar/src/core/agents/staff-engineer.md +23 -0
- package/modules/radar/src/core/agents/test-engineer.md +25 -0
- package/modules/radar/src/core/personas/architect.md +111 -0
- package/modules/radar/src/core/personas/compliance-officer.md +104 -0
- package/modules/radar/src/core/personas/data-engineer.md +113 -0
- package/modules/radar/src/core/personas/devils-advocate.md +105 -0
- package/modules/radar/src/core/personas/performance-engineer.md +119 -0
- package/modules/radar/src/core/personas/principal-engineer.md +119 -0
- package/modules/radar/src/core/personas/reality-gap-analyst.md +111 -0
- package/modules/radar/src/core/personas/security-engineer.md +108 -0
- package/modules/radar/src/core/personas/senior-app-engineer.md +111 -0
- package/modules/radar/src/core/personas/sre.md +117 -0
- package/modules/radar/src/core/personas/staff-engineer.md +109 -0
- package/modules/radar/src/core/personas/test-engineer.md +109 -0
- package/modules/radar/src/core/workflows/disagreement-resolution.md +183 -0
- package/modules/radar/src/core/workflows/phase-0-context.md +148 -0
- package/modules/radar/src/core/workflows/phase-1-reconnaissance.md +169 -0
- package/modules/radar/src/core/workflows/phase-2-domain-audits.md +190 -0
- package/modules/radar/src/core/workflows/phase-3-cross-domain.md +177 -0
- package/modules/radar/src/core/workflows/phase-4-adversarial-review.md +165 -0
- package/modules/radar/src/core/workflows/phase-5-report.md +189 -0
- package/modules/radar/src/core/workflows/phase-checkpoint.md +222 -0
- package/modules/radar/src/core/workflows/session-handoff.md +152 -0
- package/modules/radar/src/domains/00-context.md +201 -0
- package/modules/radar/src/domains/01-architecture.md +248 -0
- package/modules/radar/src/domains/02-data.md +224 -0
- package/modules/radar/src/domains/03-correctness.md +230 -0
- package/modules/radar/src/domains/04-security.md +274 -0
- package/modules/radar/src/domains/05-compliance.md +228 -0
- package/modules/radar/src/domains/06-testing.md +228 -0
- package/modules/radar/src/domains/07-reliability.md +246 -0
- package/modules/radar/src/domains/08-performance.md +247 -0
- package/modules/radar/src/domains/09-maintainability.md +271 -0
- package/modules/radar/src/domains/10-operability.md +250 -0
- package/modules/radar/src/domains/11-change-risk.md +246 -0
- package/modules/radar/src/domains/12-team-risk.md +221 -0
- package/modules/radar/src/domains/13-risk-synthesis.md +202 -0
- package/modules/radar/src/rules/agent-boundaries.md +78 -0
- package/modules/radar/src/rules/disagreement-protocol.md +76 -0
- package/modules/radar/src/rules/epistemic-hygiene.md +78 -0
- package/modules/radar/src/schemas/confidence.md +185 -0
- package/modules/radar/src/schemas/disagreement.md +238 -0
- package/modules/radar/src/schemas/finding.md +287 -0
- package/modules/radar/src/schemas/report-section.md +150 -0
- package/modules/radar/src/schemas/signal.md +108 -0
- package/modules/radar/src/tools/checkov.md +463 -0
- package/modules/radar/src/tools/git-history.md +581 -0
- package/modules/radar/src/tools/gitleaks.md +447 -0
- package/modules/radar/src/tools/grype.md +611 -0
- package/modules/radar/src/tools/semgrep.md +378 -0
- package/modules/radar/src/tools/sonarqube.md +550 -0
- package/modules/radar/src/tools/syft.md +539 -0
- package/modules/radar/src/tools/trivy.md +439 -0
- package/modules/radar/src/transform/agents/change-risk-modeler.md +24 -0
- package/modules/radar/src/transform/agents/execution-validator.md +24 -0
- package/modules/radar/src/transform/agents/guardrail-generator.md +24 -0
- package/modules/radar/src/transform/agents/pedagogy-agent.md +24 -0
- package/modules/radar/src/transform/agents/remediation-architect.md +24 -0
- package/modules/radar/src/transform/personas/change-risk-modeler.md +95 -0
- package/modules/radar/src/transform/personas/execution-validator.md +95 -0
- package/modules/radar/src/transform/personas/guardrail-generator.md +103 -0
- package/modules/radar/src/transform/personas/pedagogy-agent.md +105 -0
- package/modules/radar/src/transform/personas/remediation-architect.md +95 -0
- package/modules/radar/src/transform/rules/change-risk-rules.md +87 -0
- package/modules/radar/src/transform/rules/safety-governance.md +87 -0
- package/modules/radar/src/transform/schemas/change-risk.md +139 -0
- package/modules/radar/src/transform/schemas/intervention-level.md +207 -0
- package/modules/radar/src/transform/schemas/playbook.md +205 -0
- package/modules/radar/src/transform/schemas/verification-plan.md +134 -0
- package/modules/radar/src/transform/workflows/phase-6-remediation.md +148 -0
- package/modules/radar/src/transform/workflows/phase-7-risk-validation.md +161 -0
- package/modules/radar/src/transform/workflows/phase-8-execution-planning.md +159 -0
- package/modules/radar/src/transform/workflows/transform-safety.md +158 -0
- package/modules/vector/.vector-template/sessions/.gitkeep +0 -0
- package/modules/vector/.vector-template/vector.json +72 -0
- package/modules/vector/AUDIT-CLAUDEMD.md +154 -0
- package/modules/vector/INSTALL.md +185 -0
- package/modules/vector/LICENSE +21 -0
- package/modules/vector/README.md +409 -0
- package/modules/vector/VECTOR-BLOCK.md +57 -0
- package/modules/vector/assets/terminal.svg +68 -0
- package/modules/vector/bin/install.js +455 -0
- package/modules/vector/bin/migrate-v1-to-v2.sh +492 -0
- package/modules/vector/commands/help.md +46 -0
- package/modules/vector/hooks/vector-hook.py +775 -0
- package/modules/vector/mcp/index.js +118 -0
- package/modules/vector/mcp/package.json +10 -0
- package/modules/vector/mcp/tools/decisions.js +269 -0
- package/modules/vector/mcp/tools/domains.js +361 -0
- package/modules/vector/mcp/tools/staging.js +252 -0
- package/modules/vector/mcp/tools/vector-json.js +647 -0
- package/modules/vector/package.json +38 -0
- package/modules/vector/schemas/vector.schema.json +237 -0
- package/package.json +39 -0
- package/shared/branding/branding.js +70 -0
- package/shared/config/defaults.json +59 -0
- package/shared/events/README.md +175 -0
- package/shared/events/event-bus.js +134 -0
- package/shared/events/event_bus.py +255 -0
- package/shared/events/integrations.js +161 -0
- package/shared/events/schemas/audit-complete.schema.json +21 -0
- package/shared/events/schemas/phase-progress.schema.json +23 -0
- package/shared/events/schemas/plan-created.schema.json +21 -0
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: domain-10
|
|
3
|
+
number: "10"
|
|
4
|
+
name: Operability & Developer Experience
|
|
5
|
+
owner_agents: [sre]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Covers CI/CD pipeline quality, deployment safety, rollback capability, observability (logging, metrics, tracing), developer onboarding friction, and operational readiness. Many "great codebases" fail in production because operations was an afterthought — deployments are manual and error-prone, incidents take hours to diagnose, and new developers need weeks to become productive.
|
|
11
|
+
|
|
12
|
+
Scope: CI/CD pipeline stages and quality gates, deployment strategy and rollback procedures, observability stack (structured logging, metrics, distributed tracing), alerting, developer environment setup, documentation for operators, environment parity, and ownership clarity. Does NOT cover code quality metrics (domain 09), reliability patterns in application code (domain 07), or security of deployment infrastructure (domain 04).
|
|
13
|
+
|
|
14
|
+
## Audit Questions
|
|
15
|
+
|
|
16
|
+
- Is there an automated CI/CD pipeline, and what stages does it include (lint, test, build, deploy)?
|
|
17
|
+
- How frequently is the system deployed, and what is the lead time from commit to production?
|
|
18
|
+
- Is there a documented and tested rollback procedure?
|
|
19
|
+
- Is logging structured (JSON, key-value) or unstructured (free-text)?
|
|
20
|
+
- Are application metrics collected and exported to a monitoring system?
|
|
21
|
+
- Is distributed tracing implemented for cross-service request correlation?
|
|
22
|
+
- Are alerts actionable — does each alert have a runbook or clear next step?
|
|
23
|
+
- How long does it take a new developer to set up a working local environment?
|
|
24
|
+
- Is there environment parity — do local, staging, and production behave similarly?
|
|
25
|
+
- Is ownership clear — can you determine who is responsible for each component?
|
|
26
|
+
- Are feature flags used for safe deployment of new functionality?
|
|
27
|
+
- Can incidents be diagnosed from observability data alone, or do they require SSH access to production?
|
|
28
|
+
|
|
29
|
+
## Failure Patterns
|
|
30
|
+
|
|
31
|
+
### Missing CI/CD
|
|
32
|
+
|
|
33
|
+
- **Description:** No automated build, test, or deployment pipeline exists. Deployments are manual, error-prone, and dependent on specific individuals.
|
|
34
|
+
- **Indicators:**
|
|
35
|
+
- No CI configuration files (`.github/workflows/`, `Jenkinsfile`, `.gitlab-ci.yml`, etc.)
|
|
36
|
+
- Deployment instructions reference manual steps ("SSH into server and run...")
|
|
37
|
+
- No automated test execution — tests run only when developers remember
|
|
38
|
+
- Build artifacts created on developer machines, not CI servers
|
|
39
|
+
- **Severity Tendency:** high
|
|
40
|
+
|
|
41
|
+
### Manual Deployments
|
|
42
|
+
|
|
43
|
+
- **Description:** Deployments require human intervention beyond clicking "deploy" — manual file copies, database scripts, configuration changes, or coordinated multi-step procedures.
|
|
44
|
+
- **Indicators:**
|
|
45
|
+
- Deployment runbook with more than 3 manual steps
|
|
46
|
+
- Deployment can only be performed by specific team members
|
|
47
|
+
- Production configuration differs from source-controlled configuration
|
|
48
|
+
- Post-deployment manual verification steps required
|
|
49
|
+
- **Severity Tendency:** high
|
|
50
|
+
|
|
51
|
+
### No Rollback Procedure
|
|
52
|
+
|
|
53
|
+
- **Description:** There is no documented or tested way to revert a bad deployment, making every deployment a one-way door that increases the blast radius of bugs.
|
|
54
|
+
- **Indicators:**
|
|
55
|
+
- No documented rollback steps in deployment runbooks
|
|
56
|
+
- Database migrations without `down` methods or rollback scripts
|
|
57
|
+
- Deployments that destroy previous artifacts (no version retention)
|
|
58
|
+
- Team has never tested a rollback in staging or production
|
|
59
|
+
- **Severity Tendency:** high
|
|
60
|
+
|
|
61
|
+
### Insufficient Logging
|
|
62
|
+
|
|
63
|
+
- **Description:** Logging is absent, inconsistent, or unstructured — making incident diagnosis slow and dependent on guesswork rather than data.
|
|
64
|
+
- **Indicators:**
|
|
65
|
+
- No logging framework configured — only `console.log` / `print` statements
|
|
66
|
+
- Log messages without context (no request ID, user ID, operation name)
|
|
67
|
+
- Mixed log levels — DEBUG-level noise in production, ERROR-level for non-errors
|
|
68
|
+
- Unstructured log format that cannot be parsed by log aggregation tools
|
|
69
|
+
- **Severity Tendency:** medium
|
|
70
|
+
|
|
71
|
+
### Missing Observability Stack
|
|
72
|
+
|
|
73
|
+
- **Description:** The system has no integrated observability — no metrics, no tracing, no centralized logging. Operators cannot answer "what is happening right now?" without inspecting code or databases directly.
|
|
74
|
+
- **Indicators:**
|
|
75
|
+
- No metrics library or export configuration in the application
|
|
76
|
+
- No distributed tracing headers or trace context propagation
|
|
77
|
+
- Logs stored only on local disk, not shipped to a centralized system
|
|
78
|
+
- Dashboards, if they exist, show only infrastructure metrics, not application metrics
|
|
79
|
+
- **Severity Tendency:** high
|
|
80
|
+
|
|
81
|
+
### Alert Fatigue
|
|
82
|
+
|
|
83
|
+
- **Description:** Too many alerts fire, most of which are not actionable, causing operators to ignore alerts and miss real incidents.
|
|
84
|
+
- **Indicators:**
|
|
85
|
+
- Alerting rules that fire multiple times per day
|
|
86
|
+
- Alerts without associated runbooks or severity levels
|
|
87
|
+
- Team members who have muted alert channels
|
|
88
|
+
- Mean time to acknowledge alerts is high (>30 minutes)
|
|
89
|
+
- Alerts on metrics with no defined healthy range or SLO
|
|
90
|
+
- **Severity Tendency:** medium
|
|
91
|
+
|
|
92
|
+
### Slow Developer Onboarding
|
|
93
|
+
|
|
94
|
+
- **Description:** New developers cannot get a working local environment or make meaningful contributions without extensive help from existing team members.
|
|
95
|
+
- **Indicators:**
|
|
96
|
+
- Setup documentation is outdated or incomplete
|
|
97
|
+
- Local setup requires installing specific OS-level dependencies manually
|
|
98
|
+
- No containerized development environment (Docker Compose, devcontainers)
|
|
99
|
+
- First PR takes weeks instead of days
|
|
100
|
+
- "Works on my machine" incidents are common
|
|
101
|
+
- **Severity Tendency:** medium
|
|
102
|
+
|
|
103
|
+
### Missing Environment Parity
|
|
104
|
+
|
|
105
|
+
- **Description:** Local, staging, and production environments behave differently, causing bugs that appear only in production and making staging unreliable for validation.
|
|
106
|
+
- **Indicators:**
|
|
107
|
+
- Different databases in different environments (SQLite locally, PostgreSQL in production)
|
|
108
|
+
- Environment-specific code branches (`if (process.env.NODE_ENV === 'production')` containing business logic)
|
|
109
|
+
- Staging has different resource constraints, feature flags, or data shapes than production
|
|
110
|
+
- "Works in staging, fails in production" incidents are recurring
|
|
111
|
+
- **Severity Tendency:** medium
|
|
112
|
+
|
|
113
|
+
## Best Practice Patterns
|
|
114
|
+
|
|
115
|
+
### Automated CI/CD Pipeline
|
|
116
|
+
|
|
117
|
+
- **Replaces Failure Pattern:** Missing CI/CD
|
|
118
|
+
- **Abstract Pattern:** Every commit triggers an automated pipeline that lints, tests, builds, and produces deployable artifacts. The pipeline is the authoritative build mechanism — no artifacts are created outside of CI.
|
|
119
|
+
- **Framework Mappings:**
|
|
120
|
+
- GitHub Actions: Workflow files in `.github/workflows/` with lint, test, build, deploy stages and environment protection rules
|
|
121
|
+
- GitLab CI: `.gitlab-ci.yml` with staged pipeline (test → build → staging → production) and manual promotion gates
|
|
122
|
+
- ArgoCD/Flux: GitOps — infrastructure changes are PRs, deployments happen automatically when manifests merge
|
|
123
|
+
- **Language Patterns:**
|
|
124
|
+
- Any: Pipeline-as-code checked into the repository alongside application code
|
|
125
|
+
- Any: Deployment requires only a merge to the main branch (or a manual approval click) — never SSH or manual scripts
|
|
126
|
+
|
|
127
|
+
### Push-Button Deployments
|
|
128
|
+
|
|
129
|
+
- **Replaces Failure Pattern:** Manual Deployments
|
|
130
|
+
- **Abstract Pattern:** Deployment is a single action — a button click, a merged PR, or a CLI command — with no manual steps, SSH sessions, or coordination calls required. The deployment system handles all sequencing, configuration, and verification.
|
|
131
|
+
- **Framework Mappings:**
|
|
132
|
+
- GitHub Actions: Deployment workflows triggered by merge to main, with environment protection rules for production gates
|
|
133
|
+
- AWS CodePipeline: Source → Build → Deploy stages with automatic progression and manual approval gate for production
|
|
134
|
+
- Heroku/Railway/Fly.io: Git push triggers automatic build and deploy with zero manual infrastructure steps
|
|
135
|
+
- **Language Patterns:**
|
|
136
|
+
- Any: `git push origin main` or merge PR as the only action needed to deploy
|
|
137
|
+
- Any: Deployment configuration (Procfile, Dockerfile, buildpack) checked into the repository
|
|
138
|
+
|
|
139
|
+
### Blue-Green / Canary Deployments
|
|
140
|
+
|
|
141
|
+
- **Replaces Failure Pattern:** No Rollback Procedure
|
|
142
|
+
- **Abstract Pattern:** New versions are deployed alongside the current version. Traffic is gradually shifted to the new version, with automatic rollback if error rates increase. Rolling back is as simple as shifting traffic back.
|
|
143
|
+
- **Framework Mappings:**
|
|
144
|
+
- Kubernetes: Rolling update strategy with `maxSurge` and `maxUnavailable`, or Argo Rollouts for canary/blue-green
|
|
145
|
+
- AWS: Blue-green via CodeDeploy with automatic rollback on CloudWatch alarm
|
|
146
|
+
- Istio/Linkerd: Traffic splitting with weighted routing (90/10, 50/50) during canary progression
|
|
147
|
+
- **Language Patterns:**
|
|
148
|
+
- Any: Feature flags for dark launching — new code deployed but inactive until flag enables it
|
|
149
|
+
- Any: Database migration compatibility — new code works with both old and new schema during transition
|
|
150
|
+
|
|
151
|
+
### Structured Logging
|
|
152
|
+
|
|
153
|
+
- **Replaces Failure Pattern:** Insufficient Logging
|
|
154
|
+
- **Abstract Pattern:** All log entries are structured (JSON or key-value), include standard context fields (timestamp, request ID, severity, service name), and are shipped to a centralized logging system for search and analysis.
|
|
155
|
+
- **Framework Mappings:**
|
|
156
|
+
- Winston (Node.js): JSON transport with custom fields, request ID middleware, log level filtering
|
|
157
|
+
- Logback/SLF4J (Java): Structured JSON encoder with MDC (Mapped Diagnostic Context) for request-scoped fields
|
|
158
|
+
- structlog (Python): Processor pipeline adding context automatically, JSON serialization, bound loggers
|
|
159
|
+
- **Language Patterns:**
|
|
160
|
+
- Any: Log format: `{"timestamp": "...", "level": "info", "request_id": "...", "service": "...", "message": "...", "data": {...}}`
|
|
161
|
+
- Any: Request ID generated at edge and propagated through all service calls for correlation
|
|
162
|
+
|
|
163
|
+
### Distributed Tracing
|
|
164
|
+
|
|
165
|
+
- **Replaces Failure Pattern:** Missing Observability Stack
|
|
166
|
+
- **Abstract Pattern:** Every request entering the system receives a trace ID that propagates through all services and operations. Each operation is a span within the trace. Traces are collected centrally for latency analysis, dependency mapping, and error localization.
|
|
167
|
+
- **Framework Mappings:**
|
|
168
|
+
- OpenTelemetry: Vendor-neutral SDK for traces, metrics, and logs with auto-instrumentation for popular frameworks
|
|
169
|
+
- Jaeger: Distributed tracing backend with dependency graphs and latency histograms
|
|
170
|
+
- Datadog APM: Automatic tracing with service maps, error tracking, and latency percentile dashboards
|
|
171
|
+
- **Language Patterns:**
|
|
172
|
+
- Any: W3C Trace Context headers (`traceparent`, `tracestate`) propagated in all inter-service HTTP calls
|
|
173
|
+
- Any: OpenTelemetry SDK initialization in application startup with automatic HTTP/database instrumentation
|
|
174
|
+
|
|
175
|
+
### Infrastructure as Code
|
|
176
|
+
|
|
177
|
+
- **Replaces Failure Pattern:** Missing Environment Parity
|
|
178
|
+
- **Abstract Pattern:** All infrastructure (servers, databases, networking, permissions) is defined in version-controlled code that produces identical environments. No configuration exists only in a cloud console or on a server.
|
|
179
|
+
- **Framework Mappings:**
|
|
180
|
+
- Terraform: Declarative infrastructure definitions with state management and plan/apply workflow
|
|
181
|
+
- Pulumi: Infrastructure as real code (TypeScript, Python, Go) with testing, refactoring, and IDE support
|
|
182
|
+
- Docker Compose: Local environment matching production topology with service definitions, networks, and volumes
|
|
183
|
+
- **Language Patterns:**
|
|
184
|
+
- Any: `docker-compose.yml` for local development matching production service topology
|
|
185
|
+
- Any: Environment variables for configuration differences, not code branches
|
|
186
|
+
|
|
187
|
+
### Developer Environment Automation
|
|
188
|
+
|
|
189
|
+
- **Replaces Failure Pattern:** Slow Developer Onboarding
|
|
190
|
+
- **Abstract Pattern:** A new developer can go from clone to running application in one command. Development environments are containerized or automated with dependency management built in. No manual installation of language runtimes, databases, or services required.
|
|
191
|
+
- **Framework Mappings:**
|
|
192
|
+
- DevContainers: VS Code dev containers with all dependencies pre-configured
|
|
193
|
+
- Nix/Devbox: Reproducible development environments with declarative dependency specifications
|
|
194
|
+
- Make/Task: `make dev` or `task dev` as single entry point that sets up and starts everything
|
|
195
|
+
- **Language Patterns:**
|
|
196
|
+
- Any: `README.md` quick start: `git clone && make dev` (two commands maximum)
|
|
197
|
+
- Any: `.tool-versions` (asdf) or `.nvmrc` / `.python-version` for language runtime version pinning
|
|
198
|
+
|
|
199
|
+
### Intentional Alerting
|
|
200
|
+
|
|
201
|
+
- **Replaces Failure Pattern:** Alert Fatigue
|
|
202
|
+
- **Abstract Pattern:** Every alert is actionable, owned, and linked to a runbook. Alerts fire only when human intervention is needed. Non-actionable signals are dashboards and metrics, not alerts. Alert volume is treated as a quality metric.
|
|
203
|
+
- **Framework Mappings:**
|
|
204
|
+
- PagerDuty: Escalation policies with alert grouping, suppression for known transient issues, and service-level ownership
|
|
205
|
+
- Prometheus Alertmanager: Alert routing by severity and team, inhibition rules to suppress dependent alerts, grouping to reduce noise
|
|
206
|
+
- Datadog Monitors: Multi-condition alerts with recovery thresholds, composite monitors to reduce false positives
|
|
207
|
+
- **Language Patterns:**
|
|
208
|
+
- Any: Alert annotations include `runbook_url`, `owner`, and `severity` fields as mandatory metadata
|
|
209
|
+
- Any: Alert audit process — review all firing alerts monthly, delete or tune alerts that fire without action taken
|
|
210
|
+
|
|
211
|
+
## Red Flags
|
|
212
|
+
|
|
213
|
+
- No CI configuration files in the repository
|
|
214
|
+
- Deployment documentation with more than 5 manual steps
|
|
215
|
+
- `console.log` / `print` as the only logging mechanism
|
|
216
|
+
- No monitoring or metrics library in dependencies
|
|
217
|
+
- README setup instructions that are clearly outdated ("install Node 12")
|
|
218
|
+
- Environment-specific business logic in if/else blocks
|
|
219
|
+
- No `.env.example` or environment variable documentation
|
|
220
|
+
- Alerts firing more than 10 times per day in non-incident periods
|
|
221
|
+
- Developer setup requiring manual database seeding or configuration file creation
|
|
222
|
+
- No rollback mentioned in any deployment documentation
|
|
223
|
+
|
|
224
|
+
## Tool Affinities
|
|
225
|
+
|
|
226
|
+
| Tool ID | Signal Type | Relevance |
|
|
227
|
+
|---------|-------------|-----------|
|
|
228
|
+
| checkov | Infrastructure-as-code configuration scanning — Terraform, CloudFormation, Kubernetes manifests for security and best practices | primary |
|
|
229
|
+
| git-history | Deployment frequency (tagged releases, merge-to-main cadence), lead time indicators | primary |
|
|
230
|
+
| sonarqube | Code quality metrics as CI quality gate — technical debt, coverage, duplication | supporting |
|
|
231
|
+
| gitleaks | Secrets in CI/CD configuration files, environment files, deployment scripts | supporting |
|
|
232
|
+
|
|
233
|
+
## Standards & Frameworks
|
|
234
|
+
|
|
235
|
+
- DORA metrics — Deployment Frequency, Lead Time for Changes, Mean Time to Recovery, Change Failure Rate as measures of software delivery performance
|
|
236
|
+
- The Twelve-Factor App — Methodology for building modern, deployment-friendly applications (config, dependencies, logs, disposability)
|
|
237
|
+
- SRE principles (Google) — Service Level Objectives, error budgets, toil reduction, postmortem culture
|
|
238
|
+
- GitOps (Weaveworks) — Infrastructure and application changes managed through Git as single source of truth
|
|
239
|
+
- OpenTelemetry — Vendor-neutral observability framework for traces, metrics, and logs
|
|
240
|
+
|
|
241
|
+
## Metrics
|
|
242
|
+
|
|
243
|
+
| Metric | What It Measures | Healthy Range |
|
|
244
|
+
|--------|-----------------|---------------|
|
|
245
|
+
| Deployment frequency | How often code is deployed to production | Multiple times per week to multiple times per day |
|
|
246
|
+
| Lead time for changes | Time from commit to production deployment | <1 day (elite), <1 week (high) |
|
|
247
|
+
| Mean time to recovery (MTTR) | Time from incident detection to resolution | <1 hour (elite), <1 day (high) |
|
|
248
|
+
| Change failure rate | Percentage of deployments causing incidents | <15% |
|
|
249
|
+
| Developer setup time | Time from clone to working local environment | <30 minutes |
|
|
250
|
+
| Alert-to-runbook coverage | Percentage of alerts linked to documented runbooks | >90% |
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: domain-11
|
|
3
|
+
number: "11"
|
|
4
|
+
name: Change Risk & Evolvability
|
|
5
|
+
owner_agents: [staff-engineer]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Overview
|
|
9
|
+
|
|
10
|
+
Change risk examines change amplification, refactor safety, blast radius, and modularity health. The central question is: "How dangerous is it to touch this code?" Research shows that high change risk predicts velocity decay and increases the likelihood of system rewrites. This domain focuses on structural properties that make code resistant or fragile to change. It does NOT cover architectural pattern selection (domain 01), team risk factors (domain 12), or holistic risk synthesis (domain 13).
|
|
11
|
+
|
|
12
|
+
## Audit Questions
|
|
13
|
+
|
|
14
|
+
- How many files must be modified on average to implement a typical feature request?
|
|
15
|
+
- Are refactoring operations covered by automated tests that catch regressions?
|
|
16
|
+
- What is the blast radius of changes to core modules or base classes?
|
|
17
|
+
- How frequently do changes to one module require coordinated changes across many others?
|
|
18
|
+
- Are external dependencies pinned to specific versions or allowed to float?
|
|
19
|
+
- Do public APIs use versioning to maintain backward compatibility?
|
|
20
|
+
- How tightly coupled are modules to specific third-party library implementations?
|
|
21
|
+
- Can individual components be deployed independently without full system deployment?
|
|
22
|
+
- How often do seemingly isolated changes cause failures in distant parts of the system?
|
|
23
|
+
- Are inheritance hierarchies shallow and focused, or deep and fragile?
|
|
24
|
+
- What percentage of the codebase can be modified safely without cascading changes?
|
|
25
|
+
- How frequently are breaking API changes introduced to consumers?
|
|
26
|
+
|
|
27
|
+
## Failure Patterns
|
|
28
|
+
|
|
29
|
+
### High Change Amplification
|
|
30
|
+
|
|
31
|
+
- **Description:** Single logical changes require modifications across many files, modules, or services. Increases both the cost of change and the risk of incomplete implementation or introducing inconsistencies.
|
|
32
|
+
- **Indicators:**
|
|
33
|
+
- Feature requests routinely require changes to 10+ files
|
|
34
|
+
- Adding a new data field requires updates across multiple layers
|
|
35
|
+
- Business logic changes necessitate updates to database, API, UI, and tests
|
|
36
|
+
- New feature implementation touches frontend, backend, and infrastructure code
|
|
37
|
+
- Changes to one module require coordinated releases of several services
|
|
38
|
+
- **Severity Tendency:** high
|
|
39
|
+
|
|
40
|
+
### Shotgun Surgery
|
|
41
|
+
|
|
42
|
+
- **Description:** Single responsibilities scattered across many locations, forcing developers to make parallel changes in multiple places. Closely related to high change amplification but specifically focuses on fragmented responsibility.
|
|
43
|
+
- **Indicators:**
|
|
44
|
+
- Adding a new enum value requires updates in 5+ different files
|
|
45
|
+
- Error handling logic duplicated across modules rather than centralized
|
|
46
|
+
- Validation rules scattered throughout presentation, business, and data layers
|
|
47
|
+
- Configuration changes require updates to multiple config files
|
|
48
|
+
- Feature flag checks spread throughout the codebase
|
|
49
|
+
- **Severity Tendency:** high
|
|
50
|
+
|
|
51
|
+
### Fragile Base Class
|
|
52
|
+
|
|
53
|
+
- **Description:** Base classes or shared modules that are frequently modified and have many dependents. Changes to these components create high risk of breaking derived classes or dependent modules across the system.
|
|
54
|
+
- **Indicators:**
|
|
55
|
+
- Base classes modified more frequently than derived classes
|
|
56
|
+
- Inheritance hierarchies deeper than 3 levels
|
|
57
|
+
- Abstract base classes with more than 10 concrete implementations
|
|
58
|
+
- Changes to utility classes causing test failures in distant modules
|
|
59
|
+
- Shared modules imported by more than 30% of the codebase
|
|
60
|
+
- Base class modifications requiring changes to many derived classes
|
|
61
|
+
- **Severity Tendency:** high
|
|
62
|
+
|
|
63
|
+
### Missing API Versioning
|
|
64
|
+
|
|
65
|
+
- **Description:** Public APIs that lack versioning mechanisms, forcing all consumers to upgrade simultaneously when changes occur. Creates coordination burden and prevents gradual migration strategies.
|
|
66
|
+
- **Indicators:**
|
|
67
|
+
- HTTP APIs without version numbers in URLs or headers
|
|
68
|
+
- Library packages that make breaking changes in minor versions
|
|
69
|
+
- Database schemas with no migration versioning system
|
|
70
|
+
- Message queue contracts that change without backward compatibility
|
|
71
|
+
- GraphQL schemas with no deprecation strategy for fields
|
|
72
|
+
- No sunset period or deprecation warnings before removing functionality
|
|
73
|
+
- **Severity Tendency:** high
|
|
74
|
+
|
|
75
|
+
### Tight Coupling to External Dependencies
|
|
76
|
+
|
|
77
|
+
- **Description:** Direct dependency on specific implementations of third-party libraries throughout the codebase. Makes dependency upgrades, replacements, or testing with mocks extremely difficult.
|
|
78
|
+
- **Indicators:**
|
|
79
|
+
- Database client API calls scattered throughout business logic
|
|
80
|
+
- HTTP client library types exposed in domain models
|
|
81
|
+
- Third-party ORM annotations on domain entities
|
|
82
|
+
- Cloud provider SDKs called directly from application code
|
|
83
|
+
- Specific logging library references in every module
|
|
84
|
+
- Framework-specific types appearing in domain layer
|
|
85
|
+
- **Severity Tendency:** medium
|
|
86
|
+
|
|
87
|
+
### Monolithic Deployment Units
|
|
88
|
+
|
|
89
|
+
- **Description:** Large deployment units that require full system deployment for any change. Prevents incremental rollouts, increases deployment risk, and creates long deployment windows.
|
|
90
|
+
- **Indicators:**
|
|
91
|
+
- Single deployment artifact containing all services or features
|
|
92
|
+
- Inability to deploy backend without frontend changes
|
|
93
|
+
- All microservices deployed together despite logical independence
|
|
94
|
+
- Database migrations coupled to application deployments
|
|
95
|
+
- No blue-green or canary deployment capabilities
|
|
96
|
+
- Rollback requiring full system restoration
|
|
97
|
+
- **Severity Tendency:** medium
|
|
98
|
+
|
|
99
|
+
### Untested Refactoring Paths
|
|
100
|
+
|
|
101
|
+
- **Description:** Critical code paths that lack sufficient test coverage to enable safe refactoring. Forces developers to avoid necessary improvements due to high risk of undetected breakage.
|
|
102
|
+
- **Indicators:**
|
|
103
|
+
- Core business logic modules with less than 60% test coverage
|
|
104
|
+
- Complex algorithms with no unit tests
|
|
105
|
+
- Legacy code with "do not touch" warnings in comments
|
|
106
|
+
- Refactoring attempts frequently causing production incidents
|
|
107
|
+
- High developer fear of modifying specific modules
|
|
108
|
+
- Code marked as "technical debt" with no safe migration path
|
|
109
|
+
- **Severity Tendency:** high
|
|
110
|
+
|
|
111
|
+
## Best Practice Patterns
|
|
112
|
+
|
|
113
|
+
### Layered Abstraction with Clear Boundaries
|
|
114
|
+
|
|
115
|
+
- **Replaces Failure Pattern:** High Change Amplification
|
|
116
|
+
- **Abstract Pattern:** Organize code into well-defined layers with explicit interfaces between them. Changes within a layer should not cascade across boundaries. Use dependency inversion to point dependencies toward stable abstractions.
|
|
117
|
+
- **Framework Mappings:**
|
|
118
|
+
- Clean Architecture: Use entities, use cases, interface adapters, frameworks layers
|
|
119
|
+
- Hexagonal Architecture: Isolate domain logic from infrastructure through ports and adapters
|
|
120
|
+
- Domain-Driven Design: Define bounded contexts with published language at boundaries
|
|
121
|
+
- **Language Patterns:**
|
|
122
|
+
- Python: Use abstract base classes for layer interfaces; separate packages by layer
|
|
123
|
+
- TypeScript: Use interface segregation; barrel exports for layer boundaries
|
|
124
|
+
- Java: Use packages and modules to enforce layer separation; interfaces for boundaries
|
|
125
|
+
|
|
126
|
+
### Centralized Cross-Cutting Concerns
|
|
127
|
+
|
|
128
|
+
- **Replaces Failure Pattern:** Shotgun Surgery
|
|
129
|
+
- **Abstract Pattern:** Consolidate responsibilities that appear across many modules into dedicated services or middleware. Use aspect-oriented techniques or decorators to apply cross-cutting behavior without scattering logic.
|
|
130
|
+
- **Framework Mappings:**
|
|
131
|
+
- Spring AOP: Use aspects for logging, security, transaction management
|
|
132
|
+
- Middleware Patterns: Use Express/FastAPI middleware for HTTP concerns
|
|
133
|
+
- Decorator Pattern: Wrap core behavior with cross-cutting functionality
|
|
134
|
+
- **Language Patterns:**
|
|
135
|
+
- Python: Use decorators for cross-cutting concerns; context managers for resources
|
|
136
|
+
- TypeScript: Use higher-order functions or decorators; middleware composition
|
|
137
|
+
- Java: Use annotations with aspect-oriented processing or interceptors
|
|
138
|
+
|
|
139
|
+
### Composition Over Inheritance
|
|
140
|
+
|
|
141
|
+
- **Replaces Failure Pattern:** Fragile Base Class
|
|
142
|
+
- **Abstract Pattern:** Prefer object composition and interface implementation over deep inheritance hierarchies. Use small, focused interfaces and combine behaviors through composition to avoid fragile base class problems.
|
|
143
|
+
- **Framework Mappings:**
|
|
144
|
+
- SOLID Principles: Apply Liskov Substitution and Interface Segregation
|
|
145
|
+
- Strategy Pattern: Inject behavior through interfaces rather than inheritance
|
|
146
|
+
- Mixin Pattern: Use composition or traits for behavior reuse
|
|
147
|
+
- **Language Patterns:**
|
|
148
|
+
- Python: Use composition, protocols, and mixins; avoid deep class hierarchies
|
|
149
|
+
- TypeScript: Use composition and interface implementation; prefer type unions
|
|
150
|
+
- Java: Use interfaces extensively; limit inheritance to 1-2 levels
|
|
151
|
+
|
|
152
|
+
### Explicit API Versioning Strategy
|
|
153
|
+
|
|
154
|
+
- **Replaces Failure Pattern:** Missing API Versioning
|
|
155
|
+
- **Abstract Pattern:** Build versioning into APIs from the start. Support multiple versions simultaneously during transition periods. Use semantic versioning for libraries. Provide deprecation warnings and migration guides.
|
|
156
|
+
- **Framework Mappings:**
|
|
157
|
+
- REST APIs: Use URL versioning (/v1/, /v2/) or header-based versioning
|
|
158
|
+
- GraphQL: Use field deprecation with @deprecated directive
|
|
159
|
+
- Semantic Versioning: Apply semver principles to library and API releases
|
|
160
|
+
- **Language Patterns:**
|
|
161
|
+
- Python: Use package versioning; deprecation warnings via warnings module
|
|
162
|
+
- TypeScript: Use @deprecated JSDoc tags; support multiple versions in parallel
|
|
163
|
+
- Java: Use package versioning; deprecation annotations with migration paths
|
|
164
|
+
|
|
165
|
+
### Dependency Abstraction Layer
|
|
166
|
+
|
|
167
|
+
- **Replaces Failure Pattern:** Tight Coupling to External Dependencies
|
|
168
|
+
- **Abstract Pattern:** Create thin abstraction layers around external dependencies. Define interfaces in your domain language and implement adapters for specific libraries. Enables testing with mocks and switching implementations.
|
|
169
|
+
- **Framework Mappings:**
|
|
170
|
+
- Adapter Pattern: Wrap third-party APIs with domain-specific interfaces
|
|
171
|
+
- Repository Pattern: Abstract data access behind domain-aligned interfaces
|
|
172
|
+
- Anti-Corruption Layer: Translate between external models and domain models
|
|
173
|
+
- **Language Patterns:**
|
|
174
|
+
- Python: Use Protocol or ABC to define interfaces; implement adapters
|
|
175
|
+
- TypeScript: Define interfaces for external services; use dependency injection
|
|
176
|
+
- Java: Use interfaces and dependency injection containers
|
|
177
|
+
|
|
178
|
+
### Independently Deployable Modules
|
|
179
|
+
|
|
180
|
+
- **Replaces Failure Pattern:** Monolithic Deployment Units
|
|
181
|
+
- **Abstract Pattern:** Structure systems so that components can be built, tested, and deployed independently. Use service boundaries, API contracts, and feature flags to enable incremental rollouts.
|
|
182
|
+
- **Framework Mappings:**
|
|
183
|
+
- Microservices: Deploy services independently with versioned APIs
|
|
184
|
+
- Modular Monoliths: Use internal module boundaries with independent deployment paths
|
|
185
|
+
- Feature Flags: Decouple deployment from release using runtime toggles
|
|
186
|
+
- **Language Patterns:**
|
|
187
|
+
- Python: Use separate packages with independent versioning; container-based deployment
|
|
188
|
+
- TypeScript: Use monorepo with independent build targets; micro-frontends
|
|
189
|
+
- Java: Use Maven/Gradle modules; OSGi or JPMS for modularity
|
|
190
|
+
|
|
191
|
+
### Comprehensive Regression Safety Net
|
|
192
|
+
|
|
193
|
+
- **Replaces Failure Pattern:** Untested Refactoring Paths
|
|
194
|
+
- **Abstract Pattern:** Build sufficient automated test coverage to enable confident refactoring. Focus on behavior-preserving tests at boundaries. Use approval testing for legacy code. Enable safe structural changes through test-driven refactoring.
|
|
195
|
+
- **Framework Mappings:**
|
|
196
|
+
- Test-Driven Development: Write tests before refactoring; verify behavior preservation
|
|
197
|
+
- Approval Testing: Capture current behavior as baseline; detect unintended changes
|
|
198
|
+
- Mutation Testing: Verify test effectiveness by introducing artificial bugs
|
|
199
|
+
- **Language Patterns:**
|
|
200
|
+
- Python: Use pytest with coverage tracking; approval testing with approval tests
|
|
201
|
+
- TypeScript: Use Jest with coverage reports; snapshot testing for complex outputs
|
|
202
|
+
- Java: Use JUnit with coverage tools; approval testing with Approval Tests
|
|
203
|
+
|
|
204
|
+
## Red Flags
|
|
205
|
+
|
|
206
|
+
- Feature changes routinely requiring modifications to 10+ files
|
|
207
|
+
- More than 5% of commits touch files across multiple architectural layers
|
|
208
|
+
- Base classes or shared modules modified more than once per week
|
|
209
|
+
- Public APIs with no versioning scheme
|
|
210
|
+
- Third-party library types appearing in domain models
|
|
211
|
+
- Deployment requiring coordination across multiple teams
|
|
212
|
+
- Modules with less than 50% test coverage marked as "do not touch"
|
|
213
|
+
- Inheritance hierarchies deeper than 3 levels
|
|
214
|
+
- Single repository deployment artifact over 500MB
|
|
215
|
+
- Frequent production incidents caused by "minor refactorings"
|
|
216
|
+
- More than 20% of codebase depends on a single utility module
|
|
217
|
+
|
|
218
|
+
## Tool Affinities
|
|
219
|
+
|
|
220
|
+
| Tool ID | Signal Type | Relevance |
|
|
221
|
+
|---------|-------------|-----------|
|
|
222
|
+
| git-history | Change amplification, co-change patterns, hotspots | primary |
|
|
223
|
+
| sonarqube | Coupling metrics, complexity, code smells | supporting |
|
|
224
|
+
| semgrep | Anti-patterns, tight coupling detection | contextual |
|
|
225
|
+
| syft | SBOM inventory, dependency analysis | contextual |
|
|
226
|
+
| grype | CVE matching, version tracking | contextual |
|
|
227
|
+
|
|
228
|
+
## Standards & Frameworks
|
|
229
|
+
|
|
230
|
+
- Lehman's Laws of Software Evolution — structural decay and change resistance over time
|
|
231
|
+
- Coupling and Cohesion Metrics — measuring module interdependence
|
|
232
|
+
- Modularity Index — quantifying system decomposability
|
|
233
|
+
- SOLID Principles — Liskov Substitution, Dependency Inversion for change safety
|
|
234
|
+
- Semantic Versioning — version management for APIs and libraries
|
|
235
|
+
- Feature Flags and Toggles — decoupling deployment from release
|
|
236
|
+
|
|
237
|
+
## Metrics
|
|
238
|
+
|
|
239
|
+
| Metric | What It Measures | Healthy Range |
|
|
240
|
+
|--------|-----------------|---------------|
|
|
241
|
+
| Change Amplification Ratio | Average files modified per logical change | < 5 files |
|
|
242
|
+
| Co-change Frequency | Percentage of commits touching 3+ modules | < 15% |
|
|
243
|
+
| API Stability Index | Percentage of API versions supported simultaneously | 2-3 versions |
|
|
244
|
+
| Refactoring Safety Score | Test coverage of modules targeted for refactoring | > 70% |
|
|
245
|
+
| Deployment Independence | Percentage of modules deployable without others | > 60% |
|
|
246
|
+
| Inheritance Depth Average | Average depth of class hierarchies | < 2 levels |
|