wicked-garden 12.27.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-plugin/archetypes.json +166 -0
- package/.claude-plugin/components.json +75 -0
- package/.claude-plugin/marketplace.json +15 -0
- package/.claude-plugin/plugin.json +174 -0
- package/.claude-plugin/specialist.json +48 -0
- package/.claude-plugin/stack-registry.json +96 -0
- package/AGENTS.md +13 -0
- package/CHANGELOG.md +712 -0
- package/CONTRIBUTING.md +99 -0
- package/ETHOS.md +83 -0
- package/LICENSE +21 -0
- package/README.md +115 -0
- package/WICKED_GARDEN_BUS_EVENTS.md +149 -0
- package/agents/agentic/architect.md +449 -0
- package/agents/agentic/performance-analyst.md +702 -0
- package/agents/agentic/safety-reviewer.md +662 -0
- package/agents/crew/implementer.md +163 -0
- package/agents/crew/researcher.md +94 -0
- package/agents/crew/reviewer.md +184 -0
- package/agents/data/data-engineer.md +227 -0
- package/agents/engineering/api-documentarian.md +440 -0
- package/agents/engineering/migration-engineer.md +301 -0
- package/agents/engineering/solution-architect.md +208 -0
- package/agents/jam/brainstorm-facilitator.md +297 -0
- package/agents/jam/council.md +322 -0
- package/agents/jam/quick-facilitator.md +85 -0
- package/agents/persona/persona-agent.md +121 -0
- package/agents/platform/compliance-officer.md +266 -0
- package/agents/platform/privacy-expert.md +496 -0
- package/agents/platform/security-engineer.md +287 -0
- package/agents/product/a11y-expert.md +323 -0
- package/agents/product/requirements-analyst.md +238 -0
- package/agents/product/ui-reviewer.md +180 -0
- package/agents/product/ux-designer.md +199 -0
- package/agents/product/value-strategist.md +269 -0
- package/agents/qe/semantic-reviewer.md +78 -0
- package/commands/agentic/audit.md +24 -0
- package/commands/agentic/design.md +24 -0
- package/commands/agentic/frameworks.md +25 -0
- package/commands/agentic/review.md +27 -0
- package/commands/archetype/build.md +12 -0
- package/commands/archetype/decide.md +12 -0
- package/commands/archetype/explore.md +12 -0
- package/commands/archetype/incident.md +12 -0
- package/commands/archetype/migrate.md +12 -0
- package/commands/archetype/modernize.md +12 -0
- package/commands/archetype/review.md +14 -0
- package/commands/archetype/ship.md +12 -0
- package/commands/archetype/specify.md +12 -0
- package/commands/archetype/triage.md +12 -0
- package/commands/compile.md +37 -0
- package/commands/data/analyze.md +18 -0
- package/commands/data/data.md +21 -0
- package/commands/data/ml.md +18 -0
- package/commands/data/ontology.md +22 -0
- package/commands/data/pipeline.md +17 -0
- package/commands/deliberate.md +181 -0
- package/commands/engineering/add-field.md +77 -0
- package/commands/engineering/apply.md +58 -0
- package/commands/engineering/arch.md +26 -0
- package/commands/engineering/debug.md +27 -0
- package/commands/engineering/docs.md +27 -0
- package/commands/engineering/new-generator.md +257 -0
- package/commands/engineering/patch-plan.md +59 -0
- package/commands/engineering/plan.md +29 -0
- package/commands/engineering/remove.md +48 -0
- package/commands/engineering/rename.md +44 -0
- package/commands/engineering/review.md +32 -0
- package/commands/help.md +128 -0
- package/commands/install.md +118 -0
- package/commands/intent.md +54 -0
- package/commands/jam/brainstorm.md +37 -0
- package/commands/jam/council.md +49 -0
- package/commands/jam/quick.md +21 -0
- package/commands/jam/revisit.md +79 -0
- package/commands/persona/as.md +136 -0
- package/commands/persona/define.md +24 -0
- package/commands/persona/list.md +118 -0
- package/commands/platform/actions.md +20 -0
- package/commands/platform/assert.md +18 -0
- package/commands/platform/audit.md +23 -0
- package/commands/platform/compliance.md +20 -0
- package/commands/platform/gh.md +22 -0
- package/commands/platform/health.md +22 -0
- package/commands/platform/incident.md +23 -0
- package/commands/platform/infra.md +24 -0
- package/commands/platform/peer-health.md +103 -0
- package/commands/platform/plugin-health.md +58 -0
- package/commands/platform/security.md +38 -0
- package/commands/platform/toolchain.md +96 -0
- package/commands/platform/traces.md +20 -0
- package/commands/product/a11y.md +19 -0
- package/commands/product/acceptance.md +19 -0
- package/commands/product/align.md +20 -0
- package/commands/product/analyze.md +23 -0
- package/commands/product/elicit.md +19 -0
- package/commands/product/listen.md +24 -0
- package/commands/product/mockup.md +20 -0
- package/commands/product/screenshot.md +19 -0
- package/commands/product/strategy.md +40 -0
- package/commands/product/synthesize.md +23 -0
- package/commands/product/ux-review.md +42 -0
- package/commands/product/ux.md +20 -0
- package/commands/product/visual-direction.md +34 -0
- package/commands/prove.md +47 -0
- package/commands/report-issue.md +243 -0
- package/commands/reset.md +144 -0
- package/commands/search/blast-radius.md +58 -0
- package/commands/search/hotspots.md +55 -0
- package/commands/search/index.md +38 -0
- package/commands/search/lineage.md +47 -0
- package/commands/search/service-map.md +79 -0
- package/commands/setup.md +363 -0
- package/commands/smaht/briefing.md +200 -0
- package/commands/smaht/events-import.md +95 -0
- package/commands/smaht/state.md +19 -0
- package/commands/where-am-i.md +58 -0
- package/docs/README.md +32 -0
- package/docs/adr/0001-code-relationship-graph-engine.md +116 -0
- package/docs/adr/0002-major-cleanup-keep-cut.md +91 -0
- package/docs/adr/0003-peers-gate-required-layers-optin.md +41 -0
- package/docs/adr/0004-code-graph-moves-to-wicked-brain.md +47 -0
- package/docs/brain-chunk-format.md +135 -0
- package/docs/compiler.md +95 -0
- package/docs/daemon-api.md +70 -0
- package/docs/domains.md +197 -0
- package/docs/getting-started.md +208 -0
- package/docs/plans/2026-06-08-wicked-loom-conduct.md +1337 -0
- package/docs/plans/2026-06-08-wicked-loom-contract.md +638 -0
- package/docs/plans/2026-06-08-wicked-loom-cutover.md +1300 -0
- package/docs/plans/2026-06-08-wicked-loom-expand-compose.md +843 -0
- package/docs/plans/2026-06-08-wicked-loom-flow-cutover.md +403 -0
- package/docs/plans/2026-06-10-codegraph-to-brain-phase1a-graph-core.md +838 -0
- package/docs/plans/2026-06-10-codegraph-to-brain-phase1b-injected-edges.md +44 -0
- package/docs/required-peers.md +60 -0
- package/docs/specs/2026-06-08-wicked-loom-extraction.md +225 -0
- package/docs/specs/2026-06-10-codegraph-to-brain-migration.md +168 -0
- package/docs/v11/archetypes.md +231 -0
- package/hooks/hooks.json +275 -0
- package/hooks/scripts/bootstrap.py +1797 -0
- package/hooks/scripts/invoke.py +62 -0
- package/hooks/scripts/notification.py +166 -0
- package/hooks/scripts/permission_request.py +223 -0
- package/hooks/scripts/post_tool.py +1374 -0
- package/hooks/scripts/pre_compact.py +272 -0
- package/hooks/scripts/pre_tool.py +1278 -0
- package/hooks/scripts/prompt_submit.py +1109 -0
- package/hooks/scripts/session_end.py +95 -0
- package/hooks/scripts/stop.py +624 -0
- package/hooks/scripts/subagent_lifecycle.py +464 -0
- package/hooks/scripts/subscribers/on_gate_decided.py +84 -0
- package/hooks/scripts/task_completed.py +322 -0
- package/hooks/scripts/worktree_guard.py +148 -0
- package/hooks/subscriptions/on_gate_decided.json +9 -0
- package/install.mjs +128 -0
- package/package.json +41 -0
- package/pyproject.toml +59 -0
- package/schemas/README.md +32 -0
- package/schemas/assert_contracts.json +37 -0
- package/schemas/health_probe.json +46 -0
- package/schemas/plugin_status.json +37 -0
- package/scripts/_adapters/__init__.py +166 -0
- package/scripts/_adapters/jira_adapter.py +18 -0
- package/scripts/_adapters/linear_adapter.py +18 -0
- package/scripts/_adapters/miro_adapter.py +18 -0
- package/scripts/_adapters/notion_adapter.py +18 -0
- package/scripts/_agents.py +357 -0
- package/scripts/_brain_ingest/__init__.py +2 -0
- package/scripts/_brain_ingest/session_fact_extractor.py +341 -0
- package/scripts/_brain_port.py +163 -0
- package/scripts/_bus.py +1081 -0
- package/scripts/_bus_catalog_gen.py +93 -0
- package/scripts/_bus_consumers.json +46 -0
- package/scripts/_bus_emit.py +43 -0
- package/scripts/_capability_registry.py +334 -0
- package/scripts/_capability_resolver.py +322 -0
- package/scripts/_domain_store.py +559 -0
- package/scripts/_event_log_reader.py +154 -0
- package/scripts/_event_schema.py +305 -0
- package/scripts/_event_store.py +397 -0
- package/scripts/_heavy_cadence.py +324 -0
- package/scripts/_integration_resolver.py +321 -0
- package/scripts/_logger.py +151 -0
- package/scripts/_loom.py +482 -0
- package/scripts/_paths.py +133 -0
- package/scripts/_python.sh +22 -0
- package/scripts/_run.py +137 -0
- package/scripts/_session.py +502 -0
- package/scripts/_validate_registry.py +1042 -0
- package/scripts/_wicked_testing_probe.py +277 -0
- package/scripts/agentic/analyze_agents.py +391 -0
- package/scripts/agentic/detect_framework.py +420 -0
- package/scripts/agentic/issue_taxonomy.py +357 -0
- package/scripts/agentic/pattern_scorer.py +434 -0
- package/scripts/classify/persist.py +169 -0
- package/scripts/compiler/compile.py +552 -0
- package/scripts/compiler/phase0/VERDICT.md +60 -0
- package/scripts/compiler/phase0/detect.py +292 -0
- package/scripts/compiler/phase0/emit.py +228 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.bindings.json +30 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.lint-output.txt +17 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.stage/.wg/evidence/failing-tests.txt +4 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.stage/.wg/evidence/honest-tests.txt +2 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.stage/fab-fail.build.md +8 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.stage/fab-missing.build.md +8 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.stage/honest.build.md +8 -0
- package/scripts/compiler/phase0/evidence/Enterprise-AISDLC.stage/wg_check_claims.py +174 -0
- package/scripts/compiler/phase0/evidence/command_iq.bindings.json +45 -0
- package/scripts/compiler/phase0/evidence/command_iq.lint-output.txt +17 -0
- package/scripts/compiler/phase0/evidence/command_iq.stage/.projects/evidence-domain/phase-1-clarify/evidence/failing-tests.txt +4 -0
- package/scripts/compiler/phase0/evidence/command_iq.stage/.projects/evidence-domain/phase-1-clarify/evidence/honest-tests.txt +3 -0
- package/scripts/compiler/phase0/evidence/command_iq.stage/fab-fail.build.md +8 -0
- package/scripts/compiler/phase0/evidence/command_iq.stage/fab-missing.build.md +8 -0
- package/scripts/compiler/phase0/evidence/command_iq.stage/honest.build.md +8 -0
- package/scripts/compiler/phase0/evidence/command_iq.stage/wg_check_claims.py +174 -0
- package/scripts/compiler/phase0/evidence/memos.bindings.json +28 -0
- package/scripts/compiler/phase0/evidence/memos.lint-output.txt +17 -0
- package/scripts/compiler/phase0/evidence/memos.stage/.wg/evidence/failing-tests.txt +4 -0
- package/scripts/compiler/phase0/evidence/memos.stage/.wg/evidence/honest-tests.txt +2 -0
- package/scripts/compiler/phase0/evidence/memos.stage/fab-fail.build.md +8 -0
- package/scripts/compiler/phase0/evidence/memos.stage/fab-missing.build.md +8 -0
- package/scripts/compiler/phase0/evidence/memos.stage/honest.build.md +8 -0
- package/scripts/compiler/phase0/evidence/memos.stage/wg_check_claims.py +174 -0
- package/scripts/compiler/phase0/evidence/verdict.json +104 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.bindings.json +29 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.lint-output.txt +17 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.stage/coverage/failing-tests.txt +4 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.stage/coverage/honest-tests.txt +3 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.stage/fab-fail.build.md +8 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.stage/fab-missing.build.md +8 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.stage/honest.build.md +8 -0
- package/scripts/compiler/phase0/evidence/wicked-bus.stage/wg_check_claims.py +174 -0
- package/scripts/compiler/phase0/evidence/wire-vault-transcript.txt +60 -0
- package/scripts/compiler/phase0/run_probe.py +234 -0
- package/scripts/compiler/phase0/wire_vault.py +310 -0
- package/scripts/crew/__init__.py +0 -0
- package/scripts/crew/_task_audit_writer.py +243 -0
- package/scripts/crew/_task_reader.py +389 -0
- package/scripts/crew/archetypes_v11.py +348 -0
- package/scripts/crew/detectors/__init__.py +12 -0
- package/scripts/crew/flow_compiler.py +121 -0
- package/scripts/crew/phase_manager.py +703 -0
- package/scripts/crew/scope_delta.py +264 -0
- package/scripts/crew/specialist_resolver.py +218 -0
- package/scripts/crew/stack_registry.py +189 -0
- package/scripts/data/data_profiler.py +271 -0
- package/scripts/data/ontology_recommender.py +231 -0
- package/scripts/data/schema_validator.py +267 -0
- package/scripts/delivery/drift.py +739 -0
- package/scripts/delivery/telemetry.py +614 -0
- package/scripts/engineering/patch/codegraph_db.py +125 -0
- package/scripts/engineering/patch/generators/__init__.py +56 -0
- package/scripts/engineering/patch/generators/base.py +373 -0
- package/scripts/engineering/patch/generators/csharp_generator.py +494 -0
- package/scripts/engineering/patch/generators/go_generator.py +430 -0
- package/scripts/engineering/patch/generators/java_generator.py +928 -0
- package/scripts/engineering/patch/generators/jsp_generator.py +454 -0
- package/scripts/engineering/patch/generators/kotlin_generator.py +561 -0
- package/scripts/engineering/patch/generators/perl_generator.py +510 -0
- package/scripts/engineering/patch/generators/php_generator.py +644 -0
- package/scripts/engineering/patch/generators/propagation_engine.py +929 -0
- package/scripts/engineering/patch/generators/python_generator.py +487 -0
- package/scripts/engineering/patch/generators/ruby_generator.py +463 -0
- package/scripts/engineering/patch/generators/rust_generator.py +400 -0
- package/scripts/engineering/patch/generators/sql_generator.py +594 -0
- package/scripts/engineering/patch/generators/typescript_generator.py +439 -0
- package/scripts/engineering/patch/patch.py +800 -0
- package/scripts/engineering/patch/safety.py +429 -0
- package/scripts/jam/__init__.py +0 -0
- package/scripts/jam/_bus_consumers.py +271 -0
- package/scripts/jam/agentic_cli_registry.py +703 -0
- package/scripts/jam/consensus.py +737 -0
- package/scripts/jam/detect_clis.py +409 -0
- package/scripts/jam/jam.py +283 -0
- package/scripts/jam/save_transcript.py +171 -0
- package/scripts/loom/__init__.py +22 -0
- package/scripts/loom/cli.py +170 -0
- package/scripts/loom/compose.py +180 -0
- package/scripts/loom/gate.py +120 -0
- package/scripts/loom/manifest.py +140 -0
- package/scripts/loom/resolve.py +59 -0
- package/scripts/persona/__init__.py +0 -0
- package/scripts/persona/registry.py +688 -0
- package/scripts/platform/guard_pipeline.py +1214 -0
- package/scripts/platform/guard_profiles.py +216 -0
- package/scripts/platform/observability/assert_contracts.py +434 -0
- package/scripts/platform/observability/health_probe.py +915 -0
- package/scripts/platform/observability/ops_log_viewer.py +209 -0
- package/scripts/platform/prereq_doctor.py +567 -0
- package/scripts/qe/conditions_manifest.py +260 -0
- package/scripts/qe/content_sanitizer.py +160 -0
- package/scripts/qe/coverage_tracker.py +535 -0
- package/scripts/qe/discover_scenarios.py +243 -0
- package/scripts/qe/evidence_tracker.py +232 -0
- package/scripts/qe/prove.py +196 -0
- package/scripts/qe/registry_lookup.py +80 -0
- package/scripts/qe/registry_store.py +176 -0
- package/scripts/qe/semantic_review.py +1005 -0
- package/scripts/qe/vault_gate.py +382 -0
- package/scripts/qe/verdict_audit.py +175 -0
- package/scripts/qe/verdict_schema.py +335 -0
- package/scripts/reset.py +220 -0
- package/scripts/resolve_path.py +22 -0
- package/scripts/sentinel/invariants.py +402 -0
- package/scripts/sentinel/pre_push.py +73 -0
- package/scripts/setup/__init__.py +1 -0
- package/scripts/setup/detect_state.py +114 -0
- package/scripts/setup/migrate_legacy.py +67 -0
- package/scripts/setup/migrate_v6_projects.py +232 -0
- package/scripts/setup/onboarding.py +114 -0
- package/scripts/smaht/_bus_consumers.py +98 -0
- package/scripts/smaht/adapters/__init__.py +83 -0
- package/scripts/smaht/adapters/brain_adapter.py +254 -0
- package/scripts/smaht/adapters/context7_adapter.py +438 -0
- package/scripts/smaht/adapters/delegation_adapter.py +104 -0
- package/scripts/smaht/adapters/domain_adapter.py +206 -0
- package/scripts/smaht/adapters/events_adapter.py +231 -0
- package/scripts/smaht/adapters/tools_adapter.py +49 -0
- package/scripts/smaht/cheatsheet_store.py +236 -0
- package/scripts/smaht/context_package.py +386 -0
- package/scripts/smaht/knowledge_graph.py +395 -0
- package/scripts/smaht/propose_skills.py +856 -0
- package/scripts/smaht/test_cheatsheet_store.py +428 -0
- package/scripts/statusline.py +151 -0
- package/scripts/where_am_i.py +236 -0
- package/skills/agentic/agentic-patterns/SKILL.md +91 -0
- package/skills/agentic/agentic-patterns/refs/anti-patterns-design.md +283 -0
- package/skills/agentic/agentic-patterns/refs/anti-patterns-operational.md +216 -0
- package/skills/agentic/agentic-patterns/refs/pattern-catalog.md +329 -0
- package/skills/agentic/context-engineering/SKILL.md +142 -0
- package/skills/agentic/context-engineering/refs/caching-and-optimization.md +251 -0
- package/skills/agentic/context-engineering/refs/compression-techniques.md +171 -0
- package/skills/agentic/context-engineering/refs/cost-calculation-budget.md +250 -0
- package/skills/agentic/context-engineering/refs/cost-optimization-reporting.md +300 -0
- package/skills/agentic/context-engineering/refs/selective-loading.md +179 -0
- package/skills/agentic/frameworks/SKILL.md +191 -0
- package/skills/agentic/frameworks/refs/framework-profiles-1.md +209 -0
- package/skills/agentic/frameworks/refs/framework-profiles-2.md +214 -0
- package/skills/agentic/frameworks/refs/migration-patterns-paths.md +267 -0
- package/skills/agentic/frameworks/refs/migration-patterns-testing.md +208 -0
- package/skills/agentic/refs/audit.md +134 -0
- package/skills/agentic/refs/design.md +137 -0
- package/skills/agentic/refs/frameworks.md +102 -0
- package/skills/agentic/refs/review.md +160 -0
- package/skills/agentic/review-methodology/SKILL.md +186 -0
- package/skills/agentic/review-methodology/refs/deliverable-templates.md +246 -0
- package/skills/agentic/review-methodology/refs/issue-taxonomy-quality-testing.md +277 -0
- package/skills/agentic/review-methodology/refs/issue-taxonomy-reliability-safety.md +253 -0
- package/skills/agentic/trust-and-safety/SKILL.md +177 -0
- package/skills/agentic/trust-and-safety/refs/guardrails-actions.md +246 -0
- package/skills/agentic/trust-and-safety/refs/guardrails-input-output.md +238 -0
- package/skills/agentic/trust-and-safety/refs/guardrails-resources.md +209 -0
- package/skills/agentic/trust-and-safety/refs/safety-checklist-advanced.md +209 -0
- package/skills/agentic/trust-and-safety/refs/safety-checklist-core.md +215 -0
- package/skills/archetype/SKILL.md +104 -0
- package/skills/archetype/refs/build.md +142 -0
- package/skills/archetype/refs/decide.md +117 -0
- package/skills/archetype/refs/explore.md +66 -0
- package/skills/archetype/refs/incident.md +149 -0
- package/skills/archetype/refs/migrate.md +170 -0
- package/skills/archetype/refs/modernize.md +187 -0
- package/skills/archetype/refs/review.md +145 -0
- package/skills/archetype/refs/ship.md +117 -0
- package/skills/archetype/refs/specify.md +108 -0
- package/skills/archetype/refs/triage.md +62 -0
- package/skills/classify/SKILL.md +157 -0
- package/skills/data/analysis/SKILL.md +125 -0
- package/skills/data/analysis/refs/templates.md +170 -0
- package/skills/data/data/SKILL.md +118 -0
- package/skills/data/data/refs/examples.md +235 -0
- package/skills/data/ml/SKILL.md +125 -0
- package/skills/data/ml/refs/templates.md +172 -0
- package/skills/data/pipeline/SKILL.md +136 -0
- package/skills/data/pipeline/refs/templates.md +175 -0
- package/skills/data/refs/analyze.md +123 -0
- package/skills/data/refs/data.md +95 -0
- package/skills/data/refs/ml.md +118 -0
- package/skills/data/refs/pipeline.md +92 -0
- package/skills/deliberate/SKILL.md +125 -0
- package/skills/deliberate/refs/architecture-lens.md +37 -0
- package/skills/deliberate/refs/assumptions-lens.md +43 -0
- package/skills/deliberate/refs/code-lens.md +38 -0
- package/skills/deliberate/refs/content-lens.md +37 -0
- package/skills/deliberate/refs/data-lens.md +43 -0
- package/skills/deliberate/refs/design-lens.md +37 -0
- package/skills/deliberate/refs/opportunity-patterns.md +107 -0
- package/skills/deliberate/refs/ops-lens.md +43 -0
- package/skills/deliberate/refs/product-lens.md +46 -0
- package/skills/deliberate/refs/rethink-framework.md +77 -0
- package/skills/deliberate/refs/security-lens.md +47 -0
- package/skills/deliberate/refs/testing-lens.md +45 -0
- package/skills/deliberate/refs/timing-lens.md +42 -0
- package/skills/engineering/architecture/SKILL.md +177 -0
- package/skills/engineering/architecture/refs/adr-template.md +268 -0
- package/skills/engineering/architecture/refs/architecture-template-deployment.md +176 -0
- package/skills/engineering/architecture/refs/architecture-template-design.md +300 -0
- package/skills/engineering/architecture/refs/examples-ecommerce-analytics.md +299 -0
- package/skills/engineering/architecture/refs/examples-saas-trading.md +291 -0
- package/skills/engineering/architecture/refs/patterns-advanced.md +238 -0
- package/skills/engineering/architecture/refs/patterns-structural.md +303 -0
- package/skills/engineering/backend/SKILL.md +102 -0
- package/skills/engineering/backend/refs/checklists.md +146 -0
- package/skills/engineering/backend/refs/patterns.md +181 -0
- package/skills/engineering/debugging/SKILL.md +99 -0
- package/skills/engineering/debugging/refs/patterns.md +248 -0
- package/skills/engineering/debugging/refs/process.md +203 -0
- package/skills/engineering/docs/SKILL.md +97 -0
- package/skills/engineering/engineering/SKILL.md +88 -0
- package/skills/engineering/engineering/refs/checklists.md +91 -0
- package/skills/engineering/engineering/refs/templates.md +71 -0
- package/skills/engineering/frontend/SKILL.md +92 -0
- package/skills/engineering/frontend/refs/checklists.md +96 -0
- package/skills/engineering/frontend/refs/patterns.md +167 -0
- package/skills/engineering/integration/SKILL.md +183 -0
- package/skills/engineering/integration/refs/error-handling-best-practices.md +139 -0
- package/skills/engineering/integration/refs/error-handling-error-classes-typescript.md +212 -0
- package/skills/engineering/integration/refs/error-handling-error-response-format.md +301 -0
- package/skills/engineering/integration/refs/error-handling-retry-strategies.md +190 -0
- package/skills/engineering/integration/refs/event-schemas-best-practices.md +225 -0
- package/skills/engineering/integration/refs/event-schemas-event-naming-conventions.md +303 -0
- package/skills/engineering/integration/refs/event-schemas-event-structure.md +288 -0
- package/skills/engineering/integration/refs/graphql-best-practices.md +138 -0
- package/skills/engineering/integration/refs/graphql-error-handling.md +198 -0
- package/skills/engineering/integration/refs/graphql-graphql-basics.md +197 -0
- package/skills/engineering/integration/refs/graphql-query-examples.md +226 -0
- package/skills/engineering/integration/refs/graphql-schema-design-patterns.md +280 -0
- package/skills/engineering/integration/refs/grpc-grpc-overview.md +246 -0
- package/skills/engineering/integration/refs/grpc-implementation-examples.md +269 -0
- package/skills/engineering/integration/refs/grpc-metadata-headers.md +304 -0
- package/skills/engineering/integration/refs/grpc-testing.md +49 -0
- package/skills/engineering/integration/refs/openapi-template.yaml +682 -0
- package/skills/engineering/integration/refs/resilience-best-practices.md +109 -0
- package/skills/engineering/integration/refs/resilience-circuit-breaker-pattern.md +302 -0
- package/skills/engineering/integration/refs/resilience-rate-limiting.md +245 -0
- package/skills/engineering/integration/refs/resilience-timeout-pattern.md +212 -0
- package/skills/engineering/integration/refs/rest-api-fundamentals.md +299 -0
- package/skills/engineering/integration/refs/rest-api-responses-security.md +302 -0
- package/skills/engineering/integration/refs/versioning-breaking-changes.md +237 -0
- package/skills/engineering/integration/refs/versioning-migration-strategies.md +257 -0
- package/skills/engineering/integration/refs/versioning-versioning-strategies.md +296 -0
- package/skills/engineering/large-scale-migration/SKILL.md +65 -0
- package/skills/engineering/patch/SKILL.md +184 -0
- package/skills/engineering/refs/arch.md +126 -0
- package/skills/engineering/refs/debug.md +142 -0
- package/skills/engineering/refs/docs.md +190 -0
- package/skills/engineering/refs/plan.md +109 -0
- package/skills/engineering/refs/review.md +138 -0
- package/skills/engineering/system-design/SKILL.md +154 -0
- package/skills/engineering/system-design/refs/anti-patterns-big-ball-of-mud.md +254 -0
- package/skills/engineering/system-design/refs/anti-patterns-circular-dependencies.md +241 -0
- package/skills/engineering/system-design/refs/anti-patterns-feature-envy.md +168 -0
- package/skills/engineering/system-design/refs/anti-patterns-god-object.md +247 -0
- package/skills/engineering/system-design/refs/component-template-lifecycle.md +210 -0
- package/skills/engineering/system-design/refs/component-template-maintenance.md +219 -0
- package/skills/engineering/system-design/refs/component-template-structure.md +276 -0
- package/skills/engineering/system-design/refs/dependencies-best-practices.md +260 -0
- package/skills/engineering/system-design/refs/dependencies-dependency-principles.md +295 -0
- package/skills/engineering/system-design/refs/dependencies-dependency-tracking.md +261 -0
- package/skills/engineering/system-design/refs/interface-template-lifecycle.md +211 -0
- package/skills/engineering/system-design/refs/interface-template-maintenance.md +212 -0
- package/skills/engineering/system-design/refs/interface-template-structure.md +269 -0
- package/skills/engineering/system-design/refs/patterns-dependency-injection.md +151 -0
- package/skills/engineering/system-design/refs/patterns-facade-pattern.md +257 -0
- package/skills/engineering/system-design/refs/patterns-layered-pattern.md +204 -0
- package/skills/engineering/system-design/refs/patterns-plugin-architecture.md +229 -0
- package/skills/engineering/unit-test-quality/SKILL.md +194 -0
- package/skills/ground/SKILL.md +130 -0
- package/skills/integration-discovery/SKILL.md +168 -0
- package/skills/integration-discovery/refs/capabilities.md +282 -0
- package/skills/integration-discovery/refs/cli-detection.md +295 -0
- package/skills/integration-discovery/refs/discovery-sources.md +233 -0
- package/skills/integration-discovery/refs/task-patterns.md +206 -0
- package/skills/jam/SKILL.md +45 -0
- package/skills/jam/refs/facilitation-patterns.md +125 -0
- package/skills/jam/refs/quick.md +64 -0
- package/skills/jam/refs/synthesis-patterns.md +114 -0
- package/skills/multi-model/SKILL.md +168 -0
- package/skills/multi-model/refs/aichat.md +119 -0
- package/skills/multi-model/refs/aider.md +100 -0
- package/skills/multi-model/refs/auditability.md +238 -0
- package/skills/multi-model/refs/codex.md +169 -0
- package/skills/multi-model/refs/context.md +306 -0
- package/skills/multi-model/refs/copilot.md +161 -0
- package/skills/multi-model/refs/examples.md +224 -0
- package/skills/multi-model/refs/gemini.md +185 -0
- package/skills/multi-model/refs/goose.md +112 -0
- package/skills/multi-model/refs/llm.md +124 -0
- package/skills/multi-model/refs/opencode.md +196 -0
- package/skills/multi-model/refs/orchestration.md +188 -0
- package/skills/multi-model/refs/pi.md +208 -0
- package/skills/persona/SKILL.md +144 -0
- package/skills/persona/refs/define.md +133 -0
- package/skills/platform/actions/refs/actions.md +114 -0
- package/skills/platform/audit/SKILL.md +174 -0
- package/skills/platform/audit/refs/audit.md +145 -0
- package/skills/platform/audit/refs/checklists-evidence-operations.md +144 -0
- package/skills/platform/audit/refs/checklists-gdpr-pci-evidence.md +213 -0
- package/skills/platform/audit/refs/checklists-soc2-hipaa.md +120 -0
- package/skills/platform/audit/refs/frameworks-gdpr-pci.md +225 -0
- package/skills/platform/audit/refs/frameworks-soc2-hipaa.md +228 -0
- package/skills/platform/compliance/SKILL.md +169 -0
- package/skills/platform/compliance/refs/checklists.md +303 -0
- package/skills/platform/compliance/refs/compliance.md +117 -0
- package/skills/platform/compliance/refs/frameworks.md +282 -0
- package/skills/platform/errors/SKILL.md +183 -0
- package/skills/platform/errors/refs/patterns.md +271 -0
- package/skills/platform/errors/refs/severity.md +264 -0
- package/skills/platform/gate-benchmark-rebaseline/SKILL.md +108 -0
- package/skills/platform/gh/refs/gh.md +105 -0
- package/skills/platform/gh-cli/SKILL.md +120 -0
- package/skills/platform/gh-cli/refs/automation.md +63 -0
- package/skills/platform/gh-cli/refs/gh-ops.md +103 -0
- package/skills/platform/gh-cli/refs/patterns.md +132 -0
- package/skills/platform/gh-cli/scripts/gh_ops.py +454 -0
- package/skills/platform/github-actions/SKILL.md +159 -0
- package/skills/platform/github-actions/refs/security.md +150 -0
- package/skills/platform/github-actions/refs/templates.md +230 -0
- package/skills/platform/github-actions/refs/troubleshooting.md +174 -0
- package/skills/platform/github-actions/scripts/workflow_gen.py +215 -0
- package/skills/platform/gitlab-ci/SKILL.md +140 -0
- package/skills/platform/gitlab-ci/refs/templates.md +223 -0
- package/skills/platform/gitlab-ci/refs/troubleshooting.md +213 -0
- package/skills/platform/glab-cli/SKILL.md +133 -0
- package/skills/platform/glab-cli/refs/ci-debugging.md +95 -0
- package/skills/platform/glab-cli/refs/glab-ops.md +78 -0
- package/skills/platform/glab-cli/refs/patterns.md +131 -0
- package/skills/platform/glab-cli/scripts/glab_ops.py +313 -0
- package/skills/platform/health/SKILL.md +177 -0
- package/skills/platform/health/refs/health.md +72 -0
- package/skills/platform/health/refs/sources.md +302 -0
- package/skills/platform/incident/refs/incident.md +136 -0
- package/skills/platform/infra/refs/infra.md +104 -0
- package/skills/platform/observability/SKILL.md +128 -0
- package/skills/platform/observability/refs/toolchain-discovery.md +243 -0
- package/skills/platform/prereq-doctor/SKILL.md +57 -0
- package/skills/platform/prereq-doctor/refs/tool-registry.md +58 -0
- package/skills/platform/traces/refs/traces.md +101 -0
- package/skills/product/acceptance-criteria/SKILL.md +193 -0
- package/skills/product/acceptance-criteria/refs/ac-anti-patterns.md +291 -0
- package/skills/product/acceptance-criteria/refs/ac-examples.md +277 -0
- package/skills/product/accessibility/SKILL.md +197 -0
- package/skills/product/accessibility/refs/aria-patterns-basics.md +250 -0
- package/skills/product/accessibility/refs/aria-patterns-dynamic.md +187 -0
- package/skills/product/accessibility/refs/aria-patterns-interactive.md +246 -0
- package/skills/product/accessibility/refs/audit-report-findings.md +248 -0
- package/skills/product/accessibility/refs/audit-report-results.md +276 -0
- package/skills/product/accessibility/refs/common-violations-html-css.md +270 -0
- package/skills/product/accessibility/refs/common-violations-interactive.md +303 -0
- package/skills/product/accessibility/refs/keyboard-testing-basics.md +222 -0
- package/skills/product/accessibility/refs/keyboard-testing-patterns.md +173 -0
- package/skills/product/accessibility/refs/screen-reader-testing-advanced.md +294 -0
- package/skills/product/accessibility/refs/screen-reader-testing-commands.md +255 -0
- package/skills/product/accessibility/refs/wcag-checklist.md +262 -0
- package/skills/product/analyze/SKILL.md +164 -0
- package/skills/product/analyze/refs/algorithms.md +238 -0
- package/skills/product/analyze/refs/sentiment-patterns.md +180 -0
- package/skills/product/imagery/SKILL.md +97 -0
- package/skills/product/imagery/alter/SKILL.md +105 -0
- package/skills/product/imagery/alter/refs/editing-reference.md +146 -0
- package/skills/product/imagery/create/SKILL.md +109 -0
- package/skills/product/imagery/create/refs/prompt-engineering.md +112 -0
- package/skills/product/imagery/create/refs/provider-reference.md +219 -0
- package/skills/product/imagery/review/SKILL.md +101 -0
- package/skills/product/imagery/review/refs/analysis-lenses.md +136 -0
- package/skills/product/imagery/review/refs/quality-gates.md +153 -0
- package/skills/product/imagery/scripts/analyze.sh +23 -0
- package/skills/product/imagery/scripts/edit.sh +14 -0
- package/skills/product/imagery/scripts/generate.sh +13 -0
- package/skills/product/imagery/scripts/provider.py +787 -0
- package/skills/product/listen/SKILL.md +175 -0
- package/skills/product/listen/refs/channels.md +220 -0
- package/skills/product/mockup/SKILL.md +106 -0
- package/skills/product/mockup/refs/templates.md +95 -0
- package/skills/product/refs/a11y.md +109 -0
- package/skills/product/refs/acceptance.md +79 -0
- package/skills/product/refs/align.md +67 -0
- package/skills/product/refs/analyze.md +77 -0
- package/skills/product/refs/elicit.md +67 -0
- package/skills/product/refs/listen.md +58 -0
- package/skills/product/refs/mockup.md +77 -0
- package/skills/product/refs/screenshot.md +59 -0
- package/skills/product/refs/strategy.md +77 -0
- package/skills/product/refs/synthesize.md +54 -0
- package/skills/product/refs/ux-review.md +68 -0
- package/skills/product/refs/ux.md +101 -0
- package/skills/product/requirements-analysis/SKILL.md +136 -0
- package/skills/product/requirements-analysis/refs/requirements-example-auth.md +264 -0
- package/skills/product/requirements-analysis/refs/requirements-example-export-integration.md +88 -0
- package/skills/product/requirements-analysis/refs/requirements-output-format-template.md +247 -0
- package/skills/product/requirements-analysis/refs/user-story-guide.md +296 -0
- package/skills/product/requirements-graph/SKILL.md +155 -0
- package/skills/product/requirements-graph/refs/examples.md +223 -0
- package/skills/product/requirements-graph/refs/schema.md +162 -0
- package/skills/product/requirements-migrate/SKILL.md +90 -0
- package/skills/product/requirements-navigate/SKILL.md +141 -0
- package/skills/product/requirements-navigate/refs/meta-templates.md +141 -0
- package/skills/product/screenshot/SKILL.md +147 -0
- package/skills/product/strategy/SKILL.md +198 -0
- package/skills/product/strategy/refs/frameworks.md +295 -0
- package/skills/product/strategy/refs/templates-competitive-market.md +299 -0
- package/skills/product/strategy/refs/templates-roi-value.md +207 -0
- package/skills/product/synthesize/SKILL.md +116 -0
- package/skills/product/synthesize/refs/journey-mapping.md +212 -0
- package/skills/product/synthesize/refs/prioritization.md +193 -0
- package/skills/product/ux-review/SKILL.md +164 -0
- package/skills/product/visual-direction/SKILL.md +137 -0
- package/skills/product/visual-review/SKILL.md +131 -0
- package/skills/runtime-exec/SKILL.md +138 -0
- package/skills/search/codebase-narrator/SKILL.md +131 -0
- package/skills/search/codebase-narrator/refs/output-template.md +100 -0
- package/skills/smaht/SKILL.md +72 -0
- package/skills/smaht/discovery/SKILL.md +65 -0
- package/skills/smaht/intent/SKILL.md +89 -0
- package/skills/smaht/propose-skills/SKILL.md +142 -0
- package/skills/smaht/refs/state.md +76 -0
- package/skills/swarm/SKILL.md +132 -0
- package/skills/swarm/refs/fan-out.md +104 -0
- package/skills/swarm/refs/independent-verification.md +86 -0
- package/skills/swarm/refs/receipts-and-evidence.md +69 -0
- package/skills/swarm/refs/recon-synthesis.md +87 -0
- package/skills/swarm/refs/ship-discipline.md +90 -0
- package/skills/wickedizer/SKILL.md +147 -0
- package/skills/wickedizer/refs/artifact-types.md +238 -0
- package/skills/wickedizer/refs/complexity.md +278 -0
- package/skills/wickedizer/refs/de-ai-pass.md +140 -0
- package/skills/wickedizer/refs/failure-modes.md +249 -0
- package/skills/wickedizer/refs/patterns.md +282 -0
- package/skills/wickedizer/refs/review.md +221 -0
- package/skills/wickedizer/refs/structure.md +282 -0
- package/skills/wickedizer/refs/voice-profile.md +125 -0
- package/skills/workflow/SKILL.md +132 -0
- package/skills/workflow/refs/archetype-adjustments.md +205 -0
- package/skills/workflow/refs/evidence.md +58 -0
- package/skills/workflow/refs/integration.md +130 -0
- package/skills/workflow/refs/risk-dimension-signals.md +260 -0
- package/skills/workflow/refs/scoring-rubric.md +49 -0
- package/skills/workflow/refs/signal-keywords.md +176 -0
- package/skills/workflow/refs/specialist-routing-rules.md +159 -0
- package/skills/worktrees/SKILL.md +87 -0
- package/skills/worktrees/refs/recipes.md +96 -0
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase_relevance: ["design", "build"]
|
|
3
|
+
archetype_relevance: ["*"]
|
|
4
|
+
---
|
|
5
|
+
# Architectural Patterns: Advanced & Selection Guide
|
|
6
|
+
|
|
7
|
+
Serverless, Clean Architecture, CQRS, Service Mesh, pattern selection guide, and evolution strategy.
|
|
8
|
+
|
|
9
|
+
## Serverless Architecture
|
|
10
|
+
|
|
11
|
+
### Structure
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
┌─────────┐ ┌─────────────┐ ┌──────────┐
|
|
15
|
+
│ Client │─────▶│ API Gateway │─────▶│ Lambda 1 │
|
|
16
|
+
└─────────┘ └─────────────┘ └────┬─────┘
|
|
17
|
+
│
|
|
18
|
+
┌───────────────────┤
|
|
19
|
+
│ │
|
|
20
|
+
┌─────▼─────┐ ┌─────▼─────┐
|
|
21
|
+
│ DynamoDB │ │ S3 │
|
|
22
|
+
└───────────┘ └───────────┘
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### When to Use
|
|
26
|
+
|
|
27
|
+
- Variable, unpredictable load
|
|
28
|
+
- Event-driven workloads
|
|
29
|
+
- Want minimal operations
|
|
30
|
+
- Pay-per-use model preferred
|
|
31
|
+
- Rapid prototyping
|
|
32
|
+
|
|
33
|
+
### Trade-offs
|
|
34
|
+
|
|
35
|
+
**Pros**:
|
|
36
|
+
- Auto-scaling
|
|
37
|
+
- Pay per execution
|
|
38
|
+
- No server management
|
|
39
|
+
- Fast deployment
|
|
40
|
+
- Built-in high availability
|
|
41
|
+
|
|
42
|
+
**Cons**:
|
|
43
|
+
- Cold start latency
|
|
44
|
+
- Vendor lock-in
|
|
45
|
+
- Debugging challenges
|
|
46
|
+
- Execution time limits
|
|
47
|
+
- Stateless constraints
|
|
48
|
+
|
|
49
|
+
## Clean Architecture
|
|
50
|
+
|
|
51
|
+
### Structure
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
┌────────────────────────────────────────┐
|
|
55
|
+
│ Frameworks & Drivers │ (External)
|
|
56
|
+
│ Web, DB, UI, External Interfaces │
|
|
57
|
+
└──────────────┬─────────────────────────┘
|
|
58
|
+
│
|
|
59
|
+
┌──────────────▼─────────────────────────┐
|
|
60
|
+
│ Interface Adapters │ (Adapters)
|
|
61
|
+
│ Controllers, Gateways, Presenters │
|
|
62
|
+
└──────────────┬─────────────────────────┘
|
|
63
|
+
│
|
|
64
|
+
┌──────────────▼─────────────────────────┐
|
|
65
|
+
│ Application Business Rules │ (Use Cases)
|
|
66
|
+
│ Use Cases, Services │
|
|
67
|
+
└──────────────┬─────────────────────────┘
|
|
68
|
+
│
|
|
69
|
+
┌──────────────▼─────────────────────────┐
|
|
70
|
+
│ Enterprise Business Rules │ (Entities)
|
|
71
|
+
│ Domain Entities │
|
|
72
|
+
└────────────────────────────────────────┘
|
|
73
|
+
|
|
74
|
+
Dependencies point inward
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Dependency Rule
|
|
78
|
+
|
|
79
|
+
**Inner layers don't know about outer layers**
|
|
80
|
+
- Entities don't know about use cases
|
|
81
|
+
- Use cases don't know about controllers
|
|
82
|
+
- Controllers know about use cases
|
|
83
|
+
|
|
84
|
+
### When to Use
|
|
85
|
+
|
|
86
|
+
- Long-lived applications
|
|
87
|
+
- Complex business rules
|
|
88
|
+
- Need maximum testability
|
|
89
|
+
- Want framework independence
|
|
90
|
+
|
|
91
|
+
## CQRS (Command Query Responsibility Segregation)
|
|
92
|
+
|
|
93
|
+
### Structure
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
┌──────────┐
|
|
97
|
+
│ Client │
|
|
98
|
+
└─────┬────┘
|
|
99
|
+
│
|
|
100
|
+
┌───────────┴───────────┐
|
|
101
|
+
│ │
|
|
102
|
+
┌────▼─────┐ ┌────▼────┐
|
|
103
|
+
│ Commands │ │ Queries │
|
|
104
|
+
│ (Write) │ │ (Read) │
|
|
105
|
+
└────┬─────┘ └────┬────┘
|
|
106
|
+
│ │
|
|
107
|
+
┌────▼─────┐ ┌────▼────┐
|
|
108
|
+
│ Write DB │ │ Read DB │
|
|
109
|
+
│ (Normal) │───sync───▶│(Denorm) │
|
|
110
|
+
└──────────┘ └─────────┘
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### When to Use
|
|
114
|
+
|
|
115
|
+
- Different read/write patterns
|
|
116
|
+
- High read/write ratio
|
|
117
|
+
- Complex queries needed
|
|
118
|
+
- Performance critical
|
|
119
|
+
- Event sourcing
|
|
120
|
+
|
|
121
|
+
### Trade-offs
|
|
122
|
+
|
|
123
|
+
**Pros**:
|
|
124
|
+
- Optimized reads and writes separately
|
|
125
|
+
- Scalability
|
|
126
|
+
- Clear separation
|
|
127
|
+
- Flexibility in models
|
|
128
|
+
|
|
129
|
+
**Cons**:
|
|
130
|
+
- Eventual consistency
|
|
131
|
+
- More complex
|
|
132
|
+
- Sync overhead
|
|
133
|
+
- Duplicate data
|
|
134
|
+
|
|
135
|
+
## Service Mesh
|
|
136
|
+
|
|
137
|
+
### Structure
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
┌─────────────────────────────────────────┐
|
|
141
|
+
│ Service Mesh Control Plane │
|
|
142
|
+
│ (Istio, Linkerd) │
|
|
143
|
+
└────────────┬────────────────────────────┘
|
|
144
|
+
│ Configuration
|
|
145
|
+
┌────────────┼────────────────────────────┐
|
|
146
|
+
│ │ │
|
|
147
|
+
│ ┌────────▼────────┐ ┌──────────┐ │
|
|
148
|
+
│ │ Service A │ │ Service B│ │
|
|
149
|
+
│ │ ┌──────────┐ │ │┌────────┐│ │
|
|
150
|
+
│ │ │ Business │ │ ││Business││ │
|
|
151
|
+
│ │ │ Logic │ │ ││ Logic ││ │
|
|
152
|
+
│ │ └──────────┘ │ │└────────┘│ │
|
|
153
|
+
│ │ ┌──────────┐ │ │┌────────┐│ │
|
|
154
|
+
│ │ │ Sidecar │◄──┼───┼┤Sidecar ││ │
|
|
155
|
+
│ │ │ Proxy │ │ ││ Proxy ││ │
|
|
156
|
+
│ │ └──────────┘ │ │└────────┘│ │
|
|
157
|
+
│ └─────────────────┘ └──────────┘ │
|
|
158
|
+
└─────────────────────────────────────────┘
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### When to Use
|
|
162
|
+
|
|
163
|
+
- Microservices at scale
|
|
164
|
+
- Need observability
|
|
165
|
+
- Complex routing/security
|
|
166
|
+
- Polyglot services
|
|
167
|
+
|
|
168
|
+
### Provides
|
|
169
|
+
|
|
170
|
+
- Service discovery
|
|
171
|
+
- Load balancing
|
|
172
|
+
- Circuit breaking
|
|
173
|
+
- Encryption (mTLS)
|
|
174
|
+
- Distributed tracing
|
|
175
|
+
- Traffic management
|
|
176
|
+
|
|
177
|
+
## Pattern Selection Guide
|
|
178
|
+
|
|
179
|
+
| Requirement | Recommended Pattern |
|
|
180
|
+
|-------------|-------------------|
|
|
181
|
+
| Simple CRUD app | Layered |
|
|
182
|
+
| Enterprise monolith | Clean/Hexagonal |
|
|
183
|
+
| Multiple teams | Microservices |
|
|
184
|
+
| Async workflows | Event-Driven |
|
|
185
|
+
| Minimal ops | Serverless |
|
|
186
|
+
| High read/write split | CQRS |
|
|
187
|
+
| Polyglot services | Microservices + Service Mesh |
|
|
188
|
+
| Domain complexity | Domain-Driven Design + Hexagonal |
|
|
189
|
+
| Variable load | Serverless or Event-Driven |
|
|
190
|
+
| Strict consistency | Layered or Monolithic |
|
|
191
|
+
|
|
192
|
+
## Anti-Patterns to Avoid
|
|
193
|
+
|
|
194
|
+
### Big Ball of Mud
|
|
195
|
+
Everything coupled, no clear structure
|
|
196
|
+
**Fix**: Introduce layers or hexagonal
|
|
197
|
+
|
|
198
|
+
### Golden Hammer
|
|
199
|
+
Using one pattern for everything
|
|
200
|
+
**Fix**: Match pattern to problem
|
|
201
|
+
|
|
202
|
+
### Analysis Paralysis
|
|
203
|
+
Over-architecting before understanding
|
|
204
|
+
**Fix**: Start simple, evolve
|
|
205
|
+
|
|
206
|
+
### Distributed Monolith
|
|
207
|
+
Microservices that must deploy together
|
|
208
|
+
**Fix**: Better boundaries or merge services
|
|
209
|
+
|
|
210
|
+
### Premature Optimization
|
|
211
|
+
Choosing complex patterns too early
|
|
212
|
+
**Fix**: YAGNI - start simple
|
|
213
|
+
|
|
214
|
+
## Combining Patterns
|
|
215
|
+
|
|
216
|
+
Patterns often work together:
|
|
217
|
+
|
|
218
|
+
- **Microservices + Event-Driven**: Services communicate via events
|
|
219
|
+
- **Hexagonal + DDD**: Isolated domain logic
|
|
220
|
+
- **CQRS + Event Sourcing**: Events as source of truth
|
|
221
|
+
- **Layered + Clean**: Clean architecture within layers
|
|
222
|
+
- **Microservices + Service Mesh**: Manage service complexity
|
|
223
|
+
|
|
224
|
+
## Evolution Strategy
|
|
225
|
+
|
|
226
|
+
```
|
|
227
|
+
Phase 1: Modular Monolith (Layered/Hexagonal)
|
|
228
|
+
↓
|
|
229
|
+
Phase 2: Extract High-Change Services
|
|
230
|
+
↓
|
|
231
|
+
Phase 3: Microservices for Core
|
|
232
|
+
↓
|
|
233
|
+
Phase 4: Event-Driven for Integration
|
|
234
|
+
↓
|
|
235
|
+
Phase 5: CQRS for Performance
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
Start simple, evolve based on real pain points.
|
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase_relevance: ["design", "build"]
|
|
3
|
+
archetype_relevance: ["*"]
|
|
4
|
+
---
|
|
5
|
+
# Architectural Patterns: Structural
|
|
6
|
+
|
|
7
|
+
Detailed guide to structural architectural patterns with trade-offs and when to use them.
|
|
8
|
+
|
|
9
|
+
## Layered Architecture
|
|
10
|
+
|
|
11
|
+
### Structure
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
┌─────────────────────────┐
|
|
15
|
+
│ Presentation Layer │ UI, API Controllers
|
|
16
|
+
├─────────────────────────┤
|
|
17
|
+
│ Application Layer │ Use Cases, Business Logic
|
|
18
|
+
├─────────────────────────┤
|
|
19
|
+
│ Domain Layer │ Business Rules, Entities
|
|
20
|
+
├─────────────────────────┤
|
|
21
|
+
│ Infrastructure Layer │ Database, External Services
|
|
22
|
+
└─────────────────────────┘
|
|
23
|
+
|
|
24
|
+
Dependencies flow downward only
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### When to Use
|
|
28
|
+
|
|
29
|
+
- Traditional enterprise applications
|
|
30
|
+
- Clear separation of concerns needed
|
|
31
|
+
- Team familiar with MVC patterns
|
|
32
|
+
- Moderate complexity systems
|
|
33
|
+
|
|
34
|
+
### Trade-offs
|
|
35
|
+
|
|
36
|
+
**Pros**:
|
|
37
|
+
- Easy to understand and organize
|
|
38
|
+
- Clear separation of concerns
|
|
39
|
+
- Well-known pattern
|
|
40
|
+
- Good for teams new to architecture
|
|
41
|
+
|
|
42
|
+
**Cons**:
|
|
43
|
+
- Can become rigid
|
|
44
|
+
- May lead to anemic domain models
|
|
45
|
+
- Cross-cutting concerns difficult
|
|
46
|
+
- Can create unnecessary layers
|
|
47
|
+
|
|
48
|
+
### Example
|
|
49
|
+
|
|
50
|
+
```typescript
|
|
51
|
+
// Presentation Layer
|
|
52
|
+
class UserController {
|
|
53
|
+
constructor(private userService: UserService) {}
|
|
54
|
+
|
|
55
|
+
async createUser(req: Request): Promise<Response> {
|
|
56
|
+
return await this.userService.createUser(req.body);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Application Layer
|
|
61
|
+
class UserService {
|
|
62
|
+
constructor(private userRepo: UserRepository) {}
|
|
63
|
+
|
|
64
|
+
async createUser(data: CreateUserDTO): Promise<User> {
|
|
65
|
+
const user = new User(data);
|
|
66
|
+
return await this.userRepo.save(user);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// Domain Layer
|
|
71
|
+
class User {
|
|
72
|
+
constructor(
|
|
73
|
+
public email: string,
|
|
74
|
+
public name: string
|
|
75
|
+
) {
|
|
76
|
+
this.validate();
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
private validate() {
|
|
80
|
+
if (!this.email.includes('@')) {
|
|
81
|
+
throw new Error('Invalid email');
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// Infrastructure Layer
|
|
87
|
+
class PostgresUserRepository implements UserRepository {
|
|
88
|
+
async save(user: User): Promise<User> {
|
|
89
|
+
// Database logic
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Microservices Architecture
|
|
95
|
+
|
|
96
|
+
### Structure
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
┌─────────────┐
|
|
100
|
+
│ API Gateway │
|
|
101
|
+
└──────┬──────┘
|
|
102
|
+
│
|
|
103
|
+
┌──────────────────┼──────────────────┐
|
|
104
|
+
│ │ │
|
|
105
|
+
┌─────▼─────┐ ┌─────▼─────┐ ┌─────▼─────┐
|
|
106
|
+
│ User │ │ Order │ │ Payment │
|
|
107
|
+
│ Service │ │ Service │ │ Service │
|
|
108
|
+
└─────┬─────┘ └─────┬─────┘ └─────┬─────┘
|
|
109
|
+
│ │ │
|
|
110
|
+
┌─────▼─────┐ ┌─────▼─────┐ ┌─────▼─────┐
|
|
111
|
+
│ User DB │ │ Order DB │ │ Payment DB│
|
|
112
|
+
└───────────┘ └───────────┘ └───────────┘
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### When to Use
|
|
116
|
+
|
|
117
|
+
- Large, complex systems
|
|
118
|
+
- Multiple teams working independently
|
|
119
|
+
- Different scaling needs per component
|
|
120
|
+
- Polyglot technology requirements
|
|
121
|
+
|
|
122
|
+
### Trade-offs
|
|
123
|
+
|
|
124
|
+
**Pros**:
|
|
125
|
+
- Independent deployment
|
|
126
|
+
- Technology flexibility
|
|
127
|
+
- Isolated failures
|
|
128
|
+
- Team autonomy
|
|
129
|
+
- Scalability per service
|
|
130
|
+
|
|
131
|
+
**Cons**:
|
|
132
|
+
- Operational complexity
|
|
133
|
+
- Distributed system challenges
|
|
134
|
+
- Network latency
|
|
135
|
+
- Testing complexity
|
|
136
|
+
- Data consistency issues
|
|
137
|
+
|
|
138
|
+
### Key Principles
|
|
139
|
+
|
|
140
|
+
1. **Single Responsibility**: Each service does one thing well
|
|
141
|
+
2. **Autonomous**: Independently deployable
|
|
142
|
+
3. **API-First**: Well-defined contracts
|
|
143
|
+
4. **Decentralized Data**: Own your data
|
|
144
|
+
5. **Fault Tolerant**: Handle failures gracefully
|
|
145
|
+
|
|
146
|
+
## Event-Driven Architecture
|
|
147
|
+
|
|
148
|
+
### Structure
|
|
149
|
+
|
|
150
|
+
```
|
|
151
|
+
┌──────────┐ ┌──────────────┐ ┌──────────┐
|
|
152
|
+
│ Producer │─────▶│ Message Bus │─────▶│ Consumer │
|
|
153
|
+
│ Service │ │ (Kafka/SQS) │ │ Service │
|
|
154
|
+
└──────────┘ └──────────────┘ └──────────┘
|
|
155
|
+
│
|
|
156
|
+
├─────────────▶┌──────────┐
|
|
157
|
+
│ │ Consumer │
|
|
158
|
+
│ │ Service │
|
|
159
|
+
│ └──────────┘
|
|
160
|
+
│
|
|
161
|
+
└─────────────▶┌──────────┐
|
|
162
|
+
│ Consumer │
|
|
163
|
+
│ Service │
|
|
164
|
+
└──────────┘
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### When to Use
|
|
168
|
+
|
|
169
|
+
- Asynchronous workflows
|
|
170
|
+
- Need for loose coupling
|
|
171
|
+
- High scalability requirements
|
|
172
|
+
- Complex event processing
|
|
173
|
+
- Real-time data streaming
|
|
174
|
+
|
|
175
|
+
### Trade-offs
|
|
176
|
+
|
|
177
|
+
**Pros**:
|
|
178
|
+
- Loose coupling
|
|
179
|
+
- High scalability
|
|
180
|
+
- Temporal decoupling
|
|
181
|
+
- Easy to add consumers
|
|
182
|
+
- Natural audit log
|
|
183
|
+
|
|
184
|
+
**Cons**:
|
|
185
|
+
- Eventual consistency
|
|
186
|
+
- Debugging complexity
|
|
187
|
+
- Message ordering challenges
|
|
188
|
+
- Duplicate processing risk
|
|
189
|
+
- Monitoring complexity
|
|
190
|
+
|
|
191
|
+
### Event Types
|
|
192
|
+
|
|
193
|
+
**Domain Events**: Business occurrences
|
|
194
|
+
```json
|
|
195
|
+
{
|
|
196
|
+
"eventType": "OrderPlaced",
|
|
197
|
+
"orderId": "123",
|
|
198
|
+
"customerId": "456",
|
|
199
|
+
"timestamp": "2025-01-24T10:00:00Z",
|
|
200
|
+
"items": [...]
|
|
201
|
+
}
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
**Integration Events**: Cross-service communication
|
|
205
|
+
**Command Events**: Request for action
|
|
206
|
+
|
|
207
|
+
### Patterns
|
|
208
|
+
**Pub/Sub**: One-to-many broadcasting · **Event Sourcing**: Events as source of truth · **CQRS**: Separate read/write models
|
|
209
|
+
|
|
210
|
+
## Hexagonal Architecture (Ports & Adapters)
|
|
211
|
+
|
|
212
|
+
### Structure
|
|
213
|
+
|
|
214
|
+
```
|
|
215
|
+
┌─────────────────┐
|
|
216
|
+
│ UI Adapter │
|
|
217
|
+
└────────┬────────┘
|
|
218
|
+
│
|
|
219
|
+
┌──────────────▼──────────────┐
|
|
220
|
+
│ Port (API) │
|
|
221
|
+
├─────────────────────────────┤
|
|
222
|
+
│ │
|
|
223
|
+
│ Business Logic Core │
|
|
224
|
+
│ (Domain Model) │
|
|
225
|
+
│ │
|
|
226
|
+
├─────────────────────────────┤
|
|
227
|
+
│ Port (Repository) │
|
|
228
|
+
└──────────────┬──────────────┘
|
|
229
|
+
│
|
|
230
|
+
┌──────────────────────┼──────────────────────┐
|
|
231
|
+
│ │ │
|
|
232
|
+
┌─────▼─────┐ ┌─────▼─────┐ ┌─────▼─────┐
|
|
233
|
+
│ Postgres │ │ Redis │ │ MongoDB │
|
|
234
|
+
│ Adapter │ │ Adapter │ │ Adapter │
|
|
235
|
+
└───────────┘ └───────────┘ └───────────┘
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
### When to Use
|
|
239
|
+
|
|
240
|
+
- Need to isolate business logic
|
|
241
|
+
- Frequent technology changes
|
|
242
|
+
- Testing is critical
|
|
243
|
+
- Multiple interfaces (API, CLI, Web)
|
|
244
|
+
|
|
245
|
+
### Trade-offs
|
|
246
|
+
|
|
247
|
+
**Pros**:
|
|
248
|
+
- Business logic isolated
|
|
249
|
+
- Technology agnostic core
|
|
250
|
+
- Highly testable
|
|
251
|
+
- Flexible adapters
|
|
252
|
+
|
|
253
|
+
**Cons**:
|
|
254
|
+
- More abstraction layers
|
|
255
|
+
- Initial complexity
|
|
256
|
+
- May be overkill for simple apps
|
|
257
|
+
|
|
258
|
+
### Implementation
|
|
259
|
+
|
|
260
|
+
```typescript
|
|
261
|
+
// Port (Interface)
|
|
262
|
+
interface UserRepository {
|
|
263
|
+
save(user: User): Promise<void>;
|
|
264
|
+
findById(id: string): Promise<User>;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
// Core Domain Logic
|
|
268
|
+
class UserService {
|
|
269
|
+
constructor(private repo: UserRepository) {}
|
|
270
|
+
|
|
271
|
+
async registerUser(email: string, password: string): Promise<User> {
|
|
272
|
+
// Pure business logic, no infrastructure concerns
|
|
273
|
+
const user = User.create(email, password);
|
|
274
|
+
await this.repo.save(user);
|
|
275
|
+
return user;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
// Adapter (Implementation)
|
|
280
|
+
class PostgresUserRepository implements UserRepository {
|
|
281
|
+
async save(user: User): Promise<void> {
|
|
282
|
+
await db.query('INSERT INTO users ...');
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
async findById(id: string): Promise<User> {
|
|
286
|
+
const row = await db.query('SELECT * FROM users WHERE id = ?', [id]);
|
|
287
|
+
return User.fromRow(row);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
// Another Adapter
|
|
292
|
+
class InMemoryUserRepository implements UserRepository {
|
|
293
|
+
private users: Map<string, User> = new Map();
|
|
294
|
+
|
|
295
|
+
async save(user: User): Promise<void> {
|
|
296
|
+
this.users.set(user.id, user);
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
async findById(id: string): Promise<User> {
|
|
300
|
+
return this.users.get(id);
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
```
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: backend
|
|
3
|
+
description: |
|
|
4
|
+
Backend engineering specialist for APIs, databases, server-side patterns,
|
|
5
|
+
data modeling, scalability, and integrations.
|
|
6
|
+
|
|
7
|
+
Use when: "design an API", "database schema", "how to handle auth",
|
|
8
|
+
"backend performance", "REST endpoint", "query optimization",
|
|
9
|
+
"server-side architecture"
|
|
10
|
+
portability: portable
|
|
11
|
+
phase_relevance: ["design", "build"]
|
|
12
|
+
archetype_relevance: ["*"]
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Backend Skill
|
|
16
|
+
|
|
17
|
+
Specialized backend engineering guidance for APIs, databases, and server-side systems.
|
|
18
|
+
|
|
19
|
+
## When to Use
|
|
20
|
+
|
|
21
|
+
- Designing APIs (REST, GraphQL)
|
|
22
|
+
- Database schema or query questions
|
|
23
|
+
- Server-side architecture
|
|
24
|
+
- Data modeling
|
|
25
|
+
- Authentication and authorization
|
|
26
|
+
- Scalability and performance
|
|
27
|
+
- User says "backend", "API", "database", "server"
|
|
28
|
+
|
|
29
|
+
## Key Focus Areas
|
|
30
|
+
|
|
31
|
+
### API Design
|
|
32
|
+
- RESTful conventions (resources, methods, status codes)
|
|
33
|
+
- GraphQL schema design
|
|
34
|
+
- API versioning strategies
|
|
35
|
+
- Request/response validation
|
|
36
|
+
- Error handling and messaging
|
|
37
|
+
- Pagination and filtering
|
|
38
|
+
- Rate limiting
|
|
39
|
+
|
|
40
|
+
### Database Patterns
|
|
41
|
+
- Schema design and normalization
|
|
42
|
+
- Indexing strategies
|
|
43
|
+
- Query optimization
|
|
44
|
+
- Transaction management
|
|
45
|
+
- Connection pooling
|
|
46
|
+
- Migration best practices
|
|
47
|
+
- N+1 query prevention
|
|
48
|
+
|
|
49
|
+
### Data Modeling
|
|
50
|
+
- Entity definition
|
|
51
|
+
- Relationship modeling (1:1, 1:N, N:M)
|
|
52
|
+
- Data types and constraints
|
|
53
|
+
- Validation rules
|
|
54
|
+
- Audit trails
|
|
55
|
+
|
|
56
|
+
### Authentication & Authorization
|
|
57
|
+
- Password hashing (bcrypt, argon2)
|
|
58
|
+
- JWT or session management
|
|
59
|
+
- OAuth2 / OIDC patterns
|
|
60
|
+
- RBAC (Role-Based Access Control)
|
|
61
|
+
- API key management
|
|
62
|
+
|
|
63
|
+
### Performance & Scalability
|
|
64
|
+
- Query optimization and EXPLAIN plans
|
|
65
|
+
- Caching strategies (Redis, memcached)
|
|
66
|
+
- Background jobs (Celery, Bull)
|
|
67
|
+
- Database read replicas
|
|
68
|
+
- Horizontal scaling
|
|
69
|
+
|
|
70
|
+
### Integration Patterns
|
|
71
|
+
- External API resilience (retry, timeout, circuit breaker)
|
|
72
|
+
- Webhook handling with retry
|
|
73
|
+
- Message queue patterns
|
|
74
|
+
- Idempotency for critical operations
|
|
75
|
+
|
|
76
|
+
## Review Process
|
|
77
|
+
|
|
78
|
+
Use comprehensive checklists for:
|
|
79
|
+
- API quality (REST conventions, validation, versioning)
|
|
80
|
+
- Database quality (schema, indexes, transactions)
|
|
81
|
+
- Security (auth, validation, injection prevention)
|
|
82
|
+
|
|
83
|
+
See [refs/checklists.md](refs/checklists.md) for detailed checklists, anti-patterns, and output templates.
|
|
84
|
+
|
|
85
|
+
## Code Patterns
|
|
86
|
+
|
|
87
|
+
Common backend patterns for:
|
|
88
|
+
- API endpoints with auth and validation
|
|
89
|
+
- Query optimization and N+1 prevention
|
|
90
|
+
- Authentication and authorization
|
|
91
|
+
- External API integration with resilience
|
|
92
|
+
- Caching strategies
|
|
93
|
+
|
|
94
|
+
See [refs/patterns.md](refs/patterns.md) for code examples and best practices.
|
|
95
|
+
|
|
96
|
+
## Notes
|
|
97
|
+
|
|
98
|
+
- Always hash passwords (never plaintext)
|
|
99
|
+
- Validate all input at API boundaries
|
|
100
|
+
- Use transactions for multi-step operations
|
|
101
|
+
- Index foreign keys and query fields
|
|
102
|
+
- Use background jobs for slow operations
|