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,118 @@
|
|
|
1
|
+
---
|
|
2
|
+
allowed-tools: ["AskUserQuestion", "Bash"]
|
|
3
|
+
description: "Install wicked-* peer tools — version-checks garden first, then picks layers and solo beds via multi-select"
|
|
4
|
+
argument-hint: ""
|
|
5
|
+
phase_relevance: ["bootstrap"]
|
|
6
|
+
archetype_relevance: ["*"]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# /wicked-garden:install
|
|
10
|
+
|
|
11
|
+
First-run installer for the wicked-* ecosystem. Ensures wicked-garden is current, installs the required evidence floor (wicked-vault automatically — no question asked), then prompts for optional layers and solo beds via a multi-select picker. The loom peer-resolution engine is absorbed into wicked-garden itself (scripts/loom/) — no separate wicked-loom install is needed.
|
|
12
|
+
|
|
13
|
+
## Instructions
|
|
14
|
+
|
|
15
|
+
### 1. Check wicked-garden is current
|
|
16
|
+
|
|
17
|
+
Get the installed version from its package.json (typically `~/.claude/plugins/wicked-garden/package.json` or the path Claude Code reports for `CLAUDE_PLUGIN_ROOT`):
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
node -e "try{const p=require('path'),os=require('os');const v=require(p.join(os.homedir(),'.claude','plugins','wicked-garden','package.json')).version;console.log(v)}catch(e){console.log('UNKNOWN')}" 2>/dev/null || echo "UNKNOWN"
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Get the npm latest:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npm view wicked-garden version 2>/dev/null || echo "UNKNOWN"
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
If installed < latest: show "wicked-garden {installed} is installed — latest is {latest}. Consider updating via the marketplace (`claude plugins marketplace update wicked-garden`)." Then continue — don't block on this.
|
|
30
|
+
|
|
31
|
+
If UNKNOWN: note it and continue.
|
|
32
|
+
|
|
33
|
+
### 2. Install the required evidence floor
|
|
34
|
+
|
|
35
|
+
No prompt — wicked-vault is the mandatory evidence backend for every gate. The loom
|
|
36
|
+
peer-resolution engine is built into wicked-garden (scripts/loom/) — nothing to install
|
|
37
|
+
for loom. Run vault install and show a progress line:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
npx wicked-vault-install
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
On failure: display the raw error and note "you can install wicked-vault manually via `npx wicked-testing install` and re-run `/wicked-garden:install` to retry." Continue to step 3 regardless — step 5 will surface what's still missing.
|
|
44
|
+
|
|
45
|
+
### 3. Pick optional layers and solo beds
|
|
46
|
+
|
|
47
|
+
Detect question mode:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/setup/detect_state.py" question-mode 2>/dev/null || echo "INTERACTIVE"
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
**INTERACTIVE mode (AskUserQuestion)**
|
|
56
|
+
|
|
57
|
+
Q1 — multi-select, header "Layers":
|
|
58
|
+
|
|
59
|
+
"Which optional layers do you want to add?"
|
|
60
|
+
|
|
61
|
+
Options (multiSelect: true):
|
|
62
|
+
- label: "wicked-testing", description: "QE pipeline — verdicts your agent can't fake · author ≠ executor ≠ reviewer"
|
|
63
|
+
- label: "wicked-brain", description: "Persistent memory — cross-session recall, cited search, code graph"
|
|
64
|
+
- label: "wicked-understanding", description: "Repo playbooks from HEAD — the repo's 'how,' always current"
|
|
65
|
+
- label: "wicked-bus", description: "Local event bus — one SQLite file, no broker, no daemon, no ports"
|
|
66
|
+
|
|
67
|
+
Q2 — single-select, header "Solo bed":
|
|
68
|
+
|
|
69
|
+
"Add wicked-interactive — the live HTML presentation builder?"
|
|
70
|
+
|
|
71
|
+
Options:
|
|
72
|
+
- label: "Yes — add it", description: "Great for decks, landing pages, and demos at 11pm. Standalone — no garden required."
|
|
73
|
+
- label: "Skip for now", description: "Add it later by re-running /wicked-garden:install"
|
|
74
|
+
|
|
75
|
+
Echo back the full selection list before installing: "Installing: [comma-joined list]. Proceeding..."
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
**PLAIN_TEXT mode (dangerous — AskUserQuestion broken)**
|
|
80
|
+
|
|
81
|
+
Present both questions as numbered plain-text lists. STOP and wait for the user's reply before proceeding. Parse the reply, echo it back, then continue.
|
|
82
|
+
|
|
83
|
+
### 4. Install selected tools
|
|
84
|
+
|
|
85
|
+
Run in the order listed. Show a ✓ or ✗ line per tool as each completes.
|
|
86
|
+
|
|
87
|
+
| Tool | Method |
|
|
88
|
+
|---|---|
|
|
89
|
+
| wicked-testing | `npx wicked-testing install` |
|
|
90
|
+
| wicked-brain | Claude Code slash command — display `/plugin install wicked-brain`, ask user to run it, then verify by checking if the plugin dir exists under `~/.claude/plugins/wicked-brain` |
|
|
91
|
+
| wicked-understanding | `npx skills add mikeparcewski/wicked-understanding --all` |
|
|
92
|
+
| wicked-bus | Claude Code slash command — display `/plugin install wicked-bus`, ask user to run it, then verify under `~/.claude/plugins/wicked-bus` |
|
|
93
|
+
| wicked-interactive | `claude plugins marketplace add mikeparcewski/wicked-interactive && claude plugins install wicked-interactive` |
|
|
94
|
+
|
|
95
|
+
For any tool where the user must run a slash command, clearly display the command, pause, and wait for confirmation before marking it done.
|
|
96
|
+
|
|
97
|
+
### 5. Verify peer health
|
|
98
|
+
|
|
99
|
+
Run the internal loom doctor (no external wicked-loom needed):
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" -c "
|
|
103
|
+
import sys, os, json
|
|
104
|
+
sys.path.insert(0, os.path.join(os.environ.get('CLAUDE_PLUGIN_ROOT', '.'), 'scripts'))
|
|
105
|
+
from loom import compose
|
|
106
|
+
rows = compose.check_all()
|
|
107
|
+
print(json.dumps(rows, indent=2))
|
|
108
|
+
"
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Parse JSON output. Show a summary table — peer name, version/status (`ok`/`drift`/`present`/`missing`/`error`), and a next-step hint for anything `missing` or `drift`. A `present` row (peer responds but version unreadable) is a warning, not blocking.
|
|
112
|
+
|
|
113
|
+
### 6. Done
|
|
114
|
+
|
|
115
|
+
Display:
|
|
116
|
+
- A clean installed-tools summary with versions
|
|
117
|
+
- Quick start hint: `/wicked-garden:setup` — full onboarding (indexes your codebase into wicked-brain, writes project memory, configures the status line)
|
|
118
|
+
- Or just start: describe a task and wicked-garden routes it to the right work-shape archetype automatically
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
allowed-tools: ["Bash"]
|
|
3
|
+
description: "Show or set the session intent variable (simple-edit | feature | rigor | research). Sticky for the session; auto-detect resets next session."
|
|
4
|
+
argument-hint: "[simple-edit|feature|rigor|research]"
|
|
5
|
+
phase_relevance: ["*"]
|
|
6
|
+
archetype_relevance: ["*"]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# /wicked-garden:intent
|
|
10
|
+
|
|
11
|
+
Show or override the session intent variable — the v10 Phase 1 keystone (#813). Auto-detected on turn 1; sticky for the session; this command overrides explicitly.
|
|
12
|
+
|
|
13
|
+
**Vocabulary (locked)**: `simple-edit | feature | rigor | research`. To change, run a brainstorm — don't add ad-hoc.
|
|
14
|
+
|
|
15
|
+
**Usage**:
|
|
16
|
+
- `/wicked-garden:intent` — show the effective current value and how it was set
|
|
17
|
+
- `/wicked-garden:intent <value>` — explicit override; sticky until session end
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
ARG="${1:-}"
|
|
21
|
+
sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" - "$ARG" <<'PY'
|
|
22
|
+
import os
|
|
23
|
+
import sys
|
|
24
|
+
|
|
25
|
+
plugin_root = os.environ.get("CLAUDE_PLUGIN_ROOT")
|
|
26
|
+
if not plugin_root:
|
|
27
|
+
print("error: CLAUDE_PLUGIN_ROOT not set", file=sys.stderr)
|
|
28
|
+
sys.exit(1)
|
|
29
|
+
sys.path.insert(0, os.path.join(plugin_root, "scripts"))
|
|
30
|
+
|
|
31
|
+
from _session import SessionState
|
|
32
|
+
|
|
33
|
+
VALID = ("simple-edit", "feature", "rigor", "research")
|
|
34
|
+
arg = (sys.argv[1] if len(sys.argv) > 1 else "").strip()
|
|
35
|
+
state = SessionState.load()
|
|
36
|
+
|
|
37
|
+
if not arg:
|
|
38
|
+
eff = state.intent or "(not set; auto-detect runs on next turn)"
|
|
39
|
+
src = "explicit" if state.intent_explicit else "auto-detected" if state.intent else "n/a"
|
|
40
|
+
print(f"intent: {eff} ({src})")
|
|
41
|
+
sys.exit(0)
|
|
42
|
+
|
|
43
|
+
if arg not in VALID:
|
|
44
|
+
print(f"error: '{arg}' not in {VALID}", file=sys.stderr)
|
|
45
|
+
sys.exit(1)
|
|
46
|
+
|
|
47
|
+
state.update(intent=arg, intent_explicit=True)
|
|
48
|
+
print(f"intent set: {arg} (explicit override; sticky until session end)")
|
|
49
|
+
PY
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
After explicit override, the next system-reminder echoes a bare `<wg intent="X" t=N />` label so the model can see the user steered the framework. Auto-detected intent stays invisible (prevents confirmation bias).
|
|
53
|
+
|
|
54
|
+
References: brain memory `v10-intent-variable-design-decision`, brainstorm `v10-session-01-intent-and-hook-gating`, PR #814 (the original Phase 1 ship), PRs #818/#819 (skill-discovery patches that proved skills under `skills/{domain}/{name}/SKILL.md` don't surface as slash commands — hence this command file).
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Start a new brainstorm session with dynamic focus groups
|
|
3
|
+
argument-hint: "<topic> [--personas list] [--rounds n] [--converge fast]"
|
|
4
|
+
phase_relevance: ["clarify", "design"]
|
|
5
|
+
archetype_relevance: ["*"]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# /wicked-garden:jam:brainstorm
|
|
9
|
+
|
|
10
|
+
Start a full brainstorm with evidence-backed perspectives.
|
|
11
|
+
|
|
12
|
+
> **Progression**: `quick` (60s gut-check) → `brainstorm` (full session, this command) → `council` (structured verdict).
|
|
13
|
+
> See also: `/wicked-garden:jam:quick`, `/wicked-garden:jam:council` The facilitator gathers evidence from the ecosystem (past decisions, code context, brainstorm outcomes) before assembling personas, so they argue from data — not just opinions. After synthesis, a structured decision record is automatically stored via wicked-brain:memory for organizational memory.
|
|
14
|
+
|
|
15
|
+
## Convergence Modes
|
|
16
|
+
|
|
17
|
+
- **normal** (default): Run all requested rounds (2-3), then synthesize.
|
|
18
|
+
- **fast** (`--converge fast`): After each round, assess whether there is enough signal to synthesize. If personas are converging on a clear direction with at least 2 actionable insights and no major unresolved tensions, skip remaining rounds and synthesize immediately. Maximum: 1 round before early synthesis is allowed.
|
|
19
|
+
|
|
20
|
+
Delegate to the facilitator agent:
|
|
21
|
+
|
|
22
|
+
```
|
|
23
|
+
Task(subagent_type="wicked-garden:jam:brainstorm-facilitator",
|
|
24
|
+
prompt="Run a full brainstorm session on: {topic}. Options: {personas}, {rounds}, convergence_mode={converge|'normal'}.
|
|
25
|
+
|
|
26
|
+
Convergence mode instructions:
|
|
27
|
+
- If convergence_mode is 'fast': After EACH round, perform a convergence check before proceeding. Ask: (1) Are there at least 2 clear, actionable insights? (2) Is there broad directional agreement among personas? (3) Are remaining tensions minor or well-characterized? If all three are YES, skip remaining rounds and proceed directly to synthesis. This is the EXPECTED path in fast mode — do not run extra rounds just because they were planned.
|
|
28
|
+
- If convergence_mode is 'normal': Run all planned rounds, but still note in synthesis if convergence happened early.
|
|
29
|
+
|
|
30
|
+
Follow the full session structure including evidence gathering, persona assembly, discussion rounds, multi-AI perspective (if available), synthesis, and decision record storage.
|
|
31
|
+
|
|
32
|
+
Native-task tracking (fail open on any tool errors):
|
|
33
|
+
1. Session start: TaskCreate(subject='Jam: {topic}', metadata={'event_type':'task','chain_id':'jam-{topic-slug}.root','source_agent':'jam-facilitator','initiative':'{topic-slug}'})
|
|
34
|
+
2. After each persona contributes, after synthesis, and on decision: TaskUpdate(taskId, description='append: {persona_name}: {key_insight}' / 'Synthesis: {summary}' / 'Decision: {decision_record}')
|
|
35
|
+
|
|
36
|
+
Continue storing outcomes in wicked-brain:memory (native task = process, brain memory = outcome).")
|
|
37
|
+
```
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Structured multi-model evaluation using external LLM CLIs for independent perspectives
|
|
3
|
+
argument-hint: "<topic>" --options "A, B, C" [--criteria "perf, cost, risk"]
|
|
4
|
+
phase_relevance: ["clarify", "design"]
|
|
5
|
+
archetype_relevance: ["*"]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# /wicked-garden:jam:council
|
|
9
|
+
|
|
10
|
+
Structured evaluation tool that uses real external LLM CLIs — registry-driven (20+ CLIs: Codex, Gemini, Copilot, OpenCode, Pi, Aider, Goose, Amp, Droid, …; see `scripts/jam/agentic_cli_registry.py`) — to get genuinely independent model perspectives. Installed CLIs are detected AND usability-probed via `scripts/jam/detect_clis.py --probe` (auth-revoked / unconfigured / daemon-down CLIs are excluded). When fewer than 2 usable external CLIs are present, council seats are filled with `Task()` subagents so deliberation always happens. Unlike brainstorm (free-form creative exploration), council is a **rigid evaluation tool** for when you have defined options and need a verdict.
|
|
11
|
+
|
|
12
|
+
**Key distinction**: `quick` = 60s ideation, `brainstorm` = full session (generation/explore), `council` = structured evaluation (decide).
|
|
13
|
+
|
|
14
|
+
> **Progression**: `quick` → `brainstorm` → `council` (this command, final step).
|
|
15
|
+
> See also: `/wicked-garden:jam:quick`, `/wicked-garden:jam:brainstorm`
|
|
16
|
+
|
|
17
|
+
Natural workflow: `brainstorm → identify candidates → council → decide`
|
|
18
|
+
|
|
19
|
+
Delegate to the council agent:
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
Task(subagent_type="wicked-garden:jam:council",
|
|
23
|
+
prompt="Run a council evaluation on: {topic}. Options: {options}. Criteria: {criteria}.")
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Acting on the council verdict
|
|
27
|
+
|
|
28
|
+
The council returns a synthesised verdict plus per-model raw votes. v11
|
|
29
|
+
archetypes decide what to do with the result; the council itself does
|
|
30
|
+
not gate. Heuristics for the caller:
|
|
31
|
+
|
|
32
|
+
- **Unanimous APPROVE / REJECT with all confidences ≥ 0.7** — proceed with
|
|
33
|
+
the verdict.
|
|
34
|
+
- **Split verdict (3-1 or closer) OR any confidence < 0.6** — surface the
|
|
35
|
+
raw votes to the user and pause for human adjudication. The disagreement
|
|
36
|
+
carries information that the synthesised verdict erases.
|
|
37
|
+
- **High-stakes archetypes (`migrate`, `incident`, anything with
|
|
38
|
+
`hard:cutover` / `hard:mitigate`)** — always show the raw votes
|
|
39
|
+
alongside the verdict; never auto-proceed on a synth-only summary.
|
|
40
|
+
|
|
41
|
+
A v6-era helper (deleted in v11.0.0) encoded these rules in code as part
|
|
42
|
+
of the universal-pipeline machinery. v11 deleted the gate it fed into;
|
|
43
|
+
the heuristics above are the same shape, applied inline by the agent.
|
|
44
|
+
|
|
45
|
+
## Raw per-model votes (Issue #584)
|
|
46
|
+
|
|
47
|
+
Default output now carries both the synthesised verdict AND a `raw_votes` list so callers can see per-model nuance even on unanimous verdicts. Assemble the envelope via `scripts/jam/consensus.py::build_council_output(votes, synthesized)` — it returns `{"synthesized": {...}, "raw_votes": [{"model", "verdict", "confidence", "rationale"}, ...]}` where each `rationale` is the model's own one-liner (or the first 240 chars of its response) and missing confidences stay `null`, not `0.0`.
|
|
48
|
+
|
|
49
|
+
Operator override: `WG_COUNCIL_OUTPUT=both|synth|raw` (default `both`). Use `synth` for the legacy single-key shape; use `raw` when tooling only wants the unvarnished per-model layer.
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Quick exploration with fewer personas and one round
|
|
3
|
+
argument-hint: "<idea or question>"
|
|
4
|
+
phase_relevance: ["clarify", "design"]
|
|
5
|
+
archetype_relevance: ["*"]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# /wicked-garden:jam:quick
|
|
9
|
+
|
|
10
|
+
Quick 60-second exploration with 4 personas and 1 round.
|
|
11
|
+
|
|
12
|
+
> **Progression**: `quick` (60s gut-check, ephemeral) → `brainstorm` (full session
|
|
13
|
+
> with evidence + decision storage) → `council` (structured verdict with external LLMs).
|
|
14
|
+
> See also: `/wicked-garden:jam:brainstorm`, `/wicked-garden:jam:council`
|
|
15
|
+
|
|
16
|
+
## Run it inline (no dispatch)
|
|
17
|
+
|
|
18
|
+
1. `Read("${CLAUDE_PLUGIN_ROOT}/skills/jam/refs/quick.md")` — the single-pass
|
|
19
|
+
rubric: 4 personas, 1 forced round, synthesis format (Key Insights / Action
|
|
20
|
+
Items / Open Questions), hard constraints (no storage, no multi-AI, ≤200 words).
|
|
21
|
+
2. Apply the rubric directly to the topic. Do NOT run additional rounds. Do NOT store.
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Revisit a past brainstorm decision and record its outcome
|
|
3
|
+
argument-hint: "<topic or decision keyword>"
|
|
4
|
+
phase_relevance: ["clarify", "design"]
|
|
5
|
+
archetype_relevance: ["*"]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# /wicked-garden:jam:revisit
|
|
9
|
+
|
|
10
|
+
Revisit a past brainstorm decision to record whether it was validated, invalidated, or modified.
|
|
11
|
+
|
|
12
|
+
## Instructions
|
|
13
|
+
|
|
14
|
+
### 1. Recall Past Decision
|
|
15
|
+
|
|
16
|
+
Search for the decision via wicked-brain
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
Skill(
|
|
20
|
+
skill="wicked-brain:memory",
|
|
21
|
+
args="recall \"decisions tagged 'jam,decision' related to: {topic}\" --filter_type decision"
|
|
22
|
+
)
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
If no matching decision found, inform the user and suggest running `/wicked-garden:jam:brainstorm` first.
|
|
26
|
+
|
|
27
|
+
### 2. Display Decision Summary
|
|
28
|
+
|
|
29
|
+
Show the user what was decided:
|
|
30
|
+
|
|
31
|
+
```markdown
|
|
32
|
+
## Past Decision: {topic}
|
|
33
|
+
|
|
34
|
+
**Decided**: {chosen option}
|
|
35
|
+
**When**: {date}
|
|
36
|
+
**Confidence**: {HIGH/MEDIUM/LOW}
|
|
37
|
+
**Rationale**: {key reasoning}
|
|
38
|
+
**Alternatives considered**: {other options}
|
|
39
|
+
**Personas involved**: {list}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### 3. Ask for Outcome
|
|
43
|
+
|
|
44
|
+
Ask the user:
|
|
45
|
+
|
|
46
|
+
```markdown
|
|
47
|
+
How did this decision work out?
|
|
48
|
+
|
|
49
|
+
1. **Validated** — The decision was correct and worked well
|
|
50
|
+
2. **Invalidated** — The decision was wrong, we had to change course
|
|
51
|
+
3. **Modified** — The decision was partially right but needed adjustment
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### 4. Record Outcome
|
|
55
|
+
|
|
56
|
+
Store the outcome in wicked-brain:memory
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
wicked-brain:memory "Outcome: {topic}\nOriginal decision: {chosen}\nResult: {validated/invalidated/modified}\nReason: {user's explanation}\nLessons: {what we learned}"
|
|
60
|
+
--type decision
|
|
61
|
+
--tags jam,outcome,{topic-keywords}
|
|
62
|
+
--importance high
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### 5. Report
|
|
66
|
+
|
|
67
|
+
```markdown
|
|
68
|
+
## Outcome Recorded
|
|
69
|
+
|
|
70
|
+
**Decision**: {topic}
|
|
71
|
+
**Result**: {validated/invalidated/modified}
|
|
72
|
+
**Lesson**: {what was learned}
|
|
73
|
+
|
|
74
|
+
This outcome will be surfaced in future brainstorms on similar topics.
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Graceful Degradation
|
|
78
|
+
|
|
79
|
+
Without wicked-brain: display a message that decision revisit requires wicked-brain for decision storage. Suggest the user install the wicked-brain plugin for full decision lifecycle tracking.
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Invoke a named persona to perform a task with a specific perspective
|
|
3
|
+
argument-hint: "<persona-name> <task description>"
|
|
4
|
+
phase_relevance: ["*"]
|
|
5
|
+
archetype_relevance: ["*"]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# /wicked-garden:persona:as
|
|
9
|
+
|
|
10
|
+
Invoke a named persona to apply their perspective to any task.
|
|
11
|
+
|
|
12
|
+
## Arguments
|
|
13
|
+
|
|
14
|
+
Parse from: $ARGUMENTS
|
|
15
|
+
|
|
16
|
+
- `persona_name` (required): First word — the persona to invoke
|
|
17
|
+
- `task` (required): Everything after the persona name — the task to perform
|
|
18
|
+
|
|
19
|
+
If $ARGUMENTS is empty or contains only one word (no task), show usage and STOP:
|
|
20
|
+
|
|
21
|
+
> "Usage: /wicked-garden:persona:as <persona-name> <task description>"
|
|
22
|
+
> "Example: /wicked-garden:persona:as engineering 'review my auth flow'"
|
|
23
|
+
|
|
24
|
+
## Execution
|
|
25
|
+
|
|
26
|
+
### Step 1: Parse arguments
|
|
27
|
+
|
|
28
|
+
Split $ARGUMENTS on the first space:
|
|
29
|
+
- `persona_name` = first token
|
|
30
|
+
- `task` = remaining text
|
|
31
|
+
|
|
32
|
+
### Step 2: Look up the persona
|
|
33
|
+
|
|
34
|
+
Run the registry script to resolve the persona definition:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
PERSONA_JSON=$(sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" \
|
|
38
|
+
"${CLAUDE_PLUGIN_ROOT}/scripts/_run.py" \
|
|
39
|
+
scripts/persona/registry.py --get "${persona_name}" --json 2>/dev/null)
|
|
40
|
+
REGISTRY_EXIT=$?
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Step 3: Handle lookup failure
|
|
44
|
+
|
|
45
|
+
If the script exits non-zero or PERSONA_JSON is empty or contains `"error"`:
|
|
46
|
+
|
|
47
|
+
1. Run the list command to get available personas:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
AVAILABLE=$(sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" \
|
|
51
|
+
"${CLAUDE_PLUGIN_ROOT}/scripts/_run.py" \
|
|
52
|
+
scripts/persona/registry.py --list --json 2>/dev/null)
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
2. Show the user:
|
|
56
|
+
|
|
57
|
+
> "No persona found named '{persona_name}'. Available personas:"
|
|
58
|
+
|
|
59
|
+
3. List each available persona name with its description (name — description).
|
|
60
|
+
|
|
61
|
+
4. **STOP** — do not dispatch a Task.
|
|
62
|
+
|
|
63
|
+
### Step 4: Extract persona fields
|
|
64
|
+
|
|
65
|
+
From PERSONA_JSON, extract:
|
|
66
|
+
- `name`
|
|
67
|
+
- `description`
|
|
68
|
+
- `focus`
|
|
69
|
+
- `traits` (list — format as bullet list, e.g. `- direct\n- pragmatic`)
|
|
70
|
+
- `personality` (object with style, temperament, humor)
|
|
71
|
+
- `constraints` (list — format as numbered list)
|
|
72
|
+
- `not_focus` (list — scope guard; concerns this persona does NOT own. Format as bullet list)
|
|
73
|
+
- `memories` (list — format as bullet list)
|
|
74
|
+
- `preferences` (object with communication, code_style, review_focus, decision_making)
|
|
75
|
+
|
|
76
|
+
If traits is empty, use: "No specific traits defined — apply the focus broadly."
|
|
77
|
+
If personality is empty, use: "Apply the focus in a direct and professional style."
|
|
78
|
+
If constraints is empty, use: "No hard constraints — use your judgment."
|
|
79
|
+
If not_focus is empty, omit the "NOT Your Focus" section entirely (do not invent boundaries).
|
|
80
|
+
If memories is empty, use: "No specific experiences — draw on your focus."
|
|
81
|
+
If preferences is empty, use: "No specific preferences — communicate clearly and directly."
|
|
82
|
+
|
|
83
|
+
### Step 5: Dispatch to persona-agent
|
|
84
|
+
|
|
85
|
+
```python
|
|
86
|
+
Task(
|
|
87
|
+
subagent_type="wicked-garden:persona:persona-agent",
|
|
88
|
+
prompt="""You are **{name}**.
|
|
89
|
+
|
|
90
|
+
## Your Identity
|
|
91
|
+
|
|
92
|
+
{description}
|
|
93
|
+
|
|
94
|
+
## Your Focus
|
|
95
|
+
|
|
96
|
+
{focus}
|
|
97
|
+
|
|
98
|
+
## Your Traits
|
|
99
|
+
|
|
100
|
+
{traits_as_bullets}
|
|
101
|
+
|
|
102
|
+
## Your Personality
|
|
103
|
+
|
|
104
|
+
- **Style**: {personality.style}
|
|
105
|
+
- **Temperament**: {personality.temperament}
|
|
106
|
+
- **Voice**: {personality.humor}
|
|
107
|
+
|
|
108
|
+
## Your Constraints (MUST follow)
|
|
109
|
+
|
|
110
|
+
{constraints_as_numbered_list}
|
|
111
|
+
|
|
112
|
+
## NOT Your Focus (hand off, do not deep-dive)
|
|
113
|
+
|
|
114
|
+
{not_focus_as_bullet_list}
|
|
115
|
+
|
|
116
|
+
## Your Experience
|
|
117
|
+
|
|
118
|
+
{memories_as_bullet_list}
|
|
119
|
+
|
|
120
|
+
## Your Preferences
|
|
121
|
+
|
|
122
|
+
- **Communication**: {preferences.communication}
|
|
123
|
+
- **Code style**: {preferences.code_style}
|
|
124
|
+
- **Review focus**: {preferences.review_focus}
|
|
125
|
+
- **Decision making**: {preferences.decision_making}
|
|
126
|
+
|
|
127
|
+
## Task
|
|
128
|
+
|
|
129
|
+
{task}
|
|
130
|
+
|
|
131
|
+
Respond fully in character as {name}. Open your response with `## {name}` and
|
|
132
|
+
a one-line focus statement. Then deliver the task output from this persona's
|
|
133
|
+
perspective, honoring all constraints and preferences above.
|
|
134
|
+
"""
|
|
135
|
+
)
|
|
136
|
+
```
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Create or update a custom persona for on-demand invocation
|
|
3
|
+
argument-hint: "<name> --focus \"<focus>\" [--traits \"t1,t2\"] [--constraints \"FAILURE MODE — x: ...; ...\"] [--not-focus \"a; b\"] [--role <role>] [--save]"
|
|
4
|
+
phase_relevance: ["*"]
|
|
5
|
+
archetype_relevance: ["*"]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# /wicked-garden:persona:define
|
|
9
|
+
|
|
10
|
+
Create or update a custom persona definition — the mechanism that lets an
|
|
11
|
+
enterprise inject ITS house personas. Stored in project-scoped DomainStore by
|
|
12
|
+
default. Use `--save` to also promote to the plugin-level cache for cross-project reuse.
|
|
13
|
+
|
|
14
|
+
A persona only earns its keep if it encodes something the base model does NOT
|
|
15
|
+
already supply: a **named failure-mode defense**, a **hard constraint**, or a
|
|
16
|
+
**scope guard**. A persona that only restates a role ("act like a senior X") adds
|
|
17
|
+
little durable value. The rubric below shows the GOOD pattern.
|
|
18
|
+
|
|
19
|
+
## Run it inline (no dispatch)
|
|
20
|
+
|
|
21
|
+
1. `Read("${CLAUDE_PLUGIN_ROOT}/skills/persona/refs/define.md")` — the rubric:
|
|
22
|
+
argument parsing + validation, DomainStore script call, optional cache-save,
|
|
23
|
+
and confirm output.
|
|
24
|
+
2. Apply the rubric directly using `$ARGUMENTS`.
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: List all available personas with their focus and invocation syntax
|
|
3
|
+
argument-hint: "[--role <role>]"
|
|
4
|
+
phase_relevance: ["*"]
|
|
5
|
+
archetype_relevance: ["*"]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# /wicked-garden:persona:list
|
|
9
|
+
|
|
10
|
+
Discover all available personas — built-in specialists, custom personas, and cached personas.
|
|
11
|
+
|
|
12
|
+
## Arguments
|
|
13
|
+
|
|
14
|
+
Parse from: $ARGUMENTS
|
|
15
|
+
|
|
16
|
+
- `--role` (optional): Filter by role category (e.g., engineering, devsecops, product, quality-engineering)
|
|
17
|
+
|
|
18
|
+
## Execution
|
|
19
|
+
|
|
20
|
+
### Step 1: Fetch persona list
|
|
21
|
+
|
|
22
|
+
Build the command with optional role filter:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" \
|
|
26
|
+
"${CLAUDE_PLUGIN_ROOT}/scripts/_run.py" \
|
|
27
|
+
scripts/persona/registry.py --list [--role "${role}"] --json
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
If `--role` is present in $ARGUMENTS, include `--role <value>` in the command.
|
|
31
|
+
|
|
32
|
+
### Step 2: Format output
|
|
33
|
+
|
|
34
|
+
Present the front door first, then personas grouped by **value tier**, not just by
|
|
35
|
+
source. Each row MUST include the exact invocation command so no separate
|
|
36
|
+
documentation lookup is needed.
|
|
37
|
+
|
|
38
|
+
**Front door (always show first):**
|
|
39
|
+
|
|
40
|
+
```markdown
|
|
41
|
+
## Personas
|
|
42
|
+
|
|
43
|
+
The high-leverage move is your OWN house persona that encodes a failure-mode
|
|
44
|
+
defense. Start here:
|
|
45
|
+
|
|
46
|
+
- Define one: `/wicked-garden:persona:define <name> --focus "<focus>" --constraints "FAILURE MODE — …"`
|
|
47
|
+
- Then invoke: `/wicked-garden:persona:as <name> <task>`
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**Value tiers.** A persona is **Methodology** if its registry record carries a
|
|
51
|
+
non-empty `constraints` list (it defends a named failure mode / hard constraint).
|
|
52
|
+
Otherwise it is **Generic** (a role restatement the base model largely already
|
|
53
|
+
supplies). Compute this from the `constraints` field returned by the registry;
|
|
54
|
+
do not hardcode the split.
|
|
55
|
+
|
|
56
|
+
The curated built-in surface is intentionally **small**: only the three
|
|
57
|
+
methodology exemplars below carry rich profiles. A blinded lift eval
|
|
58
|
+
(`tests/persona/EVAL_RESULTS.md`, 2026-06-12) found the built-in personas
|
|
59
|
+
produce **lift=0** vs the base model, so the generic role personas were demoted
|
|
60
|
+
to **thin role records** — still invokable, but with no curated constraints (the
|
|
61
|
+
base model already plays those roles). The real product is `persona:define`.
|
|
62
|
+
|
|
63
|
+
```markdown
|
|
64
|
+
### Methodology personas (carry a failure-mode defense — prefer these)
|
|
65
|
+
| Name | Focus | Invoke |
|
|
66
|
+
|------|-------|--------|
|
|
67
|
+
| platform | Security, blast radius, secret handling... | `/wicked-garden:persona:as platform <task>` |
|
|
68
|
+
| qe | Test value, recovery paths, anti-happy-path... | `/wicked-garden:persona:as qe <task>` |
|
|
69
|
+
| agentic | Agent safety, termination, idempotency... | `/wicked-garden:persona:as agentic <task>` |
|
|
70
|
+
|
|
71
|
+
### Generic personas (thin role lens — base model already plays these)
|
|
72
|
+
<details><summary>Show generic role names (no curated constraints — define your own for lift)</summary>
|
|
73
|
+
|
|
74
|
+
These names still resolve (engineering, product, data, jam) but carry no curated
|
|
75
|
+
profile — they apply the role as a plain lens. For durable value, define a HOUSE
|
|
76
|
+
persona instead. Any unlisted role name falls back gracefully (`persona:as`
|
|
77
|
+
lists what's available rather than crashing).
|
|
78
|
+
|
|
79
|
+
| Name | Focus | Invoke |
|
|
80
|
+
|------|-------|--------|
|
|
81
|
+
| engineering | Code quality, architecture... | `/wicked-garden:persona:as engineering <task>` |
|
|
82
|
+
| product | Requirements, UX, business value... | `/wicked-garden:persona:as product <task>` |
|
|
83
|
+
| data | Pipelines, ML guidance, analytics... | `/wicked-garden:persona:as data <task>` |
|
|
84
|
+
| jam | Ideation, multi-perspective... | `/wicked-garden:persona:as jam <task>` |
|
|
85
|
+
</details>
|
|
86
|
+
|
|
87
|
+
### Custom Personas
|
|
88
|
+
| Name | Focus | Invoke |
|
|
89
|
+
|------|-------|--------|
|
|
90
|
+
| pragmatic-tech-lead | Delivery over perfection | `/wicked-garden:persona:as pragmatic-tech-lead <task>` |
|
|
91
|
+
|
|
92
|
+
### Cached Personas (cross-project)
|
|
93
|
+
| Name | Focus | Invoke |
|
|
94
|
+
|------|-------|--------|
|
|
95
|
+
| my-persona | Shared focus | `/wicked-garden:persona:as my-persona <task>` |
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Rules:
|
|
99
|
+
- **Tier split is data-driven**: a persona with a non-empty `constraints` list is
|
|
100
|
+
Methodology; one with an empty `constraints` list is Generic. Custom personas
|
|
101
|
+
follow the same rule.
|
|
102
|
+
- Generic, custom, and cached sections render inside a `<details>` block (collapsed)
|
|
103
|
+
so the methodology tier and the define front door are what the user sees first.
|
|
104
|
+
- Truncate the focus/description column at 60 characters if needed (add "...")
|
|
105
|
+
- Only show sections that have personas (omit Custom and Cached sections if empty)
|
|
106
|
+
- If `--role` was specified and returns zero results, show: "No personas found with role '{role}'."
|
|
107
|
+
- Fallback personas (architect, skeptic, advocate) are shown in a "### Fallback Personas" section when specialist.json is unavailable. `skeptic` is Methodology (it carries constraints); `architect` and `advocate` are Generic.
|
|
108
|
+
|
|
109
|
+
### Step 3: Show tip
|
|
110
|
+
|
|
111
|
+
After the table(s), add:
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
**Tip:** The highest-leverage persona is your own — one that encodes a house
|
|
115
|
+
failure-mode defense the base model won't volunteer:
|
|
116
|
+
`/wicked-garden:persona:define <name> --focus "<focus>" --constraints "FAILURE MODE — …" --not-focus "…"`.
|
|
117
|
+
Use `/wicked-garden:engineering:review --persona <name>` to route a code review through any persona's lens.
|
|
118
|
+
```
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: GitHub Actions workflow generation and optimization
|
|
3
|
+
argument-hint: "<generate|optimize|troubleshoot> [workflow file]"
|
|
4
|
+
phase_relevance: ["build", "review", "operate"]
|
|
5
|
+
archetype_relevance: ["*"]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# /wicked-garden:platform:actions
|
|
9
|
+
|
|
10
|
+
Generate, optimize, and troubleshoot GitHub Actions workflows.
|
|
11
|
+
|
|
12
|
+
## Run it inline (no dispatch)
|
|
13
|
+
|
|
14
|
+
1. Parse `<mode>` from `$ARGUMENTS`: `generate`, `optimize`, or `troubleshoot`.
|
|
15
|
+
2. `Read("${CLAUDE_PLUGIN_ROOT}/skills/platform/actions/refs/actions.md")` — workflow rubric,
|
|
16
|
+
security/performance checklists, stack detection, and output format.
|
|
17
|
+
3. Apply the rubric directly:
|
|
18
|
+
- **generate**: detect project stack (`ls package.json pyproject.toml ...`), produce complete workflow YAML.
|
|
19
|
+
- **optimize**: read the target workflow file, apply the optimization checklist, return annotated diff.
|
|
20
|
+
- **troubleshoot**: run `gh run list --status failure --limit 1`, fetch logs, diagnose root cause inline.
|