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,96 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase_relevance: ["design", "build"]
|
|
3
|
+
archetype_relevance: ["*"]
|
|
4
|
+
---
|
|
5
|
+
# Frontend Review Checklists
|
|
6
|
+
|
|
7
|
+
## Component Quality Checklist
|
|
8
|
+
- [ ] Single responsibility
|
|
9
|
+
- [ ] Clear prop interface
|
|
10
|
+
- [ ] Proper TypeScript/PropTypes
|
|
11
|
+
- [ ] Reusable and composable
|
|
12
|
+
- [ ] Handles edge cases
|
|
13
|
+
|
|
14
|
+
## React Best Practices Checklist
|
|
15
|
+
- [ ] Hook dependencies correct
|
|
16
|
+
- [ ] Effects have cleanup
|
|
17
|
+
- [ ] No unnecessary re-renders
|
|
18
|
+
- [ ] Keys used correctly in lists
|
|
19
|
+
- [ ] No mutating state directly
|
|
20
|
+
|
|
21
|
+
## Styling Checklist
|
|
22
|
+
- [ ] Responsive design
|
|
23
|
+
- [ ] Accessibility (contrast, sizing)
|
|
24
|
+
- [ ] Consistent with design system
|
|
25
|
+
- [ ] Performant animations
|
|
26
|
+
|
|
27
|
+
## Accessibility Checklist
|
|
28
|
+
- [ ] Semantic HTML
|
|
29
|
+
- [ ] Keyboard navigation
|
|
30
|
+
- [ ] Screen reader friendly
|
|
31
|
+
- [ ] ARIA where needed
|
|
32
|
+
- [ ] Focus indicators visible
|
|
33
|
+
|
|
34
|
+
## Common Anti-Patterns
|
|
35
|
+
|
|
36
|
+
### React Anti-Patterns
|
|
37
|
+
- Missing hook dependencies (stale closures)
|
|
38
|
+
- Using index as key in dynamic lists
|
|
39
|
+
- Not cleaning up effects (memory leaks)
|
|
40
|
+
- Inline function creation in render
|
|
41
|
+
- Direct state mutation
|
|
42
|
+
|
|
43
|
+
### CSS Anti-Patterns
|
|
44
|
+
- Fixed pixel widths for layouts
|
|
45
|
+
- Excessive !important
|
|
46
|
+
- Non-semantic class names
|
|
47
|
+
- Animations not GPU-accelerated
|
|
48
|
+
|
|
49
|
+
### Accessibility Anti-Patterns
|
|
50
|
+
- Using div instead of button
|
|
51
|
+
- Missing alt text on images
|
|
52
|
+
- Poor color contrast
|
|
53
|
+
- No keyboard navigation
|
|
54
|
+
- Missing focus indicators
|
|
55
|
+
|
|
56
|
+
### Performance Anti-Patterns
|
|
57
|
+
- Large bundles without code splitting
|
|
58
|
+
- Not using lazy loading
|
|
59
|
+
- Unnecessary re-renders
|
|
60
|
+
- Unoptimized images
|
|
61
|
+
- No debouncing on input handlers
|
|
62
|
+
|
|
63
|
+
## Output Template
|
|
64
|
+
|
|
65
|
+
```markdown
|
|
66
|
+
## Frontend Review: {Component/Feature}
|
|
67
|
+
|
|
68
|
+
### Component Design
|
|
69
|
+
{Assessment of structure and patterns}
|
|
70
|
+
|
|
71
|
+
### React Implementation
|
|
72
|
+
{Hook usage, state management, performance}
|
|
73
|
+
|
|
74
|
+
### Styling
|
|
75
|
+
{CSS quality, responsiveness}
|
|
76
|
+
|
|
77
|
+
### Accessibility
|
|
78
|
+
{A11y compliance and recommendations}
|
|
79
|
+
|
|
80
|
+
### Issues
|
|
81
|
+
| Severity | Issue | Location | Fix |
|
|
82
|
+
|----------|-------|----------|-----|
|
|
83
|
+
| {Level} | {Problem} | {File:line} | {Solution} |
|
|
84
|
+
|
|
85
|
+
### Recommendations
|
|
86
|
+
1. {Priority item}
|
|
87
|
+
2. {Secondary item}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Tools
|
|
91
|
+
|
|
92
|
+
- React DevTools for profiling
|
|
93
|
+
- Browser DevTools for CSS/performance
|
|
94
|
+
- Lighthouse for a11y and performance
|
|
95
|
+
- React Testing Library for testing
|
|
96
|
+
- axe DevTools for accessibility
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase_relevance: ["design", "build"]
|
|
3
|
+
archetype_relevance: ["*"]
|
|
4
|
+
---
|
|
5
|
+
# Frontend Code Patterns
|
|
6
|
+
|
|
7
|
+
## Component Structure Pattern
|
|
8
|
+
|
|
9
|
+
```jsx
|
|
10
|
+
interface Props {
|
|
11
|
+
title: string;
|
|
12
|
+
items: Item[];
|
|
13
|
+
onSelect: (item: Item) => void;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export const ItemList = ({ title, items, onSelect }: Props) => {
|
|
17
|
+
return (
|
|
18
|
+
<section aria-labelledby="list-title">
|
|
19
|
+
<h2 id="list-title">{title}</h2>
|
|
20
|
+
<ul role="list">
|
|
21
|
+
{items.map(item => (
|
|
22
|
+
<li key={item.id}>
|
|
23
|
+
<button onClick={() => onSelect(item)}>
|
|
24
|
+
{item.name}
|
|
25
|
+
</button>
|
|
26
|
+
</li>
|
|
27
|
+
))}
|
|
28
|
+
</ul>
|
|
29
|
+
</section>
|
|
30
|
+
);
|
|
31
|
+
};
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Custom Hook Pattern
|
|
35
|
+
|
|
36
|
+
```jsx
|
|
37
|
+
function useDebounce(value, delay) {
|
|
38
|
+
const [debouncedValue, setDebouncedValue] = useState(value);
|
|
39
|
+
|
|
40
|
+
useEffect(() => {
|
|
41
|
+
const timer = setTimeout(() => setDebouncedValue(value), delay);
|
|
42
|
+
return () => clearTimeout(timer);
|
|
43
|
+
}, [value, delay]);
|
|
44
|
+
|
|
45
|
+
return debouncedValue;
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## React Best Practices
|
|
50
|
+
|
|
51
|
+
### Hook Dependencies
|
|
52
|
+
- Always include all dependencies in useEffect/useMemo/useCallback
|
|
53
|
+
- Avoid stale closures
|
|
54
|
+
|
|
55
|
+
### Effect Cleanup
|
|
56
|
+
```jsx
|
|
57
|
+
useEffect(() => {
|
|
58
|
+
const subscription = api.subscribe(data => {
|
|
59
|
+
setData(data);
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
// Cleanup to prevent memory leaks
|
|
63
|
+
return () => subscription.unsubscribe();
|
|
64
|
+
}, []);
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Keys in Lists
|
|
68
|
+
- Use stable unique IDs, not array indexes
|
|
69
|
+
- Index as key only for static lists
|
|
70
|
+
|
|
71
|
+
### Performance Optimization
|
|
72
|
+
```jsx
|
|
73
|
+
// Memoize expensive computations
|
|
74
|
+
const sorted = useMemo(() =>
|
|
75
|
+
items.sort((a, b) => a.name.localeCompare(b.name)),
|
|
76
|
+
[items]
|
|
77
|
+
);
|
|
78
|
+
|
|
79
|
+
// Memoize callbacks to prevent re-renders
|
|
80
|
+
const handleClick = useCallback(() => {
|
|
81
|
+
doSomething(id);
|
|
82
|
+
}, [id]);
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## CSS Patterns
|
|
86
|
+
|
|
87
|
+
### Responsive Design
|
|
88
|
+
```css
|
|
89
|
+
/* Mobile-first approach */
|
|
90
|
+
.container {
|
|
91
|
+
padding: 1rem;
|
|
92
|
+
display: flex;
|
|
93
|
+
flex-direction: column;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/* Tablet and up */
|
|
97
|
+
@media (min-width: 768px) {
|
|
98
|
+
.container {
|
|
99
|
+
flex-direction: row;
|
|
100
|
+
padding: 2rem;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### Modern CSS Features
|
|
106
|
+
```css
|
|
107
|
+
/* Custom properties for theming */
|
|
108
|
+
:root {
|
|
109
|
+
--color-primary: #007bff;
|
|
110
|
+
--spacing-unit: 8px;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/* Container queries */
|
|
114
|
+
@container (min-width: 400px) {
|
|
115
|
+
.card {
|
|
116
|
+
display: grid;
|
|
117
|
+
grid-template-columns: 1fr 2fr;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### GPU-Accelerated Animations
|
|
123
|
+
```css
|
|
124
|
+
/* Use transform and opacity for smooth animations */
|
|
125
|
+
.fade-in {
|
|
126
|
+
animation: fadeIn 0.3s ease-in;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
@keyframes fadeIn {
|
|
130
|
+
from {
|
|
131
|
+
opacity: 0;
|
|
132
|
+
transform: translateY(10px);
|
|
133
|
+
}
|
|
134
|
+
to {
|
|
135
|
+
opacity: 1;
|
|
136
|
+
transform: translateY(0);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
## Accessibility Patterns
|
|
142
|
+
|
|
143
|
+
### Semantic HTML
|
|
144
|
+
```jsx
|
|
145
|
+
// Good
|
|
146
|
+
<button onClick={handleClick}>Submit</button>
|
|
147
|
+
|
|
148
|
+
// Bad
|
|
149
|
+
<div onClick={handleClick}>Submit</div>
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
### ARIA Labels
|
|
153
|
+
```jsx
|
|
154
|
+
<button aria-label="Close dialog" onClick={onClose}>
|
|
155
|
+
<CloseIcon />
|
|
156
|
+
</button>
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
### Keyboard Navigation
|
|
160
|
+
```jsx
|
|
161
|
+
const handleKeyDown = (e: React.KeyboardEvent) => {
|
|
162
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
|
163
|
+
e.preventDefault();
|
|
164
|
+
handleClick();
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
```
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: integration
|
|
3
|
+
description: |
|
|
4
|
+
Design API contracts, service boundaries, and integration patterns.
|
|
5
|
+
Define how components and services communicate and interoperate.
|
|
6
|
+
|
|
7
|
+
Use when: "API design", "service integration", "how do these communicate",
|
|
8
|
+
"API contract", "integration pattern", "REST API", "GraphQL", "event schema"
|
|
9
|
+
portability: portable
|
|
10
|
+
phase_relevance: ["design", "build"]
|
|
11
|
+
archetype_relevance: ["*"]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Integration Skill
|
|
15
|
+
|
|
16
|
+
Design robust, well-documented integration points between components and services.
|
|
17
|
+
|
|
18
|
+
## Purpose
|
|
19
|
+
|
|
20
|
+
Define communication contracts:
|
|
21
|
+
- API design (REST, GraphQL, gRPC)
|
|
22
|
+
- Event schema definition
|
|
23
|
+
- Integration pattern selection
|
|
24
|
+
- Error handling and resilience
|
|
25
|
+
|
|
26
|
+
## Process
|
|
27
|
+
|
|
28
|
+
### 1. Identify Integration Points
|
|
29
|
+
|
|
30
|
+
Map communication:
|
|
31
|
+
- Component-to-component
|
|
32
|
+
- Service-to-service
|
|
33
|
+
- Client-to-server
|
|
34
|
+
- External integrations
|
|
35
|
+
- Event flows
|
|
36
|
+
|
|
37
|
+
### 2. Choose Pattern
|
|
38
|
+
|
|
39
|
+
Select approach:
|
|
40
|
+
- **Request/Response** - Sync, immediate result
|
|
41
|
+
- **Publish/Subscribe** - Async, one-to-many
|
|
42
|
+
- **Event Sourcing** - Audit trail, replay
|
|
43
|
+
- **API Gateway** - Unified entry point
|
|
44
|
+
|
|
45
|
+
### 3. Design Contracts
|
|
46
|
+
|
|
47
|
+
Define specifications:
|
|
48
|
+
- OpenAPI for REST
|
|
49
|
+
- GraphQL schemas
|
|
50
|
+
- Protocol Buffers for gRPC
|
|
51
|
+
- Event schemas (JSON Schema)
|
|
52
|
+
|
|
53
|
+
### 4. Plan Resilience
|
|
54
|
+
|
|
55
|
+
Handle failures:
|
|
56
|
+
- Retry strategies
|
|
57
|
+
- Circuit breakers
|
|
58
|
+
- Timeouts
|
|
59
|
+
- Fallback behaviors
|
|
60
|
+
|
|
61
|
+
## Output
|
|
62
|
+
|
|
63
|
+
Creates in `phases/design/`:
|
|
64
|
+
```
|
|
65
|
+
design/
|
|
66
|
+
├── integration/
|
|
67
|
+
│ ├── overview.md
|
|
68
|
+
│ ├── api-specs/
|
|
69
|
+
│ │ ├── openapi.yaml
|
|
70
|
+
│ │ └── events.json
|
|
71
|
+
│ └── patterns.md
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
## Integration Patterns
|
|
75
|
+
|
|
76
|
+
### REST API
|
|
77
|
+
Resource-oriented, stateless, HTTP verbs.
|
|
78
|
+
See [REST API Fundamentals](refs/rest-api-fundamentals.md) and [Responses & Security](refs/rest-api-responses-security.md).
|
|
79
|
+
|
|
80
|
+
### GraphQL
|
|
81
|
+
Flexible queries, strong typing.
|
|
82
|
+
See GraphQL guides in refs/ (graphql-graphql-basics.md, graphql-schema-design-patterns.md).
|
|
83
|
+
|
|
84
|
+
### gRPC
|
|
85
|
+
High performance, service-to-service.
|
|
86
|
+
See gRPC guides in refs/ (grpc-grpc-overview.md, grpc-implementation-examples.md).
|
|
87
|
+
|
|
88
|
+
### Event-Driven
|
|
89
|
+
Async messaging, pub/sub.
|
|
90
|
+
See event schema guides in refs/ (event-schemas-event-structure.md, event-schemas-best-practices.md).
|
|
91
|
+
|
|
92
|
+
## Error Handling
|
|
93
|
+
|
|
94
|
+
Standard HTTP status codes:
|
|
95
|
+
- 2xx: Success (200 OK, 201 Created, 204 No Content)
|
|
96
|
+
- 4xx: Client errors (400, 401, 404, 409)
|
|
97
|
+
- 5xx: Server errors (500, 503)
|
|
98
|
+
|
|
99
|
+
See error handling guides in refs/ (error-handling-error-response-format.md, error-handling-best-practices.md).
|
|
100
|
+
|
|
101
|
+
## Resilience Patterns
|
|
102
|
+
|
|
103
|
+
- **Circuit Breaker** - Prevent cascading failures
|
|
104
|
+
- **Retry with Backoff** - Exponential retry delays
|
|
105
|
+
- **Timeouts** - Fail fast on slow responses
|
|
106
|
+
- **Fallbacks** - Graceful degradation
|
|
107
|
+
|
|
108
|
+
See resilience guides in refs/ (resilience-circuit-breaker-pattern.md, resilience-best-practices.md).
|
|
109
|
+
|
|
110
|
+
## Versioning
|
|
111
|
+
|
|
112
|
+
Common strategies:
|
|
113
|
+
- URL versioning: `/api/v1/resources`
|
|
114
|
+
- Header versioning: `Accept: application/vnd.api+json; version=1`
|
|
115
|
+
|
|
116
|
+
See versioning guides in refs/ (versioning-versioning-strategies.md, versioning-migration-strategies.md).
|
|
117
|
+
|
|
118
|
+
## Integration
|
|
119
|
+
|
|
120
|
+
### With System Design
|
|
121
|
+
|
|
122
|
+
Takes component boundaries and defines:
|
|
123
|
+
- Interfaces between components
|
|
124
|
+
- Data contracts
|
|
125
|
+
- Communication patterns
|
|
126
|
+
|
|
127
|
+
### With Data Architecture
|
|
128
|
+
|
|
129
|
+
Coordinates on:
|
|
130
|
+
- API data models
|
|
131
|
+
- Event payloads
|
|
132
|
+
- Serialization formats
|
|
133
|
+
|
|
134
|
+
## Events
|
|
135
|
+
|
|
136
|
+
- `[arch:contract:defined:success]` - API contract created
|
|
137
|
+
- `[arch:api:validated:success]` - API spec validated
|
|
138
|
+
- `[arch:event:schema:defined:success]` - Event schema documented
|
|
139
|
+
|
|
140
|
+
## Tips
|
|
141
|
+
|
|
142
|
+
1. **API-First Design** - Design before implementation
|
|
143
|
+
2. **Version from Start** - Plan for evolution
|
|
144
|
+
3. **Document Well** - Specs are executable docs
|
|
145
|
+
4. **Error Handling** - Comprehensive error responses
|
|
146
|
+
5. **Idempotency** - Make operations repeatable safely
|
|
147
|
+
6. **Security** - Auth/authz from the beginning
|
|
148
|
+
|
|
149
|
+
## Reference Materials
|
|
150
|
+
|
|
151
|
+
- REST API:
|
|
152
|
+
- [Fundamentals](refs/rest-api-fundamentals.md)
|
|
153
|
+
- [Responses & Security](refs/rest-api-responses-security.md)
|
|
154
|
+
- GraphQL:
|
|
155
|
+
- [Basics](refs/graphql-graphql-basics.md)
|
|
156
|
+
- [Query Examples](refs/graphql-query-examples.md)
|
|
157
|
+
- [Schema Design](refs/graphql-schema-design-patterns.md)
|
|
158
|
+
- [Error Handling](refs/graphql-error-handling.md)
|
|
159
|
+
- [Best Practices](refs/graphql-best-practices.md)
|
|
160
|
+
- gRPC:
|
|
161
|
+
- [Overview](refs/grpc-grpc-overview.md)
|
|
162
|
+
- [Implementation](refs/grpc-implementation-examples.md)
|
|
163
|
+
- [Metadata & Headers](refs/grpc-metadata-headers.md)
|
|
164
|
+
- [Testing](refs/grpc-testing.md)
|
|
165
|
+
- Event Schemas:
|
|
166
|
+
- [Event Structure](refs/event-schemas-event-structure.md)
|
|
167
|
+
- [Naming Conventions](refs/event-schemas-event-naming-conventions.md)
|
|
168
|
+
- [Best Practices](refs/event-schemas-best-practices.md)
|
|
169
|
+
- Error Handling:
|
|
170
|
+
- [Response Format](refs/error-handling-error-response-format.md)
|
|
171
|
+
- [Error Classes (TS)](refs/error-handling-error-classes-typescript.md)
|
|
172
|
+
- [Retry Strategies](refs/error-handling-retry-strategies.md)
|
|
173
|
+
- [Best Practices](refs/error-handling-best-practices.md)
|
|
174
|
+
- Resilience:
|
|
175
|
+
- [Circuit Breaker](refs/resilience-circuit-breaker-pattern.md)
|
|
176
|
+
- [Timeout & Bulkhead](refs/resilience-timeout-pattern.md)
|
|
177
|
+
- [Rate Limiting](refs/resilience-rate-limiting.md)
|
|
178
|
+
- [Best Practices](refs/resilience-best-practices.md)
|
|
179
|
+
- Versioning:
|
|
180
|
+
- [Strategies](refs/versioning-versioning-strategies.md)
|
|
181
|
+
- [Migration](refs/versioning-migration-strategies.md)
|
|
182
|
+
- [Breaking Changes](refs/versioning-breaking-changes.md)
|
|
183
|
+
- [OpenAPI Template](refs/openapi-template.yaml)
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase_relevance: ["design", "build"]
|
|
3
|
+
archetype_relevance: ["*"]
|
|
4
|
+
---
|
|
5
|
+
# Error Handling Guide: Best Practices
|
|
6
|
+
|
|
7
|
+
## Best Practices
|
|
8
|
+
|
|
9
|
+
### 1. Use Specific Error Codes
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
// Good
|
|
13
|
+
throw new ValidationError([
|
|
14
|
+
{ field: 'email', code: 'INVALID_FORMAT', message: '...' }
|
|
15
|
+
]);
|
|
16
|
+
|
|
17
|
+
// Bad
|
|
18
|
+
throw new Error('Validation failed');
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
### 2. Include Request ID
|
|
22
|
+
|
|
23
|
+
Always include request ID for tracing:
|
|
24
|
+
```typescript
|
|
25
|
+
res.status(500).json({
|
|
26
|
+
error: {
|
|
27
|
+
message: 'Internal error',
|
|
28
|
+
request_id: req.id // Client can provide this to support
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### 3. Don't Expose Sensitive Details
|
|
34
|
+
|
|
35
|
+
```typescript
|
|
36
|
+
// Bad - exposes database structure
|
|
37
|
+
{
|
|
38
|
+
"error": "ER_DUP_ENTRY: Duplicate entry 'user@example.com' for key 'users.email_unique'"
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// Good - sanitized message
|
|
42
|
+
{
|
|
43
|
+
"error": {
|
|
44
|
+
"code": "CONFLICT",
|
|
45
|
+
"message": "User with this email already exists"
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### 4. Distinguish Client vs Server Errors
|
|
51
|
+
|
|
52
|
+
```typescript
|
|
53
|
+
if (error.status >= 400 && error.status < 500) {
|
|
54
|
+
// Client error - safe to show details
|
|
55
|
+
return error.message;
|
|
56
|
+
} else {
|
|
57
|
+
// Server error - hide details
|
|
58
|
+
return 'An unexpected error occurred';
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
### 5. Provide Actionable Messages
|
|
63
|
+
|
|
64
|
+
```typescript
|
|
65
|
+
// Bad
|
|
66
|
+
{ "error": "Invalid input" }
|
|
67
|
+
|
|
68
|
+
// Good
|
|
69
|
+
{
|
|
70
|
+
"error": {
|
|
71
|
+
"message": "Email address is required and must be in valid format",
|
|
72
|
+
"field": "email",
|
|
73
|
+
"example": "user@example.com"
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### 6. Handle Async Errors
|
|
79
|
+
|
|
80
|
+
Always catch async errors:
|
|
81
|
+
```typescript
|
|
82
|
+
// Good
|
|
83
|
+
app.get('/users', asyncHandler(async (req, res) => {
|
|
84
|
+
const users = await userService.findAll();
|
|
85
|
+
res.json({ users });
|
|
86
|
+
}));
|
|
87
|
+
|
|
88
|
+
// Bad - unhandled promise rejection
|
|
89
|
+
app.get('/users', async (req, res) => {
|
|
90
|
+
const users = await userService.findAll();
|
|
91
|
+
res.json({ users });
|
|
92
|
+
});
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### 7. Centralized Error Handling
|
|
96
|
+
|
|
97
|
+
Use middleware for consistent error responses:
|
|
98
|
+
```typescript
|
|
99
|
+
app.use(errorHandler);
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
### 8. Log Appropriately
|
|
103
|
+
|
|
104
|
+
```typescript
|
|
105
|
+
// Error severity levels
|
|
106
|
+
logger.error('Critical error', error); // Requires immediate attention
|
|
107
|
+
logger.warn('Recoverable error', error); // Should be monitored
|
|
108
|
+
logger.info('Expected error', error); // Part of normal flow
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### 9. Graceful Degradation
|
|
112
|
+
|
|
113
|
+
```typescript
|
|
114
|
+
try {
|
|
115
|
+
const recommendations = await recommendationService.get(userId);
|
|
116
|
+
return recommendations;
|
|
117
|
+
} catch (error) {
|
|
118
|
+
// Log error but don't fail the request
|
|
119
|
+
logger.warn('Recommendations unavailable', error);
|
|
120
|
+
return []; // Return empty array as fallback
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### 10. Test Error Scenarios
|
|
125
|
+
|
|
126
|
+
```typescript
|
|
127
|
+
describe('User creation', () => {
|
|
128
|
+
it('should return 409 for duplicate email', async () => {
|
|
129
|
+
await createUser({ email: 'test@example.com' });
|
|
130
|
+
|
|
131
|
+
const response = await request(app)
|
|
132
|
+
.post('/users')
|
|
133
|
+
.send({ email: 'test@example.com' });
|
|
134
|
+
|
|
135
|
+
expect(response.status).toBe(409);
|
|
136
|
+
expect(response.body.error.code).toBe('CONFLICT');
|
|
137
|
+
});
|
|
138
|
+
});
|
|
139
|
+
```
|