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,251 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Enforce TDD workflow for C++. Write GoogleTest tests first, then implement. Verify coverage with gcov/lcov.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# C++ TDD Command
|
|
6
|
+
|
|
7
|
+
This command enforces test-driven development methodology for C++ code using GoogleTest/GoogleMock with CMake/CTest.
|
|
8
|
+
|
|
9
|
+
## What This Command Does
|
|
10
|
+
|
|
11
|
+
1. **Define Interfaces**: Scaffold class/function signatures first
|
|
12
|
+
2. **Write Tests**: Create comprehensive GoogleTest 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 `/cpp-test` when:
|
|
21
|
+
- Implementing new C++ functions or classes
|
|
22
|
+
- Adding test coverage to existing code
|
|
23
|
+
- Fixing bugs (write failing test first)
|
|
24
|
+
- Building critical business logic
|
|
25
|
+
- Learning TDD workflow in C++
|
|
26
|
+
|
|
27
|
+
## TDD Cycle
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
RED → Write failing GoogleTest 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: /cpp-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
|
+
```cpp
|
|
47
|
+
// validator/email.hpp
|
|
48
|
+
#pragma once
|
|
49
|
+
#include <string>
|
|
50
|
+
#include <expected>
|
|
51
|
+
|
|
52
|
+
enum class EmailError {
|
|
53
|
+
Empty,
|
|
54
|
+
InvalidFormat
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
std::expected<void, EmailError> validate_email(const std::string& email);
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Step 2: Write Tests (RED)
|
|
61
|
+
|
|
62
|
+
```cpp
|
|
63
|
+
// validator/email_test.cpp
|
|
64
|
+
#include <gtest/gtest.h>
|
|
65
|
+
#include "email.hpp"
|
|
66
|
+
|
|
67
|
+
TEST(ValidateEmail, AcceptsSimpleEmail) {
|
|
68
|
+
auto result = validate_email("user@example.com");
|
|
69
|
+
EXPECT_TRUE(result.has_value());
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
TEST(ValidateEmail, AcceptsSubdomain) {
|
|
73
|
+
EXPECT_TRUE(validate_email("user@mail.example.com").has_value());
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
TEST(ValidateEmail, AcceptsPlus) {
|
|
77
|
+
EXPECT_TRUE(validate_email("user+tag@example.com").has_value());
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
TEST(ValidateEmail, RejectsEmpty) {
|
|
81
|
+
auto result = validate_email("");
|
|
82
|
+
ASSERT_FALSE(result.has_value());
|
|
83
|
+
EXPECT_EQ(result.error(), EmailError::Empty);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
TEST(ValidateEmail, RejectsNoAtSign) {
|
|
87
|
+
EXPECT_FALSE(validate_email("userexample.com").has_value());
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
TEST(ValidateEmail, RejectsNoDomain) {
|
|
91
|
+
EXPECT_FALSE(validate_email("user@").has_value());
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
TEST(ValidateEmail, RejectsNoLocalPart) {
|
|
95
|
+
EXPECT_FALSE(validate_email("@example.com").has_value());
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Step 3: Run Tests - Verify FAIL
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
$ cmake --build build && ctest --test-dir build --output-on-failure
|
|
103
|
+
|
|
104
|
+
1/1 Test #1: email_validator_test .....***Failed
|
|
105
|
+
--- undefined reference to `validate_email`
|
|
106
|
+
|
|
107
|
+
FAIL
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
✓ Tests fail as expected (unimplemented).
|
|
111
|
+
|
|
112
|
+
## Step 4: Implement Minimal Code (GREEN)
|
|
113
|
+
|
|
114
|
+
```cpp
|
|
115
|
+
// validator/email.cpp
|
|
116
|
+
#include "email.hpp"
|
|
117
|
+
#include <regex>
|
|
118
|
+
|
|
119
|
+
std::expected<void, EmailError> validate_email(const std::string& email) {
|
|
120
|
+
if (email.empty()) {
|
|
121
|
+
return std::unexpected(EmailError::Empty);
|
|
122
|
+
}
|
|
123
|
+
static const std::regex pattern(R"([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,})");
|
|
124
|
+
if (!std::regex_match(email, pattern)) {
|
|
125
|
+
return std::unexpected(EmailError::InvalidFormat);
|
|
126
|
+
}
|
|
127
|
+
return {};
|
|
128
|
+
}
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## Step 5: Run Tests - Verify PASS
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
$ cmake --build build && ctest --test-dir build --output-on-failure
|
|
135
|
+
|
|
136
|
+
1/1 Test #1: email_validator_test ..... Passed 0.01 sec
|
|
137
|
+
|
|
138
|
+
100% tests passed.
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
✓ All tests passing!
|
|
142
|
+
|
|
143
|
+
## Step 6: Check Coverage
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
$ cmake -DCMAKE_CXX_FLAGS="--coverage" -B build && cmake --build build
|
|
147
|
+
$ ctest --test-dir build
|
|
148
|
+
$ lcov --capture --directory build --output-file coverage.info
|
|
149
|
+
$ lcov --list coverage.info
|
|
150
|
+
|
|
151
|
+
validator/email.cpp | 100%
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
✓ Coverage: 100%
|
|
155
|
+
|
|
156
|
+
## TDD Complete!
|
|
157
|
+
````
|
|
158
|
+
|
|
159
|
+
## Test Patterns
|
|
160
|
+
|
|
161
|
+
### Basic Tests
|
|
162
|
+
```cpp
|
|
163
|
+
TEST(SuiteName, TestName) {
|
|
164
|
+
EXPECT_EQ(add(2, 3), 5);
|
|
165
|
+
EXPECT_NE(result, nullptr);
|
|
166
|
+
EXPECT_TRUE(is_valid);
|
|
167
|
+
EXPECT_THROW(func(), std::invalid_argument);
|
|
168
|
+
}
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### Fixtures
|
|
172
|
+
```cpp
|
|
173
|
+
class DatabaseTest : public ::testing::Test {
|
|
174
|
+
protected:
|
|
175
|
+
void SetUp() override { db_ = create_test_db(); }
|
|
176
|
+
void TearDown() override { db_.reset(); }
|
|
177
|
+
std::unique_ptr<Database> db_;
|
|
178
|
+
};
|
|
179
|
+
|
|
180
|
+
TEST_F(DatabaseTest, InsertsRecord) {
|
|
181
|
+
db_->insert("key", "value");
|
|
182
|
+
EXPECT_EQ(db_->get("key"), "value");
|
|
183
|
+
}
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### Parameterized Tests
|
|
187
|
+
```cpp
|
|
188
|
+
class PrimeTest : public ::testing::TestWithParam<std::pair<int, bool>> {};
|
|
189
|
+
|
|
190
|
+
TEST_P(PrimeTest, ChecksPrimality) {
|
|
191
|
+
auto [input, expected] = GetParam();
|
|
192
|
+
EXPECT_EQ(is_prime(input), expected);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
INSTANTIATE_TEST_SUITE_P(Primes, PrimeTest, ::testing::Values(
|
|
196
|
+
std::make_pair(2, true),
|
|
197
|
+
std::make_pair(4, false),
|
|
198
|
+
std::make_pair(7, true)
|
|
199
|
+
));
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
## Coverage Commands
|
|
203
|
+
|
|
204
|
+
```bash
|
|
205
|
+
# Build with coverage
|
|
206
|
+
cmake -DCMAKE_CXX_FLAGS="--coverage" -DCMAKE_EXE_LINKER_FLAGS="--coverage" -B build
|
|
207
|
+
|
|
208
|
+
# Run tests
|
|
209
|
+
cmake --build build && ctest --test-dir build
|
|
210
|
+
|
|
211
|
+
# Generate coverage report
|
|
212
|
+
lcov --capture --directory build --output-file coverage.info
|
|
213
|
+
lcov --remove coverage.info '/usr/*' --output-file coverage.info
|
|
214
|
+
genhtml coverage.info --output-directory coverage_html
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
## Coverage Targets
|
|
218
|
+
|
|
219
|
+
| Code Type | Target |
|
|
220
|
+
|-----------|--------|
|
|
221
|
+
| Critical business logic | 100% |
|
|
222
|
+
| Public APIs | 90%+ |
|
|
223
|
+
| General code | 80%+ |
|
|
224
|
+
| Generated code | Exclude |
|
|
225
|
+
|
|
226
|
+
## TDD Best Practices
|
|
227
|
+
|
|
228
|
+
**DO:**
|
|
229
|
+
- Write test FIRST, before any implementation
|
|
230
|
+
- Run tests after each change
|
|
231
|
+
- Use `EXPECT_*` (continues) over `ASSERT_*` (stops) when appropriate
|
|
232
|
+
- Test behavior, not implementation details
|
|
233
|
+
- Include edge cases (empty, null, max values, boundary conditions)
|
|
234
|
+
|
|
235
|
+
**DON'T:**
|
|
236
|
+
- Write implementation before tests
|
|
237
|
+
- Skip the RED phase
|
|
238
|
+
- Test private methods directly (test through public API)
|
|
239
|
+
- Use `sleep` in tests
|
|
240
|
+
- Ignore flaky tests
|
|
241
|
+
|
|
242
|
+
## Related Commands
|
|
243
|
+
|
|
244
|
+
- `/cpp-build` - Fix build errors
|
|
245
|
+
- `/cpp-review` - Review code after implementation
|
|
246
|
+
- `/verify` - Run full verification loop
|
|
247
|
+
|
|
248
|
+
## Related
|
|
249
|
+
|
|
250
|
+
- Skill: `skills/cpp-testing/`
|
|
251
|
+
- Skill: `skills/tdd-workflow/`
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Legacy slash-entry shim for the claude-devfleet skill. Prefer the skill directly.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# DevFleet (Legacy Shim)
|
|
6
|
+
|
|
7
|
+
Use this only if you still call `/devfleet`. The maintained workflow lives in `skills/claude-devfleet/SKILL.md`.
|
|
8
|
+
|
|
9
|
+
## Canonical Surface
|
|
10
|
+
|
|
11
|
+
- Prefer the `claude-devfleet` skill directly.
|
|
12
|
+
- Keep this file only as a compatibility entry point while command-first usage is retired.
|
|
13
|
+
|
|
14
|
+
## Arguments
|
|
15
|
+
|
|
16
|
+
`$ARGUMENTS`
|
|
17
|
+
|
|
18
|
+
## Delegation
|
|
19
|
+
|
|
20
|
+
Apply the `claude-devfleet` skill.
|
|
21
|
+
- Plan from the user's description, show the DAG, and get approval before dispatch unless the user already said to proceed.
|
|
22
|
+
- Prefer polling status over blocking waits for long missions.
|
|
23
|
+
- Report mission IDs, files changed, failures, and next steps from structured mission reports.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Legacy slash-entry shim for the documentation-lookup skill. Prefer the skill directly.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Docs Command (Legacy Shim)
|
|
6
|
+
|
|
7
|
+
Use this only if you still reach for `/docs`. The maintained workflow lives in `skills/documentation-lookup/SKILL.md`.
|
|
8
|
+
|
|
9
|
+
## Canonical Surface
|
|
10
|
+
|
|
11
|
+
- Prefer the `documentation-lookup` skill directly.
|
|
12
|
+
- Keep this file only as a compatibility entry point.
|
|
13
|
+
|
|
14
|
+
## Arguments
|
|
15
|
+
|
|
16
|
+
`$ARGUMENTS`
|
|
17
|
+
|
|
18
|
+
## Delegation
|
|
19
|
+
|
|
20
|
+
Apply the `documentation-lookup` skill.
|
|
21
|
+
- If the library or the question is missing, ask for the missing part.
|
|
22
|
+
- Use live documentation through Context7 instead of training data.
|
|
23
|
+
- Return only the current answer and the minimum code/example surface needed.
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Legacy slash-entry shim for the e2e-testing skill. Prefer the skill directly.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# E2E Command (Legacy Shim)
|
|
6
|
+
|
|
7
|
+
Use this only if you still invoke `/e2e`. The maintained workflow lives in `skills/e2e-testing/SKILL.md`.
|
|
8
|
+
|
|
9
|
+
## Canonical Surface
|
|
10
|
+
|
|
11
|
+
- Prefer the `e2e-testing` skill directly.
|
|
12
|
+
- Keep this file only as a compatibility entry point.
|
|
13
|
+
|
|
14
|
+
## Arguments
|
|
15
|
+
|
|
16
|
+
`$ARGUMENTS`
|
|
17
|
+
|
|
18
|
+
## Delegation
|
|
19
|
+
|
|
20
|
+
Apply the `e2e-testing` skill.
|
|
21
|
+
- Generate or update Playwright coverage for the requested user flow.
|
|
22
|
+
- Run only the relevant tests unless the user explicitly asked for the entire suite.
|
|
23
|
+
- Capture the usual artifacts and report failures, flake risk, and next fixes without duplicating the full skill body here.
|
|
24
|
+
await marketsPage.searchMarkets('xyznonexistentmarket123456')
|
|
25
|
+
|
|
26
|
+
// Verify empty state
|
|
27
|
+
await expect(page.locator('[data-testid="no-results"]')).toBeVisible()
|
|
28
|
+
await expect(page.locator('[data-testid="no-results"]')).toContainText(
|
|
29
|
+
/no.*results|no.*markets/i
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
const marketCount = await marketsPage.marketCards.count()
|
|
33
|
+
expect(marketCount).toBe(0)
|
|
34
|
+
})
|
|
35
|
+
|
|
36
|
+
test('can clear search and see all markets again', async ({ page }) => {
|
|
37
|
+
const marketsPage = new MarketsPage(page)
|
|
38
|
+
await marketsPage.goto()
|
|
39
|
+
|
|
40
|
+
// Initial market count
|
|
41
|
+
const initialCount = await marketsPage.marketCards.count()
|
|
42
|
+
|
|
43
|
+
// Perform search
|
|
44
|
+
await marketsPage.searchMarkets('trump')
|
|
45
|
+
await page.waitForLoadState('networkidle')
|
|
46
|
+
|
|
47
|
+
// Verify filtered results
|
|
48
|
+
const filteredCount = await marketsPage.marketCards.count()
|
|
49
|
+
expect(filteredCount).toBeLessThan(initialCount)
|
|
50
|
+
|
|
51
|
+
// Clear search
|
|
52
|
+
await marketsPage.searchInput.clear()
|
|
53
|
+
await page.waitForLoadState('networkidle')
|
|
54
|
+
|
|
55
|
+
// Verify all markets shown again
|
|
56
|
+
const finalCount = await marketsPage.marketCards.count()
|
|
57
|
+
expect(finalCount).toBe(initialCount)
|
|
58
|
+
})
|
|
59
|
+
})
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Running Tests
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
# Run the generated test
|
|
66
|
+
npx playwright test tests/e2e/markets/search-and-view.spec.ts
|
|
67
|
+
|
|
68
|
+
Running 3 tests using 3 workers
|
|
69
|
+
|
|
70
|
+
✓ [chromium] › search-and-view.spec.ts:5:3 › user can search markets and view details (4.2s)
|
|
71
|
+
✓ [chromium] › search-and-view.spec.ts:52:3 › search with no results shows empty state (1.8s)
|
|
72
|
+
✓ [chromium] › search-and-view.spec.ts:67:3 › can clear search and see all markets again (2.9s)
|
|
73
|
+
|
|
74
|
+
3 passed (9.1s)
|
|
75
|
+
|
|
76
|
+
Artifacts generated:
|
|
77
|
+
- artifacts/search-results.png
|
|
78
|
+
- artifacts/market-details.png
|
|
79
|
+
- playwright-report/index.html
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Test Report
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
╔══════════════════════════════════════════════════════════════╗
|
|
86
|
+
║ E2E Test Results ║
|
|
87
|
+
╠══════════════════════════════════════════════════════════════╣
|
|
88
|
+
║ Status: PASS: ALL TESTS PASSED ║
|
|
89
|
+
║ Total: 3 tests ║
|
|
90
|
+
║ Passed: 3 (100%) ║
|
|
91
|
+
║ Failed: 0 ║
|
|
92
|
+
║ Flaky: 0 ║
|
|
93
|
+
║ Duration: 9.1s ║
|
|
94
|
+
╚══════════════════════════════════════════════════════════════╝
|
|
95
|
+
|
|
96
|
+
Artifacts:
|
|
97
|
+
Screenshots: 2 files
|
|
98
|
+
Videos: 0 files (only on failure)
|
|
99
|
+
Traces: 0 files (only on failure)
|
|
100
|
+
HTML Report: playwright-report/index.html
|
|
101
|
+
|
|
102
|
+
View report: npx playwright show-report
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
PASS: E2E test suite ready for CI/CD integration!
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## Test Artifacts
|
|
109
|
+
|
|
110
|
+
When tests run, the following artifacts are captured:
|
|
111
|
+
|
|
112
|
+
**On All Tests:**
|
|
113
|
+
- HTML Report with timeline and results
|
|
114
|
+
- JUnit XML for CI integration
|
|
115
|
+
|
|
116
|
+
**On Failure Only:**
|
|
117
|
+
- Screenshot of the failing state
|
|
118
|
+
- Video recording of the test
|
|
119
|
+
- Trace file for debugging (step-by-step replay)
|
|
120
|
+
- Network logs
|
|
121
|
+
- Console logs
|
|
122
|
+
|
|
123
|
+
## Viewing Artifacts
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
# View HTML report in browser
|
|
127
|
+
npx playwright show-report
|
|
128
|
+
|
|
129
|
+
# View specific trace file
|
|
130
|
+
npx playwright show-trace artifacts/trace-abc123.zip
|
|
131
|
+
|
|
132
|
+
# Screenshots are saved in artifacts/ directory
|
|
133
|
+
open artifacts/search-results.png
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## Flaky Test Detection
|
|
137
|
+
|
|
138
|
+
If a test fails intermittently:
|
|
139
|
+
|
|
140
|
+
```
|
|
141
|
+
WARNING: FLAKY TEST DETECTED: tests/e2e/markets/trade.spec.ts
|
|
142
|
+
|
|
143
|
+
Test passed 7/10 runs (70% pass rate)
|
|
144
|
+
|
|
145
|
+
Common failure:
|
|
146
|
+
"Timeout waiting for element '[data-testid="confirm-btn"]'"
|
|
147
|
+
|
|
148
|
+
Recommended fixes:
|
|
149
|
+
1. Add explicit wait: await page.waitForSelector('[data-testid="confirm-btn"]')
|
|
150
|
+
2. Increase timeout: { timeout: 10000 }
|
|
151
|
+
3. Check for race conditions in component
|
|
152
|
+
4. Verify element is not hidden by animation
|
|
153
|
+
|
|
154
|
+
Quarantine recommendation: Mark as test.fixme() until fixed
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
## Browser Configuration
|
|
158
|
+
|
|
159
|
+
Tests run on multiple browsers by default:
|
|
160
|
+
- PASS: Chromium (Desktop Chrome)
|
|
161
|
+
- PASS: Firefox (Desktop)
|
|
162
|
+
- PASS: WebKit (Desktop Safari)
|
|
163
|
+
- PASS: Mobile Chrome (optional)
|
|
164
|
+
|
|
165
|
+
Configure in `playwright.config.ts` to adjust browsers.
|
|
166
|
+
|
|
167
|
+
## CI/CD Integration
|
|
168
|
+
|
|
169
|
+
Add to your CI pipeline:
|
|
170
|
+
|
|
171
|
+
```yaml
|
|
172
|
+
# .github/workflows/e2e.yml
|
|
173
|
+
- name: Install Playwright
|
|
174
|
+
run: npx playwright install --with-deps
|
|
175
|
+
|
|
176
|
+
- name: Run E2E tests
|
|
177
|
+
run: npx playwright test
|
|
178
|
+
|
|
179
|
+
- name: Upload artifacts
|
|
180
|
+
if: always()
|
|
181
|
+
uses: actions/upload-artifact@v3
|
|
182
|
+
with:
|
|
183
|
+
name: playwright-report
|
|
184
|
+
path: playwright-report/
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
## PMX-Specific Critical Flows
|
|
188
|
+
|
|
189
|
+
For PMX, prioritize these E2E tests:
|
|
190
|
+
|
|
191
|
+
**CRITICAL (Must Always Pass):**
|
|
192
|
+
1. User can connect wallet
|
|
193
|
+
2. User can browse markets
|
|
194
|
+
3. User can search markets (semantic search)
|
|
195
|
+
4. User can view market details
|
|
196
|
+
5. User can place trade (with test funds)
|
|
197
|
+
6. Market resolves correctly
|
|
198
|
+
7. User can withdraw funds
|
|
199
|
+
|
|
200
|
+
**IMPORTANT:**
|
|
201
|
+
1. Market creation flow
|
|
202
|
+
2. User profile updates
|
|
203
|
+
3. Real-time price updates
|
|
204
|
+
4. Chart rendering
|
|
205
|
+
5. Filter and sort markets
|
|
206
|
+
6. Mobile responsive layout
|
|
207
|
+
|
|
208
|
+
## Best Practices
|
|
209
|
+
|
|
210
|
+
**DO:**
|
|
211
|
+
- PASS: Use Page Object Model for maintainability
|
|
212
|
+
- PASS: Use data-testid attributes for selectors
|
|
213
|
+
- PASS: Wait for API responses, not arbitrary timeouts
|
|
214
|
+
- PASS: Test critical user journeys end-to-end
|
|
215
|
+
- PASS: Run tests before merging to main
|
|
216
|
+
- PASS: Review artifacts when tests fail
|
|
217
|
+
|
|
218
|
+
**DON'T:**
|
|
219
|
+
- FAIL: Use brittle selectors (CSS classes can change)
|
|
220
|
+
- FAIL: Test implementation details
|
|
221
|
+
- FAIL: Run tests against production
|
|
222
|
+
- FAIL: Ignore flaky tests
|
|
223
|
+
- FAIL: Skip artifact review on failures
|
|
224
|
+
- FAIL: Test every edge case with E2E (use unit tests)
|
|
225
|
+
|
|
226
|
+
## Important Notes
|
|
227
|
+
|
|
228
|
+
**CRITICAL for PMX:**
|
|
229
|
+
- E2E tests involving real money MUST run on testnet/staging only
|
|
230
|
+
- Never run trading tests against production
|
|
231
|
+
- Set `test.skip(process.env.NODE_ENV === 'production')` for financial tests
|
|
232
|
+
- Use test wallets with small test funds only
|
|
233
|
+
|
|
234
|
+
## Integration with Other Commands
|
|
235
|
+
|
|
236
|
+
- Use `/plan` to identify critical journeys to test
|
|
237
|
+
- Use `/tdd` for unit tests (faster, more granular)
|
|
238
|
+
- Use `/e2e` for integration and user journey tests
|
|
239
|
+
- Use `/code-review` to verify test quality
|
|
240
|
+
|
|
241
|
+
## Related Agents
|
|
242
|
+
|
|
243
|
+
This command invokes the `e2e-runner` agent provided by ECC.
|
|
244
|
+
|
|
245
|
+
For manual installs, the source file lives at:
|
|
246
|
+
`agents/e2e-runner.md`
|
|
247
|
+
|
|
248
|
+
## Quick Commands
|
|
249
|
+
|
|
250
|
+
```bash
|
|
251
|
+
# Run all E2E tests
|
|
252
|
+
npx playwright test
|
|
253
|
+
|
|
254
|
+
# Run specific test file
|
|
255
|
+
npx playwright test tests/e2e/markets/search.spec.ts
|
|
256
|
+
|
|
257
|
+
# Run in headed mode (see browser)
|
|
258
|
+
npx playwright test --headed
|
|
259
|
+
|
|
260
|
+
# Debug test
|
|
261
|
+
npx playwright test --debug
|
|
262
|
+
|
|
263
|
+
# Generate test code
|
|
264
|
+
npx playwright codegen http://localhost:3000
|
|
265
|
+
|
|
266
|
+
# View report
|
|
267
|
+
npx playwright show-report
|
|
268
|
+
```
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Legacy slash-entry shim for the eval-harness skill. Prefer the skill directly.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Eval Command (Legacy Shim)
|
|
6
|
+
|
|
7
|
+
Use this only if you still invoke `/eval`. The maintained workflow lives in `skills/eval-harness/SKILL.md`.
|
|
8
|
+
|
|
9
|
+
## Canonical Surface
|
|
10
|
+
|
|
11
|
+
- Prefer the `eval-harness` skill directly.
|
|
12
|
+
- Keep this file only as a compatibility entry point.
|
|
13
|
+
|
|
14
|
+
## Arguments
|
|
15
|
+
|
|
16
|
+
`$ARGUMENTS`
|
|
17
|
+
|
|
18
|
+
## Delegation
|
|
19
|
+
|
|
20
|
+
Apply the `eval-harness` skill.
|
|
21
|
+
- Support the same user intents as before: define, check, report, list, and cleanup.
|
|
22
|
+
- Keep evals capability-first, regression-backed, and evidence-based.
|
|
23
|
+
- Use the skill as the canonical evaluator instead of maintaining a separate command-specific playbook.
|