@rubix0270/arboris 1.0.2 → 1.0.3
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/package.json +8 -20
- package/run.mjs +10 -0
- package/dist/cli.mjs +0 -383
- package/manifest.json +0 -323
- package/prisma/skills/accessibility/SKILL.md +0 -147
- package/prisma/skills/agent-architecture-audit/SKILL.md +0 -257
- package/prisma/skills/agent-eval/SKILL.md +0 -146
- package/prisma/skills/agent-harness-construction/SKILL.md +0 -74
- package/prisma/skills/agent-introspection-debugging/SKILL.md +0 -154
- package/prisma/skills/agent-payment-x402/SKILL.md +0 -225
- package/prisma/skills/agent-self-evaluation/SKILL.md +0 -182
- package/prisma/skills/agent-self-evaluation/examples/high-score-example.md +0 -87
- package/prisma/skills/agent-self-evaluation/examples/low-score-example.md +0 -86
- package/prisma/skills/agent-self-evaluation/references/evaluation-criteria.md +0 -71
- package/prisma/skills/agent-self-evaluation/references/hook-integration.md +0 -64
- package/prisma/skills/agent-self-evaluation/scripts/evaluate.py +0 -408
- package/prisma/skills/agent-self-evaluation/templates/evaluation-report.md +0 -86
- package/prisma/skills/agent-sort/SKILL.md +0 -216
- package/prisma/skills/agentic-engineering/SKILL.md +0 -64
- package/prisma/skills/agentic-os/SKILL.md +0 -388
- package/prisma/skills/ai-first-engineering/SKILL.md +0 -52
- package/prisma/skills/ai-regression-testing/SKILL.md +0 -386
- package/prisma/skills/android-clean-architecture/SKILL.md +0 -340
- package/prisma/skills/angular-developer/SKILL.md +0 -155
- package/prisma/skills/angular-developer/references/angular-animations.md +0 -160
- package/prisma/skills/angular-developer/references/angular-aria.md +0 -410
- package/prisma/skills/angular-developer/references/cli.md +0 -86
- package/prisma/skills/angular-developer/references/component-harnesses.md +0 -59
- package/prisma/skills/angular-developer/references/component-styling.md +0 -91
- package/prisma/skills/angular-developer/references/components.md +0 -117
- package/prisma/skills/angular-developer/references/creating-services.md +0 -97
- package/prisma/skills/angular-developer/references/data-resolvers.md +0 -69
- package/prisma/skills/angular-developer/references/define-routes.md +0 -67
- package/prisma/skills/angular-developer/references/defining-providers.md +0 -72
- package/prisma/skills/angular-developer/references/di-fundamentals.md +0 -120
- package/prisma/skills/angular-developer/references/e2e-testing.md +0 -56
- package/prisma/skills/angular-developer/references/effects.md +0 -83
- package/prisma/skills/angular-developer/references/hierarchical-injectors.md +0 -43
- package/prisma/skills/angular-developer/references/host-elements.md +0 -80
- package/prisma/skills/angular-developer/references/injection-context.md +0 -63
- package/prisma/skills/angular-developer/references/inputs.md +0 -101
- package/prisma/skills/angular-developer/references/linked-signal.md +0 -59
- package/prisma/skills/angular-developer/references/loading-strategies.md +0 -61
- package/prisma/skills/angular-developer/references/mcp.md +0 -108
- package/prisma/skills/angular-developer/references/navigate-to-routes.md +0 -69
- package/prisma/skills/angular-developer/references/outputs.md +0 -86
- package/prisma/skills/angular-developer/references/reactive-forms.md +0 -122
- package/prisma/skills/angular-developer/references/rendering-strategies.md +0 -44
- package/prisma/skills/angular-developer/references/resource.md +0 -77
- package/prisma/skills/angular-developer/references/route-animations.md +0 -56
- package/prisma/skills/angular-developer/references/route-guards.md +0 -52
- package/prisma/skills/angular-developer/references/router-lifecycle.md +0 -45
- package/prisma/skills/angular-developer/references/router-testing.md +0 -87
- package/prisma/skills/angular-developer/references/show-routes-with-outlets.md +0 -68
- package/prisma/skills/angular-developer/references/signal-forms.md +0 -795
- package/prisma/skills/angular-developer/references/signals-overview.md +0 -94
- package/prisma/skills/angular-developer/references/tailwind-css.md +0 -69
- package/prisma/skills/angular-developer/references/template-driven-forms.md +0 -114
- package/prisma/skills/angular-developer/references/testing-fundamentals.md +0 -65
- package/prisma/skills/api-connector-builder/SKILL.md +0 -121
- package/prisma/skills/api-design/SKILL.md +0 -524
- package/prisma/skills/architecture-decision-records/SKILL.md +0 -180
- package/prisma/skills/article-writing/SKILL.md +0 -80
- package/prisma/skills/automation-audit-ops/SKILL.md +0 -143
- package/prisma/skills/autonomous-agent-harness/SKILL.md +0 -274
- package/prisma/skills/autonomous-loops/SKILL.md +0 -611
- package/prisma/skills/backend-patterns/SKILL.md +0 -562
- package/prisma/skills/benchmark/SKILL.md +0 -94
- package/prisma/skills/benchmark-methodology/SKILL.md +0 -190
- package/prisma/skills/benchmark-optimization-loop/SKILL.md +0 -70
- package/prisma/skills/blender-motion-state-inspection/SKILL.md +0 -165
- package/prisma/skills/blueprint/SKILL.md +0 -106
- package/prisma/skills/brand-discovery/SKILL.md +0 -145
- package/prisma/skills/brand-discovery/references/10_purpose-why.md +0 -40
- package/prisma/skills/brand-discovery/references/20_positioning.md +0 -44
- package/prisma/skills/brand-discovery/references/30_audience-niche.md +0 -52
- package/prisma/skills/brand-discovery/references/40_personality-archetype.md +0 -57
- package/prisma/skills/brand-discovery/references/50_voice-tone.md +0 -59
- package/prisma/skills/brand-discovery/references/60_narrative-story.md +0 -50
- package/prisma/skills/brand-discovery/references/70_founder-tension.md +0 -49
- package/prisma/skills/brand-discovery/references/90_SYNTHESIS.md +0 -133
- package/prisma/skills/brand-voice/SKILL.md +0 -98
- package/prisma/skills/brand-voice/references/voice-profile-schema.md +0 -55
- package/prisma/skills/browser-qa/SKILL.md +0 -105
- package/prisma/skills/bun-runtime/SKILL.md +0 -85
- package/prisma/skills/canary-watch/SKILL.md +0 -108
- package/prisma/skills/carrier-relationship-management/SKILL.md +0 -212
- package/prisma/skills/cisco-ios-patterns/SKILL.md +0 -164
- package/prisma/skills/ck/SKILL.md +0 -148
- package/prisma/skills/ck/commands/forget.mjs +0 -44
- package/prisma/skills/ck/commands/info.mjs +0 -24
- package/prisma/skills/ck/commands/init.mjs +0 -143
- package/prisma/skills/ck/commands/list.mjs +0 -40
- package/prisma/skills/ck/commands/migrate.mjs +0 -202
- package/prisma/skills/ck/commands/resume.mjs +0 -36
- package/prisma/skills/ck/commands/save.mjs +0 -210
- package/prisma/skills/ck/commands/shared.mjs +0 -387
- package/prisma/skills/ck/hooks/session-start.mjs +0 -224
- package/prisma/skills/claude-devfleet/SKILL.md +0 -112
- package/prisma/skills/click-path-audit/SKILL.md +0 -245
- package/prisma/skills/clickhouse-io/SKILL.md +0 -440
- package/prisma/skills/code-tour/SKILL.md +0 -254
- package/prisma/skills/codebase-onboarding/SKILL.md +0 -234
- package/prisma/skills/codehealth-mcp/SKILL.md +0 -167
- package/prisma/skills/coding-standards/SKILL.md +0 -551
- package/prisma/skills/competitive-platform-analysis/SKILL.md +0 -214
- package/prisma/skills/competitive-report-structure/SKILL.md +0 -162
- package/prisma/skills/compose-multiplatform-patterns/SKILL.md +0 -300
- package/prisma/skills/config-gc/SKILL.md +0 -120
- package/prisma/skills/configure-ecc/SKILL.md +0 -385
- package/prisma/skills/connections-optimizer/SKILL.md +0 -190
- package/prisma/skills/content-engine/SKILL.md +0 -132
- package/prisma/skills/content-hash-cache-pattern/SKILL.md +0 -162
- package/prisma/skills/context-budget/SKILL.md +0 -136
- package/prisma/skills/continuous-agent-loop/SKILL.md +0 -46
- package/prisma/skills/continuous-learning/SKILL.md +0 -132
- package/prisma/skills/continuous-learning/config.json +0 -18
- package/prisma/skills/continuous-learning/evaluate-session.sh +0 -69
- package/prisma/skills/continuous-learning-v2/SKILL.md +0 -361
- package/prisma/skills/continuous-learning-v2/agents/observer-loop.sh +0 -359
- package/prisma/skills/continuous-learning-v2/agents/observer.md +0 -189
- package/prisma/skills/continuous-learning-v2/agents/session-guardian.sh +0 -150
- package/prisma/skills/continuous-learning-v2/agents/start-observer.sh +0 -248
- package/prisma/skills/continuous-learning-v2/config.json +0 -8
- package/prisma/skills/continuous-learning-v2/hooks/observe.sh +0 -585
- package/prisma/skills/continuous-learning-v2/scripts/detect-project.sh +0 -322
- package/prisma/skills/continuous-learning-v2/scripts/instinct-cli.py +0 -1956
- package/prisma/skills/continuous-learning-v2/scripts/lib/homunculus-dir.sh +0 -31
- package/prisma/skills/continuous-learning-v2/scripts/migrate-homunculus.sh +0 -68
- package/prisma/skills/continuous-learning-v2/scripts/test_parse_instinct.py +0 -1421
- package/prisma/skills/cost-aware-llm-pipeline/SKILL.md +0 -184
- package/prisma/skills/cost-tracking/SKILL.md +0 -97
- package/prisma/skills/council/SKILL.md +0 -204
- package/prisma/skills/cpp-coding-standards/SKILL.md +0 -724
- package/prisma/skills/cpp-testing/SKILL.md +0 -325
- package/prisma/skills/crosspost/SKILL.md +0 -112
- package/prisma/skills/csharp-testing/SKILL.md +0 -322
- package/prisma/skills/customer-billing-ops/SKILL.md +0 -141
- package/prisma/skills/customs-trade-compliance/SKILL.md +0 -263
- package/prisma/skills/dart-flutter-patterns/SKILL.md +0 -564
- package/prisma/skills/dashboard-builder/SKILL.md +0 -109
- package/prisma/skills/data-scraper-agent/SKILL.md +0 -765
- package/prisma/skills/data-throughput-accelerator/SKILL.md +0 -73
- package/prisma/skills/database-migrations/SKILL.md +0 -430
- package/prisma/skills/deep-research/SKILL.md +0 -160
- package/prisma/skills/defi-amm-security/SKILL.md +0 -167
- package/prisma/skills/delivery-gate/SKILL.md +0 -126
- package/prisma/skills/delivery-gate/hooks/quality-gate.py +0 -220
- package/prisma/skills/deployment-patterns/SKILL.md +0 -428
- package/prisma/skills/design-system/SKILL.md +0 -83
- package/prisma/skills/django-celery/SKILL.md +0 -458
- package/prisma/skills/django-patterns/SKILL.md +0 -735
- package/prisma/skills/django-security/SKILL.md +0 -644
- package/prisma/skills/django-tdd/SKILL.md +0 -730
- package/prisma/skills/django-verification/SKILL.md +0 -470
- package/prisma/skills/dmux-workflows/SKILL.md +0 -192
- package/prisma/skills/docker-patterns/SKILL.md +0 -365
- package/prisma/skills/documentation-lookup/SKILL.md +0 -91
- package/prisma/skills/dotnet-patterns/SKILL.md +0 -322
- package/prisma/skills/dynamic-workflow-mode/SKILL.md +0 -124
- package/prisma/skills/e2e-testing/SKILL.md +0 -327
- package/prisma/skills/ecc-guide/SKILL.md +0 -190
- package/prisma/skills/ecc-recipes/SKILL.md +0 -149
- package/prisma/skills/ecc-tools-cost-audit/SKILL.md +0 -161
- package/prisma/skills/email-ops/SKILL.md +0 -122
- package/prisma/skills/energy-procurement/SKILL.md +0 -228
- package/prisma/skills/enterprise-agent-ops/SKILL.md +0 -51
- package/prisma/skills/error-handling/SKILL.md +0 -377
- package/prisma/skills/eval-harness/SKILL.md +0 -271
- package/prisma/skills/evm-token-decimals/SKILL.md +0 -131
- package/prisma/skills/exa-search/SKILL.md +0 -108
- package/prisma/skills/fal-ai-media/SKILL.md +0 -289
- package/prisma/skills/fastapi-patterns/SKILL.md +0 -514
- package/prisma/skills/finance-billing-ops/SKILL.md +0 -128
- package/prisma/skills/flox-environments/SKILL.md +0 -497
- package/prisma/skills/flutter-dart-code-review/SKILL.md +0 -436
- package/prisma/skills/foundation-models-on-device/SKILL.md +0 -243
- package/prisma/skills/frontend-a11y/SKILL.md +0 -446
- package/prisma/skills/frontend-design-direction/SKILL.md +0 -93
- package/prisma/skills/frontend-patterns/SKILL.md +0 -657
- package/prisma/skills/frontend-slides/SKILL.md +0 -185
- package/prisma/skills/frontend-slides/STYLE_PRESETS.md +0 -330
- package/prisma/skills/frontend-slides/animation-patterns.md +0 -122
- package/prisma/skills/frontend-slides/html-template.md +0 -419
- package/prisma/skills/frontend-slides/scripts/export-pdf.sh +0 -418
- package/prisma/skills/frontend-slides/scripts/extract-pptx.py +0 -96
- package/prisma/skills/frontend-slides/viewport-base.css +0 -153
- package/prisma/skills/fsharp-testing/SKILL.md +0 -281
- package/prisma/skills/gan-style-harness/SKILL.md +0 -279
- package/prisma/skills/gateguard/SKILL.md +0 -133
- package/prisma/skills/generating-python-installer/SKILL.md +0 -820
- package/prisma/skills/git-workflow/SKILL.md +0 -716
- package/prisma/skills/github-ops/SKILL.md +0 -145
- package/prisma/skills/golang-patterns/SKILL.md +0 -675
- package/prisma/skills/golang-testing/SKILL.md +0 -721
- package/prisma/skills/google-workspace-ops/SKILL.md +0 -96
- package/prisma/skills/growth-log/SKILL.md +0 -128
- package/prisma/skills/healthcare-cdss-patterns/SKILL.md +0 -246
- package/prisma/skills/healthcare-emr-patterns/SKILL.md +0 -160
- package/prisma/skills/healthcare-eval-harness/SKILL.md +0 -208
- package/prisma/skills/healthcare-phi-compliance/SKILL.md +0 -146
- package/prisma/skills/hermes-imports/SKILL.md +0 -89
- package/prisma/skills/hexagonal-architecture/SKILL.md +0 -277
- package/prisma/skills/hipaa-compliance/SKILL.md +0 -79
- package/prisma/skills/homelab-network-readiness/SKILL.md +0 -170
- package/prisma/skills/homelab-network-setup/SKILL.md +0 -130
- package/prisma/skills/homelab-pihole-dns/SKILL.md +0 -275
- package/prisma/skills/homelab-vlan-segmentation/SKILL.md +0 -312
- package/prisma/skills/homelab-wireguard-vpn/SKILL.md +0 -306
- package/prisma/skills/hookify-rules/SKILL.md +0 -128
- package/prisma/skills/inherit-legacy-style/SKILL.md +0 -157
- package/prisma/skills/intent-driven-development/SKILL.md +0 -360
- package/prisma/skills/inventory-demand-planning/SKILL.md +0 -247
- package/prisma/skills/investor-materials/SKILL.md +0 -97
- package/prisma/skills/investor-outreach/SKILL.md +0 -92
- package/prisma/skills/ios-icon-gen/SKILL.md +0 -158
- package/prisma/skills/ios-icon-gen/scripts/generate_icons.swift +0 -258
- package/prisma/skills/ios-icon-gen/scripts/iconify_gen.sh +0 -235
- package/prisma/skills/iterative-retrieval/SKILL.md +0 -212
- package/prisma/skills/ito-basket-compare/SKILL.md +0 -64
- package/prisma/skills/ito-data-atlas-agent/SKILL.md +0 -64
- package/prisma/skills/ito-market-intelligence/SKILL.md +0 -61
- package/prisma/skills/ito-trade-planner/SKILL.md +0 -68
- package/prisma/skills/java-coding-standards/SKILL.md +0 -384
- package/prisma/skills/jira-integration/SKILL.md +0 -303
- package/prisma/skills/jpa-patterns/SKILL.md +0 -152
- package/prisma/skills/knowledge-ops/SKILL.md +0 -155
- package/prisma/skills/kotlin-coroutines-flows/SKILL.md +0 -285
- package/prisma/skills/kotlin-exposed-patterns/SKILL.md +0 -720
- package/prisma/skills/kotlin-ktor-patterns/SKILL.md +0 -690
- package/prisma/skills/kotlin-patterns/SKILL.md +0 -712
- package/prisma/skills/kotlin-testing/SKILL.md +0 -825
- package/prisma/skills/kubernetes-patterns/SKILL.md +0 -756
- package/prisma/skills/laravel-patterns/SKILL.md +0 -416
- package/prisma/skills/laravel-plugin-discovery/SKILL.md +0 -230
- package/prisma/skills/laravel-security/SKILL.md +0 -948
- package/prisma/skills/laravel-tdd/SKILL.md +0 -675
- package/prisma/skills/laravel-verification/SKILL.md +0 -180
- package/prisma/skills/latency-critical-systems/SKILL.md +0 -74
- package/prisma/skills/lead-intelligence/SKILL.md +0 -322
- package/prisma/skills/lead-intelligence/agents/enrichment-agent.md +0 -85
- package/prisma/skills/lead-intelligence/agents/mutual-mapper.md +0 -75
- package/prisma/skills/lead-intelligence/agents/outreach-drafter.md +0 -98
- package/prisma/skills/lead-intelligence/agents/signal-scorer.md +0 -60
- package/prisma/skills/liquid-glass-design/SKILL.md +0 -279
- package/prisma/skills/llm-trading-agent-security/SKILL.md +0 -147
- package/prisma/skills/logistics-exception-management/SKILL.md +0 -222
- package/prisma/skills/loop-design-check/SKILL.md +0 -143
- package/prisma/skills/mailtrap-email-integration/SKILL.md +0 -77
- package/prisma/skills/make-interfaces-feel-better/SKILL.md +0 -152
- package/prisma/skills/manim-video/SKILL.md +0 -90
- package/prisma/skills/manim-video/assets/network_graph_scene.py +0 -52
- package/prisma/skills/market-research/SKILL.md +0 -76
- package/prisma/skills/marketing-campaign/SKILL.md +0 -114
- package/prisma/skills/mcp-server-patterns/SKILL.md +0 -70
- package/prisma/skills/messages-ops/SKILL.md +0 -105
- package/prisma/skills/ml-adoption-playbook/SKILL.md +0 -57
- package/prisma/skills/mle-workflow/SKILL.md +0 -347
- package/prisma/skills/motion-advanced/SKILL.md +0 -596
- package/prisma/skills/motion-foundations/SKILL.md +0 -299
- package/prisma/skills/motion-patterns/SKILL.md +0 -434
- package/prisma/skills/motion-ui/SKILL.md +0 -576
- package/prisma/skills/mysql-patterns/SKILL.md +0 -413
- package/prisma/skills/nanoclaw-repl/SKILL.md +0 -34
- package/prisma/skills/nestjs-patterns/SKILL.md +0 -231
- package/prisma/skills/netmiko-ssh-automation/SKILL.md +0 -174
- package/prisma/skills/network-bgp-diagnostics/SKILL.md +0 -168
- package/prisma/skills/network-config-validation/SKILL.md +0 -211
- package/prisma/skills/network-interface-health/SKILL.md +0 -153
- package/prisma/skills/nextjs-turbopack/SKILL.md +0 -58
- package/prisma/skills/nodejs-keccak256/SKILL.md +0 -103
- package/prisma/skills/nutrient-document-processing/SKILL.md +0 -168
- package/prisma/skills/nuxt4-patterns/SKILL.md +0 -101
- package/prisma/skills/openclaw-persona-forge/SKILL.md +0 -289
- package/prisma/skills/openclaw-persona-forge/gacha.py +0 -224
- package/prisma/skills/openclaw-persona-forge/gacha.sh +0 -5
- package/prisma/skills/openclaw-persona-forge/references/avatar-style.md +0 -124
- package/prisma/skills/openclaw-persona-forge/references/boundary-rules.md +0 -53
- package/prisma/skills/openclaw-persona-forge/references/error-handling.md +0 -53
- package/prisma/skills/openclaw-persona-forge/references/identity-tension.md +0 -48
- package/prisma/skills/openclaw-persona-forge/references/naming-system.md +0 -39
- package/prisma/skills/openclaw-persona-forge/references/output-template.md +0 -166
- package/prisma/skills/opensource-pipeline/SKILL.md +0 -256
- package/prisma/skills/orch-add-feature/SKILL.md +0 -45
- package/prisma/skills/orch-build-mvp/SKILL.md +0 -49
- package/prisma/skills/orch-change-feature/SKILL.md +0 -43
- package/prisma/skills/orch-fix-defect/SKILL.md +0 -43
- package/prisma/skills/orch-pipeline/SKILL.md +0 -121
- package/prisma/skills/orch-refine-code/SKILL.md +0 -44
- package/prisma/skills/parallel-execution-optimizer/SKILL.md +0 -73
- package/prisma/skills/perl-patterns/SKILL.md +0 -505
- package/prisma/skills/perl-security/SKILL.md +0 -504
- package/prisma/skills/perl-testing/SKILL.md +0 -476
- package/prisma/skills/plan-orchestrate/SKILL.md +0 -263
- package/prisma/skills/plankton-code-quality/SKILL.md +0 -237
- package/prisma/skills/postgres-patterns/SKILL.md +0 -148
- package/prisma/skills/prediction-market-oracle-research/SKILL.md +0 -64
- package/prisma/skills/prediction-market-risk-review/SKILL.md +0 -61
- package/prisma/skills/prisma-patterns/SKILL.md +0 -401
- package/prisma/skills/product-capability/SKILL.md +0 -142
- package/prisma/skills/product-lens/SKILL.md +0 -93
- package/prisma/skills/production-audit/SKILL.md +0 -207
- package/prisma/skills/production-scheduling/SKILL.md +0 -238
- package/prisma/skills/project-flow-ops/SKILL.md +0 -112
- package/prisma/skills/prompt-optimizer/SKILL.md +0 -398
- package/prisma/skills/python-patterns/SKILL.md +0 -751
- package/prisma/skills/python-testing/SKILL.md +0 -817
- package/prisma/skills/pytorch-patterns/SKILL.md +0 -397
- package/prisma/skills/quality-nonconformance/SKILL.md +0 -260
- package/prisma/skills/quarkus-patterns/SKILL.md +0 -723
- package/prisma/skills/quarkus-security/SKILL.md +0 -468
- package/prisma/skills/quarkus-tdd/SKILL.md +0 -812
- package/prisma/skills/quarkus-verification/SKILL.md +0 -480
- package/prisma/skills/ralphinho-rfc-pipeline/SKILL.md +0 -68
- package/prisma/skills/react-native-patterns/SKILL.md +0 -326
- package/prisma/skills/react-patterns/SKILL.md +0 -342
- package/prisma/skills/react-performance/SKILL.md +0 -575
- package/prisma/skills/react-testing/SKILL.md +0 -424
- package/prisma/skills/recsys-pipeline-architect/SKILL.md +0 -115
- package/prisma/skills/recursive-decision-ledger/SKILL.md +0 -80
- package/prisma/skills/redis-patterns/SKILL.md +0 -404
- package/prisma/skills/regex-vs-llm-structured-text/SKILL.md +0 -221
- package/prisma/skills/remotion-video-creation/SKILL.md +0 -43
- package/prisma/skills/remotion-video-creation/rules/3d.md +0 -86
- package/prisma/skills/remotion-video-creation/rules/animations.md +0 -29
- package/prisma/skills/remotion-video-creation/rules/assets/charts-bar-chart.tsx +0 -173
- package/prisma/skills/remotion-video-creation/rules/assets/text-animations-typewriter.tsx +0 -100
- package/prisma/skills/remotion-video-creation/rules/assets/text-animations-word-highlight.tsx +0 -108
- package/prisma/skills/remotion-video-creation/rules/assets.md +0 -78
- package/prisma/skills/remotion-video-creation/rules/audio.md +0 -172
- package/prisma/skills/remotion-video-creation/rules/calculate-metadata.md +0 -104
- package/prisma/skills/remotion-video-creation/rules/can-decode.md +0 -75
- package/prisma/skills/remotion-video-creation/rules/charts.md +0 -58
- package/prisma/skills/remotion-video-creation/rules/compositions.md +0 -146
- package/prisma/skills/remotion-video-creation/rules/display-captions.md +0 -126
- package/prisma/skills/remotion-video-creation/rules/extract-frames.md +0 -229
- package/prisma/skills/remotion-video-creation/rules/fonts.md +0 -152
- package/prisma/skills/remotion-video-creation/rules/get-audio-duration.md +0 -58
- package/prisma/skills/remotion-video-creation/rules/get-video-dimensions.md +0 -68
- package/prisma/skills/remotion-video-creation/rules/get-video-duration.md +0 -58
- package/prisma/skills/remotion-video-creation/rules/gifs.md +0 -138
- package/prisma/skills/remotion-video-creation/rules/images.md +0 -130
- package/prisma/skills/remotion-video-creation/rules/import-srt-captions.md +0 -67
- package/prisma/skills/remotion-video-creation/rules/lottie.md +0 -67
- package/prisma/skills/remotion-video-creation/rules/measuring-dom-nodes.md +0 -34
- package/prisma/skills/remotion-video-creation/rules/measuring-text.md +0 -143
- package/prisma/skills/remotion-video-creation/rules/sequencing.md +0 -106
- package/prisma/skills/remotion-video-creation/rules/tailwind.md +0 -11
- package/prisma/skills/remotion-video-creation/rules/text-animations.md +0 -20
- package/prisma/skills/remotion-video-creation/rules/timing.md +0 -179
- package/prisma/skills/remotion-video-creation/rules/transcribe-captions.md +0 -19
- package/prisma/skills/remotion-video-creation/rules/transitions.md +0 -122
- package/prisma/skills/remotion-video-creation/rules/trimming.md +0 -52
- package/prisma/skills/remotion-video-creation/rules/videos.md +0 -171
- package/prisma/skills/repo-scan/SKILL.md +0 -79
- package/prisma/skills/research-ops/SKILL.md +0 -113
- package/prisma/skills/returns-reverse-logistics/SKILL.md +0 -240
- package/prisma/skills/rules-distill/SKILL.md +0 -265
- package/prisma/skills/rules-distill/scripts/scan-rules.sh +0 -58
- package/prisma/skills/rules-distill/scripts/scan-skills.sh +0 -129
- package/prisma/skills/rust-patterns/SKILL.md +0 -500
- package/prisma/skills/rust-testing/SKILL.md +0 -501
- package/prisma/skills/safety-guard/SKILL.md +0 -76
- package/prisma/skills/santa-method/SKILL.md +0 -307
- package/prisma/skills/scientific-db-pubmed-database/SKILL.md +0 -176
- package/prisma/skills/scientific-db-uspto-database/SKILL.md +0 -178
- package/prisma/skills/scientific-pkg-gget/SKILL.md +0 -167
- package/prisma/skills/scientific-thinking-literature-review/SKILL.md +0 -193
- package/prisma/skills/scientific-thinking-scholar-evaluation/SKILL.md +0 -161
- package/prisma/skills/search-first/SKILL.md +0 -183
- package/prisma/skills/security-bounty-hunter/SKILL.md +0 -100
- package/prisma/skills/security-review/SKILL.md +0 -504
- package/prisma/skills/security-review/cloud-infrastructure-security.md +0 -361
- package/prisma/skills/security-scan/SKILL.md +0 -166
- package/prisma/skills/seo/SKILL.md +0 -155
- package/prisma/skills/skill-comply/SKILL.md +0 -59
- package/prisma/skills/skill-comply/fixtures/compliant_trace.jsonl +0 -5
- package/prisma/skills/skill-comply/fixtures/noncompliant_trace.jsonl +0 -3
- package/prisma/skills/skill-comply/fixtures/tdd_spec.yaml +0 -44
- package/prisma/skills/skill-comply/prompts/classifier.md +0 -24
- package/prisma/skills/skill-comply/prompts/scenario_generator.md +0 -62
- package/prisma/skills/skill-comply/prompts/spec_generator.md +0 -42
- package/prisma/skills/skill-comply/pyproject.toml +0 -15
- package/prisma/skills/skill-comply/scripts/__init__.py +0 -0
- package/prisma/skills/skill-comply/scripts/classifier.py +0 -85
- package/prisma/skills/skill-comply/scripts/grader.py +0 -124
- package/prisma/skills/skill-comply/scripts/parser.py +0 -107
- package/prisma/skills/skill-comply/scripts/report.py +0 -170
- package/prisma/skills/skill-comply/scripts/run.py +0 -127
- package/prisma/skills/skill-comply/scripts/runner.py +0 -194
- package/prisma/skills/skill-comply/scripts/scenario_generator.py +0 -70
- package/prisma/skills/skill-comply/scripts/spec_generator.py +0 -72
- package/prisma/skills/skill-comply/scripts/utils.py +0 -13
- package/prisma/skills/skill-comply/tests/test_grader.py +0 -197
- package/prisma/skills/skill-comply/tests/test_parser.py +0 -90
- package/prisma/skills/skill-comply/tests/test_runner.py +0 -172
- package/prisma/skills/skill-scout/SKILL.md +0 -141
- package/prisma/skills/skill-stocktake/SKILL.md +0 -195
- package/prisma/skills/skill-stocktake/scripts/quick-diff.sh +0 -87
- package/prisma/skills/skill-stocktake/scripts/save-results.sh +0 -56
- package/prisma/skills/skill-stocktake/scripts/scan.sh +0 -170
- package/prisma/skills/social-graph-ranker/SKILL.md +0 -155
- package/prisma/skills/social-publisher/SKILL.md +0 -130
- package/prisma/skills/springboot-patterns/SKILL.md +0 -315
- package/prisma/skills/springboot-security/SKILL.md +0 -273
- package/prisma/skills/springboot-tdd/SKILL.md +0 -159
- package/prisma/skills/springboot-verification/SKILL.md +0 -232
- package/prisma/skills/strategic-compact/SKILL.md +0 -136
- package/prisma/skills/swift-actor-persistence/SKILL.md +0 -144
- package/prisma/skills/swift-concurrency-6-2/SKILL.md +0 -216
- package/prisma/skills/swift-protocol-di-testing/SKILL.md +0 -191
- package/prisma/skills/swiftui-patterns/SKILL.md +0 -259
- package/prisma/skills/taste/SKILL.md +0 -264
- package/prisma/skills/taste/references/genre-taxonomy.md +0 -87
- package/prisma/skills/tdd-workflow/SKILL.md +0 -583
- package/prisma/skills/team-agent-orchestration/SKILL.md +0 -111
- package/prisma/skills/team-builder/SKILL.md +0 -169
- package/prisma/skills/terminal-ops/SKILL.md +0 -110
- package/prisma/skills/tinystruct-patterns/SKILL.md +0 -279
- package/prisma/skills/tinystruct-patterns/references/architecture.md +0 -90
- package/prisma/skills/tinystruct-patterns/references/data-handling.md +0 -60
- package/prisma/skills/tinystruct-patterns/references/database.md +0 -99
- package/prisma/skills/tinystruct-patterns/references/routing.md +0 -64
- package/prisma/skills/tinystruct-patterns/references/system-usage.md +0 -97
- package/prisma/skills/tinystruct-patterns/references/testing.md +0 -72
- package/prisma/skills/token-budget-advisor/SKILL.md +0 -134
- package/prisma/skills/ui-demo/SKILL.md +0 -466
- package/prisma/skills/ui-to-vue/SKILL.md +0 -135
- package/prisma/skills/uncloud/SKILL.md +0 -344
- package/prisma/skills/unified-notifications-ops/SKILL.md +0 -188
- package/prisma/skills/verification-loop/SKILL.md +0 -127
- package/prisma/skills/video-editing/SKILL.md +0 -311
- package/prisma/skills/videodb/SKILL.md +0 -375
- package/prisma/skills/videodb/reference/api-reference.md +0 -550
- package/prisma/skills/videodb/reference/capture-reference.md +0 -407
- package/prisma/skills/videodb/reference/capture.md +0 -101
- package/prisma/skills/videodb/reference/editor.md +0 -443
- package/prisma/skills/videodb/reference/generative.md +0 -331
- package/prisma/skills/videodb/reference/rtstream-reference.md +0 -564
- package/prisma/skills/videodb/reference/rtstream.md +0 -65
- package/prisma/skills/videodb/reference/search.md +0 -230
- package/prisma/skills/videodb/reference/streaming.md +0 -406
- package/prisma/skills/videodb/reference/use-cases.md +0 -118
- package/prisma/skills/videodb/scripts/ws_listener.py +0 -282
- package/prisma/skills/visa-doc-translate/README.md +0 -86
- package/prisma/skills/visa-doc-translate/SKILL.md +0 -117
- package/prisma/skills/vite-patterns/SKILL.md +0 -450
- package/prisma/skills/vue-patterns/SKILL.md +0 -471
- package/prisma/skills/windows-desktop-e2e/SKILL.md +0 -888
- package/prisma/skills/workspace-surface-audit/SKILL.md +0 -126
- package/prisma/skills/x-api/SKILL.md +0 -235
|
@@ -1,322 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: dotnet-patterns
|
|
3
|
-
description: Idiomatic C# and .NET patterns, conventions, dependency injection, async/await, and best practices for building robust, maintainable .NET applications.
|
|
4
|
-
metadata:
|
|
5
|
-
origin: ECC
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# .NET Development Patterns
|
|
9
|
-
|
|
10
|
-
Idiomatic C# and .NET patterns for building robust, performant, and maintainable applications.
|
|
11
|
-
|
|
12
|
-
## When to Activate
|
|
13
|
-
|
|
14
|
-
- Writing new C# code
|
|
15
|
-
- Reviewing C# code
|
|
16
|
-
- Refactoring existing .NET applications
|
|
17
|
-
- Designing service architectures with ASP.NET Core
|
|
18
|
-
|
|
19
|
-
## Core Principles
|
|
20
|
-
|
|
21
|
-
### 1. Prefer Immutability
|
|
22
|
-
|
|
23
|
-
Use records and init-only properties for data models. Mutability should be an explicit, justified choice.
|
|
24
|
-
|
|
25
|
-
```csharp
|
|
26
|
-
// Good: Immutable value object
|
|
27
|
-
public sealed record Money(decimal Amount, string Currency);
|
|
28
|
-
|
|
29
|
-
// Good: Immutable DTO with init setters
|
|
30
|
-
public sealed class CreateOrderRequest
|
|
31
|
-
{
|
|
32
|
-
public required string CustomerId { get; init; }
|
|
33
|
-
public required IReadOnlyList<OrderItem> Items { get; init; }
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
// Bad: Mutable model with public setters
|
|
37
|
-
public class Order
|
|
38
|
-
{
|
|
39
|
-
public string CustomerId { get; set; }
|
|
40
|
-
public List<OrderItem> Items { get; set; }
|
|
41
|
-
}
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
### 2. Explicit Over Implicit
|
|
45
|
-
|
|
46
|
-
Be clear about nullability, access modifiers, and intent.
|
|
47
|
-
|
|
48
|
-
```csharp
|
|
49
|
-
// Good: Explicit access modifiers and nullability
|
|
50
|
-
public sealed class UserService
|
|
51
|
-
{
|
|
52
|
-
private readonly IUserRepository _repository;
|
|
53
|
-
private readonly ILogger<UserService> _logger;
|
|
54
|
-
|
|
55
|
-
public UserService(IUserRepository repository, ILogger<UserService> logger)
|
|
56
|
-
{
|
|
57
|
-
_repository = repository ?? throw new ArgumentNullException(nameof(repository));
|
|
58
|
-
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
public async Task<User?> FindByIdAsync(Guid id, CancellationToken cancellationToken)
|
|
62
|
-
{
|
|
63
|
-
return await _repository.FindByIdAsync(id, cancellationToken);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
### 3. Depend on Abstractions
|
|
69
|
-
|
|
70
|
-
Use interfaces for service boundaries. Register via DI container.
|
|
71
|
-
|
|
72
|
-
```csharp
|
|
73
|
-
// Good: Interface-based dependency
|
|
74
|
-
public interface IOrderRepository
|
|
75
|
-
{
|
|
76
|
-
Task<Order?> FindByIdAsync(Guid id, CancellationToken cancellationToken);
|
|
77
|
-
Task<IReadOnlyList<Order>> FindByCustomerAsync(string customerId, CancellationToken cancellationToken);
|
|
78
|
-
Task AddAsync(Order order, CancellationToken cancellationToken);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
// Registration
|
|
82
|
-
builder.Services.AddScoped<IOrderRepository, SqlOrderRepository>();
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
## Async/Await Patterns
|
|
86
|
-
|
|
87
|
-
### Proper Async Usage
|
|
88
|
-
|
|
89
|
-
```csharp
|
|
90
|
-
// Good: Async all the way, with CancellationToken
|
|
91
|
-
public async Task<OrderSummary> GetOrderSummaryAsync(
|
|
92
|
-
Guid orderId,
|
|
93
|
-
CancellationToken cancellationToken)
|
|
94
|
-
{
|
|
95
|
-
var order = await _repository.FindByIdAsync(orderId, cancellationToken)
|
|
96
|
-
?? throw new NotFoundException($"Order {orderId} not found");
|
|
97
|
-
|
|
98
|
-
var customer = await _customerService.GetAsync(order.CustomerId, cancellationToken);
|
|
99
|
-
|
|
100
|
-
return new OrderSummary(order, customer);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
// Bad: Blocking on async
|
|
104
|
-
public OrderSummary GetOrderSummary(Guid orderId)
|
|
105
|
-
{
|
|
106
|
-
var order = _repository.FindByIdAsync(orderId, CancellationToken.None).Result; // Deadlock risk
|
|
107
|
-
return new OrderSummary(order);
|
|
108
|
-
}
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
### Parallel Async Operations
|
|
112
|
-
|
|
113
|
-
```csharp
|
|
114
|
-
// Good: Concurrent independent operations
|
|
115
|
-
public async Task<DashboardData> LoadDashboardAsync(CancellationToken cancellationToken)
|
|
116
|
-
{
|
|
117
|
-
var ordersTask = _orderService.GetRecentAsync(cancellationToken);
|
|
118
|
-
var metricsTask = _metricsService.GetCurrentAsync(cancellationToken);
|
|
119
|
-
var alertsTask = _alertService.GetActiveAsync(cancellationToken);
|
|
120
|
-
|
|
121
|
-
await Task.WhenAll(ordersTask, metricsTask, alertsTask);
|
|
122
|
-
|
|
123
|
-
return new DashboardData(
|
|
124
|
-
Orders: await ordersTask,
|
|
125
|
-
Metrics: await metricsTask,
|
|
126
|
-
Alerts: await alertsTask);
|
|
127
|
-
}
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
## Options Pattern
|
|
131
|
-
|
|
132
|
-
Bind configuration sections to strongly-typed objects.
|
|
133
|
-
|
|
134
|
-
```csharp
|
|
135
|
-
public sealed class SmtpOptions
|
|
136
|
-
{
|
|
137
|
-
public const string SectionName = "Smtp";
|
|
138
|
-
|
|
139
|
-
public required string Host { get; init; }
|
|
140
|
-
public required int Port { get; init; }
|
|
141
|
-
public required string Username { get; init; }
|
|
142
|
-
public bool UseSsl { get; init; } = true;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
// Registration
|
|
146
|
-
builder.Services.Configure<SmtpOptions>(
|
|
147
|
-
builder.Configuration.GetSection(SmtpOptions.SectionName));
|
|
148
|
-
|
|
149
|
-
// Usage via injection
|
|
150
|
-
public class EmailService(IOptions<SmtpOptions> options)
|
|
151
|
-
{
|
|
152
|
-
private readonly SmtpOptions _smtp = options.Value;
|
|
153
|
-
}
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
## Result Pattern
|
|
157
|
-
|
|
158
|
-
Return explicit success/failure instead of throwing for expected failures.
|
|
159
|
-
|
|
160
|
-
```csharp
|
|
161
|
-
public sealed record Result<T>
|
|
162
|
-
{
|
|
163
|
-
public bool IsSuccess { get; }
|
|
164
|
-
public T? Value { get; }
|
|
165
|
-
public string? Error { get; }
|
|
166
|
-
|
|
167
|
-
private Result(T value) { IsSuccess = true; Value = value; }
|
|
168
|
-
private Result(string error) { IsSuccess = false; Error = error; }
|
|
169
|
-
|
|
170
|
-
public static Result<T> Success(T value) => new(value);
|
|
171
|
-
public static Result<T> Failure(string error) => new(error);
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
// Usage
|
|
175
|
-
public async Task<Result<Order>> PlaceOrderAsync(CreateOrderRequest request)
|
|
176
|
-
{
|
|
177
|
-
if (request.Items.Count == 0)
|
|
178
|
-
return Result<Order>.Failure("Order must contain at least one item");
|
|
179
|
-
|
|
180
|
-
var order = Order.Create(request);
|
|
181
|
-
await _repository.AddAsync(order, CancellationToken.None);
|
|
182
|
-
return Result<Order>.Success(order);
|
|
183
|
-
}
|
|
184
|
-
```
|
|
185
|
-
|
|
186
|
-
## Repository Pattern with EF Core
|
|
187
|
-
|
|
188
|
-
```csharp
|
|
189
|
-
public sealed class SqlOrderRepository : IOrderRepository
|
|
190
|
-
{
|
|
191
|
-
private readonly AppDbContext _db;
|
|
192
|
-
|
|
193
|
-
public SqlOrderRepository(AppDbContext db) => _db = db;
|
|
194
|
-
|
|
195
|
-
public async Task<Order?> FindByIdAsync(Guid id, CancellationToken cancellationToken)
|
|
196
|
-
{
|
|
197
|
-
return await _db.Orders
|
|
198
|
-
.Include(o => o.Items)
|
|
199
|
-
.AsNoTracking()
|
|
200
|
-
.FirstOrDefaultAsync(o => o.Id == id, cancellationToken);
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
public async Task<IReadOnlyList<Order>> FindByCustomerAsync(
|
|
204
|
-
string customerId,
|
|
205
|
-
CancellationToken cancellationToken)
|
|
206
|
-
{
|
|
207
|
-
return await _db.Orders
|
|
208
|
-
.Where(o => o.CustomerId == customerId)
|
|
209
|
-
.OrderByDescending(o => o.CreatedAt)
|
|
210
|
-
.AsNoTracking()
|
|
211
|
-
.ToListAsync(cancellationToken);
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
public async Task AddAsync(Order order, CancellationToken cancellationToken)
|
|
215
|
-
{
|
|
216
|
-
_db.Orders.Add(order);
|
|
217
|
-
await _db.SaveChangesAsync(cancellationToken);
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
## Middleware and Pipeline
|
|
223
|
-
|
|
224
|
-
```csharp
|
|
225
|
-
// Custom middleware
|
|
226
|
-
public sealed class RequestTimingMiddleware
|
|
227
|
-
{
|
|
228
|
-
private readonly RequestDelegate _next;
|
|
229
|
-
private readonly ILogger<RequestTimingMiddleware> _logger;
|
|
230
|
-
|
|
231
|
-
public RequestTimingMiddleware(RequestDelegate next, ILogger<RequestTimingMiddleware> logger)
|
|
232
|
-
{
|
|
233
|
-
_next = next;
|
|
234
|
-
_logger = logger;
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
public async Task InvokeAsync(HttpContext context)
|
|
238
|
-
{
|
|
239
|
-
var stopwatch = Stopwatch.StartNew();
|
|
240
|
-
try
|
|
241
|
-
{
|
|
242
|
-
await _next(context);
|
|
243
|
-
}
|
|
244
|
-
finally
|
|
245
|
-
{
|
|
246
|
-
stopwatch.Stop();
|
|
247
|
-
_logger.LogInformation(
|
|
248
|
-
"Request {Method} {Path} completed in {ElapsedMs}ms with status {StatusCode}",
|
|
249
|
-
context.Request.Method,
|
|
250
|
-
context.Request.Path,
|
|
251
|
-
stopwatch.ElapsedMilliseconds,
|
|
252
|
-
context.Response.StatusCode);
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
```
|
|
257
|
-
|
|
258
|
-
## Minimal API Patterns
|
|
259
|
-
|
|
260
|
-
```csharp
|
|
261
|
-
// Organized with route groups
|
|
262
|
-
var orders = app.MapGroup("/api/orders")
|
|
263
|
-
.RequireAuthorization()
|
|
264
|
-
.WithTags("Orders");
|
|
265
|
-
|
|
266
|
-
orders.MapGet("/{id:guid}", async (
|
|
267
|
-
Guid id,
|
|
268
|
-
IOrderRepository repository,
|
|
269
|
-
CancellationToken cancellationToken) =>
|
|
270
|
-
{
|
|
271
|
-
var order = await repository.FindByIdAsync(id, cancellationToken);
|
|
272
|
-
return order is not null
|
|
273
|
-
? TypedResults.Ok(order)
|
|
274
|
-
: TypedResults.NotFound();
|
|
275
|
-
});
|
|
276
|
-
|
|
277
|
-
orders.MapPost("/", async (
|
|
278
|
-
CreateOrderRequest request,
|
|
279
|
-
IOrderService service,
|
|
280
|
-
CancellationToken cancellationToken) =>
|
|
281
|
-
{
|
|
282
|
-
var result = await service.PlaceOrderAsync(request, cancellationToken);
|
|
283
|
-
return result.IsSuccess
|
|
284
|
-
? TypedResults.Created($"/api/orders/{result.Value!.Id}", result.Value)
|
|
285
|
-
: TypedResults.BadRequest(result.Error);
|
|
286
|
-
});
|
|
287
|
-
```
|
|
288
|
-
|
|
289
|
-
## Guard Clauses
|
|
290
|
-
|
|
291
|
-
```csharp
|
|
292
|
-
// Good: Early returns with clear validation
|
|
293
|
-
public async Task<ProcessResult> ProcessPaymentAsync(
|
|
294
|
-
PaymentRequest request,
|
|
295
|
-
CancellationToken cancellationToken)
|
|
296
|
-
{
|
|
297
|
-
ArgumentNullException.ThrowIfNull(request);
|
|
298
|
-
|
|
299
|
-
if (request.Amount <= 0)
|
|
300
|
-
throw new ArgumentOutOfRangeException(nameof(request.Amount), "Amount must be positive");
|
|
301
|
-
|
|
302
|
-
if (string.IsNullOrWhiteSpace(request.Currency))
|
|
303
|
-
throw new ArgumentException("Currency is required", nameof(request.Currency));
|
|
304
|
-
|
|
305
|
-
// Happy path continues here without nesting
|
|
306
|
-
var gateway = _gatewayFactory.Create(request.Currency);
|
|
307
|
-
return await gateway.ChargeAsync(request, cancellationToken);
|
|
308
|
-
}
|
|
309
|
-
```
|
|
310
|
-
|
|
311
|
-
## Anti-Patterns to Avoid
|
|
312
|
-
|
|
313
|
-
| Anti-Pattern | Fix |
|
|
314
|
-
|---|---|
|
|
315
|
-
| `async void` methods | Return `Task` (except event handlers) |
|
|
316
|
-
| `.Result` or `.Wait()` | Use `await` |
|
|
317
|
-
| `catch (Exception) { }` | Handle or rethrow with context |
|
|
318
|
-
| `new Service()` in constructors | Use constructor injection |
|
|
319
|
-
| `public` fields | Use properties with appropriate accessors |
|
|
320
|
-
| `dynamic` in business logic | Use generics or explicit types |
|
|
321
|
-
| Mutable `static` state | Use DI scoping or `ConcurrentDictionary` |
|
|
322
|
-
| `string.Format` in loops | Use `StringBuilder` or interpolated string handlers |
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: dynamic-workflow-mode
|
|
3
|
-
description: "Design task-local harnesses, eval gates, and reusable skill extraction for Claude dynamic workflow mode and other adaptive agent harnesses."
|
|
4
|
-
metadata:
|
|
5
|
-
origin: ECC
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# Dynamic Workflow Mode
|
|
9
|
-
|
|
10
|
-
Use this skill when a coding agent can generate or adapt a task-local harness instead of only following a static command flow. The goal is to turn dynamic workflow mode into a disciplined system: temporary harnesses for one-off work, shared skill extraction for repeated work, and observable control pane checkpoints for teams.
|
|
11
|
-
|
|
12
|
-
## When To Activate
|
|
13
|
-
|
|
14
|
-
- The user mentions dynamic workflows, custom harnesses, harness-per-task, adaptive workflows, or Claude Code dynamic workflow mode.
|
|
15
|
-
- A task needs a custom loop, evaluator, crawler, fixture generator, watcher, or local dashboard.
|
|
16
|
-
- Multiple agents need the same repeatable process but the process is not yet captured as a shared skill.
|
|
17
|
-
- A workflow needs durable handoff artifacts, eval evidence, or operator approval before merge.
|
|
18
|
-
|
|
19
|
-
## Core Contract
|
|
20
|
-
|
|
21
|
-
Dynamic workflow mode should produce a task-local harness only when the harness is cheaper and safer than manually driving the same steps. The harness must have:
|
|
22
|
-
|
|
23
|
-
- **Objective**: the outcome it owns and the outcome it explicitly does not own.
|
|
24
|
-
- **Inputs**: files, URLs, prompts, data sources, credentials policy, and user-provided constraints.
|
|
25
|
-
- **Outputs**: commits, reports, screenshots, status files, or control pane snapshots.
|
|
26
|
-
- **Eval**: at least one pass/fail check tied to the task, not only "it ran".
|
|
27
|
-
- **Handoff**: a short artifact that tells the next operator what happened, what is blocked, and how to resume.
|
|
28
|
-
|
|
29
|
-
## Dynamic Harness Decision Tree
|
|
30
|
-
|
|
31
|
-
1. **One-shot task**: keep it inline. Do not invent a harness.
|
|
32
|
-
2. **Repeated task with changing inputs**: create a task-local harness and keep it under a temp or project-local working area.
|
|
33
|
-
3. **Repeated task across teammates or repos**: extract the pattern into a shared skill.
|
|
34
|
-
4. **Task with external state, queueing, or approvals**: add control pane visibility before adding more automation.
|
|
35
|
-
5. **Task with safety risk**: add an eval gate and a human merge gate before autonomous execution.
|
|
36
|
-
|
|
37
|
-
## Task-Local Harness Template
|
|
38
|
-
|
|
39
|
-
Use this structure before writing code:
|
|
40
|
-
|
|
41
|
-
```markdown
|
|
42
|
-
# Dynamic Workflow Harness
|
|
43
|
-
|
|
44
|
-
Objective:
|
|
45
|
-
- Ship:
|
|
46
|
-
- Do not ship:
|
|
47
|
-
|
|
48
|
-
Inputs:
|
|
49
|
-
- Repo or workspace:
|
|
50
|
-
- External systems:
|
|
51
|
-
- Credentials policy:
|
|
52
|
-
|
|
53
|
-
Loop:
|
|
54
|
-
1. Discover current state.
|
|
55
|
-
2. Generate or update the smallest useful artifact.
|
|
56
|
-
3. Run eval checks.
|
|
57
|
-
4. Record status and handoff.
|
|
58
|
-
5. Stop on failed gate, unclear ownership, or unsafe external action.
|
|
59
|
-
|
|
60
|
-
Eval:
|
|
61
|
-
- Command:
|
|
62
|
-
- Expected pass signal:
|
|
63
|
-
- Failure owner:
|
|
64
|
-
|
|
65
|
-
Handoff:
|
|
66
|
-
- Status:
|
|
67
|
-
- Evidence:
|
|
68
|
-
- Next action:
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
## Shared Skill Extraction
|
|
72
|
-
|
|
73
|
-
Promote a task-local harness into a shared skill only when at least two of these are true:
|
|
74
|
-
|
|
75
|
-
- The same workflow appears in multiple sessions, repos, teams, or launches.
|
|
76
|
-
- The workflow needs specific language, tool, or safety sequencing.
|
|
77
|
-
- Failures repeat because operators skip a gate or lose context.
|
|
78
|
-
- The workflow has a stable input/output contract.
|
|
79
|
-
- The workflow benefits from a control pane, status board, or team handoff.
|
|
80
|
-
|
|
81
|
-
When extracting, write the skill first in `skills/<name>/SKILL.md`. Add command shims only if a legacy slash-entry surface is still required.
|
|
82
|
-
|
|
83
|
-
## Control Pane Checkpoints
|
|
84
|
-
|
|
85
|
-
Dynamic workflow mode becomes team-usable when it exposes state. Record these checkpoints whenever the task spans more than one session:
|
|
86
|
-
|
|
87
|
-
- **Plan**: objective, owner, acceptance criteria, and risky external systems.
|
|
88
|
-
- **Queue**: work items, assigned agent role, branch/worktree, and dependency edges.
|
|
89
|
-
- **Run**: active harness, current loop step, recent eval result, and token/cost signal if available.
|
|
90
|
-
- **Gate**: test results, browser screenshots, security review, and merge readiness.
|
|
91
|
-
- **Handoff**: what is done, what failed, what needs a human decision.
|
|
92
|
-
|
|
93
|
-
If the repo has ECC2 state enabled, prefer adding or reading checkpoints through the ECC control pane or state-store-backed scripts instead of scattering untracked notes.
|
|
94
|
-
|
|
95
|
-
## Eval Gates
|
|
96
|
-
|
|
97
|
-
Every dynamic harness needs a task-specific eval. Pick the cheapest reliable gate:
|
|
98
|
-
|
|
99
|
-
| Work Type | Eval Gate |
|
|
100
|
-
| --- | --- |
|
|
101
|
-
| Code feature | Focused test, lint, coverage, and one integration path |
|
|
102
|
-
| UI/control pane | Browser smoke with screenshot and overflow/error checks |
|
|
103
|
-
| Agent workflow | Fixture transcript or seeded work item with expected routing |
|
|
104
|
-
| Research/content | Source-neutral brief, claim checklist, and publish-ready outline |
|
|
105
|
-
| Integration | Dry-run command, config validation, and no-secret scan |
|
|
106
|
-
|
|
107
|
-
Do not claim a dynamic workflow is reusable until the eval can be rerun by another teammate.
|
|
108
|
-
|
|
109
|
-
## Anti-Patterns
|
|
110
|
-
|
|
111
|
-
- Generating scripts that hide the real decision logic from the operator.
|
|
112
|
-
- Treating dynamic workflow mode as permission to skip tests.
|
|
113
|
-
- Creating one-off docs when a shared skill or status artifact is the real product.
|
|
114
|
-
- Running multiple agents without ownership, merge gate, or conflict policy.
|
|
115
|
-
- Letting raw private research data leak into public docs.
|
|
116
|
-
|
|
117
|
-
## Output Standard
|
|
118
|
-
|
|
119
|
-
Finish with:
|
|
120
|
-
|
|
121
|
-
- The harness or skill path.
|
|
122
|
-
- The eval commands and results.
|
|
123
|
-
- The control pane or handoff artifact path.
|
|
124
|
-
- The next reusable extraction candidate.
|