claudecode-omc 5.11.0 → 5.12.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/bundled/manifest.json +3 -3
- package/bundled/upstream/anthropic-skills/.omc-source/bundle.json +2 -2
- package/bundled/upstream/anthropic-skills/.omc-source/provenance.json +394 -390
- package/bundled/upstream/anthropic-skills/skills/claude-api/SKILL.md +60 -29
- package/bundled/upstream/anthropic-skills/skills/claude-api/csharp/claude-api.md +46 -1
- package/bundled/upstream/anthropic-skills/skills/claude-api/curl/examples.md +2 -2
- package/bundled/upstream/anthropic-skills/skills/claude-api/curl/managed-agents.md +3 -1
- package/bundled/upstream/anthropic-skills/skills/claude-api/go/claude-api.md +23 -4
- package/bundled/upstream/anthropic-skills/skills/claude-api/java/claude-api.md +32 -3
- package/bundled/upstream/anthropic-skills/skills/claude-api/php/claude-api.md +27 -0
- package/bundled/upstream/anthropic-skills/skills/claude-api/python/claude-api/README.md +123 -7
- package/bundled/upstream/anthropic-skills/skills/claude-api/python/claude-api/batches.md +13 -0
- package/bundled/upstream/anthropic-skills/skills/claude-api/python/claude-api/files-api.md +7 -2
- package/bundled/upstream/anthropic-skills/skills/claude-api/python/claude-api/streaming.md +18 -1
- package/bundled/upstream/anthropic-skills/skills/claude-api/python/managed-agents/README.md +9 -7
- package/bundled/upstream/anthropic-skills/skills/claude-api/ruby/claude-api.md +27 -0
- package/bundled/upstream/anthropic-skills/skills/claude-api/shared/agent-design.md +1 -1
- package/bundled/upstream/anthropic-skills/skills/claude-api/shared/anthropic-cli.md +246 -0
- package/bundled/upstream/anthropic-skills/skills/claude-api/shared/claude-platform-on-aws.md +59 -0
- package/bundled/upstream/anthropic-skills/skills/claude-api/shared/error-codes.md +24 -4
- package/bundled/upstream/anthropic-skills/skills/claude-api/shared/live-sources.md +8 -0
- package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-api-reference.md +48 -4
- package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-client-patterns.md +3 -1
- package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-core.md +15 -1
- package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-environments.md +10 -6
- package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-events.md +25 -0
- package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-onboarding.md +48 -18
- package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-overview.md +8 -5
- package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-scheduled-deployments.md +144 -0
- package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-self-hosted-sandboxes.md +2 -1
- package/bundled/upstream/anthropic-skills/skills/claude-api/shared/managed-agents-tools.md +46 -9
- package/bundled/upstream/anthropic-skills/skills/claude-api/shared/model-migration.md +259 -3
- package/bundled/upstream/anthropic-skills/skills/claude-api/shared/models.md +17 -9
- package/bundled/upstream/anthropic-skills/skills/claude-api/shared/prompt-caching.md +55 -3
- package/bundled/upstream/anthropic-skills/skills/claude-api/shared/token-counting.md +56 -0
- package/bundled/upstream/anthropic-skills/skills/claude-api/shared/tool-use-concepts.md +22 -2
- package/bundled/upstream/anthropic-skills/skills/claude-api/typescript/claude-api/README.md +45 -6
- package/bundled/upstream/anthropic-skills/skills/claude-api/typescript/claude-api/streaming.md +1 -1
- package/bundled/upstream/anthropic-skills/skills/claude-api/typescript/managed-agents/README.md +10 -12
- package/bundled/upstream/anthropic-skills/skills/frontend-design/SKILL.md +39 -26
- package/bundled/upstream/ecc/.omc-source/bundle.json +2 -2
- package/bundled/upstream/ecc/.omc-source/manifests/.claude-plugin/marketplace.json +2 -2
- package/bundled/upstream/ecc/.omc-source/provenance.json +602 -550
- package/bundled/upstream/ecc/agents/agent-evaluator.md +206 -0
- package/bundled/upstream/ecc/agents/performance-optimizer.md +9 -9
- package/bundled/upstream/ecc/agents/php-reviewer.md +109 -0
- package/bundled/upstream/ecc/agents/spec-miner.md +217 -0
- package/bundled/upstream/ecc/agents/vue-reviewer.md +206 -0
- package/bundled/upstream/ecc/commands/cost-report.md +58 -84
- package/bundled/upstream/ecc/commands/epic-claim.md +26 -0
- package/bundled/upstream/ecc/commands/epic-decompose.md +23 -0
- package/bundled/upstream/ecc/commands/epic-publish.md +23 -0
- package/bundled/upstream/ecc/commands/epic-review.md +23 -0
- package/bundled/upstream/ecc/commands/epic-sync.md +23 -0
- package/bundled/upstream/ecc/commands/epic-unblock.md +22 -0
- package/bundled/upstream/ecc/commands/epic-validate.md +22 -0
- package/bundled/upstream/ecc/commands/instinct-status.md +8 -8
- package/bundled/upstream/ecc/commands/multi-backend.md +2 -0
- package/bundled/upstream/ecc/commands/multi-execute.md +2 -0
- package/bundled/upstream/ecc/commands/multi-frontend.md +2 -0
- package/bundled/upstream/ecc/commands/multi-plan.md +2 -0
- package/bundled/upstream/ecc/commands/multi-workflow.md +2 -0
- package/bundled/upstream/ecc/commands/orch-add-feature.md +36 -0
- package/bundled/upstream/ecc/commands/orch-build-mvp.md +36 -0
- package/bundled/upstream/ecc/commands/orch-change-feature.md +38 -0
- package/bundled/upstream/ecc/commands/orch-fix-defect.md +38 -0
- package/bundled/upstream/ecc/commands/orch-refine-code.md +39 -0
- package/bundled/upstream/ecc/commands/quality-gate.md +34 -16
- package/bundled/upstream/ecc/commands/vue-review.md +174 -0
- package/bundled/upstream/ecc/skills/accessibility/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/agent-architecture-audit/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/agent-eval/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/agent-harness-construction/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/agent-introspection-debugging/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/agent-payment-x402/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/agent-self-evaluation/SKILL.md +182 -0
- package/bundled/upstream/ecc/skills/agent-self-evaluation/examples/high-score-example.md +87 -0
- package/bundled/upstream/ecc/skills/agent-self-evaluation/examples/low-score-example.md +86 -0
- package/bundled/upstream/ecc/skills/agent-self-evaluation/references/evaluation-criteria.md +71 -0
- package/bundled/upstream/ecc/skills/agent-self-evaluation/references/hook-integration.md +64 -0
- package/bundled/upstream/ecc/skills/agent-self-evaluation/scripts/evaluate.py +408 -0
- package/bundled/upstream/ecc/skills/agent-self-evaluation/templates/evaluation-report.md +86 -0
- package/bundled/upstream/ecc/skills/agent-sort/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/agentic-engineering/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/agentic-os/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/ai-first-engineering/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/ai-regression-testing/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/android-clean-architecture/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/angular-developer/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/api-connector-builder/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/api-design/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/architecture-decision-records/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/article-writing/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/automation-audit-ops/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/autonomous-agent-harness/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/autonomous-loops/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/backend-patterns/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/benchmark/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/benchmark-methodology/SKILL.md +190 -0
- package/bundled/upstream/ecc/skills/benchmark-optimization-loop/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/blender-motion-state-inspection/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/blueprint/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/brand-discovery/SKILL.md +145 -0
- package/bundled/upstream/ecc/skills/brand-discovery/references/10_purpose-why.md +40 -0
- package/bundled/upstream/ecc/skills/brand-discovery/references/20_positioning.md +44 -0
- package/bundled/upstream/ecc/skills/brand-discovery/references/30_audience-niche.md +52 -0
- package/bundled/upstream/ecc/skills/brand-discovery/references/40_personality-archetype.md +57 -0
- package/bundled/upstream/ecc/skills/brand-discovery/references/50_voice-tone.md +59 -0
- package/bundled/upstream/ecc/skills/brand-discovery/references/60_narrative-story.md +50 -0
- package/bundled/upstream/ecc/skills/brand-discovery/references/70_founder-tension.md +49 -0
- package/bundled/upstream/ecc/skills/brand-discovery/references/90_SYNTHESIS.md +133 -0
- package/bundled/upstream/ecc/skills/brand-voice/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/browser-qa/SKILL.md +22 -4
- package/bundled/upstream/ecc/skills/bun-runtime/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/canary-watch/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/carrier-relationship-management/SKILL.md +1 -1
- package/bundled/upstream/ecc/skills/cisco-ios-patterns/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/ck/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/claude-devfleet/SKILL.md +11 -2
- package/bundled/upstream/ecc/skills/click-path-audit/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/clickhouse-io/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/code-tour/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/codebase-onboarding/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/codehealth-mcp/SKILL.md +167 -0
- package/bundled/upstream/ecc/skills/coding-standards/SKILL.md +4 -2
- package/bundled/upstream/ecc/skills/competitive-platform-analysis/SKILL.md +214 -0
- package/bundled/upstream/ecc/skills/competitive-report-structure/SKILL.md +162 -0
- package/bundled/upstream/ecc/skills/compose-multiplatform-patterns/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/config-gc/SKILL.md +120 -0
- package/bundled/upstream/ecc/skills/configure-ecc/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/connections-optimizer/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/content-engine/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/content-hash-cache-pattern/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/context-budget/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/continuous-agent-loop/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/continuous-learning/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/continuous-learning-v2/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/continuous-learning-v2/agents/observer-loop.sh +14 -1
- package/bundled/upstream/ecc/skills/continuous-learning-v2/hooks/observe.sh +31 -7
- package/bundled/upstream/ecc/skills/continuous-learning-v2/scripts/instinct-cli.py +90 -2
- package/bundled/upstream/ecc/skills/continuous-learning-v2/scripts/test_parse_instinct.py +27 -0
- package/bundled/upstream/ecc/skills/cost-aware-llm-pipeline/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/cost-tracking/SKILL.md +58 -108
- package/bundled/upstream/ecc/skills/council/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/cpp-coding-standards/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/cpp-testing/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/crosspost/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/csharp-testing/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/customer-billing-ops/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/customs-trade-compliance/SKILL.md +1 -1
- package/bundled/upstream/ecc/skills/dart-flutter-patterns/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/dashboard-builder/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/data-scraper-agent/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/data-throughput-accelerator/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/database-migrations/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/deep-research/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/defi-amm-security/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/deployment-patterns/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/design-system/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/django-celery/SKILL.md +3 -2
- package/bundled/upstream/ecc/skills/django-patterns/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/django-security/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/django-tdd/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/django-verification/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/dmux-workflows/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/docker-patterns/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/documentation-lookup/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/dotnet-patterns/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/dynamic-workflow-mode/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/e2e-testing/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/ecc-guide/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/ecc-tools-cost-audit/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/email-ops/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/energy-procurement/SKILL.md +1 -1
- package/bundled/upstream/ecc/skills/enterprise-agent-ops/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/error-handling/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/eval-harness/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/evm-token-decimals/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/exa-search/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/fal-ai-media/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/fastapi-patterns/SKILL.md +375 -188
- package/bundled/upstream/ecc/skills/finance-billing-ops/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/flox-environments/SKILL.md +3 -2
- package/bundled/upstream/ecc/skills/flutter-dart-code-review/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/frontend-a11y/SKILL.md +3 -3
- package/bundled/upstream/ecc/skills/frontend-design-direction/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/frontend-patterns/SKILL.md +23 -8
- package/bundled/upstream/ecc/skills/frontend-slides/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/frontend-slides/scripts/export-pdf.sh +1 -1
- package/bundled/upstream/ecc/skills/fsharp-testing/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/gan-style-harness/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/gateguard/SKILL.md +9 -1
- package/bundled/upstream/ecc/skills/generating-python-installer/SKILL.md +820 -0
- package/bundled/upstream/ecc/skills/git-workflow/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/github-ops/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/golang-patterns/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/golang-testing/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/google-workspace-ops/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/healthcare-cdss-patterns/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/healthcare-emr-patterns/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/healthcare-eval-harness/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/healthcare-phi-compliance/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/hermes-imports/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/hexagonal-architecture/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/hipaa-compliance/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/homelab-network-readiness/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/homelab-network-setup/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/homelab-pihole-dns/SKILL.md +10 -9
- package/bundled/upstream/ecc/skills/homelab-vlan-segmentation/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/homelab-wireguard-vpn/SKILL.md +4 -3
- package/bundled/upstream/ecc/skills/inherit-legacy-style/SKILL.md +157 -0
- package/bundled/upstream/ecc/skills/intent-driven-development/SKILL.md +360 -0
- package/bundled/upstream/ecc/skills/inventory-demand-planning/SKILL.md +1 -1
- package/bundled/upstream/ecc/skills/investor-materials/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/investor-outreach/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/ios-icon-gen/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/iterative-retrieval/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/ito-basket-compare/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/ito-data-atlas-agent/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/ito-market-intelligence/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/ito-trade-planner/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/java-coding-standards/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/jira-integration/SKILL.md +17 -7
- package/bundled/upstream/ecc/skills/jpa-patterns/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/knowledge-ops/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/kotlin-coroutines-flows/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/kotlin-exposed-patterns/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/kotlin-ktor-patterns/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/kotlin-patterns/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/kotlin-testing/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/kubernetes-patterns/SKILL.md +756 -0
- package/bundled/upstream/ecc/skills/laravel-patterns/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/laravel-plugin-discovery/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/laravel-security/SKILL.md +826 -163
- package/bundled/upstream/ecc/skills/laravel-tdd/SKILL.md +541 -149
- package/bundled/upstream/ecc/skills/laravel-verification/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/latency-critical-systems/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/lead-intelligence/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/llm-trading-agent-security/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/logistics-exception-management/SKILL.md +1 -1
- package/bundled/upstream/ecc/skills/make-interfaces-feel-better/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/manim-video/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/market-research/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/marketing-campaign/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/mcp-server-patterns/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/messages-ops/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/ml-adoption-playbook/SKILL.md +57 -0
- package/bundled/upstream/ecc/skills/mle-workflow/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/motion-patterns/SKILL.md +1 -2
- package/bundled/upstream/ecc/skills/motion-ui/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/mysql-patterns/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/nanoclaw-repl/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/nestjs-patterns/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/netmiko-ssh-automation/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/network-bgp-diagnostics/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/network-config-validation/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/network-interface-health/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/nextjs-turbopack/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/nodejs-keccak256/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/nutrient-document-processing/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/nuxt4-patterns/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/openclaw-persona-forge/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/opensource-pipeline/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/orch-add-feature/SKILL.md +45 -0
- package/bundled/upstream/ecc/skills/orch-build-mvp/SKILL.md +49 -0
- package/bundled/upstream/ecc/skills/orch-change-feature/SKILL.md +43 -0
- package/bundled/upstream/ecc/skills/orch-fix-defect/SKILL.md +43 -0
- package/bundled/upstream/ecc/skills/orch-pipeline/SKILL.md +121 -0
- package/bundled/upstream/ecc/skills/orch-refine-code/SKILL.md +44 -0
- package/bundled/upstream/ecc/skills/parallel-execution-optimizer/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/perl-patterns/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/perl-security/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/perl-testing/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/plan-orchestrate/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/plankton-code-quality/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/postgres-patterns/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/prediction-market-oracle-research/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/prediction-market-risk-review/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/prisma-patterns/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/product-capability/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/product-lens/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/production-audit/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/production-scheduling/SKILL.md +1 -1
- package/bundled/upstream/ecc/skills/project-flow-ops/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/prompt-optimizer/SKILL.md +1 -1
- package/bundled/upstream/ecc/skills/python-patterns/SKILL.md +4 -3
- package/bundled/upstream/ecc/skills/python-testing/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/pytorch-patterns/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/quality-nonconformance/SKILL.md +1 -1
- package/bundled/upstream/ecc/skills/quarkus-patterns/SKILL.md +51 -50
- package/bundled/upstream/ecc/skills/quarkus-security/SKILL.md +25 -24
- package/bundled/upstream/ecc/skills/quarkus-tdd/SKILL.md +73 -72
- package/bundled/upstream/ecc/skills/quarkus-verification/SKILL.md +8 -7
- package/bundled/upstream/ecc/skills/ralphinho-rfc-pipeline/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/react-patterns/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/react-performance/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/react-testing/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/recsys-pipeline-architect/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/recursive-decision-ledger/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/redis-patterns/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/regex-vs-llm-structured-text/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/repo-scan/SKILL.md +64 -63
- package/bundled/upstream/ecc/skills/research-ops/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/returns-reverse-logistics/SKILL.md +1 -1
- package/bundled/upstream/ecc/skills/rules-distill/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/rust-patterns/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/rust-testing/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/safety-guard/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/santa-method/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/scientific-db-pubmed-database/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/scientific-db-uspto-database/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/scientific-pkg-gget/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/scientific-thinking-literature-review/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/scientific-thinking-scholar-evaluation/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/search-first/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/security-bounty-hunter/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/security-review/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/security-scan/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/seo/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/skill-comply/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/skill-comply/scripts/runner.py +8 -0
- package/bundled/upstream/ecc/skills/skill-scout/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/skill-stocktake/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/social-graph-ranker/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/social-publisher/SKILL.md +17 -2
- package/bundled/upstream/ecc/skills/springboot-patterns/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/springboot-security/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/springboot-tdd/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/springboot-verification/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/strategic-compact/SKILL.md +10 -5
- package/bundled/upstream/ecc/skills/swift-actor-persistence/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/swift-protocol-di-testing/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/taste/SKILL.md +264 -0
- package/bundled/upstream/ecc/skills/taste/references/genre-taxonomy.md +87 -0
- package/bundled/upstream/ecc/skills/tdd-workflow/SKILL.md +64 -1
- package/bundled/upstream/ecc/skills/team-agent-orchestration/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/team-builder/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/terminal-ops/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/tinystruct-patterns/SKILL.md +77 -1
- package/bundled/upstream/ecc/skills/token-budget-advisor/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/ui-demo/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/ui-to-vue/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/uncloud/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/unified-notifications-ops/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/verification-loop/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/video-editing/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/videodb/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/vite-patterns/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/vue-patterns/SKILL.md +471 -0
- package/bundled/upstream/ecc/skills/windows-desktop-e2e/SKILL.md +9 -8
- package/bundled/upstream/ecc/skills/workspace-surface-audit/SKILL.md +2 -1
- package/bundled/upstream/ecc/skills/x-api/SKILL.md +2 -1
- package/bundled/upstream/impeccable/.omc-source/bundle.json +2 -2
- package/bundled/upstream/impeccable/.omc-source/provenance.json +30 -25
- package/bundled/upstream/impeccable/skills/impeccable/SKILL.md +2 -2
- package/bundled/upstream/impeccable/skills/impeccable/reference/hooks.md +10 -8
- package/bundled/upstream/impeccable/skills/impeccable/reference/live.md +1 -1
- package/bundled/upstream/impeccable/skills/impeccable/scripts/context.mjs +707 -26
- package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/browser/injected/index.mjs +202 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/cli/main.mjs +57 -11
- package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/design-system.mjs +750 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/detect-antipatterns-browser.js +231 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/detect-antipatterns.mjs +7 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/engines/browser/detect-url.mjs +29 -4
- package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs +20 -4
- package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/engines/static-html/css-cascade.mjs +2 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/engines/static-html/detect-html.mjs +27 -1
- package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/registry/antipatterns.mjs +29 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/detector/shared/inline-ignores.mjs +148 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/hook-admin.mjs +135 -48
- package/bundled/upstream/impeccable/skills/impeccable/scripts/hook-before-edit.mjs +5 -2
- package/bundled/upstream/impeccable/skills/impeccable/scripts/hook-lib.mjs +375 -29
- package/bundled/upstream/impeccable/skills/impeccable/scripts/lib/design-parser.mjs +8 -1
- package/bundled/upstream/impeccable/skills/impeccable/scripts/lib/impeccable-config.mjs +638 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/lib/impeccable-paths.mjs +37 -35
- package/bundled/upstream/impeccable/skills/impeccable/scripts/lib/target-args.mjs +42 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/live-browser.js +159 -72
- package/bundled/upstream/impeccable/skills/impeccable/scripts/live-poll.mjs +16 -11
- package/bundled/upstream/impeccable/skills/impeccable/scripts/live-server.mjs +9 -8
- package/bundled/upstream/impeccable/skills/impeccable/scripts/live-target.mjs +30 -0
- package/bundled/upstream/impeccable/skills/impeccable/scripts/live-wrap.mjs +1 -1
- package/bundled/upstream/impeccable/skills/impeccable/scripts/live.mjs +72 -21
- package/bundled/upstream/oh-my-claudecode/.omc-source/bundle.json +2 -2
- package/bundled/upstream/oh-my-claudecode/.omc-source/provenance.json +103 -103
- package/bundled/upstream/oh-my-claudecode/agents/analyst.md +6 -0
- package/bundled/upstream/oh-my-claudecode/agents/architect.md +6 -0
- package/bundled/upstream/oh-my-claudecode/agents/code-reviewer.md +6 -0
- package/bundled/upstream/oh-my-claudecode/agents/critic.md +6 -0
- package/bundled/upstream/oh-my-claudecode/agents/debugger.md +6 -0
- package/bundled/upstream/oh-my-claudecode/agents/security-reviewer.md +6 -0
- package/bundled/upstream/oh-my-claudecode/agents/tracer.md +6 -0
- package/bundled/upstream/oh-my-claudecode/agents/verifier.md +7 -0
- package/bundled/upstream/oh-my-claudecode/hooks/hooks.json +9 -2
- package/bundled/upstream/oh-my-claudecode/skills/ask/SKILL.md +15 -4
- package/bundled/upstream/oh-my-claudecode/skills/autopilot/SKILL.md +30 -1
- package/bundled/upstream/oh-my-claudecode/skills/cancel/SKILL.md +29 -35
- package/bundled/upstream/oh-my-claudecode/skills/ccg/SKILL.md +20 -9
- package/bundled/upstream/oh-my-claudecode/skills/configure-notifications/SKILL.md +2 -2
- package/bundled/upstream/oh-my-claudecode/skills/omc-reference/SKILL.md +6 -4
- package/bundled/upstream/oh-my-claudecode/skills/omc-setup/phases/02-configure.md +1 -1
- package/bundled/upstream/oh-my-claudecode/skills/omc-setup/phases/03-integrations.md +2 -1
- package/bundled/upstream/oh-my-claudecode/skills/omc-setup/phases/04-welcome.md +2 -2
- package/bundled/upstream/oh-my-claudecode/skills/omc-teams/SKILL.md +29 -18
- package/bundled/upstream/oh-my-claudecode/skills/team/SKILL.md +127 -165
- package/bundled/upstream/superpowers/.omc-source/bundle.json +2 -2
- package/bundled/upstream/superpowers/.omc-source/provenance.json +59 -52
- package/bundled/upstream/superpowers/hooks/hooks-codex.json +16 -0
- package/bundled/upstream/superpowers/hooks/session-start +4 -12
- package/bundled/upstream/superpowers/hooks/session-start-codex +26 -0
- package/bundled/upstream/superpowers/skills/brainstorming/SKILL.md +5 -10
- package/bundled/upstream/superpowers/skills/brainstorming/scripts/frame-template.html +25 -26
- package/bundled/upstream/superpowers/skills/brainstorming/scripts/helper.js +101 -22
- package/bundled/upstream/superpowers/skills/brainstorming/scripts/server.cjs +399 -30
- package/bundled/upstream/superpowers/skills/brainstorming/scripts/start-server.sh +70 -9
- package/bundled/upstream/superpowers/skills/brainstorming/scripts/stop-server.sh +66 -2
- package/bundled/upstream/superpowers/skills/brainstorming/spec-document-reviewer-prompt.md +1 -1
- package/bundled/upstream/superpowers/skills/brainstorming/visual-companion.md +33 -22
- package/bundled/upstream/superpowers/skills/dispatching-parallel-agents/SKILL.md +9 -6
- package/bundled/upstream/superpowers/skills/executing-plans/SKILL.md +2 -2
- package/bundled/upstream/superpowers/skills/finishing-a-development-branch/SKILL.md +2 -12
- package/bundled/upstream/superpowers/skills/receiving-code-review/SKILL.md +2 -2
- package/bundled/upstream/superpowers/skills/requesting-code-review/SKILL.md +2 -2
- package/bundled/upstream/superpowers/skills/requesting-code-review/code-reviewer.md +15 -11
- package/bundled/upstream/superpowers/skills/subagent-driven-development/SKILL.md +206 -67
- package/bundled/upstream/superpowers/skills/subagent-driven-development/implementer-prompt.md +30 -4
- package/bundled/upstream/superpowers/skills/subagent-driven-development/scripts/review-package +44 -0
- package/bundled/upstream/superpowers/skills/subagent-driven-development/scripts/sdd-workspace +22 -0
- package/bundled/upstream/superpowers/skills/subagent-driven-development/scripts/task-brief +40 -0
- package/bundled/upstream/superpowers/skills/subagent-driven-development/task-reviewer-prompt.md +188 -0
- package/bundled/upstream/superpowers/skills/systematic-debugging/SKILL.md +1 -1
- package/bundled/upstream/superpowers/skills/test-driven-development/SKILL.md +1 -1
- package/bundled/upstream/superpowers/skills/using-git-worktrees/SKILL.md +9 -22
- package/bundled/upstream/superpowers/skills/using-superpowers/SKILL.md +19 -15
- package/bundled/upstream/superpowers/skills/using-superpowers/references/antigravity-tools.md +96 -0
- package/bundled/upstream/superpowers/skills/using-superpowers/references/claude-code-tools.md +50 -0
- package/bundled/upstream/superpowers/skills/using-superpowers/references/codex-tools.md +25 -12
- package/bundled/upstream/superpowers/skills/using-superpowers/references/copilot-tools.md +27 -20
- package/bundled/upstream/superpowers/skills/using-superpowers/references/gemini-tools.md +44 -32
- package/bundled/upstream/superpowers/skills/using-superpowers/references/pi-tools.md +28 -0
- package/bundled/upstream/superpowers/skills/writing-plans/SKILL.md +22 -0
- package/bundled/upstream/superpowers/skills/writing-plans/plan-document-reviewer-prompt.md +1 -1
- package/bundled/upstream/superpowers/skills/writing-skills/SKILL.md +52 -18
- package/bundled/upstream/superpowers/skills/writing-skills/anthropic-best-practices.md +88 -88
- package/bundled/upstream/superpowers/skills/writing-skills/persuasion-principles.md +3 -3
- package/package.json +1 -1
- package/bundled/upstream/superpowers/skills/subagent-driven-development/code-quality-reviewer-prompt.md +0 -25
- package/bundled/upstream/superpowers/skills/subagent-driven-development/spec-reviewer-prompt.md +0 -61
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: quarkus-tdd
|
|
3
3
|
description: Test-driven development for Quarkus 3.x LTS using JUnit 5, Mockito, REST Assured, Camel testing, and JaCoCo. Use when adding features, fixing bugs, or refactoring event-driven services.
|
|
4
|
-
|
|
4
|
+
metadata:
|
|
5
|
+
origin: ECC
|
|
5
6
|
---
|
|
6
7
|
|
|
7
8
|
# Quarkus TDD Workflow
|
|
@@ -34,19 +35,19 @@ Follow this structured approach for comprehensive, readable tests:
|
|
|
34
35
|
@ExtendWith(MockitoExtension.class)
|
|
35
36
|
@DisplayName("OrderService Unit Tests")
|
|
36
37
|
class OrderServiceTest {
|
|
37
|
-
|
|
38
|
+
|
|
38
39
|
@Mock
|
|
39
40
|
private OrderRepository orderRepository;
|
|
40
|
-
|
|
41
|
+
|
|
41
42
|
@Mock
|
|
42
43
|
private EventService eventService;
|
|
43
|
-
|
|
44
|
+
|
|
44
45
|
@Mock
|
|
45
46
|
private FulfillmentPublisher fulfillmentPublisher;
|
|
46
|
-
|
|
47
|
+
|
|
47
48
|
@InjectMocks
|
|
48
49
|
private OrderService orderService;
|
|
49
|
-
|
|
50
|
+
|
|
50
51
|
private CreateOrderCommand validCommand;
|
|
51
52
|
|
|
52
53
|
@BeforeEach
|
|
@@ -60,16 +61,16 @@ class OrderServiceTest {
|
|
|
60
61
|
@Nested
|
|
61
62
|
@DisplayName("Tests for createOrder")
|
|
62
63
|
class CreateOrder {
|
|
63
|
-
|
|
64
|
+
|
|
64
65
|
@Test
|
|
65
66
|
@DisplayName("Should persist order and publish fulfillment event")
|
|
66
67
|
void givenValidCommand_whenCreateOrder_thenPersistsAndPublishes() {
|
|
67
68
|
// ARRANGE
|
|
68
69
|
doNothing().when(orderRepository).persist(any(Order.class));
|
|
69
|
-
|
|
70
|
+
|
|
70
71
|
// ACT
|
|
71
72
|
OrderReceipt receipt = orderService.createOrder(validCommand);
|
|
72
|
-
|
|
73
|
+
|
|
73
74
|
// ASSERT
|
|
74
75
|
assertThat(receipt).isNotNull();
|
|
75
76
|
assertThat(receipt.customerId()).isEqualTo("customer-123");
|
|
@@ -83,7 +84,7 @@ class OrderServiceTest {
|
|
|
83
84
|
void givenMissingCustomerId_whenCreateOrder_thenThrowsBadRequest() {
|
|
84
85
|
// ARRANGE
|
|
85
86
|
CreateOrderCommand invalid = new CreateOrderCommand("", validCommand.lines());
|
|
86
|
-
|
|
87
|
+
|
|
87
88
|
// ACT & ASSERT
|
|
88
89
|
WebApplicationException exception = assertThrows(
|
|
89
90
|
WebApplicationException.class,
|
|
@@ -101,13 +102,13 @@ class OrderServiceTest {
|
|
|
101
102
|
// ARRANGE
|
|
102
103
|
doThrow(new PersistenceException("database unavailable"))
|
|
103
104
|
.when(orderRepository).persist(any(Order.class));
|
|
104
|
-
|
|
105
|
+
|
|
105
106
|
// ACT & ASSERT
|
|
106
107
|
PersistenceException exception = assertThrows(
|
|
107
108
|
PersistenceException.class,
|
|
108
109
|
() -> orderService.createOrder(validCommand)
|
|
109
110
|
);
|
|
110
|
-
|
|
111
|
+
|
|
111
112
|
assertThat(exception.getMessage()).contains("database unavailable");
|
|
112
113
|
verify(eventService).createErrorEvent(
|
|
113
114
|
eq(validCommand),
|
|
@@ -125,7 +126,7 @@ class OrderServiceTest {
|
|
|
125
126
|
NullPointerException.class,
|
|
126
127
|
() -> orderService.createOrder(null)
|
|
127
128
|
);
|
|
128
|
-
|
|
129
|
+
|
|
129
130
|
verify(orderRepository, never()).persist(any(Order.class));
|
|
130
131
|
}
|
|
131
132
|
}
|
|
@@ -184,7 +185,7 @@ class BusinessRulesRouteTest {
|
|
|
184
185
|
// ARRANGE
|
|
185
186
|
MockEndpoint mockRabbitMQ = camelContext.getEndpoint("mock:rabbitmq", MockEndpoint.class);
|
|
186
187
|
mockRabbitMQ.expectedMessageCount(1);
|
|
187
|
-
|
|
188
|
+
|
|
188
189
|
// Replace real endpoint with mock for testing
|
|
189
190
|
camelContext.getRouteController().stopRoute("business-rules-publisher");
|
|
190
191
|
AdviceWith.adviceWith(camelContext, "business-rules-publisher", advice -> {
|
|
@@ -192,13 +193,13 @@ class BusinessRulesRouteTest {
|
|
|
192
193
|
advice.weaveByToString(".*spring-rabbitmq.*").replace().to("mock:rabbitmq");
|
|
193
194
|
});
|
|
194
195
|
camelContext.getRouteController().startRoute("business-rules-publisher");
|
|
195
|
-
|
|
196
|
+
|
|
196
197
|
// ACT
|
|
197
198
|
producerTemplate.sendBody("direct:business-rules-publisher", testPayload);
|
|
198
|
-
|
|
199
|
+
|
|
199
200
|
// ASSERT — body is a JSON String after .marshal().json(JsonLibrary.Jackson)
|
|
200
201
|
mockRabbitMQ.assertIsSatisfied(5000);
|
|
201
|
-
|
|
202
|
+
|
|
202
203
|
assertThat(mockRabbitMQ.getExchanges()).hasSize(1);
|
|
203
204
|
String body = mockRabbitMQ.getExchanges().get(0).getIn().getBody(String.class);
|
|
204
205
|
assertThat(body).contains("\"documentId\":1");
|
|
@@ -211,19 +212,19 @@ class BusinessRulesRouteTest {
|
|
|
211
212
|
MockEndpoint mockMarshal = new MockEndpoint("mock:marshal");
|
|
212
213
|
camelContext.addEndpoint("mock:marshal", mockMarshal);
|
|
213
214
|
mockMarshal.expectedMessageCount(1);
|
|
214
|
-
|
|
215
|
+
|
|
215
216
|
camelContext.getRouteController().stopRoute("business-rules-publisher");
|
|
216
217
|
AdviceWith.adviceWith(camelContext, "business-rules-publisher", advice -> {
|
|
217
218
|
advice.weaveAddLast().to("mock:marshal");
|
|
218
219
|
});
|
|
219
220
|
camelContext.getRouteController().startRoute("business-rules-publisher");
|
|
220
|
-
|
|
221
|
+
|
|
221
222
|
// ACT
|
|
222
223
|
producerTemplate.sendBody("direct:business-rules-publisher", testPayload);
|
|
223
|
-
|
|
224
|
+
|
|
224
225
|
// ASSERT
|
|
225
226
|
mockMarshal.assertIsSatisfied(5000);
|
|
226
|
-
|
|
227
|
+
|
|
227
228
|
String body = mockMarshal.getExchanges().get(0).getIn().getBody(String.class);
|
|
228
229
|
assertThat(body).contains("\"documentId\":1");
|
|
229
230
|
assertThat(body).contains("\"flowProfile\":\"BASIC\"");
|
|
@@ -240,17 +241,17 @@ class BusinessRulesRouteTest {
|
|
|
240
241
|
// ARRANGE
|
|
241
242
|
MockEndpoint mockInvoice = camelContext.getEndpoint("mock:invoice", MockEndpoint.class);
|
|
242
243
|
mockInvoice.expectedMessageCount(1);
|
|
243
|
-
|
|
244
|
+
|
|
244
245
|
camelContext.getRouteController().stopRoute("document-processing");
|
|
245
246
|
AdviceWith.adviceWith(camelContext, "document-processing", advice -> {
|
|
246
247
|
advice.weaveByToString(".*direct:process-invoice.*").replace().to("mock:invoice");
|
|
247
248
|
});
|
|
248
249
|
camelContext.getRouteController().startRoute("document-processing");
|
|
249
|
-
|
|
250
|
+
|
|
250
251
|
// ACT
|
|
251
|
-
producerTemplate.sendBodyAndHeader("direct:process-document",
|
|
252
|
+
producerTemplate.sendBodyAndHeader("direct:process-document",
|
|
252
253
|
testPayload, "documentType", "INVOICE");
|
|
253
|
-
|
|
254
|
+
|
|
254
255
|
// ASSERT
|
|
255
256
|
mockInvoice.assertIsSatisfied(5000);
|
|
256
257
|
}
|
|
@@ -261,23 +262,23 @@ class BusinessRulesRouteTest {
|
|
|
261
262
|
// ARRANGE
|
|
262
263
|
MockEndpoint mockError = camelContext.getEndpoint("mock:error", MockEndpoint.class);
|
|
263
264
|
mockError.expectedMessageCount(1);
|
|
264
|
-
|
|
265
|
+
|
|
265
266
|
camelContext.getRouteController().stopRoute("document-processing");
|
|
266
267
|
AdviceWith.adviceWith(camelContext, "document-processing", advice -> {
|
|
267
268
|
advice.weaveByToString(".*direct:validation-error-handler.*")
|
|
268
269
|
.replace().to("mock:error");
|
|
269
270
|
});
|
|
270
271
|
camelContext.getRouteController().startRoute("document-processing");
|
|
271
|
-
|
|
272
|
+
|
|
272
273
|
// Mock validator bean to throw exception
|
|
273
274
|
when(documentValidator.validate(any())).thenThrow(new ValidationException("Invalid document"));
|
|
274
|
-
|
|
275
|
+
|
|
275
276
|
// ACT
|
|
276
277
|
producerTemplate.sendBody("direct:process-document", testPayload);
|
|
277
|
-
|
|
278
|
+
|
|
278
279
|
// ASSERT
|
|
279
280
|
mockError.assertIsSatisfied(5000);
|
|
280
|
-
|
|
281
|
+
|
|
281
282
|
Exception exception = mockError.getExchanges().get(0).getException();
|
|
282
283
|
assertThat(exception).isInstanceOf(ValidationException.class);
|
|
283
284
|
assertThat(exception.getMessage()).contains("Invalid document");
|
|
@@ -295,13 +296,13 @@ class EventServiceTest {
|
|
|
295
296
|
|
|
296
297
|
@Mock
|
|
297
298
|
private EventRepository eventRepository;
|
|
298
|
-
|
|
299
|
+
|
|
299
300
|
@Mock
|
|
300
301
|
private ObjectMapper objectMapper;
|
|
301
|
-
|
|
302
|
+
|
|
302
303
|
@InjectMocks
|
|
303
304
|
private EventService eventService;
|
|
304
|
-
|
|
305
|
+
|
|
305
306
|
private BusinessRulesPayload testPayload;
|
|
306
307
|
|
|
307
308
|
@BeforeEach
|
|
@@ -314,19 +315,19 @@ class EventServiceTest {
|
|
|
314
315
|
@Nested
|
|
315
316
|
@DisplayName("Tests for createSuccessEvent")
|
|
316
317
|
class CreateSuccessEvent {
|
|
317
|
-
|
|
318
|
+
|
|
318
319
|
@Test
|
|
319
320
|
@DisplayName("Should create success event with correct attributes")
|
|
320
321
|
void givenValidPayload_whenCreateSuccessEvent_thenEventPersisted() throws Exception {
|
|
321
322
|
// ARRANGE
|
|
322
323
|
when(objectMapper.writeValueAsString(testPayload)).thenReturn("{\"documentId\":1}");
|
|
323
|
-
|
|
324
|
+
|
|
324
325
|
// ACT
|
|
325
|
-
assertDoesNotThrow(() ->
|
|
326
|
+
assertDoesNotThrow(() ->
|
|
326
327
|
eventService.createSuccessEvent(testPayload, "DOCUMENT_PROCESSED"));
|
|
327
|
-
|
|
328
|
+
|
|
328
329
|
// ASSERT
|
|
329
|
-
verify(eventRepository).persist(argThat(event ->
|
|
330
|
+
verify(eventRepository).persist(argThat(event ->
|
|
330
331
|
event.getType().equals("DOCUMENT_PROCESSED") &&
|
|
331
332
|
event.getStatus() == EventStatus.SUCCESS &&
|
|
332
333
|
event.getPayload().equals("{\"documentId\":1}") &&
|
|
@@ -339,13 +340,13 @@ class EventServiceTest {
|
|
|
339
340
|
void givenNullPayload_whenCreateSuccessEvent_thenThrowsException() {
|
|
340
341
|
// ARRANGE
|
|
341
342
|
Object nullPayload = null;
|
|
342
|
-
|
|
343
|
+
|
|
343
344
|
// ACT & ASSERT
|
|
344
345
|
NullPointerException exception = assertThrows(
|
|
345
346
|
NullPointerException.class,
|
|
346
347
|
() -> eventService.createSuccessEvent(nullPayload, "EVENT_TYPE")
|
|
347
348
|
);
|
|
348
|
-
|
|
349
|
+
|
|
349
350
|
assertThat(exception.getMessage()).isEqualTo("Payload cannot be null");
|
|
350
351
|
verify(eventRepository, never()).persist(any());
|
|
351
352
|
}
|
|
@@ -354,20 +355,20 @@ class EventServiceTest {
|
|
|
354
355
|
@Nested
|
|
355
356
|
@DisplayName("Tests for createErrorEvent")
|
|
356
357
|
class CreateErrorEvent {
|
|
357
|
-
|
|
358
|
+
|
|
358
359
|
@Test
|
|
359
360
|
@DisplayName("Should create error event with error message")
|
|
360
361
|
void givenError_whenCreateErrorEvent_thenEventPersistedWithMessage() throws Exception {
|
|
361
362
|
// ARRANGE
|
|
362
363
|
String errorMessage = "Processing failed";
|
|
363
364
|
when(objectMapper.writeValueAsString(testPayload)).thenReturn("{\"documentId\":1}");
|
|
364
|
-
|
|
365
|
+
|
|
365
366
|
// ACT
|
|
366
|
-
assertDoesNotThrow(() ->
|
|
367
|
+
assertDoesNotThrow(() ->
|
|
367
368
|
eventService.createErrorEvent(testPayload, "PROCESSING_ERROR", errorMessage));
|
|
368
|
-
|
|
369
|
+
|
|
369
370
|
// ASSERT
|
|
370
|
-
verify(eventRepository).persist(argThat(event ->
|
|
371
|
+
verify(eventRepository).persist(argThat(event ->
|
|
371
372
|
event.getType().equals("PROCESSING_ERROR") &&
|
|
372
373
|
event.getStatus() == EventStatus.ERROR &&
|
|
373
374
|
event.getErrorMessage().equals(errorMessage) &&
|
|
@@ -384,7 +385,7 @@ class EventServiceTest {
|
|
|
384
385
|
IllegalArgumentException.class,
|
|
385
386
|
() -> eventService.createErrorEvent(testPayload, "ERROR", blankMessage)
|
|
386
387
|
);
|
|
387
|
-
|
|
388
|
+
|
|
388
389
|
assertThat(exception.getMessage()).contains("Error message cannot be blank");
|
|
389
390
|
}
|
|
390
391
|
}
|
|
@@ -400,13 +401,13 @@ class FileStorageServiceTest {
|
|
|
400
401
|
|
|
401
402
|
@Mock
|
|
402
403
|
private S3Client s3Client;
|
|
403
|
-
|
|
404
|
+
|
|
404
405
|
@Mock
|
|
405
406
|
private ExecutorService executorService;
|
|
406
|
-
|
|
407
|
+
|
|
407
408
|
@InjectMocks
|
|
408
409
|
private FileStorageService fileStorageService;
|
|
409
|
-
|
|
410
|
+
|
|
410
411
|
private InputStream testInputStream;
|
|
411
412
|
private LogContext testLogContext;
|
|
412
413
|
|
|
@@ -421,7 +422,7 @@ class FileStorageServiceTest {
|
|
|
421
422
|
@Nested
|
|
422
423
|
@DisplayName("Tests for uploadOriginalFile")
|
|
423
424
|
class UploadOriginalFile {
|
|
424
|
-
|
|
425
|
+
|
|
425
426
|
@Test
|
|
426
427
|
@DisplayName("Should successfully upload file and return document info")
|
|
427
428
|
void givenValidFile_whenUpload_thenReturnsDocumentInfo() throws Exception {
|
|
@@ -430,23 +431,23 @@ class FileStorageServiceTest {
|
|
|
430
431
|
((Runnable) invocation.getArgument(0)).run();
|
|
431
432
|
return null;
|
|
432
433
|
}).when(executorService).execute(any(Runnable.class));
|
|
433
|
-
|
|
434
|
+
|
|
434
435
|
when(s3Client.putObject(any(PutObjectRequest.class), any(RequestBody.class)))
|
|
435
436
|
.thenReturn(PutObjectResponse.builder().build());
|
|
436
|
-
|
|
437
|
+
|
|
437
438
|
// ACT
|
|
438
|
-
CompletableFuture<StoredDocumentInfo> future =
|
|
439
|
-
fileStorageService.uploadOriginalFile(testInputStream, 1024L,
|
|
439
|
+
CompletableFuture<StoredDocumentInfo> future =
|
|
440
|
+
fileStorageService.uploadOriginalFile(testInputStream, 1024L,
|
|
440
441
|
testLogContext, InvoiceFormat.UBL);
|
|
441
|
-
|
|
442
|
+
|
|
442
443
|
StoredDocumentInfo result = future.join();
|
|
443
|
-
|
|
444
|
+
|
|
444
445
|
// ASSERT
|
|
445
446
|
assertThat(result).isNotNull();
|
|
446
447
|
assertThat(result.getPath()).isNotBlank();
|
|
447
448
|
assertThat(result.getSize()).isEqualTo(1024L);
|
|
448
449
|
assertThat(result.getUploadedAt()).isNotNull();
|
|
449
|
-
|
|
450
|
+
|
|
450
451
|
verify(s3Client).putObject(any(PutObjectRequest.class), any(RequestBody.class));
|
|
451
452
|
}
|
|
452
453
|
|
|
@@ -458,15 +459,15 @@ class FileStorageServiceTest {
|
|
|
458
459
|
((Runnable) invocation.getArgument(0)).run();
|
|
459
460
|
return null;
|
|
460
461
|
}).when(executorService).execute(any(Runnable.class));
|
|
461
|
-
|
|
462
|
+
|
|
462
463
|
when(s3Client.putObject(any(PutObjectRequest.class), any(RequestBody.class)))
|
|
463
464
|
.thenThrow(new StorageException("S3 unavailable"));
|
|
464
|
-
|
|
465
|
+
|
|
465
466
|
// ACT
|
|
466
|
-
CompletableFuture<StoredDocumentInfo> future =
|
|
467
|
-
fileStorageService.uploadOriginalFile(testInputStream, 1024L,
|
|
467
|
+
CompletableFuture<StoredDocumentInfo> future =
|
|
468
|
+
fileStorageService.uploadOriginalFile(testInputStream, 1024L,
|
|
468
469
|
testLogContext, InvoiceFormat.UBL);
|
|
469
|
-
|
|
470
|
+
|
|
470
471
|
// ASSERT
|
|
471
472
|
assertThatThrownBy(() -> future.join())
|
|
472
473
|
.isInstanceOf(CompletionException.class)
|
|
@@ -479,17 +480,17 @@ class FileStorageServiceTest {
|
|
|
479
480
|
void givenLogContext_whenUpload_thenContextPropagated() throws Exception {
|
|
480
481
|
// ARRANGE
|
|
481
482
|
AtomicReference<LogContext> capturedContext = new AtomicReference<>();
|
|
482
|
-
|
|
483
|
+
|
|
483
484
|
doAnswer(invocation -> {
|
|
484
485
|
capturedContext.set(CustomLog.getCurrentContext());
|
|
485
486
|
((Runnable) invocation.getArgument(0)).run();
|
|
486
487
|
return null;
|
|
487
488
|
}).when(executorService).execute(any(Runnable.class));
|
|
488
|
-
|
|
489
|
+
|
|
489
490
|
// ACT
|
|
490
|
-
fileStorageService.uploadOriginalFile(testInputStream, 1024L,
|
|
491
|
+
fileStorageService.uploadOriginalFile(testInputStream, 1024L,
|
|
491
492
|
testLogContext, InvoiceFormat.UBL).join();
|
|
492
|
-
|
|
493
|
+
|
|
493
494
|
// ASSERT
|
|
494
495
|
assertThat(capturedContext.get()).isNotNull();
|
|
495
496
|
assertThat(capturedContext.get().get("traceId")).isEqualTo("trace-123");
|
|
@@ -641,7 +642,7 @@ class DocumentIntegrationTest {
|
|
|
641
642
|
<goal>prepare-agent</goal>
|
|
642
643
|
</goals>
|
|
643
644
|
</execution>
|
|
644
|
-
|
|
645
|
+
|
|
645
646
|
<!-- Generate coverage report -->
|
|
646
647
|
<execution>
|
|
647
648
|
<id>report</id>
|
|
@@ -650,7 +651,7 @@ class DocumentIntegrationTest {
|
|
|
650
651
|
<goal>report</goal>
|
|
651
652
|
</goals>
|
|
652
653
|
</execution>
|
|
653
|
-
|
|
654
|
+
|
|
654
655
|
<!-- Enforce coverage thresholds -->
|
|
655
656
|
<execution>
|
|
656
657
|
<id>check</id>
|
|
@@ -705,14 +706,14 @@ mvn jacoco:check
|
|
|
705
706
|
<artifactId>quarkus-junit5-mockito</artifactId>
|
|
706
707
|
<scope>test</scope>
|
|
707
708
|
</dependency>
|
|
708
|
-
|
|
709
|
+
|
|
709
710
|
<!-- Mockito -->
|
|
710
711
|
<dependency>
|
|
711
712
|
<groupId>org.mockito</groupId>
|
|
712
713
|
<artifactId>mockito-core</artifactId>
|
|
713
714
|
<scope>test</scope>
|
|
714
715
|
</dependency>
|
|
715
|
-
|
|
716
|
+
|
|
716
717
|
<!-- AssertJ (preferred over JUnit assertions) -->
|
|
717
718
|
<dependency>
|
|
718
719
|
<groupId>org.assertj</groupId>
|
|
@@ -720,14 +721,14 @@ mvn jacoco:check
|
|
|
720
721
|
<version>3.24.2</version>
|
|
721
722
|
<scope>test</scope>
|
|
722
723
|
</dependency>
|
|
723
|
-
|
|
724
|
+
|
|
724
725
|
<!-- REST Assured -->
|
|
725
726
|
<dependency>
|
|
726
727
|
<groupId>io.rest-assured</groupId>
|
|
727
728
|
<artifactId>rest-assured</artifactId>
|
|
728
729
|
<scope>test</scope>
|
|
729
730
|
</dependency>
|
|
730
|
-
|
|
731
|
+
|
|
731
732
|
<!-- Camel Testing -->
|
|
732
733
|
<dependency>
|
|
733
734
|
<groupId>org.apache.camel.quarkus</groupId>
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: quarkus-verification
|
|
3
3
|
description: "Verification loop for Quarkus projects: build, static analysis, tests with coverage, security scans, native compilation, and diff review before release or PR."
|
|
4
|
-
|
|
4
|
+
metadata:
|
|
5
|
+
origin: ECC
|
|
5
6
|
---
|
|
6
7
|
|
|
7
8
|
# Quarkus Verification Loop
|
|
@@ -437,28 +438,28 @@ jobs:
|
|
|
437
438
|
runs-on: ubuntu-latest
|
|
438
439
|
steps:
|
|
439
440
|
- uses: actions/checkout@v3
|
|
440
|
-
|
|
441
|
+
|
|
441
442
|
- name: Set up JDK 21
|
|
442
443
|
uses: actions/setup-java@v3
|
|
443
444
|
with:
|
|
444
445
|
java-version: '21'
|
|
445
446
|
distribution: 'temurin'
|
|
446
|
-
|
|
447
|
+
|
|
447
448
|
- name: Cache Maven packages
|
|
448
449
|
uses: actions/cache@v3
|
|
449
450
|
with:
|
|
450
451
|
path: ~/.m2
|
|
451
452
|
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
|
|
452
|
-
|
|
453
|
+
|
|
453
454
|
- name: Build
|
|
454
455
|
run: mvn clean verify -DskipTests
|
|
455
|
-
|
|
456
|
+
|
|
456
457
|
- name: Test with Coverage
|
|
457
458
|
run: mvn test jacoco:report jacoco:check
|
|
458
|
-
|
|
459
|
+
|
|
459
460
|
- name: Security Scan
|
|
460
461
|
run: mvn org.owasp:dependency-check-maven:check
|
|
461
|
-
|
|
462
|
+
|
|
462
463
|
- name: Upload Coverage
|
|
463
464
|
uses: codecov/codecov-action@v3
|
|
464
465
|
with:
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: react-patterns
|
|
3
3
|
description: React 18/19 patterns including hooks discipline, server/client component boundaries, Suspense + error boundaries, form actions, data fetching, state management decision trees, and accessibility-first composition. Use when writing or reviewing React components.
|
|
4
|
-
|
|
4
|
+
metadata:
|
|
5
|
+
origin: ECC
|
|
5
6
|
---
|
|
6
7
|
|
|
7
8
|
# React Patterns
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: react-performance
|
|
3
3
|
description: React and Next.js performance optimization patterns adapted from Vercel Engineering's React Best Practices (https://github.com/vercel-labs/agent-skills). Organizes 70+ rules across 8 priority categories — waterfalls, bundle size, server-side, client fetching, re-render, rendering, JS micro-perf, advanced. Use when writing, reviewing, or refactoring React/Next.js code for performance.
|
|
4
|
-
|
|
4
|
+
metadata:
|
|
5
|
+
origin: ECC
|
|
5
6
|
---
|
|
6
7
|
|
|
7
8
|
# React Performance
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: react-testing
|
|
3
3
|
description: React component testing with React Testing Library, Vitest/Jest, MSW for network mocking, accessibility assertions with axe, and the decision boundary between component tests and Playwright/Cypress end-to-end runs. Use when writing or fixing tests for React components, hooks, or pages.
|
|
4
|
-
|
|
4
|
+
metadata:
|
|
5
|
+
origin: ECC
|
|
5
6
|
---
|
|
6
7
|
|
|
7
8
|
# React Testing
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: recsys-pipeline-architect
|
|
3
3
|
description: Design composable recommendation, ranking, and feed pipelines using the six-stage Source→Hydrator→Filter→Scorer→Selector→SideEffect framework popularized by xAI's open-sourced For You algorithm. Use this skill whenever the user is building any system that picks "the top K items for a (user, context)" — social feeds, content CMSs, RAG rerankers, task prioritizers, notification triage, search reranking, ad ranking.
|
|
4
|
-
|
|
4
|
+
metadata:
|
|
5
|
+
origin: community
|
|
5
6
|
---
|
|
6
7
|
|
|
7
8
|
# recsys-pipeline-architect
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: recursive-decision-ledger
|
|
3
3
|
description: Use when the user asks for repeated rollouts, marked decision processes, high-dimensional search, stochastic optimization, local-optima exploration, ensemble comparison, or recursive reasoning with a visible evidence trail.
|
|
4
|
-
|
|
4
|
+
metadata:
|
|
5
|
+
origin: ECC
|
|
5
6
|
tools: Read, Write, Edit, Bash, Grep, Glob
|
|
6
7
|
---
|
|
7
8
|
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: regex-vs-llm-structured-text
|
|
3
3
|
description: Decision framework for choosing between regex and LLM when parsing structured text — start with regex, add LLM only for low-confidence edge cases.
|
|
4
|
-
|
|
4
|
+
metadata:
|
|
5
|
+
origin: ECC
|
|
5
6
|
---
|
|
6
7
|
|
|
7
8
|
# Regex vs LLM for Structured Text Parsing
|