@rubix0270/arboris 1.0.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 +151 -0
- package/cli/manifest.json +323 -0
- package/dist/cli.mjs +376 -0
- package/package.json +81 -0
- package/prisma/skills/accessibility/SKILL.md +147 -0
- package/prisma/skills/agent-architecture-audit/SKILL.md +257 -0
- package/prisma/skills/agent-eval/SKILL.md +146 -0
- package/prisma/skills/agent-harness-construction/SKILL.md +74 -0
- package/prisma/skills/agent-introspection-debugging/SKILL.md +154 -0
- package/prisma/skills/agent-payment-x402/SKILL.md +225 -0
- package/prisma/skills/agent-self-evaluation/SKILL.md +182 -0
- package/prisma/skills/agent-self-evaluation/examples/high-score-example.md +87 -0
- package/prisma/skills/agent-self-evaluation/examples/low-score-example.md +86 -0
- package/prisma/skills/agent-self-evaluation/references/evaluation-criteria.md +71 -0
- package/prisma/skills/agent-self-evaluation/references/hook-integration.md +64 -0
- package/prisma/skills/agent-self-evaluation/scripts/evaluate.py +408 -0
- package/prisma/skills/agent-self-evaluation/templates/evaluation-report.md +86 -0
- package/prisma/skills/agent-sort/SKILL.md +216 -0
- package/prisma/skills/agentic-engineering/SKILL.md +64 -0
- package/prisma/skills/agentic-os/SKILL.md +388 -0
- package/prisma/skills/ai-first-engineering/SKILL.md +52 -0
- package/prisma/skills/ai-regression-testing/SKILL.md +386 -0
- package/prisma/skills/android-clean-architecture/SKILL.md +340 -0
- package/prisma/skills/angular-developer/SKILL.md +155 -0
- package/prisma/skills/angular-developer/references/angular-animations.md +160 -0
- package/prisma/skills/angular-developer/references/angular-aria.md +410 -0
- package/prisma/skills/angular-developer/references/cli.md +86 -0
- package/prisma/skills/angular-developer/references/component-harnesses.md +59 -0
- package/prisma/skills/angular-developer/references/component-styling.md +91 -0
- package/prisma/skills/angular-developer/references/components.md +117 -0
- package/prisma/skills/angular-developer/references/creating-services.md +97 -0
- package/prisma/skills/angular-developer/references/data-resolvers.md +69 -0
- package/prisma/skills/angular-developer/references/define-routes.md +67 -0
- package/prisma/skills/angular-developer/references/defining-providers.md +72 -0
- package/prisma/skills/angular-developer/references/di-fundamentals.md +120 -0
- package/prisma/skills/angular-developer/references/e2e-testing.md +56 -0
- package/prisma/skills/angular-developer/references/effects.md +83 -0
- package/prisma/skills/angular-developer/references/hierarchical-injectors.md +43 -0
- package/prisma/skills/angular-developer/references/host-elements.md +80 -0
- package/prisma/skills/angular-developer/references/injection-context.md +63 -0
- package/prisma/skills/angular-developer/references/inputs.md +101 -0
- package/prisma/skills/angular-developer/references/linked-signal.md +59 -0
- package/prisma/skills/angular-developer/references/loading-strategies.md +61 -0
- package/prisma/skills/angular-developer/references/mcp.md +108 -0
- package/prisma/skills/angular-developer/references/navigate-to-routes.md +69 -0
- package/prisma/skills/angular-developer/references/outputs.md +86 -0
- package/prisma/skills/angular-developer/references/reactive-forms.md +122 -0
- package/prisma/skills/angular-developer/references/rendering-strategies.md +44 -0
- package/prisma/skills/angular-developer/references/resource.md +77 -0
- package/prisma/skills/angular-developer/references/route-animations.md +56 -0
- package/prisma/skills/angular-developer/references/route-guards.md +52 -0
- package/prisma/skills/angular-developer/references/router-lifecycle.md +45 -0
- package/prisma/skills/angular-developer/references/router-testing.md +87 -0
- package/prisma/skills/angular-developer/references/show-routes-with-outlets.md +68 -0
- package/prisma/skills/angular-developer/references/signal-forms.md +795 -0
- package/prisma/skills/angular-developer/references/signals-overview.md +94 -0
- package/prisma/skills/angular-developer/references/tailwind-css.md +69 -0
- package/prisma/skills/angular-developer/references/template-driven-forms.md +114 -0
- package/prisma/skills/angular-developer/references/testing-fundamentals.md +65 -0
- package/prisma/skills/api-connector-builder/SKILL.md +121 -0
- package/prisma/skills/api-design/SKILL.md +524 -0
- package/prisma/skills/architecture-decision-records/SKILL.md +180 -0
- package/prisma/skills/article-writing/SKILL.md +80 -0
- package/prisma/skills/automation-audit-ops/SKILL.md +143 -0
- package/prisma/skills/autonomous-agent-harness/SKILL.md +274 -0
- package/prisma/skills/autonomous-loops/SKILL.md +611 -0
- package/prisma/skills/backend-patterns/SKILL.md +562 -0
- package/prisma/skills/benchmark/SKILL.md +94 -0
- package/prisma/skills/benchmark-methodology/SKILL.md +190 -0
- package/prisma/skills/benchmark-optimization-loop/SKILL.md +70 -0
- package/prisma/skills/blender-motion-state-inspection/SKILL.md +165 -0
- package/prisma/skills/blueprint/SKILL.md +106 -0
- package/prisma/skills/brand-discovery/SKILL.md +145 -0
- package/prisma/skills/brand-discovery/references/10_purpose-why.md +40 -0
- package/prisma/skills/brand-discovery/references/20_positioning.md +44 -0
- package/prisma/skills/brand-discovery/references/30_audience-niche.md +52 -0
- package/prisma/skills/brand-discovery/references/40_personality-archetype.md +57 -0
- package/prisma/skills/brand-discovery/references/50_voice-tone.md +59 -0
- package/prisma/skills/brand-discovery/references/60_narrative-story.md +50 -0
- package/prisma/skills/brand-discovery/references/70_founder-tension.md +49 -0
- package/prisma/skills/brand-discovery/references/90_SYNTHESIS.md +133 -0
- package/prisma/skills/brand-voice/SKILL.md +98 -0
- package/prisma/skills/brand-voice/references/voice-profile-schema.md +55 -0
- package/prisma/skills/browser-qa/SKILL.md +105 -0
- package/prisma/skills/bun-runtime/SKILL.md +85 -0
- package/prisma/skills/canary-watch/SKILL.md +108 -0
- package/prisma/skills/carrier-relationship-management/SKILL.md +212 -0
- package/prisma/skills/cisco-ios-patterns/SKILL.md +164 -0
- package/prisma/skills/ck/SKILL.md +148 -0
- package/prisma/skills/ck/commands/forget.mjs +44 -0
- package/prisma/skills/ck/commands/info.mjs +24 -0
- package/prisma/skills/ck/commands/init.mjs +143 -0
- package/prisma/skills/ck/commands/list.mjs +40 -0
- package/prisma/skills/ck/commands/migrate.mjs +202 -0
- package/prisma/skills/ck/commands/resume.mjs +36 -0
- package/prisma/skills/ck/commands/save.mjs +210 -0
- package/prisma/skills/ck/commands/shared.mjs +387 -0
- package/prisma/skills/ck/hooks/session-start.mjs +224 -0
- package/prisma/skills/claude-devfleet/SKILL.md +112 -0
- package/prisma/skills/click-path-audit/SKILL.md +245 -0
- package/prisma/skills/clickhouse-io/SKILL.md +440 -0
- package/prisma/skills/code-tour/SKILL.md +254 -0
- package/prisma/skills/codebase-onboarding/SKILL.md +234 -0
- package/prisma/skills/codehealth-mcp/SKILL.md +167 -0
- package/prisma/skills/coding-standards/SKILL.md +551 -0
- package/prisma/skills/competitive-platform-analysis/SKILL.md +214 -0
- package/prisma/skills/competitive-report-structure/SKILL.md +162 -0
- package/prisma/skills/compose-multiplatform-patterns/SKILL.md +300 -0
- package/prisma/skills/config-gc/SKILL.md +120 -0
- package/prisma/skills/configure-ecc/SKILL.md +385 -0
- package/prisma/skills/connections-optimizer/SKILL.md +190 -0
- package/prisma/skills/content-engine/SKILL.md +132 -0
- package/prisma/skills/content-hash-cache-pattern/SKILL.md +162 -0
- package/prisma/skills/context-budget/SKILL.md +136 -0
- package/prisma/skills/continuous-agent-loop/SKILL.md +46 -0
- package/prisma/skills/continuous-learning/SKILL.md +132 -0
- package/prisma/skills/continuous-learning/config.json +18 -0
- package/prisma/skills/continuous-learning/evaluate-session.sh +69 -0
- package/prisma/skills/continuous-learning-v2/SKILL.md +361 -0
- package/prisma/skills/continuous-learning-v2/agents/observer-loop.sh +359 -0
- package/prisma/skills/continuous-learning-v2/agents/observer.md +189 -0
- package/prisma/skills/continuous-learning-v2/agents/session-guardian.sh +150 -0
- package/prisma/skills/continuous-learning-v2/agents/start-observer.sh +248 -0
- package/prisma/skills/continuous-learning-v2/config.json +8 -0
- package/prisma/skills/continuous-learning-v2/hooks/observe.sh +585 -0
- package/prisma/skills/continuous-learning-v2/scripts/detect-project.sh +322 -0
- package/prisma/skills/continuous-learning-v2/scripts/instinct-cli.py +1956 -0
- package/prisma/skills/continuous-learning-v2/scripts/lib/homunculus-dir.sh +31 -0
- package/prisma/skills/continuous-learning-v2/scripts/migrate-homunculus.sh +68 -0
- package/prisma/skills/continuous-learning-v2/scripts/test_parse_instinct.py +1421 -0
- package/prisma/skills/cost-aware-llm-pipeline/SKILL.md +184 -0
- package/prisma/skills/cost-tracking/SKILL.md +97 -0
- package/prisma/skills/council/SKILL.md +204 -0
- package/prisma/skills/cpp-coding-standards/SKILL.md +724 -0
- package/prisma/skills/cpp-testing/SKILL.md +325 -0
- package/prisma/skills/crosspost/SKILL.md +112 -0
- package/prisma/skills/csharp-testing/SKILL.md +322 -0
- package/prisma/skills/customer-billing-ops/SKILL.md +141 -0
- package/prisma/skills/customs-trade-compliance/SKILL.md +263 -0
- package/prisma/skills/dart-flutter-patterns/SKILL.md +564 -0
- package/prisma/skills/dashboard-builder/SKILL.md +109 -0
- package/prisma/skills/data-scraper-agent/SKILL.md +765 -0
- package/prisma/skills/data-throughput-accelerator/SKILL.md +73 -0
- package/prisma/skills/database-migrations/SKILL.md +430 -0
- package/prisma/skills/deep-research/SKILL.md +160 -0
- package/prisma/skills/defi-amm-security/SKILL.md +167 -0
- package/prisma/skills/delivery-gate/SKILL.md +126 -0
- package/prisma/skills/delivery-gate/hooks/quality-gate.py +220 -0
- package/prisma/skills/deployment-patterns/SKILL.md +428 -0
- package/prisma/skills/design-system/SKILL.md +83 -0
- package/prisma/skills/django-celery/SKILL.md +458 -0
- package/prisma/skills/django-patterns/SKILL.md +735 -0
- package/prisma/skills/django-security/SKILL.md +644 -0
- package/prisma/skills/django-tdd/SKILL.md +730 -0
- package/prisma/skills/django-verification/SKILL.md +470 -0
- package/prisma/skills/dmux-workflows/SKILL.md +192 -0
- package/prisma/skills/docker-patterns/SKILL.md +365 -0
- package/prisma/skills/documentation-lookup/SKILL.md +91 -0
- package/prisma/skills/dotnet-patterns/SKILL.md +322 -0
- package/prisma/skills/dynamic-workflow-mode/SKILL.md +124 -0
- package/prisma/skills/e2e-testing/SKILL.md +327 -0
- package/prisma/skills/ecc-guide/SKILL.md +190 -0
- package/prisma/skills/ecc-recipes/SKILL.md +149 -0
- package/prisma/skills/ecc-tools-cost-audit/SKILL.md +161 -0
- package/prisma/skills/email-ops/SKILL.md +122 -0
- package/prisma/skills/energy-procurement/SKILL.md +228 -0
- package/prisma/skills/enterprise-agent-ops/SKILL.md +51 -0
- package/prisma/skills/error-handling/SKILL.md +377 -0
- package/prisma/skills/eval-harness/SKILL.md +271 -0
- package/prisma/skills/evm-token-decimals/SKILL.md +131 -0
- package/prisma/skills/exa-search/SKILL.md +108 -0
- package/prisma/skills/fal-ai-media/SKILL.md +289 -0
- package/prisma/skills/fastapi-patterns/SKILL.md +514 -0
- package/prisma/skills/finance-billing-ops/SKILL.md +128 -0
- package/prisma/skills/flox-environments/SKILL.md +497 -0
- package/prisma/skills/flutter-dart-code-review/SKILL.md +436 -0
- package/prisma/skills/foundation-models-on-device/SKILL.md +243 -0
- package/prisma/skills/frontend-a11y/SKILL.md +446 -0
- package/prisma/skills/frontend-design-direction/SKILL.md +93 -0
- package/prisma/skills/frontend-patterns/SKILL.md +657 -0
- package/prisma/skills/frontend-slides/SKILL.md +185 -0
- package/prisma/skills/frontend-slides/STYLE_PRESETS.md +330 -0
- package/prisma/skills/frontend-slides/animation-patterns.md +122 -0
- package/prisma/skills/frontend-slides/html-template.md +419 -0
- package/prisma/skills/frontend-slides/scripts/export-pdf.sh +418 -0
- package/prisma/skills/frontend-slides/scripts/extract-pptx.py +96 -0
- package/prisma/skills/frontend-slides/viewport-base.css +153 -0
- package/prisma/skills/fsharp-testing/SKILL.md +281 -0
- package/prisma/skills/gan-style-harness/SKILL.md +279 -0
- package/prisma/skills/gateguard/SKILL.md +133 -0
- package/prisma/skills/generating-python-installer/SKILL.md +820 -0
- package/prisma/skills/git-workflow/SKILL.md +716 -0
- package/prisma/skills/github-ops/SKILL.md +145 -0
- package/prisma/skills/golang-patterns/SKILL.md +675 -0
- package/prisma/skills/golang-testing/SKILL.md +721 -0
- package/prisma/skills/google-workspace-ops/SKILL.md +96 -0
- package/prisma/skills/growth-log/SKILL.md +128 -0
- package/prisma/skills/healthcare-cdss-patterns/SKILL.md +246 -0
- package/prisma/skills/healthcare-emr-patterns/SKILL.md +160 -0
- package/prisma/skills/healthcare-eval-harness/SKILL.md +208 -0
- package/prisma/skills/healthcare-phi-compliance/SKILL.md +146 -0
- package/prisma/skills/hermes-imports/SKILL.md +89 -0
- package/prisma/skills/hexagonal-architecture/SKILL.md +277 -0
- package/prisma/skills/hipaa-compliance/SKILL.md +79 -0
- package/prisma/skills/homelab-network-readiness/SKILL.md +170 -0
- package/prisma/skills/homelab-network-setup/SKILL.md +130 -0
- package/prisma/skills/homelab-pihole-dns/SKILL.md +275 -0
- package/prisma/skills/homelab-vlan-segmentation/SKILL.md +312 -0
- package/prisma/skills/homelab-wireguard-vpn/SKILL.md +306 -0
- package/prisma/skills/hookify-rules/SKILL.md +128 -0
- package/prisma/skills/inherit-legacy-style/SKILL.md +157 -0
- package/prisma/skills/intent-driven-development/SKILL.md +360 -0
- package/prisma/skills/inventory-demand-planning/SKILL.md +247 -0
- package/prisma/skills/investor-materials/SKILL.md +97 -0
- package/prisma/skills/investor-outreach/SKILL.md +92 -0
- package/prisma/skills/ios-icon-gen/SKILL.md +158 -0
- package/prisma/skills/ios-icon-gen/scripts/generate_icons.swift +258 -0
- package/prisma/skills/ios-icon-gen/scripts/iconify_gen.sh +235 -0
- package/prisma/skills/iterative-retrieval/SKILL.md +212 -0
- package/prisma/skills/ito-basket-compare/SKILL.md +64 -0
- package/prisma/skills/ito-data-atlas-agent/SKILL.md +64 -0
- package/prisma/skills/ito-market-intelligence/SKILL.md +61 -0
- package/prisma/skills/ito-trade-planner/SKILL.md +68 -0
- package/prisma/skills/java-coding-standards/SKILL.md +384 -0
- package/prisma/skills/jira-integration/SKILL.md +303 -0
- package/prisma/skills/jpa-patterns/SKILL.md +152 -0
- package/prisma/skills/knowledge-ops/SKILL.md +155 -0
- package/prisma/skills/kotlin-coroutines-flows/SKILL.md +285 -0
- package/prisma/skills/kotlin-exposed-patterns/SKILL.md +720 -0
- package/prisma/skills/kotlin-ktor-patterns/SKILL.md +690 -0
- package/prisma/skills/kotlin-patterns/SKILL.md +712 -0
- package/prisma/skills/kotlin-testing/SKILL.md +825 -0
- package/prisma/skills/kubernetes-patterns/SKILL.md +756 -0
- package/prisma/skills/laravel-patterns/SKILL.md +416 -0
- package/prisma/skills/laravel-plugin-discovery/SKILL.md +230 -0
- package/prisma/skills/laravel-security/SKILL.md +948 -0
- package/prisma/skills/laravel-tdd/SKILL.md +675 -0
- package/prisma/skills/laravel-verification/SKILL.md +180 -0
- package/prisma/skills/latency-critical-systems/SKILL.md +74 -0
- package/prisma/skills/lead-intelligence/SKILL.md +322 -0
- package/prisma/skills/lead-intelligence/agents/enrichment-agent.md +85 -0
- package/prisma/skills/lead-intelligence/agents/mutual-mapper.md +75 -0
- package/prisma/skills/lead-intelligence/agents/outreach-drafter.md +98 -0
- package/prisma/skills/lead-intelligence/agents/signal-scorer.md +60 -0
- package/prisma/skills/liquid-glass-design/SKILL.md +279 -0
- package/prisma/skills/llm-trading-agent-security/SKILL.md +147 -0
- package/prisma/skills/logistics-exception-management/SKILL.md +222 -0
- package/prisma/skills/loop-design-check/SKILL.md +143 -0
- package/prisma/skills/mailtrap-email-integration/SKILL.md +77 -0
- package/prisma/skills/make-interfaces-feel-better/SKILL.md +152 -0
- package/prisma/skills/manim-video/SKILL.md +90 -0
- package/prisma/skills/manim-video/assets/network_graph_scene.py +52 -0
- package/prisma/skills/market-research/SKILL.md +76 -0
- package/prisma/skills/marketing-campaign/SKILL.md +114 -0
- package/prisma/skills/mcp-server-patterns/SKILL.md +70 -0
- package/prisma/skills/messages-ops/SKILL.md +105 -0
- package/prisma/skills/ml-adoption-playbook/SKILL.md +57 -0
- package/prisma/skills/mle-workflow/SKILL.md +347 -0
- package/prisma/skills/motion-advanced/SKILL.md +596 -0
- package/prisma/skills/motion-foundations/SKILL.md +299 -0
- package/prisma/skills/motion-patterns/SKILL.md +434 -0
- package/prisma/skills/motion-ui/SKILL.md +576 -0
- package/prisma/skills/mysql-patterns/SKILL.md +413 -0
- package/prisma/skills/nanoclaw-repl/SKILL.md +34 -0
- package/prisma/skills/nestjs-patterns/SKILL.md +231 -0
- package/prisma/skills/netmiko-ssh-automation/SKILL.md +174 -0
- package/prisma/skills/network-bgp-diagnostics/SKILL.md +168 -0
- package/prisma/skills/network-config-validation/SKILL.md +211 -0
- package/prisma/skills/network-interface-health/SKILL.md +153 -0
- package/prisma/skills/nextjs-turbopack/SKILL.md +58 -0
- package/prisma/skills/nodejs-keccak256/SKILL.md +103 -0
- package/prisma/skills/nutrient-document-processing/SKILL.md +168 -0
- package/prisma/skills/nuxt4-patterns/SKILL.md +101 -0
- package/prisma/skills/openclaw-persona-forge/SKILL.md +289 -0
- package/prisma/skills/openclaw-persona-forge/gacha.py +224 -0
- package/prisma/skills/openclaw-persona-forge/gacha.sh +5 -0
- package/prisma/skills/openclaw-persona-forge/references/avatar-style.md +124 -0
- package/prisma/skills/openclaw-persona-forge/references/boundary-rules.md +53 -0
- package/prisma/skills/openclaw-persona-forge/references/error-handling.md +53 -0
- package/prisma/skills/openclaw-persona-forge/references/identity-tension.md +48 -0
- package/prisma/skills/openclaw-persona-forge/references/naming-system.md +39 -0
- package/prisma/skills/openclaw-persona-forge/references/output-template.md +166 -0
- package/prisma/skills/opensource-pipeline/SKILL.md +256 -0
- package/prisma/skills/orch-add-feature/SKILL.md +45 -0
- package/prisma/skills/orch-build-mvp/SKILL.md +49 -0
- package/prisma/skills/orch-change-feature/SKILL.md +43 -0
- package/prisma/skills/orch-fix-defect/SKILL.md +43 -0
- package/prisma/skills/orch-pipeline/SKILL.md +121 -0
- package/prisma/skills/orch-refine-code/SKILL.md +44 -0
- package/prisma/skills/parallel-execution-optimizer/SKILL.md +73 -0
- package/prisma/skills/perl-patterns/SKILL.md +505 -0
- package/prisma/skills/perl-security/SKILL.md +504 -0
- package/prisma/skills/perl-testing/SKILL.md +476 -0
- package/prisma/skills/plan-orchestrate/SKILL.md +263 -0
- package/prisma/skills/plankton-code-quality/SKILL.md +237 -0
- package/prisma/skills/postgres-patterns/SKILL.md +148 -0
- package/prisma/skills/prediction-market-oracle-research/SKILL.md +64 -0
- package/prisma/skills/prediction-market-risk-review/SKILL.md +61 -0
- package/prisma/skills/prisma-patterns/SKILL.md +401 -0
- package/prisma/skills/product-capability/SKILL.md +142 -0
- package/prisma/skills/product-lens/SKILL.md +93 -0
- package/prisma/skills/production-audit/SKILL.md +207 -0
- package/prisma/skills/production-scheduling/SKILL.md +238 -0
- package/prisma/skills/project-flow-ops/SKILL.md +112 -0
- package/prisma/skills/prompt-optimizer/SKILL.md +398 -0
- package/prisma/skills/python-patterns/SKILL.md +751 -0
- package/prisma/skills/python-testing/SKILL.md +817 -0
- package/prisma/skills/pytorch-patterns/SKILL.md +397 -0
- package/prisma/skills/quality-nonconformance/SKILL.md +260 -0
- package/prisma/skills/quarkus-patterns/SKILL.md +723 -0
- package/prisma/skills/quarkus-security/SKILL.md +468 -0
- package/prisma/skills/quarkus-tdd/SKILL.md +812 -0
- package/prisma/skills/quarkus-verification/SKILL.md +480 -0
- package/prisma/skills/ralphinho-rfc-pipeline/SKILL.md +68 -0
- package/prisma/skills/react-native-patterns/SKILL.md +326 -0
- package/prisma/skills/react-patterns/SKILL.md +342 -0
- package/prisma/skills/react-performance/SKILL.md +575 -0
- package/prisma/skills/react-testing/SKILL.md +424 -0
- package/prisma/skills/recsys-pipeline-architect/SKILL.md +115 -0
- package/prisma/skills/recursive-decision-ledger/SKILL.md +80 -0
- package/prisma/skills/redis-patterns/SKILL.md +404 -0
- package/prisma/skills/regex-vs-llm-structured-text/SKILL.md +221 -0
- package/prisma/skills/remotion-video-creation/SKILL.md +43 -0
- package/prisma/skills/remotion-video-creation/rules/3d.md +86 -0
- package/prisma/skills/remotion-video-creation/rules/animations.md +29 -0
- package/prisma/skills/remotion-video-creation/rules/assets/charts-bar-chart.tsx +173 -0
- package/prisma/skills/remotion-video-creation/rules/assets/text-animations-typewriter.tsx +100 -0
- package/prisma/skills/remotion-video-creation/rules/assets/text-animations-word-highlight.tsx +108 -0
- package/prisma/skills/remotion-video-creation/rules/assets.md +78 -0
- package/prisma/skills/remotion-video-creation/rules/audio.md +172 -0
- package/prisma/skills/remotion-video-creation/rules/calculate-metadata.md +104 -0
- package/prisma/skills/remotion-video-creation/rules/can-decode.md +75 -0
- package/prisma/skills/remotion-video-creation/rules/charts.md +58 -0
- package/prisma/skills/remotion-video-creation/rules/compositions.md +146 -0
- package/prisma/skills/remotion-video-creation/rules/display-captions.md +126 -0
- package/prisma/skills/remotion-video-creation/rules/extract-frames.md +229 -0
- package/prisma/skills/remotion-video-creation/rules/fonts.md +152 -0
- package/prisma/skills/remotion-video-creation/rules/get-audio-duration.md +58 -0
- package/prisma/skills/remotion-video-creation/rules/get-video-dimensions.md +68 -0
- package/prisma/skills/remotion-video-creation/rules/get-video-duration.md +58 -0
- package/prisma/skills/remotion-video-creation/rules/gifs.md +138 -0
- package/prisma/skills/remotion-video-creation/rules/images.md +130 -0
- package/prisma/skills/remotion-video-creation/rules/import-srt-captions.md +67 -0
- package/prisma/skills/remotion-video-creation/rules/lottie.md +67 -0
- package/prisma/skills/remotion-video-creation/rules/measuring-dom-nodes.md +34 -0
- package/prisma/skills/remotion-video-creation/rules/measuring-text.md +143 -0
- package/prisma/skills/remotion-video-creation/rules/sequencing.md +106 -0
- package/prisma/skills/remotion-video-creation/rules/tailwind.md +11 -0
- package/prisma/skills/remotion-video-creation/rules/text-animations.md +20 -0
- package/prisma/skills/remotion-video-creation/rules/timing.md +179 -0
- package/prisma/skills/remotion-video-creation/rules/transcribe-captions.md +19 -0
- package/prisma/skills/remotion-video-creation/rules/transitions.md +122 -0
- package/prisma/skills/remotion-video-creation/rules/trimming.md +52 -0
- package/prisma/skills/remotion-video-creation/rules/videos.md +171 -0
- package/prisma/skills/repo-scan/SKILL.md +79 -0
- package/prisma/skills/research-ops/SKILL.md +113 -0
- package/prisma/skills/returns-reverse-logistics/SKILL.md +240 -0
- package/prisma/skills/rules-distill/SKILL.md +265 -0
- package/prisma/skills/rules-distill/scripts/scan-rules.sh +58 -0
- package/prisma/skills/rules-distill/scripts/scan-skills.sh +129 -0
- package/prisma/skills/rust-patterns/SKILL.md +500 -0
- package/prisma/skills/rust-testing/SKILL.md +501 -0
- package/prisma/skills/safety-guard/SKILL.md +76 -0
- package/prisma/skills/santa-method/SKILL.md +307 -0
- package/prisma/skills/scientific-db-pubmed-database/SKILL.md +176 -0
- package/prisma/skills/scientific-db-uspto-database/SKILL.md +178 -0
- package/prisma/skills/scientific-pkg-gget/SKILL.md +167 -0
- package/prisma/skills/scientific-thinking-literature-review/SKILL.md +193 -0
- package/prisma/skills/scientific-thinking-scholar-evaluation/SKILL.md +161 -0
- package/prisma/skills/search-first/SKILL.md +183 -0
- package/prisma/skills/security-bounty-hunter/SKILL.md +100 -0
- package/prisma/skills/security-review/SKILL.md +504 -0
- package/prisma/skills/security-review/cloud-infrastructure-security.md +361 -0
- package/prisma/skills/security-scan/SKILL.md +166 -0
- package/prisma/skills/seo/SKILL.md +155 -0
- package/prisma/skills/skill-comply/SKILL.md +59 -0
- package/prisma/skills/skill-comply/fixtures/compliant_trace.jsonl +5 -0
- package/prisma/skills/skill-comply/fixtures/noncompliant_trace.jsonl +3 -0
- package/prisma/skills/skill-comply/fixtures/tdd_spec.yaml +44 -0
- package/prisma/skills/skill-comply/prompts/classifier.md +24 -0
- package/prisma/skills/skill-comply/prompts/scenario_generator.md +62 -0
- package/prisma/skills/skill-comply/prompts/spec_generator.md +42 -0
- package/prisma/skills/skill-comply/pyproject.toml +15 -0
- package/prisma/skills/skill-comply/scripts/__init__.py +0 -0
- package/prisma/skills/skill-comply/scripts/classifier.py +85 -0
- package/prisma/skills/skill-comply/scripts/grader.py +124 -0
- package/prisma/skills/skill-comply/scripts/parser.py +107 -0
- package/prisma/skills/skill-comply/scripts/report.py +170 -0
- package/prisma/skills/skill-comply/scripts/run.py +127 -0
- package/prisma/skills/skill-comply/scripts/runner.py +194 -0
- package/prisma/skills/skill-comply/scripts/scenario_generator.py +70 -0
- package/prisma/skills/skill-comply/scripts/spec_generator.py +72 -0
- package/prisma/skills/skill-comply/scripts/utils.py +13 -0
- package/prisma/skills/skill-comply/tests/test_grader.py +197 -0
- package/prisma/skills/skill-comply/tests/test_parser.py +90 -0
- package/prisma/skills/skill-comply/tests/test_runner.py +172 -0
- package/prisma/skills/skill-scout/SKILL.md +141 -0
- package/prisma/skills/skill-stocktake/SKILL.md +195 -0
- package/prisma/skills/skill-stocktake/scripts/quick-diff.sh +87 -0
- package/prisma/skills/skill-stocktake/scripts/save-results.sh +56 -0
- package/prisma/skills/skill-stocktake/scripts/scan.sh +170 -0
- package/prisma/skills/social-graph-ranker/SKILL.md +155 -0
- package/prisma/skills/social-publisher/SKILL.md +130 -0
- package/prisma/skills/springboot-patterns/SKILL.md +315 -0
- package/prisma/skills/springboot-security/SKILL.md +273 -0
- package/prisma/skills/springboot-tdd/SKILL.md +159 -0
- package/prisma/skills/springboot-verification/SKILL.md +232 -0
- package/prisma/skills/strategic-compact/SKILL.md +136 -0
- package/prisma/skills/swift-actor-persistence/SKILL.md +144 -0
- package/prisma/skills/swift-concurrency-6-2/SKILL.md +216 -0
- package/prisma/skills/swift-protocol-di-testing/SKILL.md +191 -0
- package/prisma/skills/swiftui-patterns/SKILL.md +259 -0
- package/prisma/skills/taste/SKILL.md +264 -0
- package/prisma/skills/taste/references/genre-taxonomy.md +87 -0
- package/prisma/skills/tdd-workflow/SKILL.md +583 -0
- package/prisma/skills/team-agent-orchestration/SKILL.md +111 -0
- package/prisma/skills/team-builder/SKILL.md +169 -0
- package/prisma/skills/terminal-ops/SKILL.md +110 -0
- package/prisma/skills/tinystruct-patterns/SKILL.md +279 -0
- package/prisma/skills/tinystruct-patterns/references/architecture.md +90 -0
- package/prisma/skills/tinystruct-patterns/references/data-handling.md +60 -0
- package/prisma/skills/tinystruct-patterns/references/database.md +99 -0
- package/prisma/skills/tinystruct-patterns/references/routing.md +64 -0
- package/prisma/skills/tinystruct-patterns/references/system-usage.md +97 -0
- package/prisma/skills/tinystruct-patterns/references/testing.md +72 -0
- package/prisma/skills/token-budget-advisor/SKILL.md +134 -0
- package/prisma/skills/ui-demo/SKILL.md +466 -0
- package/prisma/skills/ui-to-vue/SKILL.md +135 -0
- package/prisma/skills/uncloud/SKILL.md +344 -0
- package/prisma/skills/unified-notifications-ops/SKILL.md +188 -0
- package/prisma/skills/verification-loop/SKILL.md +127 -0
- package/prisma/skills/video-editing/SKILL.md +311 -0
- package/prisma/skills/videodb/SKILL.md +375 -0
- package/prisma/skills/videodb/reference/api-reference.md +550 -0
- package/prisma/skills/videodb/reference/capture-reference.md +407 -0
- package/prisma/skills/videodb/reference/capture.md +101 -0
- package/prisma/skills/videodb/reference/editor.md +443 -0
- package/prisma/skills/videodb/reference/generative.md +331 -0
- package/prisma/skills/videodb/reference/rtstream-reference.md +564 -0
- package/prisma/skills/videodb/reference/rtstream.md +65 -0
- package/prisma/skills/videodb/reference/search.md +230 -0
- package/prisma/skills/videodb/reference/streaming.md +406 -0
- package/prisma/skills/videodb/reference/use-cases.md +118 -0
- package/prisma/skills/videodb/scripts/ws_listener.py +282 -0
- package/prisma/skills/visa-doc-translate/README.md +86 -0
- package/prisma/skills/visa-doc-translate/SKILL.md +117 -0
- package/prisma/skills/vite-patterns/SKILL.md +450 -0
- package/prisma/skills/vue-patterns/SKILL.md +471 -0
- package/prisma/skills/windows-desktop-e2e/SKILL.md +888 -0
- package/prisma/skills/workspace-surface-audit/SKILL.md +126 -0
- package/prisma/skills/x-api/SKILL.md +235 -0
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: e2e-testing
|
|
3
|
+
description: Playwright E2E testing patterns, Page Object Model, configuration, CI/CD integration, artifact management, and flaky test strategies.
|
|
4
|
+
metadata:
|
|
5
|
+
origin: ECC
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# E2E Testing Patterns
|
|
9
|
+
|
|
10
|
+
Comprehensive Playwright patterns for building stable, fast, and maintainable E2E test suites.
|
|
11
|
+
|
|
12
|
+
## Test File Organization
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
tests/
|
|
16
|
+
├── e2e/
|
|
17
|
+
│ ├── auth/
|
|
18
|
+
│ │ ├── login.spec.ts
|
|
19
|
+
│ │ ├── logout.spec.ts
|
|
20
|
+
│ │ └── register.spec.ts
|
|
21
|
+
│ ├── features/
|
|
22
|
+
│ │ ├── browse.spec.ts
|
|
23
|
+
│ │ ├── search.spec.ts
|
|
24
|
+
│ │ └── create.spec.ts
|
|
25
|
+
│ └── api/
|
|
26
|
+
│ └── endpoints.spec.ts
|
|
27
|
+
├── fixtures/
|
|
28
|
+
│ ├── auth.ts
|
|
29
|
+
│ └── data.ts
|
|
30
|
+
└── playwright.config.ts
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Page Object Model (POM)
|
|
34
|
+
|
|
35
|
+
```typescript
|
|
36
|
+
import { Page, Locator } from '@playwright/test'
|
|
37
|
+
|
|
38
|
+
export class ItemsPage {
|
|
39
|
+
readonly page: Page
|
|
40
|
+
readonly searchInput: Locator
|
|
41
|
+
readonly itemCards: Locator
|
|
42
|
+
readonly createButton: Locator
|
|
43
|
+
|
|
44
|
+
constructor(page: Page) {
|
|
45
|
+
this.page = page
|
|
46
|
+
this.searchInput = page.locator('[data-testid="search-input"]')
|
|
47
|
+
this.itemCards = page.locator('[data-testid="item-card"]')
|
|
48
|
+
this.createButton = page.locator('[data-testid="create-btn"]')
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
async goto() {
|
|
52
|
+
await this.page.goto('/items')
|
|
53
|
+
await this.page.waitForLoadState('networkidle')
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
async search(query: string) {
|
|
57
|
+
await this.searchInput.fill(query)
|
|
58
|
+
await this.page.waitForResponse(resp => resp.url().includes('/api/search'))
|
|
59
|
+
await this.page.waitForLoadState('networkidle')
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
async getItemCount() {
|
|
63
|
+
return await this.itemCards.count()
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Test Structure
|
|
69
|
+
|
|
70
|
+
```typescript
|
|
71
|
+
import { test, expect } from '@playwright/test'
|
|
72
|
+
import { ItemsPage } from '../../pages/ItemsPage'
|
|
73
|
+
|
|
74
|
+
test.describe('Item Search', () => {
|
|
75
|
+
let itemsPage: ItemsPage
|
|
76
|
+
|
|
77
|
+
test.beforeEach(async ({ page }) => {
|
|
78
|
+
itemsPage = new ItemsPage(page)
|
|
79
|
+
await itemsPage.goto()
|
|
80
|
+
})
|
|
81
|
+
|
|
82
|
+
test('should search by keyword', async ({ page }) => {
|
|
83
|
+
await itemsPage.search('test')
|
|
84
|
+
|
|
85
|
+
const count = await itemsPage.getItemCount()
|
|
86
|
+
expect(count).toBeGreaterThan(0)
|
|
87
|
+
|
|
88
|
+
await expect(itemsPage.itemCards.first()).toContainText(/test/i)
|
|
89
|
+
await page.screenshot({ path: 'artifacts/search-results.png' })
|
|
90
|
+
})
|
|
91
|
+
|
|
92
|
+
test('should handle no results', async ({ page }) => {
|
|
93
|
+
await itemsPage.search('xyznonexistent123')
|
|
94
|
+
|
|
95
|
+
await expect(page.locator('[data-testid="no-results"]')).toBeVisible()
|
|
96
|
+
expect(await itemsPage.getItemCount()).toBe(0)
|
|
97
|
+
})
|
|
98
|
+
})
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Playwright Configuration
|
|
102
|
+
|
|
103
|
+
```typescript
|
|
104
|
+
import { defineConfig, devices } from '@playwright/test'
|
|
105
|
+
|
|
106
|
+
export default defineConfig({
|
|
107
|
+
testDir: './tests/e2e',
|
|
108
|
+
fullyParallel: true,
|
|
109
|
+
forbidOnly: !!process.env.CI,
|
|
110
|
+
retries: process.env.CI ? 2 : 0,
|
|
111
|
+
workers: process.env.CI ? 1 : undefined,
|
|
112
|
+
reporter: [
|
|
113
|
+
['html', { outputFolder: 'playwright-report' }],
|
|
114
|
+
['junit', { outputFile: 'playwright-results.xml' }],
|
|
115
|
+
['json', { outputFile: 'playwright-results.json' }]
|
|
116
|
+
],
|
|
117
|
+
use: {
|
|
118
|
+
baseURL: process.env.BASE_URL || 'http://localhost:3000',
|
|
119
|
+
trace: 'on-first-retry',
|
|
120
|
+
screenshot: 'only-on-failure',
|
|
121
|
+
video: 'retain-on-failure',
|
|
122
|
+
actionTimeout: 10000,
|
|
123
|
+
navigationTimeout: 30000,
|
|
124
|
+
},
|
|
125
|
+
projects: [
|
|
126
|
+
{ name: 'chromium', use: { ...devices['Desktop Chrome'] } },
|
|
127
|
+
{ name: 'firefox', use: { ...devices['Desktop Firefox'] } },
|
|
128
|
+
{ name: 'webkit', use: { ...devices['Desktop Safari'] } },
|
|
129
|
+
{ name: 'mobile-chrome', use: { ...devices['Pixel 5'] } },
|
|
130
|
+
],
|
|
131
|
+
webServer: {
|
|
132
|
+
command: 'npm run dev',
|
|
133
|
+
url: 'http://localhost:3000',
|
|
134
|
+
reuseExistingServer: !process.env.CI,
|
|
135
|
+
timeout: 120000,
|
|
136
|
+
},
|
|
137
|
+
})
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
## Flaky Test Patterns
|
|
141
|
+
|
|
142
|
+
### Quarantine
|
|
143
|
+
|
|
144
|
+
```typescript
|
|
145
|
+
test('flaky: complex search', async ({ page }) => {
|
|
146
|
+
test.fixme(true, 'Flaky - Issue #123')
|
|
147
|
+
// test code...
|
|
148
|
+
})
|
|
149
|
+
|
|
150
|
+
test('conditional skip', async ({ page }) => {
|
|
151
|
+
test.skip(process.env.CI, 'Flaky in CI - Issue #123')
|
|
152
|
+
// test code...
|
|
153
|
+
})
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### Identify Flakiness
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
npx playwright test tests/search.spec.ts --repeat-each=10
|
|
160
|
+
npx playwright test tests/search.spec.ts --retries=3
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Common Causes & Fixes
|
|
164
|
+
|
|
165
|
+
**Race conditions:**
|
|
166
|
+
```typescript
|
|
167
|
+
// Bad: assumes element is ready
|
|
168
|
+
await page.click('[data-testid="button"]')
|
|
169
|
+
|
|
170
|
+
// Good: auto-wait locator
|
|
171
|
+
await page.locator('[data-testid="button"]').click()
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**Network timing:**
|
|
175
|
+
```typescript
|
|
176
|
+
// Bad: arbitrary timeout
|
|
177
|
+
await page.waitForTimeout(5000)
|
|
178
|
+
|
|
179
|
+
// Good: wait for specific condition
|
|
180
|
+
await page.waitForResponse(resp => resp.url().includes('/api/data'))
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
**Animation timing:**
|
|
184
|
+
```typescript
|
|
185
|
+
// Bad: click during animation
|
|
186
|
+
await page.click('[data-testid="menu-item"]')
|
|
187
|
+
|
|
188
|
+
// Good: wait for stability
|
|
189
|
+
await page.locator('[data-testid="menu-item"]').waitFor({ state: 'visible' })
|
|
190
|
+
await page.waitForLoadState('networkidle')
|
|
191
|
+
await page.locator('[data-testid="menu-item"]').click()
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
## Artifact Management
|
|
195
|
+
|
|
196
|
+
### Screenshots
|
|
197
|
+
|
|
198
|
+
```typescript
|
|
199
|
+
await page.screenshot({ path: 'artifacts/after-login.png' })
|
|
200
|
+
await page.screenshot({ path: 'artifacts/full-page.png', fullPage: true })
|
|
201
|
+
await page.locator('[data-testid="chart"]').screenshot({ path: 'artifacts/chart.png' })
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
### Traces
|
|
205
|
+
|
|
206
|
+
```typescript
|
|
207
|
+
await browser.startTracing(page, {
|
|
208
|
+
path: 'artifacts/trace.json',
|
|
209
|
+
screenshots: true,
|
|
210
|
+
snapshots: true,
|
|
211
|
+
})
|
|
212
|
+
// ... test actions ...
|
|
213
|
+
await browser.stopTracing()
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
### Video
|
|
217
|
+
|
|
218
|
+
```typescript
|
|
219
|
+
// In playwright.config.ts
|
|
220
|
+
use: {
|
|
221
|
+
video: 'retain-on-failure',
|
|
222
|
+
videosPath: 'artifacts/videos/'
|
|
223
|
+
}
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
## CI/CD Integration
|
|
227
|
+
|
|
228
|
+
```yaml
|
|
229
|
+
# .github/workflows/e2e.yml
|
|
230
|
+
name: E2E Tests
|
|
231
|
+
on: [push, pull_request]
|
|
232
|
+
|
|
233
|
+
jobs:
|
|
234
|
+
test:
|
|
235
|
+
runs-on: ubuntu-latest
|
|
236
|
+
steps:
|
|
237
|
+
- uses: actions/checkout@v4
|
|
238
|
+
- uses: actions/setup-node@v4
|
|
239
|
+
with:
|
|
240
|
+
node-version: 20
|
|
241
|
+
- run: npm ci
|
|
242
|
+
- run: npx playwright install --with-deps
|
|
243
|
+
- run: npx playwright test
|
|
244
|
+
env:
|
|
245
|
+
BASE_URL: ${{ vars.STAGING_URL }}
|
|
246
|
+
- uses: actions/upload-artifact@v4
|
|
247
|
+
if: always()
|
|
248
|
+
with:
|
|
249
|
+
name: playwright-report
|
|
250
|
+
path: playwright-report/
|
|
251
|
+
retention-days: 30
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
## Test Report Template
|
|
255
|
+
|
|
256
|
+
```markdown
|
|
257
|
+
# E2E Test Report
|
|
258
|
+
|
|
259
|
+
**Date:** YYYY-MM-DD HH:MM
|
|
260
|
+
**Duration:** Xm Ys
|
|
261
|
+
**Status:** PASSING / FAILING
|
|
262
|
+
|
|
263
|
+
## Summary
|
|
264
|
+
- Total: X | Passed: Y (Z%) | Failed: A | Flaky: B | Skipped: C
|
|
265
|
+
|
|
266
|
+
## Failed Tests
|
|
267
|
+
|
|
268
|
+
### test-name
|
|
269
|
+
**File:** `tests/e2e/feature.spec.ts:45`
|
|
270
|
+
**Error:** Expected element to be visible
|
|
271
|
+
**Screenshot:** artifacts/failed.png
|
|
272
|
+
**Recommended Fix:** [description]
|
|
273
|
+
|
|
274
|
+
## Artifacts
|
|
275
|
+
- HTML Report: playwright-report/index.html
|
|
276
|
+
- Screenshots: artifacts/*.png
|
|
277
|
+
- Videos: artifacts/videos/*.webm
|
|
278
|
+
- Traces: artifacts/*.zip
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
## Wallet / Web3 Testing
|
|
282
|
+
|
|
283
|
+
```typescript
|
|
284
|
+
test('wallet connection', async ({ page, context }) => {
|
|
285
|
+
// Mock wallet provider
|
|
286
|
+
await context.addInitScript(() => {
|
|
287
|
+
window.ethereum = {
|
|
288
|
+
isMetaMask: true,
|
|
289
|
+
request: async ({ method }) => {
|
|
290
|
+
if (method === 'eth_requestAccounts')
|
|
291
|
+
return ['0x1234567890123456789012345678901234567890']
|
|
292
|
+
if (method === 'eth_chainId') return '0x1'
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
})
|
|
296
|
+
|
|
297
|
+
await page.goto('/')
|
|
298
|
+
await page.locator('[data-testid="connect-wallet"]').click()
|
|
299
|
+
await expect(page.locator('[data-testid="wallet-address"]')).toContainText('0x1234')
|
|
300
|
+
})
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
## Financial / Critical Flow Testing
|
|
304
|
+
|
|
305
|
+
```typescript
|
|
306
|
+
test('trade execution', async ({ page }) => {
|
|
307
|
+
// Skip on production — real money
|
|
308
|
+
test.skip(process.env.NODE_ENV === 'production', 'Skip on production')
|
|
309
|
+
|
|
310
|
+
await page.goto('/markets/test-market')
|
|
311
|
+
await page.locator('[data-testid="position-yes"]').click()
|
|
312
|
+
await page.locator('[data-testid="trade-amount"]').fill('1.0')
|
|
313
|
+
|
|
314
|
+
// Verify preview
|
|
315
|
+
const preview = page.locator('[data-testid="trade-preview"]')
|
|
316
|
+
await expect(preview).toContainText('1.0')
|
|
317
|
+
|
|
318
|
+
// Confirm and wait for blockchain
|
|
319
|
+
await page.locator('[data-testid="confirm-trade"]').click()
|
|
320
|
+
await page.waitForResponse(
|
|
321
|
+
resp => resp.url().includes('/api/trade') && resp.status() === 200,
|
|
322
|
+
{ timeout: 30000 }
|
|
323
|
+
)
|
|
324
|
+
|
|
325
|
+
await expect(page.locator('[data-testid="trade-success"]')).toBeVisible()
|
|
326
|
+
})
|
|
327
|
+
```
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ecc-guide
|
|
3
|
+
description: Guide users through ECC's current agents, skills, commands, hooks, rules, install profiles, and project onboarding by reading the live repository surface before answering.
|
|
4
|
+
metadata:
|
|
5
|
+
origin: community
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# ECC Guide
|
|
9
|
+
|
|
10
|
+
Use this skill when a user needs help understanding, navigating, installing, or choosing parts of Everything Claude Code.
|
|
11
|
+
|
|
12
|
+
## When To Use
|
|
13
|
+
|
|
14
|
+
Use this skill when the user:
|
|
15
|
+
|
|
16
|
+
- asks what ECC includes
|
|
17
|
+
- wants help finding a skill, command, agent, hook, rule, or install profile
|
|
18
|
+
- is new to the repository and needs a guided path
|
|
19
|
+
- asks "how do I do X with ECC?"
|
|
20
|
+
- asks which ECC components fit a project
|
|
21
|
+
- needs a lightweight explanation of how commands, skills, agents, hooks, and rules relate
|
|
22
|
+
- is confused by install paths, duplicate installs, reset/uninstall, or selective install options
|
|
23
|
+
|
|
24
|
+
## Core Principle
|
|
25
|
+
|
|
26
|
+
Answer from current files, not memory. ECC changes quickly, so hard-coded catalog counts, feature lists, and install instructions go stale.
|
|
27
|
+
|
|
28
|
+
When the ECC repository is available, inspect the relevant files before giving a concrete answer:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
node scripts/ci/catalog.js --json
|
|
32
|
+
find skills -maxdepth 2 -name SKILL.md | sort
|
|
33
|
+
find commands -maxdepth 1 -name '*.md' | sort
|
|
34
|
+
find agents -maxdepth 1 -name '*.md' | sort
|
|
35
|
+
node scripts/install-plan.js --list-profiles
|
|
36
|
+
node scripts/install-plan.js --list-components --json
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
Use the smallest set of reads needed for the user's question.
|
|
40
|
+
|
|
41
|
+
## Repository Map
|
|
42
|
+
|
|
43
|
+
- `README.md`: install paths, uninstall/reset guidance, public positioning, FAQs
|
|
44
|
+
- `AGENTS.md`: contributor guidance and project structure
|
|
45
|
+
- `agent.yaml`: exported gitagent surface and command list
|
|
46
|
+
- `commands/`: maintained slash-command compatibility shims
|
|
47
|
+
- `skills/*/SKILL.md`: reusable workflows and domain playbooks
|
|
48
|
+
- `agents/*.md`: delegated subagent role prompts
|
|
49
|
+
- `rules/`: language and harness rules
|
|
50
|
+
- `hooks/README.md`, `hooks/hooks.json`, `scripts/hooks/`: hook behavior and safety gates
|
|
51
|
+
- `manifests/install-*.json`: selective install modules, components, profiles, and target support
|
|
52
|
+
- `docs/`: harness guides, architecture notes, translated docs, release docs
|
|
53
|
+
|
|
54
|
+
## Response Style
|
|
55
|
+
|
|
56
|
+
Lead with the answer, then give the next action. Most users do not need a full catalog dump.
|
|
57
|
+
|
|
58
|
+
Good first response shape:
|
|
59
|
+
|
|
60
|
+
1. what to use
|
|
61
|
+
2. why it fits
|
|
62
|
+
3. exact file or command to inspect
|
|
63
|
+
4. one next command or question
|
|
64
|
+
|
|
65
|
+
Avoid:
|
|
66
|
+
|
|
67
|
+
- listing every skill or command by default
|
|
68
|
+
- repeating large README sections
|
|
69
|
+
- recommending retired command shims when a skill-first path exists
|
|
70
|
+
- claiming a component exists without checking the filesystem
|
|
71
|
+
- replacing install guidance with manual copy commands when the managed installer supports the target
|
|
72
|
+
|
|
73
|
+
## Common Tasks
|
|
74
|
+
|
|
75
|
+
### New User Onboarding
|
|
76
|
+
|
|
77
|
+
Give a short menu:
|
|
78
|
+
|
|
79
|
+
- install or reset ECC
|
|
80
|
+
- pick skills for a project
|
|
81
|
+
- understand commands vs skills
|
|
82
|
+
- inspect hooks and safety behavior
|
|
83
|
+
- run a harness audit
|
|
84
|
+
- find a specific workflow
|
|
85
|
+
|
|
86
|
+
Point to `README.md` for install/reset and `/project-init` for project-specific onboarding.
|
|
87
|
+
|
|
88
|
+
### Feature Discovery
|
|
89
|
+
|
|
90
|
+
For "what should I use for X?":
|
|
91
|
+
|
|
92
|
+
1. Search `skills/`, `commands/`, and `agents/`.
|
|
93
|
+
2. Prefer skills as the primary workflow surface.
|
|
94
|
+
3. Use commands only when they are a maintained compatibility shim or a user explicitly wants slash-command behavior.
|
|
95
|
+
4. Mention agents when delegation is useful.
|
|
96
|
+
|
|
97
|
+
Useful searches:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
rg -n "<query>" skills commands agents docs
|
|
101
|
+
find skills -maxdepth 2 -name SKILL.md | sort
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Install Guidance
|
|
105
|
+
|
|
106
|
+
Use managed install paths:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
node scripts/install-plan.js --list-profiles
|
|
110
|
+
node scripts/install-plan.js --profile minimal --target claude --json
|
|
111
|
+
node scripts/install-apply.js --profile minimal --target claude --dry-run
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
For specific skill installs:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
node scripts/install-plan.js --skills <skill-id> --target claude --json
|
|
118
|
+
node scripts/install-apply.js --skills <skill-id> --target claude --dry-run
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Warn users not to stack plugin installs and full manual/profile installs unless they intentionally want duplicate surfaces.
|
|
122
|
+
|
|
123
|
+
### Project Onboarding
|
|
124
|
+
|
|
125
|
+
Use `/project-init` when the user wants ECC configured for a target repo. The expected sequence is:
|
|
126
|
+
|
|
127
|
+
1. detect the stack from project files
|
|
128
|
+
2. resolve a dry-run install plan
|
|
129
|
+
3. inspect existing `CLAUDE.md` and settings files
|
|
130
|
+
4. ask before applying changes
|
|
131
|
+
5. keep generated guidance minimal and repo-specific
|
|
132
|
+
|
|
133
|
+
### Troubleshooting
|
|
134
|
+
|
|
135
|
+
Ask for the target harness and install path first, then inspect:
|
|
136
|
+
|
|
137
|
+
- plugin install metadata
|
|
138
|
+
- `.claude/`, `.cursor/`, `.codex/`, `.gemini/`, `.opencode/`, `.codebuddy/`, `.joycode/`, or `.qwen/`
|
|
139
|
+
- `hooks/hooks.json`
|
|
140
|
+
- install-state files
|
|
141
|
+
- relevant command/skill files
|
|
142
|
+
|
|
143
|
+
For repo health, suggest:
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
npm run harness:audit -- --format text
|
|
147
|
+
npm run observability:ready
|
|
148
|
+
npm test
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## Output Templates
|
|
152
|
+
|
|
153
|
+
### Short Recommendation
|
|
154
|
+
|
|
155
|
+
```text
|
|
156
|
+
Use <skill-or-command>. It fits because <reason>.
|
|
157
|
+
|
|
158
|
+
Canonical file: <path>
|
|
159
|
+
Verify with: <command>
|
|
160
|
+
Next: <one concrete action>
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Search Results
|
|
164
|
+
|
|
165
|
+
```text
|
|
166
|
+
Best matches:
|
|
167
|
+
- <path>: <why it matters>
|
|
168
|
+
- <path>: <why it matters>
|
|
169
|
+
|
|
170
|
+
Recommendation: <which one to use first and why>
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
### Install Plan Summary
|
|
174
|
+
|
|
175
|
+
```text
|
|
176
|
+
Detected: <stack evidence>
|
|
177
|
+
Target: <harness>
|
|
178
|
+
Plan: <profile/modules/skills>
|
|
179
|
+
Dry run: <command>
|
|
180
|
+
Would change: <paths>
|
|
181
|
+
Needs approval before apply: <yes/no>
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
## Related Surfaces
|
|
185
|
+
|
|
186
|
+
- `/project-init`: stack-aware onboarding plan for a target repo
|
|
187
|
+
- `/harness-audit`: deterministic readiness scorecard
|
|
188
|
+
- `/skill-health`: skill quality review
|
|
189
|
+
- `/skill-create`: generate a new skill from local git history
|
|
190
|
+
- `/security-scan`: inspect Claude/OpenCode configuration security
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ecc-recipes
|
|
3
|
+
description: "Map a described workflow to the right ECC command-GROUP with run-order and stop condition, and browse all command-group recipe families. Adds a family-grouping + run-order + when-to-stop layer on top of the flat command catalog. Advisory only. TRIGGER when the user says which commands for X, what command group runs X, show ECC recipes, list ECC pipelines, or how do I run a workflow with ECC. DO NOT TRIGGER when the user wants the task executed directly, wants a single-command deep doc (use ecc-guide), or wants a draft prompt rewritten (use prompt-optimizer)."
|
|
4
|
+
argument-hint: <workflow description | empty=list all>
|
|
5
|
+
origin: community
|
|
6
|
+
author: KyawZinLatt
|
|
7
|
+
version: "1.0.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# ECC Recipes
|
|
11
|
+
|
|
12
|
+
One entry point for "which group of ECC slash-commands runs my workflow, in what
|
|
13
|
+
order, and when do I stop." Also browses every command-group recipe family.
|
|
14
|
+
|
|
15
|
+
Fills the gap between two existing skills:
|
|
16
|
+
|
|
17
|
+
- `ecc-guide` — lists commands and where to read docs, but as a flat catalog.
|
|
18
|
+
- `prompt-optimizer` — matches a task to components, but outputs a single prompt,
|
|
19
|
+
not a multi-command group with run-order and stop condition.
|
|
20
|
+
|
|
21
|
+
This skill adds: **family grouping + run-order + stop condition.**
|
|
22
|
+
|
|
23
|
+
## When to Activate
|
|
24
|
+
|
|
25
|
+
- "Which command group do I run for <workflow>?"
|
|
26
|
+
- "What's the command sequence to build an MVP / fix a defect / refactor?"
|
|
27
|
+
- "Show me all ECC command-group recipes" (catalog mode)
|
|
28
|
+
- "How many workflow pipelines does ECC have?"
|
|
29
|
+
- User invokes `/ecc-recipes` with or without a description.
|
|
30
|
+
|
|
31
|
+
### Do Not Use When
|
|
32
|
+
|
|
33
|
+
- User wants the task done now — route to the actual command, don't describe it.
|
|
34
|
+
- User wants deep docs for ONE command — use `ecc-guide`.
|
|
35
|
+
- User wants a draft prompt rewritten — use `prompt-optimizer`.
|
|
36
|
+
|
|
37
|
+
## Core Principle
|
|
38
|
+
|
|
39
|
+
**Answer from current files, not memory.** The command set changes; never
|
|
40
|
+
hardcode counts or member lists. Read the live `commands/` directory each run,
|
|
41
|
+
then classify into families.
|
|
42
|
+
|
|
43
|
+
### Live reads
|
|
44
|
+
|
|
45
|
+
Resolve the commands directory (first that exists), then list names:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
for D in \
|
|
49
|
+
"$HOME"/.claude/plugins/marketplaces/ecc/commands \
|
|
50
|
+
"$HOME"/.claude/plugins/cache/ecc/ecc/*/commands \
|
|
51
|
+
./commands \
|
|
52
|
+
./.claude/commands \
|
|
53
|
+
"$HOME"/.claude/commands; do
|
|
54
|
+
[ -d "$D" ] && CMD_DIR="$D" && break
|
|
55
|
+
done
|
|
56
|
+
[ -z "${CMD_DIR:-}" ] && { echo "No ECC commands directory found."; return 1; }
|
|
57
|
+
find "$CMD_DIR" -maxdepth 1 -name '*.md' -exec basename {} .md \; | sort
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Optionally read `manifests/install-*.json` if present for richer grouping. Use
|
|
61
|
+
the smallest set of reads needed.
|
|
62
|
+
|
|
63
|
+
## Family Classification (by prefix)
|
|
64
|
+
|
|
65
|
+
Group command names by leading prefix; map known singletons by hand. Families are
|
|
66
|
+
derived live — the table below is the *classification rule*, not a frozen list.
|
|
67
|
+
|
|
68
|
+
| Family prefix | Recipe meaning | Typical run-order |
|
|
69
|
+
|---|---|---|
|
|
70
|
+
| `orch-*` | gated Research, Plan, TDD, Review, Commit per task type | pick one orch-* by task kind; it runs its own internal phases |
|
|
71
|
+
| `multi-*` | multi-model workflow | `multi-plan` then `multi-execute` then review (or `multi-workflow` end-to-end) |
|
|
72
|
+
| `prp-*` | PRD to plan to implement to PR pipeline | `prp-prd` then `prp-plan` then `prp-implement` then `prp-commit` then `prp-pr` |
|
|
73
|
+
| `epic-*` | large multi-unit epic, parallel | `epic-decompose` then `epic-claim` then `epic-validate` then `epic-review` then `epic-unblock` then `epic-sync` then `epic-publish` |
|
|
74
|
+
| `loop-*` | managed autonomous loop and monitor | `loop-start <pattern>` then watch with `loop-status` |
|
|
75
|
+
| `gan-*` | generator and evaluator loop | `gan-build` (code) or `gan-design` (UI); self-looping |
|
|
76
|
+
| `*-build` / `*-review` / `*-test` | per-language CI triad | `<lang>-test` (TDD) then `<lang>-build` (fix) then `<lang>-review` |
|
|
77
|
+
| `hookify-*` | behavior-hook management | `hookify` then `hookify-list` then `hookify-configure` |
|
|
78
|
+
| `learn` / `instinct-*` / `evolve` / `promote` / `prune` | continuous-learning | `learn` then `instinct-status` then `evolve` then `promote` |
|
|
79
|
+
| singletons | `santa-loop`, `plan`, `plan-prd`, `pr`, `code-review`, `checkpoint`, etc. | standalone or glue between groups |
|
|
80
|
+
|
|
81
|
+
Any command not matching a prefix rule → list it under **singletons** with its
|
|
82
|
+
one-line description.
|
|
83
|
+
|
|
84
|
+
## How It Works
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
1. Live-read command names from CMD_DIR.
|
|
88
|
+
2. Classify into families by prefix and a singleton map.
|
|
89
|
+
3. If a workflow description was given -> MATCH MODE.
|
|
90
|
+
If none -> CATALOG MODE.
|
|
91
|
+
4. Advisory only: print the plan. Never run the matched commands.
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### Catalog mode (no description)
|
|
95
|
+
|
|
96
|
+
Output the family table: each family, member count, members, one-line meaning,
|
|
97
|
+
typical run-order. End with the total command count and a prompt to describe a
|
|
98
|
+
workflow for a matched recipe.
|
|
99
|
+
|
|
100
|
+
### Match mode (description given)
|
|
101
|
+
|
|
102
|
+
1. Restate the workflow in one sentence.
|
|
103
|
+
2. Pick the best 1-2 families; say WHY in one line each.
|
|
104
|
+
3. **Run-order block** — exact command sequence for the matched family.
|
|
105
|
+
4. **Stop condition** — always explicit (max-runs, completion-signal,
|
|
106
|
+
review-passes, or single-shot). For autonomous loops, warn about subscription
|
|
107
|
+
burn and recommend a backstop bound.
|
|
108
|
+
5. **Where to read** — the `commands/<name>.md` path plus `/ecc-guide <name>`.
|
|
109
|
+
|
|
110
|
+
## Output Template (match mode)
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
Workflow: <one-sentence restatement>
|
|
114
|
+
|
|
115
|
+
Best fit: <family> — <why>
|
|
116
|
+
(Alt: <family> — <why>)
|
|
117
|
+
|
|
118
|
+
Run-order:
|
|
119
|
+
/<cmd1> # job
|
|
120
|
+
/<cmd2> # job
|
|
121
|
+
/<cmd3> # job
|
|
122
|
+
STOP when: <condition>
|
|
123
|
+
WARNING (autonomous loops only): an unbounded loop burns subscription/credits —
|
|
124
|
+
add a max-iteration or max-cost backstop alongside the completion signal.
|
|
125
|
+
|
|
126
|
+
Read full docs:
|
|
127
|
+
commands/<cmd1>.md (or: /ecc-guide <cmd1>)
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
## Examples
|
|
131
|
+
|
|
132
|
+
**Catalog:** `/ecc-recipes` → prints the family table and total count.
|
|
133
|
+
|
|
134
|
+
**Match:** `/ecc-recipes plan a whole app upfront then auto-build with adversarial
|
|
135
|
+
review until done` → Best fit: `loop-*` (autonomous) wrapping `gan-*` or
|
|
136
|
+
`santa-loop` (adversarial). Run-order: `plan-prd` then
|
|
137
|
+
`loop-start rfc-dag --mode safe` then monitor `loop-status`; STOP when all units
|
|
138
|
+
pass review N consecutive times (add a max-iteration backstop to bound burn).
|
|
139
|
+
|
|
140
|
+
**Match:** `/ecc-recipes fix a bug in my Go service` → Best fit: `orch-fix-defect`
|
|
141
|
+
(reproduce, fix, review, commit). Alt: `go-test` then `go-build` then
|
|
142
|
+
`go-review`. STOP: regression test green and review pass.
|
|
143
|
+
|
|
144
|
+
## Non-Goals
|
|
145
|
+
|
|
146
|
+
- Not an executor — advisory only.
|
|
147
|
+
- Not per-command deep docs — that's `ecc-guide`.
|
|
148
|
+
- Not prompt rewriting — that's `prompt-optimizer`.
|
|
149
|
+
- Never hardcode command counts or member lists — always live-read.
|