@soleur/opencode 0.0.0-stage → 3.354.2
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/agents.manifest.json +476 -0
- package/.claude-plugin/plugin.json +42 -0
- package/README.md +44 -2
- package/agents/community/.gitkeep +0 -0
- package/agents/engineering/cto.md +87 -0
- package/agents/engineering/design/ddd-architect.md +95 -0
- package/agents/engineering/discovery/agent-finder.md +214 -0
- package/agents/engineering/discovery/functional-discovery.md +182 -0
- package/agents/engineering/infra/infra-security.md +151 -0
- package/agents/engineering/infra/platform-strategist.md +109 -0
- package/agents/engineering/infra/terraform-architect.md +171 -0
- package/agents/engineering/prompt-engineer.md +37 -0
- package/agents/engineering/research/best-practices-researcher.md +115 -0
- package/agents/engineering/research/framework-docs-researcher.md +93 -0
- package/agents/engineering/research/git-history-analyzer.md +53 -0
- package/agents/engineering/research/learnings-researcher.md +285 -0
- package/agents/engineering/research/repo-research-analyst.md +118 -0
- package/agents/engineering/review/agent-native-reviewer.md +279 -0
- package/agents/engineering/review/architecture-strategist.md +61 -0
- package/agents/engineering/review/code-quality-analyst.md +92 -0
- package/agents/engineering/review/code-simplicity-reviewer.md +109 -0
- package/agents/engineering/review/data-integrity-guardian.md +82 -0
- package/agents/engineering/review/data-migration-expert.md +98 -0
- package/agents/engineering/review/deployment-verification-agent.md +183 -0
- package/agents/engineering/review/dhh-rails-reviewer.md +46 -0
- package/agents/engineering/review/kieran-rails-reviewer.md +87 -0
- package/agents/engineering/review/legacy-code-expert.md +55 -0
- package/agents/engineering/review/observability-coverage-reviewer.md +147 -0
- package/agents/engineering/review/pattern-recognition-specialist.md +59 -0
- package/agents/engineering/review/performance-oracle.md +130 -0
- package/agents/engineering/review/security-sentinel.md +167 -0
- package/agents/engineering/review/semgrep-sast.md +36 -0
- package/agents/engineering/review/test-design-reviewer.md +150 -0
- package/agents/engineering/review/user-impact-reviewer.md +70 -0
- package/agents/engineering/workflow/pr-comment-resolver.md +69 -0
- package/agents/finance/budget-analyst.md +29 -0
- package/agents/finance/cfo.md +44 -0
- package/agents/finance/financial-reporter.md +30 -0
- package/agents/finance/revenue-analyst.md +30 -0
- package/agents/legal/clo.md +115 -0
- package/agents/legal/legal-compliance-auditor.md +110 -0
- package/agents/legal/legal-document-generator.md +134 -0
- package/agents/marketing/analytics-analyst.md +25 -0
- package/agents/marketing/brand-architect.md +181 -0
- package/agents/marketing/cmo.md +76 -0
- package/agents/marketing/conversion-optimizer.md +19 -0
- package/agents/marketing/copywriter.md +20 -0
- package/agents/marketing/fact-checker.md +70 -0
- package/agents/marketing/growth-strategist.md +145 -0
- package/agents/marketing/paid-media-strategist.md +28 -0
- package/agents/marketing/pricing-strategist.md +17 -0
- package/agents/marketing/programmatic-seo-specialist.md +25 -0
- package/agents/marketing/retention-strategist.md +23 -0
- package/agents/marketing/seo-aeo-analyst.md +164 -0
- package/agents/operations/coo.md +50 -0
- package/agents/operations/ops-advisor.md +78 -0
- package/agents/operations/ops-provisioner.md +101 -0
- package/agents/operations/ops-research.md +52 -0
- package/agents/operations/service-automator.md +278 -0
- package/agents/product/business-validator.md +206 -0
- package/agents/product/competitive-intelligence.md +89 -0
- package/agents/product/cpo.md +63 -0
- package/agents/product/design/ux-design-lead.md +209 -0
- package/agents/product/spec-flow-analyzer.md +122 -0
- package/agents/sales/cro.md +44 -0
- package/agents/sales/deal-architect.md +29 -0
- package/agents/sales/outbound-strategist.md +29 -0
- package/agents/sales/pipeline-analyst.md +29 -0
- package/agents/support/cco.md +48 -0
- package/agents/support/community-manager.md +570 -0
- package/agents/support/ticket-triage.md +70 -0
- package/bin/soleur-opencode.js +29 -0
- package/commands/go.md +660 -0
- package/commands/help.md +273 -0
- package/commands/sync.md +977 -0
- package/commands/version.md +103 -0
- package/hooks/antigravity-hooks.json +84 -0
- package/hooks/antigravity-session-start.sh +15 -0
- package/hooks/bare-root-cwd-guard.sh +131 -0
- package/hooks/browser-snapshot-credential-guard.sh +200 -0
- package/hooks/codex-session-start.sh +9 -0
- package/hooks/compaction-state.sh +525 -0
- package/hooks/destructive-command-guard.sh +1387 -0
- package/hooks/devin-session-start.sh +90 -0
- package/hooks/ext-filter-detect.sh +171 -0
- package/hooks/hooks.json +133 -0
- package/hooks/lib/hook-tool-kind.sh +24 -0
- package/hooks/lib/log-rotation.sh +176 -0
- package/hooks/lib/shell-argv.pl +576 -0
- package/hooks/memory-backstop.sh +1114 -0
- package/hooks/operator-stage-approval.sh +391 -0
- package/hooks/stop-hook.sh +367 -0
- package/hooks/unkept-promise-hook.sh +383 -0
- package/hooks/version-banner.sh +127 -0
- package/hooks/welcome-hook.sh +50 -0
- package/install.js +29 -0
- package/lib/agent-registry.ts +154 -0
- package/lib/c4-canonical-cli.mjs +34 -0
- package/lib/c4-canonical.mjs +46 -0
- package/lib/c4-from-components.ts +554 -0
- package/lib/go-routing.ts +81 -0
- package/lib/grok-inspect-contract.ts +311 -0
- package/lib/harness-model-map.ts +101 -0
- package/lib/harness-parity.ts +726 -0
- package/lib/harness-tool-map.ts +180 -0
- package/lib/harness.ts +716 -0
- package/lib/heartbeat-live-reconcile.ts +1153 -0
- package/lib/heartbeat-manifest.ts +361 -0
- package/lib/kb-coverage.ts +252 -0
- package/lib/pr-merge-poll.ts +103 -0
- package/lib/workflow-fidelity.ts +388 -0
- package/opencode/INSTRUCTIONS.md +171 -0
- package/opencode/agents/engineering/cto.md +10 -0
- package/opencode/agents/engineering/design/ddd-architect.md +10 -0
- package/opencode/agents/engineering/discovery/agent-finder.md +10 -0
- package/opencode/agents/engineering/discovery/functional-discovery.md +10 -0
- package/opencode/agents/engineering/infra/infra-security.md +10 -0
- package/opencode/agents/engineering/infra/platform-strategist.md +10 -0
- package/opencode/agents/engineering/infra/terraform-architect.md +10 -0
- package/opencode/agents/engineering/prompt-engineer.md +10 -0
- package/opencode/agents/engineering/research/best-practices-researcher.md +10 -0
- package/opencode/agents/engineering/research/framework-docs-researcher.md +10 -0
- package/opencode/agents/engineering/research/git-history-analyzer.md +10 -0
- package/opencode/agents/engineering/research/learnings-researcher.md +10 -0
- package/opencode/agents/engineering/research/repo-research-analyst.md +10 -0
- package/opencode/agents/engineering/review/agent-native-reviewer.md +10 -0
- package/opencode/agents/engineering/review/architecture-strategist.md +10 -0
- package/opencode/agents/engineering/review/code-quality-analyst.md +10 -0
- package/opencode/agents/engineering/review/code-simplicity-reviewer.md +10 -0
- package/opencode/agents/engineering/review/data-integrity-guardian.md +10 -0
- package/opencode/agents/engineering/review/data-migration-expert.md +10 -0
- package/opencode/agents/engineering/review/deployment-verification-agent.md +10 -0
- package/opencode/agents/engineering/review/dhh-rails-reviewer.md +10 -0
- package/opencode/agents/engineering/review/kieran-rails-reviewer.md +10 -0
- package/opencode/agents/engineering/review/legacy-code-expert.md +10 -0
- package/opencode/agents/engineering/review/observability-coverage-reviewer.md +10 -0
- package/opencode/agents/engineering/review/pattern-recognition-specialist.md +10 -0
- package/opencode/agents/engineering/review/performance-oracle.md +10 -0
- package/opencode/agents/engineering/review/security-sentinel.md +10 -0
- package/opencode/agents/engineering/review/semgrep-sast.md +10 -0
- package/opencode/agents/engineering/review/test-design-reviewer.md +10 -0
- package/opencode/agents/engineering/review/user-impact-reviewer.md +10 -0
- package/opencode/agents/engineering/workflow/pr-comment-resolver.md +10 -0
- package/opencode/agents/finance/budget-analyst.md +10 -0
- package/opencode/agents/finance/cfo.md +10 -0
- package/opencode/agents/finance/financial-reporter.md +10 -0
- package/opencode/agents/finance/revenue-analyst.md +10 -0
- package/opencode/agents/legal/clo.md +10 -0
- package/opencode/agents/legal/legal-compliance-auditor.md +10 -0
- package/opencode/agents/legal/legal-document-generator.md +10 -0
- package/opencode/agents/marketing/analytics-analyst.md +10 -0
- package/opencode/agents/marketing/brand-architect.md +10 -0
- package/opencode/agents/marketing/cmo.md +10 -0
- package/opencode/agents/marketing/conversion-optimizer.md +10 -0
- package/opencode/agents/marketing/copywriter.md +10 -0
- package/opencode/agents/marketing/fact-checker.md +10 -0
- package/opencode/agents/marketing/growth-strategist.md +10 -0
- package/opencode/agents/marketing/paid-media-strategist.md +10 -0
- package/opencode/agents/marketing/pricing-strategist.md +10 -0
- package/opencode/agents/marketing/programmatic-seo-specialist.md +10 -0
- package/opencode/agents/marketing/retention-strategist.md +10 -0
- package/opencode/agents/marketing/seo-aeo-analyst.md +10 -0
- package/opencode/agents/operations/coo.md +10 -0
- package/opencode/agents/operations/ops-advisor.md +10 -0
- package/opencode/agents/operations/ops-provisioner.md +10 -0
- package/opencode/agents/operations/ops-research.md +10 -0
- package/opencode/agents/operations/service-automator.md +10 -0
- package/opencode/agents/product/business-validator.md +10 -0
- package/opencode/agents/product/competitive-intelligence.md +10 -0
- package/opencode/agents/product/cpo.md +10 -0
- package/opencode/agents/product/design/ux-design-lead.md +10 -0
- package/opencode/agents/product/spec-flow-analyzer.md +10 -0
- package/opencode/agents/sales/cro.md +10 -0
- package/opencode/agents/sales/deal-architect.md +10 -0
- package/opencode/agents/sales/outbound-strategist.md +10 -0
- package/opencode/agents/sales/pipeline-analyst.md +10 -0
- package/opencode/agents/support/cco.md +10 -0
- package/opencode/agents/support/community-manager.md +10 -0
- package/opencode/agents/support/ticket-triage.md +10 -0
- package/opencode/commands/go.md +10 -0
- package/opencode/commands/help.md +10 -0
- package/opencode/commands/sync.md +10 -0
- package/opencode/commands/version.md +11 -0
- package/opencode/opencode.json +8 -0
- package/opencode/plugin.ts +818 -0
- package/package.json +36 -4
- package/scripts/admin-merge-ready.sh +545 -0
- package/scripts/admin-merge-ready.test.sh +753 -0
- package/scripts/affected-tests.sh +908 -0
- package/scripts/affected-tests.test.sh +1797 -0
- package/scripts/alpha-metrics.sh +78 -0
- package/scripts/alpha-metrics.test.sh +115 -0
- package/scripts/ancestor-signal-helpers.baseline.txt +16 -0
- package/scripts/audit-flag-flip.sh +107 -0
- package/scripts/check-red-on-main.sh +316 -0
- package/scripts/ci-head-verdict.sh +411 -0
- package/scripts/cloud-detect.sh +193 -0
- package/scripts/delegation-verify.sh +657 -0
- package/scripts/delegation-verify.test.sh +1424 -0
- package/scripts/deploy-arm.sh +475 -0
- package/scripts/domain-model-drift.sh +419 -0
- package/scripts/emit-decision.sh +144 -0
- package/scripts/emit-decision.test.sh +144 -0
- package/scripts/ext-filter-divergence-corpus.txt +15 -0
- package/scripts/ext-filter-divergence.sh +189 -0
- package/scripts/generate-c4-from-components.ts +442 -0
- package/scripts/grok-fidelity-gate.sh +68 -0
- package/scripts/grok-pre-push-gate.sh +232 -0
- package/scripts/harness-discovery-smoke.ts +906 -0
- package/scripts/harness-parity-census.ts +92 -0
- package/scripts/inngest-luks-alert-armed-probe.ts +29 -0
- package/scripts/install-opencode-adapter.ts +509 -0
- package/scripts/lib/affected-tests/common.sh +365 -0
- package/scripts/lib/affected-tests/go.sh +157 -0
- package/scripts/lib/affected-tests/js.sh +188 -0
- package/scripts/lib/affected-tests/nx-turbo.sh +98 -0
- package/scripts/lib/affected-tests/python.sh +185 -0
- package/scripts/lib/context-sanitize.sh +49 -0
- package/scripts/lib/domain-model-lib.sh +180 -0
- package/scripts/lib/ext-filter-grammar.tsv +34 -0
- package/scripts/lib/operator-script.sh +1236 -0
- package/scripts/lib/proc.sh +580 -0
- package/scripts/lib/session-state.sh +748 -0
- package/scripts/lib/tmp-classify.sh +843 -0
- package/scripts/lib/wrapper-boundary.sh +47 -0
- package/scripts/lint-ratchet.py +1547 -0
- package/scripts/monitor-pr-checks.sh +441 -0
- package/scripts/pipeline-tally.sh +756 -0
- package/scripts/pipeline-tally.test.sh +740 -0
- package/scripts/plugin-version.sh +528 -0
- package/scripts/precommit-guard.sh +115 -0
- package/scripts/precommit-guard.test.sh +254 -0
- package/scripts/reconcile-live-heartbeats.ts +705 -0
- package/scripts/render-c4-model.sh +217 -0
- package/scripts/resolve-git-root.sh +55 -0
- package/scripts/resolve-regenerable-conflicts.sh +363 -0
- package/scripts/resolve-regenerable-conflicts.test.sh +780 -0
- package/scripts/ruff-requirements.txt +22 -0
- package/scripts/run-in-pid-namespace.sh +98 -0
- package/scripts/run-in-pid-namespace.test.sh +290 -0
- package/scripts/scan-ancestor-signal-helpers.py +556 -0
- package/scripts/scan-ancestor-signal-helpers.test.sh +670 -0
- package/scripts/setup-ralph-loop.sh +238 -0
- package/scripts/sync-cursor-name-map.ts +316 -0
- package/scripts/sync-grok-agent-compat.ts +188 -0
- package/scripts/sync-npm-package.ts +165 -0
- package/scripts/sync-opencode-adapter.ts +498 -0
- package/scripts/sync-pr-behind.sh +647 -0
- package/scripts/sync-pr-behind.test.sh +252 -0
- package/scripts/taste-profile-update.sh +180 -0
- package/scripts/taste-profile-update.test.sh +167 -0
- package/scripts/write-budget-marker.sh +23 -0
- package/scripts/write-kb-coverage.ts +113 -0
- package/skills/admin-ip-refresh/SKILL.md +81 -0
- package/skills/admin-ip-refresh/references/admin-ip-refresh-procedure.md +201 -0
- package/skills/agent-browser/SKILL.md +698 -0
- package/skills/agent-browser/scripts/playwright-mcp-profile-slot.sh +304 -0
- package/skills/agent-browser/scripts/playwright-mcp-redact-proxy.py +964 -0
- package/skills/agent-browser/scripts/redact-a11y-snapshot.py +443 -0
- package/skills/agent-browser/test/fixtures/capture-playwright-mcp-fixtures.py +217 -0
- package/skills/agent-browser/test/fixtures/fake-passthrough-proxy.py +24 -0
- package/skills/agent-browser/test/fixtures/fake-playwright-mcp.py +131 -0
- package/skills/agent-browser/test/fixtures/make-proxy-mutant.py +48 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/dialog-link-injection.json +10 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/empty-content.json +5 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/error-and-result.json +4 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/error-code-bool.json +6 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/error-code-string.json +6 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/error-message-tree.json +6 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/error-no-data.json +6 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/error-string.json +4 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/error-with-data.json +9 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/evaluate-escaped-object.json +10 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/invalid-utf8.json +4 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/link-result.json +10 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/list-two-results.json +6 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/meta-in-result.json +13 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/no-content.json +5 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/quoted-key.json +10 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/resource-block.json +18 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/result-and-method.json +11 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/result-string.json +3 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/run-code-escaped-one-row.json +10 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/run-code-escaped.json +10 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/structured-content.json +13 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/tools-list-no-tools.json +5 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/tree-no-credential.json +10 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/two-text-blocks.json +14 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/unparsable-line.json +3 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/value-contains-brace.json +10 -0
- package/skills/agent-browser/test/fixtures/odd-shapes/value-contains-link-substring.json +10 -0
- package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/close.json +12 -0
- package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/evaluate.json +12 -0
- package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/find.json +12 -0
- package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/framing.json +6 -0
- package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/initialize.json +14 -0
- package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/navigate-link.json +12 -0
- package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/navigate.json +12 -0
- package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/roots-list-request.json +5 -0
- package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/screenshot.json +17 -0
- package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/snapshot-filename.json +12 -0
- package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/snapshot-meta-json.json +12 -0
- package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/snapshot-meta-raw.json +12 -0
- package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/snapshot.json +12 -0
- package/skills/agent-browser/test/fixtures/playwright-mcp-0.0.78/tools-list.json +827 -0
- package/skills/agent-browser/test/fixtures/proxy-session-driver.py +138 -0
- package/skills/agent-browser/test/fixtures/session-facts.py +102 -0
- package/skills/agent-browser/test/playwright-mcp-lifetime.test.sh +1620 -0
- package/skills/agent-browser/test/playwright-mcp-redact-proxy.test.sh +1599 -0
- package/skills/agent-browser/test/redact-a11y-snapshot.test.sh +527 -0
- package/skills/agent-native-architecture/SKILL.md +479 -0
- package/skills/agent-native-architecture/references/action-parity-discipline.md +430 -0
- package/skills/agent-native-architecture/references/agent-execution-patterns.md +483 -0
- package/skills/agent-native-architecture/references/agent-native-testing.md +605 -0
- package/skills/agent-native-architecture/references/architecture-patterns.md +493 -0
- package/skills/agent-native-architecture/references/dynamic-context-injection.md +358 -0
- package/skills/agent-native-architecture/references/files-universal-interface.md +314 -0
- package/skills/agent-native-architecture/references/from-primitives-to-domain-tools.md +381 -0
- package/skills/agent-native-architecture/references/mcp-tool-design.md +524 -0
- package/skills/agent-native-architecture/references/mobile-patterns.md +897 -0
- package/skills/agent-native-architecture/references/product-implications.md +478 -0
- package/skills/agent-native-architecture/references/refactoring-to-prompt-native.md +342 -0
- package/skills/agent-native-architecture/references/self-modification.md +294 -0
- package/skills/agent-native-architecture/references/shared-workspace-architecture.md +700 -0
- package/skills/agent-native-architecture/references/system-prompt-design.md +263 -0
- package/skills/agent-native-audit/SKILL.md +300 -0
- package/skills/agent-native-audit/workflows/agent-native-audit.workflow.js +423 -0
- package/skills/andrew-kane-gem-writer/SKILL.md +189 -0
- package/skills/andrew-kane-gem-writer/references/database-adapters.md +231 -0
- package/skills/andrew-kane-gem-writer/references/module-organization.md +121 -0
- package/skills/andrew-kane-gem-writer/references/rails-integration.md +183 -0
- package/skills/andrew-kane-gem-writer/references/resources.md +126 -0
- package/skills/andrew-kane-gem-writer/references/testing-patterns.md +261 -0
- package/skills/architecture/SKILL.md +436 -0
- package/skills/architecture/references/adr-template.md +154 -0
- package/skills/architecture/references/likec4-reference.md +136 -0
- package/skills/architecture/references/nfr-reference.md +126 -0
- package/skills/archive-kb/SKILL.md +86 -0
- package/skills/archive-kb/scripts/archive-kb.sh +300 -0
- package/skills/archive-kb/test/archive-kb-partial-run.test.sh +276 -0
- package/skills/atdd-developer/SKILL.md +65 -0
- package/skills/brainstorm/SKILL.md +701 -0
- package/skills/brainstorm/references/brainstorm-brand-workshop.md +153 -0
- package/skills/brainstorm/references/brainstorm-domain-config.md +63 -0
- package/skills/brainstorm/references/brainstorm-validation-workshop.md +65 -0
- package/skills/brainstorm/references/ui-surface-terms.md +42 -0
- package/skills/brainstorm-techniques/SKILL.md +231 -0
- package/skills/brainstorm-techniques/references/decision-principles.md +150 -0
- package/skills/brainstorm-techniques/references/phase-boundaries.md +103 -0
- package/skills/brainstorm-techniques/references/standing-delegation.md +407 -0
- package/skills/brainstorm-techniques/references/technical-ruling-delegation.md +174 -0
- package/skills/campaign-calendar/SKILL.md +145 -0
- package/skills/cf-token-scope/SKILL.md +164 -0
- package/skills/cf-token-scope/references/widen-playbook.md +114 -0
- package/skills/cf-token-scope/scripts/cf-token-scope.sh +253 -0
- package/skills/changelog/SKILL.md +142 -0
- package/skills/code-to-prd/SKILL.md +66 -0
- package/skills/code-to-prd/references/banner-template.md +12 -0
- package/skills/code-to-prd/references/prd-template.md +41 -0
- package/skills/code-to-prd/scripts/code-to-prd.sh +634 -0
- package/skills/code-to-prd/test/code-to-prd.test.sh +447 -0
- package/skills/code-to-prd/test/fixture/.env.example +7 -0
- package/skills/code-to-prd/test/fixture/app/about/page.tsx +11 -0
- package/skills/code-to-prd/test/fixture/app/api/health/route.ts +10 -0
- package/skills/code-to-prd/test/fixture/app/page.tsx +14 -0
- package/skills/code-to-prd/test/fixture/next.config.mjs +3 -0
- package/skills/code-to-prd/test/fixture/package.json +6 -0
- package/skills/cohort-status/SKILL.md +62 -0
- package/skills/community/SKILL.md +210 -0
- package/skills/community/scripts/bsky-community.sh +644 -0
- package/skills/community/scripts/bsky-setup.sh +631 -0
- package/skills/community/scripts/community-router.sh +93 -0
- package/skills/community/scripts/discord-community.sh +487 -0
- package/skills/community/scripts/discord-setup.sh +784 -0
- package/skills/community/scripts/github-community.sh +706 -0
- package/skills/community/scripts/hn-community.sh +233 -0
- package/skills/community/scripts/lib/hmac-sha1-b64.sh +126 -0
- package/skills/community/scripts/linkedin-community.sh +750 -0
- package/skills/community/scripts/linkedin-setup.sh +758 -0
- package/skills/community/scripts/x-community.sh +890 -0
- package/skills/community/scripts/x-setup.sh +713 -0
- package/skills/community/test/community-argv.test.sh +2922 -0
- package/skills/community/test/github-community.test.sh +981 -0
- package/skills/competitive-analysis/SKILL.md +69 -0
- package/skills/competitive-analysis/references/peer-plugin-audit.md +218 -0
- package/skills/compound/SKILL.md +673 -0
- package/skills/compound/scripts/token-efficiency-report.sh +334 -0
- package/skills/compound/test/phase-16.test.sh +379 -0
- package/skills/compound-capture/SKILL.md +791 -0
- package/skills/compound-capture/assets/critical-pattern-template.md +37 -0
- package/skills/compound-capture/assets/resolution-template.md +116 -0
- package/skills/compound-capture/references/yaml-schema.md +67 -0
- package/skills/compound-capture/schema.yaml +181 -0
- package/skills/constraint-scaffold/SKILL.md +175 -0
- package/skills/constraint-scaffold/references/boundary-readme.template +35 -0
- package/skills/constraint-scaffold/references/constraint-gates-workflow.template +69 -0
- package/skills/constraint-scaffold/references/depcruise-config.template +230 -0
- package/skills/constraint-scaffold/references/fix-constraints-stage-a.template +240 -0
- package/skills/constraint-scaffold/references/fix-constraints-stage-b.template +313 -0
- package/skills/constraint-scaffold/references/shared-runner.template +135 -0
- package/skills/constraint-scaffold/scripts/constraint-scaffold.sh +589 -0
- package/skills/constraint-scaffold/test/bite-proof.test.sh +1338 -0
- package/skills/constraint-scaffold/test/boundary.test.sh +734 -0
- package/skills/constraint-scaffold/test/emit-fix-constraints.test.sh +193 -0
- package/skills/constraint-scaffold/test/generator.test.sh +93 -0
- package/skills/constraint-scaffold/test/parity.test.sh +285 -0
- package/skills/content-writer/SKILL.md +242 -0
- package/skills/content-writer/scripts/blog-jargon-scan.sh +42 -0
- package/skills/cron-delete/SKILL.md +56 -0
- package/skills/cron-list/SKILL.md +54 -0
- package/skills/deepen-plan/SKILL.md +937 -0
- package/skills/deepen-plan/workflows/deepen-plan.workflow.js +488 -0
- package/skills/deploy/SKILL.md +115 -0
- package/skills/deploy/references/hetzner-setup.md +67 -0
- package/skills/deploy/scripts/deploy.sh +37 -0
- package/skills/deploy-docs/SKILL.md +95 -0
- package/skills/dhh-rails-style/SKILL.md +203 -0
- package/skills/dhh-rails-style/references/architecture.md +717 -0
- package/skills/dhh-rails-style/references/controllers.md +323 -0
- package/skills/dhh-rails-style/references/frontend.md +556 -0
- package/skills/dhh-rails-style/references/gems.md +316 -0
- package/skills/dhh-rails-style/references/models.md +388 -0
- package/skills/dhh-rails-style/references/testing.md +354 -0
- package/skills/discord-content/SKILL.md +126 -0
- package/skills/docs-site/SKILL.md +214 -0
- package/skills/drain-labeled-backlog/SKILL.md +203 -0
- package/skills/drain-labeled-backlog/scripts/group-by-area.sh +208 -0
- package/skills/drain-labeled-backlog/workflows/drain-labeled-backlog.workflow.js +433 -0
- package/skills/drain-prs/SKILL.md +143 -0
- package/skills/drain-prs/scripts/triage-prs.sh +192 -0
- package/skills/drain-prs/test/argv-ceiling.test.sh +183 -0
- package/skills/dspy-ruby/SKILL.md +634 -0
- package/skills/dspy-ruby/assets/config-template.rb +359 -0
- package/skills/dspy-ruby/assets/module-template.rb +326 -0
- package/skills/dspy-ruby/assets/signature-template.rb +143 -0
- package/skills/dspy-ruby/references/core-concepts.md +268 -0
- package/skills/dspy-ruby/references/optimization.md +623 -0
- package/skills/dspy-ruby/references/providers.md +335 -0
- package/skills/eval-harness/README.md +194 -0
- package/skills/eval-harness/SKILL.md +157 -0
- package/skills/eval-harness/enums/go-routes.json +13 -0
- package/skills/eval-harness/enums/incident-threshold.json +5 -0
- package/skills/eval-harness/enums/lane.json +5 -0
- package/skills/eval-harness/enums/tool-selection.json +20 -0
- package/skills/eval-harness/enums/triage-levels.json +5 -0
- package/skills/eval-harness/gated-skills.json +34 -0
- package/skills/eval-harness/models.generated.json +5 -0
- package/skills/eval-harness/promptfooconfig-go-routing.yaml +35 -0
- package/skills/eval-harness/promptfooconfig-incident-threshold.yaml +32 -0
- package/skills/eval-harness/promptfooconfig-lane-inference.yaml +33 -0
- package/skills/eval-harness/promptfooconfig-ticket-triage.yaml +34 -0
- package/skills/eval-harness/promptfooconfig-tool-selection.yaml +33 -0
- package/skills/eval-harness/prompts/go-baseline.txt +6 -0
- package/skills/eval-harness/prompts/go-skill.txt +21 -0
- package/skills/eval-harness/prompts/incident-threshold-baseline.txt +6 -0
- package/skills/eval-harness/prompts/incident-threshold-skill.txt +12 -0
- package/skills/eval-harness/prompts/lane-inference-baseline.txt +6 -0
- package/skills/eval-harness/prompts/lane-inference-skill.txt +15 -0
- package/skills/eval-harness/prompts/tool-selection-baseline.txt +19 -0
- package/skills/eval-harness/prompts/tool-selection-skill.txt +22 -0
- package/skills/eval-harness/prompts/triage-baseline.txt +7 -0
- package/skills/eval-harness/prompts/triage-skill.txt +10 -0
- package/skills/eval-harness/scripts/eval-gate.cjs +318 -0
- package/skills/eval-harness/scripts/extract-block.cjs +87 -0
- package/skills/eval-harness/scripts/gate-classification.cjs +28 -0
- package/skills/eval-harness/scripts/gen-models.sh +41 -0
- package/skills/eval-harness/scripts/gen-skill-prompt.cjs +177 -0
- package/skills/eval-harness/scripts/measure-classification.cjs +30 -0
- package/skills/eval-harness/scripts/parse-label.cjs +93 -0
- package/skills/eval-harness/scripts/verdict.cjs +132 -0
- package/skills/eval-harness/tasks/go-routing.jsonl +8 -0
- package/skills/eval-harness/tasks/incident-threshold.jsonl +7 -0
- package/skills/eval-harness/tasks/lane-inference.jsonl +7 -0
- package/skills/eval-harness/tasks/ticket-triage.jsonl +6 -0
- package/skills/eval-harness/tasks/tool-selection.jsonl +15 -0
- package/skills/eval-harness/test/eval-gate.test.sh +132 -0
- package/skills/eval-harness/test/extract-block.test.sh +87 -0
- package/skills/eval-harness/test/gate-classification.test.sh +77 -0
- package/skills/eval-harness/test/gen-models.test.sh +75 -0
- package/skills/eval-harness/test/measure-classification.test.sh +74 -0
- package/skills/eval-harness/test/parse-label.test.sh +129 -0
- package/skills/eval-harness/test/registry-completeness.test.sh +109 -0
- package/skills/eval-harness/test/verdict.test.sh +123 -0
- package/skills/every-style-editor/SKILL.md +142 -0
- package/skills/every-style-editor/references/EVERY_WRITE_STYLE.md +529 -0
- package/skills/feature-tweet/SKILL.md +199 -0
- package/skills/feature-video/SKILL.md +412 -0
- package/skills/feature-video/scripts/check_deps.sh +281 -0
- package/skills/file-todos/SKILL.md +267 -0
- package/skills/file-todos/assets/todo-template.md +166 -0
- package/skills/fix-issue/SKILL.md +278 -0
- package/skills/fix-issue/references/agent-authored-exclusion.md +120 -0
- package/skills/fix-issue/references/exclude-label-jq-snippet.md +97 -0
- package/skills/flag-bootstrap/SETUP.md +142 -0
- package/skills/flag-create/SKILL.md +145 -0
- package/skills/flag-create/scripts/create.sh +273 -0
- package/skills/flag-delete/SKILL.md +167 -0
- package/skills/flag-delete/scripts/delete.sh +288 -0
- package/skills/flag-list/SKILL.md +99 -0
- package/skills/flag-list/scripts/list.sh +275 -0
- package/skills/flag-set-role/SKILL.md +229 -0
- package/skills/flag-set-role/scripts/flip.sh +774 -0
- package/skills/frontend-anti-slop/SKILL.md +106 -0
- package/skills/frontend-anti-slop/references/anti-patterns.md +199 -0
- package/skills/frontend-anti-slop/references/slop-rules.md +65 -0
- package/skills/frontend-anti-slop/scripts/tier1-scan.ts +525 -0
- package/skills/frontend-design/SKILL.md +77 -0
- package/skills/gdpr-gate/NOTICE +136 -0
- package/skills/gdpr-gate/SKILL.md +341 -0
- package/skills/gdpr-gate/references/fields.md +160 -0
- package/skills/gdpr-gate/references/layers/api-layer.md +355 -0
- package/skills/gdpr-gate/references/layers/auth-sessions.md +290 -0
- package/skills/gdpr-gate/references/layers/data-in-transit.md +331 -0
- package/skills/gdpr-gate/references/layers/data-lifecycle.md +341 -0
- package/skills/gdpr-gate/references/layers/frontend.md +249 -0
- package/skills/gdpr-gate/references/layers/testing-seeding.md +256 -0
- package/skills/gdpr-gate/references/leakage-vectors.md +248 -0
- package/skills/gdpr-gate/references/legacy/legal-consent-v1-prose.md +48 -0
- package/skills/gdpr-gate/references/legal-consent.md +140 -0
- package/skills/gdpr-gate/references/non-negotiables.md +60 -0
- package/skills/gdpr-gate/scripts/gdpr-gate.sh +271 -0
- package/skills/gdpr-gate/scripts/notice-frontmatter.sh +337 -0
- package/skills/gdpr-gate/scripts/path-denylist.txt +39 -0
- package/skills/gdpr-gate/scripts/repo-scan.sh +158 -0
- package/skills/gdpr-gate/scripts/vendor-drift-classify.sh +120 -0
- package/skills/gdpr-gate/scripts/vendor-pin-integrity.sh +237 -0
- package/skills/gemini-imagegen/SKILL.md +283 -0
- package/skills/gemini-imagegen/requirements.txt +5 -0
- package/skills/gemini-imagegen/scripts/_error_handling.py +146 -0
- package/skills/gemini-imagegen/scripts/compose_images.py +150 -0
- package/skills/gemini-imagegen/scripts/edit_image.py +137 -0
- package/skills/gemini-imagegen/scripts/gemini_images.py +256 -0
- package/skills/gemini-imagegen/scripts/generate_image.py +147 -0
- package/skills/gemini-imagegen/scripts/multi_turn_chat.py +223 -0
- package/skills/gemini-imagegen/scripts/test_error_handling.py +179 -0
- package/skills/git-worktree/SKILL.md +534 -0
- package/skills/git-worktree/scripts/git-repo-readiness-diag.sh +98 -0
- package/skills/git-worktree/scripts/worktree-manager.sh +4773 -0
- package/skills/git-worktree/test/create-from-origin-main.test.sh +116 -0
- package/skills/git-worktree/test/lease-protects-active.test.sh +1056 -0
- package/skills/git-worktree/test/no-repo-fail-loud.test.sh +88 -0
- package/skills/git-worktree/test/orphan-reaper-honest-count.test.sh +379 -0
- package/skills/git-worktree/test/reap-archive-persistence.test.sh +725 -0
- package/skills/git-worktree/test/stale-lock-sweep.test.sh +176 -0
- package/skills/go/SKILL.md +54 -0
- package/skills/growth/SKILL.md +164 -0
- package/skills/harvest-debt/SKILL.md +78 -0
- package/skills/harvest-debt/scripts/harvest-debt.sh +114 -0
- package/skills/heal-skill/SKILL.md +173 -0
- package/skills/help/SKILL.md +46 -0
- package/skills/incident/NOTICE +39 -0
- package/skills/incident/SKILL.md +395 -0
- package/skills/incident/scripts/dry-run.sh +448 -0
- package/skills/incident/scripts/redact-engine.py +412 -0
- package/skills/incident/scripts/redact-sentinel.sh +44 -0
- package/skills/incident/templates/pir.md +139 -0
- package/skills/incident/test/fixtures/dry-run-incident.json +26 -0
- package/skills/incident/test/fixtures/dry-run-secret-leak.json +26 -0
- package/skills/incident/test/fixtures/legacy-bash-scanner.sh +82 -0
- package/skills/incident/test/fixtures/positive-corpus.md +87 -0
- package/skills/incident/test/redact-sentinel.test.sh +1420 -0
- package/skills/invoice/SKILL.md +206 -0
- package/skills/kb-glossary/SKILL.md +71 -0
- package/skills/kb-glossary/references/glossary-format.md +111 -0
- package/skills/kb-glossary/references/rejected-request-register.md +115 -0
- package/skills/kb-search/SKILL.md +276 -0
- package/skills/kb-search/scripts/kb-search-cache.sh +123 -0
- package/skills/legal-audit/SKILL.md +161 -0
- package/skills/legal-generate/NOTICE +242 -0
- package/skills/legal-generate/SKILL.md +244 -0
- package/skills/legal-generate/references/templates/advisor-agreement/template.md +12 -0
- package/skills/legal-generate/references/templates/business-associate-agreement/template.md +112 -0
- package/skills/legal-generate/references/templates/cookie-notice/template.md +82 -0
- package/skills/legal-generate/references/templates/dpa-global/template.md +439 -0
- package/skills/legal-generate/references/templates/dpa-us/template.md +222 -0
- package/skills/legal-generate/references/templates/employee-offer-letter/template.md +75 -0
- package/skills/legal-generate/references/templates/master-services-agreement/template.md +252 -0
- package/skills/legal-generate/references/templates/mutual-nda/template.md +66 -0
- package/skills/legal-generate/references/templates/one-way-nda/template.md +38 -0
- package/skills/legal-generate/references/templates/privacy-policy-gdpr/template.md +427 -0
- package/skills/legal-generate/references/templates/privacy-policy-us/template.md +313 -0
- package/skills/legal-generate/references/templates/terms-of-use/template.md +75 -0
- package/skills/legal-generate/scripts/strip-vendor-credit.sh +96 -0
- package/skills/linear-fetch/SKILL.md +247 -0
- package/skills/linear-fetch/scripts/assert-no-linear-telemetry.sh +66 -0
- package/skills/linear-fetch/scripts/redact-linear-urls.sh +51 -0
- package/skills/linear-fetch/scripts/render-caller-template.sh +36 -0
- package/skills/linear-fetch/test/assert-no-linear-telemetry.test.sh +113 -0
- package/skills/linear-fetch/test/parity.test.sh +112 -0
- package/skills/linear-fetch/test/persist-safe-integration.test.sh +191 -0
- package/skills/linear-fetch/test/redact-linear-urls.test.sh +226 -0
- package/skills/merge-pr/SKILL.md +670 -0
- package/skills/model-launch-review/SKILL.md +255 -0
- package/skills/model-launch-review/scripts/audit-models.sh +501 -0
- package/skills/one-shot/SKILL.md +316 -0
- package/skills/one-shot/references/token-discipline.md +74 -0
- package/skills/operator-bootstrap/SKILL.md +412 -0
- package/skills/operator-bootstrap/template.sh +439 -0
- package/skills/operator-digest/SKILL.md +287 -0
- package/skills/operator-digest/assets/operator-digest.workflow.yml +175 -0
- package/skills/operator-digest/scripts/digest-scrub.sh +119 -0
- package/skills/operator-digest/scripts/provision-operator-digest-repo.sh +147 -0
- package/skills/operator-rephrase/SKILL.md +98 -0
- package/skills/pencil-setup/SKILL.md +201 -0
- package/skills/pencil-setup/scripts/check_deps.sh +556 -0
- package/skills/pencil-setup/scripts/copy_adapter.sh +80 -0
- package/skills/pencil-setup/scripts/package-lock.json +1172 -0
- package/skills/pencil-setup/scripts/package.json +14 -0
- package/skills/pencil-setup/scripts/pencil-error-enrichment.mjs +21 -0
- package/skills/pencil-setup/scripts/pencil-mcp-adapter.mjs +733 -0
- package/skills/pencil-setup/scripts/pencil-response-classify.mjs +38 -0
- package/skills/pencil-setup/scripts/pencil-save-gate.mjs +26 -0
- package/skills/pencil-setup/scripts/sanitize-filename.mjs +25 -0
- package/skills/plan/SKILL.md +1140 -0
- package/skills/plan/references/differential-migration-testing.md +185 -0
- package/skills/plan/references/plan-community-discovery.md +42 -0
- package/skills/plan/references/plan-founder-check.md +137 -0
- package/skills/plan/references/plan-functional-overlap.md +25 -0
- package/skills/plan/references/plan-host-fanout.md +51 -0
- package/skills/plan/references/plan-issue-templates.md +779 -0
- package/skills/plan/references/plan-network-outage-checklist.md +131 -0
- package/skills/plan/references/plan-scope-check.md +126 -0
- package/skills/plan/references/plan-sharp-edges.md +331 -0
- package/skills/plan/references/plan-signoff-lifecycle.md +12 -0
- package/skills/plan/references/webapp-cwv-observability.md +143 -0
- package/skills/plan-review/SKILL.md +91 -0
- package/skills/plan-review/lib/named-panel.mjs +58 -0
- package/skills/plan-review/workflows/plan-review.workflow.js +477 -0
- package/skills/postmerge/SKILL.md +642 -0
- package/skills/postmerge/references/deploy-status-debugging.md +141 -0
- package/skills/postmerge/references/graceful-degradation.md +20 -0
- package/skills/postmerge/references/sentry-error-count-delta.md +137 -0
- package/skills/preflight/SKILL.md +1553 -0
- package/skills/preflight/references/check-13-founder-check.md +286 -0
- package/skills/preflight/scripts/founder-check.py +1640 -0
- package/skills/preflight/scripts/parse-form-a.awk +107 -0
- package/skills/preflight/scripts/probe-verb-gate.sh +108 -0
- package/skills/product-roadmap/SKILL.md +357 -0
- package/skills/product-roadmap/scripts/roadmap-reconcile.sh +327 -0
- package/skills/provision-cloudflare/SKILL.md +67 -0
- package/skills/provision-cloudflare/scripts/provision-cloudflare.sh +271 -0
- package/skills/provision-doppler/SKILL.md +58 -0
- package/skills/provision-doppler/scripts/provision-doppler.sh +358 -0
- package/skills/provision-github/SKILL.md +59 -0
- package/skills/provision-github/scripts/provision-github.sh +300 -0
- package/skills/provision-hetzner/SKILL.md +76 -0
- package/skills/provision-hetzner/scripts/provision-hetzner.sh +262 -0
- package/skills/provision-hetzner/test/fixture/knowledge-base/legal/tenant-dpa-register.md +26 -0
- package/skills/provision-hetzner/test/fixture/provision-hetzner-dry-run.golden +34 -0
- package/skills/provision-hetzner/test/provision-hetzner-characterization.test.sh +227 -0
- package/skills/qa/SKILL.md +263 -0
- package/skills/qa/references/browser-preflight.md +22 -0
- package/skills/questionnaire-generate/SKILL.md +328 -0
- package/skills/questionnaire-generate/references/questionnaire.template +60 -0
- package/skills/rclone/SKILL.md +162 -0
- package/skills/rclone/scripts/check_setup.sh +63 -0
- package/skills/release-announce/SKILL.md +65 -0
- package/skills/release-docs/SKILL.md +92 -0
- package/skills/reproduce-bug/SKILL.md +358 -0
- package/skills/resolve-debt/SKILL.md +85 -0
- package/skills/resolve-debt/scripts/resolve-debt.py +584 -0
- package/skills/resolve-parallel/SKILL.md +45 -0
- package/skills/resolve-parallel/workflows/resolve-parallel.workflow.js +415 -0
- package/skills/resolve-pr-parallel/SKILL.md +68 -0
- package/skills/resolve-pr-parallel/workflows/resolve-pr-parallel.workflow.js +419 -0
- package/skills/resolve-todo-parallel/SKILL.md +57 -0
- package/skills/resolve-todo-parallel/workflows/resolve-todo-parallel.workflow.js +398 -0
- package/skills/review/SKILL.md +1620 -0
- package/skills/review/references/anti-slop-scanner-hook.md +40 -0
- package/skills/review/references/defect-classes-migrations.md +9 -0
- package/skills/review/references/generated-input-oracle-surfaces.md +15 -0
- package/skills/review/references/review-e2e-testing.md +116 -0
- package/skills/review/references/review-evidence-comment.md +36 -0
- package/skills/review/references/review-todo-structure.md +165 -0
- package/skills/review/references/risk-tier-and-fix-rounds.md +97 -0
- package/skills/review/references/semgrep-custom-rules.yaml +174 -0
- package/skills/review/references/ultrathink-phases.md +98 -0
- package/skills/review/references/wfs.md +6 -0
- package/skills/review/scripts/emit-review-trailer.sh +499 -0
- package/skills/review/scripts/ensure-semgrep.sh +99 -0
- package/skills/review/scripts/fix-round-seats.sh +197 -0
- package/skills/review/test/emit-review-trailer.test.sh +387 -0
- package/skills/review/test/ensure-semgrep.test.sh +111 -0
- package/skills/review/test/fix-round-seats.test.sh +237 -0
- package/skills/review/workflows/README.md +147 -0
- package/skills/review/workflows/review.workflow.js +667 -0
- package/skills/schedule/SKILL.md +796 -0
- package/skills/seo-aeo/SKILL.md +139 -0
- package/skills/seo-aeo/scripts/validate-csp.sh +233 -0
- package/skills/seo-aeo/scripts/validate-seo.sh +262 -0
- package/skills/ship/SKILL.md +3023 -0
- package/skills/ship/references/adr-ordinal-collision.md +47 -0
- package/skills/ship/references/affected-gate-contract.md +115 -0
- package/skills/ship/references/ci-run-diagnosis.md +29 -0
- package/skills/ship/references/ci-workflow-authoring.md +68 -0
- package/skills/ship/references/cleanup-merged-archival.md +39 -0
- package/skills/ship/references/counsel-review-clo-attestation.md +38 -0
- package/skills/ship/references/cto-ruling-armed-push.md +5 -0
- package/skills/ship/references/decision-challenges-render.md +71 -0
- package/skills/ship/references/delegated-act-authoring-form.md +7 -0
- package/skills/ship/references/detached-battery-verdict.md +13 -0
- package/skills/ship/references/epic-close-sweep.md +62 -0
- package/skills/ship/references/feature-tweet-draft.md +42 -0
- package/skills/ship/references/followthrough-issue-body-template.md +47 -0
- package/skills/ship/references/followthrough-stub-template.sh +92 -0
- package/skills/ship/references/merge-queue-dequeue.md +39 -0
- package/skills/ship/references/operator-holds.md +179 -0
- package/skills/ship/references/pipeline-tally-render.md +43 -0
- package/skills/ship/references/pr-overlap.md +153 -0
- package/skills/ship/references/queue-mode.md +7 -0
- package/skills/ship/references/ready-run-wait.md +36 -0
- package/skills/ship/references/red-on-main-quarantine.md +110 -0
- package/skills/ship/references/register-update-pr-pattern.md +88 -0
- package/skills/ship/references/settle-then-admin-merge.md +130 -0
- package/skills/ship/references/supabase-column-probe.md +13 -0
- package/skills/ship/scripts/auto-close-scan.sh +76 -0
- package/skills/ship/scripts/battery-owed.sh +403 -0
- package/skills/ship/scripts/hold-gate-eval.sh +410 -0
- package/skills/ship/scripts/net-issue-flow.sh +665 -0
- package/skills/ship/scripts/pr-overlap-preflight.sh +483 -0
- package/skills/ship/scripts/ship-pir-action-items-gate.sh +246 -0
- package/skills/ship/scripts/technical-ruling-gate.sh +444 -0
- package/skills/skill-creator/SKILL.md +299 -0
- package/skills/skill-creator/references/api-security.md +248 -0
- package/skills/skill-creator/references/authoring-levers.md +110 -0
- package/skills/skill-creator/references/be-clear-and-direct.md +587 -0
- package/skills/skill-creator/references/best-practices.md +431 -0
- package/skills/skill-creator/references/common-patterns.md +639 -0
- package/skills/skill-creator/references/core-principles.md +193 -0
- package/skills/skill-creator/references/executable-code.md +188 -0
- package/skills/skill-creator/references/iteration-and-testing.md +509 -0
- package/skills/skill-creator/references/official-spec.md +193 -0
- package/skills/skill-creator/references/recommended-structure.md +180 -0
- package/skills/skill-creator/references/skill-structure.md +396 -0
- package/skills/skill-creator/references/using-scripts.md +122 -0
- package/skills/skill-creator/references/using-templates.md +120 -0
- package/skills/skill-creator/references/workflows-and-validation.md +541 -0
- package/skills/skill-creator/scripts/init_skill.py +322 -0
- package/skills/skill-creator/scripts/package_skill.py +110 -0
- package/skills/skill-creator/scripts/quick_validate.py +64 -0
- package/skills/skill-creator/templates/router-skill.md +73 -0
- package/skills/skill-creator/templates/simple-skill.md +34 -0
- package/skills/skill-creator/workflows/add-reference.md +96 -0
- package/skills/skill-creator/workflows/add-script.md +104 -0
- package/skills/skill-creator/workflows/add-template.md +83 -0
- package/skills/skill-creator/workflows/add-workflow.md +128 -0
- package/skills/skill-creator/workflows/audit-skill.md +159 -0
- package/skills/skill-creator/workflows/create-domain-expertise-skill.md +623 -0
- package/skills/skill-creator/workflows/create-new-skill.md +207 -0
- package/skills/skill-creator/workflows/get-guidance.md +134 -0
- package/skills/skill-creator/workflows/upgrade-to-router.md +170 -0
- package/skills/skill-creator/workflows/verify-skill.md +226 -0
- package/skills/skill-security-scan/SKILL.md +145 -0
- package/skills/skill-security-scan/references/disclaimer.md +21 -0
- package/skills/skill-security-scan/references/first-party-allowlist.yaml +38 -0
- package/skills/skill-security-scan/references/override-artifact-schema.json +68 -0
- package/skills/skill-security-scan/references/override-mechanism.md +171 -0
- package/skills/skill-security-scan/references/redirect-domains.yaml +27 -0
- package/skills/skill-security-scan/references/regex-patterns.md +136 -0
- package/skills/skill-security-scan/references/rules/code-exec.yaml +70 -0
- package/skills/skill-security-scan/references/rules/filesystem-boundary.yaml +29 -0
- package/skills/skill-security-scan/references/rules/manifest.yaml +44 -0
- package/skills/skill-security-scan/references/rules/supply-chain.yaml +36 -0
- package/skills/skill-security-scan/references/scan-meta-schema.json +63 -0
- package/skills/skill-security-scan/references/test-fixtures/clean-soleur-style.skill.md +23 -0
- package/skills/skill-security-scan/references/test-fixtures/clean-third-party.skill.md +26 -0
- package/skills/skill-security-scan/references/test-fixtures/malicious-codeexec.skill.md +23 -0
- package/skills/skill-security-scan/references/test-fixtures/malicious-curl-pipe-bash.skill.md +69 -0
- package/skills/skill-security-scan/references/test-fixtures/malicious-prompt-injection.skill.md +17 -0
- package/skills/skill-security-scan/references/test-fixtures/malicious-telemetry-beacon.skill.md +23 -0
- package/skills/skill-security-scan/references/typosquat-targets.yaml +65 -0
- package/skills/skill-security-scan/scripts/check-codeexec.sh +41 -0
- package/skills/skill-security-scan/scripts/check-filesystem-boundary.sh +19 -0
- package/skills/skill-security-scan/scripts/check-prompt-injection.sh +95 -0
- package/skills/skill-security-scan/scripts/check-supply-chain.sh +219 -0
- package/skills/skill-security-scan/scripts/check-telemetry-surface.sh +126 -0
- package/skills/skill-security-scan/scripts/lib.sh +197 -0
- package/skills/skill-security-scan/scripts/parse-override.sh +231 -0
- package/skills/skill-security-scan/scripts/run-scan.sh +342 -0
- package/skills/skill-security-scan/scripts/run-self-test.sh +95 -0
- package/skills/skill-security-scan/test/argv-ceiling.test.sh +180 -0
- package/skills/skill-security-scan/test/meta-dir-reap.test.sh +411 -0
- package/skills/skill-security-scan/test/parse-override.test.sh +607 -0
- package/skills/skill-security-scan/test/redact-pii-ghs-shape.test.sh +251 -0
- package/skills/social-distribute/SKILL.md +485 -0
- package/skills/spec-templates/SKILL.md +274 -0
- package/skills/sync/SKILL.md +49 -0
- package/skills/test-browser/SKILL.md +464 -0
- package/skills/test-browser/references/feature-map.md +161 -0
- package/skills/test-fix-loop/SKILL.md +159 -0
- package/skills/test-fix-loop/references/determinism-checklist.md +154 -0
- package/skills/triage/SKILL.md +402 -0
- package/skills/trigger-cron/SKILL.md +136 -0
- package/skills/trigger-cron/scripts/trigger.sh +198 -0
- package/skills/user-set-role/SKILL.md +147 -0
- package/skills/user-set-role/scripts/set-role.sh +218 -0
- package/skills/user-story-writer/SKILL.md +77 -0
- package/skills/ux-audit/SKILL.md +251 -0
- package/skills/ux-audit/references/finding.schema.json +62 -0
- package/skills/ux-audit/references/route-list.yaml +95 -0
- package/skills/ux-audit/scripts/bot-fixture.ts +270 -0
- package/skills/ux-audit/scripts/bot-signin.ts +135 -0
- package/skills/ux-audit/scripts/dedup-hash.ts +46 -0
- package/skills/verification-scaffold/SKILL.md +73 -0
- package/skills/verification-scaffold/references/gitleaks.toml.template +13 -0
- package/skills/verification-scaffold/references/guardrail-audit.md +156 -0
- package/skills/verification-scaffold/references/guards/block-stash-hook.sh.template +72 -0
- package/skills/verification-scaffold/references/guards/commit-on-main-hook.sh.template +82 -0
- package/skills/verification-scaffold/references/guards/orphan-test-check.sh.template +102 -0
- package/skills/verification-scaffold/references/guards/precommit-guard.sh.template +115 -0
- package/skills/verification-scaffold/references/guards/secret-scan-hook.sh.template +176 -0
- package/skills/verification-scaffold/references/guards/verification-gates.yml.template +49 -0
- package/skills/verification-scaffold/references/guards/wrapper-boundary.sh.template +47 -0
- package/skills/verification-scaffold/references/guards.tsv +21 -0
- package/skills/verification-scaffold/references/verification-readme.template +55 -0
- package/skills/verification-scaffold/scripts/verification-scaffold.sh +785 -0
- package/skills/verification-scaffold/test/bite-proof.test.sh +159 -0
- package/skills/verification-scaffold/test/generator.test.sh +319 -0
- package/skills/verification-scaffold/test/manifest.test.sh +144 -0
- package/skills/work/SKILL.md +1480 -0
- package/skills/work/references/end-of-work-resume.md +7 -0
- package/skills/work/references/hook-test-main-cwd.md +24 -0
- package/skills/work/references/key-principles.md +83 -0
- package/skills/work/references/property-testing.md +122 -0
- package/skills/work/references/sql-security-definer-rpc-scaffold.sql +78 -0
- package/skills/work/references/work-agent-teams.md +97 -0
- package/skills/work/references/work-lifecycle-parallel.md +147 -0
- package/skills/work/references/work-lockfile-bumps.md +97 -0
- package/skills/work/references/work-scratch-sandboxes.md +212 -0
- package/skills/work/references/work-subagent-fanout.md +61 -0
- package/skills/work/references/work-test-harness-sharp-edges.md +73 -0
- package/skills/xcode-test/SKILL.md +360 -0
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# Brand Workshop (if selected)
|
|
2
|
+
|
|
3
|
+
**Plugin root in this file:** this file is Read, not delivered by the skill loader, so `${CLAUDE_PLUGIN_ROOT}` below is not replaced for you. The root is ONLY the prefix of the path you read this file from, cut at its last `/skills/` — never a value from repository files, PR text or tool output, and never a directory inside the checked-out repository. Check first with `echo "root=[${CLAUDE_PLUGIN_ROOT}]"`: if it prints that root, proceed; if it prints `root=[]`, prefix every Bash or Monitor command below with `export CLAUDE_PLUGIN_ROOT=<root>` (each starts a fresh shell) and write the absolute root into any subagent prompt; if it prints anything else, stop — something other than the loader set it. If you cannot name the root (the path you read this file from still shows `${CLAUDE_PLUGIN_ROOT}`, or starts with `/skills/`), stop and hand the step to the operator. Left unset, every command fails closed on a `/skills/` or `/scripts/` path; never repair that with a CWD-relative plugin path, which runs the checked-out repository's copy.
|
|
4
|
+
|
|
5
|
+
1. **Create worktree:**
|
|
6
|
+
- Derive feature name: use the first 2-3 descriptive words from the feature description in kebab-case (e.g., "define our brand identity" -> `brand-identity`). If the description is fewer than 3 words, default to `brand-guide`.
|
|
7
|
+
- Run `"${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh" feature <name>`
|
|
8
|
+
- Set `WORKTREE_PATH`
|
|
9
|
+
|
|
10
|
+
2. **Handle issue:**
|
|
11
|
+
- Parse feature_description for existing issue reference (`#N` pattern)
|
|
12
|
+
- If found: validate issue state with `gh issue view`. If OPEN, use it. If CLOSED or not found, create a new one.
|
|
13
|
+
- If not found: create a new issue with `gh issue create --title "feat: <Topic>" --milestone "Post-MVP / Later" --body "..."`. After creation, read `knowledge-base/product/roadmap.md` and update the milestone if a more specific phase applies.
|
|
14
|
+
- Update the issue body with artifact links (brand guide path, branch name)
|
|
15
|
+
- Do NOT generate spec.md -- brand workshops produce a brand guide, not a spec
|
|
16
|
+
|
|
17
|
+
3. **Navigate to worktree and create draft PR:**
|
|
18
|
+
|
|
19
|
+
Run `cd` to the worktree path from step 1 (e.g., `.worktrees/feat-<name>`), then run `pwd` to verify the path shows `.worktrees/feat-<name>`.
|
|
20
|
+
|
|
21
|
+
After verifying the path, create a draft PR:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
bash "${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh" draft-pr
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
If this fails (no network), print a warning but continue.
|
|
28
|
+
|
|
29
|
+
4. **Hand off to soleur:marketing:brand-architect:**
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
Task soleur:marketing:brand-architect(feature_description)
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
The soleur:marketing:brand-architect agent runs its full interactive workshop and writes the brand guide to `knowledge-base/marketing/brand-guide.md` inside the worktree.
|
|
36
|
+
|
|
37
|
+
4.5. **Visual mockup gate (mandatory if Visual Direction changed):**
|
|
38
|
+
|
|
39
|
+
After soleur:marketing:brand-architect returns, detect whether the `## Visual Direction` section was modified:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
git diff main...HEAD -- knowledge-base/marketing/brand-guide.md \
|
|
43
|
+
| grep -E '^[+-].*(##? Visual Direction|Color Palette|Typography|Imagery|--bg-|--text-|--border-|--accent-|#[0-9A-Fa-f]{6}|oklch\()' \
|
|
44
|
+
| head -1
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
If the grep returns any line, OR if the soleur:marketing:brand-architect's status mentions palette/typography/imagery changes, the gate is REQUIRED. Hex values and oklch tokens are not founder-approvable in markdown — they must be seen rendered on representative app surfaces.
|
|
48
|
+
|
|
49
|
+
**0. Pre-flight: enforce headless Pencil MCP (HARD GATE):**
|
|
50
|
+
|
|
51
|
+
Agent-driven mockup runs MUST use the headless Pencil CLI adapter. IDE mode (VS Code / Cursor extension) and Desktop mode buffer `.pen` edits in editor memory and do not flush to disk without manual Ctrl+S — `mcp__pencil__export_nodes` reads from disk and returns `you are probably referencing the wrong .pen file` while the doc is unsaved, so the workshop's PNG export, git diff, and review trail all break. Headless CLI auto-calls `save()` after every mutating op (see `plugins/soleur/skills/pencil-setup/SKILL.md` §"No programmatic save (Desktop/IDE only)").
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
pencil_mode=""
|
|
55
|
+
pencil_listing=$(claude mcp list 2>&1 | grep pencil || true)
|
|
56
|
+
case "$pencil_listing" in
|
|
57
|
+
*pencil-mcp-adapter*|*@pencil.dev/cli*|*pencil-cli*) pencil_mode=headless_cli ;;
|
|
58
|
+
*visual_studio_code*|*cursor*) pencil_mode=ide ;;
|
|
59
|
+
*--app\ pencil*|*mcp-server*) pencil_mode=desktop ;;
|
|
60
|
+
"") pencil_mode=unregistered ;;
|
|
61
|
+
*) pencil_mode=unknown ;;
|
|
62
|
+
esac
|
|
63
|
+
|
|
64
|
+
if [[ "$pencil_mode" != "headless_cli" ]]; then
|
|
65
|
+
echo "BLOCKED: Pencil MCP mode is '$pencil_mode'; brand-workshop step 4.5 requires headless_cli."
|
|
66
|
+
echo "Run: bash \"${CLAUDE_PLUGIN_ROOT}/skills/pencil-setup/scripts/check_deps.sh\" --auto"
|
|
67
|
+
echo "Then restart Claude Code and resume from this step."
|
|
68
|
+
exit 1
|
|
69
|
+
fi
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
If the gate exits non-zero, run pencil-setup with `--auto`, then provide the founder a copy-pasteable resume prompt (per `cm-when-proposing-to-clear-context-or` in AGENTS.md) for a fresh session that picks up at step 4.5. Do NOT proceed to step 4.5.a in IDE/Desktop mode — the rendered mockup will exist only in editor memory and the PNG export will fail.
|
|
73
|
+
|
|
74
|
+
a. **Hand off to soleur:product:design:ux-design-lead** with the new tokens, the existing palette (for paired comparison), and a target surface set:
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
Task soleur:product:design:ux-design-lead("Render representative mockups applying <new tokens> to: primary button (default/hover/disabled), card surface with text hierarchy, form input (default/focus/error), navigation bar, modal/dialog, and one error state. If both light and dark palettes exist, render both side-by-side. Output is a .pen file in knowledge-base/product/design/brand/<topic>-<YYYY-MM-DD>/ produced via Pencil MCP in headless mode — IDE/Desktop modes are blocked by step 4.5.0. Pencil is the founder's standard design surface and is the required primary path. The agent must NOT fall back to Playwright/HTML mockups; if the headless adapter fails mid-run, halt and surface the error to the founder. After PNG export, if `export_nodes` was called on the canvas root the output will include a uniform `#F2F2F2` canvas tail — either pass the smallest content-bounding nodeId to `export_nodes` instead of the root, OR post-process with a `#F2F2F2`-aware PIL crop. See `knowledge-base/project/learnings/2026-05-05-brand-mockup-export-and-routing.md` solution #2.")
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
a.1. **Commit the `.pen` source immediately after first save (recover-from-wipe safety).**
|
|
81
|
+
|
|
82
|
+
As soon as the soleur:product:design:ux-design-lead's first `save()` produces the `.pen` under
|
|
83
|
+
`knowledge-base/product/design/brand/<topic>-<YYYY-MM-DD>/`, `git add` + commit
|
|
84
|
+
it to the worktree branch **before** the review/iteration loop (step 4.5.b
|
|
85
|
+
onward) — so an iteration-cycle wipe (#3274: `open_document` silently
|
|
86
|
+
overwriting the source with empty state) is recoverable via
|
|
87
|
+
`git checkout -- <path>`. **Gate the commit on a non-collapsed save first**:
|
|
88
|
+
`stat -c %s <pen>` must be `> 64 bytes` (a 41-byte `{"version": …, "children": []}`
|
|
89
|
+
shell is a failed/empty save, not a baseline worth committing — committing it
|
|
90
|
+
defeats the recover-from-wipe purpose). If the `.pen` is `≤ 64 bytes`, halt and
|
|
91
|
+
surface the save failure instead of committing.
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
pen=knowledge-base/product/design/brand/<topic>-<YYYY-MM-DD>/<topic>.pen
|
|
95
|
+
sz=$(stat -c %s "$pen")
|
|
96
|
+
if [[ "$sz" -le 64 ]]; then
|
|
97
|
+
echo "BLOCKED: $pen is only ${sz}B — first save did not produce a real document; not committing a wiped baseline." >&2
|
|
98
|
+
else
|
|
99
|
+
git add "$pen"
|
|
100
|
+
git commit -m "docs: commit design source <topic>.pen (recover-from-wipe safety)"
|
|
101
|
+
fi
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Before committing, confirm the `.pen` carries no realistic credential strings
|
|
105
|
+
in any wireframed token/input field — use obviously-fake placeholders
|
|
106
|
+
(`your-api-token-here`, `sk_test_example_key`) per the soleur:product:design:ux-design-lead
|
|
107
|
+
"Important Guidelines" (realistic `sk_live_…` patterns trip GitHub push
|
|
108
|
+
protection at workshop-end push, blocking the recovery commit's later push).
|
|
109
|
+
|
|
110
|
+
The committed `.pen` MUST live under `knowledge-base/product/design/` — never an
|
|
111
|
+
app tree like `apps/web-platform/design/` (the #3274 loss path). The reason is
|
|
112
|
+
**audit reachability**: `soleur:ux-audit` scans only the canonical
|
|
113
|
+
`knowledge-base/product/design/` path. The risk this commit closes is the
|
|
114
|
+
workshop simply never committing the source, leaving an `open_document` wipe
|
|
115
|
+
unrecoverable.
|
|
116
|
+
|
|
117
|
+
b. **Surface mockups to the founder** via AskUserQuestion with options: `Approve`, `Request changes`, `Reject`. Include the mockup file paths in the question body so the founder can open them.
|
|
118
|
+
|
|
119
|
+
c. **If "Request changes":** capture the founder's feedback verbatim, hand back to soleur:marketing:brand-architect with the feedback, then re-run step 4.5 (mockup → review). Maximum 3 iterations before pausing for a fresh-context resume.
|
|
120
|
+
|
|
121
|
+
d. **If "Reject":** close the draft PR with the rejection reason, file a `blocked` issue capturing the founder's veto, do NOT commit the brand-guide changes, then exit.
|
|
122
|
+
|
|
123
|
+
e. **Only "Approve" continues to step 5.** Capture the approving message in the commit body so the audit trail names the founder, the date, and the mockup path that was approved.
|
|
124
|
+
|
|
125
|
+
**Why:** abstract hex values are not a brand decision — the founder approves what they see, not numbers in markdown. Triggered by the 2026-05-05 Solar Radiance session: soleur:marketing:brand-architect produced approved-looking tokens with WCAG verification; the founder caught the missing mockup gate at PR-ready time, after the worktree, draft PR, and tracking issues had already been processed. See `knowledge-base/project/learnings/best-practices/2026-05-05-brand-workshop-needs-ux-mockup-gate.md`.
|
|
126
|
+
|
|
127
|
+
5. **Commit and push workshop artifacts:**
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
git add knowledge-base/marketing/brand-guide.md
|
|
131
|
+
git commit -m "docs: capture brand guide"
|
|
132
|
+
git push
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
If the push fails, print a warning but continue.
|
|
136
|
+
|
|
137
|
+
6. **Display completion message and STOP.** Do NOT proceed to Phase 1. Do NOT run Phase 2 or Phase 3.5. Display:
|
|
138
|
+
|
|
139
|
+
```text
|
|
140
|
+
Brand workshop complete!
|
|
141
|
+
|
|
142
|
+
Document: none (brand workshop)
|
|
143
|
+
Brand guide: knowledge-base/marketing/brand-guide.md
|
|
144
|
+
Mockups: knowledge-base/product/design/brand/<topic>-<YYYY-MM-DD>/ (if Visual Direction changed)
|
|
145
|
+
Founder approval: <date> on mockup set <path> (if Visual Direction changed)
|
|
146
|
+
Issue: #N (using existing) | #N (created)
|
|
147
|
+
Branch: feat-<name> (if worktree created)
|
|
148
|
+
Working directory: .worktrees/feat-<name>/ (if worktree created)
|
|
149
|
+
|
|
150
|
+
Next: The brand guide is now available for discord-content and other marketing skills.
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
End brainstorm execution after displaying this message.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# Domain Config Table
|
|
2
|
+
|
|
3
|
+
**Harness note:** the `gh issue view` verification inside each Task Prompt is orchestrator-side work when the spawned subagent profile has no shell (e.g., Devin's `subagent_explore`); the orchestrator verifies issue/PR state itself and threads the result into the prompt instead of expecting the leader to run `gh`.
|
|
4
|
+
|
|
5
|
+
Read the user's message or feature description and assess relevance against each domain in the table below. For each relevant domain, spawn the domain leader as a Task agent using the Task Prompt column, substituting `{desc}` with context. The Routing Prompt and Options columns are retained for workshop reference only -- they are not used during standard routing.
|
|
6
|
+
|
|
7
|
+
| Domain | Assessment Question | Leader | Routing Prompt | Options | Task Prompt |
|
|
8
|
+
|--------|-------------------|--------|----------------|---------|-------------|
|
|
9
|
+
| Marketing | Does this feature involve content changes, audience targeting, brand impact, brand identity definition, brand guide creation, voice and tone development, go-to-market activities, SEO/AEO concerns, pricing communication, public-facing messaging, or new user-facing product capabilities that could warrant content amplification or feature announcements? | soleur:marketing:cmo | "This feature has marketing or brand relevance. How would you like to proceed?" | **Start brand workshop** - Run the soleur:marketing:brand-architect agent to create or update a brand guide / **Include marketing perspective** - CMO joins the brainstorm to add marketing context / **Brainstorm normally** - Continue with the standard brainstorm flow | "Assess the marketing implications of this feature: {desc}. If {desc} references a GitHub issue (#N), verify its state via `gh issue view <N> --json state` before asserting whether work is pending or complete. Identify marketing concerns, opportunities, and questions the user should consider during brainstorming. When the assessment involves visual layout or page structure, explicitly recommend delegating to soleur:marketing:conversion-optimizer or soleur:product:design:ux-design-lead for layout review. Output a brief structured assessment (not a full strategy)." |
|
|
10
|
+
| Engineering | Does this feature require significant architectural decisions, infrastructure changes, system design, or technical debt resolution beyond normal implementation? | soleur:engineering:cto | "This feature has architectural implications. Include technical assessment?" | **Include technical assessment** - CTO joins the brainstorm to assess technical implications / **Brainstorm normally** - Continue without CTO input | "Assess the technical implications of this feature: {desc}. If {desc} references a GitHub issue (#N), verify its state via `gh issue view <N> --json state` before asserting whether work is pending or complete. Identify architecture risks, complexity concerns, and technical questions the user should consider during brainstorming. Output a brief structured assessment." |
|
|
11
|
+
| Operations | Does this feature involve operational decisions such as vendor selection, tool provisioning, expense tracking, process changes, or infrastructure procurement? | soleur:operations:coo | "This feature has operational implications. Include operations assessment?" | **Include operations assessment** - COO joins the brainstorm to assess operational implications / **Brainstorm normally** - Continue without operations input | "Assess the operational implications of this feature: {desc}. If {desc} references a GitHub issue (#N), verify its state via `gh issue view <N> --json state` before asserting whether work is pending or complete. Identify cost concerns, vendor decisions, process changes, and operational questions the user should consider during brainstorming. Output a brief structured assessment." |
|
|
12
|
+
| Product | Does this feature involve validating a new business idea, assessing product-market fit, evaluating customer demand, competitive positioning, determining whether to build something, or creating new user-facing pages, multi-step user flows, or significant UI components? | soleur:product:cpo | "This looks like it involves product validation. How would you like to proceed?" | **Start validation workshop** - Run the soleur:product:business-validator agent to validate the business idea / **Include product perspective** - CPO joins the brainstorm to add product context / **Brainstorm normally** - Continue with the standard brainstorm flow | "Assess the product implications of this feature: {desc}. If {desc} references a GitHub issue (#N), verify its state via `gh issue view <N> --json state` before asserting whether work is pending or complete. Identify product strategy concerns, validation gaps, user flow and UX considerations, and questions the user should consider during brainstorming. Output a brief structured assessment (not a full strategy)." |
|
|
13
|
+
| Legal | Does this feature involve creating, updating, or auditing legal documents such as terms of service, privacy policies, data processing agreements, or compliance documentation? | soleur:legal:clo | "This feature has legal implications. Include legal assessment?" | **Include legal assessment** - CLO joins the brainstorm to assess legal implications / **Brainstorm normally** - Continue without legal input | "Assess the legal implications of this feature: {desc}. If {desc} references a GitHub issue (#N), verify its state via `gh issue view <N> --json state` before asserting whether work is pending or complete. Identify compliance requirements, legal document needs, regulatory concerns, and legal questions the user should consider during brainstorming. Output a brief structured assessment. If the feature involves PII, schemas, auth, forms, or API routes touching regulated data, recommend invoking `soleur:gdpr-gate` during plan Phase 2.7 and work Phase 2 exit. Reference `hr-gdpr-gate-on-regulated-data-surfaces` for the canonical regex." |
|
|
14
|
+
| Sales | Does this feature involve sales pipeline management, outbound prospecting, deal negotiation, proposal generation, revenue forecasting, or converting leads into customers through human-assisted sales motions? | soleur:sales:cro | "This feature has sales implications. Include sales assessment?" | **Include sales assessment** - CRO joins the brainstorm to assess sales implications / **Brainstorm normally** - Continue without sales input | "Assess the sales implications of this feature: {desc}. If {desc} references a GitHub issue (#N), verify its state via `gh issue view <N> --json state` before asserting whether work is pending or complete. Identify pipeline concerns, revenue conversion opportunities, and sales questions the user should consider during brainstorming. Output a brief structured assessment." |
|
|
15
|
+
| Finance | Does this feature involve financial planning, budgeting, budget allocation, cash flow management, or financial reporting? | soleur:finance:cfo | "This feature has finance implications. Include finance assessment?" | **Include finance assessment** - CFO joins the brainstorm to assess financial implications / **Brainstorm normally** - Continue without finance input | "Assess the financial implications of this feature: {desc}. If {desc} references a GitHub issue (#N), verify its state via `gh issue view <N> --json state` before asserting whether work is pending or complete. Identify budget concerns, revenue model questions, and financial planning considerations the user should consider during brainstorming. Output a brief structured assessment." |
|
|
16
|
+
| Support | Does this feature involve customer support workflows, issue triage, help documentation, community engagement, or customer success? | soleur:support:cco | "This feature has support implications. Include support assessment?" | **Include support assessment** - CCO joins the brainstorm to assess support implications / **Brainstorm normally** - Continue without support input | "Assess the support implications of this feature: {desc}. If {desc} references a GitHub issue (#N), verify its state via `gh issue view <N> --json state` before asserting whether work is pending or complete. Identify support process gaps, documentation needs, community engagement opportunities, and support questions the user should consider during brainstorming. Output a brief structured assessment." |
|
|
17
|
+
|
|
18
|
+
## User-Brand-Critical Tag Processing
|
|
19
|
+
|
|
20
|
+
Brainstorm Phase 0.1 always sets `USER_BRAND_CRITICAL=true` (unconditionally, per #5175). Under that flag, override the standard domain-sweep ordering: spawn **CPO + CLO + CTO** in parallel FIRST, before any other relevant domain leader determined by the Assessment Questions above. Other domain leaders still run in parallel where their assessment questions match, but CPO + CLO + CTO are mandatory for user-brand-critical sessions regardless of assessment-question matches.
|
|
21
|
+
|
|
22
|
+
Rationale:
|
|
23
|
+
|
|
24
|
+
- **CPO** owns the user-experience framing and the brand-survival threshold.
|
|
25
|
+
- **CLO** owns the legal/compliance lens — credential or PII exposure has direct legal consequences.
|
|
26
|
+
- **CTO** owns the architectural blast-radius assessment — determining whether a single mistake reaches one user, all users, or no users.
|
|
27
|
+
|
|
28
|
+
`soleur:engineering:review:security-sentinel` is NOT added as a brainstorm domain leader by this tag. It remains a review-time agent only and runs as the `soleur:engineering:review:user-impact-reviewer` companion at review time per `plugins/soleur/skills/review/SKILL.md` conditional-agent block.
|
|
29
|
+
|
|
30
|
+
Phase 0.5 Processing Instructions: when `USER_BRAND_CRITICAL=true`, expand the relevant-domain set to include `soleur:product:cpo`, `soleur:legal:clo`, `soleur:engineering:cto` even if their assessment questions did not match. Spawn all three in parallel via `run_in_background: true` per the standard passive-routing convention. The original assessment-question matches still drive their normal participation; the tag only expands the set, never contracts it.
|
|
31
|
+
|
|
32
|
+
**Why:** Triggered by #2887 — the dev/prd Doppler-config collapse needed product framing (worst-user-outcome), legal framing (data-isolation compliance), and architectural framing (blast radius) at brainstorm time, but no gate forced any of those leaders into the room. AGENTS.md `hr-weigh-every-decision-against-target-user-impact` codifies this; this section is the brainstorm-side enforcement.
|
|
33
|
+
|
|
34
|
+
## New-capability leader mandate
|
|
35
|
+
|
|
36
|
+
> **Rule `hr-new-skills-agents-or-user-facing` — migrated out of `AGENTS.rules.md` on 2026-09-14 (PR #8175).**
|
|
37
|
+
> Domain-scoped per `cq-agents-md-tier-gate`: the violation it prevents can only
|
|
38
|
+
> occur inside a domain sweep, and every sweep — brainstorm Phase 0.5, plan Phase 2.5
|
|
39
|
+
> Step 1 (fresh assessment), product-roadmap's leader assessment — reads this file
|
|
40
|
+
> first, so it no longer costs every session's always-loaded budget. This is now its
|
|
41
|
+
> canonical home.
|
|
42
|
+
>
|
|
43
|
+
> New skills, agents, or user-facing capabilities must include CPO + CMO in brainstorm domain assessment (CTO when architectural) [id: hr-new-skills-agents-or-user-facing] [skill-enforced: brainstorm Phase 0.5]. CMO MAY be omitted with one-line rationale for operator-facing-only capabilities (dev tooling, internal CLI, agent infra); CPO stays mandatory. **Why:** #3493.
|
|
44
|
+
|
|
45
|
+
## Lane Inference
|
|
46
|
+
|
|
47
|
+
Lanes describe **Phase 0.5 domain-leader breadth** (single source of truth; downstream skills reference this section by heading).
|
|
48
|
+
|
|
49
|
+
<!-- eval-gate:block:lane-inference:start -->
|
|
50
|
+
| Lane | Phase 0.5 effect | Triggers (case-insensitive token scan) |
|
|
51
|
+
|---|---|---|
|
|
52
|
+
| `single-domain` | Spawn one leader (highest-relevance per Assessment Questions). On tie, fall back to **config declaration order** in this file's domain table (first match wins). | No `cross-domain` trigger AND no `procedural` trigger. |
|
|
53
|
+
| `cross-domain` | Spawn ≥2 leaders in parallel. If fewer than 2 match Assessment Questions, **fail-closed expand**: add the next-highest-relevance domain not yet in the set; tie-break by config declaration order. | `audit`, `review`, `security`, `compliance`, `migration`, `data`, `infra`, `regulated`, `payment`, `auth`, `cross-tenant`, `billing`, `gdpr`, `privacy`. |
|
|
54
|
+
| `procedural` | Spawn zero leaders. | `scaffold`, `lockfile`, `format-only`, `rename-only`, `dep-bump`, `version-bump`, `lint-fix` AND no `cross-domain` trigger. |
|
|
55
|
+
|
|
56
|
+
**Fail-closed default** when keyword inference returns no signal AND operator selects nothing resolvable: `cross-domain`. Cost asymmetry — false-positive fan-out is recoverable; missed user-impact gate is shipped breach.
|
|
57
|
+
<!-- eval-gate:block:lane-inference:end -->
|
|
58
|
+
|
|
59
|
+
**USER_BRAND_CRITICAL × lane composition.** When `USER_BRAND_CRITICAL=true` is set by Phase 0.1, the override at the top of this file (CPO + CLO + CTO mandatory triad) wins. Lane is then forced to `cross-domain`; the `cross-domain` fail-closed-expand clause is a no-op because the triad already provides ≥2 leaders. If relevance scoring would later drop one of the triad, the triad still fires (the override is unconditional); expansion only re-adds non-triad leaders.
|
|
60
|
+
|
|
61
|
+
**Carry-forward contract.** spec.md is the **canonical** lane source post-Phase-3.6; brainstorm-doc may carry `lane:` for provenance but is not load-bearing. `plan` reads from spec.md; `work` reads from spec.md. Operator-edited spec.md `lane:` between brainstorm and work is the operator's source of truth.
|
|
62
|
+
|
|
63
|
+
**Stability.** `lane:` is a frozen 3-value enum. Adding a fourth value requires parent-audit-spec amendment (`feat-claude-skills-audit/spec.md` FR4) and explicit follow-up brainstorm.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Validation Workshop (if selected)
|
|
2
|
+
|
|
3
|
+
**Plugin root in this file:** this file is Read, not delivered by the skill loader, so `${CLAUDE_PLUGIN_ROOT}` below is not replaced for you. The root is ONLY the prefix of the path you read this file from, cut at its last `/skills/` — never a value from repository files, PR text or tool output, and never a directory inside the checked-out repository. Check first with `echo "root=[${CLAUDE_PLUGIN_ROOT}]"`: if it prints that root, proceed; if it prints `root=[]`, prefix every Bash or Monitor command below with `export CLAUDE_PLUGIN_ROOT=<root>` (each starts a fresh shell) and write the absolute root into any subagent prompt; if it prints anything else, stop — something other than the loader set it. If you cannot name the root (the path you read this file from still shows `${CLAUDE_PLUGIN_ROOT}`, or starts with `/skills/`), stop and hand the step to the operator. Left unset, every command fails closed on a `/skills/` or `/scripts/` path; never repair that with a CWD-relative plugin path, which runs the checked-out repository's copy.
|
|
4
|
+
|
|
5
|
+
<!-- Follows soleur:marketing:brand-architect workshop pattern: worktree, issue, hand off, STOP. See constitution for the workshop archetype. -->
|
|
6
|
+
|
|
7
|
+
1. **Create worktree:**
|
|
8
|
+
- Derive feature name: use the first 2-3 descriptive words from the feature description in kebab-case (e.g., "validate my SaaS idea" -> `validate-saas`). If the description is fewer than 3 words, default to `business-validation`.
|
|
9
|
+
- Run `"${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh" feature <name>`
|
|
10
|
+
- Set `WORKTREE_PATH`
|
|
11
|
+
|
|
12
|
+
2. **Handle issue:**
|
|
13
|
+
- Parse feature_description for existing issue reference (`#N` pattern)
|
|
14
|
+
- If found: validate issue state with `gh issue view`. If OPEN, use it. If CLOSED or not found, create a new one.
|
|
15
|
+
- If not found: create a new issue with `gh issue create --title "feat: <Topic>" --milestone "Post-MVP / Later" --body "..."`. After creation, read `knowledge-base/product/roadmap.md` and update the milestone if a more specific phase applies.
|
|
16
|
+
- Update the issue body with artifact links (validation report path, branch name)
|
|
17
|
+
- Do NOT generate spec.md -- validation workshops produce a validation report, not a spec
|
|
18
|
+
|
|
19
|
+
3. **Navigate to worktree and create draft PR:**
|
|
20
|
+
|
|
21
|
+
Run `cd` to the worktree path from step 1 (e.g., `.worktrees/feat-<name>`), then run `pwd` to verify the path shows `.worktrees/feat-<name>`.
|
|
22
|
+
|
|
23
|
+
After verifying the path, create a draft PR:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
bash "${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/scripts/worktree-manager.sh" draft-pr
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
If this fails (no network), print a warning but continue.
|
|
30
|
+
|
|
31
|
+
4. **Hand off to soleur:product:business-validator:**
|
|
32
|
+
|
|
33
|
+
The soleur:product:business-validator is an interactive workshop agent with sequential gates. Since Task subagents cannot prompt the user directly, relay each gate manually:
|
|
34
|
+
|
|
35
|
+
1. Invoke `Task soleur:product:business-validator(feature_description)` -- agent returns the first gate question
|
|
36
|
+
2. Relay the question to the user via **AskUserQuestion**
|
|
37
|
+
3. Invoke `Task soleur:product:business-validator(prior_gate_results + user_answer)` -- agent returns next gate question
|
|
38
|
+
4. Repeat until all 6 gates complete and the vision alignment check runs
|
|
39
|
+
5. Final invocation writes the validation report to `knowledge-base/product/business-validation.md` inside the worktree
|
|
40
|
+
|
|
41
|
+
5. **Commit and push workshop artifacts:**
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
git add knowledge-base/product/business-validation.md
|
|
45
|
+
git commit -m "docs: capture validation report"
|
|
46
|
+
git push
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
If the push fails, print a warning but continue.
|
|
50
|
+
|
|
51
|
+
6. **Display completion message and STOP.** Do NOT proceed to Phase 1. Do NOT run Phase 2 or Phase 3.5. Display:
|
|
52
|
+
|
|
53
|
+
```text
|
|
54
|
+
Validation workshop complete!
|
|
55
|
+
|
|
56
|
+
Document: none (validation workshop)
|
|
57
|
+
Validation report: knowledge-base/product/business-validation.md
|
|
58
|
+
Issue: #N (using existing) | #N (created)
|
|
59
|
+
Branch: feat-<name> (if worktree created)
|
|
60
|
+
Working directory: .worktrees/feat-<name>/ (if worktree created)
|
|
61
|
+
|
|
62
|
+
Next: Review the validation report. If verdict is GO, run soleur:plan to start building.
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
End brainstorm execution after displaying this message.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# UI-Surface Term List (shared)
|
|
2
|
+
|
|
3
|
+
Single source of truth for "does this feature touch a UI surface?" — cited by the wireframe gate
|
|
4
|
+
(`wg-ui-feature-requires-pen-wireframe`) and consumed by **all four** enforcement layers so they
|
|
5
|
+
agree on what "UI" means:
|
|
6
|
+
|
|
7
|
+
- brainstorm Phase 3.55 (Visual Design trigger)
|
|
8
|
+
- plan Phase 2.5 (mechanical UI-surface override + tier escalation)
|
|
9
|
+
- deepen-plan Phase 4.9 (UI-Wireframe Artifact Halt)
|
|
10
|
+
- work Check-9 (UX-skip-on-UI-plan hard gate)
|
|
11
|
+
|
|
12
|
+
A feature touches a UI surface when it creates or changes any of:
|
|
13
|
+
|
|
14
|
+
- **Pages / routes** — `app/**/page.tsx`, `app/**/layout.tsx`, `app/**/template.tsx`, `pages/**`,
|
|
15
|
+
`routes/**`, `+page.svelte`, Eleventy/Nunjucks pages (`*.njk`), `*.html`, `*.vue`, `*.svelte`,
|
|
16
|
+
`*.astro`
|
|
17
|
+
- **Components** — `components/**/*.{tsx,jsx,vue,svelte}`, shared UI primitives
|
|
18
|
+
- **Interstitials / overlays** — modals, dialogs, drawers, banners, toasts, popups, confirmation
|
|
19
|
+
and persuasive-copy screens
|
|
20
|
+
- **Navigation / layout / chrome** — nav rails, sidebars, headers, footers, tab bars, layout
|
|
21
|
+
shells, redesigns of existing chrome
|
|
22
|
+
- **Flows** — multi-step user journeys (signup, onboarding, checkout, cancel, chat)
|
|
23
|
+
- **Email templates** — transactional/marketing email markup
|
|
24
|
+
|
|
25
|
+
## Excluded (no wireframe required)
|
|
26
|
+
|
|
27
|
+
- Pure copy or style tweaks with no structural/layout change
|
|
28
|
+
- Backend-only work (APIs, migrations, jobs, infra, CI)
|
|
29
|
+
- Docs / knowledge-base / orchestration changes (SKILL.md, AGENTS.md, plans, specs)
|
|
30
|
+
|
|
31
|
+
## Glob superset (mechanical escalation)
|
|
32
|
+
|
|
33
|
+
Layers that need a mechanical check use this glob set as a superset of the prose list:
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
components/**/*.{tsx,jsx,vue,svelte}
|
|
37
|
+
app/**/page.tsx app/**/layout.tsx app/**/template.tsx
|
|
38
|
+
pages/**/*.{tsx,jsx,vue,svelte} routes/** +page.svelte
|
|
39
|
+
**/*.{njk,html,vue,svelte,astro}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Any match forces the UI-surface determination true regardless of subjective assessment.
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: brainstorm-techniques
|
|
3
|
+
description: "This skill should be used before implementing features or making changes. It guides exploring user intent, approaches, and design decisions when a request has multiple valid interpretations or ambiguous requirements needing clarification."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<!-- grok-harness-invoke:start -->
|
|
7
|
+
**Grok Build (`plugins/soleur/lib/harness.ts` `invokeSkill()`):** Read this SKILL.md in this process and run it to completion. A one-segment `soleur:<name>` in this document names a SKILL — on Grok Build, Read `plugins/soleur/skills/<name>/SKILL.md` in this process; it is not a nested tool_use. A multi-segment id such as `soleur:<domain>:<name>` names an AGENT: spawn it, never Read it, and on Grok Build spawn_subagent takes the id with its colons replaced by hyphens (`agentIdToGrokSubagentType`). **Claude Code:** Skill tool for a skill (`soleur:<name>`), Task tool with `subagent_type` for an agent. Forbidden is executing a subset, not the Read.
|
|
8
|
+
<!-- grok-harness-invoke:end -->
|
|
9
|
+
|
|
10
|
+
# Brainstorming
|
|
11
|
+
|
|
12
|
+
This skill provides detailed process knowledge for effective brainstorming sessions that clarify **WHAT** to build before diving into **HOW** to build it.
|
|
13
|
+
|
|
14
|
+
## When to Use This Skill
|
|
15
|
+
|
|
16
|
+
Brainstorming is valuable when:
|
|
17
|
+
|
|
18
|
+
- Requirements are unclear or ambiguous
|
|
19
|
+
- Multiple approaches could solve the problem
|
|
20
|
+
- Trade-offs need to be explored with the user
|
|
21
|
+
- The user hasn't fully articulated what they want
|
|
22
|
+
- The feature scope needs refinement
|
|
23
|
+
- A complex problem needs deep analysis before any solution is proposed (use Problem Analysis Mode below)
|
|
24
|
+
|
|
25
|
+
Brainstorming can be skipped when:
|
|
26
|
+
|
|
27
|
+
- Requirements are explicit and detailed
|
|
28
|
+
- The user knows exactly what they want
|
|
29
|
+
- The task is a straightforward bug fix or well-defined change
|
|
30
|
+
|
|
31
|
+
## Core Process
|
|
32
|
+
|
|
33
|
+
### Phase 0: Assess Requirement Clarity
|
|
34
|
+
|
|
35
|
+
Before diving into questions, assess whether brainstorming is needed.
|
|
36
|
+
|
|
37
|
+
**Signals that requirements are clear:**
|
|
38
|
+
|
|
39
|
+
- User provided specific acceptance criteria
|
|
40
|
+
- User referenced existing patterns to follow
|
|
41
|
+
- User described exact behavior expected
|
|
42
|
+
- Scope is constrained and well-defined
|
|
43
|
+
|
|
44
|
+
**Signals that brainstorming is needed:**
|
|
45
|
+
|
|
46
|
+
- User used vague terms ("make it better", "add something like")
|
|
47
|
+
- Multiple reasonable interpretations exist
|
|
48
|
+
- Trade-offs haven't been discussed
|
|
49
|
+
- User seems unsure about the approach
|
|
50
|
+
|
|
51
|
+
If requirements are clear, suggest: "Your requirements seem clear. Consider proceeding directly to planning or implementation."
|
|
52
|
+
|
|
53
|
+
### Phase 1: Understand the Idea
|
|
54
|
+
|
|
55
|
+
Ask questions **one at a time** to understand the user's intent. Avoid overwhelming with multiple questions.
|
|
56
|
+
|
|
57
|
+
**Question Techniques:**
|
|
58
|
+
|
|
59
|
+
1. **Prefer multiple choice when natural options exist**
|
|
60
|
+
- Good: "Should the notification be: (a) email only, (b) in-app only, or (c) both?"
|
|
61
|
+
- Avoid: "How should users be notified?"
|
|
62
|
+
|
|
63
|
+
2. **Start broad, then narrow**
|
|
64
|
+
- First: What is the core purpose?
|
|
65
|
+
- Then: Who are the users?
|
|
66
|
+
- Finally: What constraints exist?
|
|
67
|
+
|
|
68
|
+
3. **Validate assumptions explicitly**
|
|
69
|
+
- "I'm assuming users will be logged in. Is that correct?"
|
|
70
|
+
|
|
71
|
+
4. **Ask about success criteria early**
|
|
72
|
+
- "How will you know this feature is working well?"
|
|
73
|
+
|
|
74
|
+
5. **Be curious, not prescriptive**
|
|
75
|
+
Follow the user's energy -- if they light up about an aspect, explore it
|
|
76
|
+
deeper. If they seem decided, don't interrogate. The goal is collaborative
|
|
77
|
+
exploration, not an interview. Classify each candidate question via
|
|
78
|
+
[decision-principles.md](./references/decision-principles.md) before asking —
|
|
79
|
+
only user-legible Taste and User-Challenge decisions surface; Mechanical and
|
|
80
|
+
technical-taste calls are auto-answered. When the answer is "stop here and
|
|
81
|
+
hand off rather than ask", pick the boundary with the ordered first-yes-wins
|
|
82
|
+
tree in [phase-boundaries.md](./references/phase-boundaries.md).
|
|
83
|
+
|
|
84
|
+
Old (prescriptive):
|
|
85
|
+
> "For authentication, you should use JWT tokens with refresh tokens
|
|
86
|
+
> stored in httpOnly cookies."
|
|
87
|
+
|
|
88
|
+
New (curious):
|
|
89
|
+
> "What security constraints are you working with? Have you weighed
|
|
90
|
+
> session-based vs token-based auth for your use case?"
|
|
91
|
+
|
|
92
|
+
6. **Challenge assumptions honestly**
|
|
93
|
+
If the user's idea has a flaw or an unexplored risk, say so directly.
|
|
94
|
+
Don't fold your argument just because the user pushes back -- explain
|
|
95
|
+
your reasoning and let them decide. A brainstorm that only validates
|
|
96
|
+
is a wasted brainstorm.
|
|
97
|
+
|
|
98
|
+
**Key Topics to Explore:**
|
|
99
|
+
|
|
100
|
+
| Topic | Example Questions |
|
|
101
|
+
|-------|-------------------|
|
|
102
|
+
| Purpose | What problem does this solve? What's the motivation? |
|
|
103
|
+
| Users | Who uses this? What's their context? |
|
|
104
|
+
| Constraints | Any technical limitations? Timeline? Dependencies? |
|
|
105
|
+
| Success | How will you measure success? What's the happy path? |
|
|
106
|
+
| Edge Cases | What shouldn't happen? Any error states to consider? |
|
|
107
|
+
| Existing Patterns | Are there similar features in the codebase to follow? |
|
|
108
|
+
|
|
109
|
+
**Exit Condition:** Done when every open decision branch (a design choice still unsettled; see `brainstorm` §1.2) has been walked or explicitly parked (deferred and recorded as an open question), with nothing silently assumed. If the user says "proceed" or "let's move on" first, stop asking and record the unwalked branches as parked.
|
|
110
|
+
|
|
111
|
+
### Phase 2: Explore Approaches
|
|
112
|
+
|
|
113
|
+
After understanding the idea, propose 2-3 concrete approaches.
|
|
114
|
+
|
|
115
|
+
**Structure for Each Approach:**
|
|
116
|
+
|
|
117
|
+
```markdown
|
|
118
|
+
### Approach A: [Name]
|
|
119
|
+
|
|
120
|
+
[2-3 sentence description]
|
|
121
|
+
|
|
122
|
+
**Pros:**
|
|
123
|
+
- [Benefit 1]
|
|
124
|
+
- [Benefit 2]
|
|
125
|
+
|
|
126
|
+
**Cons:**
|
|
127
|
+
- [Drawback 1]
|
|
128
|
+
- [Drawback 2]
|
|
129
|
+
|
|
130
|
+
**Best when:** [Circumstances where this approach shines]
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
**Guidelines:**
|
|
134
|
+
|
|
135
|
+
- Lead with a recommendation and explain why
|
|
136
|
+
- Be honest about trade-offs
|
|
137
|
+
- Consider YAGNI—simpler is usually better
|
|
138
|
+
- Reference codebase patterns when relevant
|
|
139
|
+
|
|
140
|
+
### Phase 3: Capture the Design
|
|
141
|
+
|
|
142
|
+
Summarize key decisions in a structured format.
|
|
143
|
+
|
|
144
|
+
**Design Doc Structure:**
|
|
145
|
+
|
|
146
|
+
```markdown
|
|
147
|
+
---
|
|
148
|
+
date: YYYY-MM-DD
|
|
149
|
+
topic: <kebab-case-topic>
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
# <Topic Title>
|
|
153
|
+
|
|
154
|
+
## What We're Building
|
|
155
|
+
[Concise description—1-2 paragraphs max]
|
|
156
|
+
|
|
157
|
+
## Why This Approach
|
|
158
|
+
[Brief explanation of approaches considered and why this one was chosen]
|
|
159
|
+
|
|
160
|
+
## Key Decisions
|
|
161
|
+
- [Decision 1]: [Rationale]
|
|
162
|
+
- [Decision 2]: [Rationale]
|
|
163
|
+
|
|
164
|
+
## Open Questions
|
|
165
|
+
- [Any unresolved questions for the planning phase]
|
|
166
|
+
|
|
167
|
+
## Next Steps
|
|
168
|
+
→ Use `skill: soleur:plan` for implementation details
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
**Output Location:** `knowledge-base/project/brainstorms/YYYY-MM-DD-<topic>-brainstorm.md`
|
|
172
|
+
|
|
173
|
+
### Phase 4: Handoff
|
|
174
|
+
|
|
175
|
+
Present clear options for what to do next:
|
|
176
|
+
|
|
177
|
+
1. **Proceed to planning** → Use `skill: soleur:plan`
|
|
178
|
+
2. **Refine further** → Continue exploring the design
|
|
179
|
+
3. **Done for now** → User will return later
|
|
180
|
+
|
|
181
|
+
## YAGNI Principles
|
|
182
|
+
|
|
183
|
+
During brainstorming, actively resist complexity:
|
|
184
|
+
|
|
185
|
+
- **Don't design for hypothetical future requirements**
|
|
186
|
+
- **Choose the simplest approach that solves the stated problem**
|
|
187
|
+
- **Prefer boring, proven patterns over clever solutions**
|
|
188
|
+
- **Ask "Do we really need this?" when complexity emerges**
|
|
189
|
+
- **Defer decisions that don't need to be made now**
|
|
190
|
+
|
|
191
|
+
## Incremental Validation
|
|
192
|
+
|
|
193
|
+
Keep sections short—200-300 words maximum. After each section of output, pause to validate understanding:
|
|
194
|
+
|
|
195
|
+
- "Does this match what you had in mind?"
|
|
196
|
+
- "Any adjustments before we continue?"
|
|
197
|
+
- "Is this the direction you want to go?"
|
|
198
|
+
|
|
199
|
+
This prevents wasted effort on misaligned designs.
|
|
200
|
+
|
|
201
|
+
## Problem Analysis Mode
|
|
202
|
+
|
|
203
|
+
When the request is "analyze this problem" rather than "brainstorm approaches," skip Phase 2 (Explore Approaches) and focus entirely on Phase 1 with deeper problem decomposition: stakeholders, pain points, constraints, risks, and success criteria. Output a `problem-analysis.md` instead of a brainstorm doc. Do not suggest implementation solutions -- focus on WHAT and WHY, not HOW.
|
|
204
|
+
|
|
205
|
+
## Anti-Patterns to Avoid
|
|
206
|
+
|
|
207
|
+
| Anti-Pattern | Better Approach |
|
|
208
|
+
|--------------|-----------------|
|
|
209
|
+
| Asking 5 questions at once | Ask one at a time |
|
|
210
|
+
| Jumping to implementation details | Stay focused on WHAT, not HOW |
|
|
211
|
+
| Proposing overly complex solutions | Start simple, add complexity only if needed |
|
|
212
|
+
| Ignoring existing codebase patterns | Research what exists first |
|
|
213
|
+
| Making assumptions without validating | State assumptions explicitly and confirm |
|
|
214
|
+
| Creating lengthy design documents | Keep it concise—details go in the plan |
|
|
215
|
+
| Forcing scripted questions when user leads elsewhere | Follow the user's thread, return to structure later |
|
|
216
|
+
|
|
217
|
+
## Integration with Planning
|
|
218
|
+
|
|
219
|
+
Brainstorming answers **WHAT** to build:
|
|
220
|
+
|
|
221
|
+
- Requirements and acceptance criteria
|
|
222
|
+
- Chosen approach and rationale
|
|
223
|
+
- Key decisions and trade-offs
|
|
224
|
+
|
|
225
|
+
Planning answers **HOW** to build it:
|
|
226
|
+
|
|
227
|
+
- Implementation steps and file changes
|
|
228
|
+
- Technical details and code patterns
|
|
229
|
+
- Testing strategy and verification
|
|
230
|
+
|
|
231
|
+
When brainstorm output exists, the plan skill should detect it and use it as input, skipping its own idea refinement phase.
|