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,210 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase_relevance: ["design", "build"]
|
|
3
|
+
archetype_relevance: ["*"]
|
|
4
|
+
---
|
|
5
|
+
# Component Documentation Template - Operations
|
|
6
|
+
|
|
7
|
+
Operational aspects of component documentation: performance, security, monitoring, testing, deployment, and disaster recovery.
|
|
8
|
+
|
|
9
|
+
## Performance
|
|
10
|
+
|
|
11
|
+
### Targets
|
|
12
|
+
|
|
13
|
+
- **API Response Time**: P95 < 200ms
|
|
14
|
+
- **Database Queries**: < 50ms
|
|
15
|
+
- **Throughput**: 1000 req/sec
|
|
16
|
+
|
|
17
|
+
### Optimization Strategies
|
|
18
|
+
|
|
19
|
+
- Redis caching for frequently accessed resources
|
|
20
|
+
- Database connection pooling (max 10)
|
|
21
|
+
- Batch processing for bulk operations
|
|
22
|
+
- Index on user_id and status columns
|
|
23
|
+
|
|
24
|
+
## Security
|
|
25
|
+
|
|
26
|
+
### Authentication
|
|
27
|
+
|
|
28
|
+
- All endpoints require valid JWT token
|
|
29
|
+
- Token verified via auth-service
|
|
30
|
+
|
|
31
|
+
### Authorization
|
|
32
|
+
|
|
33
|
+
- Users can only access their own resources
|
|
34
|
+
- Admin role can access all resources
|
|
35
|
+
|
|
36
|
+
### Data Protection
|
|
37
|
+
|
|
38
|
+
- PII fields encrypted at rest
|
|
39
|
+
- Audit log for all modifications
|
|
40
|
+
- Rate limiting: 100 req/min per user
|
|
41
|
+
|
|
42
|
+
## Monitoring
|
|
43
|
+
|
|
44
|
+
### Metrics
|
|
45
|
+
|
|
46
|
+
```typescript
|
|
47
|
+
// Request metrics
|
|
48
|
+
http_requests_total{method, path, status}
|
|
49
|
+
http_request_duration_seconds{method, path}
|
|
50
|
+
|
|
51
|
+
// Business metrics
|
|
52
|
+
resources_created_total
|
|
53
|
+
resources_by_status{status}
|
|
54
|
+
|
|
55
|
+
// Error metrics
|
|
56
|
+
errors_total{type, code}
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Alerts
|
|
60
|
+
|
|
61
|
+
| Alert | Condition | Severity |
|
|
62
|
+
|-------|-----------|----------|
|
|
63
|
+
| High Error Rate | Error rate > 5% | Critical |
|
|
64
|
+
| Slow Responses | P95 > 500ms | Warning |
|
|
65
|
+
| Database Connection Pool | Usage > 80% | Warning |
|
|
66
|
+
|
|
67
|
+
### Logging
|
|
68
|
+
|
|
69
|
+
```json
|
|
70
|
+
{
|
|
71
|
+
"timestamp": "2025-01-24T10:00:00Z",
|
|
72
|
+
"level": "info",
|
|
73
|
+
"component": "resource-service",
|
|
74
|
+
"action": "create_resource",
|
|
75
|
+
"userId": "550e8400-e29b-41d4-a716-446655440000",
|
|
76
|
+
"resourceId": "660e8400-e29b-41d4-a716-446655440000",
|
|
77
|
+
"duration_ms": 45
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## Testing
|
|
82
|
+
|
|
83
|
+
### Unit Tests
|
|
84
|
+
|
|
85
|
+
```typescript
|
|
86
|
+
describe('Resource', () => {
|
|
87
|
+
it('should activate pending resource', () => {
|
|
88
|
+
const resource = new Resource(
|
|
89
|
+
'1',
|
|
90
|
+
'Test',
|
|
91
|
+
ResourceStatus.PENDING,
|
|
92
|
+
'user1',
|
|
93
|
+
new Date(),
|
|
94
|
+
new Date()
|
|
95
|
+
);
|
|
96
|
+
|
|
97
|
+
resource.activate();
|
|
98
|
+
|
|
99
|
+
expect(resource.status).toBe(ResourceStatus.ACTIVE);
|
|
100
|
+
});
|
|
101
|
+
|
|
102
|
+
it('should throw error when activating non-pending resource', () => {
|
|
103
|
+
const resource = new Resource(
|
|
104
|
+
'1',
|
|
105
|
+
'Test',
|
|
106
|
+
ResourceStatus.ACTIVE,
|
|
107
|
+
'user1',
|
|
108
|
+
new Date(),
|
|
109
|
+
new Date()
|
|
110
|
+
);
|
|
111
|
+
|
|
112
|
+
expect(() => resource.activate()).toThrow();
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Integration Tests
|
|
118
|
+
|
|
119
|
+
```typescript
|
|
120
|
+
describe('Resource API', () => {
|
|
121
|
+
it('should create resource', async () => {
|
|
122
|
+
const response = await request(app)
|
|
123
|
+
.post('/api/resources')
|
|
124
|
+
.set('Authorization', `Bearer ${token}`)
|
|
125
|
+
.send({
|
|
126
|
+
name: 'Test Resource',
|
|
127
|
+
userId: userId
|
|
128
|
+
});
|
|
129
|
+
|
|
130
|
+
expect(response.status).toBe(201);
|
|
131
|
+
expect(response.body).toHaveProperty('id');
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Contract Tests
|
|
137
|
+
|
|
138
|
+
Test integration points with other services.
|
|
139
|
+
|
|
140
|
+
## Deployment
|
|
141
|
+
|
|
142
|
+
### Requirements
|
|
143
|
+
|
|
144
|
+
- Node.js 20 LTS
|
|
145
|
+
- 512MB RAM minimum
|
|
146
|
+
- 1 CPU core
|
|
147
|
+
|
|
148
|
+
### Environment
|
|
149
|
+
|
|
150
|
+
| Environment | Instances | Resources |
|
|
151
|
+
|-------------|-----------|-----------|
|
|
152
|
+
| Development | 1 | 512MB, 0.5 CPU |
|
|
153
|
+
| Staging | 2 | 1GB, 1 CPU |
|
|
154
|
+
| Production | 4 | 2GB, 2 CPU |
|
|
155
|
+
|
|
156
|
+
### Health Check
|
|
157
|
+
|
|
158
|
+
```http
|
|
159
|
+
GET /health
|
|
160
|
+
|
|
161
|
+
Response: 200 OK
|
|
162
|
+
{
|
|
163
|
+
"status": "healthy",
|
|
164
|
+
"checks": {
|
|
165
|
+
"database": "healthy",
|
|
166
|
+
"redis": "healthy",
|
|
167
|
+
"message_queue": "healthy"
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
## Disaster Recovery
|
|
173
|
+
|
|
174
|
+
### Backup Strategy
|
|
175
|
+
|
|
176
|
+
- Database: Daily snapshots, 30-day retention
|
|
177
|
+
- Configuration: Stored in Git
|
|
178
|
+
- Secrets: Stored in HashiCorp Vault
|
|
179
|
+
|
|
180
|
+
### Recovery Procedures
|
|
181
|
+
|
|
182
|
+
1. Restore database from latest snapshot
|
|
183
|
+
2. Deploy from last known good version
|
|
184
|
+
3. Verify health checks pass
|
|
185
|
+
4. Monitor for errors
|
|
186
|
+
|
|
187
|
+
**RTO**: 2 hours
|
|
188
|
+
**RPO**: 24 hours
|
|
189
|
+
|
|
190
|
+
## Runbooks
|
|
191
|
+
|
|
192
|
+
### Common Issues
|
|
193
|
+
|
|
194
|
+
#### High Memory Usage
|
|
195
|
+
|
|
196
|
+
**Symptoms**: Memory > 80%
|
|
197
|
+
**Diagnosis**: Check for connection leaks
|
|
198
|
+
**Fix**:
|
|
199
|
+
1. Check connection pool metrics
|
|
200
|
+
2. Review recent code changes
|
|
201
|
+
3. Restart service if necessary
|
|
202
|
+
|
|
203
|
+
#### Slow Database Queries
|
|
204
|
+
|
|
205
|
+
**Symptoms**: Query time > 100ms
|
|
206
|
+
**Diagnosis**: Check slow query log
|
|
207
|
+
**Fix**:
|
|
208
|
+
1. Identify slow queries
|
|
209
|
+
2. Add appropriate indexes
|
|
210
|
+
3. Consider caching frequently accessed data
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase_relevance: ["design", "build"]
|
|
3
|
+
archetype_relevance: ["*"]
|
|
4
|
+
---
|
|
5
|
+
# Component Documentation Template - Maintenance
|
|
6
|
+
|
|
7
|
+
Change log, references, contact info, example auth component, and template usage tips.
|
|
8
|
+
|
|
9
|
+
## Change Log
|
|
10
|
+
|
|
11
|
+
### v2.0.0 (2025-01-20)
|
|
12
|
+
|
|
13
|
+
**Breaking Changes**:
|
|
14
|
+
- Changed resource ID from integer to UUID
|
|
15
|
+
- Removed `description` field
|
|
16
|
+
|
|
17
|
+
**Added**:
|
|
18
|
+
- Status field with workflow
|
|
19
|
+
- Event publishing
|
|
20
|
+
|
|
21
|
+
**Fixed**:
|
|
22
|
+
- Race condition in concurrent updates
|
|
23
|
+
|
|
24
|
+
### v1.1.0 (2024-12-15)
|
|
25
|
+
|
|
26
|
+
**Added**:
|
|
27
|
+
- Search functionality
|
|
28
|
+
- Bulk operations
|
|
29
|
+
|
|
30
|
+
## References
|
|
31
|
+
|
|
32
|
+
- [API Documentation](docs/api.md)
|
|
33
|
+
- [Database Schema](docs/schema.sql)
|
|
34
|
+
- [Architecture Decision Records](docs/adr/)
|
|
35
|
+
- [Source Code](https://github.com/example/resource-service)
|
|
36
|
+
|
|
37
|
+
## Contact
|
|
38
|
+
|
|
39
|
+
- **Team**: Platform Team
|
|
40
|
+
- **Slack**: #platform-team
|
|
41
|
+
- **On-call**: platform-oncall@example.com
|
|
42
|
+
- **JIRA**: PLAT project
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Example: Auth Component
|
|
46
|
+
|
|
47
|
+
```markdown
|
|
48
|
+
# Authentication Component
|
|
49
|
+
|
|
50
|
+
## Overview
|
|
51
|
+
|
|
52
|
+
Handles user authentication, authorization, and session management for all services in the platform.
|
|
53
|
+
|
|
54
|
+
**Type**: Service
|
|
55
|
+
**Owner**: Security Team
|
|
56
|
+
**Status**: Active
|
|
57
|
+
|
|
58
|
+
## Responsibilities
|
|
59
|
+
|
|
60
|
+
- User authentication (login/logout)
|
|
61
|
+
- JWT token generation and validation
|
|
62
|
+
- Session management
|
|
63
|
+
- Password reset flows
|
|
64
|
+
- OAuth2 integration (Google, GitHub)
|
|
65
|
+
|
|
66
|
+
**Not responsible for**:
|
|
67
|
+
- User profile management (handled by user-service)
|
|
68
|
+
- Authorization policies (policies defined in each service)
|
|
69
|
+
- Password storage (delegated to identity provider)
|
|
70
|
+
|
|
71
|
+
## Public Interface
|
|
72
|
+
|
|
73
|
+
### API Endpoints
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
POST /auth/login - Authenticate user
|
|
77
|
+
POST /auth/logout - End user session
|
|
78
|
+
POST /auth/refresh - Refresh access token
|
|
79
|
+
POST /auth/forgot-password - Initiate password reset
|
|
80
|
+
GET /auth/verify - Verify token validity
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Events Published
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
auth.user.logged_in - User successfully logged in
|
|
87
|
+
auth.user.logged_out - User logged out
|
|
88
|
+
auth.password.reset - Password was reset
|
|
89
|
+
auth.token.refreshed - Access token refreshed
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Dependencies
|
|
93
|
+
|
|
94
|
+
### Required
|
|
95
|
+
|
|
96
|
+
- **PostgreSQL 14+**: Session storage
|
|
97
|
+
- **Redis 7+**: Token blacklist and rate limiting
|
|
98
|
+
- **Email Service**: For password reset emails
|
|
99
|
+
|
|
100
|
+
### Internal Dependencies
|
|
101
|
+
|
|
102
|
+
- **user-service**: Fetch user credentials
|
|
103
|
+
|
|
104
|
+
## Data Model
|
|
105
|
+
|
|
106
|
+
```typescript
|
|
107
|
+
interface Session {
|
|
108
|
+
id: string;
|
|
109
|
+
userId: string;
|
|
110
|
+
token: string;
|
|
111
|
+
refreshToken: string;
|
|
112
|
+
expiresAt: Date;
|
|
113
|
+
createdAt: Date;
|
|
114
|
+
userAgent: string;
|
|
115
|
+
ipAddress: string;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
interface TokenPayload {
|
|
119
|
+
sub: string; // User ID
|
|
120
|
+
email: string;
|
|
121
|
+
role: string;
|
|
122
|
+
exp: number; // Expiration
|
|
123
|
+
iat: number; // Issued at
|
|
124
|
+
}
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
## Configuration
|
|
128
|
+
|
|
129
|
+
```yaml
|
|
130
|
+
jwt:
|
|
131
|
+
secret: ${JWT_SECRET}
|
|
132
|
+
accessTokenTTL: 900 # 15 minutes
|
|
133
|
+
refreshTokenTTL: 604800 # 7 days
|
|
134
|
+
|
|
135
|
+
rateLimit:
|
|
136
|
+
login: 5 # 5 attempts per minute
|
|
137
|
+
passwordReset: 3 # 3 attempts per hour
|
|
138
|
+
|
|
139
|
+
oauth:
|
|
140
|
+
google:
|
|
141
|
+
clientId: ${GOOGLE_CLIENT_ID}
|
|
142
|
+
clientSecret: ${GOOGLE_CLIENT_SECRET}
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## Security
|
|
146
|
+
|
|
147
|
+
### Authentication Flow
|
|
148
|
+
|
|
149
|
+
1. Client sends credentials
|
|
150
|
+
2. Service validates against user-service
|
|
151
|
+
3. Generate JWT access token (15min TTL)
|
|
152
|
+
4. Generate refresh token (7day TTL)
|
|
153
|
+
5. Store session in database
|
|
154
|
+
6. Return tokens to client
|
|
155
|
+
|
|
156
|
+
### Token Refresh Flow
|
|
157
|
+
|
|
158
|
+
1. Client sends refresh token
|
|
159
|
+
2. Validate refresh token
|
|
160
|
+
3. Check if token is blacklisted
|
|
161
|
+
4. Generate new access token
|
|
162
|
+
5. Return new access token
|
|
163
|
+
|
|
164
|
+
### Security Measures
|
|
165
|
+
|
|
166
|
+
- Bcrypt for password hashing (cost factor: 10)
|
|
167
|
+
- Rate limiting on login endpoint
|
|
168
|
+
- Token blacklist for logout
|
|
169
|
+
- HTTPS only
|
|
170
|
+
- CORS restrictions
|
|
171
|
+
|
|
172
|
+
## Performance
|
|
173
|
+
|
|
174
|
+
**Targets**:
|
|
175
|
+
- Login: P95 < 300ms
|
|
176
|
+
- Token validation: P95 < 50ms
|
|
177
|
+
|
|
178
|
+
**Optimization**:
|
|
179
|
+
- Redis caching for token validation
|
|
180
|
+
- Database connection pooling
|
|
181
|
+
- Async email sending
|
|
182
|
+
|
|
183
|
+
## Monitoring
|
|
184
|
+
|
|
185
|
+
**Key Metrics**:
|
|
186
|
+
- Login success/failure rate
|
|
187
|
+
- Token validation rate
|
|
188
|
+
- Session duration
|
|
189
|
+
- Password reset requests
|
|
190
|
+
|
|
191
|
+
**Alerts**:
|
|
192
|
+
- Login failure rate > 20%
|
|
193
|
+
- Token validation errors > 5%
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
## Tips for Using Template
|
|
197
|
+
|
|
198
|
+
### Do Include
|
|
199
|
+
|
|
200
|
+
- Clear responsibilities
|
|
201
|
+
- All interfaces (APIs, events, etc.)
|
|
202
|
+
- Dependencies
|
|
203
|
+
- Configuration
|
|
204
|
+
- Security considerations
|
|
205
|
+
- Monitoring approach
|
|
206
|
+
|
|
207
|
+
### Don't Include
|
|
208
|
+
|
|
209
|
+
- Implementation details (that's in code)
|
|
210
|
+
- Every single function
|
|
211
|
+
- Speculative future features
|
|
212
|
+
- Information better suited for ADRs
|
|
213
|
+
|
|
214
|
+
### Keep Updated
|
|
215
|
+
|
|
216
|
+
- Review quarterly
|
|
217
|
+
- Update on major changes
|
|
218
|
+
- Link to current source code
|
|
219
|
+
- Mark deprecated features
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase_relevance: ["design", "build"]
|
|
3
|
+
archetype_relevance: ["*"]
|
|
4
|
+
---
|
|
5
|
+
# Component Documentation Template - Structure
|
|
6
|
+
|
|
7
|
+
Template for documenting individual system components with clear structure and interfaces.
|
|
8
|
+
|
|
9
|
+
## Template Structure
|
|
10
|
+
|
|
11
|
+
```markdown
|
|
12
|
+
# Component Name
|
|
13
|
+
|
|
14
|
+
## Overview
|
|
15
|
+
|
|
16
|
+
Brief description of what this component does and why it exists.
|
|
17
|
+
|
|
18
|
+
**Type**: [Service | Library | Module | Package]
|
|
19
|
+
**Owner**: [Team Name]
|
|
20
|
+
**Status**: [Active | Deprecated | Experimental]
|
|
21
|
+
|
|
22
|
+
## Responsibilities
|
|
23
|
+
|
|
24
|
+
What this component is responsible for (and not responsible for):
|
|
25
|
+
|
|
26
|
+
- Responsibility 1
|
|
27
|
+
- Responsibility 2
|
|
28
|
+
- Responsibility 3
|
|
29
|
+
|
|
30
|
+
**Not responsible for**:
|
|
31
|
+
- What it explicitly doesn't do
|
|
32
|
+
- Boundaries with other components
|
|
33
|
+
|
|
34
|
+
## Architecture
|
|
35
|
+
|
|
36
|
+
### Component Diagram
|
|
37
|
+
|
|
38
|
+
```mermaid
|
|
39
|
+
graph TD
|
|
40
|
+
Client[Client] --> API[Public API]
|
|
41
|
+
API --> Service[Business Logic]
|
|
42
|
+
Service --> Repo[Repository]
|
|
43
|
+
Repo --> DB[(Database)]
|
|
44
|
+
|
|
45
|
+
Service --> Queue[Message Queue]
|
|
46
|
+
Queue --> Worker[Background Worker]
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Internal Structure
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
component-name/
|
|
53
|
+
├── api/ # Public interfaces
|
|
54
|
+
│ ├── handlers/ # HTTP handlers
|
|
55
|
+
│ └── routes.ts # Route definitions
|
|
56
|
+
├── domain/ # Business logic
|
|
57
|
+
│ ├── entities/ # Domain models
|
|
58
|
+
│ ├── services/ # Business services
|
|
59
|
+
│ └── errors/ # Domain errors
|
|
60
|
+
├── infrastructure/ # External integrations
|
|
61
|
+
│ ├── database/ # Database access
|
|
62
|
+
│ ├── cache/ # Caching layer
|
|
63
|
+
│ └── events/ # Event publishing
|
|
64
|
+
└── config/ # Configuration
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Public Interface
|
|
68
|
+
|
|
69
|
+
### API Endpoints
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
GET /api/resources/:id - Get resource by ID
|
|
73
|
+
POST /api/resources - Create new resource
|
|
74
|
+
PUT /api/resources/:id - Update resource
|
|
75
|
+
DELETE /api/resources/:id - Delete resource
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Events Published
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
resource.created - When a new resource is created
|
|
82
|
+
resource.updated - When a resource is updated
|
|
83
|
+
resource.deleted - When a resource is deleted
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Events Consumed
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
user.created - Initialize resource for new user
|
|
90
|
+
payment.completed - Update resource status
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Dependencies
|
|
94
|
+
|
|
95
|
+
### Required
|
|
96
|
+
|
|
97
|
+
- **PostgreSQL 14+**: Primary data store
|
|
98
|
+
- **Redis 7+**: Caching and session storage
|
|
99
|
+
- **RabbitMQ 3.x**: Event messaging
|
|
100
|
+
|
|
101
|
+
### Optional
|
|
102
|
+
|
|
103
|
+
- **Elasticsearch 8+**: Full-text search (if search enabled)
|
|
104
|
+
|
|
105
|
+
### Internal Dependencies
|
|
106
|
+
|
|
107
|
+
- **auth-service**: For authentication/authorization
|
|
108
|
+
- **notification-service**: For sending alerts
|
|
109
|
+
|
|
110
|
+
## Data Model
|
|
111
|
+
|
|
112
|
+
### Database Schema
|
|
113
|
+
|
|
114
|
+
```sql
|
|
115
|
+
CREATE TABLE resources (
|
|
116
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
117
|
+
name VARCHAR(255) NOT NULL,
|
|
118
|
+
status VARCHAR(50) NOT NULL,
|
|
119
|
+
user_id UUID NOT NULL,
|
|
120
|
+
created_at TIMESTAMP NOT NULL DEFAULT NOW(),
|
|
121
|
+
updated_at TIMESTAMP NOT NULL DEFAULT NOW(),
|
|
122
|
+
|
|
123
|
+
FOREIGN KEY (user_id) REFERENCES users(id)
|
|
124
|
+
);
|
|
125
|
+
|
|
126
|
+
CREATE INDEX idx_resources_user_id ON resources(user_id);
|
|
127
|
+
CREATE INDEX idx_resources_status ON resources(status);
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### Domain Model
|
|
131
|
+
|
|
132
|
+
```typescript
|
|
133
|
+
class Resource {
|
|
134
|
+
constructor(
|
|
135
|
+
public id: string,
|
|
136
|
+
public name: string,
|
|
137
|
+
public status: ResourceStatus,
|
|
138
|
+
public userId: string,
|
|
139
|
+
public createdAt: Date,
|
|
140
|
+
public updatedAt: Date
|
|
141
|
+
) {}
|
|
142
|
+
|
|
143
|
+
// Business logic methods
|
|
144
|
+
activate(): void {
|
|
145
|
+
if (this.status !== 'pending') {
|
|
146
|
+
throw new Error('Can only activate pending resources');
|
|
147
|
+
}
|
|
148
|
+
this.status = 'active';
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
deactivate(): void {
|
|
152
|
+
if (this.status !== 'active') {
|
|
153
|
+
throw new Error('Can only deactivate active resources');
|
|
154
|
+
}
|
|
155
|
+
this.status = 'inactive';
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
enum ResourceStatus {
|
|
160
|
+
PENDING = 'pending',
|
|
161
|
+
ACTIVE = 'active',
|
|
162
|
+
INACTIVE = 'inactive'
|
|
163
|
+
}
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
## Configuration
|
|
167
|
+
|
|
168
|
+
### Environment Variables
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
# Database
|
|
172
|
+
DATABASE_URL=postgresql://user:pass@localhost:5432/db
|
|
173
|
+
|
|
174
|
+
# Redis
|
|
175
|
+
REDIS_URL=redis://localhost:6379
|
|
176
|
+
|
|
177
|
+
# Service
|
|
178
|
+
PORT=3000
|
|
179
|
+
LOG_LEVEL=info
|
|
180
|
+
|
|
181
|
+
# Feature flags
|
|
182
|
+
ENABLE_SEARCH=false
|
|
183
|
+
ENABLE_CACHE=true
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### Configuration File
|
|
187
|
+
|
|
188
|
+
```yaml
|
|
189
|
+
# config/default.yaml
|
|
190
|
+
server:
|
|
191
|
+
port: 3000
|
|
192
|
+
timeout: 30000
|
|
193
|
+
|
|
194
|
+
database:
|
|
195
|
+
pool:
|
|
196
|
+
min: 2
|
|
197
|
+
max: 10
|
|
198
|
+
timeout: 5000
|
|
199
|
+
|
|
200
|
+
cache:
|
|
201
|
+
ttl: 3600
|
|
202
|
+
enabled: true
|
|
203
|
+
|
|
204
|
+
features:
|
|
205
|
+
search: false
|
|
206
|
+
notifications: true
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
## API Examples
|
|
210
|
+
|
|
211
|
+
### Create Resource
|
|
212
|
+
|
|
213
|
+
```http
|
|
214
|
+
POST /api/resources
|
|
215
|
+
Content-Type: application/json
|
|
216
|
+
Authorization: Bearer <token>
|
|
217
|
+
|
|
218
|
+
{
|
|
219
|
+
"name": "My Resource",
|
|
220
|
+
"userId": "550e8400-e29b-41d4-a716-446655440000"
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
Response: 201 Created
|
|
224
|
+
{
|
|
225
|
+
"id": "660e8400-e29b-41d4-a716-446655440000",
|
|
226
|
+
"name": "My Resource",
|
|
227
|
+
"status": "pending",
|
|
228
|
+
"userId": "550e8400-e29b-41d4-a716-446655440000",
|
|
229
|
+
"createdAt": "2025-01-24T10:00:00Z",
|
|
230
|
+
"updatedAt": "2025-01-24T10:00:00Z"
|
|
231
|
+
}
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
### Get Resource
|
|
235
|
+
|
|
236
|
+
```http
|
|
237
|
+
GET /api/resources/660e8400-e29b-41d4-a716-446655440000
|
|
238
|
+
Authorization: Bearer <token>
|
|
239
|
+
|
|
240
|
+
Response: 200 OK
|
|
241
|
+
{
|
|
242
|
+
"id": "660e8400-e29b-41d4-a716-446655440000",
|
|
243
|
+
"name": "My Resource",
|
|
244
|
+
"status": "active",
|
|
245
|
+
"userId": "550e8400-e29b-41d4-a716-446655440000",
|
|
246
|
+
"createdAt": "2025-01-24T10:00:00Z",
|
|
247
|
+
"updatedAt": "2025-01-24T10:05:00Z"
|
|
248
|
+
}
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
## Error Handling
|
|
252
|
+
|
|
253
|
+
### Error Codes
|
|
254
|
+
|
|
255
|
+
| Code | HTTP Status | Description |
|
|
256
|
+
|------|-------------|-------------|
|
|
257
|
+
| RESOURCE_NOT_FOUND | 404 | Resource doesn't exist |
|
|
258
|
+
| INVALID_STATUS_TRANSITION | 422 | Invalid state change |
|
|
259
|
+
| DUPLICATE_RESOURCE | 409 | Resource already exists |
|
|
260
|
+
| UNAUTHORIZED_ACCESS | 403 | User can't access resource |
|
|
261
|
+
|
|
262
|
+
### Example Error Response
|
|
263
|
+
|
|
264
|
+
```json
|
|
265
|
+
{
|
|
266
|
+
"error": {
|
|
267
|
+
"code": "INVALID_STATUS_TRANSITION",
|
|
268
|
+
"message": "Cannot activate resource in 'inactive' status",
|
|
269
|
+
"details": {
|
|
270
|
+
"current_status": "inactive",
|
|
271
|
+
"requested_status": "active"
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
```
|
|
276
|
+
```
|