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,125 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: wicked-garden-deliberate
|
|
3
|
+
context: fork
|
|
4
|
+
description: |
|
|
5
|
+
Critical thinking framework applied before doing work. Challenges assumptions,
|
|
6
|
+
reframes problems, identifies hidden opportunities, and validates whether the stated
|
|
7
|
+
ask is the right ask. A way of approaching work, not a specialist discipline.
|
|
8
|
+
|
|
9
|
+
Use when: challenging assumptions before implementation, reframing a stated
|
|
10
|
+
problem, or asking whether the right thing is being asked at all.
|
|
11
|
+
phase_relevance: ["clarify", "design"]
|
|
12
|
+
archetype_relevance: ["*"]
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# Deliberate
|
|
16
|
+
|
|
17
|
+
A structured way of thinking about work **before doing it**. Applied to any request —
|
|
18
|
+
bugs, features, enhancements, content, design, infrastructure — to ensure we're solving
|
|
19
|
+
the right problem the right way.
|
|
20
|
+
|
|
21
|
+
## When to Use
|
|
22
|
+
|
|
23
|
+
- Before accepting any work request at face value
|
|
24
|
+
- During crew **clarify** and **design** phases (auto-integrated)
|
|
25
|
+
- When triaging issues, tickets, or ad-hoc asks
|
|
26
|
+
- Any time the gut response is "just do it" — pause and deliberate first
|
|
27
|
+
|
|
28
|
+
## The Five Lenses
|
|
29
|
+
|
|
30
|
+
### 1. Is This Real?
|
|
31
|
+
|
|
32
|
+
Challenge the premise before solving it.
|
|
33
|
+
|
|
34
|
+
- Is the reported problem actually a problem, or is it working as intended?
|
|
35
|
+
- Is this a symptom or the root cause? Would fixing it just move the pain?
|
|
36
|
+
- What's the evidence? Observed behavior, user feedback, or speculation?
|
|
37
|
+
- What's the cost of doing nothing? Sometimes inaction is the right action.
|
|
38
|
+
|
|
39
|
+
### 2. What's Actually Going On?
|
|
40
|
+
|
|
41
|
+
If the problem is real, dig to the root.
|
|
42
|
+
|
|
43
|
+
- Trace the issue to its origin — don't stop at the first explanation
|
|
44
|
+
- Is this a design flaw wearing a different mask?
|
|
45
|
+
- Map the blast radius: what else shares the same root cause?
|
|
46
|
+
- Is the framing itself wrong? (e.g., "the button is broken" vs "the flow is confusing")
|
|
47
|
+
|
|
48
|
+
### 3. What Else Can We Fix While We're Here?
|
|
49
|
+
|
|
50
|
+
Every change is a window into the surrounding code/content/system.
|
|
51
|
+
|
|
52
|
+
- Are there adjacent areas suffering from the same weakness?
|
|
53
|
+
- Can we generalize instead of point-fixing?
|
|
54
|
+
- Is there duplication that should be consolidated?
|
|
55
|
+
- Would a structural change prevent entire categories of similar asks?
|
|
56
|
+
|
|
57
|
+
See [refs/opportunity-patterns.md](refs/opportunity-patterns.md) for common patterns.
|
|
58
|
+
|
|
59
|
+
### 4. Should We Rethink the Design?
|
|
60
|
+
|
|
61
|
+
Step back further. Is the current approach the right one?
|
|
62
|
+
|
|
63
|
+
- Would a different structure make this problem disappear entirely?
|
|
64
|
+
- Are we patching around a leaky abstraction or flawed model?
|
|
65
|
+
- Is the boundary in the wrong place?
|
|
66
|
+
- What would we build if starting fresh with today's knowledge?
|
|
67
|
+
|
|
68
|
+
See [refs/rethink-framework.md](refs/rethink-framework.md) for evaluation.
|
|
69
|
+
|
|
70
|
+
### 5. Is There a Better Way?
|
|
71
|
+
|
|
72
|
+
Before committing to the obvious solution, explore alternatives.
|
|
73
|
+
|
|
74
|
+
- Can we solve this by **removing** instead of adding?
|
|
75
|
+
- Can we solve this with configuration instead of code?
|
|
76
|
+
- Is there a simpler approach that covers 90% of cases?
|
|
77
|
+
- What are we trading off with each option?
|
|
78
|
+
|
|
79
|
+
## Output: Deliberation Brief
|
|
80
|
+
|
|
81
|
+
```markdown
|
|
82
|
+
## Deliberation Brief: {title}
|
|
83
|
+
|
|
84
|
+
### Assessment
|
|
85
|
+
**Validity**: Real problem / Symptom / Not a problem / Wrong framing
|
|
86
|
+
**Root cause**: {actual cause, not what was reported}
|
|
87
|
+
**Blast radius**: {what else is affected by the same root cause}
|
|
88
|
+
|
|
89
|
+
### Opportunities
|
|
90
|
+
**Cleanup**: {what can be improved alongside}
|
|
91
|
+
**Generalization**: {can we abstract or consolidate?}
|
|
92
|
+
**Rethink**: {should we redesign the approach?}
|
|
93
|
+
|
|
94
|
+
### Recommendation
|
|
95
|
+
**Strategy**: Fix / Redesign / Generalize / Defer / Close
|
|
96
|
+
**Rationale**: {why this approach over alternatives}
|
|
97
|
+
**Scope**: Expand / Contract / Same — {what changed from original ask}
|
|
98
|
+
|
|
99
|
+
### Guidance
|
|
100
|
+
{specific direction for whoever does the work}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Domain-Specific Depth
|
|
104
|
+
|
|
105
|
+
The five lenses are universal. The refs provide depth for specific contexts:
|
|
106
|
+
|
|
107
|
+
- [refs/opportunity-patterns.md](refs/opportunity-patterns.md) — Structural patterns that signal cleanup opportunities
|
|
108
|
+
- [refs/rethink-framework.md](refs/rethink-framework.md) — When and how to propose a redesign
|
|
109
|
+
- [refs/code-lens.md](refs/code-lens.md) — Code-specific patterns (error handling, abstractions, tech debt)
|
|
110
|
+
- [refs/content-lens.md](refs/content-lens.md) — Content/docs patterns (messaging, structure, audience)
|
|
111
|
+
- [refs/design-lens.md](refs/design-lens.md) — Design patterns (UX flows, information architecture)
|
|
112
|
+
- [refs/architecture-lens.md](refs/architecture-lens.md) — System patterns (boundaries, dependencies, scaling)
|
|
113
|
+
- [refs/data-lens.md](refs/data-lens.md) — Data patterns (pipelines, schemas, quality, contracts)
|
|
114
|
+
- [refs/ops-lens.md](refs/ops-lens.md) — Ops patterns (incidents, reliability, deployment, observability)
|
|
115
|
+
- [refs/security-lens.md](refs/security-lens.md) — Security patterns (auth, vulnerabilities, threat models, compliance)
|
|
116
|
+
- [refs/product-lens.md](refs/product-lens.md) — Product patterns (user needs, prioritization, value, strategy)
|
|
117
|
+
- [refs/testing-lens.md](refs/testing-lens.md) — Testing patterns (test strategy, flakiness, coverage, test design)
|
|
118
|
+
- [refs/timing-lens.md](refs/timing-lens.md) — Timing patterns (urgency, sequencing, premature optimization)
|
|
119
|
+
- [refs/assumptions-lens.md](refs/assumptions-lens.md) — Assumption patterns (hidden dependencies, fragile premises)
|
|
120
|
+
|
|
121
|
+
## Integration
|
|
122
|
+
|
|
123
|
+
- **Crew workflow**: Auto-invoked during clarify and design phases
|
|
124
|
+
- **Standalone**: `/wicked-garden:deliberate {description or GH#}`
|
|
125
|
+
- **Batch**: Process multiple issues together to find shared root causes
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase_relevance: ["clarify", "design"]
|
|
3
|
+
archetype_relevance: ["*"]
|
|
4
|
+
---
|
|
5
|
+
# Architecture Lens
|
|
6
|
+
|
|
7
|
+
Additional questions for the five lenses when the work involves system architecture.
|
|
8
|
+
|
|
9
|
+
## Lens 1 Additions: Is This Real?
|
|
10
|
+
|
|
11
|
+
- Is this a scalability problem now, or a theoretical future concern?
|
|
12
|
+
- Is this an architecture issue, or an implementation issue within a sound architecture?
|
|
13
|
+
- Are we solving for the current scale or a projected scale we may never reach?
|
|
14
|
+
|
|
15
|
+
## Lens 2 Additions: What's Actually Going On?
|
|
16
|
+
|
|
17
|
+
- Is the service boundary in the wrong place?
|
|
18
|
+
- Is the coupling between components the root cause?
|
|
19
|
+
- Is this a data model issue masquerading as an application issue?
|
|
20
|
+
|
|
21
|
+
## Lens 3 Additions: What Else Can We Fix?
|
|
22
|
+
|
|
23
|
+
- Are other service boundaries suffering from the same poor decomposition?
|
|
24
|
+
- Can we introduce a shared contract that prevents integration drift?
|
|
25
|
+
- Are there undocumented architectural decisions (ADRs) that should be captured?
|
|
26
|
+
|
|
27
|
+
## Lens 4 Additions: Should We Rethink?
|
|
28
|
+
|
|
29
|
+
- Would merging two services be simpler than fixing their interaction?
|
|
30
|
+
- Would an event-driven approach replace fragile synchronous coupling?
|
|
31
|
+
- Would a different data ownership model eliminate the coordination problem?
|
|
32
|
+
|
|
33
|
+
## Lens 5 Additions: Better Way?
|
|
34
|
+
|
|
35
|
+
- Can we solve this with a configuration change instead of code?
|
|
36
|
+
- Can we solve this with a proxy/gateway instead of modifying services?
|
|
37
|
+
- Can we defer the architectural change with a well-placed facade?
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase_relevance: ["clarify", "design"]
|
|
3
|
+
archetype_relevance: ["*"]
|
|
4
|
+
---
|
|
5
|
+
# Assumptions Lens
|
|
6
|
+
|
|
7
|
+
Additional questions for the five lenses that surface hidden assumptions and
|
|
8
|
+
fragile dependencies. Maps what we're taking for granted and what breaks if we're wrong.
|
|
9
|
+
|
|
10
|
+
## Lens 1 Additions: Is This Real?
|
|
11
|
+
|
|
12
|
+
- What assumption makes us believe this is a problem? Is that assumption verified?
|
|
13
|
+
- Are we assuming user behavior that we haven't observed?
|
|
14
|
+
- Are we assuming a dependency will remain stable (API, library, service)?
|
|
15
|
+
- Are we assuming this environment/context will stay the same?
|
|
16
|
+
|
|
17
|
+
## Lens 2 Additions: What's Actually Going On?
|
|
18
|
+
|
|
19
|
+
- What are the implicit assumptions in the current design that led to this issue?
|
|
20
|
+
- Is the problem caused by an assumption that was once true but no longer is?
|
|
21
|
+
- Are we assuming cause and effect, or just correlation?
|
|
22
|
+
- What would we discover if we questioned the constraint we think is fixed?
|
|
23
|
+
|
|
24
|
+
## Lens 3 Additions: What Else Can We Fix?
|
|
25
|
+
|
|
26
|
+
- Are there other parts of the system built on the same fragile assumption?
|
|
27
|
+
- Can we make assumptions explicit — document them so they're auditable?
|
|
28
|
+
- Can we add assertions or contracts that fail loudly when assumptions break?
|
|
29
|
+
- Are there undocumented dependencies between components?
|
|
30
|
+
|
|
31
|
+
## Lens 4 Additions: Should We Rethink?
|
|
32
|
+
|
|
33
|
+
- Would designing for the assumption being WRONG be more resilient?
|
|
34
|
+
- Can we eliminate the assumption entirely instead of coding around it?
|
|
35
|
+
- Should we build an abstraction layer so changing this assumption later is cheap?
|
|
36
|
+
- Would a different architecture have fewer hidden assumptions?
|
|
37
|
+
|
|
38
|
+
## Lens 5 Additions: Better Way?
|
|
39
|
+
|
|
40
|
+
- Can we validate the key assumption before building? (prototype, data check, user test)
|
|
41
|
+
- Can we design for graceful degradation when assumptions fail?
|
|
42
|
+
- Can we add monitoring that alerts us when an assumption is violated?
|
|
43
|
+
- Can we make the dependency explicit and versioned instead of implicit?
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase_relevance: ["clarify", "design"]
|
|
3
|
+
archetype_relevance: ["*"]
|
|
4
|
+
---
|
|
5
|
+
# Code Lens
|
|
6
|
+
|
|
7
|
+
Additional questions for the five lenses when the work involves code changes.
|
|
8
|
+
|
|
9
|
+
## Lens 1 Additions: Is This Real?
|
|
10
|
+
|
|
11
|
+
- Is this a bug or a misunderstanding of the API contract?
|
|
12
|
+
- Does the error message accurately describe the problem, or is it misleading?
|
|
13
|
+
- Is the "fix" already in place but behind a flag or config?
|
|
14
|
+
|
|
15
|
+
## Lens 2 Additions: What's Actually Going On?
|
|
16
|
+
|
|
17
|
+
- Is the error handling the problem, not the error itself?
|
|
18
|
+
- Is a race condition or timing issue masquerading as a logic bug?
|
|
19
|
+
- Is the test wrong rather than the code?
|
|
20
|
+
|
|
21
|
+
## Lens 3 Additions: What Else Can We Fix?
|
|
22
|
+
|
|
23
|
+
- Are exception handlers swallowing errors that should propagate?
|
|
24
|
+
- Is there dead code adjacent to the change that should be removed?
|
|
25
|
+
- Can we add types or validation to prevent this class of bug?
|
|
26
|
+
- Are there missing tests that would have caught this?
|
|
27
|
+
|
|
28
|
+
## Lens 4 Additions: Should We Rethink?
|
|
29
|
+
|
|
30
|
+
- Would a Result type replace scattered try/catch?
|
|
31
|
+
- Would dependency injection replace the tight coupling causing the bug?
|
|
32
|
+
- Would an event-driven approach replace the fragile sequential flow?
|
|
33
|
+
|
|
34
|
+
## Lens 5 Additions: Better Way?
|
|
35
|
+
|
|
36
|
+
- Can we use a library/stdlib function instead of custom code?
|
|
37
|
+
- Can we make the compiler/type system catch this automatically?
|
|
38
|
+
- Can we add a linter rule to prevent recurrence?
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase_relevance: ["clarify", "design"]
|
|
3
|
+
archetype_relevance: ["*"]
|
|
4
|
+
---
|
|
5
|
+
# Content Lens
|
|
6
|
+
|
|
7
|
+
Additional questions for the five lenses when the work involves content, docs, or copy.
|
|
8
|
+
|
|
9
|
+
## Lens 1 Additions: Is This Real?
|
|
10
|
+
|
|
11
|
+
- Is the content actually wrong, or is the reader's context different than expected?
|
|
12
|
+
- Is this a gap in the content, or should the reader be directed elsewhere?
|
|
13
|
+
- Is the complaint about accuracy, clarity, or discoverability?
|
|
14
|
+
|
|
15
|
+
## Lens 2 Additions: What's Actually Going On?
|
|
16
|
+
|
|
17
|
+
- Is the information correct but poorly structured?
|
|
18
|
+
- Is the audience assumption wrong? (writing for experts, read by beginners)
|
|
19
|
+
- Is the content stale because the source of truth changed but docs weren't updated?
|
|
20
|
+
|
|
21
|
+
## Lens 3 Additions: What Else Can We Fix?
|
|
22
|
+
|
|
23
|
+
- Are other docs making the same assumption about audience?
|
|
24
|
+
- Is there a pattern of content going stale? Can we automate freshness checks?
|
|
25
|
+
- Are related pages consistent in terminology, tone, and structure?
|
|
26
|
+
|
|
27
|
+
## Lens 4 Additions: Should We Rethink?
|
|
28
|
+
|
|
29
|
+
- Should this be a tutorial instead of reference docs (or vice versa)?
|
|
30
|
+
- Should this content be generated from code/schema instead of hand-written?
|
|
31
|
+
- Is the information architecture putting this in the wrong place?
|
|
32
|
+
|
|
33
|
+
## Lens 5 Additions: Better Way?
|
|
34
|
+
|
|
35
|
+
- Can we link to existing content instead of writing new?
|
|
36
|
+
- Can we use a diagram instead of three paragraphs?
|
|
37
|
+
- Can we add an example instead of more explanation?
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase_relevance: ["clarify", "design"]
|
|
3
|
+
archetype_relevance: ["*"]
|
|
4
|
+
---
|
|
5
|
+
# Data Lens
|
|
6
|
+
|
|
7
|
+
Additional questions for the five lenses when the work involves data pipelines,
|
|
8
|
+
schemas, analytics, or data quality.
|
|
9
|
+
|
|
10
|
+
## Lens 1 Additions: Is This Real?
|
|
11
|
+
|
|
12
|
+
- Is the data actually wrong, or is the expectation wrong?
|
|
13
|
+
- Is this a data quality issue or a schema/contract issue?
|
|
14
|
+
- Is the "missing data" actually filtered out by a rule that's working correctly?
|
|
15
|
+
- Are we measuring the right thing, or is the metric definition flawed?
|
|
16
|
+
|
|
17
|
+
## Lens 2 Additions: What's Actually Going On?
|
|
18
|
+
|
|
19
|
+
- Is the issue at ingestion, transformation, or presentation?
|
|
20
|
+
- Is a schema change upstream silently breaking downstream consumers?
|
|
21
|
+
- Is this a timing issue? (data not yet available vs. actually missing)
|
|
22
|
+
- Is the pipeline idempotent? Could reruns have introduced duplicates?
|
|
23
|
+
|
|
24
|
+
## Lens 3 Additions: What Else Can We Fix?
|
|
25
|
+
|
|
26
|
+
- Are other pipelines consuming the same source with the same vulnerability?
|
|
27
|
+
- Is there missing data validation at ingestion boundaries?
|
|
28
|
+
- Are schema contracts documented and enforced, or assumed?
|
|
29
|
+
- Can we add data quality checks that catch this class of issue automatically?
|
|
30
|
+
|
|
31
|
+
## Lens 4 Additions: Should We Rethink?
|
|
32
|
+
|
|
33
|
+
- Should this be a streaming pipeline instead of batch (or vice versa)?
|
|
34
|
+
- Would schema evolution tooling prevent breaking changes?
|
|
35
|
+
- Should the data ownership boundary move? (who produces vs. consumes)
|
|
36
|
+
- Would a data contract between producer and consumer prevent this?
|
|
37
|
+
|
|
38
|
+
## Lens 5 Additions: Better Way?
|
|
39
|
+
|
|
40
|
+
- Can we fix the source instead of patching the consumer?
|
|
41
|
+
- Can we add a dead-letter queue instead of failing silently?
|
|
42
|
+
- Can we use schema registry to catch incompatibilities before deploy?
|
|
43
|
+
- Can we solve this with monitoring/alerting instead of code changes?
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase_relevance: ["clarify", "design"]
|
|
3
|
+
archetype_relevance: ["*"]
|
|
4
|
+
---
|
|
5
|
+
# Design Lens
|
|
6
|
+
|
|
7
|
+
Additional questions for the five lenses when the work involves UX, UI, or design.
|
|
8
|
+
|
|
9
|
+
## Lens 1 Additions: Is This Real?
|
|
10
|
+
|
|
11
|
+
- Is this a usability issue or a learning curve? Would onboarding solve it?
|
|
12
|
+
- Is the user's mental model wrong, or is the design misleading?
|
|
13
|
+
- How many users are affected vs. how many adapted without issue?
|
|
14
|
+
|
|
15
|
+
## Lens 2 Additions: What's Actually Going On?
|
|
16
|
+
|
|
17
|
+
- Is the problem in this screen, or in the flow that led here?
|
|
18
|
+
- Is the information hierarchy wrong? (important things not prominent)
|
|
19
|
+
- Is the issue visual (styling) or structural (wrong component/pattern)?
|
|
20
|
+
|
|
21
|
+
## Lens 3 Additions: What Else Can We Fix?
|
|
22
|
+
|
|
23
|
+
- Do other screens have the same usability issue?
|
|
24
|
+
- Is the design system missing a component this screen needs?
|
|
25
|
+
- Are similar interactions inconsistent across the product?
|
|
26
|
+
|
|
27
|
+
## Lens 4 Additions: Should We Rethink?
|
|
28
|
+
|
|
29
|
+
- Would removing a step eliminate the confusion entirely?
|
|
30
|
+
- Would progressive disclosure solve the overwhelm?
|
|
31
|
+
- Should this be a different interaction pattern altogether?
|
|
32
|
+
|
|
33
|
+
## Lens 5 Additions: Better Way?
|
|
34
|
+
|
|
35
|
+
- Can we use a standard platform pattern users already know?
|
|
36
|
+
- Can we show instead of tell? (preview, inline help, smart defaults)
|
|
37
|
+
- Can we remove options instead of adding explanations?
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase_relevance: ["clarify", "design"]
|
|
3
|
+
archetype_relevance: ["*"]
|
|
4
|
+
---
|
|
5
|
+
# Opportunity Patterns
|
|
6
|
+
|
|
7
|
+
Common patterns where a single issue reveals broader improvement opportunities.
|
|
8
|
+
These are domain-agnostic — they apply to code, content, design, and systems alike.
|
|
9
|
+
|
|
10
|
+
## Pattern: Shotgun Surgery
|
|
11
|
+
|
|
12
|
+
**Signal**: A single change requires edits in many places.
|
|
13
|
+
**Opportunity**: Extract the scattered concern into a shared abstraction.
|
|
14
|
+
**Examples**:
|
|
15
|
+
- Code: Date formatting fix needed in 12 controllers → extract DateFormatter
|
|
16
|
+
- Content: Brand voice update required across 30 pages → extract style tokens
|
|
17
|
+
- Design: Color change needed in 15 components → extract design tokens
|
|
18
|
+
|
|
19
|
+
## Pattern: Silent Failure
|
|
20
|
+
|
|
21
|
+
**Signal**: Problem caused by something failing silently — no error, no log, no feedback.
|
|
22
|
+
**Opportunity**: Audit the area for other silent failures. Add observability.
|
|
23
|
+
**Examples**:
|
|
24
|
+
- Code: Exception swallowed, returns None → add structured error types
|
|
25
|
+
- Content: Broken link returns 200 with wrong page → add link validation
|
|
26
|
+
- Design: Form submits but nothing happens → add feedback states
|
|
27
|
+
|
|
28
|
+
## Pattern: Duplication
|
|
29
|
+
|
|
30
|
+
**Signal**: Fix needs to be applied in multiple places with similar logic.
|
|
31
|
+
**Opportunity**: Consolidate into a single source of truth.
|
|
32
|
+
**Examples**:
|
|
33
|
+
- Code: Validation logic copy-pasted across endpoints → extract Validator
|
|
34
|
+
- Content: Same instructions written differently in 3 guides → single source
|
|
35
|
+
- Design: Same component built differently in 4 views → shared component
|
|
36
|
+
|
|
37
|
+
## Pattern: Missing Abstraction
|
|
38
|
+
|
|
39
|
+
**Signal**: Multiple consumers implement the same multi-step process inline.
|
|
40
|
+
**Opportunity**: Name the process and give it a proper interface.
|
|
41
|
+
**Examples**:
|
|
42
|
+
- Code: Three services each query→transform→save → extract Pipeline
|
|
43
|
+
- Content: Writers each invent their own tutorial structure → extract template
|
|
44
|
+
- Design: Each page builds its own nav → extract navigation pattern
|
|
45
|
+
|
|
46
|
+
## Pattern: Leaky Boundary
|
|
47
|
+
|
|
48
|
+
**Signal**: Consumers need internal knowledge to use something correctly.
|
|
49
|
+
**Opportunity**: Redesign the interface to hide the complexity.
|
|
50
|
+
**Examples**:
|
|
51
|
+
- Code: Must call init() before use() → use context manager
|
|
52
|
+
- Content: Reader must know jargon to understand docs → add glossary/simplify
|
|
53
|
+
- Design: User must know hidden gesture to access feature → improve discoverability
|
|
54
|
+
|
|
55
|
+
## Pattern: Config Drift
|
|
56
|
+
|
|
57
|
+
**Signal**: Problem from inconsistent settings across environments or components.
|
|
58
|
+
**Opportunity**: Centralize with validation and parity checks.
|
|
59
|
+
**Examples**:
|
|
60
|
+
- Code: Two services define timeouts independently → shared config
|
|
61
|
+
- Content: Style guide says one thing, templates do another → sync
|
|
62
|
+
- Design: Mobile and desktop use different spacing scales → unify
|
|
63
|
+
|
|
64
|
+
## Pattern: Temporal Coupling
|
|
65
|
+
|
|
66
|
+
**Signal**: Problem caused by doing things in the wrong order.
|
|
67
|
+
**Opportunity**: Make invalid sequences impossible.
|
|
68
|
+
**Examples**:
|
|
69
|
+
- Code: Must call connect() before query() → auto-connect on first query
|
|
70
|
+
- Content: Must read Part 1 before Part 2 but nothing says so → add prereqs
|
|
71
|
+
- Design: Must complete Step A before Step B but UI allows skipping → enforce flow
|
|
72
|
+
|
|
73
|
+
## Pattern: Primitive Obsession
|
|
74
|
+
|
|
75
|
+
**Signal**: Problem from using generic types where domain types would prevent errors.
|
|
76
|
+
**Opportunity**: Introduce named types that carry meaning.
|
|
77
|
+
**Examples**:
|
|
78
|
+
- Code: User ID and session ID both strings, swapped in call → typed IDs
|
|
79
|
+
- Content: All metadata stored as free text → structured fields
|
|
80
|
+
- Design: All buttons look the same regardless of action → semantic variants
|
|
81
|
+
|
|
82
|
+
## Pattern: Feature Envy
|
|
83
|
+
|
|
84
|
+
**Signal**: Something reaches deep into another area's internals to get what it needs.
|
|
85
|
+
**Opportunity**: Move the logic to where the data lives, expose a proper interface.
|
|
86
|
+
**Examples**:
|
|
87
|
+
- Code: Report reads 5 private fields → add summary method on the owner
|
|
88
|
+
- Content: FAQ duplicates info from other pages → link instead of copy
|
|
89
|
+
- Design: Dashboard rebuilds data viz from raw data → expose chart-ready API
|
|
90
|
+
|
|
91
|
+
## Evaluation
|
|
92
|
+
|
|
93
|
+
When reviewing an issue, check which patterns apply:
|
|
94
|
+
|
|
95
|
+
| Pattern | Present? | Severity (0-3) | Fix Effort | Payoff |
|
|
96
|
+
|---------|----------|-----------------|------------|--------|
|
|
97
|
+
| Shotgun surgery | | | | |
|
|
98
|
+
| Silent failure | | | | |
|
|
99
|
+
| Duplication | | | | |
|
|
100
|
+
| Missing abstraction | | | | |
|
|
101
|
+
| Leaky boundary | | | | |
|
|
102
|
+
| Config drift | | | | |
|
|
103
|
+
| Temporal coupling | | | | |
|
|
104
|
+
| Primitive obsession | | | | |
|
|
105
|
+
| Feature envy | | | | |
|
|
106
|
+
|
|
107
|
+
**Priority**: High severity + low effort + high payoff = do it now alongside the fix.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase_relevance: ["clarify", "design"]
|
|
3
|
+
archetype_relevance: ["*"]
|
|
4
|
+
---
|
|
5
|
+
# Ops Lens
|
|
6
|
+
|
|
7
|
+
Additional questions for the five lenses when the work involves infrastructure,
|
|
8
|
+
deployments, incidents, reliability, or operational concerns.
|
|
9
|
+
|
|
10
|
+
## Lens 1 Additions: Is This Real?
|
|
11
|
+
|
|
12
|
+
- Is this an actual outage/degradation, or a monitoring false positive?
|
|
13
|
+
- Is this a one-time event or a recurring pattern?
|
|
14
|
+
- Is the alert threshold wrong rather than the system behavior?
|
|
15
|
+
- Is this impacting users, or just triggering internal noise?
|
|
16
|
+
|
|
17
|
+
## Lens 2 Additions: What's Actually Going On?
|
|
18
|
+
|
|
19
|
+
- Is this a capacity issue, a config issue, or a code issue?
|
|
20
|
+
- Is the root cause in our system or in a dependency?
|
|
21
|
+
- Is the failure domain isolated, or can it cascade?
|
|
22
|
+
- Did a recent deployment, config change, or scaling event trigger this?
|
|
23
|
+
|
|
24
|
+
## Lens 3 Additions: What Else Can We Fix?
|
|
25
|
+
|
|
26
|
+
- Are other services vulnerable to the same failure mode?
|
|
27
|
+
- Is there missing observability that made diagnosis slow?
|
|
28
|
+
- Are runbooks stale or missing for this scenario?
|
|
29
|
+
- Can we add circuit breakers, retries, or fallbacks for similar failures?
|
|
30
|
+
|
|
31
|
+
## Lens 4 Additions: Should We Rethink?
|
|
32
|
+
|
|
33
|
+
- Should this be a managed service instead of self-hosted?
|
|
34
|
+
- Would a different deployment strategy (canary, blue-green) prevent blast radius?
|
|
35
|
+
- Should we rearchitect for graceful degradation instead of hard failure?
|
|
36
|
+
- Would chaos engineering have caught this before production?
|
|
37
|
+
|
|
38
|
+
## Lens 5 Additions: Better Way?
|
|
39
|
+
|
|
40
|
+
- Can we auto-remediate instead of alerting a human?
|
|
41
|
+
- Can we solve this with resource limits/quotas instead of code?
|
|
42
|
+
- Can we add a health check that catches this before users do?
|
|
43
|
+
- Can we shift this left — catch it in CI instead of production?
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase_relevance: ["clarify", "design"]
|
|
3
|
+
archetype_relevance: ["*"]
|
|
4
|
+
---
|
|
5
|
+
# Product Lens
|
|
6
|
+
|
|
7
|
+
Additional questions for the five lenses when the work involves features, user needs,
|
|
8
|
+
prioritization, or product strategy.
|
|
9
|
+
|
|
10
|
+
## Lens 1 Additions: Is This Real?
|
|
11
|
+
|
|
12
|
+
- Does anyone actually want this? What's the evidence of demand?
|
|
13
|
+
- Is this one user's request or a pattern across many?
|
|
14
|
+
- Is the pain real and frequent, or mild and rare?
|
|
15
|
+
- Would users notice if we did nothing?
|
|
16
|
+
- Are we building this because a stakeholder asked, or because users need it?
|
|
17
|
+
|
|
18
|
+
## Lens 2 Additions: What's Actually Going On?
|
|
19
|
+
|
|
20
|
+
- Is the user struggling with our product, or with the underlying problem?
|
|
21
|
+
- Is the feature request actually a workaround for a missing capability?
|
|
22
|
+
- Is the complaint about the feature, or about how they discovered it?
|
|
23
|
+
- Are users asking for what they want, or describing what they think the solution is?
|
|
24
|
+
(What's the job-to-be-done behind the request?)
|
|
25
|
+
|
|
26
|
+
## Lens 3 Additions: What Else Can We Fix?
|
|
27
|
+
|
|
28
|
+
- Are there related user pain points in the same workflow?
|
|
29
|
+
- Would improving onboarding/docs reduce the need for this feature?
|
|
30
|
+
- Are there power-user workarounds that indicate a broader need?
|
|
31
|
+
- Can we improve the existing feature instead of adding a new one?
|
|
32
|
+
|
|
33
|
+
## Lens 4 Additions: Should We Rethink?
|
|
34
|
+
|
|
35
|
+
- Should this be a configuration option instead of a feature?
|
|
36
|
+
- Should this feature exist at all, or does it add complexity without proportional value?
|
|
37
|
+
- Would simplifying the product (removing features) solve the underlying confusion?
|
|
38
|
+
- Is this the right product to solve this problem, or should it be a separate tool?
|
|
39
|
+
|
|
40
|
+
## Lens 5 Additions: Better Way?
|
|
41
|
+
|
|
42
|
+
- Can we solve this with better defaults instead of a new setting?
|
|
43
|
+
- Can we solve this with documentation/education instead of code?
|
|
44
|
+
- Can we let users solve it themselves with an extension/API/integration?
|
|
45
|
+
- Is there a 10% effort solution that delivers 80% of the value?
|
|
46
|
+
- Can we validate the approach with a prototype before full investment?
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
phase_relevance: ["clarify", "design"]
|
|
3
|
+
archetype_relevance: ["*"]
|
|
4
|
+
---
|
|
5
|
+
# Rethink Framework
|
|
6
|
+
|
|
7
|
+
When to step back from fixing and consider redesigning. Not every issue needs a
|
|
8
|
+
rethink — but every issue deserves the question.
|
|
9
|
+
|
|
10
|
+
## The Rethink Test
|
|
11
|
+
|
|
12
|
+
Answer these five questions. If 3+ are "yes", consider a structural change:
|
|
13
|
+
|
|
14
|
+
1. **Recurrence**: Has this type of issue come up before in this area?
|
|
15
|
+
2. **Complexity**: Is the fix more complex than the thing it patches?
|
|
16
|
+
3. **Fragility**: Would the fix make things harder to change next time?
|
|
17
|
+
4. **Workaround**: Are we working around the design rather than with it?
|
|
18
|
+
5. **Regret**: If we'd known this need earlier, would we have built it differently?
|
|
19
|
+
|
|
20
|
+
## Rethink Strategies
|
|
21
|
+
|
|
22
|
+
### Invert the Dependency
|
|
23
|
+
|
|
24
|
+
**When**: A depends on B's internals, and the problem is in the coupling.
|
|
25
|
+
**How**: Have B expose what A needs. Or invert — have B call A.
|
|
26
|
+
**Risk**: Touches both sides. Test carefully.
|
|
27
|
+
|
|
28
|
+
### Split the Responsibility
|
|
29
|
+
|
|
30
|
+
**When**: One thing does too many jobs, and the problem is in their interaction.
|
|
31
|
+
**How**: Separate into distinct pieces with clear interfaces.
|
|
32
|
+
**Risk**: More pieces, but each is simpler. Split along natural boundaries.
|
|
33
|
+
|
|
34
|
+
### Replace Conditionals with Structure
|
|
35
|
+
|
|
36
|
+
**When**: Problem in a complex if/else chain handling different cases.
|
|
37
|
+
**How**: Define a base type and specialized variants. Route via registry/factory.
|
|
38
|
+
**Risk**: Over-engineering if only 2-3 cases. Good when cases grow.
|
|
39
|
+
|
|
40
|
+
### Make Invalid States Impossible
|
|
41
|
+
|
|
42
|
+
**When**: Problem from something being in a state that shouldn't exist.
|
|
43
|
+
**How**: Use types, enums, or state machines to constrain what's possible.
|
|
44
|
+
**Risk**: May require interface changes. Worth it for core concepts.
|
|
45
|
+
|
|
46
|
+
### Extract the Policy
|
|
47
|
+
|
|
48
|
+
**When**: Rules are embedded in infrastructure.
|
|
49
|
+
**How**: Pull rules into a separate, testable policy object.
|
|
50
|
+
**Risk**: Adds indirection. Justified when rules change frequently.
|
|
51
|
+
|
|
52
|
+
### Simplify by Removing
|
|
53
|
+
|
|
54
|
+
**When**: Problem is in unused or rarely-used functionality.
|
|
55
|
+
**How**: Delete it. Check usage, deprecate if needed, then remove.
|
|
56
|
+
**Risk**: Low — less surface area = fewer problems.
|
|
57
|
+
|
|
58
|
+
## Cost-Benefit Check
|
|
59
|
+
|
|
60
|
+
Before proposing a rethink, estimate:
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
Rethink Cost = (things touched x complexity) + (test rewrite) + (review overhead)
|
|
64
|
+
Ongoing Cost = (similar issues per quarter x fix time) + (confusion x ramp-up time)
|
|
65
|
+
|
|
66
|
+
If annualized Ongoing Cost > 2x Rethink Cost → rethink now
|
|
67
|
+
If Ongoing Cost < Rethink Cost → fix and document the debt
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Scope Control
|
|
71
|
+
|
|
72
|
+
Rethinks can expand without bounds. Constrain them:
|
|
73
|
+
|
|
74
|
+
1. **Time-box**: Set a maximum. If it takes longer, it's a separate project.
|
|
75
|
+
2. **Blast radius cap**: Touch at most N things. If more, split into phases.
|
|
76
|
+
3. **Quality parity**: New approach must have equal or better coverage before shipping.
|
|
77
|
+
4. **Rollback plan**: Ensure the old approach can be restored if needed.
|