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,200 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: |
|
|
3
|
+
Use when starting a new session and you want to know what happened since the last one — recent events,
|
|
4
|
+
active crew projects, and memory updates. NOT for live session state inspection (use smaht:state).
|
|
5
|
+
argument-hint: "[--days N] [--project name]"
|
|
6
|
+
phase_relevance: ["*"]
|
|
7
|
+
archetype_relevance: ["*"]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# /wicked-garden:smaht:briefing
|
|
11
|
+
|
|
12
|
+
Generate a "what happened since last session" briefing. Primary source: unified event log. Fallback: individual domain queries.
|
|
13
|
+
|
|
14
|
+
## Instructions
|
|
15
|
+
|
|
16
|
+
### 0. Post-Compaction Recovery
|
|
17
|
+
|
|
18
|
+
If this briefing is requested after a context compaction event, check for WIP state first and present it prominently at the top of the briefing:
|
|
19
|
+
|
|
20
|
+
1. Check for WIP snapshot file at the session's history condenser directory (`wip_snapshot.json`)
|
|
21
|
+
2. If no snapshot, query `HistoryCondenser(session_id).get_session_state()` for live working state
|
|
22
|
+
3. Read native tasks for in-progress items: list task JSON under `${CLAUDE_CONFIG_DIR}/tasks/{session_id}/` and filter by `status == "in_progress"`.
|
|
23
|
+
4. Present recovered WIP state at the top of the briefing output:
|
|
24
|
+
- **Current task**: what the user was working on
|
|
25
|
+
- **Recent decisions**: choices already made (do NOT re-ask)
|
|
26
|
+
- **Active files**: files in scope for the current work
|
|
27
|
+
- **Open questions**: unresolved items that still need answers
|
|
28
|
+
- **In-progress tasks**: native tasks currently being worked (filter `metadata.event_type=="task"` for human-visible items)
|
|
29
|
+
5. Add: "Context was compacted. Review this state before proceeding. Do NOT repeat completed work."
|
|
30
|
+
|
|
31
|
+
If no compaction occurred (normal briefing request), skip this step entirely.
|
|
32
|
+
|
|
33
|
+
### 1. Determine Time Window
|
|
34
|
+
|
|
35
|
+
Default: last 24 hours. Override with `--days N`. If `--project` specified, filter to that project.
|
|
36
|
+
|
|
37
|
+
### 2. Query the Event Log (primary)
|
|
38
|
+
|
|
39
|
+
Single query replaces 4 separate domain calls:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/_run.py" scripts/_event_store.py query \
|
|
43
|
+
--since "${days:-1}d" \
|
|
44
|
+
${project:+--project "$project"} \
|
|
45
|
+
--limit 100 \
|
|
46
|
+
--json
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
This returns events from ALL domains in one timeline — mem decisions, crew phase transitions, native task changes, jam outcomes.
|
|
50
|
+
|
|
51
|
+
### 2b. Fallback (if event log is empty or unavailable)
|
|
52
|
+
|
|
53
|
+
If the event log returns no results (new install, events.db not yet populated), fall back to individual queries:
|
|
54
|
+
|
|
55
|
+
**Memory:** `wicked-brain:memory "recent decisions and learnings" --limit 10`
|
|
56
|
+
|
|
57
|
+
**Native tasks:** read task JSON under `${CLAUDE_CONFIG_DIR}/tasks/{session_id}/` and summarize counts by `status` and `metadata.event_type`.
|
|
58
|
+
|
|
59
|
+
**Crew:** in v11, look up archetype-mode projects explicitly via
|
|
60
|
+
`phase_manager <name> status --json`. The v6-era find-active auto-resolver
|
|
61
|
+
was deleted with the universal pipeline.
|
|
62
|
+
|
|
63
|
+
### 2c. Git Activity (always supplement)
|
|
64
|
+
|
|
65
|
+
Git history is not in the event log — always query directly:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
git log --oneline --since="${days:-1} days ago" --no-merges 2>/dev/null | head -15
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### 2d. Repo method — wicked-understanding (advisory, fail-open)
|
|
72
|
+
|
|
73
|
+
Surface whether this repo's **how-to-work-here playbooks** exist (the opt-in
|
|
74
|
+
wicked-understanding layer — the *how*, complementing brain's *what*). Prints
|
|
75
|
+
nothing if absent or unavailable:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" - <<'PY' 2>/dev/null || true
|
|
79
|
+
import os
|
|
80
|
+
from pathlib import Path
|
|
81
|
+
roots = [Path.home()/".claude"/"skills"]
|
|
82
|
+
cfg = os.environ.get("CLAUDE_CONFIG_DIR")
|
|
83
|
+
if cfg: roots.append(Path(cfg)/"skills")
|
|
84
|
+
names = set()
|
|
85
|
+
for r in roots:
|
|
86
|
+
try:
|
|
87
|
+
if r.exists():
|
|
88
|
+
names |= {e.name for e in r.iterdir()
|
|
89
|
+
if e.is_dir() and e.name.startswith(("repo-", "fix-bug", "add-feature"))}
|
|
90
|
+
except OSError:
|
|
91
|
+
pass
|
|
92
|
+
if names:
|
|
93
|
+
print("Repo playbooks available (wicked-understanding): " + ", ".join(sorted(names)[:8]))
|
|
94
|
+
PY
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
If present, add a **Repo method:** line to the briefing and tell the agent to load
|
|
98
|
+
the matching playbook for build / fix / migrate work instead of rediscovering the
|
|
99
|
+
method. If absent, you may note that `npx skills add mikeparcewski/wicked-understanding --all`
|
|
100
|
+
would generate them.
|
|
101
|
+
|
|
102
|
+
### 3. Categorize Events
|
|
103
|
+
|
|
104
|
+
Group events from the timeline by type:
|
|
105
|
+
|
|
106
|
+
| Event action pattern | Briefing section |
|
|
107
|
+
|---------------------|-----------------|
|
|
108
|
+
| `memories.created`, `memories.updated` | Recent Decisions |
|
|
109
|
+
| `projects.created`, `phases.*` | Active Work (crew) |
|
|
110
|
+
| `tasks.created`, `tasks.updated` | Active Work (tasks) |
|
|
111
|
+
| `sessions.created`, `*.migrated` | Brainstorm Outcomes |
|
|
112
|
+
| Everything else | Other Activity |
|
|
113
|
+
|
|
114
|
+
### 4. Synthesize Briefing
|
|
115
|
+
|
|
116
|
+
Before composing the briefing, name the **detected stack** back to the user
|
|
117
|
+
so it is obvious wicked-garden has read the project shape (#723 — stack
|
|
118
|
+
identity is a projection of the repo, never a hand-edited preset).
|
|
119
|
+
|
|
120
|
+
**Project scope:** if `--project` was supplied, scan `${PWD}` (the project
|
|
121
|
+
source-dir lookup was a v6 helper tied to `crew.py::list_projects`,
|
|
122
|
+
deleted in v11). The fallback when `--project` is absent is also
|
|
123
|
+
`${PWD}`. Briefings now always read from cwd.
|
|
124
|
+
|
|
125
|
+
_Stack signal extraction was removed in v11; the v6 helpers were
|
|
126
|
+
target-kind classifiers tied to the old gate-policy. v11 work-shape
|
|
127
|
+
archetypes are emitted by the prompt-submit hook, not derived from
|
|
128
|
+
filesystem traversal. Skip this section in v11 briefings._
|
|
129
|
+
|
|
130
|
+
If `language` is not `unknown`, include this single line at the top of the
|
|
131
|
+
briefing (omit entirely when language is `unknown`):
|
|
132
|
+
|
|
133
|
+
```
|
|
134
|
+
Detected stack: {language} ({package_manager}, frameworks: {frameworks}). Archetype: {archetype}.
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
In JSON-mode briefings, surface the same projection under a top-level
|
|
138
|
+
`detected_stack` field; do not invent a parallel state file.
|
|
139
|
+
|
|
140
|
+
**Affected repos (#722, advisory):** when the active project (or the one
|
|
141
|
+
named via `--project`) carries an optional `affected_repos` list in its
|
|
142
|
+
`process-plan.json`, surface it as a single advisory line directly under
|
|
143
|
+
the `Detected stack:` line. The helper script below is fail-open: it
|
|
144
|
+
prints NOTHING when the field is missing, empty, or malformed, so this
|
|
145
|
+
block stays silent on every legacy project. The full DAG / worktrees /
|
|
146
|
+
cross-repo evidence workflow lives in the `wicked-garden-monorepo`
|
|
147
|
+
sibling plugin (see `docs/v9/sibling-plugin-monorepo.md`).
|
|
148
|
+
|
|
149
|
+
_The `affected_repos` helper was removed in v11. Multi-repo coordination
|
|
150
|
+
was tied to the v6 universal pipeline's process-plan.json schema, which
|
|
151
|
+
the v11 archetype catalog superseded. Future cross-repo orchestration
|
|
152
|
+
work belongs in the `wicked-garden-monorepo` sibling plugin._
|
|
153
|
+
|
|
154
|
+
Format (when non-empty):
|
|
155
|
+
|
|
156
|
+
```
|
|
157
|
+
Affected repos: foo, bar (advisory — see docs/v9/sibling-plugin-monorepo.md)
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
```markdown
|
|
161
|
+
## Session Briefing ({days}d window)
|
|
162
|
+
|
|
163
|
+
Detected stack: python (uv, frameworks: click). Archetype: code-repo.
|
|
164
|
+
|
|
165
|
+
### Recent Decisions
|
|
166
|
+
{events from mem domain — decisions stored, patterns learned}
|
|
167
|
+
- "Chose JWT over sessions" (2 days ago)
|
|
168
|
+
- "Rate limiting goes after gateway" (yesterday)
|
|
169
|
+
|
|
170
|
+
### Active Work
|
|
171
|
+
**Crew**: {project name} — phase: {current}, next: {next step}
|
|
172
|
+
**Tasks**: {N in progress}, {M completed since last session}
|
|
173
|
+
|
|
174
|
+
### Brainstorm Outcomes
|
|
175
|
+
{jam session decisions made in the window}
|
|
176
|
+
|
|
177
|
+
### Code Changes
|
|
178
|
+
{git commits grouped by area}
|
|
179
|
+
|
|
180
|
+
### Suggested Next Steps
|
|
181
|
+
{based on the event timeline:}
|
|
182
|
+
- Continue: {most recent active crew phase}
|
|
183
|
+
- Review: {files changed since last session}
|
|
184
|
+
- Decide: {any open questions from jam sessions}
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### 5. Contextual Discovery
|
|
188
|
+
|
|
189
|
+
Suggest ONE related command based on the briefing content:
|
|
190
|
+
|
|
191
|
+
- If active crew project → suggest `crew:execute` or `crew:status`
|
|
192
|
+
- If recent mem decisions but no crew project → suggest `crew:start`
|
|
193
|
+
- If code changes but no review → suggest `engineering:review`
|
|
194
|
+
- If brainstorm outcomes with no follow-up → suggest `jam:revisit`
|
|
195
|
+
|
|
196
|
+
Keep it to ONE suggestion. Frame as: "You might find X useful because..."
|
|
197
|
+
|
|
198
|
+
### When context is thin
|
|
199
|
+
|
|
200
|
+
If the briefing doesn't give you enough to orient — no active project, sparse events, or missing decisions — invoke `wicked-garden:ground` to pull richer brain + bus context before proceeding.
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Import existing domain JSON records into the unified event log"
|
|
3
|
+
argument-hint: "[--domain D] [--dry-run]"
|
|
4
|
+
phase_relevance: ["*"]
|
|
5
|
+
archetype_relevance: ["*"]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# /wicked-garden:smaht:events-import
|
|
9
|
+
|
|
10
|
+
Import existing DomainStore JSON records into the unified event log as historical events.
|
|
11
|
+
|
|
12
|
+
## Instructions
|
|
13
|
+
|
|
14
|
+
### 1. Discover Existing Records
|
|
15
|
+
|
|
16
|
+
Scan the DomainStore local root for all domain directories:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" -c "
|
|
20
|
+
from _domain_store import _LOCAL_ROOT
|
|
21
|
+
from pathlib import Path
|
|
22
|
+
import json
|
|
23
|
+
|
|
24
|
+
root = Path(_LOCAL_ROOT) if isinstance(_LOCAL_ROOT, str) else _LOCAL_ROOT
|
|
25
|
+
domains = sorted(d.name for d in root.iterdir() if d.is_dir()) if root.exists() else []
|
|
26
|
+
print(json.dumps(domains))
|
|
27
|
+
"
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### 2. For Each Domain
|
|
31
|
+
|
|
32
|
+
Read all JSON files and synthesize events with `action: "{source}.migrated"`:
|
|
33
|
+
|
|
34
|
+
```python
|
|
35
|
+
from _event_store import EventStore
|
|
36
|
+
from _domain_store import _LOCAL_ROOT
|
|
37
|
+
from pathlib import Path
|
|
38
|
+
import json
|
|
39
|
+
|
|
40
|
+
EventStore.ensure_schema()
|
|
41
|
+
|
|
42
|
+
domain_dir = Path(_LOCAL_ROOT) / domain_name
|
|
43
|
+
imported = 0
|
|
44
|
+
skipped = 0
|
|
45
|
+
|
|
46
|
+
for source_dir in domain_dir.iterdir():
|
|
47
|
+
if not source_dir.is_dir():
|
|
48
|
+
continue
|
|
49
|
+
source = source_dir.name
|
|
50
|
+
for json_file in source_dir.glob("*.json"):
|
|
51
|
+
record = json.loads(json_file.read_text())
|
|
52
|
+
record_id = record.get("id", json_file.stem)
|
|
53
|
+
|
|
54
|
+
# Idempotent: skip if already imported
|
|
55
|
+
existing = EventStore.query(
|
|
56
|
+
domain=domain_name,
|
|
57
|
+
action=f"{source}.migrated",
|
|
58
|
+
limit=1,
|
|
59
|
+
)
|
|
60
|
+
# Check by record_id to avoid duplicates
|
|
61
|
+
if any(e.get("record_id") == record_id for e in existing):
|
|
62
|
+
skipped += 1
|
|
63
|
+
continue
|
|
64
|
+
|
|
65
|
+
EventStore.append(
|
|
66
|
+
domain=domain_name,
|
|
67
|
+
action=f"{source}.migrated",
|
|
68
|
+
source=source,
|
|
69
|
+
record_id=record_id,
|
|
70
|
+
payload=record,
|
|
71
|
+
tags=["migrated"],
|
|
72
|
+
)
|
|
73
|
+
imported += 1
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### 3. Report Results
|
|
77
|
+
|
|
78
|
+
```markdown
|
|
79
|
+
## Import Complete
|
|
80
|
+
|
|
81
|
+
| Domain | Imported | Skipped (already exists) |
|
|
82
|
+
|--------|----------|--------------------------|
|
|
83
|
+
| crew | 45 | 0 |
|
|
84
|
+
| mem | 23 | 0 |
|
|
85
|
+
| jam | 12 | 0 |
|
|
86
|
+
| **Total** | **80** | **0** |
|
|
87
|
+
|
|
88
|
+
Events are tagged with `migrated` for easy filtering.
|
|
89
|
+
Query with: `/wicked-garden:crew:activity --fts migrated`
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### Flags
|
|
93
|
+
|
|
94
|
+
- `--domain D`: Import only one domain (default: all)
|
|
95
|
+
- `--dry-run`: Show what would be imported without writing
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: |
|
|
3
|
+
Use when you need to inspect live SessionState, adapter outputs, or smaht directive settings.
|
|
4
|
+
NOT for what-happened-since-last-session (use smaht:briefing).
|
|
5
|
+
argument-hint: "[--state] [--events N] [--project <name>] [--json]"
|
|
6
|
+
phase_relevance: ["*"]
|
|
7
|
+
archetype_relevance: ["*"]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# /wicked-garden:smaht:state
|
|
11
|
+
|
|
12
|
+
Snapshot and report current session state and recent events.
|
|
13
|
+
|
|
14
|
+
## Run it inline (no dispatch)
|
|
15
|
+
|
|
16
|
+
1. `Read("${CLAUDE_PLUGIN_ROOT}/skills/smaht/refs/state.md")` — the rubric:
|
|
17
|
+
SessionState script, display format, wicked-bus events tail, and v11
|
|
18
|
+
project context lookup (when `--project <name>` is given).
|
|
19
|
+
2. Apply the rubric directly using `$ARGUMENTS`.
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
---
|
|
2
|
+
allowed-tools: ["Bash"]
|
|
3
|
+
description: "Emit a compact path manifest (plugin, source, project, brain, bus) for the current session"
|
|
4
|
+
argument-hint: "[--fence] [--env]"
|
|
5
|
+
phase_relevance: ["*"]
|
|
6
|
+
archetype_relevance: ["*"]
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# /wicked-garden:where-am-i
|
|
10
|
+
|
|
11
|
+
Read-only query that prints a single compact manifest of the five storage
|
|
12
|
+
roots used by wicked-garden dispatches. Subagents should include
|
|
13
|
+
"run /wicked-garden:where-am-i first" as a directive instead of
|
|
14
|
+
hand-enumerating paths — it costs fewer tokens and closes a class of
|
|
15
|
+
path-mismatch bugs.
|
|
16
|
+
|
|
17
|
+
Provenance: Issue #576.
|
|
18
|
+
|
|
19
|
+
## Arguments
|
|
20
|
+
|
|
21
|
+
- `--json` — Emit JSON manifest (default).
|
|
22
|
+
- `--fence` — Wrap the JSON manifest in a ```json fence for paste.
|
|
23
|
+
- `--env` — Substitute env-var forms (e.g. `$CLAUDE_PLUGIN_ROOT`) where
|
|
24
|
+
the corresponding environment variable is present.
|
|
25
|
+
|
|
26
|
+
## Output shape
|
|
27
|
+
|
|
28
|
+
```json
|
|
29
|
+
{
|
|
30
|
+
"plugin_root": "/abs/path",
|
|
31
|
+
"source_cwd": "/abs/path",
|
|
32
|
+
"active_project_id": "string-or-null",
|
|
33
|
+
"project_artifacts": "/abs/path/to/projects-or-specific-project",
|
|
34
|
+
"brain": {"path": "/abs/path", "port": 4243},
|
|
35
|
+
"bus_db": "/abs/path"
|
|
36
|
+
}
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Any field that cannot be resolved emits `null` and logs a one-line note
|
|
40
|
+
to stderr. The command never raises and is safe to invoke from any cwd.
|
|
41
|
+
|
|
42
|
+
## Instructions
|
|
43
|
+
|
|
44
|
+
Invoke the helper script and stream its stdout to the user verbatim.
|
|
45
|
+
This command is a thin wrapper — do not re-interpret the manifest.
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/where_am_i.py" "$@"
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Graceful Degradation
|
|
52
|
+
|
|
53
|
+
- Missing `CLAUDE_PLUGIN_ROOT`: falls back to the checkout inferred from
|
|
54
|
+
the script location.
|
|
55
|
+
- Missing brain config: emits `"brain": null` and continues.
|
|
56
|
+
- Missing bus DB: emits `"bus_db": null` and continues.
|
|
57
|
+
- No active crew project: emits `"active_project_id": null` and points
|
|
58
|
+
`project_artifacts` at the crew projects domain root.
|
package/docs/README.md
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Wicked Garden Documentation
|
|
2
|
+
|
|
3
|
+
Detailed guides for getting the most out of wicked-garden.
|
|
4
|
+
|
|
5
|
+
Work in wicked-garden is organized around **9 work-shape archetypes** — not a fixed pipeline. Each prompt classifies into one or more archetypes (triage, explore, specify, decide, ship, review, incident, build, migrate); each owns its own phase shape, produces contract, and HITL discipline.
|
|
6
|
+
|
|
7
|
+
## Guides
|
|
8
|
+
|
|
9
|
+
| Guide | Description |
|
|
10
|
+
|-------|-------------|
|
|
11
|
+
| [Getting Started](getting-started.md) | Installation, required peers, first session, common workflows |
|
|
12
|
+
| [Archetypes](v11/archetypes.md) | The 9 work-shape archetypes — why the universal pipeline went away |
|
|
13
|
+
| [Domains](domains.md) | The 10 domain skill/agent families archetypes invoke for expertise |
|
|
14
|
+
| [Required Peers](required-peers.md) | The five required peer plugins and the install/runtime stance |
|
|
15
|
+
| [The Compiler](compiler.md) | `/wicked-garden:compile` — emit a self-contained vault-backed gate into any repo |
|
|
16
|
+
| [Brain Chunk Format](brain-chunk-format.md) | How wicked-garden content is chunked for the brain index |
|
|
17
|
+
|
|
18
|
+
## Quick Links
|
|
19
|
+
|
|
20
|
+
- **New to wicked-garden?** Start with [Getting Started](getting-started.md).
|
|
21
|
+
- **Want to understand how work is shaped?** Read [Archetypes](v11/archetypes.md).
|
|
22
|
+
- **Setting up?** The [Required Peers](required-peers.md) — wicked-testing, wicked-vault, wicked-brain, wicked-bus, wicked-loom — are verified by `/wicked-garden:setup`.
|
|
23
|
+
- **Looking for domain expertise or a specific command?** Browse [Domains](domains.md).
|
|
24
|
+
- **Want a build gate that runs without wicked-garden present?** See [The Compiler](compiler.md).
|
|
25
|
+
|
|
26
|
+
## Need Help?
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
/wicked-garden:setup # verify required peers + onboard
|
|
30
|
+
/wicked-garden:help # list all commands
|
|
31
|
+
/wicked-garden:where-am-i # show current session state
|
|
32
|
+
```
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# ADR 0001 — Code-relationship graph: adopt codegraph as the engine, add injected-edge extractors
|
|
2
|
+
|
|
3
|
+
- **Status:** Superseded by [ADR 0004](0004-code-graph-moves-to-wicked-brain.md) (2026-06-10) — the engine choice (codegraph) + injected-edge concept stand, but the graph's **home moved to wicked-brain** (garden no longer hosts the shim/extractors). Originally: Accepted (prototype validated).
|
|
4
|
+
- **Date:** 2026-06-09
|
|
5
|
+
- **Context owners:** wicked-garden
|
|
6
|
+
|
|
7
|
+
## Context
|
|
8
|
+
|
|
9
|
+
Three features need a real code-relationship graph, and none works today:
|
|
10
|
+
|
|
11
|
+
- **`search:blast-radius`** — "what breaks if I change X" — currently runs a brain
|
|
12
|
+
search (hardcoded to the wrong port, 4242; the brain is on 4243) + `grep`. It is
|
|
13
|
+
effectively grep-with-extra-steps.
|
|
14
|
+
- **`search:lineage`** — data flow — same shape.
|
|
15
|
+
- **wicked-patch** (`engineering:rename`/`add-field`/`remove`) — deterministic
|
|
16
|
+
multi-file refactor — requires a symbol `--db` that **nothing in the ecosystem
|
|
17
|
+
produces**, so the whole family is dead-on-arrival.
|
|
18
|
+
|
|
19
|
+
The decisive requirement is **injected relationships**: this plugin's load-bearing
|
|
20
|
+
edges are wired by a shared *string* through a registry, never by a literal symbol
|
|
21
|
+
reference, so neither `grep` nor a static call-graph can see them:
|
|
22
|
+
|
|
23
|
+
| Injected edge (grep-/static-invisible) | Wired by (deterministically extractable) |
|
|
24
|
+
|---|---|
|
|
25
|
+
| event producer → consumer | `emit_event("wicked.x")` + `_bus_consumers.json` `event_filter` |
|
|
26
|
+
| command/Task → agent | `subagent_type:` frontmatter |
|
|
27
|
+
| agent → tool | `tool-capabilities` + `_capability_registry` |
|
|
28
|
+
| hook event → script | `hooks.json` |
|
|
29
|
+
| archetype → playbook/gate | `archetypes.json` + `refs/` |
|
|
30
|
+
|
|
31
|
+
## Decision
|
|
32
|
+
|
|
33
|
+
**Adopt [codegraph](https://github.com/colbymchenry/codegraph) (`@colbymchenry/codegraph`, MIT,
|
|
34
|
+
TypeScript/web-tree-sitter) as the static code-graph engine, consumed as a
|
|
35
|
+
runtime-resolved peer** (the same model as wicked-loom/vault/testing/bus), and
|
|
36
|
+
**add wicked-garden-specific injected-edge extractors on top.** Do not build a
|
|
37
|
+
graph engine from scratch — re-implementing multi-language tree-sitter resolution
|
|
38
|
+
to codegraph's fidelity is months of work it already does.
|
|
39
|
+
|
|
40
|
+
### Why codegraph (vs roam-code, vs build)
|
|
41
|
+
Both codegraph and [roam-code](https://github.com/Cranot/roam-code) (Apache-2.0,
|
|
42
|
+
Python) are credible "adopt-as-engine" candidates. codegraph wins for us on two
|
|
43
|
+
decisive axes:
|
|
44
|
+
|
|
45
|
+
1. **Architecture fit** — it ships a CLI + MCP server + a plain SQLite contract and
|
|
46
|
+
is npm/node, exactly how we already consume our peers (a `_codegraph.py` shim
|
|
47
|
+
mirrors `_loom.py`). roam-code is a Python library — a different integration shape.
|
|
48
|
+
2. **Patch precision** — codegraph is **column-precise** (`file:line:col` on nodes
|
|
49
|
+
*and* reference sites) with real import/alias/workspace/re-export/JVM-FQN
|
|
50
|
+
resolution and confidence/provenance per edge. roam-code is line-granular +
|
|
51
|
+
heuristic name resolution (false-positive risk) — riskier to refactor against.
|
|
52
|
+
|
|
53
|
+
**Borrow, don't adopt, from roam-code:** its Code-Graph Attestation (re-derive
|
|
54
|
+
Merkle/edge digests from the live DB, fail-closed) is a genuine twin of our vault
|
|
55
|
+
gate, operating on a layer the vault doesn't cover; and its `oracle_*` deterministic
|
|
56
|
+
fact tools are clean gate inputs. We keep it at arm's length because it is a
|
|
57
|
+
*competing change-governance framework* (constitution/permits/leases) that overlaps
|
|
58
|
+
wicked-garden's entire premise — we want a code-graph *component*, not to outsource
|
|
59
|
+
our governance.
|
|
60
|
+
|
|
61
|
+
## Validation (prototype, this ADR)
|
|
62
|
+
|
|
63
|
+
Run on this repo, Node 26:
|
|
64
|
+
|
|
65
|
+
- `codegraph index` → **4,179 nodes / 7,733 edges** across 196 Python files in ~1s;
|
|
66
|
+
plain SQLite at `.codegraph/codegraph.db` (auto-gitignored). `codegraph impact <symbol>`
|
|
67
|
+
(blast-radius) and `query`/`callers` work out of the box.
|
|
68
|
+
- `scripts/codegraph/inject_edges.py` (the first injected-edge extractor) reads
|
|
69
|
+
`_bus_consumers.json` + emit sites and materializes producer→consumer edges:
|
|
70
|
+
`file:scripts/_bus.py --[wicked.persona.contributed]--> file:scripts/jam/_bus_consumers.py`.
|
|
71
|
+
codegraph's static graph had **0** such edges; `grep` finds **no** link between
|
|
72
|
+
producer and consumer (they share only the event string). Blast-radius now
|
|
73
|
+
traverses them.
|
|
74
|
+
- Bonus finding: a consumer in `_bus_consumers.json` (`crew:auto-advance`) points at
|
|
75
|
+
`scripts/crew/_bus_consumers.py`, which **does not exist** — a stale registry entry
|
|
76
|
+
the graph build surfaced.
|
|
77
|
+
|
|
78
|
+
## Architecture
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
codegraph (static: symbols + imports/calls/refs, column-precise, SQLite)
|
|
82
|
+
+ injected-edge extractors (deterministic, per wiring mechanism)
|
|
83
|
+
bus emit↔_bus_consumers.json [prototype: scripts/codegraph/inject_edges.py]
|
|
84
|
+
command→agent (subagent_type) [next]
|
|
85
|
+
agent→tool (capabilities) [next]
|
|
86
|
+
+ data-flow lineage layer [build: neither engine provides general lineage]
|
|
87
|
+
= the relationship graph
|
|
88
|
+
→ consumers: blast-radius, lineage, wicked-patch (--db)
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
- **Peer shim** `scripts/_codegraph.py` — resolves + runs the codegraph CLI/MCP
|
|
92
|
+
exactly like `_loom.py` does for loom (env `WICKED_CODEGRAPH_BIN` → config → PATH →
|
|
93
|
+
npx). Pin Node ≥ 22.5 (codegraph uses `node:sqlite`); we run 26.
|
|
94
|
+
- **Injected edges** carry their semantics in the edge `metadata` (codegraph's
|
|
95
|
+
node/edge `kind` are closed unions; `references` + `provenance='injected:<mechanism>'`
|
|
96
|
+
is the no-fork convention). Coverage caveat: if a wired file isn't a codegraph
|
|
97
|
+
node, the extractor skips it (and that itself flags stale wiring, as above).
|
|
98
|
+
|
|
99
|
+
## Consequences
|
|
100
|
+
|
|
101
|
+
- blast-radius/lineage flip from **redundant** (grep+broken) → **genuinely
|
|
102
|
+
differentiated** (they answer injected-relationship questions grep cannot).
|
|
103
|
+
- wicked-patch flips from **broken** (no `--db`) → **working** (consumes the
|
|
104
|
+
codegraph SQLite as its symbol DB).
|
|
105
|
+
- **Risk:** codegraph bus-factor = 1. Mitigated by MIT license + the SQLite schema
|
|
106
|
+
being a stable, self-describing contract we can read even if upstream stalls.
|
|
107
|
+
- **Lock-in:** low — we depend on a documented SQLite shape, not an opaque service.
|
|
108
|
+
|
|
109
|
+
## Roadmap
|
|
110
|
+
|
|
111
|
+
1. ✅ Prototype: peer shim + bus injected-edge extractor + blast-radius proof (this ADR).
|
|
112
|
+
2. command→agent and agent→tool extractors (same pattern as the bus extractor).
|
|
113
|
+
3. Rewire `search:blast-radius`/`lineage` to query the graph (and fix the 4242→4243 port).
|
|
114
|
+
4. Wire wicked-patch to consume the codegraph SQLite as its `--db` (revives the patch family).
|
|
115
|
+
5. Build the data-flow lineage layer on top.
|
|
116
|
+
6. Evaluate borrowing roam-code's Code-Graph Attestation as a complement to the vault gate.
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# ADR 0002 — Major cleanup: collapse rubric-wrappers to skills; keep only what the agent actually uses
|
|
2
|
+
|
|
3
|
+
- **Status:** Accepted — **fully executed**. All domains collapsed (product #910; engineering #911; platform #912; data+delivery #913; agentic+jam+persona+smaht #914), orphan agents purged via `scripts/ci/find_orphan_agents.py`, and `components.json` re-derived via `scripts/ci/sync_components.py`. End state: 90 commands, 40 agents (from 56), 71 skills.
|
|
4
|
+
- **Date:** 2026-06-09
|
|
5
|
+
|
|
6
|
+
## The test
|
|
7
|
+
|
|
8
|
+
The customer is the AI coding agent (and, downstream, the human reading its output and *other-repo* agents that load these skills). A feature **earns its current shape only if it does at least one of:**
|
|
9
|
+
1. **makes the agent's life easier** (a capability/ergonomic the agent lacks natively), or
|
|
10
|
+
2. **greatly reduces tokens** (vs. the agent's native Read/Grep/Bash/subagent path), or
|
|
11
|
+
3. **improves the quality of the final output** (catches errors, enforces evidence, adds a perspective the agent can't produce alone).
|
|
12
|
+
|
|
13
|
+
Most "commands" in the garden are a checklist the agent already applies, wrapped in a `Task(subagent)` hop that costs *more* tokens and latency for the *same* output. The hop fails all three — but **the rubric inside it usually doesn't.** The knowledge is the asset; the dispatch is the tax.
|
|
14
|
+
|
|
15
|
+
So the default disposition is **COLLAPSE-TO-SKILL, not DELETE.** The rubric/knowledge moves to an on-demand `skills/*/refs/<name>.md` file (progressive disclosure → near-zero idle context cost — it loads only when the command runs), and the command becomes a **slim body that loads the ref and does the work INLINE** (a `Read` of the ref, then apply directly — no `Task`/subagent dispatch).
|
|
16
|
+
|
|
17
|
+
This is grounded in a full hands-on pass: every domain was invoked and judged against native tools.
|
|
18
|
+
|
|
19
|
+
## Dispositions
|
|
20
|
+
|
|
21
|
+
- **COLLAPSE (default)** — rubric → `skills/*/refs/`; command → slim inline body, no dispatch. The functionality survives; only the hop is removed.
|
|
22
|
+
- **KEEP DISPATCH** — only where dispatch genuinely earns it: **real parallelism** (3-4 lenses running at once), **context isolation** for a huge payload, a **real external tool**, or an **independent gate** (an evaluator that must not be the agent that did the work).
|
|
23
|
+
- **DELETE** — only the truly-dead: already-removed `crew:archive` / `delivery:process-health`, plus `smaht:propose-skills`, the dead half of `smaht:state`, and `persona:submit`. These have no rubric worth rescuing.
|
|
24
|
+
|
|
25
|
+
## KEEP (earns its place)
|
|
26
|
+
|
|
27
|
+
| Feature | Why (criterion) |
|
|
28
|
+
|---|---|
|
|
29
|
+
| `prove` + the produces-gate (vault/loom, outputs + attestation + semantic) | **output** — stops false "done"; no native equivalent |
|
|
30
|
+
| `/compile` | **easier** — emits a self-contained gate into any repo |
|
|
31
|
+
| code-graph (codegraph + injected-edge extractors) → `search:blast-radius`, `search:lineage` | **output + tokens** — finds injected relationships grep can't; impact in one query vs. reading many files |
|
|
32
|
+
| wicked-patch (`rename`/`add-field`/`remove`/`apply`) — once wired to the graph DB | **easier + output** — deterministic multi-file refactor |
|
|
33
|
+
| `jam:council` / multi-model | **output** — real external-model perspective the agent can't produce alone |
|
|
34
|
+
| `jam:brainstorm` / `revisit` (the wicked-brain decision-memory loop) | **output** — longitudinal decision/outcome memory |
|
|
35
|
+
| `smaht:briefing` | **tokens** — one event-store query replaces stitching git+memory+tasks |
|
|
36
|
+
| `data:ontology` | **output** — real RDF-vocabulary engine (beats free-recall) |
|
|
37
|
+
| `persona:as` (built-in personas) + `persona:list` | **output** — hand-authored constraints/memories measurably steer; cheap discovery |
|
|
38
|
+
| `platform:security` (now drives real `gitleaks`/`semgrep`) | **output** — real SAST/secrets, not grep-guessing |
|
|
39
|
+
| `platform:toolchain` | **tokens/easier** — fast deterministic CLI inventory |
|
|
40
|
+
| wicked-testing integration (`acceptance`/`run`/`plan`/`review`) | **output** — evidence-gated testing backbone |
|
|
41
|
+
| archetype **gate** + actionable steering (emits the `prove` one-liner) | **output** — turns the principle into a reflex |
|
|
42
|
+
| Core plumbing: `setup`, `where-am-i`, `help`, `intent`, `reset`, `classify`, hooks | load-bearing |
|
|
43
|
+
|
|
44
|
+
## COLLAPSE (default — fails the hop test, but the rubric is worth keeping)
|
|
45
|
+
|
|
46
|
+
These are `Task(subagent)` rubric-wrappers: a checklist the agent already applies, behind a hop that costs more tokens for the same result. **The hop goes; the rubric becomes an on-demand `skills/*/refs/<name>.md`; the command runs it inline.** Roughly ~42 commands, plus the agents that exist *only* as their dispatch targets (those go; agents still referenced by a surviving command/skill stay).
|
|
47
|
+
|
|
48
|
+
| Domain | Collapse | Note |
|
|
49
|
+
|---|---|---|
|
|
50
|
+
| product | ✅ **EXECUTED — all 12** (`a11y`,`ux`,`ux-review`,`elicit`,`strategy`,`mockup`,`screenshot`,`analyze`,`synthesize`,`listen`,`align`,`acceptance`) | The pattern. Each rubric is now `skills/product/refs/<name>.md`, loaded inline. **Kept dispatch** only for the genuine multi-lens cases: `ux-review --focus all` (4 lenses) and `strategy --focus all` (2 lenses). Removed the dispatch-only agents `ux-analyst`, `user-voice`, `mockup-generator`; kept the rest (still referenced). `acceptance --scenarios` wicked-testing tie-in preserved in the ref. |
|
|
51
|
+
| engineering | `debug`, `plan`, `arch`, `review`, `docs` | `debug` duplicates `superpowers:systematic-debugging` (collapse to a pointer); rest collapse with R1–R6 preserved as a ref. |
|
|
52
|
+
| platform | `compliance`, `audit`, `incident`, `health`, `traces`, `actions`, `gh`, `infra` | keep `security` + `toolchain`. Collapse the SOC2/HIPAA audit checklist into a ref. |
|
|
53
|
+
| data | `analyze`, `data`, `pipeline`, `ml` | keep `ontology`. |
|
|
54
|
+
| delivery | `experiment`, `report`, `rollout`, `setup` | document templates → refs; `process-health` already deleted. Domain effectively retired. |
|
|
55
|
+
| agentic | `review`, `audit`, `design`, `frameworks` | scripts emit false signals (drop those); collapse the T&S 8-layer rubric into a ref. |
|
|
56
|
+
| jam | `quick`, `perspectives` (single-model role-play); `thinking`/`transcript`/`persona` (retrieval utils) | keep `council`/`brainstorm`/`revisit`. |
|
|
57
|
+
| persona | `define` | thin (define can't set the rich fields) — collapse. Keep `as`/`list`. |
|
|
58
|
+
| smaht | `state` (half-dead — collapse the live half) | keep `briefing`; `events-import` is a one-time util (keep or archive). |
|
|
59
|
+
|
|
60
|
+
## DELETE (truly-dead — no rubric to rescue)
|
|
61
|
+
|
|
62
|
+
`crew:archive` + `delivery:process-health` (already removed), `smaht:propose-skills` (weak signal), the dead half of `smaht:state`, `persona:submit` (no-op stub). Nothing of value is lost.
|
|
63
|
+
|
|
64
|
+
## What we lose
|
|
65
|
+
|
|
66
|
+
**With collapse, functionality lost ≈ 0.** The rubric, checklist, and capability survive verbatim as a `refs/` file — still discoverable (it's in the skill tree), still loadable on demand, still valid on **other repos and other toolchains** (a ref is portable knowledge; a dispatch hop is not). What's removed is *only the token-burning dispatch hop* — the parent no longer pays subagent spin-up + round-trip for a checklist it can apply itself.
|
|
67
|
+
|
|
68
|
+
The win is **dual-customer**:
|
|
69
|
+
- **the AI agent** — fewer tokens, lower latency, the rubric inlined exactly when it's needed (progressive disclosure keeps idle context near zero);
|
|
70
|
+
- **the human** — a smaller, legible surface; the rubric reads as documentation;
|
|
71
|
+
- **other-repo agents** — `skills/*/refs/` ships as portable knowledge they can load without the garden's dispatch machinery.
|
|
72
|
+
|
|
73
|
+
Only the genuinely-dead DELETE rows lose anything, and those had no rubric worth keeping.
|
|
74
|
+
|
|
75
|
+
## Estimated impact
|
|
76
|
+
|
|
77
|
+
- Commands: stay numerically similar (collapsed, not deleted) but each is **slim** — the parent-context cost per command drops to a few lines; the rubric body moves to on-demand `refs/`.
|
|
78
|
+
- Agents: **down sharply** (~56 → ~20) — the dispatch-only targets go; the rubric-bearing ones survive as refs.
|
|
79
|
+
- Net: idle parent-context shrinks (slim bodies); per-invocation tokens drop (no hop); **zero capability lost**. The surface finally matches the "thin, high-value toolkit" the agent actually reaches for.
|
|
80
|
+
|
|
81
|
+
## Phased execution (each phase = one worktree PR, parallelizable, suite-gated)
|
|
82
|
+
|
|
83
|
+
0. ✅ Remove dead commands (`crew:archive`, `delivery:process-health`).
|
|
84
|
+
1. ✅ **product** domain collapse (#910) — the executed pattern the rest followed.
|
|
85
|
+
2. ✅ **engineering** collapse (#911) — arch/debug/docs/plan/review; patch family kept.
|
|
86
|
+
3. ✅ **platform** collapse (#912) — 8 wrappers; security/toolchain/assert/plugin-health kept.
|
|
87
|
+
4. ✅ **data + delivery** collapse (#913) — keep ontology + setup.
|
|
88
|
+
5. ✅ **agentic + jam + persona + smaht** collapse (#914) — keep council/brainstorm/revisit/briefing; delete persona:submit + smaht:propose-skills.
|
|
89
|
+
6. ✅ **Agent-orphan purge + registry sync** — `find_orphan_agents.py` did a reachability analysis (roots = commands/skills/scenarios/registries, **not** the generated `components.json`); removed 3 truly-orphaned delivery agents (cloud-cost-intelligence, delivery-manager, progress-tracker) while correctly keeping the 4 that live scenarios still dispatch to. `sync_components.py` re-derived the manifest; `docs/domains.md` updated.
|
|
90
|
+
|
|
91
|
+
Each phase was reversible (git), suite-gated, and PR'd. Two reusable anti-drift tools fell out of phase 6: `find_orphan_agents.py` (dead-agent detection) and `sync_components.py` (manifest never silently drifts again).
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# ADR 0003 — Two required peers (the gate), three opt-in layers
|
|
2
|
+
|
|
3
|
+
- **Status:** Accepted — executed.
|
|
4
|
+
- **Date:** 2026-06-09
|
|
5
|
+
- **Supersedes:** the v12 stance in `docs/required-peers.md` ("five peers are required infrastructure").
|
|
6
|
+
|
|
7
|
+
## Context
|
|
8
|
+
|
|
9
|
+
v12 made all five peers (`wicked-testing`, `wicked-vault`, `wicked-brain`, `wicked-bus`, `wicked-loom`) **required** — `/wicked-garden:setup` blocked without any one, and the SessionStart bootstrap nagged "REQUIRED but not installed" for each.
|
|
10
|
+
|
|
11
|
+
A third-party review pass (a skeptic persona + a `jam:council` panel of external models — codex/gpt-5.5 and opencode/claude-haiku) converged, independently, on one verdict: **the all-or-nothing five-peer requirement contradicts the "gap-filler that gets out of the way" pitch and is the single biggest adoption blocker.** "A gap-filler should feel additive; this sounds like infrastructure." "A single required peer would unlock solo adoption; bundle the other four as opt-in layers and you'd see 10× more install attempts."
|
|
12
|
+
|
|
13
|
+
The author's counter-point matters too: **garden's goal is a curated toolkit**, and stripping to one tool deletes the concept. So the resolution is not "cut to one tool" — it's "keep the breadth, fix the coupling."
|
|
14
|
+
|
|
15
|
+
## Decision
|
|
16
|
+
|
|
17
|
+
Split the peers by what actually needs them:
|
|
18
|
+
|
|
19
|
+
- **Required — the evidence gate:** `wicked-vault` + `wicked-loom`. The toolkit's central promise is *re-derived, fail-closed "done."* A gate that can't re-derive evidence is the one thing we refuse to fake, so setup **blocks** without these two. Trading adoption for honesty here is deliberate.
|
|
20
|
+
- **Opt-in layers:** `wicked-testing` (acceptance-testing tool), `wicked-brain` (memory + search — the *what*), `wicked-understanding` (repo playbooks — the *how*; `skills`-standard, added in v12.16), `wicked-bus` (audit trail). Each unlocks one capability; none is a prerequisite for the others or for the gate. Setup **recommends** them and continues; bootstrap surfaces them informationally.
|
|
21
|
+
|
|
22
|
+
This is the toolkit stance: **breadth you adopt incrementally**, not a five-thing prerequisite wall.
|
|
23
|
+
|
|
24
|
+
## Why this is safe
|
|
25
|
+
|
|
26
|
+
- The produces-gate already routes only through vault+loom; it never needed testing/brain/bus.
|
|
27
|
+
- `wicked-bus` emission was already fire-and-forget / fail-open.
|
|
28
|
+
- `wicked-brain` absence already degrades (structural search falls back to codegraph; memory features simply go dark).
|
|
29
|
+
- Runtime resilience + the kill-switches (`WICKED_VAULT_BIN=""`, `WICKED_LOOM_CUTOVER=off`) are unchanged — they still fail closed, never vacuous-pass.
|
|
30
|
+
|
|
31
|
+
## Changes
|
|
32
|
+
|
|
33
|
+
- `commands/setup.md` — testing/brain/bus sections → "Recommended (opt-in layer)", non-blocking (Skip & continue); vault/loom → "Required — the evidence gate", still blocking. Added a "two required, three opt-in" framing note.
|
|
34
|
+
- `hooks/scripts/bootstrap.py` — brain/bus notes reworded "REQUIRED but not installed" → "optional layer not installed"; removed the brain "[Action Required] … cannot function … do NOT proceed" escalation. vault/loom notes unchanged.
|
|
35
|
+
- `docs/required-peers.md` rewritten to the 2-required/3-opt-in model; README/ETHOS/plugin.json/marketplace.json/repo description reframed; positioning shifted from "minimal gap-filler" to **"curated toolkit"** (breadth is the point; the coupling was the problem).
|
|
36
|
+
|
|
37
|
+
## Consequences
|
|
38
|
+
|
|
39
|
+
- Solo developers can install garden + the gate (two `npx`/`npm` steps) and get value immediately, adding layers as needed.
|
|
40
|
+
- The honesty guarantee is preserved exactly where it's load-bearing (the gate).
|
|
41
|
+
- Honest cost: a user who skips brain/bus/testing gets a smaller toolkit — which is the point of opt-in. Docs say so plainly rather than pretending everything is mandatory.
|