oh-my-agent-commandcode 0.0.0-stage → 20.38.3
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/README.md +35 -2
- package/filter-test-output.sh +52 -0
- package/mods/oma.ts +347 -0
- package/package.json +30 -4
- package/skills/_shared/conditional/experiment-ledger.md +28 -0
- package/skills/_shared/conditional/exploration-loop.md +22 -0
- package/skills/_shared/conditional/quality-score.md +33 -0
- package/skills/_shared/core/anti-ai-prose.md +191 -0
- package/skills/_shared/core/api-contracts/README.md +28 -0
- package/skills/_shared/core/api-contracts/template.md +90 -0
- package/skills/_shared/core/clarification-protocol.md +23 -0
- package/skills/_shared/core/code-intelligence.md +46 -0
- package/skills/_shared/core/collaboration-policy.md +28 -0
- package/skills/_shared/core/common-checklist.md +28 -0
- package/skills/_shared/core/context-budget.md +22 -0
- package/skills/_shared/core/context-loading.md +34 -0
- package/skills/_shared/core/difficulty-guide.md +26 -0
- package/skills/_shared/core/execution-policy.md +31 -0
- package/skills/_shared/core/lessons-learned.md +33 -0
- package/skills/_shared/core/prompt-structure.md +18 -0
- package/skills/_shared/core/quality-principles.md +11 -0
- package/skills/_shared/core/session-metrics.md +35 -0
- package/skills/_shared/core/skill-routing.md +39 -0
- package/skills/_shared/core/test-approach.md +54 -0
- package/skills/_shared/core/vendor-detection.md +52 -0
- package/skills/_shared/runtime/memory-protocol.md +118 -0
- package/skills/_shared/runtime/result-contract.md +64 -0
- package/skills/_shared/ui-interaction-quality.md +133 -0
- package/skills/oma-academic-writing/SKILL.md +181 -0
- package/skills/oma-academic-writing/resources/abstract-guide.md +51 -0
- package/skills/oma-academic-writing/resources/academic-verb-tiers.md +42 -0
- package/skills/oma-academic-writing/resources/anti-ai-checklist.md +52 -0
- package/skills/oma-academic-writing/resources/hedging-guide.md +132 -0
- package/skills/oma-academic-writing/resources/sentence-structure-reference.md +151 -0
- package/skills/oma-architecture/SKILL.md +203 -0
- package/skills/oma-architecture/resources/api-evolution.md +41 -0
- package/skills/oma-architecture/resources/checklist.md +42 -0
- package/skills/oma-architecture/resources/execution-protocol.md +115 -0
- package/skills/oma-architecture/resources/methodology-selection.md +92 -0
- package/skills/oma-architecture/resources/migration-patterns.md +28 -0
- package/skills/oma-architecture/resources/output-templates.md +111 -0
- package/skills/oma-architecture/resources/stakeholder-synthesis.md +80 -0
- package/skills/oma-backend/SKILL.md +202 -0
- package/skills/oma-backend/resources/checklist.md +45 -0
- package/skills/oma-backend/resources/error-playbook.md +97 -0
- package/skills/oma-backend/resources/execution-protocol.md +39 -0
- package/skills/oma-backend/resources/orm-reference.md +61 -0
- package/skills/oma-backend/variants/node/api-template.ts +315 -0
- package/skills/oma-backend/variants/node/snippets.md +475 -0
- package/skills/oma-backend/variants/node/stack.yaml +21 -0
- package/skills/oma-backend/variants/node/tech-stack.md +33 -0
- package/skills/oma-backend/variants/python/api-template.py +378 -0
- package/skills/oma-backend/variants/python/snippets.md +199 -0
- package/skills/oma-backend/variants/python/stack.yaml +18 -0
- package/skills/oma-backend/variants/python/tech-stack.md +45 -0
- package/skills/oma-backend/variants/rust/api-template.rs +635 -0
- package/skills/oma-backend/variants/rust/snippets.md +471 -0
- package/skills/oma-backend/variants/rust/stack.yaml +20 -0
- package/skills/oma-backend/variants/rust/tech-stack.md +36 -0
- package/skills/oma-backend/variants/stack.schema.json +73 -0
- package/skills/oma-brainstorm/SKILL.md +166 -0
- package/skills/oma-brainstorm/resources/triz-lite.md +117 -0
- package/skills/oma-coordination/SKILL.md +171 -0
- package/skills/oma-db/SKILL.md +201 -0
- package/skills/oma-db/resources/anti-patterns.md +177 -0
- package/skills/oma-db/resources/checklist.md +67 -0
- package/skills/oma-db/resources/document-templates.md +107 -0
- package/skills/oma-db/resources/error-playbook.md +50 -0
- package/skills/oma-db/resources/examples.md +170 -0
- package/skills/oma-db/resources/execution-protocol.md +127 -0
- package/skills/oma-db/resources/iso-controls.md +98 -0
- package/skills/oma-db/resources/migration-playbook.md +93 -0
- package/skills/oma-db/resources/query-tuning.md +57 -0
- package/skills/oma-db/resources/vector-db.md +159 -0
- package/skills/oma-debug/SKILL.md +146 -0
- package/skills/oma-debug/resources/bug-report-template.md +327 -0
- package/skills/oma-debug/resources/checklist.md +31 -0
- package/skills/oma-debug/resources/common-patterns.md +734 -0
- package/skills/oma-debug/resources/debugging-checklist.md +364 -0
- package/skills/oma-debug/resources/error-playbook.md +94 -0
- package/skills/oma-debug/resources/execution-protocol.md +40 -0
- package/skills/oma-design/SKILL.md +135 -0
- package/skills/oma-design/resources/asset-strategy.md +34 -0
- package/skills/oma-design/resources/checklist.md +63 -0
- package/skills/oma-design/resources/data-grid.md +48 -0
- package/skills/oma-design/resources/design-md-spec.md +107 -0
- package/skills/oma-design/resources/design-tokens.md +53 -0
- package/skills/oma-design/resources/error-playbook.md +18 -0
- package/skills/oma-design/resources/execution-protocol.md +95 -0
- package/skills/oma-design/resources/external-design-skills.md +130 -0
- package/skills/oma-design/resources/getdesign-fetcher.md +104 -0
- package/skills/oma-design/resources/product-interface-review.md +59 -0
- package/skills/oma-design/resources/redesign-protocol.md +52 -0
- package/skills/oma-design/resources/stitch-integration.md +244 -0
- package/skills/oma-dev-workflow/SKILL.md +375 -0
- package/skills/oma-dev-workflow/resources/affected-checks.py +58 -0
- package/skills/oma-dev-workflow/resources/api-workflows.md +58 -0
- package/skills/oma-dev-workflow/resources/database-patterns.md +107 -0
- package/skills/oma-dev-workflow/resources/i18n-patterns.md +63 -0
- package/skills/oma-dev-workflow/resources/release-coordination.md +240 -0
- package/skills/oma-dev-workflow/resources/tooling-profiles.md +217 -0
- package/skills/oma-dev-workflow/resources/troubleshooting.md +78 -0
- package/skills/oma-dev-workflow/resources/validation-pipeline.md +246 -0
- package/skills/oma-docs/SKILL.md +77 -0
- package/skills/oma-docs/resources/commands.md +76 -0
- package/skills/oma-explanation/SKILL.md +212 -0
- package/skills/oma-explanation/resources/document-structure.md +115 -0
- package/skills/oma-explanation/resources/draft-format.md +199 -0
- package/skills/oma-explanation/resources/html-contract.md +102 -0
- package/skills/oma-frontend/SKILL.md +227 -0
- package/skills/oma-frontend/resources/angular-rules.md +110 -0
- package/skills/oma-frontend/resources/checklist.md +76 -0
- package/skills/oma-frontend/resources/error-playbook.md +125 -0
- package/skills/oma-frontend/resources/execution-protocol.md +46 -0
- package/skills/oma-frontend/resources/snippets.md +354 -0
- package/skills/oma-frontend/resources/specialized-visual-implementation.md +193 -0
- package/skills/oma-frontend/resources/tailwind-rules.md +83 -0
- package/skills/oma-frontend/resources/tech-stack.md +156 -0
- package/skills/oma-hwp/SKILL.md +166 -0
- package/skills/oma-hwp/config/hwp-config.yaml +35 -0
- package/skills/oma-hwp/resources/balanced-tables.ts +39 -0
- package/skills/oma-hwp/resources/execution-protocol.md +145 -0
- package/skills/oma-hwp/resources/flatten-tables.ts +101 -0
- package/skills/oma-hwp/resources/package.json +13 -0
- package/skills/oma-hwp/resources/troubleshooting.md +70 -0
- package/skills/oma-hwp/resources/tsconfig.json +10 -0
- package/skills/oma-hwp/resources/turndown-plugin-gfm.d.ts +9 -0
- package/skills/oma-image/SKILL.md +142 -0
- package/skills/oma-image/config/image-config.yaml +70 -0
- package/skills/oma-image/resources/checklist.md +18 -0
- package/skills/oma-image/resources/execution-protocol.md +117 -0
- package/skills/oma-image/resources/invocation.md +105 -0
- package/skills/oma-image/resources/prompt-tips.md +71 -0
- package/skills/oma-image/resources/vendor-matrix.md +90 -0
- package/skills/oma-market/SKILL.md +142 -0
- package/skills/oma-market/resources/checklist.md +12 -0
- package/skills/oma-market/resources/error-playbook.md +12 -0
- package/skills/oma-market/resources/execution-protocol.md +60 -0
- package/skills/oma-market/resources/frameworks/pestel.md +101 -0
- package/skills/oma-market/resources/frameworks/porters-5f.md +90 -0
- package/skills/oma-market/resources/frameworks/swot.md +61 -0
- package/skills/oma-market/resources/intent-rules.md +35 -0
- package/skills/oma-market/resources/output-laws.md +53 -0
- package/skills/oma-mobile/SKILL.md +168 -0
- package/skills/oma-mobile/resources/checklist.md +77 -0
- package/skills/oma-mobile/resources/error-playbook.md +198 -0
- package/skills/oma-mobile/resources/execution-protocol.md +47 -0
- package/skills/oma-mobile/resources/screen-template.dart +331 -0
- package/skills/oma-mobile/resources/screen-template.swift +239 -0
- package/skills/oma-mobile/resources/screen-template.tsx +179 -0
- package/skills/oma-mobile/resources/tech-stack.md +69 -0
- package/skills/oma-mobile/variants/README.md +45 -0
- package/skills/oma-mobile/variants/flutter/api-template.dart +461 -0
- package/skills/oma-mobile/variants/flutter/snippets.md +1353 -0
- package/skills/oma-mobile/variants/flutter/stack.yaml +21 -0
- package/skills/oma-mobile/variants/flutter/tech-stack.md +201 -0
- package/skills/oma-mobile/variants/kotlin-android/api-template.kt +182 -0
- package/skills/oma-mobile/variants/kotlin-android/snippets.md +871 -0
- package/skills/oma-mobile/variants/kotlin-android/stack.yaml +32 -0
- package/skills/oma-mobile/variants/kotlin-android/tech-stack.md +159 -0
- package/skills/oma-mobile/variants/react-native/api-template.ts +531 -0
- package/skills/oma-mobile/variants/react-native/snippets.md +1014 -0
- package/skills/oma-mobile/variants/react-native/stack.yaml +22 -0
- package/skills/oma-mobile/variants/react-native/tech-stack.md +192 -0
- package/skills/oma-mobile/variants/stack.schema.json +68 -0
- package/skills/oma-mobile/variants/swift-ios/api-template.swift +165 -0
- package/skills/oma-mobile/variants/swift-ios/snippets.md +1028 -0
- package/skills/oma-mobile/variants/swift-ios/stack.yaml +25 -0
- package/skills/oma-mobile/variants/swift-ios/tech-stack.md +174 -0
- package/skills/oma-observability/SKILL.md +225 -0
- package/skills/oma-observability/resources/anti-patterns.md +555 -0
- package/skills/oma-observability/resources/boundaries/cross-application.md +348 -0
- package/skills/oma-observability/resources/boundaries/multi-tenant.md +290 -0
- package/skills/oma-observability/resources/boundaries/release.md +372 -0
- package/skills/oma-observability/resources/boundaries/slo.md +225 -0
- package/skills/oma-observability/resources/checklist.md +123 -0
- package/skills/oma-observability/resources/examples.md +448 -0
- package/skills/oma-observability/resources/execution-protocol.md +166 -0
- package/skills/oma-observability/resources/incident-forensics.md +348 -0
- package/skills/oma-observability/resources/intent-rules.md +307 -0
- package/skills/oma-observability/resources/layers/L3-network.md +281 -0
- package/skills/oma-observability/resources/layers/L4-transport.md +299 -0
- package/skills/oma-observability/resources/layers/L7-application/crash-analytics.md +359 -0
- package/skills/oma-observability/resources/layers/L7-application/mobile-rum.md +278 -0
- package/skills/oma-observability/resources/layers/L7-application/waf.md +246 -0
- package/skills/oma-observability/resources/layers/L7-application/web-rum.md +350 -0
- package/skills/oma-observability/resources/layers/mesh.md +368 -0
- package/skills/oma-observability/resources/matrix.md +177 -0
- package/skills/oma-observability/resources/meta-observability.md +605 -0
- package/skills/oma-observability/resources/observability-as-code.md +666 -0
- package/skills/oma-observability/resources/signals/audit.md +310 -0
- package/skills/oma-observability/resources/signals/cost.md +303 -0
- package/skills/oma-observability/resources/signals/logs.md +263 -0
- package/skills/oma-observability/resources/signals/metrics.md +478 -0
- package/skills/oma-observability/resources/signals/privacy.md +351 -0
- package/skills/oma-observability/resources/signals/profiles.md +245 -0
- package/skills/oma-observability/resources/signals/traces.md +360 -0
- package/skills/oma-observability/resources/standards.md +214 -0
- package/skills/oma-observability/resources/transport/collector-topology.md +308 -0
- package/skills/oma-observability/resources/transport/otlp-grpc-vs-http.md +256 -0
- package/skills/oma-observability/resources/transport/sampling-recipes.md +297 -0
- package/skills/oma-observability/resources/transport/udp-statsd-mtu.md +167 -0
- package/skills/oma-observability/resources/vendor-categories.md +352 -0
- package/skills/oma-orchestration/SKILL.md +302 -0
- package/skills/oma-orchestration/config/cli-config.yaml +92 -0
- package/skills/oma-orchestration/resources/memory-schema.md +232 -0
- package/skills/oma-orchestration/resources/subagent-prompt-template.md +30 -0
- package/skills/oma-orchestration/scripts/parallel-run.sh +6 -0
- package/skills/oma-orchestration/scripts/spawn-agent.sh +5 -0
- package/skills/oma-orchestration/scripts/verify.sh +20 -0
- package/skills/oma-orchestration/templates/backend-task.md +19 -0
- package/skills/oma-orchestration/templates/debug-task.md +16 -0
- package/skills/oma-orchestration/templates/frontend-task.md +18 -0
- package/skills/oma-orchestration/templates/mobile-task.md +18 -0
- package/skills/oma-orchestration/templates/qa-task.md +16 -0
- package/skills/oma-orchestration/templates/tasks-example.yaml +15 -0
- package/skills/oma-pdf/SKILL.md +162 -0
- package/skills/oma-pdf/config/pdf-config.yaml +27 -0
- package/skills/oma-pdf/resources/execution-protocol.md +127 -0
- package/skills/oma-pm/SKILL.md +157 -0
- package/skills/oma-pm/resources/error-playbook.md +75 -0
- package/skills/oma-pm/resources/examples.md +439 -0
- package/skills/oma-pm/resources/execution-protocol.md +62 -0
- package/skills/oma-pm/resources/iso-planning.md +110 -0
- package/skills/oma-pm/resources/plan-phase-protocol.md +66 -0
- package/skills/oma-pm/resources/task-template.json +86 -0
- package/skills/oma-qa/SKILL.md +141 -0
- package/skills/oma-qa/resources/checklist.md +339 -0
- package/skills/oma-qa/resources/error-playbook.md +98 -0
- package/skills/oma-qa/resources/execution-protocol.md +169 -0
- package/skills/oma-qa/resources/iso-quality.md +82 -0
- package/skills/oma-qa/resources/verify-ship-protocol.md +116 -0
- package/skills/oma-recap/SKILL.md +245 -0
- package/skills/oma-recap/resources/output-formats.md +83 -0
- package/skills/oma-refactor/SKILL.md +184 -0
- package/skills/oma-refactor/resources/definition.md +108 -0
- package/skills/oma-refactor/resources/governance.md +33 -0
- package/skills/oma-refactor/resources/hotspots.py +44 -0
- package/skills/oma-refactor/resources/measurement.md +93 -0
- package/skills/oma-scholar/SKILL.md +276 -0
- package/skills/oma-scholar/config/scholar-config.yaml +79 -0
- package/skills/oma-scholar/resources/api-endpoints.md +174 -0
- package/skills/oma-scholar/resources/checklist.md +92 -0
- package/skills/oma-scholar/resources/execution-protocol.md +224 -0
- package/skills/oma-scholar/resources/fallback-providers.md +143 -0
- package/skills/oma-scholar/resources/setup-openalex.md +85 -0
- package/skills/oma-scholar/resources/sidecar-spec.md +341 -0
- package/skills/oma-scholar/resources/upstream-spec-cache.md +972 -0
- package/skills/oma-scm/SKILL.md +103 -0
- package/skills/oma-scm/resources/cm-operations.md +56 -0
- package/skills/oma-scm/resources/codeowners-playbook.md +45 -0
- package/skills/oma-scm/resources/conventional-commits.md +108 -0
- package/skills/oma-scm/resources/merge-risk.md +76 -0
- package/skills/oma-scm/resources/onboarding-risk-signals.md +71 -0
- package/skills/oma-search/SKILL.md +125 -0
- package/skills/oma-search/resources/checklist.md +36 -0
- package/skills/oma-search/resources/error-playbook.md +66 -0
- package/skills/oma-search/resources/examples.md +80 -0
- package/skills/oma-search/resources/execution-protocol.md +86 -0
- package/skills/oma-search/resources/intent-rules.md +47 -0
- package/skills/oma-search/resources/trust-registry.md +53 -0
- package/skills/oma-security/SKILL.md +172 -0
- package/skills/oma-security/resources/artex.md +108 -0
- package/skills/oma-security/resources/ci.md +134 -0
- package/skills/oma-security/resources/cisco-source.md +108 -0
- package/skills/oma-security/resources/deepsec-config.md +45 -0
- package/skills/oma-security/resources/deepsec-matchers.md +35 -0
- package/skills/oma-security/resources/deepsec-scanning.md +45 -0
- package/skills/oma-security/resources/deepsec-setup.md +41 -0
- package/skills/oma-security/resources/findings-contract.md +408 -0
- package/skills/oma-security/resources/mcp-scanning.md +122 -0
- package/skills/oma-security/resources/skill-scanning.md +106 -0
- package/skills/oma-security/resources/validation.md +71 -0
- package/skills/oma-skill-creation/SKILL.md +84 -0
- package/skills/oma-skill-creation/resources/prompt-evaluation.md +36 -0
- package/skills/oma-skill-creation/resources/ssl-lite-template.md +108 -0
- package/skills/oma-skill-creation/resources/validation-checklist.md +101 -0
- package/skills/oma-slide/SKILL.md +277 -0
- package/skills/oma-slide/resources/animation-patterns.md +245 -0
- package/skills/oma-slide/resources/assets/deck-stage.js +514 -0
- package/skills/oma-slide/resources/assets/viewport-base.css +257 -0
- package/skills/oma-slide/resources/canva-integration.md +203 -0
- package/skills/oma-slide/resources/checklist.md +46 -0
- package/skills/oma-slide/resources/design-doctrine.md +260 -0
- package/skills/oma-slide/resources/fixed-stage.md +232 -0
- package/skills/oma-slide/resources/generation-protocol.md +393 -0
- package/skills/oma-slide/resources/native-pptx.md +84 -0
- package/skills/oma-slide/resources/selection-index.json +461 -0
- package/skills/oma-slide/resources/style-presets.LICENSE +10 -0
- package/skills/oma-slide/resources/style-presets.md +520 -0
- package/skills/oma-tf-infra/SKILL.md +201 -0
- package/skills/oma-tf-infra/resources/checklist.md +53 -0
- package/skills/oma-tf-infra/resources/cost-optimization.md +574 -0
- package/skills/oma-tf-infra/resources/error-playbook.md +68 -0
- package/skills/oma-tf-infra/resources/examples.md +38 -0
- package/skills/oma-tf-infra/resources/execution-protocol.md +129 -0
- package/skills/oma-tf-infra/resources/iso-42001-infra.md +229 -0
- package/skills/oma-tf-infra/resources/multi-cloud-examples.md +241 -0
- package/skills/oma-tf-infra/resources/policy-testing-examples.md +332 -0
- package/skills/oma-translation/SKILL.md +229 -0
- package/skills/oma-translation/resources/anti-ai-patterns.md +104 -0
- package/skills/oma-translation/resources/lang/_template.md +73 -0
- package/skills/oma-translation/resources/lang/en.md +123 -0
- package/skills/oma-translation/resources/lang/ja.md +274 -0
- package/skills/oma-translation/resources/lang/ko.md +228 -0
- package/skills/oma-translation/resources/lang/zh.md +285 -0
- package/skills/oma-translation/resources/style-skills.md +104 -0
- package/skills/oma-translation/resources/translation-rubric.md +126 -0
- package/skills/oma-video/SKILL.md +229 -0
- package/skills/oma-video/config/video-config.yaml +60 -0
- package/skills/oma-video/resources/checklist.md +26 -0
- package/skills/oma-video/resources/execution-protocol.md +122 -0
- package/skills/oma-video/resources/existing-media.md +185 -0
- package/skills/oma-video/resources/hyperframes-authoring/README.md +44 -0
- package/skills/oma-video/resources/hyperframes-authoring/demo.md +31 -0
- package/skills/oma-video/resources/hyperframes-authoring/explainer.md +10 -0
- package/skills/oma-video/resources/hyperframes-authoring/shorts.md +10 -0
- package/skills/oma-video/resources/motion-principles.md +81 -0
- package/skills/oma-video/resources/mpt/driver.py +301 -0
- package/skills/oma-video/resources/prompt-tips.md +75 -0
- package/skills/oma-video/resources/script-schema.md +81 -0
- package/skills/oma-video/resources/sound-design.md +127 -0
- package/skills/oma-video/resources/strudel/package.json +11 -0
- package/skills/oma-video/resources/strudel/page.html +87 -0
- package/skills/oma-video/resources/strudel/render.mjs +295 -0
- package/skills/oma-video/resources/vendor-matrix.md +124 -0
- package/skills/oma-voice/SKILL.md +249 -0
- package/skills/oma-voice/config/voice-config.yaml +30 -0
- package/skills/oma-voice/resources/audio-processing.md +119 -0
- package/skills/oma-voice/resources/checklist.md +47 -0
- package/skills/oma-voice/resources/execution-protocol.md +215 -0
- package/skills/oma-voice/resources/prompt-tips.md +43 -0
- package/skills/oma-voice/resources/voice-matrix.md +51 -0
- package/skills/oma-voice/resources/voicestudio.md +87 -0
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: oma-architecture
|
|
3
|
+
description: Evaluate system boundaries and architectural tradeoffs. Use for
|
|
4
|
+
architecture decisions, design reviews, and ADRs.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Architecture Agent - Software Architecture Specialist
|
|
8
|
+
|
|
9
|
+
## Scheduling
|
|
10
|
+
|
|
11
|
+
### Goal
|
|
12
|
+
Analyze, compare, and document software architecture decisions with explicit tradeoffs, risks, stakeholder concerns, and validation steps.
|
|
13
|
+
|
|
14
|
+
### Intent signature
|
|
15
|
+
- User asks for architecture, system design, module/service boundaries, ADRs, or design tradeoffs.
|
|
16
|
+
- User needs a decision method such as diagnostic routing, design-twice comparison, ATAM-style risk analysis, or CBAM-style prioritization.
|
|
17
|
+
- User reports architecture pain such as change amplification, hidden dependencies, unclear ownership, or awkward APIs.
|
|
18
|
+
- User needs an API versioning, deprecation, or published-contract evolution strategy.
|
|
19
|
+
|
|
20
|
+
### When to use
|
|
21
|
+
- Choosing or reviewing system architecture
|
|
22
|
+
- Defining module, service, or ownership boundaries
|
|
23
|
+
- Comparing architectural options with explicit tradeoffs
|
|
24
|
+
- Investigating architectural pain: change amplification, hidden dependencies, awkward APIs
|
|
25
|
+
- Prioritizing architecture investments or refactors
|
|
26
|
+
- Writing architecture recommendations or ADRs
|
|
27
|
+
- Deciding API versioning, deprecation windows, and published-contract evolution strategy
|
|
28
|
+
|
|
29
|
+
### When NOT to use
|
|
30
|
+
- Visual design, design systems, branding, or landing pages -> use oma-design
|
|
31
|
+
- Feature planning and task decomposition -> use oma-pm
|
|
32
|
+
- Infrastructure provisioning or Terraform implementation -> use oma-tf-infra
|
|
33
|
+
- Bug diagnosis and code fixes -> use oma-debug
|
|
34
|
+
- Security/performance/accessibility review -> use oma-qa
|
|
35
|
+
|
|
36
|
+
### Expected inputs
|
|
37
|
+
- Architecture question, pain point, or decision context
|
|
38
|
+
- Existing codebase, diagrams, docs, constraints, or stakeholder concerns
|
|
39
|
+
- Quality attributes such as scalability, reliability, security, operability, cost, and delivery speed
|
|
40
|
+
- Optional target artifact type such as recommendation, option comparison, or ADR
|
|
41
|
+
|
|
42
|
+
### Expected outputs
|
|
43
|
+
- Architecture diagnosis, recommendation, comparison, prioritization, or ADR
|
|
44
|
+
- Assumptions, tradeoffs, risks, and validation steps
|
|
45
|
+
- A Mermaid context/container diagram when the decision changes structure (boundaries, dependencies, data flow)
|
|
46
|
+
- When `oma diagram resolve` reports `engine: archify` (the normal case — oma auto-fetches the latest archify release), an interactive sibling `<artifact-stem>.archify.json` + `.archify.html` derived from that Mermaid (see `_shared/conditional/diagram-engine.md`)
|
|
47
|
+
- When the diagram is a vendor-stack topology and the user wants logos or a poster, a `<artifact-stem>.stack.html` sibling from the upstream stack-diagram skill (stack route in `_shared/conditional/diagram-engine.md`; no CLI, no config key)
|
|
48
|
+
- ADRs and retained recommendations for a selected approach in `docs/decisions/`, linked from `docs/decisions/index.md`
|
|
49
|
+
- Run-specific reviews, diagnoses, CBAM analyses, and unselected comparison drafts in `.agents/results/architecture/`
|
|
50
|
+
|
|
51
|
+
```yaml
|
|
52
|
+
outputs:
|
|
53
|
+
- name: architecture-decision
|
|
54
|
+
description: ADR or retained recommendation for a selected approach, with its actual authority status
|
|
55
|
+
artifact: "docs/decisions/*.md"
|
|
56
|
+
required: false
|
|
57
|
+
- name: architecture-artifact
|
|
58
|
+
description: Run-specific review, diagnosis, CBAM analysis, or unselected comparison draft
|
|
59
|
+
artifact: ".agents/results/architecture/*.md"
|
|
60
|
+
required: false
|
|
61
|
+
- name: architecture-decision-diagram-html
|
|
62
|
+
description: archify interactive HTML diagram (+ JSON spec) beside a retained structural decision; only when the archify engine resolves
|
|
63
|
+
artifact: "docs/decisions/*.archify.html"
|
|
64
|
+
required: false
|
|
65
|
+
- name: architecture-diagram-html
|
|
66
|
+
description: archify interactive HTML diagram (+ JSON spec) beside a run-specific structural report; only when the archify engine resolves
|
|
67
|
+
artifact: ".agents/results/architecture/*.archify.html"
|
|
68
|
+
required: false
|
|
69
|
+
- name: architecture-decision-stack-html
|
|
70
|
+
description: stack-diagram HTML poster with vendor logos beside a retained structural decision; only on the stack route when the upstream skill resolves
|
|
71
|
+
artifact: "docs/decisions/*.stack.html"
|
|
72
|
+
required: false
|
|
73
|
+
- name: architecture-stack-html
|
|
74
|
+
description: stack-diagram HTML poster with vendor logos beside a run-specific structural report; only on the stack route when the upstream skill resolves
|
|
75
|
+
artifact: ".agents/results/architecture/*.stack.html"
|
|
76
|
+
required: false
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Dependencies
|
|
80
|
+
- `resources/execution-protocol.md` for workflow
|
|
81
|
+
- `resources/methodology-selection.md` for method choice
|
|
82
|
+
- `resources/stakeholder-synthesis.md` when cross-cutting stakeholder consultation is justified
|
|
83
|
+
- `resources/output-templates.md` for final artifact shapes
|
|
84
|
+
- `resources/api-evolution.md` for published-contract versioning/deprecation decisions (MAP evolution patterns)
|
|
85
|
+
- `resources/migration-patterns.md` for transition plans when the chosen architecture requires restructuring a live system
|
|
86
|
+
- `_shared/conditional/diagram-engine.md` (+ `oma diagram resolve`) when a structural diagram is emitted — picks the route (archify vs Mermaid, or the upstream stack-diagram poster) and owns the validate/deliver loop
|
|
87
|
+
|
|
88
|
+
### Control-flow features
|
|
89
|
+
- Branches by request clarity, decision materiality, risk level, and need for stakeholder consultation
|
|
90
|
+
- May compare multiple options before recommending one
|
|
91
|
+
- Produces source-grounded docs rather than directly changing implementation
|
|
92
|
+
|
|
93
|
+
## Structural Flow
|
|
94
|
+
|
|
95
|
+
### Entry
|
|
96
|
+
1. Identify the architecture problem, decision, or pain signal.
|
|
97
|
+
2. Gather existing constraints, source evidence, and stakeholder context.
|
|
98
|
+
3. Read prior decisions in `docs/decisions/`; use `.agents/results/architecture/`, `docs/design-docs/`, and `docs/plans/designs/` as legacy context until migration. New decisions supersede old ones explicitly, never contradict them silently.
|
|
99
|
+
4. Select the lightest sufficient method.
|
|
100
|
+
|
|
101
|
+
### Scenes
|
|
102
|
+
1. **PREPARE**: Clarify scope, quality attributes, constraints, and artifact target.
|
|
103
|
+
2. **ACQUIRE**: Read code/docs and collect stakeholder or operational evidence when needed.
|
|
104
|
+
3. **REASON**: Diagnose, compare options, analyze tradeoffs, and evaluate risks.
|
|
105
|
+
4. **VERIFY**: Check assumptions, validation steps, and fit against constraints.
|
|
106
|
+
5. **FINALIZE**: Produce recommendation, ADR, or architecture artifact.
|
|
107
|
+
|
|
108
|
+
### Transitions
|
|
109
|
+
- If the request is vague, use Diagnostic Mode before recommending.
|
|
110
|
+
- If the decision is material, compare at least two genuinely different options.
|
|
111
|
+
- If risk/quality attributes dominate, use ATAM-style analysis.
|
|
112
|
+
- If prioritizing architecture investments, use CBAM-style cost/benefit framing.
|
|
113
|
+
- If the decision is final, format it as an ADR.
|
|
114
|
+
|
|
115
|
+
### Failure and recovery
|
|
116
|
+
- If evidence is insufficient, state assumptions and request or search for missing context.
|
|
117
|
+
- If stakeholder interests conflict, synthesize tradeoffs instead of forcing consensus.
|
|
118
|
+
- If the task belongs to another domain, route to the relevant skill.
|
|
119
|
+
|
|
120
|
+
### Exit
|
|
121
|
+
- Success: recommendation or artifact states assumptions, options, tradeoffs, risks, and validation.
|
|
122
|
+
- Partial success: unresolved assumptions or missing evidence are explicit.
|
|
123
|
+
|
|
124
|
+
## Logical Operations
|
|
125
|
+
|
|
126
|
+
### Actions
|
|
127
|
+
| Action | SSL primitive | Evidence |
|
|
128
|
+
|--------|---------------|----------|
|
|
129
|
+
| Classify architecture request | `SELECT` | Method selection summary |
|
|
130
|
+
| Read code/docs/context | `READ` | Source-grounded architecture evidence |
|
|
131
|
+
| Compare options | `COMPARE` | Design-twice or recommendation mode |
|
|
132
|
+
| Infer risks and tradeoffs | `INFER` | ATAM/CBAM-style analysis |
|
|
133
|
+
| Validate decision fit | `VALIDATE` | Checklist and validation steps |
|
|
134
|
+
| Write artifact | `WRITE` | ADR or architecture result |
|
|
135
|
+
| Notify outcome | `NOTIFY` | Final recommendation summary |
|
|
136
|
+
|
|
137
|
+
### Tools and instruments
|
|
138
|
+
- Local file reading and search for codebase/docs
|
|
139
|
+
- Architecture method references and output templates
|
|
140
|
+
- Optional stakeholder-agent consultation only when cross-cutting enough to justify cost
|
|
141
|
+
|
|
142
|
+
### Canonical workflow path
|
|
143
|
+
Use the configured code-intelligence provider for structure, symbols, references, and integration points. If unavailable, use native search only for paths outside this project or ignored paths:
|
|
144
|
+
|
|
145
|
+
```text
|
|
146
|
+
1. Read prior decisions in docs/decisions/; read old result/design directories as legacy fallback until migration.
|
|
147
|
+
2. Discover the configured provider's file, symbol, reference, and pattern tools.
|
|
148
|
+
3. Inspect architecture-relevant modules, ownership, and integration points within the selected scope.
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
Then choose Diagnostic, Recommendation, Design-Twice, ATAM-style, CBAM-style, or ADR mode before writing the artifact.
|
|
152
|
+
|
|
153
|
+
### Resource scope
|
|
154
|
+
| Scope | Resource target |
|
|
155
|
+
|-------|-----------------|
|
|
156
|
+
| `CODEBASE` | Architecture-relevant source files and docs |
|
|
157
|
+
| `LOCAL_FS` | `docs/decisions/` decisions and `.agents/results/architecture/` run reports |
|
|
158
|
+
| `MEMORY` | Assumptions, option matrix, tradeoff notes |
|
|
159
|
+
|
|
160
|
+
### Preconditions
|
|
161
|
+
- The architecture concern or decision boundary is identifiable.
|
|
162
|
+
- Relevant context can be read or assumptions can be stated.
|
|
163
|
+
|
|
164
|
+
### Effects and side effects
|
|
165
|
+
- Creates architecture recommendations or ADR-style records.
|
|
166
|
+
- May influence implementation direction, ownership boundaries, and future refactors.
|
|
167
|
+
- Does not directly modify product code unless a separate implementation task is requested.
|
|
168
|
+
|
|
169
|
+
### Guardrails
|
|
170
|
+
1. Diagnose the architecture problem before selecting a method.
|
|
171
|
+
2. Use the lightest sufficient methodology for the current decision.
|
|
172
|
+
3. Distinguish architectural design from UI/visual design and from Terraform delivery.
|
|
173
|
+
4. Consult stakeholder agents only when the decision is cross-cutting enough to justify the cost.
|
|
174
|
+
5. Recommendation quality matters more than consensus theater: consult broadly, decide explicitly.
|
|
175
|
+
6. Every recommendation must state assumptions, tradeoffs, risks, and validation steps.
|
|
176
|
+
7. Be cost-aware by default: implementation cost, operational cost, team complexity, and future change cost.
|
|
177
|
+
8. When a decision is material, compare at least two genuinely different options before recommending one.
|
|
178
|
+
9. Save ADRs and retained recommendations for a selected approach to `docs/decisions/` and update its index. Keep run reviews, diagnoses, CBAM analyses, and unselected drafts in `.agents/results/architecture/`. Promotion into `docs/` leaves a destination link in the source report.
|
|
179
|
+
10. Read prior decisions in `docs/decisions/` before deciding; read legacy locations until migration. When replacing an old decision, mark it superseded rather than contradicting it. Dispatched `result-*.md` reports always go to `.agents/results/`, preserving their task/run/session filenames.
|
|
180
|
+
11. When a durable artifact is finalized in an active OMA workflow, record its actual recommendation, authority status, rationale, revision, and evidence with `architecture.adr-complete` (execution protocol Step 7). A completed proposal does not supply user approval or authorize implementation.
|
|
181
|
+
|
|
182
|
+
### Method Selection Summary
|
|
183
|
+
- **Diagnostic Mode**: vague pain, unclear architecture symptom
|
|
184
|
+
- **Recommendation Mode**: choose a direction for a concrete architecture decision
|
|
185
|
+
- **Design-Twice Mode**: compare 2+ materially different designs before committing
|
|
186
|
+
- **ATAM-style Mode**: quality-attribute scenarios, tradeoff points, architectural risks
|
|
187
|
+
- **CBAM-style Mode**: cost/benefit prioritization of architecture investments
|
|
188
|
+
- **ADR Mode**: concise final decision record after analysis
|
|
189
|
+
|
|
190
|
+
## References
|
|
191
|
+
- Local code tools: `../_shared/core/code-intelligence.md` (code search/navigation)
|
|
192
|
+
|
|
193
|
+
- Execution steps (follow for the selected task): `resources/execution-protocol.md`
|
|
194
|
+
- Checklist (run before handoff): `resources/checklist.md`
|
|
195
|
+
- Method selection: `resources/methodology-selection.md`
|
|
196
|
+
- Stakeholder protocol: `resources/stakeholder-synthesis.md`
|
|
197
|
+
- Output templates: `resources/output-templates.md`
|
|
198
|
+
- API evolution patterns (versioning, deprecation, lifecycle guarantees): `resources/api-evolution.md`
|
|
199
|
+
- Migration/transition patterns (strangler fig, branch by abstraction, expand-contract): `resources/migration-patterns.md`
|
|
200
|
+
- Context loading: `../_shared/core/context-loading.md`
|
|
201
|
+
- Task decomposition: `../_shared/core/difficulty-guide.md` (unresolved scope or dependencies)
|
|
202
|
+
- Clarification protocol: `../_shared/core/clarification-protocol.md`
|
|
203
|
+
- Quality principles: `../_shared/core/quality-principles.md`
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# API Evolution - Versioning and Deprecation Decision Patterns
|
|
2
|
+
|
|
3
|
+
> Pattern vocabulary from Microservice API Patterns (MAP - Zimmermann, Stocker, Lübke, Pautasso, Zdun; "Patterns for API Design"). Use in Recommendation or ADR mode when the decision concerns a **published API contract** with consumers the provider does not control. `oma-refactor` routes here when an expand-contract refactoring crosses a published-contract boundary.
|
|
4
|
+
|
|
5
|
+
## When this file applies
|
|
6
|
+
- Choosing a versioning scheme for a public, partner, or cross-team API
|
|
7
|
+
- Deciding how long old versions live and how consumers migrate off them
|
|
8
|
+
- Writing the ADR for a breaking change to a published contract
|
|
9
|
+
- Reviewing an expand-contract plan whose "contract" phase removes something external consumers may use
|
|
10
|
+
|
|
11
|
+
## Core tension
|
|
12
|
+
The provider wants freedom to change; consumers want stability. Every pattern below is a **named position on that tradeoff**. An API evolution ADR must state which guarantee is being sold, to whom, and when it expires - Hyrum's Law means anything observable is part of the de-facto contract regardless of what the docs promise.
|
|
13
|
+
|
|
14
|
+
## Versioning patterns
|
|
15
|
+
| Pattern | Decision | Notes |
|
|
16
|
+
|---------|----------|-------|
|
|
17
|
+
| Version Identifier | Make the version explicit in the contract (URL path, media type, header, or payload field) | Prerequisite for every lifecycle pattern below; "no version marker" is itself a decision (forces Eternal Lifetime or breakage) |
|
|
18
|
+
| Semantic Versioning | MAJOR.MINOR.PATCH signals whether a change breaks, extends, or fixes | Only MAJOR needs a migration decision; publish the compatibility rules, not just the numbers |
|
|
19
|
+
|
|
20
|
+
## Lifecycle guarantee patterns
|
|
21
|
+
| Pattern | Promise to consumers | Choose when |
|
|
22
|
+
|---------|----------------------|-------------|
|
|
23
|
+
| Experimental Preview | None - may change or vanish without notice | Pre-GA feedback gathering; keeps early adopters off your back-compat hook |
|
|
24
|
+
| Aggressive Obsolescence | Old versions deprecated quickly with published sunset dates | Provider velocity dominates; few, reachable consumers |
|
|
25
|
+
| Limited Lifetime Guarantee | Each version supported for a fixed window (e.g., 24 months from publication) | B2B defaults; lets consumers budget migrations |
|
|
26
|
+
| Two in Production | Exactly N (typically 2) versions live concurrently; shipping version N+1 retires N-1 | Rolling migration with a bounded support burden - the workhorse for internal and partner APIs |
|
|
27
|
+
| Eternal Lifetime Guarantee | Published contracts never break | Huge or unknown consumer base (public web APIs); the most expensive promise - make it deliberately or not at all |
|
|
28
|
+
|
|
29
|
+
## Decision guidance
|
|
30
|
+
- Internal service-to-service default: **Two in Production + Semantic Versioning + Version Identifier**. It bounds support cost while never forcing a consumer to migrate under fire.
|
|
31
|
+
- Deprecation is a protocol, not an event: announce with sunset date -> run old+new concurrently (the expand phase) -> drive migration with telemetry on old-version traffic -> contract only when traffic is zero or the sunset date passes, whichever the guarantee dictates.
|
|
32
|
+
- The guarantee is set at **publication time**: retrofitting a shorter lifetime onto an already-published version is itself a breaking change to the meta-contract.
|
|
33
|
+
- Telemetry precondition: if you cannot measure per-version consumer traffic, you cannot safely run anything more aggressive than Eternal Lifetime - instrument first.
|
|
34
|
+
- The wider MAP catalog (foundation, responsibility, structure, and quality patterns: Pagination, Wish List, Rate Limit, API Key, ...) covers API *design*; this file deliberately scopes to *evolution*, which is where refactoring and architecture meet.
|
|
35
|
+
|
|
36
|
+
## ADR checklist for a published-contract change
|
|
37
|
+
- What lifetime guarantee did the old version's publication imply (explicitly or by Hyrum)?
|
|
38
|
+
- Who consumes it today (telemetry, not assumption), and what is migration cost per consumer class?
|
|
39
|
+
- Which lifecycle pattern governs the transition, and what are the announced sunset dates and channels?
|
|
40
|
+
- Can old and new run concurrently during migration (Two in Production / expand phase), and what is the rollback path?
|
|
41
|
+
- How will old-version traffic be monitored to zero before the contract phase?
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Architecture Agent - Checklist
|
|
2
|
+
|
|
3
|
+
## Framing
|
|
4
|
+
- [ ] The architecture problem is stated explicitly
|
|
5
|
+
- [ ] Constraints and quality attributes are identified
|
|
6
|
+
- [ ] Non-goals are listed
|
|
7
|
+
|
|
8
|
+
## Consistency with Prior Decisions
|
|
9
|
+
- [ ] Prior artifacts in `.agents/results/architecture/` were reviewed
|
|
10
|
+
- [ ] Conflicts with prior ADRs are resolved by superseding (old ADR `Status` updated), not ignored
|
|
11
|
+
|
|
12
|
+
## Method Choice
|
|
13
|
+
- [ ] The chosen methodology matches the problem
|
|
14
|
+
- [ ] The analysis is not heavier than necessary
|
|
15
|
+
- [ ] Diagnostic routing was used when the initial problem was vague
|
|
16
|
+
|
|
17
|
+
## Tradeoffs
|
|
18
|
+
- [ ] At least two options were compared when the decision was material
|
|
19
|
+
- [ ] Tradeoffs are concrete, not generic
|
|
20
|
+
- [ ] Implementation cost is considered
|
|
21
|
+
- [ ] Operational cost is considered
|
|
22
|
+
- [ ] Team cognitive load / maintenance cost is considered
|
|
23
|
+
|
|
24
|
+
## Synthesis
|
|
25
|
+
- [ ] Stakeholder input was gathered only if justified by scope
|
|
26
|
+
- [ ] Agreements and tensions are separated clearly
|
|
27
|
+
- [ ] A recommendation is explicit
|
|
28
|
+
- [ ] Rejected options are documented when relevant
|
|
29
|
+
|
|
30
|
+
## Decision Quality
|
|
31
|
+
- [ ] Assumptions are listed
|
|
32
|
+
- [ ] Risks are listed
|
|
33
|
+
- [ ] Validation steps are listed, with an executable check (fitness function / dependency rule) where feasible
|
|
34
|
+
- [ ] A Mermaid diagram is included when the decision changes structure
|
|
35
|
+
- [ ] A transition plan is included when the decision restructures a live system
|
|
36
|
+
- [ ] Output artifact matches the selected mode
|
|
37
|
+
- [ ] Durable artifact saved and the `architecture.adr-complete` event emitted and verified
|
|
38
|
+
|
|
39
|
+
## Boundaries
|
|
40
|
+
- [ ] Visual/UI design concerns were not conflated with software architecture
|
|
41
|
+
- [ ] Terraform/IaC concerns were not allowed to take over system-design reasoning
|
|
42
|
+
- [ ] PM planning work was not duplicated
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# Architecture Agent - Execution Protocol
|
|
2
|
+
|
|
3
|
+
## Preparation
|
|
4
|
+
Use the task's scope, existing project conventions, and acceptance criteria. Follow `../../_shared/core/execution-policy.md` when it has not already been supplied. Read only references needed by the selected operation; consult lessons or recovery guides for an observed issue. Expand planning depth only when the change requires it.
|
|
5
|
+
|
|
6
|
+
## Step 1: Frame the Problem
|
|
7
|
+
- Separate symptoms from decisions
|
|
8
|
+
- Name the architecture concern explicitly:
|
|
9
|
+
- boundary / ownership
|
|
10
|
+
- API shape / caller burden
|
|
11
|
+
- reliability / consistency / scaling
|
|
12
|
+
- migration / investment prioritization
|
|
13
|
+
- Record constraints, quality attributes, and non-goals
|
|
14
|
+
|
|
15
|
+
## Step 2: Gather Context
|
|
16
|
+
- Read prior decisions in `docs/decisions/` first; consult `.agents/results/architecture/`, `docs/design-docs/`, and `docs/plans/designs/` as legacy context until migration:
|
|
17
|
+
- note decisions that constrain this one
|
|
18
|
+
- if this decision replaces one, plan to mark the old ADR superseded — never silently contradict it
|
|
19
|
+
- Analyze only the code and docs relevant to the decision
|
|
20
|
+
- follow `../../_shared/core/code-intelligence.md` for configured symbol, reference, and pattern tools or native fallback
|
|
21
|
+
- Map existing architecture:
|
|
22
|
+
- key modules or services
|
|
23
|
+
- ownership boundaries
|
|
24
|
+
- integration points
|
|
25
|
+
- current pain points
|
|
26
|
+
- If context is vague, start in Diagnostic Mode before deeper analysis
|
|
27
|
+
|
|
28
|
+
## Step 3: Decide Consultation Depth
|
|
29
|
+
- **Simple**: no stakeholder consultation, analyze inline
|
|
30
|
+
- **Medium**: consult 1-3 stakeholder agents via `stakeholder-synthesis.md`
|
|
31
|
+
- **Complex**: perform a structured stakeholder sweep, then synthesize
|
|
32
|
+
|
|
33
|
+
## Step 4: Run the Selected Method
|
|
34
|
+
|
|
35
|
+
### Diagnostic Mode
|
|
36
|
+
- Convert vague pain into a concrete architecture problem
|
|
37
|
+
- Route into Recommendation, Design-Twice, ATAM-style, or CBAM-style mode
|
|
38
|
+
|
|
39
|
+
### Recommendation Mode
|
|
40
|
+
- Define 2-3 options when the decision is material
|
|
41
|
+
- Compare on:
|
|
42
|
+
- boundary clarity
|
|
43
|
+
- quality attributes
|
|
44
|
+
- implementation cost
|
|
45
|
+
- operational cost
|
|
46
|
+
- future change cost
|
|
47
|
+
|
|
48
|
+
### Design-Twice Mode
|
|
49
|
+
- Force at least two materially different options
|
|
50
|
+
- Avoid superficial variations on the same decomposition
|
|
51
|
+
- Compare and synthesize if needed
|
|
52
|
+
|
|
53
|
+
### ATAM-style Mode
|
|
54
|
+
- Identify quality attribute scenarios
|
|
55
|
+
- Write each scenario as stimulus → environment → response measure
|
|
56
|
+
(e.g., "traffic spikes to 5x baseline [stimulus] during a regional failover [environment] → p99 stays under 800ms [response measure]")
|
|
57
|
+
- Surface sensitivity points, tradeoff points, risks, and non-risks
|
|
58
|
+
- Prioritize architectural concerns by impact
|
|
59
|
+
|
|
60
|
+
### CBAM-style Mode
|
|
61
|
+
- Compare candidate investments
|
|
62
|
+
- Estimate benefit, cost, and sequencing value
|
|
63
|
+
- Score benefit and cost on a shared 1-5 scale (1 = minimal, 5 = very high) so rankings are comparable across runs
|
|
64
|
+
- Tag each estimate with its confidence (low / medium / high) instead of implying false precision
|
|
65
|
+
- Recommend a prioritized investment path
|
|
66
|
+
|
|
67
|
+
### ADR Mode
|
|
68
|
+
- Produce a concise decision artifact after analysis
|
|
69
|
+
|
|
70
|
+
### Transition planning (any mode)
|
|
71
|
+
- If the recommended option requires restructuring a live system (service extraction, sync → event-driven, datastore split), append a Transition Plan section using `migration-patterns.md`
|
|
72
|
+
- If the change breaks a published API contract, apply `api-evolution.md`
|
|
73
|
+
|
|
74
|
+
## Step 5: Synthesize
|
|
75
|
+
- Summarize stakeholder perspectives
|
|
76
|
+
- Separate:
|
|
77
|
+
- agreements
|
|
78
|
+
- tensions
|
|
79
|
+
- assumptions
|
|
80
|
+
- Make an explicit recommendation
|
|
81
|
+
- If a decision is still user-owned, frame the options and tradeoffs clearly
|
|
82
|
+
|
|
83
|
+
## Step 6: Verify
|
|
84
|
+
- Run `checklist.md`
|
|
85
|
+
- Confirm the recommendation is:
|
|
86
|
+
- method-appropriate
|
|
87
|
+
- cost-aware
|
|
88
|
+
- scoped correctly
|
|
89
|
+
- explicit about risks and assumptions
|
|
90
|
+
- Make validation executable where possible: propose an architecture fitness function or dependency rule (dependency-cruiser, import-linter, ArchUnit, or equivalent) that fails CI when the decision is violated — a validation step no one can run will not be run
|
|
91
|
+
|
|
92
|
+
## Step 7: Document
|
|
93
|
+
- Save ADRs and retained recommendations for a selected approach to `docs/decisions/`; update `docs/decisions/index.md`.
|
|
94
|
+
- Keep run-specific reviews, diagnoses, CBAM analyses, and unselected comparison drafts in `.agents/results/architecture/`. When promoting a document into `docs/decisions/`, leave the destination in the source report.
|
|
95
|
+
- Filename patterns (kebab-case topic, no sequence numbers):
|
|
96
|
+
- `docs/decisions/adr-<topic>.md`
|
|
97
|
+
- `docs/decisions/architecture-recommendation-<topic>.md` for a retained selected approach
|
|
98
|
+
- `.agents/results/architecture/architecture-review-<topic>.md`
|
|
99
|
+
- `.agents/results/architecture/cbam-<topic>.md`
|
|
100
|
+
- `.agents/results/architecture/diagnosis-<topic>.md`
|
|
101
|
+
- Rerunning the same topic updates the existing file; record the revision in the ADR `Status` line rather than creating a copy
|
|
102
|
+
- ADR lifecycle: `Status` is `Proposed`, `Accepted`, or `Superseded by <adr-file>`. Keep a user-owned unresolved choice `Proposed`; a completed artifact or event is not acceptance. Use `Accepted` only when existing decision authority supports it. Update a prior ADR as superseded only when the replacement is authorized.
|
|
103
|
+
- When dispatched, also write the injected claim and the task/run-scoped report per `../../_shared/runtime/result-contract.md` and `memory-protocol.md`. Use `.agents/results/result-{agentId}-{taskId}-{runId}-{sessionId}.md`, preserving injected IDs. Existing reports under configured coordination memory or `.serena/memories/` remain read fallback; write new reports only to `.agents/results/`. Link the architecture artifact from this report.
|
|
104
|
+
- In an active OMA workflow, record and verify the actual recommendation with its authority status and current artifact revision. This records completion of the analysis without granting implementation approval:
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
oma state emit "decision.made" '{"subject":"architecture.adr-complete","instanceId":"<artifact path and revision>","decision":"<Proposed|Accepted>: <recommended or authorized option and boundary>","rationale":"<option comparison and actual acceptance authority when Accepted>","evidence":["<architecture artifact and supporting evidence paths>"]}'
|
|
108
|
+
oma state verify --workflow architecture --checkpoint adr-complete --instance "<artifact path and revision>"
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Escalation
|
|
112
|
+
- If the question is really about task sequencing -> hand off to oma-pm
|
|
113
|
+
- If the decision is really infra implementation -> hand off to oma-tf-infra
|
|
114
|
+
- If the issue is primarily code correctness -> hand off to oma-debug
|
|
115
|
+
- If the issue is primarily security/performance/accessibility verification -> hand off to oma-qa
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# Methodology Selection Guide
|
|
2
|
+
|
|
3
|
+
Choose the lightest method that fits the problem.
|
|
4
|
+
|
|
5
|
+
## 1. Diagnostic Mode
|
|
6
|
+
|
|
7
|
+
Use when:
|
|
8
|
+
- the complaint is vague
|
|
9
|
+
- the user feels pain but cannot name the architecture issue
|
|
10
|
+
- it is unclear whether the problem is architecture, planning, QA, or debugging
|
|
11
|
+
|
|
12
|
+
Output:
|
|
13
|
+
- clarified problem statement
|
|
14
|
+
- why this is an architecture concern
|
|
15
|
+
- recommended next mode
|
|
16
|
+
|
|
17
|
+
## 2. Recommendation Mode
|
|
18
|
+
|
|
19
|
+
Use when:
|
|
20
|
+
- the decision is concrete
|
|
21
|
+
- the user wants an architectural direction
|
|
22
|
+
- the analysis does not require formal quality-attribute scenarios
|
|
23
|
+
|
|
24
|
+
Output:
|
|
25
|
+
- options
|
|
26
|
+
- tradeoff comparison
|
|
27
|
+
- recommendation
|
|
28
|
+
|
|
29
|
+
## 3. Design-Twice Mode
|
|
30
|
+
|
|
31
|
+
Use when:
|
|
32
|
+
- the decision is structural and likely to harden into the codebase
|
|
33
|
+
- the first obvious option may anchor the team too early
|
|
34
|
+
- interface, boundary, or decomposition choices are material
|
|
35
|
+
|
|
36
|
+
Output:
|
|
37
|
+
- two or more materially different options
|
|
38
|
+
- comparison and synthesis
|
|
39
|
+
|
|
40
|
+
## 4. ATAM-style Mode
|
|
41
|
+
|
|
42
|
+
Use when:
|
|
43
|
+
- the user asks for architecture review, tradeoffs, risks, or quality attributes
|
|
44
|
+
- reliability, performance, modifiability, security, or operability are central
|
|
45
|
+
- scenario-based evaluation is needed
|
|
46
|
+
|
|
47
|
+
Output:
|
|
48
|
+
- scenarios
|
|
49
|
+
- sensitivity points
|
|
50
|
+
- tradeoff points
|
|
51
|
+
- risks and non-risks
|
|
52
|
+
|
|
53
|
+
## 5. CBAM-style Mode
|
|
54
|
+
|
|
55
|
+
Use when:
|
|
56
|
+
- the user asks what to prioritize or invest in first
|
|
57
|
+
- the decision is economic or sequencing-oriented
|
|
58
|
+
- multiple architecture improvements compete for time and budget
|
|
59
|
+
|
|
60
|
+
Output:
|
|
61
|
+
- cost/benefit comparison
|
|
62
|
+
- sequencing recommendation
|
|
63
|
+
|
|
64
|
+
## 6. ADR Mode
|
|
65
|
+
|
|
66
|
+
Use when:
|
|
67
|
+
- the analysis is done and the team needs a portable record
|
|
68
|
+
- a concise decision artifact is the deliverable
|
|
69
|
+
|
|
70
|
+
Output:
|
|
71
|
+
- context
|
|
72
|
+
- decision
|
|
73
|
+
- alternatives
|
|
74
|
+
- consequences
|
|
75
|
+
|
|
76
|
+
## Recommendation vs Design-Twice
|
|
77
|
+
|
|
78
|
+
Both modes compare options; the difference is where the discipline sits:
|
|
79
|
+
|
|
80
|
+
- **Recommendation Mode** starts from options that already exist or are obvious — the work is the comparison and the call.
|
|
81
|
+
- **Design-Twice Mode** exists to *generate* a genuinely different second design before comparing — use it when the obvious first option would anchor the team too early.
|
|
82
|
+
|
|
83
|
+
Litmus test: if you cannot name a materially different second decomposition, you are in Recommendation Mode.
|
|
84
|
+
|
|
85
|
+
## Selection Heuristics
|
|
86
|
+
|
|
87
|
+
- Start with Diagnostic Mode if the problem is fuzzy
|
|
88
|
+
- Default to Recommendation Mode if the decision is clear and moderate in scope
|
|
89
|
+
- Upgrade to Design-Twice Mode for material structural choices
|
|
90
|
+
- Upgrade to ATAM-style Mode for quality-attribute and risk-heavy reviews
|
|
91
|
+
- Upgrade to CBAM-style Mode for investment prioritization
|
|
92
|
+
- Finish with ADR Mode when a durable decision record is useful
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Architecture Migration - Transition Plan Patterns
|
|
2
|
+
|
|
3
|
+
> Use when a chosen target architecture requires restructuring a **live system**. `api-evolution.md` covers evolving published API contracts; this file covers the structural transition itself. Output: a Transition Plan section appended to the recommendation or ADR.
|
|
4
|
+
|
|
5
|
+
## When this file applies
|
|
6
|
+
- The recommendation implies moving between architectures: monolith → service extraction, synchronous → event-driven, datastore split or replacement
|
|
7
|
+
- The system must keep serving traffic during the change
|
|
8
|
+
- A "big bang" cutover is being proposed and needs a safer alternative
|
|
9
|
+
|
|
10
|
+
## Core tension
|
|
11
|
+
The safest migration is many small reversible steps, but every coexistence mechanism (facade, flag, dual write) is temporary complexity that costs money while it lives. A transition plan must name both the increment safety story and the exit date for the scaffolding — half-finished migrations are the most expensive architecture of all.
|
|
12
|
+
|
|
13
|
+
## Patterns
|
|
14
|
+
| Pattern | Move | Choose when |
|
|
15
|
+
|---------|------|-------------|
|
|
16
|
+
| Strangler Fig | Route traffic incrementally from old to new behind a stable facade; retire old paths as coverage grows | Large legacy replacement; increments must be independently shippable and reversible |
|
|
17
|
+
| Branch by Abstraction | Introduce an abstraction over the old implementation, build the new one behind it, flip, then delete both the old code and the abstraction if no longer needed | In-process restructuring without long-lived VCS branches |
|
|
18
|
+
| Expand-Contract (Parallel Change) | Add the new interface/schema alongside the old → migrate callers → remove the old | Any interface or schema change with existing callers; pairs with `api-evolution.md` for published contracts |
|
|
19
|
+
| Dual Write / Change Data Capture | Write to (or replicate into) the new store while the old remains source of truth; reconcile, then flip | Datastore split or extraction; never flip before reconciliation reports zero drift |
|
|
20
|
+
| Feature-flag Cutover | Gate the new path behind a flag; ramp by cohort/percentage | Behavior-level switches where per-request routing is cheap; flags must have a removal date |
|
|
21
|
+
|
|
22
|
+
## Transition Plan checklist
|
|
23
|
+
- **Cutover unit**: what moves per increment, and what evidence proves an increment safe (tests, shadow traffic, reconciliation)
|
|
24
|
+
- **Coexistence**: how old and new run together — routing rule, flag, facade — and who owns it
|
|
25
|
+
- **Rollback**: defined per increment, not just for the whole migration
|
|
26
|
+
- **Data**: which store is source of truth at each stage; reconciliation check before every flip
|
|
27
|
+
- **Contract impact**: if a published API changes, apply the lifecycle patterns in `api-evolution.md`
|
|
28
|
+
- **Exit**: what deletes the old path and the scaffolding, and what stops the migration from stalling half-done (owner + target date)
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# Output Templates
|
|
2
|
+
|
|
3
|
+
Templates track ISO/IEC/IEEE 42010 concepts: stakeholders and concerns (Problem / Constraints), viewpoints (Diagram), and rationale (Tradeoffs / Decision).
|
|
4
|
+
|
|
5
|
+
## Diagram Guidance
|
|
6
|
+
|
|
7
|
+
Include a Mermaid diagram whenever the decision changes structure — boundaries, dependencies, or data flow. Default to a C4-style context or container view, scoped to only the elements the decision touches:
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
graph LR
|
|
11
|
+
Client[Web Client] --> API[API Service]
|
|
12
|
+
API --> Notif[Notification Module]
|
|
13
|
+
Notif -->|extracted?| NotifSvc[Notification Service]
|
|
14
|
+
NotifSvc --> Queue[(Queue)]
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Skip the diagram for non-structural decisions (e.g., a versioning policy).
|
|
18
|
+
|
|
19
|
+
The Mermaid block is the text SSOT. When `oma diagram resolve --json` returns `engine: archify`, additionally derive an interactive artifact per `_shared/conditional/diagram-engine.md` and link it directly under the Mermaid block:
|
|
20
|
+
|
|
21
|
+
```md
|
|
22
|
+
Interactive: [adr-<topic>.archify.html](./adr-<topic>.archify.html)
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Never replace the Mermaid block with the link — readers of the Markdown (and git diffs) must not depend on the HTML.
|
|
26
|
+
|
|
27
|
+
## Recommendation Template
|
|
28
|
+
|
|
29
|
+
```md
|
|
30
|
+
# Architecture Recommendation: <topic>
|
|
31
|
+
|
|
32
|
+
## Problem
|
|
33
|
+
|
|
34
|
+
## Constraints and Quality Attributes
|
|
35
|
+
|
|
36
|
+
## Options
|
|
37
|
+
|
|
38
|
+
## Diagram (if structural)
|
|
39
|
+
|
|
40
|
+
## Tradeoff Comparison
|
|
41
|
+
|
|
42
|
+
## Recommendation
|
|
43
|
+
|
|
44
|
+
## Transition Plan (if restructuring a live system)
|
|
45
|
+
|
|
46
|
+
## Risks
|
|
47
|
+
|
|
48
|
+
## Assumptions
|
|
49
|
+
|
|
50
|
+
## Validation Steps
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## ATAM-style Template
|
|
54
|
+
|
|
55
|
+
```md
|
|
56
|
+
# Architecture Review: <topic>
|
|
57
|
+
|
|
58
|
+
## Scope
|
|
59
|
+
|
|
60
|
+
## Quality Attribute Scenarios
|
|
61
|
+
|
|
62
|
+
## Architectural Approaches
|
|
63
|
+
|
|
64
|
+
## Sensitivity Points
|
|
65
|
+
|
|
66
|
+
## Tradeoff Points
|
|
67
|
+
|
|
68
|
+
## Risks / Non-Risks
|
|
69
|
+
|
|
70
|
+
## Recommendations
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## CBAM-style Template
|
|
74
|
+
|
|
75
|
+
```md
|
|
76
|
+
# Architecture Investment Analysis: <topic>
|
|
77
|
+
|
|
78
|
+
## Candidate Investments
|
|
79
|
+
|
|
80
|
+
## Benefit Estimate
|
|
81
|
+
|
|
82
|
+
## Cost Estimate
|
|
83
|
+
|
|
84
|
+
## Operational / Team Impact
|
|
85
|
+
|
|
86
|
+
## Priority Ranking
|
|
87
|
+
|
|
88
|
+
## Recommended Sequence
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## ADR Template
|
|
92
|
+
|
|
93
|
+
```md
|
|
94
|
+
# ADR: <topic>
|
|
95
|
+
|
|
96
|
+
- Status: Proposed | Accepted | Superseded by <adr-file>
|
|
97
|
+
- Date: <YYYY-MM-DD>
|
|
98
|
+
- Supersedes: <adr-file or none>
|
|
99
|
+
|
|
100
|
+
## Context
|
|
101
|
+
|
|
102
|
+
## Decision
|
|
103
|
+
|
|
104
|
+
## Diagram (if structural)
|
|
105
|
+
|
|
106
|
+
## Alternatives Considered
|
|
107
|
+
|
|
108
|
+
## Consequences
|
|
109
|
+
|
|
110
|
+
## Follow-up Validation
|
|
111
|
+
```
|