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,243 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase_relevance: ["build", "review", "operate"]
|
|
3
|
+
archetype_relevance: ["*"]
|
|
4
|
+
---
|
|
5
|
+
# Toolchain Discovery: Monitoring CLI Detection Patterns
|
|
6
|
+
|
|
7
|
+
Detection patterns and usage examples for monitoring CLIs in the engineer's environment.
|
|
8
|
+
All detection uses `command -v` — no external dependencies required.
|
|
9
|
+
|
|
10
|
+
## Detection Script
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
# Discover all monitoring CLIs in current environment
|
|
14
|
+
discover_monitoring_tools() {
|
|
15
|
+
echo "=== APM ==="
|
|
16
|
+
command -v datadog-agent &>/dev/null && echo " datadog: $(command -v datadog-agent)"
|
|
17
|
+
command -v newrelic &>/dev/null && echo " newrelic: $(command -v newrelic)"
|
|
18
|
+
command -v dt &>/dev/null && echo " dynatrace: $(command -v dt)"
|
|
19
|
+
|
|
20
|
+
echo "=== Logging ==="
|
|
21
|
+
command -v splunk &>/dev/null && echo " splunk: $(command -v splunk)"
|
|
22
|
+
command -v elasticsearch &>/dev/null && echo " elasticsearch: $(command -v elasticsearch)"
|
|
23
|
+
command -v logcli &>/dev/null && echo " loki: $(command -v logcli)"
|
|
24
|
+
|
|
25
|
+
echo "=== Metrics ==="
|
|
26
|
+
command -v promtool &>/dev/null && echo " prometheus: $(command -v promtool)"
|
|
27
|
+
command -v grafana-cli &>/dev/null && echo " grafana: $(command -v grafana-cli)"
|
|
28
|
+
command -v influx &>/dev/null && echo " influxdb: $(command -v influx)"
|
|
29
|
+
|
|
30
|
+
echo "=== Cloud ==="
|
|
31
|
+
command -v aws &>/dev/null && echo " cloudwatch: $(command -v aws)"
|
|
32
|
+
command -v gcloud &>/dev/null && echo " gcp: $(command -v gcloud)"
|
|
33
|
+
command -v az &>/dev/null && echo " azure: $(command -v az)"
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## APM Tools
|
|
40
|
+
|
|
41
|
+
### Datadog (`datadog-agent`)
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
# Agent status
|
|
45
|
+
datadog-agent status
|
|
46
|
+
|
|
47
|
+
# Check specific integration
|
|
48
|
+
datadog-agent check postgres
|
|
49
|
+
|
|
50
|
+
# Query metrics via API
|
|
51
|
+
curl -G "https://api.datadoghq.com/api/v1/metrics/query" \
|
|
52
|
+
-H "DD-API-KEY: ${DD_API_KEY}" -H "DD-APPLICATION-KEY: ${DD_APP_KEY}" \
|
|
53
|
+
--data-urlencode "query=avg:system.cpu.user{host:web-01}" \
|
|
54
|
+
--data-urlencode "from=$(date -d '1 hour ago' +%s)" \
|
|
55
|
+
--data-urlencode "to=$(date +%s)"
|
|
56
|
+
|
|
57
|
+
# Diagnose connectivity
|
|
58
|
+
datadog-agent diagnose
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### New Relic (`newrelic`)
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
# Auth check
|
|
65
|
+
newrelic whoami
|
|
66
|
+
|
|
67
|
+
# NRQL query
|
|
68
|
+
newrelic nrql query \
|
|
69
|
+
--query "SELECT count(*) FROM Transaction WHERE appName='MyApp' SINCE 1 hour ago"
|
|
70
|
+
|
|
71
|
+
# Open alerts
|
|
72
|
+
newrelic alerts incidents list --state OPEN
|
|
73
|
+
|
|
74
|
+
# Setup: newrelic profiles add --profile myprofile --apiKey "${NEW_RELIC_API_KEY}"
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Dynatrace (`dt`)
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# Auth check
|
|
81
|
+
dt auth
|
|
82
|
+
|
|
83
|
+
# Query metrics
|
|
84
|
+
dt metrics query --metric-selector "builtin:host.cpu.usage" --resolution 5m
|
|
85
|
+
|
|
86
|
+
# Open problems
|
|
87
|
+
dt problems list --status OPEN
|
|
88
|
+
|
|
89
|
+
# Entity list
|
|
90
|
+
dt entities list --entitySelector "type(SERVICE),tag(env:production)"
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## Logging Tools
|
|
96
|
+
|
|
97
|
+
### Splunk (`splunk`)
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
# Status check
|
|
101
|
+
splunk status
|
|
102
|
+
|
|
103
|
+
# Search last hour of errors
|
|
104
|
+
splunk search "index=main error" -earliest=-1h -latest=now
|
|
105
|
+
|
|
106
|
+
# Export results
|
|
107
|
+
splunk search "index=main sourcetype=syslog error" -earliest=-1h -output csv > errors.csv
|
|
108
|
+
|
|
109
|
+
# REST API alternative
|
|
110
|
+
curl -k -u "admin:${SPLUNK_PASSWORD}" "https://localhost:8089/services/search/jobs" \
|
|
111
|
+
-d "search=search index=main error | head 10" -d "output_mode=json"
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### Elasticsearch / ELK
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
# Cluster health
|
|
118
|
+
curl -s "http://localhost:9200/_cluster/health" | jq .
|
|
119
|
+
|
|
120
|
+
# Query errors (last hour)
|
|
121
|
+
curl -s -X GET "http://localhost:9200/logs-*/_search" \
|
|
122
|
+
-H "Content-Type: application/json" \
|
|
123
|
+
-d '{"query":{"bool":{"must":[{"match":{"level":"error"}}],
|
|
124
|
+
"filter":[{"range":{"@timestamp":{"gte":"now-1h"}}}]}}, "size":50}' \
|
|
125
|
+
| jq '.hits.hits[]._source'
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Loki (`logcli`)
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
# Query errors
|
|
132
|
+
logcli query '{app="my-service"} |= "error"' --limit 100 --since=1h
|
|
133
|
+
|
|
134
|
+
# Stream live
|
|
135
|
+
logcli query '{app="my-service"}' --tail
|
|
136
|
+
|
|
137
|
+
# List labels
|
|
138
|
+
logcli labels app
|
|
139
|
+
|
|
140
|
+
# export LOKI_ADDR="http://localhost:3100"
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Metrics Tools
|
|
146
|
+
|
|
147
|
+
### Prometheus (`promtool`)
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
# Validate config
|
|
151
|
+
promtool check config prometheus.yml
|
|
152
|
+
|
|
153
|
+
# Instant query (REST API)
|
|
154
|
+
curl -s "http://localhost:9090/api/v1/query?query=up" | jq '.data.result[]'
|
|
155
|
+
|
|
156
|
+
# Range query
|
|
157
|
+
curl -s "http://localhost:9090/api/v1/query_range" \
|
|
158
|
+
--data-urlencode "query=rate(http_requests_total[5m])" \
|
|
159
|
+
--data-urlencode "start=$(date -d '1 hour ago' +%s)" \
|
|
160
|
+
--data-urlencode "end=$(date +%s)" \
|
|
161
|
+
--data-urlencode "step=60" | jq '.data.result[]'
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### Grafana (`grafana-cli`)
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
# Health check
|
|
168
|
+
curl -s "http://localhost:3000/api/health" | jq .
|
|
169
|
+
|
|
170
|
+
# List dashboards
|
|
171
|
+
curl -s -u "admin:${GRAFANA_PASSWORD}" \
|
|
172
|
+
"http://localhost:3000/api/search?type=dash-db" | jq '.[].title'
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## Cloud Monitoring Tools
|
|
178
|
+
|
|
179
|
+
### AWS CloudWatch (`aws`)
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
# List log groups
|
|
183
|
+
aws logs describe-log-groups --query 'logGroups[*].logGroupName' --output table
|
|
184
|
+
|
|
185
|
+
# Filter errors from a log group
|
|
186
|
+
aws logs filter-log-events \
|
|
187
|
+
--log-group-name "/aws/lambda/my-function" \
|
|
188
|
+
--filter-pattern "ERROR" \
|
|
189
|
+
--start-time "$(date -d '1 hour ago' +%s000)" --limit 50
|
|
190
|
+
|
|
191
|
+
# Get metric stats
|
|
192
|
+
aws cloudwatch get-metric-statistics \
|
|
193
|
+
--namespace "AWS/Lambda" --metric-name "Errors" \
|
|
194
|
+
--dimensions Name=FunctionName,Value=my-function \
|
|
195
|
+
--start-time "$(date -u -d '1 hour ago' +%Y-%m-%dT%H:%M:%SZ)" \
|
|
196
|
+
--end-time "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
|
|
197
|
+
--period 300 --statistics Sum
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### Google Cloud Monitoring (`gcloud`)
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
# Recent errors
|
|
204
|
+
gcloud logging read "severity>=ERROR" --limit=50 --freshness=1h
|
|
205
|
+
|
|
206
|
+
# Filter by resource
|
|
207
|
+
gcloud logging read \
|
|
208
|
+
'resource.type="k8s_container" AND severity="ERROR"' \
|
|
209
|
+
--limit 50 --project="${GOOGLE_PROJECT}"
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### Azure Monitor (`az`)
|
|
213
|
+
|
|
214
|
+
```bash
|
|
215
|
+
# Log Analytics query
|
|
216
|
+
az monitor log-analytics query \
|
|
217
|
+
--workspace "${AZURE_WORKSPACE_ID}" \
|
|
218
|
+
--analytics-query "AzureDiagnostics | where Level == 'Error' | take 50" \
|
|
219
|
+
--output table
|
|
220
|
+
|
|
221
|
+
# Get metric values
|
|
222
|
+
az monitor metrics list \
|
|
223
|
+
--resource "${AZURE_RESOURCE_ID}" --metric "requests" --interval PT5M \
|
|
224
|
+
--start-time "$(date -u -d '1 hour ago' +%Y-%m-%dT%H:%M:%SZ)"
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## Quick Reference
|
|
230
|
+
|
|
231
|
+
| Tool | Binary | Category | Key Operation |
|
|
232
|
+
|------|--------|----------|---------------|
|
|
233
|
+
| Datadog | `datadog-agent` | APM | `status`, REST metrics API |
|
|
234
|
+
| New Relic | `newrelic` | APM | `nrql query` |
|
|
235
|
+
| Dynatrace | `dt` | APM | `metrics query`, `problems list` |
|
|
236
|
+
| Splunk | `splunk` | Logging | `search "index=main ..."` |
|
|
237
|
+
| Elasticsearch | n/a | Logging | REST `/_search` |
|
|
238
|
+
| Loki | `logcli` | Logging | `query '{app="..."}` |
|
|
239
|
+
| Prometheus | `promtool` | Metrics | REST `/api/v1/query` |
|
|
240
|
+
| Grafana | `grafana-cli` | Metrics | REST `/api/search` |
|
|
241
|
+
| AWS CloudWatch | `aws` | Cloud | `logs filter-log-events` |
|
|
242
|
+
| GCP Monitoring | `gcloud` | Cloud | `logging read` |
|
|
243
|
+
| Azure Monitor | `az` | Cloud | `monitor log-analytics query` |
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: prereq-doctor
|
|
3
|
+
description: |
|
|
4
|
+
Diagnose missing tools and dependencies, offer to install them.
|
|
5
|
+
|
|
6
|
+
Use when: "command not found", "ModuleNotFoundError", "missing tool",
|
|
7
|
+
"install dependency", "prereq check", "setup validation"
|
|
8
|
+
phase_relevance: ["build", "review", "operate"]
|
|
9
|
+
archetype_relevance: ["*"]
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Prereq Doctor
|
|
13
|
+
|
|
14
|
+
Diagnoses missing CLI tools and Python dependencies, offers to install them.
|
|
15
|
+
|
|
16
|
+
## When to Use
|
|
17
|
+
|
|
18
|
+
- PostToolUseFailure hook detects a missing-tool error pattern
|
|
19
|
+
- Setup needs to validate a selected integration (issue tracker, CLI tool)
|
|
20
|
+
- Any command fails with "command not found" or "ModuleNotFoundError"
|
|
21
|
+
- User asks to check or install prerequisites
|
|
22
|
+
|
|
23
|
+
## How It Works
|
|
24
|
+
|
|
25
|
+
1. **Diagnose**: Parse the error or tool name to identify what's missing
|
|
26
|
+
2. **Lookup**: Match against the known tool registry (see refs/tool-registry.md)
|
|
27
|
+
3. **Detect platform**: macOS (brew) vs Linux (apt/dnf) vs generic (pip/npm/cargo)
|
|
28
|
+
4. **Ask**: Present the install command and ask the user for permission
|
|
29
|
+
5. **Install**: Run the install command if approved
|
|
30
|
+
6. **Verify**: Confirm the tool is now available
|
|
31
|
+
|
|
32
|
+
## Quick Reference
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
# Diagnose a specific tool
|
|
36
|
+
sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/platform/prereq_doctor.py" check <tool>
|
|
37
|
+
|
|
38
|
+
# Diagnose from an error message
|
|
39
|
+
sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/platform/prereq_doctor.py" diagnose "<error_text>"
|
|
40
|
+
|
|
41
|
+
# Check all prerequisites for wicked-garden
|
|
42
|
+
sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/platform/prereq_doctor.py" check-all
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Usage from Commands
|
|
46
|
+
|
|
47
|
+
Commands should NOT inline install logic. Instead:
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
Skill(skill="wicked-garden:platform:prereq-doctor", args="check gh")
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Or let the PostToolUseFailure hook catch it automatically — just try to use the tool.
|
|
54
|
+
|
|
55
|
+
## Detailed Reference
|
|
56
|
+
|
|
57
|
+
- refs/tool-registry.md — Full tool→install mapping with platform variants
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase_relevance: ["build", "review", "operate"]
|
|
3
|
+
archetype_relevance: ["*"]
|
|
4
|
+
---
|
|
5
|
+
# Tool Registry
|
|
6
|
+
|
|
7
|
+
Maps tool names to install commands per platform. Used by `prereq_doctor.py`.
|
|
8
|
+
|
|
9
|
+
## CLI Tools
|
|
10
|
+
|
|
11
|
+
| Tool | CLI | macOS (brew) | Linux (apt) | Generic | Docs |
|
|
12
|
+
|------|-----|-------------|-------------|---------|------|
|
|
13
|
+
| GitHub | `gh` | `brew install gh` | `apt install gh` | [manual](https://cli.github.com) | https://cli.github.com |
|
|
14
|
+
| Jira | `jira` | `brew install ankitpokhrel/jira-cli/jira-cli` | `go install github.com/ankitpokhrel/jira-cli/v2@latest` | — | https://github.com/ankitpokhrel/jira-cli |
|
|
15
|
+
| Linear | `linear` | `npm install -g @linear/cli` | `npm install -g @linear/cli` | `npm install -g @linear/cli` | https://developers.linear.app |
|
|
16
|
+
| Azure DevOps | `az` | `brew install azure-cli` | `curl -sL https://aka.ms/InstallAzureCLIDeb \| sudo bash` | [manual](https://learn.microsoft.com/en-us/cli/azure/install-azure-cli) | https://learn.microsoft.com/en-us/azure/devops/cli |
|
|
17
|
+
| Rally | `rally` | `pip install rallydev` | `pip install rallydev` | `pip install rallydev` | https://pypi.org/project/rallydev/ |
|
|
18
|
+
| GitLab | `glab` | `brew install glab` | `apt install glab` | [manual](https://gitlab.com/gitlab-org/cli) | https://gitlab.com/gitlab-org/cli |
|
|
19
|
+
| Shortcut | `sc` | `brew install shortcut-cli` | — | `npm install -g @shortcut/cli` | https://github.com/shortcut/cli |
|
|
20
|
+
| DuckDB | `duckdb` | `brew install duckdb` | `apt install duckdb` | [manual](https://duckdb.org/docs/installation) | https://duckdb.org |
|
|
21
|
+
| uv | `uv` | `brew install uv` | `curl -LsSf https://astral.sh/uv/install.sh \| sh` | `curl -LsSf https://astral.sh/uv/install.sh \| sh` | https://docs.astral.sh/uv |
|
|
22
|
+
| tree-sitter | `tree-sitter` | `brew install tree-sitter` | `npm install -g tree-sitter-cli` | `cargo install tree-sitter-cli` | https://tree-sitter.github.io |
|
|
23
|
+
|
|
24
|
+
## Python Dependencies
|
|
25
|
+
|
|
26
|
+
| Package | Import | Install | Used By |
|
|
27
|
+
|---------|--------|---------|---------|
|
|
28
|
+
| rapidfuzz | `from rapidfuzz import ...` | `uv sync` (from root pyproject.toml) | search |
|
|
29
|
+
| pydantic | `from pydantic import ...` | `uv sync` | search, smaht |
|
|
30
|
+
| tree-sitter | `import tree_sitter` | `uv sync` | search |
|
|
31
|
+
| aiofiles | `import aiofiles` | `uv sync` | search |
|
|
32
|
+
| pyyaml | `import yaml` | `uv sync` | search |
|
|
33
|
+
| lxml | `from lxml import ...` | `uv sync` | search |
|
|
34
|
+
| kreuzberg | `import kreuzberg` | `uv sync` | search |
|
|
35
|
+
|
|
36
|
+
## Error Pattern → Tool Mapping
|
|
37
|
+
|
|
38
|
+
| Error Pattern | Missing Tool | Fix |
|
|
39
|
+
|---------------|-------------|-----|
|
|
40
|
+
| `command not found: gh` | gh CLI | Install gh |
|
|
41
|
+
| `command not found: uv` | uv | Install uv |
|
|
42
|
+
| `command not found: jira` | jira-cli | Install jira-cli |
|
|
43
|
+
| `command not found: az` | azure-cli | Install az |
|
|
44
|
+
| `command not found: glab` | glab | Install glab |
|
|
45
|
+
| `ModuleNotFoundError: No module named 'rapidfuzz'` | Python deps | Run `uv sync` |
|
|
46
|
+
| `ModuleNotFoundError: No module named 'pydantic'` | Python deps | Run `uv sync` |
|
|
47
|
+
| `ModuleNotFoundError: No module named 'yaml'` | Python deps | Run `uv sync` |
|
|
48
|
+
| `ModuleNotFoundError: No module named 'tree_sitter'` | Python deps | Run `uv sync` |
|
|
49
|
+
|
|
50
|
+
## Azure DevOps Extension
|
|
51
|
+
|
|
52
|
+
After installing `az`, the azure-devops extension is also needed:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
az extension add --name azure-devops
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
This is handled automatically by the prereq-doctor when `ado` is the target.
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
# Distributed Trace Analysis Rubric
|
|
2
|
+
|
|
3
|
+
Analyze distributed traces for latency, bottleneck detection, and service dependencies.
|
|
4
|
+
|
|
5
|
+
## Step 1: Discover Tracing Sources
|
|
6
|
+
|
|
7
|
+
Use `ListMcpResourcesTool` and scan for tracing capability:
|
|
8
|
+
- Jaeger, Zipkin, Tempo
|
|
9
|
+
- Datadog APM, New Relic
|
|
10
|
+
- AWS X-Ray, GCP Cloud Trace
|
|
11
|
+
- OpenTelemetry Collector
|
|
12
|
+
|
|
13
|
+
## Step 2: Determine Analysis Type
|
|
14
|
+
|
|
15
|
+
Based on argument:
|
|
16
|
+
- **Service name**: Analyze traces for a specific service
|
|
17
|
+
- **Trace ID**: Deep dive into a single trace
|
|
18
|
+
- **"slow"**: Find and analyze the slowest p99 requests
|
|
19
|
+
|
|
20
|
+
## Step 3: Investigation Checklist
|
|
21
|
+
|
|
22
|
+
For each target trace or service:
|
|
23
|
+
- [ ] Latency breakdown by span — where is time spent?
|
|
24
|
+
- [ ] Service dependency chain — request flow through all services
|
|
25
|
+
- [ ] Bottleneck identification — slowest spans as % of total
|
|
26
|
+
- [ ] Error propagation — failure chain analysis
|
|
27
|
+
- [ ] N+1 query patterns — repeated DB queries per loop iteration
|
|
28
|
+
- [ ] Sequential vs parallel opportunities — spans that could run concurrently
|
|
29
|
+
|
|
30
|
+
## Step 4: Fallback (No Tracing Available)
|
|
31
|
+
|
|
32
|
+
Infer architecture from code patterns:
|
|
33
|
+
```bash
|
|
34
|
+
# Find service calls
|
|
35
|
+
grep -r "fetch\|axios\|http\|grpc\|requests\." --include="*.{js,ts,py,go}" -l
|
|
36
|
+
|
|
37
|
+
# Find database queries
|
|
38
|
+
grep -r "query\|select\|insert\|db\." --include="*.{js,ts,py,go}" -l
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Report inferred dependency graph and flag where tracing instrumentation is missing.
|
|
42
|
+
|
|
43
|
+
## Output Format
|
|
44
|
+
|
|
45
|
+
```markdown
|
|
46
|
+
## Trace Analysis
|
|
47
|
+
|
|
48
|
+
**Target**: {service name | trace ID | "slow requests"}
|
|
49
|
+
**Time Range**: {period}
|
|
50
|
+
**Source**: {tracing backend | "code inference (no tracing found)"}
|
|
51
|
+
|
|
52
|
+
### Latency Breakdown
|
|
53
|
+
| Span | Duration | % of Total |
|
|
54
|
+
|------|----------|------------|
|
|
55
|
+
| {service} | {ms} | {%} |
|
|
56
|
+
| └─ {child-span} | {ms} | {%} |
|
|
57
|
+
|
|
58
|
+
### Service Dependencies
|
|
59
|
+
```
|
|
60
|
+
{ascii dependency diagram}
|
|
61
|
+
service-a → service-b → db
|
|
62
|
+
→ cache
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Bottlenecks Identified
|
|
66
|
+
1. **{span name}** — {duration} ({%} of total)
|
|
67
|
+
- Evidence: {trace ID or pattern}
|
|
68
|
+
- Fix: {recommendation}
|
|
69
|
+
|
|
70
|
+
### Patterns Detected
|
|
71
|
+
- **N+1 queries**: {location — e.g., `src/inventory.ts:45`, 12 sequential queries}
|
|
72
|
+
- **Slow external calls**: {service name, avg latency}
|
|
73
|
+
- **Sequential when parallel possible**: {location}
|
|
74
|
+
- **Missing instrumentation**: {service boundaries not traced}
|
|
75
|
+
|
|
76
|
+
### Optimization Recommendations
|
|
77
|
+
| Issue | Expected Improvement | Effort |
|
|
78
|
+
|-------|---------------------|--------|
|
|
79
|
+
| {issue} | {reduction} | Low/Med/High |
|
|
80
|
+
|
|
81
|
+
1. {highest-impact fix with before/after code if applicable}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Common Patterns
|
|
85
|
+
|
|
86
|
+
### N+1 Query
|
|
87
|
+
**Symptom**: Many short repeated spans (same query, N iterations).
|
|
88
|
+
**Fix**: Batch the query — `WHERE id IN (?)` instead of loop.
|
|
89
|
+
**Expected**: Often 80-90% latency reduction on the affected span.
|
|
90
|
+
|
|
91
|
+
### Synchronous Fan-out
|
|
92
|
+
**Symptom**: Several external calls sequential that could be parallel.
|
|
93
|
+
**Fix**: `Promise.all()` / `asyncio.gather()` / goroutines.
|
|
94
|
+
|
|
95
|
+
### Missing Circuit Breaker
|
|
96
|
+
**Symptom**: One downstream timeout causes caller to also timeout.
|
|
97
|
+
**Fix**: Add circuit breaker (Resilience4j, Hystrix, custom) with fallback.
|
|
98
|
+
|
|
99
|
+
### Cold-Start Penalty
|
|
100
|
+
**Symptom**: First request to a service much slower than subsequent.
|
|
101
|
+
**Fix**: Warm-up endpoints, connection pool pre-warming, lazy init moved to startup.
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: acceptance-criteria
|
|
3
|
+
description: |
|
|
4
|
+
Define testable acceptance criteria from requirements and design.
|
|
5
|
+
Bridge product requirements with QE test scenarios.
|
|
6
|
+
|
|
7
|
+
Use when: "define acceptance criteria", "how do we know it's done",
|
|
8
|
+
"what should QE test", "definition of done"
|
|
9
|
+
phase_relevance: ["clarify", "design", "review"]
|
|
10
|
+
archetype_relevance: ["*"]
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Acceptance Criteria Skill
|
|
14
|
+
|
|
15
|
+
Transform requirements into testable acceptance criteria.
|
|
16
|
+
|
|
17
|
+
## Core Concept
|
|
18
|
+
|
|
19
|
+
Acceptance criteria are the contract between product and delivery:
|
|
20
|
+
- Product: "Here's what success looks like"
|
|
21
|
+
- QE: "Here's how we verify it"
|
|
22
|
+
- Engineering: "Here's what we must deliver"
|
|
23
|
+
|
|
24
|
+
## Given/When/Then Format
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
Given [precondition/context]
|
|
28
|
+
When [action/event]
|
|
29
|
+
Then [expected outcome]
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
**Why this format?**
|
|
33
|
+
- Forces specificity
|
|
34
|
+
- Testable by definition
|
|
35
|
+
- Clear success criteria
|
|
36
|
+
- Language-agnostic
|
|
37
|
+
|
|
38
|
+
## Process
|
|
39
|
+
|
|
40
|
+
### 1. Read Requirements
|
|
41
|
+
|
|
42
|
+
Understand:
|
|
43
|
+
- User stories
|
|
44
|
+
- Design documents
|
|
45
|
+
- Business rules
|
|
46
|
+
- Constraints
|
|
47
|
+
|
|
48
|
+
### 2. Identify Scenarios
|
|
49
|
+
|
|
50
|
+
For each requirement, consider:
|
|
51
|
+
- **Happy path**: Normal, expected flow
|
|
52
|
+
- **Error conditions**: Invalid inputs, failures
|
|
53
|
+
- **Edge cases**: Boundaries, empty states
|
|
54
|
+
- **Non-functional**: Performance, security, usability
|
|
55
|
+
|
|
56
|
+
### 3. Write Criteria
|
|
57
|
+
|
|
58
|
+
Format each scenario:
|
|
59
|
+
```
|
|
60
|
+
Given [specific context]
|
|
61
|
+
When [specific action]
|
|
62
|
+
Then [specific, measurable outcome]
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### 4. Validate
|
|
66
|
+
|
|
67
|
+
Check each criterion:
|
|
68
|
+
- [ ] Specific (not vague)
|
|
69
|
+
- [ ] Testable (can verify)
|
|
70
|
+
- [ ] Measurable (clear pass/fail)
|
|
71
|
+
- [ ] Independent (standalone)
|
|
72
|
+
- [ ] Complete (covers scenario)
|
|
73
|
+
|
|
74
|
+
### 5. Organize by Priority
|
|
75
|
+
|
|
76
|
+
- **P0**: Must have (blocker if missing)
|
|
77
|
+
- **P1**: Should have (important)
|
|
78
|
+
- **P2**: Nice to have (enhancement)
|
|
79
|
+
|
|
80
|
+
## Example: Login Feature
|
|
81
|
+
|
|
82
|
+
```markdown
|
|
83
|
+
### US1: User Authentication
|
|
84
|
+
|
|
85
|
+
**Happy Path (P0)**:
|
|
86
|
+
AC1: Given valid credentials, When user submits login, Then user redirected to dashboard
|
|
87
|
+
AC2: Given successful login, When checking session, Then session valid for 30 minutes
|
|
88
|
+
|
|
89
|
+
**Error Handling (P0)**:
|
|
90
|
+
AC3: Given invalid password, When user submits login, Then error message "Invalid credentials"
|
|
91
|
+
AC4: Given account locked, When user submits login, Then error message "Account locked"
|
|
92
|
+
AC5: Given 3 failed attempts, When user tries again, Then account locked for 15 minutes
|
|
93
|
+
|
|
94
|
+
**Edge Cases (P1)**:
|
|
95
|
+
AC6: Given empty email field, When user submits, Then error "Email required"
|
|
96
|
+
AC7: Given malformed email, When user submits, Then error "Invalid email format"
|
|
97
|
+
AC8: Given concurrent logins, When second login occurs, Then first session invalidated
|
|
98
|
+
|
|
99
|
+
**Non-Functional (P1)**:
|
|
100
|
+
AC9: Given 1000 concurrent logins, When system under load, Then response time < 2 seconds
|
|
101
|
+
AC10: Given login attempt, When credentials checked, Then password encrypted in transit
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## Common Patterns
|
|
105
|
+
|
|
106
|
+
**Data Creation**:
|
|
107
|
+
```
|
|
108
|
+
Given user on create form
|
|
109
|
+
When user enters valid data and submits
|
|
110
|
+
Then new record saved and confirmation shown
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**Data Validation**:
|
|
114
|
+
```
|
|
115
|
+
Given user on form with required fields
|
|
116
|
+
When user submits without filling required field
|
|
117
|
+
Then error message shown and form not submitted
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
**Authorization**:
|
|
121
|
+
```
|
|
122
|
+
Given user without admin role
|
|
123
|
+
When user attempts admin action
|
|
124
|
+
Then access denied message shown
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
**API Response**:
|
|
128
|
+
```
|
|
129
|
+
Given valid API request
|
|
130
|
+
When endpoint called
|
|
131
|
+
Then 200 status and expected JSON schema returned
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## Integration with QE
|
|
135
|
+
|
|
136
|
+
Acceptance criteria feed directly into test scenarios:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
# Product defines AC
|
|
140
|
+
/wicked-garden:product:acceptance phases/design/
|
|
141
|
+
|
|
142
|
+
# Generate test scenarios from AC
|
|
143
|
+
/wicked-testing:plan
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
**Flow**:
|
|
147
|
+
1. Product: Write acceptance criteria
|
|
148
|
+
2. QE: Review and generate test scenarios
|
|
149
|
+
3. Engineering: Implement to meet criteria
|
|
150
|
+
4. QE: Verify against criteria
|
|
151
|
+
|
|
152
|
+
## Quality Checklist
|
|
153
|
+
|
|
154
|
+
Good acceptance criteria:
|
|
155
|
+
- [ ] Use Given/When/Then format
|
|
156
|
+
- [ ] Specific and unambiguous
|
|
157
|
+
- [ ] Testable with clear pass/fail
|
|
158
|
+
- [ ] Cover happy path, errors, edges
|
|
159
|
+
- [ ] Include non-functional requirements
|
|
160
|
+
- [ ] Prioritized by criticality
|
|
161
|
+
- [ ] Reviewed by QE for testability
|
|
162
|
+
|
|
163
|
+
## Output Format
|
|
164
|
+
|
|
165
|
+
```markdown
|
|
166
|
+
## Acceptance Criteria
|
|
167
|
+
|
|
168
|
+
### User Story: {Story Title}
|
|
169
|
+
|
|
170
|
+
**Happy Path**:
|
|
171
|
+
- AC1: Given {context}, When {action}, Then {outcome} [P0]
|
|
172
|
+
|
|
173
|
+
**Error Conditions**:
|
|
174
|
+
- AC2: Given {error}, When {action}, Then {handling} [P0]
|
|
175
|
+
|
|
176
|
+
**Edge Cases**:
|
|
177
|
+
- AC3: Given {edge}, When {action}, Then {behavior} [P1]
|
|
178
|
+
|
|
179
|
+
**Non-Functional**:
|
|
180
|
+
- AC4: Given {load}, When {action}, Then {performance} [P1]
|
|
181
|
+
|
|
182
|
+
**Test Data Requirements**:
|
|
183
|
+
- {Data needed for testing}
|
|
184
|
+
|
|
185
|
+
**QE Handoff Notes**:
|
|
186
|
+
- {Special testing considerations}
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
## Progressive Disclosure
|
|
190
|
+
|
|
191
|
+
- **SKILL.md** (this file): Quick reference
|
|
192
|
+
- **refs/ac-examples.md**: More examples by domain
|
|
193
|
+
- **refs/ac-anti-patterns.md**: Common mistakes to avoid
|