claudecode-omc 5.5.2 → 5.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +63 -0
- package/bundled/manifest.json +3 -2
- package/bundled/upstream/ecc/.omc-source/bundle.json +23 -0
- package/bundled/upstream/ecc/.omc-source/last-plan-apply.json +439 -0
- package/bundled/upstream/ecc/.omc-source/manifests/.claude-plugin/marketplace.json +47 -0
- package/bundled/upstream/ecc/agents/a11y-architect.md +141 -0
- package/bundled/upstream/ecc/agents/architect.md +211 -0
- package/bundled/upstream/ecc/agents/build-error-resolver.md +114 -0
- package/bundled/upstream/ecc/agents/chief-of-staff.md +151 -0
- package/bundled/upstream/ecc/agents/code-architect.md +71 -0
- package/bundled/upstream/ecc/agents/code-explorer.md +69 -0
- package/bundled/upstream/ecc/agents/code-reviewer.md +237 -0
- package/bundled/upstream/ecc/agents/code-simplifier.md +47 -0
- package/bundled/upstream/ecc/agents/comment-analyzer.md +45 -0
- package/bundled/upstream/ecc/agents/conversation-analyzer.md +52 -0
- package/bundled/upstream/ecc/agents/cpp-build-resolver.md +90 -0
- package/bundled/upstream/ecc/agents/cpp-reviewer.md +72 -0
- package/bundled/upstream/ecc/agents/csharp-reviewer.md +101 -0
- package/bundled/upstream/ecc/agents/dart-build-resolver.md +201 -0
- package/bundled/upstream/ecc/agents/database-reviewer.md +91 -0
- package/bundled/upstream/ecc/agents/doc-updater.md +107 -0
- package/bundled/upstream/ecc/agents/docs-lookup.md +68 -0
- package/bundled/upstream/ecc/agents/e2e-runner.md +107 -0
- package/bundled/upstream/ecc/agents/flutter-reviewer.md +243 -0
- package/bundled/upstream/ecc/agents/gan-evaluator.md +209 -0
- package/bundled/upstream/ecc/agents/gan-generator.md +131 -0
- package/bundled/upstream/ecc/agents/gan-planner.md +99 -0
- package/bundled/upstream/ecc/agents/go-build-resolver.md +94 -0
- package/bundled/upstream/ecc/agents/go-reviewer.md +76 -0
- package/bundled/upstream/ecc/agents/harness-optimizer.md +35 -0
- package/bundled/upstream/ecc/agents/healthcare-reviewer.md +83 -0
- package/bundled/upstream/ecc/agents/java-build-resolver.md +153 -0
- package/bundled/upstream/ecc/agents/java-reviewer.md +92 -0
- package/bundled/upstream/ecc/agents/kotlin-build-resolver.md +118 -0
- package/bundled/upstream/ecc/agents/kotlin-reviewer.md +159 -0
- package/bundled/upstream/ecc/agents/loop-operator.md +36 -0
- package/bundled/upstream/ecc/agents/opensource-forker.md +198 -0
- package/bundled/upstream/ecc/agents/opensource-packager.md +249 -0
- package/bundled/upstream/ecc/agents/opensource-sanitizer.md +188 -0
- package/bundled/upstream/ecc/agents/performance-optimizer.md +446 -0
- package/bundled/upstream/ecc/agents/planner.md +212 -0
- package/bundled/upstream/ecc/agents/pr-test-analyzer.md +45 -0
- package/bundled/upstream/ecc/agents/python-reviewer.md +98 -0
- package/bundled/upstream/ecc/agents/pytorch-build-resolver.md +120 -0
- package/bundled/upstream/ecc/agents/refactor-cleaner.md +85 -0
- package/bundled/upstream/ecc/agents/rust-build-resolver.md +148 -0
- package/bundled/upstream/ecc/agents/rust-reviewer.md +94 -0
- package/bundled/upstream/ecc/agents/security-reviewer.md +108 -0
- package/bundled/upstream/ecc/agents/seo-specialist.md +62 -0
- package/bundled/upstream/ecc/agents/silent-failure-hunter.md +50 -0
- package/bundled/upstream/ecc/agents/tdd-guide.md +91 -0
- package/bundled/upstream/ecc/agents/type-design-analyzer.md +41 -0
- package/bundled/upstream/ecc/agents/typescript-reviewer.md +112 -0
- package/bundled/upstream/ecc/commands/agent-sort.md +23 -0
- package/bundled/upstream/ecc/commands/aside.md +164 -0
- package/bundled/upstream/ecc/commands/build-fix.md +62 -0
- package/bundled/upstream/ecc/commands/checkpoint.md +74 -0
- package/bundled/upstream/ecc/commands/claw.md +23 -0
- package/bundled/upstream/ecc/commands/code-review.md +289 -0
- package/bundled/upstream/ecc/commands/context-budget.md +23 -0
- package/bundled/upstream/ecc/commands/cpp-build.md +173 -0
- package/bundled/upstream/ecc/commands/cpp-review.md +132 -0
- package/bundled/upstream/ecc/commands/cpp-test.md +251 -0
- package/bundled/upstream/ecc/commands/devfleet.md +23 -0
- package/bundled/upstream/ecc/commands/docs.md +23 -0
- package/bundled/upstream/ecc/commands/e2e.md +268 -0
- package/bundled/upstream/ecc/commands/eval.md +23 -0
- package/bundled/upstream/ecc/commands/evolve.md +178 -0
- package/bundled/upstream/ecc/commands/feature-dev.md +49 -0
- package/bundled/upstream/ecc/commands/flutter-build.md +164 -0
- package/bundled/upstream/ecc/commands/flutter-review.md +116 -0
- package/bundled/upstream/ecc/commands/flutter-test.md +144 -0
- package/bundled/upstream/ecc/commands/gan-build.md +99 -0
- package/bundled/upstream/ecc/commands/gan-design.md +35 -0
- package/bundled/upstream/ecc/commands/go-build.md +183 -0
- package/bundled/upstream/ecc/commands/go-review.md +148 -0
- package/bundled/upstream/ecc/commands/go-test.md +268 -0
- package/bundled/upstream/ecc/commands/gradle-build.md +70 -0
- package/bundled/upstream/ecc/commands/harness-audit.md +73 -0
- package/bundled/upstream/ecc/commands/hookify-configure.md +14 -0
- package/bundled/upstream/ecc/commands/hookify-help.md +46 -0
- package/bundled/upstream/ecc/commands/hookify-list.md +21 -0
- package/bundled/upstream/ecc/commands/hookify.md +50 -0
- package/bundled/upstream/ecc/commands/instinct-export.md +66 -0
- package/bundled/upstream/ecc/commands/instinct-import.md +114 -0
- package/bundled/upstream/ecc/commands/instinct-status.md +59 -0
- package/bundled/upstream/ecc/commands/jira.md +106 -0
- package/bundled/upstream/ecc/commands/kotlin-build.md +174 -0
- package/bundled/upstream/ecc/commands/kotlin-review.md +140 -0
- package/bundled/upstream/ecc/commands/kotlin-test.md +312 -0
- package/bundled/upstream/ecc/commands/learn-eval.md +116 -0
- package/bundled/upstream/ecc/commands/learn.md +70 -0
- package/bundled/upstream/ecc/commands/loop-start.md +32 -0
- package/bundled/upstream/ecc/commands/loop-status.md +24 -0
- package/bundled/upstream/ecc/commands/model-route.md +26 -0
- package/bundled/upstream/ecc/commands/multi-backend.md +158 -0
- package/bundled/upstream/ecc/commands/multi-execute.md +315 -0
- package/bundled/upstream/ecc/commands/multi-frontend.md +158 -0
- package/bundled/upstream/ecc/commands/multi-plan.md +268 -0
- package/bundled/upstream/ecc/commands/multi-workflow.md +191 -0
- package/bundled/upstream/ecc/commands/orchestrate.md +135 -0
- package/bundled/upstream/ecc/commands/plan.md +117 -0
- package/bundled/upstream/ecc/commands/pm2.md +272 -0
- package/bundled/upstream/ecc/commands/projects.md +39 -0
- package/bundled/upstream/ecc/commands/promote.md +41 -0
- package/bundled/upstream/ecc/commands/prompt-optimize.md +23 -0
- package/bundled/upstream/ecc/commands/prp-commit.md +112 -0
- package/bundled/upstream/ecc/commands/prp-implement.md +385 -0
- package/bundled/upstream/ecc/commands/prp-plan.md +502 -0
- package/bundled/upstream/ecc/commands/prp-pr.md +184 -0
- package/bundled/upstream/ecc/commands/prp-prd.md +447 -0
- package/bundled/upstream/ecc/commands/prune.md +31 -0
- package/bundled/upstream/ecc/commands/python-review.md +297 -0
- package/bundled/upstream/ecc/commands/quality-gate.md +29 -0
- package/bundled/upstream/ecc/commands/refactor-clean.md +80 -0
- package/bundled/upstream/ecc/commands/resume-session.md +156 -0
- package/bundled/upstream/ecc/commands/review-pr.md +37 -0
- package/bundled/upstream/ecc/commands/rules-distill.md +20 -0
- package/bundled/upstream/ecc/commands/rust-build.md +187 -0
- package/bundled/upstream/ecc/commands/rust-review.md +142 -0
- package/bundled/upstream/ecc/commands/rust-test.md +308 -0
- package/bundled/upstream/ecc/commands/santa-loop.md +175 -0
- package/bundled/upstream/ecc/commands/save-session.md +275 -0
- package/bundled/upstream/ecc/commands/sessions.md +339 -0
- package/bundled/upstream/ecc/commands/setup-pm.md +80 -0
- package/bundled/upstream/ecc/commands/skill-create.md +174 -0
- package/bundled/upstream/ecc/commands/skill-health.md +54 -0
- package/bundled/upstream/ecc/commands/tdd.md +231 -0
- package/bundled/upstream/ecc/commands/test-coverage.md +69 -0
- package/bundled/upstream/ecc/commands/update-codemaps.md +72 -0
- package/bundled/upstream/ecc/commands/update-docs.md +84 -0
- package/bundled/upstream/ecc/commands/verify.md +23 -0
- package/bundled/upstream/ecc/hooks/README.md +237 -0
- package/bundled/upstream/ecc/hooks/hooks.json +330 -0
- package/bundled/upstream/ecc/skills/accessibility/SKILL.md +146 -0
- package/bundled/upstream/ecc/skills/agent-eval/SKILL.md +145 -0
- package/bundled/upstream/ecc/skills/agent-harness-construction/SKILL.md +73 -0
- package/bundled/upstream/ecc/skills/agent-introspection-debugging/SKILL.md +153 -0
- package/bundled/upstream/ecc/skills/agent-payment-x402/SKILL.md +178 -0
- package/bundled/upstream/ecc/skills/agent-sort/SKILL.md +215 -0
- package/bundled/upstream/ecc/skills/agentic-engineering/SKILL.md +63 -0
- package/bundled/upstream/ecc/skills/ai-first-engineering/SKILL.md +51 -0
- package/bundled/upstream/ecc/skills/ai-regression-testing/SKILL.md +385 -0
- package/bundled/upstream/ecc/skills/android-clean-architecture/SKILL.md +339 -0
- package/bundled/upstream/ecc/skills/api-connector-builder/SKILL.md +120 -0
- package/bundled/upstream/ecc/skills/api-design/SKILL.md +523 -0
- package/bundled/upstream/ecc/skills/architecture-decision-records/SKILL.md +179 -0
- package/bundled/upstream/ecc/skills/article-writing/SKILL.md +79 -0
- package/bundled/upstream/ecc/skills/automation-audit-ops/SKILL.md +142 -0
- package/bundled/upstream/ecc/skills/autonomous-agent-harness/SKILL.md +267 -0
- package/bundled/upstream/ecc/skills/autonomous-loops/SKILL.md +610 -0
- package/bundled/upstream/ecc/skills/backend-patterns/SKILL.md +598 -0
- package/bundled/upstream/ecc/skills/benchmark/SKILL.md +93 -0
- package/bundled/upstream/ecc/skills/blueprint/SKILL.md +105 -0
- package/bundled/upstream/ecc/skills/brand-voice/SKILL.md +97 -0
- package/bundled/upstream/ecc/skills/brand-voice/references/voice-profile-schema.md +55 -0
- package/bundled/upstream/ecc/skills/browser-qa/SKILL.md +87 -0
- package/bundled/upstream/ecc/skills/bun-runtime/SKILL.md +84 -0
- package/bundled/upstream/ecc/skills/canary-watch/SKILL.md +99 -0
- package/bundled/upstream/ecc/skills/carrier-relationship-management/SKILL.md +212 -0
- package/bundled/upstream/ecc/skills/ck/SKILL.md +147 -0
- package/bundled/upstream/ecc/skills/ck/commands/forget.mjs +44 -0
- package/bundled/upstream/ecc/skills/ck/commands/info.mjs +24 -0
- package/bundled/upstream/ecc/skills/ck/commands/init.mjs +143 -0
- package/bundled/upstream/ecc/skills/ck/commands/list.mjs +40 -0
- package/bundled/upstream/ecc/skills/ck/commands/migrate.mjs +202 -0
- package/bundled/upstream/ecc/skills/ck/commands/resume.mjs +36 -0
- package/bundled/upstream/ecc/skills/ck/commands/save.mjs +210 -0
- package/bundled/upstream/ecc/skills/ck/commands/shared.mjs +387 -0
- package/bundled/upstream/ecc/skills/ck/hooks/session-start.mjs +224 -0
- package/bundled/upstream/ecc/skills/claude-api/SKILL.md +337 -0
- package/bundled/upstream/ecc/skills/claude-devfleet/SKILL.md +103 -0
- package/bundled/upstream/ecc/skills/click-path-audit/SKILL.md +244 -0
- package/bundled/upstream/ecc/skills/clickhouse-io/SKILL.md +439 -0
- package/bundled/upstream/ecc/skills/code-tour/SKILL.md +236 -0
- package/bundled/upstream/ecc/skills/codebase-onboarding/SKILL.md +233 -0
- package/bundled/upstream/ecc/skills/coding-standards/SKILL.md +549 -0
- package/bundled/upstream/ecc/skills/compose-multiplatform-patterns/SKILL.md +299 -0
- package/bundled/upstream/ecc/skills/configure-ecc/SKILL.md +367 -0
- package/bundled/upstream/ecc/skills/connections-optimizer/SKILL.md +189 -0
- package/bundled/upstream/ecc/skills/content-engine/SKILL.md +131 -0
- package/bundled/upstream/ecc/skills/content-hash-cache-pattern/SKILL.md +161 -0
- package/bundled/upstream/ecc/skills/context-budget/SKILL.md +135 -0
- package/bundled/upstream/ecc/skills/continuous-agent-loop/SKILL.md +45 -0
- package/bundled/upstream/ecc/skills/continuous-learning/SKILL.md +123 -0
- package/bundled/upstream/ecc/skills/continuous-learning/config.json +18 -0
- package/bundled/upstream/ecc/skills/continuous-learning/evaluate-session.sh +69 -0
- package/bundled/upstream/ecc/skills/continuous-learning-v2/SKILL.md +346 -0
- package/bundled/upstream/ecc/skills/continuous-learning-v2/agents/observer-loop.sh +282 -0
- package/bundled/upstream/ecc/skills/continuous-learning-v2/agents/observer.md +198 -0
- package/bundled/upstream/ecc/skills/continuous-learning-v2/agents/session-guardian.sh +150 -0
- package/bundled/upstream/ecc/skills/continuous-learning-v2/agents/start-observer.sh +244 -0
- package/bundled/upstream/ecc/skills/continuous-learning-v2/config.json +8 -0
- package/bundled/upstream/ecc/skills/continuous-learning-v2/hooks/observe.sh +460 -0
- package/bundled/upstream/ecc/skills/continuous-learning-v2/scripts/detect-project.sh +243 -0
- package/bundled/upstream/ecc/skills/continuous-learning-v2/scripts/instinct-cli.py +1426 -0
- package/bundled/upstream/ecc/skills/continuous-learning-v2/scripts/test_parse_instinct.py +984 -0
- package/bundled/upstream/ecc/skills/cost-aware-llm-pipeline/SKILL.md +183 -0
- package/bundled/upstream/ecc/skills/council/SKILL.md +203 -0
- package/bundled/upstream/ecc/skills/cpp-coding-standards/SKILL.md +723 -0
- package/bundled/upstream/ecc/skills/cpp-testing/SKILL.md +324 -0
- package/bundled/upstream/ecc/skills/crosspost/SKILL.md +111 -0
- package/bundled/upstream/ecc/skills/csharp-testing/SKILL.md +321 -0
- package/bundled/upstream/ecc/skills/customer-billing-ops/SKILL.md +140 -0
- package/bundled/upstream/ecc/skills/customs-trade-compliance/SKILL.md +263 -0
- package/bundled/upstream/ecc/skills/dart-flutter-patterns/SKILL.md +563 -0
- package/bundled/upstream/ecc/skills/dashboard-builder/SKILL.md +108 -0
- package/bundled/upstream/ecc/skills/data-scraper-agent/SKILL.md +764 -0
- package/bundled/upstream/ecc/skills/database-migrations/SKILL.md +429 -0
- package/bundled/upstream/ecc/skills/deep-research/SKILL.md +155 -0
- package/bundled/upstream/ecc/skills/defi-amm-security/SKILL.md +160 -0
- package/bundled/upstream/ecc/skills/deployment-patterns/SKILL.md +427 -0
- package/bundled/upstream/ecc/skills/design-system/SKILL.md +82 -0
- package/bundled/upstream/ecc/skills/django-patterns/SKILL.md +734 -0
- package/bundled/upstream/ecc/skills/django-security/SKILL.md +593 -0
- package/bundled/upstream/ecc/skills/django-tdd/SKILL.md +729 -0
- package/bundled/upstream/ecc/skills/django-verification/SKILL.md +469 -0
- package/bundled/upstream/ecc/skills/dmux-workflows/SKILL.md +191 -0
- package/bundled/upstream/ecc/skills/docker-patterns/SKILL.md +364 -0
- package/bundled/upstream/ecc/skills/documentation-lookup/SKILL.md +90 -0
- package/bundled/upstream/ecc/skills/dotnet-patterns/SKILL.md +321 -0
- package/bundled/upstream/ecc/skills/e2e-testing/SKILL.md +326 -0
- package/bundled/upstream/ecc/skills/ecc-tools-cost-audit/SKILL.md +160 -0
- package/bundled/upstream/ecc/skills/email-ops/SKILL.md +121 -0
- package/bundled/upstream/ecc/skills/energy-procurement/SKILL.md +228 -0
- package/bundled/upstream/ecc/skills/enterprise-agent-ops/SKILL.md +50 -0
- package/bundled/upstream/ecc/skills/eval-harness/SKILL.md +270 -0
- package/bundled/upstream/ecc/skills/evm-token-decimals/SKILL.md +130 -0
- package/bundled/upstream/ecc/skills/exa-search/SKILL.md +103 -0
- package/bundled/upstream/ecc/skills/fal-ai-media/SKILL.md +284 -0
- package/bundled/upstream/ecc/skills/finance-billing-ops/SKILL.md +127 -0
- package/bundled/upstream/ecc/skills/flutter-dart-code-review/SKILL.md +435 -0
- package/bundled/upstream/ecc/skills/foundation-models-on-device/SKILL.md +243 -0
- package/bundled/upstream/ecc/skills/frontend-design/SKILL.md +145 -0
- package/bundled/upstream/ecc/skills/frontend-patterns/SKILL.md +642 -0
- package/bundled/upstream/ecc/skills/frontend-slides/SKILL.md +184 -0
- package/bundled/upstream/ecc/skills/frontend-slides/STYLE_PRESETS.md +330 -0
- package/bundled/upstream/ecc/skills/gan-style-harness/SKILL.md +278 -0
- package/bundled/upstream/ecc/skills/gateguard/SKILL.md +121 -0
- package/bundled/upstream/ecc/skills/git-workflow/SKILL.md +715 -0
- package/bundled/upstream/ecc/skills/github-ops/SKILL.md +144 -0
- package/bundled/upstream/ecc/skills/golang-patterns/SKILL.md +674 -0
- package/bundled/upstream/ecc/skills/golang-testing/SKILL.md +720 -0
- package/bundled/upstream/ecc/skills/google-workspace-ops/SKILL.md +95 -0
- package/bundled/upstream/ecc/skills/healthcare-cdss-patterns/SKILL.md +245 -0
- package/bundled/upstream/ecc/skills/healthcare-emr-patterns/SKILL.md +159 -0
- package/bundled/upstream/ecc/skills/healthcare-eval-harness/SKILL.md +207 -0
- package/bundled/upstream/ecc/skills/healthcare-phi-compliance/SKILL.md +145 -0
- package/bundled/upstream/ecc/skills/hexagonal-architecture/SKILL.md +276 -0
- package/bundled/upstream/ecc/skills/hipaa-compliance/SKILL.md +78 -0
- package/bundled/upstream/ecc/skills/hookify-rules/SKILL.md +128 -0
- package/bundled/upstream/ecc/skills/inventory-demand-planning/SKILL.md +247 -0
- package/bundled/upstream/ecc/skills/investor-materials/SKILL.md +96 -0
- package/bundled/upstream/ecc/skills/investor-outreach/SKILL.md +91 -0
- package/bundled/upstream/ecc/skills/iterative-retrieval/SKILL.md +211 -0
- package/bundled/upstream/ecc/skills/java-coding-standards/SKILL.md +147 -0
- package/bundled/upstream/ecc/skills/jira-integration/SKILL.md +293 -0
- package/bundled/upstream/ecc/skills/jpa-patterns/SKILL.md +151 -0
- package/bundled/upstream/ecc/skills/knowledge-ops/SKILL.md +154 -0
- package/bundled/upstream/ecc/skills/kotlin-coroutines-flows/SKILL.md +284 -0
- package/bundled/upstream/ecc/skills/kotlin-exposed-patterns/SKILL.md +719 -0
- package/bundled/upstream/ecc/skills/kotlin-ktor-patterns/SKILL.md +689 -0
- package/bundled/upstream/ecc/skills/kotlin-patterns/SKILL.md +711 -0
- package/bundled/upstream/ecc/skills/kotlin-testing/SKILL.md +824 -0
- package/bundled/upstream/ecc/skills/laravel-patterns/SKILL.md +415 -0
- package/bundled/upstream/ecc/skills/laravel-plugin-discovery/SKILL.md +229 -0
- package/bundled/upstream/ecc/skills/laravel-security/SKILL.md +285 -0
- package/bundled/upstream/ecc/skills/laravel-tdd/SKILL.md +283 -0
- package/bundled/upstream/ecc/skills/laravel-verification/SKILL.md +179 -0
- package/bundled/upstream/ecc/skills/lead-intelligence/SKILL.md +321 -0
- package/bundled/upstream/ecc/skills/lead-intelligence/agents/enrichment-agent.md +85 -0
- package/bundled/upstream/ecc/skills/lead-intelligence/agents/mutual-mapper.md +75 -0
- package/bundled/upstream/ecc/skills/lead-intelligence/agents/outreach-drafter.md +98 -0
- package/bundled/upstream/ecc/skills/lead-intelligence/agents/signal-scorer.md +60 -0
- package/bundled/upstream/ecc/skills/liquid-glass-design/SKILL.md +279 -0
- package/bundled/upstream/ecc/skills/llm-trading-agent-security/SKILL.md +146 -0
- package/bundled/upstream/ecc/skills/logistics-exception-management/SKILL.md +222 -0
- package/bundled/upstream/ecc/skills/manim-video/SKILL.md +89 -0
- package/bundled/upstream/ecc/skills/manim-video/assets/network_graph_scene.py +52 -0
- package/bundled/upstream/ecc/skills/market-research/SKILL.md +75 -0
- package/bundled/upstream/ecc/skills/mcp-server-patterns/SKILL.md +69 -0
- package/bundled/upstream/ecc/skills/messages-ops/SKILL.md +104 -0
- package/bundled/upstream/ecc/skills/nanoclaw-repl/SKILL.md +33 -0
- package/bundled/upstream/ecc/skills/nestjs-patterns/SKILL.md +230 -0
- package/bundled/upstream/ecc/skills/nextjs-turbopack/SKILL.md +44 -0
- package/bundled/upstream/ecc/skills/nodejs-keccak256/SKILL.md +102 -0
- package/bundled/upstream/ecc/skills/nutrient-document-processing/SKILL.md +167 -0
- package/bundled/upstream/ecc/skills/nuxt4-patterns/SKILL.md +100 -0
- package/bundled/upstream/ecc/skills/openclaw-persona-forge/SKILL.md +296 -0
- package/bundled/upstream/ecc/skills/openclaw-persona-forge/gacha.py +224 -0
- package/bundled/upstream/ecc/skills/openclaw-persona-forge/gacha.sh +5 -0
- package/bundled/upstream/ecc/skills/openclaw-persona-forge/references/avatar-style.md +124 -0
- package/bundled/upstream/ecc/skills/openclaw-persona-forge/references/boundary-rules.md +53 -0
- package/bundled/upstream/ecc/skills/openclaw-persona-forge/references/error-handling.md +53 -0
- package/bundled/upstream/ecc/skills/openclaw-persona-forge/references/identity-tension.md +48 -0
- package/bundled/upstream/ecc/skills/openclaw-persona-forge/references/naming-system.md +39 -0
- package/bundled/upstream/ecc/skills/openclaw-persona-forge/references/output-template.md +166 -0
- package/bundled/upstream/ecc/skills/opensource-pipeline/SKILL.md +255 -0
- package/bundled/upstream/ecc/skills/perl-patterns/SKILL.md +504 -0
- package/bundled/upstream/ecc/skills/perl-security/SKILL.md +503 -0
- package/bundled/upstream/ecc/skills/perl-testing/SKILL.md +475 -0
- package/bundled/upstream/ecc/skills/plankton-code-quality/SKILL.md +236 -0
- package/bundled/upstream/ecc/skills/postgres-patterns/SKILL.md +147 -0
- package/bundled/upstream/ecc/skills/product-capability/SKILL.md +141 -0
- package/bundled/upstream/ecc/skills/product-lens/SKILL.md +92 -0
- package/bundled/upstream/ecc/skills/production-scheduling/SKILL.md +238 -0
- package/bundled/upstream/ecc/skills/project-flow-ops/SKILL.md +111 -0
- package/bundled/upstream/ecc/skills/prompt-optimizer/SKILL.md +397 -0
- package/bundled/upstream/ecc/skills/python-patterns/SKILL.md +750 -0
- package/bundled/upstream/ecc/skills/python-testing/SKILL.md +816 -0
- package/bundled/upstream/ecc/skills/pytorch-patterns/SKILL.md +396 -0
- package/bundled/upstream/ecc/skills/quality-nonconformance/SKILL.md +260 -0
- package/bundled/upstream/ecc/skills/ralphinho-rfc-pipeline/SKILL.md +67 -0
- package/bundled/upstream/ecc/skills/regex-vs-llm-structured-text/SKILL.md +220 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/SKILL.md +43 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/3d.md +86 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/animations.md +29 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/assets/charts-bar-chart.tsx +173 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/assets/text-animations-typewriter.tsx +100 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/assets/text-animations-word-highlight.tsx +108 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/assets.md +78 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/audio.md +172 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/calculate-metadata.md +104 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/can-decode.md +75 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/charts.md +58 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/compositions.md +146 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/display-captions.md +126 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/extract-frames.md +229 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/fonts.md +152 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/get-audio-duration.md +58 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/get-video-dimensions.md +68 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/get-video-duration.md +58 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/gifs.md +138 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/images.md +130 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/import-srt-captions.md +67 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/lottie.md +67 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/measuring-dom-nodes.md +34 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/measuring-text.md +143 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/sequencing.md +106 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/tailwind.md +11 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/text-animations.md +20 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/timing.md +179 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/transcribe-captions.md +19 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/transitions.md +122 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/trimming.md +52 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/videos.md +171 -0
- package/bundled/upstream/ecc/skills/repo-scan/SKILL.md +78 -0
- package/bundled/upstream/ecc/skills/research-ops/SKILL.md +112 -0
- package/bundled/upstream/ecc/skills/returns-reverse-logistics/SKILL.md +240 -0
- package/bundled/upstream/ecc/skills/rules-distill/SKILL.md +264 -0
- package/bundled/upstream/ecc/skills/rules-distill/scripts/scan-rules.sh +58 -0
- package/bundled/upstream/ecc/skills/rules-distill/scripts/scan-skills.sh +129 -0
- package/bundled/upstream/ecc/skills/rust-patterns/SKILL.md +499 -0
- package/bundled/upstream/ecc/skills/rust-testing/SKILL.md +500 -0
- package/bundled/upstream/ecc/skills/safety-guard/SKILL.md +75 -0
- package/bundled/upstream/ecc/skills/santa-method/SKILL.md +306 -0
- package/bundled/upstream/ecc/skills/search-first/SKILL.md +161 -0
- package/bundled/upstream/ecc/skills/security-bounty-hunter/SKILL.md +99 -0
- package/bundled/upstream/ecc/skills/security-review/SKILL.md +495 -0
- package/bundled/upstream/ecc/skills/security-review/cloud-infrastructure-security.md +361 -0
- package/bundled/upstream/ecc/skills/security-scan/SKILL.md +165 -0
- package/bundled/upstream/ecc/skills/seo/SKILL.md +154 -0
- package/bundled/upstream/ecc/skills/skill-comply/SKILL.md +58 -0
- package/bundled/upstream/ecc/skills/skill-comply/fixtures/compliant_trace.jsonl +5 -0
- package/bundled/upstream/ecc/skills/skill-comply/fixtures/noncompliant_trace.jsonl +3 -0
- package/bundled/upstream/ecc/skills/skill-comply/fixtures/tdd_spec.yaml +44 -0
- package/bundled/upstream/ecc/skills/skill-comply/prompts/classifier.md +24 -0
- package/bundled/upstream/ecc/skills/skill-comply/prompts/scenario_generator.md +62 -0
- package/bundled/upstream/ecc/skills/skill-comply/prompts/spec_generator.md +42 -0
- package/bundled/upstream/ecc/skills/skill-comply/pyproject.toml +15 -0
- package/bundled/upstream/ecc/skills/skill-comply/scripts/__init__.py +0 -0
- package/bundled/upstream/ecc/skills/skill-comply/scripts/classifier.py +85 -0
- package/bundled/upstream/ecc/skills/skill-comply/scripts/grader.py +124 -0
- package/bundled/upstream/ecc/skills/skill-comply/scripts/parser.py +107 -0
- package/bundled/upstream/ecc/skills/skill-comply/scripts/report.py +170 -0
- package/bundled/upstream/ecc/skills/skill-comply/scripts/run.py +127 -0
- package/bundled/upstream/ecc/skills/skill-comply/scripts/runner.py +161 -0
- package/bundled/upstream/ecc/skills/skill-comply/scripts/scenario_generator.py +70 -0
- package/bundled/upstream/ecc/skills/skill-comply/scripts/spec_generator.py +72 -0
- package/bundled/upstream/ecc/skills/skill-comply/scripts/utils.py +13 -0
- package/bundled/upstream/ecc/skills/skill-comply/tests/test_grader.py +197 -0
- package/bundled/upstream/ecc/skills/skill-comply/tests/test_parser.py +90 -0
- package/bundled/upstream/ecc/skills/skill-stocktake/SKILL.md +193 -0
- package/bundled/upstream/ecc/skills/skill-stocktake/scripts/quick-diff.sh +87 -0
- package/bundled/upstream/ecc/skills/skill-stocktake/scripts/save-results.sh +56 -0
- package/bundled/upstream/ecc/skills/skill-stocktake/scripts/scan.sh +170 -0
- package/bundled/upstream/ecc/skills/social-graph-ranker/SKILL.md +154 -0
- package/bundled/upstream/ecc/skills/springboot-patterns/SKILL.md +314 -0
- package/bundled/upstream/ecc/skills/springboot-security/SKILL.md +272 -0
- package/bundled/upstream/ecc/skills/springboot-tdd/SKILL.md +158 -0
- package/bundled/upstream/ecc/skills/springboot-verification/SKILL.md +231 -0
- package/bundled/upstream/ecc/skills/strategic-compact/SKILL.md +131 -0
- package/bundled/upstream/ecc/skills/strategic-compact/suggest-compact.sh +54 -0
- package/bundled/upstream/ecc/skills/swift-actor-persistence/SKILL.md +143 -0
- package/bundled/upstream/ecc/skills/swift-concurrency-6-2/SKILL.md +216 -0
- package/bundled/upstream/ecc/skills/swift-protocol-di-testing/SKILL.md +190 -0
- package/bundled/upstream/ecc/skills/swiftui-patterns/SKILL.md +259 -0
- package/bundled/upstream/ecc/skills/tdd-workflow/SKILL.md +463 -0
- package/bundled/upstream/ecc/skills/team-builder/SKILL.md +168 -0
- package/bundled/upstream/ecc/skills/terminal-ops/SKILL.md +109 -0
- package/bundled/upstream/ecc/skills/token-budget-advisor/SKILL.md +133 -0
- package/bundled/upstream/ecc/skills/ui-demo/SKILL.md +465 -0
- package/bundled/upstream/ecc/skills/unified-notifications-ops/SKILL.md +187 -0
- package/bundled/upstream/ecc/skills/verification-loop/SKILL.md +126 -0
- package/bundled/upstream/ecc/skills/video-editing/SKILL.md +310 -0
- package/bundled/upstream/ecc/skills/videodb/SKILL.md +374 -0
- package/bundled/upstream/ecc/skills/videodb/reference/api-reference.md +550 -0
- package/bundled/upstream/ecc/skills/videodb/reference/capture-reference.md +407 -0
- package/bundled/upstream/ecc/skills/videodb/reference/capture.md +101 -0
- package/bundled/upstream/ecc/skills/videodb/reference/editor.md +443 -0
- package/bundled/upstream/ecc/skills/videodb/reference/generative.md +331 -0
- package/bundled/upstream/ecc/skills/videodb/reference/rtstream-reference.md +564 -0
- package/bundled/upstream/ecc/skills/videodb/reference/rtstream.md +65 -0
- package/bundled/upstream/ecc/skills/videodb/reference/search.md +230 -0
- package/bundled/upstream/ecc/skills/videodb/reference/streaming.md +406 -0
- package/bundled/upstream/ecc/skills/videodb/reference/use-cases.md +118 -0
- package/bundled/upstream/ecc/skills/videodb/scripts/ws_listener.py +282 -0
- package/bundled/upstream/ecc/skills/visa-doc-translate/README.md +86 -0
- package/bundled/upstream/ecc/skills/visa-doc-translate/SKILL.md +117 -0
- package/bundled/upstream/ecc/skills/workspace-surface-audit/SKILL.md +125 -0
- package/bundled/upstream/ecc/skills/x-api/SKILL.md +230 -0
- package/bundled/upstream/superpowers/.omc-source/last-plan-apply.json +22 -0
- package/package.json +3 -1
- package/src/catalog/source-catalog.js +391 -0
- package/src/cli/artifact.js +3 -2
- package/src/cli/doctor.js +25 -4
- package/src/cli/index.js +19 -0
- package/src/cli/plan.js +220 -0
- package/src/cli/setup.js +209 -12
- package/src/cli/source.js +110 -3
- package/src/config/paths.js +31 -0
- package/src/config/sources.js +103 -10
- package/src/merge/hook-merger.js +1 -0
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Enforce TDD workflow for Go. Write table-driven tests first, then implement. Verify 80%+ coverage with go test -cover.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Go TDD Command
|
|
6
|
+
|
|
7
|
+
This command enforces test-driven development methodology for Go code using idiomatic Go testing patterns.
|
|
8
|
+
|
|
9
|
+
## What This Command Does
|
|
10
|
+
|
|
11
|
+
1. **Define Types/Interfaces**: Scaffold function signatures first
|
|
12
|
+
2. **Write Table-Driven Tests**: Create comprehensive test cases (RED)
|
|
13
|
+
3. **Run Tests**: Verify tests fail for the right reason
|
|
14
|
+
4. **Implement Code**: Write minimal code to pass (GREEN)
|
|
15
|
+
5. **Refactor**: Improve while keeping tests green
|
|
16
|
+
6. **Check Coverage**: Ensure 80%+ coverage
|
|
17
|
+
|
|
18
|
+
## When to Use
|
|
19
|
+
|
|
20
|
+
Use `/go-test` when:
|
|
21
|
+
- Implementing new Go functions
|
|
22
|
+
- Adding test coverage to existing code
|
|
23
|
+
- Fixing bugs (write failing test first)
|
|
24
|
+
- Building critical business logic
|
|
25
|
+
- Learning TDD workflow in Go
|
|
26
|
+
|
|
27
|
+
## TDD Cycle
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
RED → Write failing table-driven test
|
|
31
|
+
GREEN → Implement minimal code to pass
|
|
32
|
+
REFACTOR → Improve code, tests stay green
|
|
33
|
+
REPEAT → Next test case
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Example Session
|
|
37
|
+
|
|
38
|
+
````
|
|
39
|
+
User: /go-test I need a function to validate email addresses
|
|
40
|
+
|
|
41
|
+
Agent:
|
|
42
|
+
# TDD Session: Email Validator
|
|
43
|
+
|
|
44
|
+
## Step 1: Define Interface
|
|
45
|
+
|
|
46
|
+
```go
|
|
47
|
+
// validator/email.go
|
|
48
|
+
package validator
|
|
49
|
+
|
|
50
|
+
// ValidateEmail checks if the given string is a valid email address.
|
|
51
|
+
// Returns nil if valid, error describing the issue otherwise.
|
|
52
|
+
func ValidateEmail(email string) error {
|
|
53
|
+
panic("not implemented")
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Step 2: Write Table-Driven Tests (RED)
|
|
58
|
+
|
|
59
|
+
```go
|
|
60
|
+
// validator/email_test.go
|
|
61
|
+
package validator
|
|
62
|
+
|
|
63
|
+
import (
|
|
64
|
+
"testing"
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
func TestValidateEmail(t *testing.T) {
|
|
68
|
+
tests := []struct {
|
|
69
|
+
name string
|
|
70
|
+
email string
|
|
71
|
+
wantErr bool
|
|
72
|
+
}{
|
|
73
|
+
// Valid emails
|
|
74
|
+
{"simple email", "user@example.com", false},
|
|
75
|
+
{"with subdomain", "user@mail.example.com", false},
|
|
76
|
+
{"with plus", "user+tag@example.com", false},
|
|
77
|
+
{"with dots", "first.last@example.com", false},
|
|
78
|
+
|
|
79
|
+
// Invalid emails
|
|
80
|
+
{"empty string", "", true},
|
|
81
|
+
{"no at sign", "userexample.com", true},
|
|
82
|
+
{"no domain", "user@", true},
|
|
83
|
+
{"no local part", "@example.com", true},
|
|
84
|
+
{"double at", "user@@example.com", true},
|
|
85
|
+
{"spaces", "user @example.com", true},
|
|
86
|
+
{"no tld", "user@example", true},
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
for _, tt := range tests {
|
|
90
|
+
t.Run(tt.name, func(t *testing.T) {
|
|
91
|
+
err := ValidateEmail(tt.email)
|
|
92
|
+
if tt.wantErr && err == nil {
|
|
93
|
+
t.Errorf("ValidateEmail(%q) = nil; want error", tt.email)
|
|
94
|
+
}
|
|
95
|
+
if !tt.wantErr && err != nil {
|
|
96
|
+
t.Errorf("ValidateEmail(%q) = %v; want nil", tt.email, err)
|
|
97
|
+
}
|
|
98
|
+
})
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## Step 3: Run Tests - Verify FAIL
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
$ go test ./validator/...
|
|
107
|
+
|
|
108
|
+
--- FAIL: TestValidateEmail (0.00s)
|
|
109
|
+
--- FAIL: TestValidateEmail/simple_email (0.00s)
|
|
110
|
+
panic: not implemented
|
|
111
|
+
|
|
112
|
+
FAIL
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
✓ Tests fail as expected (panic).
|
|
116
|
+
|
|
117
|
+
## Step 4: Implement Minimal Code (GREEN)
|
|
118
|
+
|
|
119
|
+
```go
|
|
120
|
+
// validator/email.go
|
|
121
|
+
package validator
|
|
122
|
+
|
|
123
|
+
import (
|
|
124
|
+
"errors"
|
|
125
|
+
"regexp"
|
|
126
|
+
)
|
|
127
|
+
|
|
128
|
+
var emailRegex = regexp.MustCompile(`^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$`)
|
|
129
|
+
|
|
130
|
+
var (
|
|
131
|
+
ErrEmailEmpty = errors.New("email cannot be empty")
|
|
132
|
+
ErrEmailInvalid = errors.New("email format is invalid")
|
|
133
|
+
)
|
|
134
|
+
|
|
135
|
+
func ValidateEmail(email string) error {
|
|
136
|
+
if email == "" {
|
|
137
|
+
return ErrEmailEmpty
|
|
138
|
+
}
|
|
139
|
+
if !emailRegex.MatchString(email) {
|
|
140
|
+
return ErrEmailInvalid
|
|
141
|
+
}
|
|
142
|
+
return nil
|
|
143
|
+
}
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## Step 5: Run Tests - Verify PASS
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
$ go test ./validator/...
|
|
150
|
+
|
|
151
|
+
PASS
|
|
152
|
+
ok project/validator 0.003s
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
✓ All tests passing!
|
|
156
|
+
|
|
157
|
+
## Step 6: Check Coverage
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
$ go test -cover ./validator/...
|
|
161
|
+
|
|
162
|
+
PASS
|
|
163
|
+
coverage: 100.0% of statements
|
|
164
|
+
ok project/validator 0.003s
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
✓ Coverage: 100%
|
|
168
|
+
|
|
169
|
+
## TDD Complete!
|
|
170
|
+
````
|
|
171
|
+
|
|
172
|
+
## Test Patterns
|
|
173
|
+
|
|
174
|
+
### Table-Driven Tests
|
|
175
|
+
```go
|
|
176
|
+
tests := []struct {
|
|
177
|
+
name string
|
|
178
|
+
input InputType
|
|
179
|
+
want OutputType
|
|
180
|
+
wantErr bool
|
|
181
|
+
}{
|
|
182
|
+
{"case 1", input1, want1, false},
|
|
183
|
+
{"case 2", input2, want2, true},
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
for _, tt := range tests {
|
|
187
|
+
t.Run(tt.name, func(t *testing.T) {
|
|
188
|
+
got, err := Function(tt.input)
|
|
189
|
+
// assertions
|
|
190
|
+
})
|
|
191
|
+
}
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### Parallel Tests
|
|
195
|
+
```go
|
|
196
|
+
for _, tt := range tests {
|
|
197
|
+
tt := tt // Capture
|
|
198
|
+
t.Run(tt.name, func(t *testing.T) {
|
|
199
|
+
t.Parallel()
|
|
200
|
+
// test body
|
|
201
|
+
})
|
|
202
|
+
}
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
### Test Helpers
|
|
206
|
+
```go
|
|
207
|
+
func setupTestDB(t *testing.T) *sql.DB {
|
|
208
|
+
t.Helper()
|
|
209
|
+
db := createDB()
|
|
210
|
+
t.Cleanup(func() { db.Close() })
|
|
211
|
+
return db
|
|
212
|
+
}
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
## Coverage Commands
|
|
216
|
+
|
|
217
|
+
```bash
|
|
218
|
+
# Basic coverage
|
|
219
|
+
go test -cover ./...
|
|
220
|
+
|
|
221
|
+
# Coverage profile
|
|
222
|
+
go test -coverprofile=coverage.out ./...
|
|
223
|
+
|
|
224
|
+
# View in browser
|
|
225
|
+
go tool cover -html=coverage.out
|
|
226
|
+
|
|
227
|
+
# Coverage by function
|
|
228
|
+
go tool cover -func=coverage.out
|
|
229
|
+
|
|
230
|
+
# With race detection
|
|
231
|
+
go test -race -cover ./...
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
## Coverage Targets
|
|
235
|
+
|
|
236
|
+
| Code Type | Target |
|
|
237
|
+
|-----------|--------|
|
|
238
|
+
| Critical business logic | 100% |
|
|
239
|
+
| Public APIs | 90%+ |
|
|
240
|
+
| General code | 80%+ |
|
|
241
|
+
| Generated code | Exclude |
|
|
242
|
+
|
|
243
|
+
## TDD Best Practices
|
|
244
|
+
|
|
245
|
+
**DO:**
|
|
246
|
+
- Write test FIRST, before any implementation
|
|
247
|
+
- Run tests after each change
|
|
248
|
+
- Use table-driven tests for comprehensive coverage
|
|
249
|
+
- Test behavior, not implementation details
|
|
250
|
+
- Include edge cases (empty, nil, max values)
|
|
251
|
+
|
|
252
|
+
**DON'T:**
|
|
253
|
+
- Write implementation before tests
|
|
254
|
+
- Skip the RED phase
|
|
255
|
+
- Test private functions directly
|
|
256
|
+
- Use `time.Sleep` in tests
|
|
257
|
+
- Ignore flaky tests
|
|
258
|
+
|
|
259
|
+
## Related Commands
|
|
260
|
+
|
|
261
|
+
- `/go-build` - Fix build errors
|
|
262
|
+
- `/go-review` - Review code after implementation
|
|
263
|
+
- `/verify` - Run full verification loop
|
|
264
|
+
|
|
265
|
+
## Related
|
|
266
|
+
|
|
267
|
+
- Skill: `skills/golang-testing/`
|
|
268
|
+
- Skill: `skills/tdd-workflow/`
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Fix Gradle build errors for Android and KMP projects
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Gradle Build Fix
|
|
6
|
+
|
|
7
|
+
Incrementally fix Gradle build and compilation errors for Android and Kotlin Multiplatform projects.
|
|
8
|
+
|
|
9
|
+
## Step 1: Detect Build Configuration
|
|
10
|
+
|
|
11
|
+
Identify the project type and run the appropriate build:
|
|
12
|
+
|
|
13
|
+
| Indicator | Build Command |
|
|
14
|
+
|-----------|---------------|
|
|
15
|
+
| `build.gradle.kts` + `composeApp/` (KMP) | `./gradlew composeApp:compileKotlinMetadata 2>&1` |
|
|
16
|
+
| `build.gradle.kts` + `app/` (Android) | `./gradlew app:compileDebugKotlin 2>&1` |
|
|
17
|
+
| `settings.gradle.kts` with modules | `./gradlew assemble 2>&1` |
|
|
18
|
+
| Detekt configured | `./gradlew detekt 2>&1` |
|
|
19
|
+
|
|
20
|
+
Also check `gradle.properties` and `local.properties` for configuration.
|
|
21
|
+
|
|
22
|
+
## Step 2: Parse and Group Errors
|
|
23
|
+
|
|
24
|
+
1. Run the build command and capture output
|
|
25
|
+
2. Separate Kotlin compilation errors from Gradle configuration errors
|
|
26
|
+
3. Group by module and file path
|
|
27
|
+
4. Sort: configuration errors first, then compilation errors by dependency order
|
|
28
|
+
|
|
29
|
+
## Step 3: Fix Loop
|
|
30
|
+
|
|
31
|
+
For each error:
|
|
32
|
+
|
|
33
|
+
1. **Read the file** — Full context around the error line
|
|
34
|
+
2. **Diagnose** — Common categories:
|
|
35
|
+
- Missing import or unresolved reference
|
|
36
|
+
- Type mismatch or incompatible types
|
|
37
|
+
- Missing dependency in `build.gradle.kts`
|
|
38
|
+
- Expect/actual mismatch (KMP)
|
|
39
|
+
- Compose compiler error
|
|
40
|
+
3. **Fix minimally** — Smallest change that resolves the error
|
|
41
|
+
4. **Re-run build** — Verify fix and check for new errors
|
|
42
|
+
5. **Continue** — Move to next error
|
|
43
|
+
|
|
44
|
+
## Step 4: Guardrails
|
|
45
|
+
|
|
46
|
+
Stop and ask the user if:
|
|
47
|
+
- Fix introduces more errors than it resolves
|
|
48
|
+
- Same error persists after 3 attempts
|
|
49
|
+
- Error requires adding new dependencies or changing module structure
|
|
50
|
+
- Gradle sync itself fails (configuration-phase error)
|
|
51
|
+
- Error is in generated code (Room, SQLDelight, KSP)
|
|
52
|
+
|
|
53
|
+
## Step 5: Summary
|
|
54
|
+
|
|
55
|
+
Report:
|
|
56
|
+
- Errors fixed (module, file, description)
|
|
57
|
+
- Errors remaining
|
|
58
|
+
- New errors introduced (should be zero)
|
|
59
|
+
- Suggested next steps
|
|
60
|
+
|
|
61
|
+
## Common Gradle/KMP Fixes
|
|
62
|
+
|
|
63
|
+
| Error | Fix |
|
|
64
|
+
|-------|-----|
|
|
65
|
+
| Unresolved reference in `commonMain` | Check if the dependency is in `commonMain.dependencies {}` |
|
|
66
|
+
| Expect declaration without actual | Add `actual` implementation in each platform source set |
|
|
67
|
+
| Compose compiler version mismatch | Align Kotlin and Compose compiler versions in `libs.versions.toml` |
|
|
68
|
+
| Duplicate class | Check for conflicting dependencies with `./gradlew dependencies` |
|
|
69
|
+
| KSP error | Run `./gradlew kspCommonMainKotlinMetadata` to regenerate |
|
|
70
|
+
| Configuration cache issue | Check for non-serializable task inputs |
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Harness Audit Command
|
|
2
|
+
|
|
3
|
+
Run a deterministic repository harness audit and return a prioritized scorecard.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
`/harness-audit [scope] [--format text|json] [--root path]`
|
|
8
|
+
|
|
9
|
+
- `scope` (optional): `repo` (default), `hooks`, `skills`, `commands`, `agents`
|
|
10
|
+
- `--format`: output style (`text` default, `json` for automation)
|
|
11
|
+
- `--root`: audit a specific path instead of the current working directory
|
|
12
|
+
|
|
13
|
+
## Deterministic Engine
|
|
14
|
+
|
|
15
|
+
Always run:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
node scripts/harness-audit.js <scope> --format <text|json> [--root <path>]
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
This script is the source of truth for scoring and checks. Do not invent additional dimensions or ad-hoc points.
|
|
22
|
+
|
|
23
|
+
Rubric version: `2026-03-30`.
|
|
24
|
+
|
|
25
|
+
The script computes 7 fixed categories (`0-10` normalized each):
|
|
26
|
+
|
|
27
|
+
1. Tool Coverage
|
|
28
|
+
2. Context Efficiency
|
|
29
|
+
3. Quality Gates
|
|
30
|
+
4. Memory Persistence
|
|
31
|
+
5. Eval Coverage
|
|
32
|
+
6. Security Guardrails
|
|
33
|
+
7. Cost Efficiency
|
|
34
|
+
|
|
35
|
+
Scores are derived from explicit file/rule checks and are reproducible for the same commit.
|
|
36
|
+
The script audits the current working directory by default and auto-detects whether the target is the ECC repo itself or a consumer project using ECC.
|
|
37
|
+
|
|
38
|
+
## Output Contract
|
|
39
|
+
|
|
40
|
+
Return:
|
|
41
|
+
|
|
42
|
+
1. `overall_score` out of `max_score` (70 for `repo`; smaller for scoped audits)
|
|
43
|
+
2. Category scores and concrete findings
|
|
44
|
+
3. Failed checks with exact file paths
|
|
45
|
+
4. Top 3 actions from the deterministic output (`top_actions`)
|
|
46
|
+
5. Suggested ECC skills to apply next
|
|
47
|
+
|
|
48
|
+
## Checklist
|
|
49
|
+
|
|
50
|
+
- Use script output directly; do not rescore manually.
|
|
51
|
+
- If `--format json` is requested, return the script JSON unchanged.
|
|
52
|
+
- If text is requested, summarize failing checks and top actions.
|
|
53
|
+
- Include exact file paths from `checks[]` and `top_actions[]`.
|
|
54
|
+
|
|
55
|
+
## Example Result
|
|
56
|
+
|
|
57
|
+
```text
|
|
58
|
+
Harness Audit (repo): 66/70
|
|
59
|
+
- Tool Coverage: 10/10 (10/10 pts)
|
|
60
|
+
- Context Efficiency: 9/10 (9/10 pts)
|
|
61
|
+
- Quality Gates: 10/10 (10/10 pts)
|
|
62
|
+
|
|
63
|
+
Top 3 Actions:
|
|
64
|
+
1) [Security Guardrails] Add prompt/tool preflight security guards in hooks/hooks.json. (hooks/hooks.json)
|
|
65
|
+
2) [Tool Coverage] Sync commands/harness-audit.md and .opencode/commands/harness-audit.md. (.opencode/commands/harness-audit.md)
|
|
66
|
+
3) [Eval Coverage] Increase automated test coverage across scripts/hooks/lib. (tests/)
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Arguments
|
|
70
|
+
|
|
71
|
+
$ARGUMENTS:
|
|
72
|
+
- `repo|hooks|skills|commands|agents` (optional scope)
|
|
73
|
+
- `--format text|json` (optional output format)
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Enable or disable hookify rules interactively
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Interactively enable or disable existing hookify rules.
|
|
6
|
+
|
|
7
|
+
## Steps
|
|
8
|
+
|
|
9
|
+
1. Find all `.claude/hookify.*.local.md` files
|
|
10
|
+
2. Read the current state of each rule
|
|
11
|
+
3. Present the list with current enabled / disabled status
|
|
12
|
+
4. Ask which rules to toggle
|
|
13
|
+
5. Update the `enabled:` field in the selected rule files
|
|
14
|
+
6. Confirm the changes
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Get help with the hookify system
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Display comprehensive hookify documentation.
|
|
6
|
+
|
|
7
|
+
## Hook System Overview
|
|
8
|
+
|
|
9
|
+
Hookify creates rule files that integrate with Claude Code's hook system to prevent unwanted behaviors.
|
|
10
|
+
|
|
11
|
+
### Event Types
|
|
12
|
+
|
|
13
|
+
- `bash`: triggers on Bash tool use and matches command patterns
|
|
14
|
+
- `file`: triggers on Write/Edit tool use and matches file paths
|
|
15
|
+
- `stop`: triggers when a session ends
|
|
16
|
+
- `prompt`: triggers on user message submission and matches input patterns
|
|
17
|
+
- `all`: triggers on all events
|
|
18
|
+
|
|
19
|
+
### Rule File Format
|
|
20
|
+
|
|
21
|
+
Files are stored as `.claude/hookify.{name}.local.md`:
|
|
22
|
+
|
|
23
|
+
```yaml
|
|
24
|
+
---
|
|
25
|
+
name: descriptive-name
|
|
26
|
+
enabled: true
|
|
27
|
+
event: bash|file|stop|prompt|all
|
|
28
|
+
action: block|warn
|
|
29
|
+
pattern: "regex pattern to match"
|
|
30
|
+
---
|
|
31
|
+
Message to display when rule triggers.
|
|
32
|
+
Supports multiple lines.
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Commands
|
|
36
|
+
|
|
37
|
+
- `/hookify [description]` creates new rules and auto-analyzes the conversation when no description is given
|
|
38
|
+
- `/hookify-list` lists configured rules
|
|
39
|
+
- `/hookify-configure` toggles rules on or off
|
|
40
|
+
|
|
41
|
+
### Pattern Tips
|
|
42
|
+
|
|
43
|
+
- use regex syntax
|
|
44
|
+
- for `bash`, match against the full command string
|
|
45
|
+
- for `file`, match against the file path
|
|
46
|
+
- test patterns before deploying
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: List all configured hookify rules
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Find and display all hookify rules in a formatted table.
|
|
6
|
+
|
|
7
|
+
## Steps
|
|
8
|
+
|
|
9
|
+
1. Find all `.claude/hookify.*.local.md` files
|
|
10
|
+
2. Read each file's frontmatter:
|
|
11
|
+
- `name`
|
|
12
|
+
- `enabled`
|
|
13
|
+
- `event`
|
|
14
|
+
- `action`
|
|
15
|
+
- `pattern`
|
|
16
|
+
3. Display them as a table:
|
|
17
|
+
|
|
18
|
+
| Rule | Enabled | Event | Pattern | File |
|
|
19
|
+
|------|---------|-------|---------|------|
|
|
20
|
+
|
|
21
|
+
4. Show the rule count and remind the user that `/hookify-configure` can change state later.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Create hooks to prevent unwanted behaviors from conversation analysis or explicit instructions
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
Create hook rules to prevent unwanted Claude Code behaviors by analyzing conversation patterns or explicit user instructions.
|
|
6
|
+
|
|
7
|
+
## Usage
|
|
8
|
+
|
|
9
|
+
`/hookify [description of behavior to prevent]`
|
|
10
|
+
|
|
11
|
+
If no arguments are provided, analyze the current conversation to find behaviors worth preventing.
|
|
12
|
+
|
|
13
|
+
## Workflow
|
|
14
|
+
|
|
15
|
+
### Step 1: Gather Behavior Info
|
|
16
|
+
|
|
17
|
+
- With arguments: parse the user's description of the unwanted behavior
|
|
18
|
+
- Without arguments: use the `conversation-analyzer` agent to find:
|
|
19
|
+
- explicit corrections
|
|
20
|
+
- frustrated reactions to repeated mistakes
|
|
21
|
+
- reverted changes
|
|
22
|
+
- repeated similar issues
|
|
23
|
+
|
|
24
|
+
### Step 2: Present Findings
|
|
25
|
+
|
|
26
|
+
Show the user:
|
|
27
|
+
|
|
28
|
+
- behavior description
|
|
29
|
+
- proposed event type
|
|
30
|
+
- proposed pattern or matcher
|
|
31
|
+
- proposed action
|
|
32
|
+
|
|
33
|
+
### Step 3: Generate Rule Files
|
|
34
|
+
|
|
35
|
+
For each approved rule, create a file at `.claude/hookify.{name}.local.md`:
|
|
36
|
+
|
|
37
|
+
```yaml
|
|
38
|
+
---
|
|
39
|
+
name: rule-name
|
|
40
|
+
enabled: true
|
|
41
|
+
event: bash|file|stop|prompt|all
|
|
42
|
+
action: block|warn
|
|
43
|
+
pattern: "regex pattern"
|
|
44
|
+
---
|
|
45
|
+
Message shown when rule triggers.
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### Step 4: Confirm
|
|
49
|
+
|
|
50
|
+
Report created rules and how to manage them with `/hookify-list` and `/hookify-configure`.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: instinct-export
|
|
3
|
+
description: Export instincts from project/global scope to a file
|
|
4
|
+
command: /instinct-export
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Instinct Export Command
|
|
8
|
+
|
|
9
|
+
Exports instincts to a shareable format. Perfect for:
|
|
10
|
+
- Sharing with teammates
|
|
11
|
+
- Transferring to a new machine
|
|
12
|
+
- Contributing to project conventions
|
|
13
|
+
|
|
14
|
+
## Usage
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
/instinct-export # Export all personal instincts
|
|
18
|
+
/instinct-export --domain testing # Export only testing instincts
|
|
19
|
+
/instinct-export --min-confidence 0.7 # Only export high-confidence instincts
|
|
20
|
+
/instinct-export --output team-instincts.yaml
|
|
21
|
+
/instinct-export --scope project --output project-instincts.yaml
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## What to Do
|
|
25
|
+
|
|
26
|
+
1. Detect current project context
|
|
27
|
+
2. Load instincts by selected scope:
|
|
28
|
+
- `project`: current project only
|
|
29
|
+
- `global`: global only
|
|
30
|
+
- `all`: project + global merged (default)
|
|
31
|
+
3. Apply filters (`--domain`, `--min-confidence`)
|
|
32
|
+
4. Write YAML-style export to file (or stdout if no output path provided)
|
|
33
|
+
|
|
34
|
+
## Output Format
|
|
35
|
+
|
|
36
|
+
Creates a YAML file:
|
|
37
|
+
|
|
38
|
+
```yaml
|
|
39
|
+
# Instincts Export
|
|
40
|
+
# Generated: 2025-01-22
|
|
41
|
+
# Source: personal
|
|
42
|
+
# Count: 12 instincts
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
id: prefer-functional-style
|
|
46
|
+
trigger: "when writing new functions"
|
|
47
|
+
confidence: 0.8
|
|
48
|
+
domain: code-style
|
|
49
|
+
source: session-observation
|
|
50
|
+
scope: project
|
|
51
|
+
project_id: a1b2c3d4e5f6
|
|
52
|
+
project_name: my-app
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
# Prefer Functional Style
|
|
56
|
+
|
|
57
|
+
## Action
|
|
58
|
+
Use functional patterns over classes.
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Flags
|
|
62
|
+
|
|
63
|
+
- `--domain <name>`: Export only specified domain
|
|
64
|
+
- `--min-confidence <n>`: Minimum confidence threshold
|
|
65
|
+
- `--output <file>`: Output file path (prints to stdout when omitted)
|
|
66
|
+
- `--scope <project|global|all>`: Export scope (default: `all`)
|