claudecode-omc 5.5.2 → 5.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +63 -0
- package/bundled/manifest.json +3 -2
- package/bundled/upstream/ecc/.omc-source/bundle.json +23 -0
- package/bundled/upstream/ecc/.omc-source/last-plan-apply.json +439 -0
- package/bundled/upstream/ecc/.omc-source/manifests/.claude-plugin/marketplace.json +47 -0
- package/bundled/upstream/ecc/agents/a11y-architect.md +141 -0
- package/bundled/upstream/ecc/agents/architect.md +211 -0
- package/bundled/upstream/ecc/agents/build-error-resolver.md +114 -0
- package/bundled/upstream/ecc/agents/chief-of-staff.md +151 -0
- package/bundled/upstream/ecc/agents/code-architect.md +71 -0
- package/bundled/upstream/ecc/agents/code-explorer.md +69 -0
- package/bundled/upstream/ecc/agents/code-reviewer.md +237 -0
- package/bundled/upstream/ecc/agents/code-simplifier.md +47 -0
- package/bundled/upstream/ecc/agents/comment-analyzer.md +45 -0
- package/bundled/upstream/ecc/agents/conversation-analyzer.md +52 -0
- package/bundled/upstream/ecc/agents/cpp-build-resolver.md +90 -0
- package/bundled/upstream/ecc/agents/cpp-reviewer.md +72 -0
- package/bundled/upstream/ecc/agents/csharp-reviewer.md +101 -0
- package/bundled/upstream/ecc/agents/dart-build-resolver.md +201 -0
- package/bundled/upstream/ecc/agents/database-reviewer.md +91 -0
- package/bundled/upstream/ecc/agents/doc-updater.md +107 -0
- package/bundled/upstream/ecc/agents/docs-lookup.md +68 -0
- package/bundled/upstream/ecc/agents/e2e-runner.md +107 -0
- package/bundled/upstream/ecc/agents/flutter-reviewer.md +243 -0
- package/bundled/upstream/ecc/agents/gan-evaluator.md +209 -0
- package/bundled/upstream/ecc/agents/gan-generator.md +131 -0
- package/bundled/upstream/ecc/agents/gan-planner.md +99 -0
- package/bundled/upstream/ecc/agents/go-build-resolver.md +94 -0
- package/bundled/upstream/ecc/agents/go-reviewer.md +76 -0
- package/bundled/upstream/ecc/agents/harness-optimizer.md +35 -0
- package/bundled/upstream/ecc/agents/healthcare-reviewer.md +83 -0
- package/bundled/upstream/ecc/agents/java-build-resolver.md +153 -0
- package/bundled/upstream/ecc/agents/java-reviewer.md +92 -0
- package/bundled/upstream/ecc/agents/kotlin-build-resolver.md +118 -0
- package/bundled/upstream/ecc/agents/kotlin-reviewer.md +159 -0
- package/bundled/upstream/ecc/agents/loop-operator.md +36 -0
- package/bundled/upstream/ecc/agents/opensource-forker.md +198 -0
- package/bundled/upstream/ecc/agents/opensource-packager.md +249 -0
- package/bundled/upstream/ecc/agents/opensource-sanitizer.md +188 -0
- package/bundled/upstream/ecc/agents/performance-optimizer.md +446 -0
- package/bundled/upstream/ecc/agents/planner.md +212 -0
- package/bundled/upstream/ecc/agents/pr-test-analyzer.md +45 -0
- package/bundled/upstream/ecc/agents/python-reviewer.md +98 -0
- package/bundled/upstream/ecc/agents/pytorch-build-resolver.md +120 -0
- package/bundled/upstream/ecc/agents/refactor-cleaner.md +85 -0
- package/bundled/upstream/ecc/agents/rust-build-resolver.md +148 -0
- package/bundled/upstream/ecc/agents/rust-reviewer.md +94 -0
- package/bundled/upstream/ecc/agents/security-reviewer.md +108 -0
- package/bundled/upstream/ecc/agents/seo-specialist.md +62 -0
- package/bundled/upstream/ecc/agents/silent-failure-hunter.md +50 -0
- package/bundled/upstream/ecc/agents/tdd-guide.md +91 -0
- package/bundled/upstream/ecc/agents/type-design-analyzer.md +41 -0
- package/bundled/upstream/ecc/agents/typescript-reviewer.md +112 -0
- package/bundled/upstream/ecc/commands/agent-sort.md +23 -0
- package/bundled/upstream/ecc/commands/aside.md +164 -0
- package/bundled/upstream/ecc/commands/build-fix.md +62 -0
- package/bundled/upstream/ecc/commands/checkpoint.md +74 -0
- package/bundled/upstream/ecc/commands/claw.md +23 -0
- package/bundled/upstream/ecc/commands/code-review.md +289 -0
- package/bundled/upstream/ecc/commands/context-budget.md +23 -0
- package/bundled/upstream/ecc/commands/cpp-build.md +173 -0
- package/bundled/upstream/ecc/commands/cpp-review.md +132 -0
- package/bundled/upstream/ecc/commands/cpp-test.md +251 -0
- package/bundled/upstream/ecc/commands/devfleet.md +23 -0
- package/bundled/upstream/ecc/commands/docs.md +23 -0
- package/bundled/upstream/ecc/commands/e2e.md +268 -0
- package/bundled/upstream/ecc/commands/eval.md +23 -0
- package/bundled/upstream/ecc/commands/evolve.md +178 -0
- package/bundled/upstream/ecc/commands/feature-dev.md +49 -0
- package/bundled/upstream/ecc/commands/flutter-build.md +164 -0
- package/bundled/upstream/ecc/commands/flutter-review.md +116 -0
- package/bundled/upstream/ecc/commands/flutter-test.md +144 -0
- package/bundled/upstream/ecc/commands/gan-build.md +99 -0
- package/bundled/upstream/ecc/commands/gan-design.md +35 -0
- package/bundled/upstream/ecc/commands/go-build.md +183 -0
- package/bundled/upstream/ecc/commands/go-review.md +148 -0
- package/bundled/upstream/ecc/commands/go-test.md +268 -0
- package/bundled/upstream/ecc/commands/gradle-build.md +70 -0
- package/bundled/upstream/ecc/commands/harness-audit.md +73 -0
- package/bundled/upstream/ecc/commands/hookify-configure.md +14 -0
- package/bundled/upstream/ecc/commands/hookify-help.md +46 -0
- package/bundled/upstream/ecc/commands/hookify-list.md +21 -0
- package/bundled/upstream/ecc/commands/hookify.md +50 -0
- package/bundled/upstream/ecc/commands/instinct-export.md +66 -0
- package/bundled/upstream/ecc/commands/instinct-import.md +114 -0
- package/bundled/upstream/ecc/commands/instinct-status.md +59 -0
- package/bundled/upstream/ecc/commands/jira.md +106 -0
- package/bundled/upstream/ecc/commands/kotlin-build.md +174 -0
- package/bundled/upstream/ecc/commands/kotlin-review.md +140 -0
- package/bundled/upstream/ecc/commands/kotlin-test.md +312 -0
- package/bundled/upstream/ecc/commands/learn-eval.md +116 -0
- package/bundled/upstream/ecc/commands/learn.md +70 -0
- package/bundled/upstream/ecc/commands/loop-start.md +32 -0
- package/bundled/upstream/ecc/commands/loop-status.md +24 -0
- package/bundled/upstream/ecc/commands/model-route.md +26 -0
- package/bundled/upstream/ecc/commands/multi-backend.md +158 -0
- package/bundled/upstream/ecc/commands/multi-execute.md +315 -0
- package/bundled/upstream/ecc/commands/multi-frontend.md +158 -0
- package/bundled/upstream/ecc/commands/multi-plan.md +268 -0
- package/bundled/upstream/ecc/commands/multi-workflow.md +191 -0
- package/bundled/upstream/ecc/commands/orchestrate.md +135 -0
- package/bundled/upstream/ecc/commands/plan.md +117 -0
- package/bundled/upstream/ecc/commands/pm2.md +272 -0
- package/bundled/upstream/ecc/commands/projects.md +39 -0
- package/bundled/upstream/ecc/commands/promote.md +41 -0
- package/bundled/upstream/ecc/commands/prompt-optimize.md +23 -0
- package/bundled/upstream/ecc/commands/prp-commit.md +112 -0
- package/bundled/upstream/ecc/commands/prp-implement.md +385 -0
- package/bundled/upstream/ecc/commands/prp-plan.md +502 -0
- package/bundled/upstream/ecc/commands/prp-pr.md +184 -0
- package/bundled/upstream/ecc/commands/prp-prd.md +447 -0
- package/bundled/upstream/ecc/commands/prune.md +31 -0
- package/bundled/upstream/ecc/commands/python-review.md +297 -0
- package/bundled/upstream/ecc/commands/quality-gate.md +29 -0
- package/bundled/upstream/ecc/commands/refactor-clean.md +80 -0
- package/bundled/upstream/ecc/commands/resume-session.md +156 -0
- package/bundled/upstream/ecc/commands/review-pr.md +37 -0
- package/bundled/upstream/ecc/commands/rules-distill.md +20 -0
- package/bundled/upstream/ecc/commands/rust-build.md +187 -0
- package/bundled/upstream/ecc/commands/rust-review.md +142 -0
- package/bundled/upstream/ecc/commands/rust-test.md +308 -0
- package/bundled/upstream/ecc/commands/santa-loop.md +175 -0
- package/bundled/upstream/ecc/commands/save-session.md +275 -0
- package/bundled/upstream/ecc/commands/sessions.md +339 -0
- package/bundled/upstream/ecc/commands/setup-pm.md +80 -0
- package/bundled/upstream/ecc/commands/skill-create.md +174 -0
- package/bundled/upstream/ecc/commands/skill-health.md +54 -0
- package/bundled/upstream/ecc/commands/tdd.md +231 -0
- package/bundled/upstream/ecc/commands/test-coverage.md +69 -0
- package/bundled/upstream/ecc/commands/update-codemaps.md +72 -0
- package/bundled/upstream/ecc/commands/update-docs.md +84 -0
- package/bundled/upstream/ecc/commands/verify.md +23 -0
- package/bundled/upstream/ecc/hooks/README.md +237 -0
- package/bundled/upstream/ecc/hooks/hooks.json +330 -0
- package/bundled/upstream/ecc/skills/accessibility/SKILL.md +146 -0
- package/bundled/upstream/ecc/skills/agent-eval/SKILL.md +145 -0
- package/bundled/upstream/ecc/skills/agent-harness-construction/SKILL.md +73 -0
- package/bundled/upstream/ecc/skills/agent-introspection-debugging/SKILL.md +153 -0
- package/bundled/upstream/ecc/skills/agent-payment-x402/SKILL.md +178 -0
- package/bundled/upstream/ecc/skills/agent-sort/SKILL.md +215 -0
- package/bundled/upstream/ecc/skills/agentic-engineering/SKILL.md +63 -0
- package/bundled/upstream/ecc/skills/ai-first-engineering/SKILL.md +51 -0
- package/bundled/upstream/ecc/skills/ai-regression-testing/SKILL.md +385 -0
- package/bundled/upstream/ecc/skills/android-clean-architecture/SKILL.md +339 -0
- package/bundled/upstream/ecc/skills/api-connector-builder/SKILL.md +120 -0
- package/bundled/upstream/ecc/skills/api-design/SKILL.md +523 -0
- package/bundled/upstream/ecc/skills/architecture-decision-records/SKILL.md +179 -0
- package/bundled/upstream/ecc/skills/article-writing/SKILL.md +79 -0
- package/bundled/upstream/ecc/skills/automation-audit-ops/SKILL.md +142 -0
- package/bundled/upstream/ecc/skills/autonomous-agent-harness/SKILL.md +267 -0
- package/bundled/upstream/ecc/skills/autonomous-loops/SKILL.md +610 -0
- package/bundled/upstream/ecc/skills/backend-patterns/SKILL.md +598 -0
- package/bundled/upstream/ecc/skills/benchmark/SKILL.md +93 -0
- package/bundled/upstream/ecc/skills/blueprint/SKILL.md +105 -0
- package/bundled/upstream/ecc/skills/brand-voice/SKILL.md +97 -0
- package/bundled/upstream/ecc/skills/brand-voice/references/voice-profile-schema.md +55 -0
- package/bundled/upstream/ecc/skills/browser-qa/SKILL.md +87 -0
- package/bundled/upstream/ecc/skills/bun-runtime/SKILL.md +84 -0
- package/bundled/upstream/ecc/skills/canary-watch/SKILL.md +99 -0
- package/bundled/upstream/ecc/skills/carrier-relationship-management/SKILL.md +212 -0
- package/bundled/upstream/ecc/skills/ck/SKILL.md +147 -0
- package/bundled/upstream/ecc/skills/ck/commands/forget.mjs +44 -0
- package/bundled/upstream/ecc/skills/ck/commands/info.mjs +24 -0
- package/bundled/upstream/ecc/skills/ck/commands/init.mjs +143 -0
- package/bundled/upstream/ecc/skills/ck/commands/list.mjs +40 -0
- package/bundled/upstream/ecc/skills/ck/commands/migrate.mjs +202 -0
- package/bundled/upstream/ecc/skills/ck/commands/resume.mjs +36 -0
- package/bundled/upstream/ecc/skills/ck/commands/save.mjs +210 -0
- package/bundled/upstream/ecc/skills/ck/commands/shared.mjs +387 -0
- package/bundled/upstream/ecc/skills/ck/hooks/session-start.mjs +224 -0
- package/bundled/upstream/ecc/skills/claude-api/SKILL.md +337 -0
- package/bundled/upstream/ecc/skills/claude-devfleet/SKILL.md +103 -0
- package/bundled/upstream/ecc/skills/click-path-audit/SKILL.md +244 -0
- package/bundled/upstream/ecc/skills/clickhouse-io/SKILL.md +439 -0
- package/bundled/upstream/ecc/skills/code-tour/SKILL.md +236 -0
- package/bundled/upstream/ecc/skills/codebase-onboarding/SKILL.md +233 -0
- package/bundled/upstream/ecc/skills/coding-standards/SKILL.md +549 -0
- package/bundled/upstream/ecc/skills/compose-multiplatform-patterns/SKILL.md +299 -0
- package/bundled/upstream/ecc/skills/configure-ecc/SKILL.md +367 -0
- package/bundled/upstream/ecc/skills/connections-optimizer/SKILL.md +189 -0
- package/bundled/upstream/ecc/skills/content-engine/SKILL.md +131 -0
- package/bundled/upstream/ecc/skills/content-hash-cache-pattern/SKILL.md +161 -0
- package/bundled/upstream/ecc/skills/context-budget/SKILL.md +135 -0
- package/bundled/upstream/ecc/skills/continuous-agent-loop/SKILL.md +45 -0
- package/bundled/upstream/ecc/skills/continuous-learning/SKILL.md +123 -0
- package/bundled/upstream/ecc/skills/continuous-learning/config.json +18 -0
- package/bundled/upstream/ecc/skills/continuous-learning/evaluate-session.sh +69 -0
- package/bundled/upstream/ecc/skills/continuous-learning-v2/SKILL.md +346 -0
- package/bundled/upstream/ecc/skills/continuous-learning-v2/agents/observer-loop.sh +282 -0
- package/bundled/upstream/ecc/skills/continuous-learning-v2/agents/observer.md +198 -0
- package/bundled/upstream/ecc/skills/continuous-learning-v2/agents/session-guardian.sh +150 -0
- package/bundled/upstream/ecc/skills/continuous-learning-v2/agents/start-observer.sh +244 -0
- package/bundled/upstream/ecc/skills/continuous-learning-v2/config.json +8 -0
- package/bundled/upstream/ecc/skills/continuous-learning-v2/hooks/observe.sh +460 -0
- package/bundled/upstream/ecc/skills/continuous-learning-v2/scripts/detect-project.sh +243 -0
- package/bundled/upstream/ecc/skills/continuous-learning-v2/scripts/instinct-cli.py +1426 -0
- package/bundled/upstream/ecc/skills/continuous-learning-v2/scripts/test_parse_instinct.py +984 -0
- package/bundled/upstream/ecc/skills/cost-aware-llm-pipeline/SKILL.md +183 -0
- package/bundled/upstream/ecc/skills/council/SKILL.md +203 -0
- package/bundled/upstream/ecc/skills/cpp-coding-standards/SKILL.md +723 -0
- package/bundled/upstream/ecc/skills/cpp-testing/SKILL.md +324 -0
- package/bundled/upstream/ecc/skills/crosspost/SKILL.md +111 -0
- package/bundled/upstream/ecc/skills/csharp-testing/SKILL.md +321 -0
- package/bundled/upstream/ecc/skills/customer-billing-ops/SKILL.md +140 -0
- package/bundled/upstream/ecc/skills/customs-trade-compliance/SKILL.md +263 -0
- package/bundled/upstream/ecc/skills/dart-flutter-patterns/SKILL.md +563 -0
- package/bundled/upstream/ecc/skills/dashboard-builder/SKILL.md +108 -0
- package/bundled/upstream/ecc/skills/data-scraper-agent/SKILL.md +764 -0
- package/bundled/upstream/ecc/skills/database-migrations/SKILL.md +429 -0
- package/bundled/upstream/ecc/skills/deep-research/SKILL.md +155 -0
- package/bundled/upstream/ecc/skills/defi-amm-security/SKILL.md +160 -0
- package/bundled/upstream/ecc/skills/deployment-patterns/SKILL.md +427 -0
- package/bundled/upstream/ecc/skills/design-system/SKILL.md +82 -0
- package/bundled/upstream/ecc/skills/django-patterns/SKILL.md +734 -0
- package/bundled/upstream/ecc/skills/django-security/SKILL.md +593 -0
- package/bundled/upstream/ecc/skills/django-tdd/SKILL.md +729 -0
- package/bundled/upstream/ecc/skills/django-verification/SKILL.md +469 -0
- package/bundled/upstream/ecc/skills/dmux-workflows/SKILL.md +191 -0
- package/bundled/upstream/ecc/skills/docker-patterns/SKILL.md +364 -0
- package/bundled/upstream/ecc/skills/documentation-lookup/SKILL.md +90 -0
- package/bundled/upstream/ecc/skills/dotnet-patterns/SKILL.md +321 -0
- package/bundled/upstream/ecc/skills/e2e-testing/SKILL.md +326 -0
- package/bundled/upstream/ecc/skills/ecc-tools-cost-audit/SKILL.md +160 -0
- package/bundled/upstream/ecc/skills/email-ops/SKILL.md +121 -0
- package/bundled/upstream/ecc/skills/energy-procurement/SKILL.md +228 -0
- package/bundled/upstream/ecc/skills/enterprise-agent-ops/SKILL.md +50 -0
- package/bundled/upstream/ecc/skills/eval-harness/SKILL.md +270 -0
- package/bundled/upstream/ecc/skills/evm-token-decimals/SKILL.md +130 -0
- package/bundled/upstream/ecc/skills/exa-search/SKILL.md +103 -0
- package/bundled/upstream/ecc/skills/fal-ai-media/SKILL.md +284 -0
- package/bundled/upstream/ecc/skills/finance-billing-ops/SKILL.md +127 -0
- package/bundled/upstream/ecc/skills/flutter-dart-code-review/SKILL.md +435 -0
- package/bundled/upstream/ecc/skills/foundation-models-on-device/SKILL.md +243 -0
- package/bundled/upstream/ecc/skills/frontend-design/SKILL.md +145 -0
- package/bundled/upstream/ecc/skills/frontend-patterns/SKILL.md +642 -0
- package/bundled/upstream/ecc/skills/frontend-slides/SKILL.md +184 -0
- package/bundled/upstream/ecc/skills/frontend-slides/STYLE_PRESETS.md +330 -0
- package/bundled/upstream/ecc/skills/gan-style-harness/SKILL.md +278 -0
- package/bundled/upstream/ecc/skills/gateguard/SKILL.md +121 -0
- package/bundled/upstream/ecc/skills/git-workflow/SKILL.md +715 -0
- package/bundled/upstream/ecc/skills/github-ops/SKILL.md +144 -0
- package/bundled/upstream/ecc/skills/golang-patterns/SKILL.md +674 -0
- package/bundled/upstream/ecc/skills/golang-testing/SKILL.md +720 -0
- package/bundled/upstream/ecc/skills/google-workspace-ops/SKILL.md +95 -0
- package/bundled/upstream/ecc/skills/healthcare-cdss-patterns/SKILL.md +245 -0
- package/bundled/upstream/ecc/skills/healthcare-emr-patterns/SKILL.md +159 -0
- package/bundled/upstream/ecc/skills/healthcare-eval-harness/SKILL.md +207 -0
- package/bundled/upstream/ecc/skills/healthcare-phi-compliance/SKILL.md +145 -0
- package/bundled/upstream/ecc/skills/hexagonal-architecture/SKILL.md +276 -0
- package/bundled/upstream/ecc/skills/hipaa-compliance/SKILL.md +78 -0
- package/bundled/upstream/ecc/skills/hookify-rules/SKILL.md +128 -0
- package/bundled/upstream/ecc/skills/inventory-demand-planning/SKILL.md +247 -0
- package/bundled/upstream/ecc/skills/investor-materials/SKILL.md +96 -0
- package/bundled/upstream/ecc/skills/investor-outreach/SKILL.md +91 -0
- package/bundled/upstream/ecc/skills/iterative-retrieval/SKILL.md +211 -0
- package/bundled/upstream/ecc/skills/java-coding-standards/SKILL.md +147 -0
- package/bundled/upstream/ecc/skills/jira-integration/SKILL.md +293 -0
- package/bundled/upstream/ecc/skills/jpa-patterns/SKILL.md +151 -0
- package/bundled/upstream/ecc/skills/knowledge-ops/SKILL.md +154 -0
- package/bundled/upstream/ecc/skills/kotlin-coroutines-flows/SKILL.md +284 -0
- package/bundled/upstream/ecc/skills/kotlin-exposed-patterns/SKILL.md +719 -0
- package/bundled/upstream/ecc/skills/kotlin-ktor-patterns/SKILL.md +689 -0
- package/bundled/upstream/ecc/skills/kotlin-patterns/SKILL.md +711 -0
- package/bundled/upstream/ecc/skills/kotlin-testing/SKILL.md +824 -0
- package/bundled/upstream/ecc/skills/laravel-patterns/SKILL.md +415 -0
- package/bundled/upstream/ecc/skills/laravel-plugin-discovery/SKILL.md +229 -0
- package/bundled/upstream/ecc/skills/laravel-security/SKILL.md +285 -0
- package/bundled/upstream/ecc/skills/laravel-tdd/SKILL.md +283 -0
- package/bundled/upstream/ecc/skills/laravel-verification/SKILL.md +179 -0
- package/bundled/upstream/ecc/skills/lead-intelligence/SKILL.md +321 -0
- package/bundled/upstream/ecc/skills/lead-intelligence/agents/enrichment-agent.md +85 -0
- package/bundled/upstream/ecc/skills/lead-intelligence/agents/mutual-mapper.md +75 -0
- package/bundled/upstream/ecc/skills/lead-intelligence/agents/outreach-drafter.md +98 -0
- package/bundled/upstream/ecc/skills/lead-intelligence/agents/signal-scorer.md +60 -0
- package/bundled/upstream/ecc/skills/liquid-glass-design/SKILL.md +279 -0
- package/bundled/upstream/ecc/skills/llm-trading-agent-security/SKILL.md +146 -0
- package/bundled/upstream/ecc/skills/logistics-exception-management/SKILL.md +222 -0
- package/bundled/upstream/ecc/skills/manim-video/SKILL.md +89 -0
- package/bundled/upstream/ecc/skills/manim-video/assets/network_graph_scene.py +52 -0
- package/bundled/upstream/ecc/skills/market-research/SKILL.md +75 -0
- package/bundled/upstream/ecc/skills/mcp-server-patterns/SKILL.md +69 -0
- package/bundled/upstream/ecc/skills/messages-ops/SKILL.md +104 -0
- package/bundled/upstream/ecc/skills/nanoclaw-repl/SKILL.md +33 -0
- package/bundled/upstream/ecc/skills/nestjs-patterns/SKILL.md +230 -0
- package/bundled/upstream/ecc/skills/nextjs-turbopack/SKILL.md +44 -0
- package/bundled/upstream/ecc/skills/nodejs-keccak256/SKILL.md +102 -0
- package/bundled/upstream/ecc/skills/nutrient-document-processing/SKILL.md +167 -0
- package/bundled/upstream/ecc/skills/nuxt4-patterns/SKILL.md +100 -0
- package/bundled/upstream/ecc/skills/openclaw-persona-forge/SKILL.md +296 -0
- package/bundled/upstream/ecc/skills/openclaw-persona-forge/gacha.py +224 -0
- package/bundled/upstream/ecc/skills/openclaw-persona-forge/gacha.sh +5 -0
- package/bundled/upstream/ecc/skills/openclaw-persona-forge/references/avatar-style.md +124 -0
- package/bundled/upstream/ecc/skills/openclaw-persona-forge/references/boundary-rules.md +53 -0
- package/bundled/upstream/ecc/skills/openclaw-persona-forge/references/error-handling.md +53 -0
- package/bundled/upstream/ecc/skills/openclaw-persona-forge/references/identity-tension.md +48 -0
- package/bundled/upstream/ecc/skills/openclaw-persona-forge/references/naming-system.md +39 -0
- package/bundled/upstream/ecc/skills/openclaw-persona-forge/references/output-template.md +166 -0
- package/bundled/upstream/ecc/skills/opensource-pipeline/SKILL.md +255 -0
- package/bundled/upstream/ecc/skills/perl-patterns/SKILL.md +504 -0
- package/bundled/upstream/ecc/skills/perl-security/SKILL.md +503 -0
- package/bundled/upstream/ecc/skills/perl-testing/SKILL.md +475 -0
- package/bundled/upstream/ecc/skills/plankton-code-quality/SKILL.md +236 -0
- package/bundled/upstream/ecc/skills/postgres-patterns/SKILL.md +147 -0
- package/bundled/upstream/ecc/skills/product-capability/SKILL.md +141 -0
- package/bundled/upstream/ecc/skills/product-lens/SKILL.md +92 -0
- package/bundled/upstream/ecc/skills/production-scheduling/SKILL.md +238 -0
- package/bundled/upstream/ecc/skills/project-flow-ops/SKILL.md +111 -0
- package/bundled/upstream/ecc/skills/prompt-optimizer/SKILL.md +397 -0
- package/bundled/upstream/ecc/skills/python-patterns/SKILL.md +750 -0
- package/bundled/upstream/ecc/skills/python-testing/SKILL.md +816 -0
- package/bundled/upstream/ecc/skills/pytorch-patterns/SKILL.md +396 -0
- package/bundled/upstream/ecc/skills/quality-nonconformance/SKILL.md +260 -0
- package/bundled/upstream/ecc/skills/ralphinho-rfc-pipeline/SKILL.md +67 -0
- package/bundled/upstream/ecc/skills/regex-vs-llm-structured-text/SKILL.md +220 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/SKILL.md +43 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/3d.md +86 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/animations.md +29 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/assets/charts-bar-chart.tsx +173 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/assets/text-animations-typewriter.tsx +100 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/assets/text-animations-word-highlight.tsx +108 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/assets.md +78 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/audio.md +172 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/calculate-metadata.md +104 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/can-decode.md +75 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/charts.md +58 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/compositions.md +146 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/display-captions.md +126 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/extract-frames.md +229 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/fonts.md +152 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/get-audio-duration.md +58 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/get-video-dimensions.md +68 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/get-video-duration.md +58 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/gifs.md +138 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/images.md +130 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/import-srt-captions.md +67 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/lottie.md +67 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/measuring-dom-nodes.md +34 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/measuring-text.md +143 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/sequencing.md +106 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/tailwind.md +11 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/text-animations.md +20 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/timing.md +179 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/transcribe-captions.md +19 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/transitions.md +122 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/trimming.md +52 -0
- package/bundled/upstream/ecc/skills/remotion-video-creation/rules/videos.md +171 -0
- package/bundled/upstream/ecc/skills/repo-scan/SKILL.md +78 -0
- package/bundled/upstream/ecc/skills/research-ops/SKILL.md +112 -0
- package/bundled/upstream/ecc/skills/returns-reverse-logistics/SKILL.md +240 -0
- package/bundled/upstream/ecc/skills/rules-distill/SKILL.md +264 -0
- package/bundled/upstream/ecc/skills/rules-distill/scripts/scan-rules.sh +58 -0
- package/bundled/upstream/ecc/skills/rules-distill/scripts/scan-skills.sh +129 -0
- package/bundled/upstream/ecc/skills/rust-patterns/SKILL.md +499 -0
- package/bundled/upstream/ecc/skills/rust-testing/SKILL.md +500 -0
- package/bundled/upstream/ecc/skills/safety-guard/SKILL.md +75 -0
- package/bundled/upstream/ecc/skills/santa-method/SKILL.md +306 -0
- package/bundled/upstream/ecc/skills/search-first/SKILL.md +161 -0
- package/bundled/upstream/ecc/skills/security-bounty-hunter/SKILL.md +99 -0
- package/bundled/upstream/ecc/skills/security-review/SKILL.md +495 -0
- package/bundled/upstream/ecc/skills/security-review/cloud-infrastructure-security.md +361 -0
- package/bundled/upstream/ecc/skills/security-scan/SKILL.md +165 -0
- package/bundled/upstream/ecc/skills/seo/SKILL.md +154 -0
- package/bundled/upstream/ecc/skills/skill-comply/SKILL.md +58 -0
- package/bundled/upstream/ecc/skills/skill-comply/fixtures/compliant_trace.jsonl +5 -0
- package/bundled/upstream/ecc/skills/skill-comply/fixtures/noncompliant_trace.jsonl +3 -0
- package/bundled/upstream/ecc/skills/skill-comply/fixtures/tdd_spec.yaml +44 -0
- package/bundled/upstream/ecc/skills/skill-comply/prompts/classifier.md +24 -0
- package/bundled/upstream/ecc/skills/skill-comply/prompts/scenario_generator.md +62 -0
- package/bundled/upstream/ecc/skills/skill-comply/prompts/spec_generator.md +42 -0
- package/bundled/upstream/ecc/skills/skill-comply/pyproject.toml +15 -0
- package/bundled/upstream/ecc/skills/skill-comply/scripts/__init__.py +0 -0
- package/bundled/upstream/ecc/skills/skill-comply/scripts/classifier.py +85 -0
- package/bundled/upstream/ecc/skills/skill-comply/scripts/grader.py +124 -0
- package/bundled/upstream/ecc/skills/skill-comply/scripts/parser.py +107 -0
- package/bundled/upstream/ecc/skills/skill-comply/scripts/report.py +170 -0
- package/bundled/upstream/ecc/skills/skill-comply/scripts/run.py +127 -0
- package/bundled/upstream/ecc/skills/skill-comply/scripts/runner.py +161 -0
- package/bundled/upstream/ecc/skills/skill-comply/scripts/scenario_generator.py +70 -0
- package/bundled/upstream/ecc/skills/skill-comply/scripts/spec_generator.py +72 -0
- package/bundled/upstream/ecc/skills/skill-comply/scripts/utils.py +13 -0
- package/bundled/upstream/ecc/skills/skill-comply/tests/test_grader.py +197 -0
- package/bundled/upstream/ecc/skills/skill-comply/tests/test_parser.py +90 -0
- package/bundled/upstream/ecc/skills/skill-stocktake/SKILL.md +193 -0
- package/bundled/upstream/ecc/skills/skill-stocktake/scripts/quick-diff.sh +87 -0
- package/bundled/upstream/ecc/skills/skill-stocktake/scripts/save-results.sh +56 -0
- package/bundled/upstream/ecc/skills/skill-stocktake/scripts/scan.sh +170 -0
- package/bundled/upstream/ecc/skills/social-graph-ranker/SKILL.md +154 -0
- package/bundled/upstream/ecc/skills/springboot-patterns/SKILL.md +314 -0
- package/bundled/upstream/ecc/skills/springboot-security/SKILL.md +272 -0
- package/bundled/upstream/ecc/skills/springboot-tdd/SKILL.md +158 -0
- package/bundled/upstream/ecc/skills/springboot-verification/SKILL.md +231 -0
- package/bundled/upstream/ecc/skills/strategic-compact/SKILL.md +131 -0
- package/bundled/upstream/ecc/skills/strategic-compact/suggest-compact.sh +54 -0
- package/bundled/upstream/ecc/skills/swift-actor-persistence/SKILL.md +143 -0
- package/bundled/upstream/ecc/skills/swift-concurrency-6-2/SKILL.md +216 -0
- package/bundled/upstream/ecc/skills/swift-protocol-di-testing/SKILL.md +190 -0
- package/bundled/upstream/ecc/skills/swiftui-patterns/SKILL.md +259 -0
- package/bundled/upstream/ecc/skills/tdd-workflow/SKILL.md +463 -0
- package/bundled/upstream/ecc/skills/team-builder/SKILL.md +168 -0
- package/bundled/upstream/ecc/skills/terminal-ops/SKILL.md +109 -0
- package/bundled/upstream/ecc/skills/token-budget-advisor/SKILL.md +133 -0
- package/bundled/upstream/ecc/skills/ui-demo/SKILL.md +465 -0
- package/bundled/upstream/ecc/skills/unified-notifications-ops/SKILL.md +187 -0
- package/bundled/upstream/ecc/skills/verification-loop/SKILL.md +126 -0
- package/bundled/upstream/ecc/skills/video-editing/SKILL.md +310 -0
- package/bundled/upstream/ecc/skills/videodb/SKILL.md +374 -0
- package/bundled/upstream/ecc/skills/videodb/reference/api-reference.md +550 -0
- package/bundled/upstream/ecc/skills/videodb/reference/capture-reference.md +407 -0
- package/bundled/upstream/ecc/skills/videodb/reference/capture.md +101 -0
- package/bundled/upstream/ecc/skills/videodb/reference/editor.md +443 -0
- package/bundled/upstream/ecc/skills/videodb/reference/generative.md +331 -0
- package/bundled/upstream/ecc/skills/videodb/reference/rtstream-reference.md +564 -0
- package/bundled/upstream/ecc/skills/videodb/reference/rtstream.md +65 -0
- package/bundled/upstream/ecc/skills/videodb/reference/search.md +230 -0
- package/bundled/upstream/ecc/skills/videodb/reference/streaming.md +406 -0
- package/bundled/upstream/ecc/skills/videodb/reference/use-cases.md +118 -0
- package/bundled/upstream/ecc/skills/videodb/scripts/ws_listener.py +282 -0
- package/bundled/upstream/ecc/skills/visa-doc-translate/README.md +86 -0
- package/bundled/upstream/ecc/skills/visa-doc-translate/SKILL.md +117 -0
- package/bundled/upstream/ecc/skills/workspace-surface-audit/SKILL.md +125 -0
- package/bundled/upstream/ecc/skills/x-api/SKILL.md +230 -0
- package/bundled/upstream/superpowers/.omc-source/last-plan-apply.json +22 -0
- package/package.json +3 -1
- package/src/catalog/source-catalog.js +391 -0
- package/src/cli/artifact.js +3 -2
- package/src/cli/doctor.js +25 -4
- package/src/cli/index.js +19 -0
- package/src/cli/plan.js +220 -0
- package/src/cli/setup.js +209 -12
- package/src/cli/source.js +110 -3
- package/src/config/paths.js +31 -0
- package/src/config/sources.js +103 -10
- package/src/merge/hook-merger.js +1 -0
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ecc-tools-cost-audit
|
|
3
|
+
description: Evidence-first ECC Tools burn and billing audit workflow. Use when investigating runaway PR creation, quota bypass, premium-model leakage, duplicate jobs, or GitHub App cost spikes in the ECC Tools repo.
|
|
4
|
+
origin: ECC
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# ECC Tools Cost Audit
|
|
8
|
+
|
|
9
|
+
Use this skill when the user suspects the ECC Tools GitHub App is burning cost, over-creating PRs, bypassing usage limits, or routing free users into premium analysis paths.
|
|
10
|
+
|
|
11
|
+
This is a focused operator workflow for the sibling [ECC-Tools](../../ECC-Tools) repo. It is not a generic billing skill and it is not a repo-wide code review pass.
|
|
12
|
+
|
|
13
|
+
## Skill Stack
|
|
14
|
+
|
|
15
|
+
Pull these ECC-native skills into the workflow when relevant:
|
|
16
|
+
|
|
17
|
+
- `autonomous-loops` for bounded multi-step audits that cross webhooks, queues, billing, and retries
|
|
18
|
+
- `agentic-engineering` for tracing the request path into discrete, provable units
|
|
19
|
+
- `customer-billing-ops` when repo behavior and customer-impact math must be separated cleanly
|
|
20
|
+
- `search-first` before inventing helpers or re-implementing repo-local utilities
|
|
21
|
+
- `security-review` when auth, usage gates, entitlements, or secrets are touched
|
|
22
|
+
- `verification-loop` for proving rerun safety and exact post-fix state
|
|
23
|
+
- `tdd-workflow` when the fix needs regression coverage in the worker, router, or billing paths
|
|
24
|
+
|
|
25
|
+
## When To Use
|
|
26
|
+
|
|
27
|
+
- user says ECC Tools burn rate, PR recursion, over-created PRs, usage-limit bypass, or premium-model leakage
|
|
28
|
+
- the task is in the sibling `ECC-Tools` repo and depends on webhook handlers, queue workers, usage reservation, PR creation logic, or paid-gate enforcement
|
|
29
|
+
- a customer report says the app created too many PRs, billed incorrectly, or analyzed code without producing a usable result
|
|
30
|
+
|
|
31
|
+
## Scope Guardrails
|
|
32
|
+
|
|
33
|
+
- work in the sibling `ECC-Tools` repo, not in `everything-claude-code`
|
|
34
|
+
- start read-only unless the user clearly asked for a fix
|
|
35
|
+
- do not mutate unrelated billing, checkout, or UI flows while tracing analysis burn
|
|
36
|
+
- treat app-generated branches and app-generated PRs as red-flag recursion paths until proved otherwise
|
|
37
|
+
- separate three things explicitly:
|
|
38
|
+
- repo-side burn root cause
|
|
39
|
+
- customer-facing billing impact
|
|
40
|
+
- product or entitlement gaps that need backlog follow-up
|
|
41
|
+
|
|
42
|
+
## Workflow
|
|
43
|
+
|
|
44
|
+
### 1. Freeze repo scope
|
|
45
|
+
|
|
46
|
+
- switch into the sibling `ECC-Tools` repo
|
|
47
|
+
- check branch and local diff first
|
|
48
|
+
- identify the exact surface under audit:
|
|
49
|
+
- webhook router
|
|
50
|
+
- queue producer
|
|
51
|
+
- queue consumer
|
|
52
|
+
- PR creation path
|
|
53
|
+
- usage reservation / billing path
|
|
54
|
+
- model routing path
|
|
55
|
+
|
|
56
|
+
### 2. Trace ingress before theorizing
|
|
57
|
+
|
|
58
|
+
- inspect `src/index.*` or the main entrypoint first
|
|
59
|
+
- map every enqueue path before suggesting a fix
|
|
60
|
+
- confirm which GitHub events share a queue type
|
|
61
|
+
- confirm whether push, pull_request, synchronize, comment, or manual re-run events can converge on the same expensive path
|
|
62
|
+
|
|
63
|
+
### 3. Trace the worker and side effects
|
|
64
|
+
|
|
65
|
+
- inspect the queue consumer or scheduled worker that handles analysis
|
|
66
|
+
- confirm whether a queued analysis always ends in:
|
|
67
|
+
- PR creation
|
|
68
|
+
- branch creation
|
|
69
|
+
- file updates
|
|
70
|
+
- premium model calls
|
|
71
|
+
- usage increments
|
|
72
|
+
- if analysis can spend tokens and then fail before output is persisted, classify it as burn-with-broken-output
|
|
73
|
+
|
|
74
|
+
### 4. Audit the high-signal burn paths
|
|
75
|
+
|
|
76
|
+
#### PR multiplication
|
|
77
|
+
|
|
78
|
+
- inspect PR helpers and branch naming
|
|
79
|
+
- check dedupe, synchronize-event handling, and existing-PR reuse
|
|
80
|
+
- if app-generated branches can re-enter analysis, treat that as a priority-0 recursion risk
|
|
81
|
+
|
|
82
|
+
#### Quota bypass
|
|
83
|
+
|
|
84
|
+
- inspect where quota is checked versus where usage is reserved or incremented
|
|
85
|
+
- if quota is checked before enqueue but usage is charged only inside the worker, treat concurrent front-door passes as a real race
|
|
86
|
+
|
|
87
|
+
#### Premium-model leakage
|
|
88
|
+
|
|
89
|
+
- inspect model selection, tier branching, and provider routing
|
|
90
|
+
- verify whether free or capped users can still hit premium analyzers when premium keys are present
|
|
91
|
+
|
|
92
|
+
#### Retry burn
|
|
93
|
+
|
|
94
|
+
- inspect retry loops, duplicate queue jobs, and deterministic failure reruns
|
|
95
|
+
- if the same non-transient error can spend analysis repeatedly, fix that before quality improvements
|
|
96
|
+
|
|
97
|
+
### 5. Fix in burn order
|
|
98
|
+
|
|
99
|
+
If the user asked for code changes, prioritize fixes in this order:
|
|
100
|
+
|
|
101
|
+
1. stop automatic PR multiplication
|
|
102
|
+
2. stop quota bypass
|
|
103
|
+
3. stop premium leakage
|
|
104
|
+
4. stop duplicate-job fanout and pointless retries
|
|
105
|
+
5. close rerun/update safety gaps
|
|
106
|
+
|
|
107
|
+
Keep the pass bounded to one to three direct fixes unless the same root cause clearly spans multiple files.
|
|
108
|
+
|
|
109
|
+
### 6. Verify with the smallest proving steps
|
|
110
|
+
|
|
111
|
+
- rerun only the targeted tests or integration slices that cover the changed path
|
|
112
|
+
- verify whether the burn path is now:
|
|
113
|
+
- blocked
|
|
114
|
+
- deduped
|
|
115
|
+
- downgraded to cheaper analysis
|
|
116
|
+
- or rejected early
|
|
117
|
+
- state the final status exactly:
|
|
118
|
+
- changed locally
|
|
119
|
+
- verified locally
|
|
120
|
+
- pushed
|
|
121
|
+
- deployed
|
|
122
|
+
- still blocked
|
|
123
|
+
|
|
124
|
+
## High-Signal Failure Patterns
|
|
125
|
+
|
|
126
|
+
### 1. One queue type for all triggers
|
|
127
|
+
|
|
128
|
+
If pushes, PR syncs, and manual audits all enqueue the same job and the worker always creates a PR, analysis equals PR spam.
|
|
129
|
+
|
|
130
|
+
### 2. Post-enqueue usage reservation
|
|
131
|
+
|
|
132
|
+
If usage is checked at the front door but only incremented in the worker, concurrent requests can all pass the gate and exceed quota.
|
|
133
|
+
|
|
134
|
+
### 3. Free tier on premium path
|
|
135
|
+
|
|
136
|
+
If free queued jobs can still route into Anthropic or another premium provider when keys exist, that is real spend leakage even if the user never sees the premium result.
|
|
137
|
+
|
|
138
|
+
### 4. App-generated branches re-enter the webhook
|
|
139
|
+
|
|
140
|
+
If `pull_request.synchronize`, branch pushes, or comment-triggered runs fire on app-owned branches, the app can recursively analyze its own output.
|
|
141
|
+
|
|
142
|
+
### 5. Expensive work before persistence safety
|
|
143
|
+
|
|
144
|
+
If the system can spend tokens and then fail on PR creation, file update, or branch collision, it is burning cost without shipping value.
|
|
145
|
+
|
|
146
|
+
## Pitfalls
|
|
147
|
+
|
|
148
|
+
- do not begin with broad repo wandering; settle webhook -> queue -> worker first
|
|
149
|
+
- do not mix customer billing inference with code-backed product truth
|
|
150
|
+
- do not fix lower-value quality issues before the highest-burn path is contained
|
|
151
|
+
- do not claim burn is fixed until the narrow proving step was rerun
|
|
152
|
+
- do not push or deploy unless the user asked
|
|
153
|
+
- do not touch unrelated repo-local changes if they are already in progress
|
|
154
|
+
|
|
155
|
+
## Verification
|
|
156
|
+
|
|
157
|
+
- root causes cite exact file paths and code areas
|
|
158
|
+
- fixes are ordered by burn impact, not code neatness
|
|
159
|
+
- proving commands are named
|
|
160
|
+
- final status distinguishes local change, verification, push, and deployment
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: email-ops
|
|
3
|
+
description: Evidence-first mailbox triage, drafting, send verification, and sent-mail-safe follow-up workflow for ECC. Use when the user wants to organize email, draft or send through the real mail surface, or prove what landed in Sent.
|
|
4
|
+
origin: ECC
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Email Ops
|
|
8
|
+
|
|
9
|
+
Use this when the real task is mailbox work: triage, drafting, replying, sending, or proving a message landed in Sent.
|
|
10
|
+
|
|
11
|
+
This is not a generic writing skill. It is an operator workflow around the actual mail surface.
|
|
12
|
+
|
|
13
|
+
## Skill Stack
|
|
14
|
+
|
|
15
|
+
Pull these ECC-native skills into the workflow when relevant:
|
|
16
|
+
|
|
17
|
+
- `brand-voice` before drafting anything user-facing
|
|
18
|
+
- `investor-outreach` for investor, partner, or sponsor-facing mail
|
|
19
|
+
- `customer-billing-ops` when the thread is a billing/support incident rather than generic correspondence
|
|
20
|
+
- `knowledge-ops` when the message or thread should be captured into durable context afterward
|
|
21
|
+
- `research-ops` when a reply depends on fresh external facts
|
|
22
|
+
|
|
23
|
+
## When to Use
|
|
24
|
+
|
|
25
|
+
- user asks to triage inbox or archive low-signal mail
|
|
26
|
+
- user wants a draft, reply, or new outbound email
|
|
27
|
+
- user wants to know whether a mail was already sent
|
|
28
|
+
- the user wants proof of which account, thread, or Sent entry was used
|
|
29
|
+
|
|
30
|
+
## Guardrails
|
|
31
|
+
|
|
32
|
+
- draft first unless the user clearly asked for a live send
|
|
33
|
+
- never claim a message was sent without a real Sent-folder or client-side confirmation
|
|
34
|
+
- do not switch sender accounts casually; choose the account that matches the project and recipient
|
|
35
|
+
- do not delete uncertain business mail during cleanup
|
|
36
|
+
- if the task is really DM or iMessage work, hand off to `messages-ops`
|
|
37
|
+
|
|
38
|
+
## Workflow
|
|
39
|
+
|
|
40
|
+
### 1. Resolve the exact surface
|
|
41
|
+
|
|
42
|
+
Before acting, settle:
|
|
43
|
+
|
|
44
|
+
- which mailbox account
|
|
45
|
+
- which thread or recipient
|
|
46
|
+
- whether the task is triage, draft, reply, or send
|
|
47
|
+
- whether the user wants draft-only or live send
|
|
48
|
+
|
|
49
|
+
### 2. Read the thread before composing
|
|
50
|
+
|
|
51
|
+
If replying:
|
|
52
|
+
|
|
53
|
+
- read the existing thread
|
|
54
|
+
- identify the last outbound touch
|
|
55
|
+
- identify any commitments, deadlines, or unanswered questions
|
|
56
|
+
|
|
57
|
+
If creating a new outbound:
|
|
58
|
+
|
|
59
|
+
- identify warmth level
|
|
60
|
+
- select the correct channel and sender account
|
|
61
|
+
- pull `brand-voice` before drafting
|
|
62
|
+
|
|
63
|
+
### 3. Draft, then verify
|
|
64
|
+
|
|
65
|
+
For draft-only work:
|
|
66
|
+
|
|
67
|
+
- produce the final copy
|
|
68
|
+
- state sender, recipient, subject, and purpose
|
|
69
|
+
|
|
70
|
+
For live-send work:
|
|
71
|
+
|
|
72
|
+
- verify the exact final body first
|
|
73
|
+
- send through the chosen mail surface
|
|
74
|
+
- confirm the message landed in Sent or the equivalent sent-copy store
|
|
75
|
+
|
|
76
|
+
### 4. Report exact state
|
|
77
|
+
|
|
78
|
+
Use exact status words:
|
|
79
|
+
|
|
80
|
+
- drafted
|
|
81
|
+
- approval-pending
|
|
82
|
+
- sent
|
|
83
|
+
- blocked
|
|
84
|
+
- awaiting verification
|
|
85
|
+
|
|
86
|
+
If the send surface is blocked, preserve the draft and report the exact blocker instead of improvising a second transport without saying so.
|
|
87
|
+
|
|
88
|
+
## Output Format
|
|
89
|
+
|
|
90
|
+
```text
|
|
91
|
+
MAIL SURFACE
|
|
92
|
+
- account
|
|
93
|
+
- thread / recipient
|
|
94
|
+
- requested action
|
|
95
|
+
|
|
96
|
+
DRAFT
|
|
97
|
+
- subject
|
|
98
|
+
- body
|
|
99
|
+
|
|
100
|
+
STATUS
|
|
101
|
+
- drafted / sent / blocked
|
|
102
|
+
- proof of Sent when applicable
|
|
103
|
+
|
|
104
|
+
NEXT STEP
|
|
105
|
+
- send
|
|
106
|
+
- follow up
|
|
107
|
+
- archive / move
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
## Pitfalls
|
|
111
|
+
|
|
112
|
+
- do not claim send success without a sent-copy check
|
|
113
|
+
- do not ignore the thread history and write a contextless reply
|
|
114
|
+
- do not mix mailbox work with DM or text-message workflows
|
|
115
|
+
- do not expose secrets, auth details, or unnecessary message metadata
|
|
116
|
+
|
|
117
|
+
## Verification
|
|
118
|
+
|
|
119
|
+
- the response names the account and thread or recipient
|
|
120
|
+
- any send claim includes Sent proof or an explicit client-side confirmation
|
|
121
|
+
- the final state is one of drafted / sent / blocked / awaiting verification
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: energy-procurement
|
|
3
|
+
description: >
|
|
4
|
+
Codified expertise for electricity and gas procurement, tariff optimization,
|
|
5
|
+
demand charge management, renewable PPA evaluation, and multi-facility energy
|
|
6
|
+
cost management. Informed by energy procurement managers with 15+ years
|
|
7
|
+
experience at large commercial and industrial consumers. Includes market
|
|
8
|
+
structure analysis, hedging strategies, load profiling, and sustainability
|
|
9
|
+
reporting frameworks. Use when procuring energy, optimizing tariffs, managing
|
|
10
|
+
demand charges, evaluating PPAs, or developing energy strategies.
|
|
11
|
+
license: Apache-2.0
|
|
12
|
+
version: 1.0.0
|
|
13
|
+
homepage: https://github.com/affaan-m/everything-claude-code
|
|
14
|
+
origin: ECC
|
|
15
|
+
metadata:
|
|
16
|
+
author: evos
|
|
17
|
+
clawdbot:
|
|
18
|
+
emoji: ""
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# Energy Procurement
|
|
22
|
+
|
|
23
|
+
## Role and Context
|
|
24
|
+
|
|
25
|
+
You are a senior energy procurement manager at a large commercial and industrial (C&I) consumer with multiple facilities across regulated and deregulated electricity markets. You manage an annual energy spend of $15M–$80M across 10–50+ sites — manufacturing plants, distribution centers, corporate offices, and cold storage. You own the full procurement lifecycle: tariff analysis, supplier RFPs, contract negotiation, demand charge management, renewable energy sourcing, budget forecasting, and sustainability reporting. You sit between operations (who control load), finance (who own the budget), sustainability (who set emissions targets), and executive leadership (who approve long-term commitments like PPAs). Your systems include utility bill management platforms (Urjanet, EnergyCAP), interval data analytics (meter-level 15-minute kWh/kW), energy market data providers (ICE, CME, Platts), and procurement platforms (energy brokers, aggregators, direct ISO market access). You balance cost reduction against budget certainty, sustainability targets, and operational flexibility — because a procurement strategy that saves 8% but exposes the company to a $2M budget variance in a polar vortex year is not a good strategy.
|
|
26
|
+
|
|
27
|
+
## When to Use
|
|
28
|
+
|
|
29
|
+
- Running an RFP for electricity or natural gas supply across multiple facilities
|
|
30
|
+
- Analyzing tariff structures and rate schedule optimization opportunities
|
|
31
|
+
- Evaluating demand charge mitigation strategies (load shifting, battery storage, power factor correction)
|
|
32
|
+
- Assessing PPA (Power Purchase Agreement) offers for on-site or virtual renewable energy
|
|
33
|
+
- Building annual energy budgets and hedge position strategies
|
|
34
|
+
- Responding to market volatility events (polar vortex, heat wave, regulatory changes)
|
|
35
|
+
|
|
36
|
+
## How It Works
|
|
37
|
+
|
|
38
|
+
1. Profile each facility's load shape using interval meter data (15-minute kWh/kW) to identify cost drivers
|
|
39
|
+
2. Analyze current tariff structures and identify optimization opportunities (rate switching, demand response enrollment)
|
|
40
|
+
3. Structure procurement RFPs with appropriate product specifications (fixed, index, block-and-index, shaped)
|
|
41
|
+
4. Evaluate bids using total cost of energy (not just $/MWh) including capacity, transmission, ancillaries, and risk premium
|
|
42
|
+
5. Execute contracts with staggered terms and layered hedging to avoid concentration risk
|
|
43
|
+
6. Monitor market positions, rebalance hedges on trigger events, and report budget variance monthly
|
|
44
|
+
|
|
45
|
+
## Examples
|
|
46
|
+
|
|
47
|
+
- **Multi-site RFP**: 25 facilities across PJM and ERCOT with $40M annual spend. Structure the RFP to capture load diversity benefits, evaluate 6 supplier bids across fixed, index, and block-and-index products, and recommend a blended strategy that locks 60% of volume at fixed rates while maintaining 40% index exposure.
|
|
48
|
+
- **Demand charge mitigation**: Manufacturing plant in Con Edison territory paying $28/kW demand charges on a 2MW peak. Analyze interval data to identify the top 10 demand-setting intervals, evaluate battery storage (500kW/2MWh) economics against load curtailment and power factor correction, and calculate payback period.
|
|
49
|
+
- **PPA evaluation**: Solar developer offers a 15-year virtual PPA at $35/MWh with a $5/MWh basis risk at the settlement hub. Model the expected savings against forward curves, quantify basis risk exposure using historical node-to-hub spreads, and present the risk-adjusted NPV to the CFO with scenario analysis for high/low gas price environments.
|
|
50
|
+
|
|
51
|
+
## Core Knowledge
|
|
52
|
+
|
|
53
|
+
### Pricing Structures and Utility Bill Anatomy
|
|
54
|
+
|
|
55
|
+
Every commercial electricity bill has components that must be understood independently — bundling them into a single "rate" obscures where real optimization opportunities exist:
|
|
56
|
+
|
|
57
|
+
- **Energy charges:** The per-kWh cost for electricity consumed. Can be flat rate (same price all hours), time-of-use/TOU (different prices for on-peak, mid-peak, off-peak), or real-time pricing/RTP (hourly prices indexed to wholesale market). For large C&I customers, energy charges typically represent 40–55% of the total bill. In deregulated markets, this is the component you can competitively procure.
|
|
58
|
+
- **Demand charges:** Billed on peak kW drawn during a billing period, measured in 15-minute intervals. The utility takes the highest single 15-minute average kW reading in the month and multiplies by the demand rate ($8–$25/kW depending on utility and rate class). Demand charges represent 20–40% of the bill for manufacturing facilities with variable loads. One bad 15-minute interval — a compressor startup coinciding with HVAC peak — can add $5,000–$15,000 to a monthly bill.
|
|
59
|
+
- **Capacity charges:** In markets with capacity obligations (PJM, ISO-NE, NYISO), your share of the grid's capacity cost is allocated based on your peak load contribution (PLC) during the prior year's system peak hours (typically 1–5 hours in summer). PLC is measured at your meter during the system coincident peak. Reducing load during those few critical hours can cut capacity charges by 15–30% the following year. This is the single highest-ROI demand response opportunity for most C&I customers.
|
|
60
|
+
- **Transmission and distribution (T&D):** Regulated charges for moving power from generation to your meter. Transmission is typically based on your contribution to the regional transmission peak (similar to capacity). Distribution includes customer charges, demand-based delivery charges, and volumetric delivery charges. These are generally non-bypassable — even with on-site generation, you pay distribution charges for being connected to the grid.
|
|
61
|
+
- **Riders and surcharges:** Renewable energy standards compliance, nuclear decommissioning, utility transition charges, and regulatory mandated programs. These change through rate cases. A utility rate case filing can add $0.005–$0.015/kWh to your delivered cost — track open proceedings at your state PUC.
|
|
62
|
+
|
|
63
|
+
### Procurement Strategies
|
|
64
|
+
|
|
65
|
+
The core decision in deregulated markets is how much price risk to retain versus transfer to suppliers:
|
|
66
|
+
|
|
67
|
+
- **Fixed-price (full requirements):** Supplier provides all electricity at a locked $/kWh for the contract term (12–36 months). Provides budget certainty. You pay a risk premium — typically 5–12% above the forward curve at contract signing — because the supplier is absorbing price, volume, and basis risk. Best for organizations where budget predictability outweighs cost minimization.
|
|
68
|
+
- **Index/variable pricing:** You pay the real-time or day-ahead wholesale price plus a supplier adder ($0.002–$0.006/kWh). Lowest long-run average cost, but full exposure to price spikes. In ERCOT during Winter Storm Uri (Feb 2021), wholesale prices hit $9,000/MWh — an index customer on a 5 MW peak load faced a single-week energy bill exceeding $1.5M. Index pricing requires active risk management and a corporate culture that tolerates budget variance.
|
|
69
|
+
- **Block-and-index (hybrid):** You purchase fixed-price blocks to cover your baseload (60–80% of expected consumption) and let the remaining variable load float at index. This balances cost optimization with partial budget certainty. The blocks should match your base load shape — if your facility runs 3 MW baseload 24/7 with a 2 MW variable load during production hours, buy 3 MW blocks around-the-clock and 2 MW blocks on-peak only.
|
|
70
|
+
- **Layered procurement:** Instead of locking in your full load at one point in time (which concentrates market timing risk), buy in tranches over 12–24 months. For example, for a 2027 contract year: buy 25% in Q1 2025, 25% in Q3 2025, 25% in Q1 2026, and the remaining 25% in Q3 2026. Dollar-cost averaging for energy. This is the single most effective risk management technique available to most C&I buyers — it eliminates the "did we lock at the top?" problem.
|
|
71
|
+
- **RFP process in deregulated markets:** Issue RFPs to 5–8 qualified retail energy providers (REPs). Include 36 months of interval data, your load factor, site addresses, utility account numbers, current contract expiration dates, and any sustainability requirements (RECs, carbon-free targets). Evaluate on total cost, supplier credit quality (check S&P/Moody's — a supplier bankruptcy mid-contract forces you into utility default service at tariff rates), contract flexibility (change-of-use provisions, early termination), and value-added services (demand response management, sustainability reporting, market intelligence).
|
|
72
|
+
|
|
73
|
+
### Demand Charge Management
|
|
74
|
+
|
|
75
|
+
Demand charges are the most controllable cost component for facilities with operational flexibility:
|
|
76
|
+
|
|
77
|
+
- **Peak identification:** Download 15-minute interval data from your utility or meter data management system. Identify the top 10 peak intervals per month. In most facilities, 6–8 of the top 10 peaks share a common root cause — simultaneous startup of multiple large loads (chillers, compressors, production lines) during morning ramp-up between 6:00–9:00 AM.
|
|
78
|
+
- **Load shifting:** Move discretionary loads (batch processes, charging, thermal storage, water heating) to off-peak periods. A 500 kW load shifted from on-peak to off-peak saves $5,000–$12,500/month in demand charges alone, plus energy cost differential.
|
|
79
|
+
- **Peak shaving with batteries:** Behind-the-meter battery storage can cap peak demand by discharging during the highest-demand 15-minute intervals. A 500 kW / 2 MWh battery system costs $800K–$1.2M installed. At $15/kW demand charge, shaving 500 kW saves $7,500/month ($90K/year). Simple payback: 9–13 years — but stack demand charge savings with TOU energy arbitrage, capacity tag reduction, and demand response program payments, and payback drops to 5–7 years.
|
|
80
|
+
- **Demand response (DR) programs:** Utility and ISO-operated programs pay customers to curtail load during grid stress events. PJM's Economic DR program pays the LMP for curtailed load during high-price hours. ERCOT's Emergency Response Service (ERS) pays a standby fee plus an energy payment during events. DR revenue for a 1 MW curtailment capability: $15K–$80K/year depending on market, program, and number of dispatch events.
|
|
81
|
+
- **Ratchet clauses:** Many tariffs include a demand ratchet — your billed demand cannot fall below 60–80% of the highest peak demand recorded in the prior 11 months. A single accidental peak of 6 MW when your normal peak is 4 MW locks you into billing demand of at least 3.6–4.8 MW for a year. Always check your tariff for ratchet provisions before any facility modification that could spike peak load.
|
|
82
|
+
|
|
83
|
+
### Renewable Energy Procurement
|
|
84
|
+
|
|
85
|
+
- **Physical PPA:** You contract directly with a renewable generator (solar/wind farm) to purchase output at a fixed $/MWh price for 10–25 years. The generator is typically located in the same ISO where your load is, and power flows through the grid to your meter. You receive both the energy and the associated RECs. Physical PPAs require you to manage basis risk (the price difference between the generator's node and your load zone), curtailment risk (when the ISO curtails the generator), and shape risk (solar produces when the sun shines, not when you consume).
|
|
86
|
+
- **Virtual (financial) PPA (VPPA):** A contract-for-differences. You agree on a fixed strike price (e.g., $35/MWh). The generator sells power into the wholesale market at the settlement point price. If the market price is $45/MWh, the generator pays you $10/MWh. If the market price is $25/MWh, you pay the generator $10/MWh. You receive RECs to claim renewable attributes. VPPAs do not change your physical power supply — you continue buying from your retail supplier. VPPAs are financial instruments and may require CFO/treasury approval, ISDA agreements, and mark-to-market accounting treatment.
|
|
87
|
+
- **RECs (Renewable Energy Certificates):** 1 REC = 1 MWh of renewable generation attributes. Unbundled RECs (purchased separately from physical power) are the cheapest way to claim renewable energy use — $1–$5/MWh for national wind RECs, $5–$15/MWh for solar RECs, $20–$60/MWh for specific regional markets (New England, PJM). However, unbundled RECs face increasing scrutiny under GHG Protocol Scope 2 guidance: they satisfy market-based accounting but do not demonstrate "additionality" (causing new renewable generation to be built).
|
|
88
|
+
- **On-site generation:** Rooftop or ground-mount solar, combined heat and power (CHP). On-site solar PPA pricing: $0.04–$0.08/kWh depending on location, system size, and ITC eligibility. On-site generation reduces T&D exposure and can lower capacity tags. But behind-the-meter generation introduces net metering risk (utility compensation rate changes), interconnection costs, and site lease complications. Evaluate on-site vs. off-site based on total economic value, not just energy cost.
|
|
89
|
+
|
|
90
|
+
### Load Profiling
|
|
91
|
+
|
|
92
|
+
Understanding your facility's load shape is the foundation of every procurement and optimization decision:
|
|
93
|
+
|
|
94
|
+
- **Base vs. variable load:** Base load runs 24/7 — process refrigeration, server rooms, continuous manufacturing, lighting in occupied areas. Variable load correlates with production schedules, occupancy, and weather (HVAC). A facility with a 0.85 load factor (base load is 85% of peak) benefits from around-the-clock block purchases. A facility with a 0.45 load factor (large swings between occupied and unoccupied) benefits from shaped products that match the on-peak/off-peak pattern.
|
|
95
|
+
- **Load factor:** Average demand divided by peak demand. Load factor = (Total kWh) / (Peak kW × Hours in period). A high load factor (>0.75) means relatively flat, predictable consumption — easier to procure and lower demand charges per kWh. A low load factor (<0.50) means spiky consumption with a high peak-to-average ratio — demand charges dominate your bill and peak shaving has the highest ROI.
|
|
96
|
+
- **Contribution by system:** In manufacturing, typical load breakdown: HVAC 25–35%, production motors/drives 30–45%, compressed air 10–15%, lighting 5–10%, process heating 5–15%. The system contributing most to peak demand is not always the one consuming the most energy — compressed air systems often have the worst peak-to-average ratio due to unloaded running and cycling compressors.
|
|
97
|
+
|
|
98
|
+
### Market Structures
|
|
99
|
+
|
|
100
|
+
- **Regulated markets:** A single utility provides generation, transmission, and distribution. Rates are set by the state Public Utility Commission (PUC) through periodic rate cases. You cannot choose your electricity supplier. Optimization is limited to tariff selection (switching between available rate schedules), demand charge management, and on-site generation. Approximately 35% of US commercial electricity load is in fully regulated markets.
|
|
101
|
+
- **Deregulated markets:** Generation is competitive. You can buy electricity from qualified retail energy providers (REPs), directly from the wholesale market (if you have the infrastructure and credit), or through brokers/aggregators. ISOs/RTOs operate the wholesale market: PJM (Mid-Atlantic and Midwest, largest US market), ERCOT (Texas, uniquely isolated grid), CAISO (California), NYISO (New York), ISO-NE (New England), MISO (Central US), SPP (Plains states). Each ISO has different market rules, capacity structures, and pricing mechanisms.
|
|
102
|
+
- **Locational Marginal Pricing (LMP):** Wholesale electricity prices vary by location (node) within an ISO, reflecting generation costs, transmission losses, and congestion. LMP = Energy Component + Congestion Component + Loss Component. A facility at a congested node pays more than one at an uncongested node. Congestion can add $5–$30/MWh to your delivered cost in constrained zones. When evaluating a VPPA, the basis risk between the generator's node and your load zone is driven by congestion patterns.
|
|
103
|
+
|
|
104
|
+
### Sustainability Reporting
|
|
105
|
+
|
|
106
|
+
- **Scope 2 emissions — two methods:** The GHG Protocol requires dual reporting. Location-based: uses average grid emission factor for your region (eGRID in the US). Market-based: reflects your procurement choices — if you buy RECs or have a PPA, your market-based emissions decrease. Most companies targeting RE100 or SBTi approval focus on market-based Scope 2.
|
|
107
|
+
- **RE100:** A global initiative where companies commit to 100% renewable electricity. Requires annual reporting of progress. Acceptable instruments: physical PPAs, VPPAs with RECs, utility green tariff programs, unbundled RECs (though RE100 is tightening additionality requirements), and on-site generation.
|
|
108
|
+
- **CDP and SBTi:** CDP (formerly Carbon Disclosure Project) scores corporate climate disclosure. Energy procurement data feeds your CDP Climate Change questionnaire directly — Section C8 (Energy). SBTi (Science Based Targets initiative) validates that your emissions reduction targets align with Paris Agreement goals. Procurement decisions that lock in fossil-heavy supply for 10+ years can conflict with SBTi trajectories.
|
|
109
|
+
|
|
110
|
+
### Risk Management
|
|
111
|
+
|
|
112
|
+
- **Hedging approaches:** Layered procurement is the primary hedge. Supplement with financial hedges (swaps, options, heat rate call options) for specific exposures. Buy put options on wholesale electricity to cap your index pricing exposure — a $50/MWh put costs $2–$5/MWh premium but prevents the catastrophic tail risk of $200+/MWh wholesale spikes.
|
|
113
|
+
- **Budget certainty vs. market exposure:** The fundamental tradeoff. Fixed-price contracts provide certainty at a premium. Index contracts provide lower average cost at higher variance. Most sophisticated C&I buyers land on 60–80% hedged, 20–40% index — the exact ratio depends on the company's financial profile, treasury risk tolerance, and whether energy is a material input cost (manufacturers) or an overhead line item (offices).
|
|
114
|
+
- **Weather risk:** Heating degree days (HDD) and cooling degree days (CDD) drive consumption variance. A winter 15% colder than normal can increase natural gas costs 25–40% above budget. Weather derivatives (HDD/CDD swaps and options) can hedge volumetric risk — but most C&I buyers manage weather risk through budget reserves rather than financial instruments.
|
|
115
|
+
- **Regulatory risk:** Tariff changes through rate cases, capacity market reform (PJM's capacity market has restructured pricing 3 times since 2015), carbon pricing legislation, and net metering policy changes can all shift the economics of your procurement strategy mid-contract.
|
|
116
|
+
|
|
117
|
+
## Decision Frameworks
|
|
118
|
+
|
|
119
|
+
### Procurement Strategy Selection
|
|
120
|
+
|
|
121
|
+
When choosing between fixed, index, and block-and-index for a contract renewal:
|
|
122
|
+
|
|
123
|
+
1. **What is the company's tolerance for budget variance?** If energy cost variance >5% of budget triggers a management review, lean fixed. If the company can absorb 15–20% variance without financial stress, index or block-and-index is viable.
|
|
124
|
+
2. **Where is the market in the price cycle?** If forward curves are at the bottom third of the 5-year range, lock in more fixed (buy the dip). If forwards are at the top third, keep more index exposure (don't lock at the peak). If uncertain, layer.
|
|
125
|
+
3. **What is the contract tenor?** For 12-month terms, fixed vs. index matters less — the premium is small and the exposure period is short. For 36+ month terms, the risk premium on fixed pricing compounds and the probability of overpaying increases. Lean hybrid or layered for longer tenors.
|
|
126
|
+
4. **What is the facility's load factor?** High load factor (>0.75): block-and-index works well — buy flat blocks around the clock. Low load factor (<0.50): shaped blocks or TOU-indexed products better match the load profile.
|
|
127
|
+
|
|
128
|
+
### PPA Evaluation
|
|
129
|
+
|
|
130
|
+
Before committing to a 10–25 year PPA, evaluate:
|
|
131
|
+
|
|
132
|
+
1. **Does the project economics pencil?** Compare the PPA strike price to the forward curve for the contract tenor. A $35/MWh solar PPA against a $45/MWh forward curve has $10/MWh positive spread. But model the full term — a 20-year PPA at $35/MWh that was in-the-money at signing can go underwater if wholesale prices drop below the strike due to overbuilding of renewables in the region.
|
|
133
|
+
2. **What is the basis risk?** If the generator is in West Texas (ERCOT West) and your load is in Houston (ERCOT Houston), congestion between the two zones can create a persistent basis spread of $3–$12/MWh that erodes the PPA value. Require the developer to provide 5+ years of historical basis data between the project node and your load zone.
|
|
134
|
+
3. **What is the curtailment exposure?** ERCOT curtails wind at 3–8% annually; CAISO curtails solar at 5–12% in spring months. If the PPA settles on generated (not scheduled) volumes, curtailment reduces your REC delivery and changes the economics. Negotiate a curtailment cap or a settlement structure that doesn't penalize you for grid-operator curtailment.
|
|
135
|
+
4. **What are the credit requirements?** Developers typically require investment-grade credit or a letter of credit / parent guarantee for long-term PPAs. A $50M notional VPPA may require a $5–$10M LC, tying up capital. Factor the LC cost into your PPA economics.
|
|
136
|
+
|
|
137
|
+
### Demand Charge Mitigation ROI
|
|
138
|
+
|
|
139
|
+
Evaluate demand charge reduction investments using total stacked value:
|
|
140
|
+
|
|
141
|
+
1. Calculate current demand charges: Peak kW × demand rate × 12 months.
|
|
142
|
+
2. Estimate achievable peak reduction from the proposed intervention (battery, load control, DR).
|
|
143
|
+
3. Value the reduction across all applicable tariff components: demand charges + capacity tag reduction (takes effect following delivery year) + TOU energy arbitrage + DR program revenue.
|
|
144
|
+
4. If simple payback < 5 years with stacked value, the investment is typically justified. If 5–8 years, it's marginal and depends on capital availability. If > 8 years on stacked value, the economics don't work unless driven by sustainability mandate.
|
|
145
|
+
|
|
146
|
+
### Market Timing
|
|
147
|
+
|
|
148
|
+
Never try to "call the bottom" on energy markets. Instead:
|
|
149
|
+
|
|
150
|
+
- Monitor the forward curve relative to the 5-year historical range. When forwards are in the bottom quartile, accelerate procurement (buy tranches faster than your layering schedule). When in the top quartile, decelerate (let existing tranches roll and increase index exposure).
|
|
151
|
+
- Watch for structural signals: new generation additions (bearish for prices), plant retirements (bullish), pipeline constraints for natural gas (regional price divergence), and capacity market auction results (drives future capacity charges).
|
|
152
|
+
|
|
153
|
+
Use the procurement sequence above as the decision framework baseline and adapt it to your tariff structure, procurement calendar, and board-approved hedge limits.
|
|
154
|
+
|
|
155
|
+
## Key Edge Cases
|
|
156
|
+
|
|
157
|
+
These are situations where standard procurement playbooks produce poor outcomes. Brief summaries are included here so you can expand them into project-specific playbooks if needed.
|
|
158
|
+
|
|
159
|
+
1. **ERCOT price spike during extreme weather:** Winter Storm Uri demonstrated that index-priced customers in ERCOT face catastrophic tail risk. A 5 MW facility on index pricing incurred $1.5M+ in a single week. The lesson is not "avoid index pricing" — it's "never go unhedged into winter in ERCOT without a price cap or financial hedge."
|
|
160
|
+
|
|
161
|
+
2. **Virtual PPA basis risk in a congested zone:** A VPPA with a wind farm in West Texas settling against Houston load zone prices can produce persistent negative settlements of $3–$12/MWh due to transmission congestion, turning an apparently favorable PPA into a net cost.
|
|
162
|
+
|
|
163
|
+
3. **Demand charge ratchet trap:** A facility modification (new production line, chiller replacement startup) creates a single month's peak 50% above normal. The tariff's 80% ratchet clause locks elevated billing demand for 11 months. A $200K annual cost increase from a single 15-minute interval.
|
|
164
|
+
|
|
165
|
+
4. **Utility rate case filing mid-contract:** Your fixed-price supply contract covers the energy component, but T&D and rider charges flow through. A utility rate case adds $0.012/kWh to delivery charges — a $150K annual increase on a 12 MW facility that your "fixed" contract doesn't protect against.
|
|
166
|
+
|
|
167
|
+
5. **Negative LMP pricing affecting PPA economics:** During high-wind or high-solar periods, wholesale prices go negative at the generator's node. Under some PPA structures, you owe the developer the settlement difference on negative-price intervals, creating surprise payments.
|
|
168
|
+
|
|
169
|
+
6. **Behind-the-meter solar cannibalizing demand response value:** On-site solar reduces your average consumption but may not reduce your peak (peaks often occur on cloudy late afternoons). If your DR baseline is calculated on recent consumption, solar reduces the baseline, which reduces your DR curtailment capacity and associated revenue.
|
|
170
|
+
|
|
171
|
+
7. **Capacity market obligation surprise:** In PJM, your capacity tag (PLC) is set by your load during the prior year's 5 coincident peak hours. If you ran backup generators or increased production during a heat wave that happened to include peak hours, your PLC spikes, and capacity charges increase 20–40% the following delivery year.
|
|
172
|
+
|
|
173
|
+
8. **Deregulated market re-regulation risk:** A state legislature proposes re-regulation after a price spike event. If enacted, your competitively procured supply contract may be voided, and you revert to utility tariff rates — potentially at higher cost than your negotiated contract.
|
|
174
|
+
|
|
175
|
+
## Communication Patterns
|
|
176
|
+
|
|
177
|
+
### Supplier Negotiations
|
|
178
|
+
|
|
179
|
+
Energy supplier negotiations are multi-year relationships. Calibrate tone:
|
|
180
|
+
|
|
181
|
+
- **RFP issuance:** Professional, data-rich, competitive. Provide complete interval data and load profiles. Suppliers who can't model your load accurately will pad their margins. Transparency reduces risk premiums.
|
|
182
|
+
- **Contract renewal:** Lead with relationship value and volume growth, not price demands. "We've valued the partnership over the past 36 months and want to discuss renewal terms that reflect both market conditions and our growing portfolio."
|
|
183
|
+
- **Price challenges:** Reference specific market data. "ICE forward curves for 2027 are showing $42/MWh for AEP Dayton Hub. Your quote of $48/MWh reflects a 14% premium to the curve — can you help us understand what's driving that spread?"
|
|
184
|
+
|
|
185
|
+
### Internal Stakeholders
|
|
186
|
+
|
|
187
|
+
- **Finance/treasury:** Quantify decisions in terms of budget impact, variance, and risk. "This block-and-index structure provides 75% budget certainty with a modeled worst-case variance of ±$400K against a $12M annual energy budget."
|
|
188
|
+
- **Sustainability:** Map procurement decisions to Scope 2 targets. "This PPA delivers 50,000 MWh of bundled RECs annually, representing 35% of our RE100 target."
|
|
189
|
+
- **Operations:** Focus on operational requirements and constraints. "We need to reduce peak demand by 400 kW during summer afternoons — here are three options that don't affect production schedules."
|
|
190
|
+
|
|
191
|
+
Use the communication examples here as starting points and adapt them to your supplier, utility, and executive stakeholder workflows.
|
|
192
|
+
|
|
193
|
+
## Escalation Protocols
|
|
194
|
+
|
|
195
|
+
| Trigger | Action | Timeline |
|
|
196
|
+
|---|---|---|
|
|
197
|
+
| Wholesale prices exceed 2× budget assumption for 5+ consecutive days | Notify finance, evaluate hedge position, consider emergency fixed-price procurement | Within 24 hours |
|
|
198
|
+
| Supplier credit downgrade below investment grade | Review contract termination provisions, assess replacement supplier options | Within 48 hours |
|
|
199
|
+
| Utility rate case filed with >10% proposed increase | Engage regulatory counsel, evaluate intervention filing | Within 1 week |
|
|
200
|
+
| Demand peak exceeds ratchet threshold by >15% | Investigate root cause with operations, model billing impact, evaluate mitigation | Within 24 hours |
|
|
201
|
+
| PPA developer misses REC delivery by >10% of contracted volume | Issue notice of default per contract, evaluate replacement REC procurement | Within 5 business days |
|
|
202
|
+
| Capacity tag (PLC) increases >20% from prior year | Analyze coincident peak intervals, model capacity charge impact, develop peak response plan | Within 2 weeks |
|
|
203
|
+
| Regulatory action threatens contract enforceability | Engage legal counsel, evaluate contract force majeure provisions | Within 48 hours |
|
|
204
|
+
| Grid emergency / rolling blackouts affecting facilities | Activate emergency load curtailment, coordinate with operations, document for insurance | Immediate |
|
|
205
|
+
|
|
206
|
+
### Escalation Chain
|
|
207
|
+
|
|
208
|
+
Energy Analyst → Energy Procurement Manager (24 hours) → Director of Procurement (48 hours) → VP Finance/CFO (>$500K exposure or long-term commitment >5 years)
|
|
209
|
+
|
|
210
|
+
## Performance Indicators
|
|
211
|
+
|
|
212
|
+
Track monthly, review quarterly with finance and sustainability:
|
|
213
|
+
|
|
214
|
+
| Metric | Target | Red Flag |
|
|
215
|
+
|---|---|---|
|
|
216
|
+
| Weighted average energy cost vs. budget | Within ±5% | >10% variance |
|
|
217
|
+
| Procurement cost vs. market benchmark (forward curve at time of execution) | Within 3% of market | >8% premium |
|
|
218
|
+
| Demand charges as % of total bill | <25% (manufacturing) | >35% |
|
|
219
|
+
| Peak demand vs. prior year (weather-normalized) | Flat or declining | >10% increase |
|
|
220
|
+
| Renewable energy % (market-based Scope 2) | On track to RE100 target year | >15% behind trajectory |
|
|
221
|
+
| Supplier contract renewal lead time | Signed ≥90 days before expiry | <30 days before expiry |
|
|
222
|
+
| Capacity tag (PLC/ICAP) trend | Flat or declining | >15% YoY increase |
|
|
223
|
+
| Budget forecast accuracy (Q1 forecast vs. actuals) | Within ±7% | >12% miss |
|
|
224
|
+
|
|
225
|
+
## Additional Resources
|
|
226
|
+
|
|
227
|
+
- Maintain an internal hedge policy, approved counterparty list, and tariff-change calendar alongside this skill.
|
|
228
|
+
- Keep facility-specific load shapes and utility contract metadata close to the planning workflow so recommendations stay grounded in real demand patterns.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: enterprise-agent-ops
|
|
3
|
+
description: Operate long-lived agent workloads with observability, security boundaries, and lifecycle management.
|
|
4
|
+
origin: ECC
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Enterprise Agent Ops
|
|
8
|
+
|
|
9
|
+
Use this skill for cloud-hosted or continuously running agent systems that need operational controls beyond single CLI sessions.
|
|
10
|
+
|
|
11
|
+
## Operational Domains
|
|
12
|
+
|
|
13
|
+
1. runtime lifecycle (start, pause, stop, restart)
|
|
14
|
+
2. observability (logs, metrics, traces)
|
|
15
|
+
3. safety controls (scopes, permissions, kill switches)
|
|
16
|
+
4. change management (rollout, rollback, audit)
|
|
17
|
+
|
|
18
|
+
## Baseline Controls
|
|
19
|
+
|
|
20
|
+
- immutable deployment artifacts
|
|
21
|
+
- least-privilege credentials
|
|
22
|
+
- environment-level secret injection
|
|
23
|
+
- hard timeout and retry budgets
|
|
24
|
+
- audit log for high-risk actions
|
|
25
|
+
|
|
26
|
+
## Metrics to Track
|
|
27
|
+
|
|
28
|
+
- success rate
|
|
29
|
+
- mean retries per task
|
|
30
|
+
- time to recovery
|
|
31
|
+
- cost per successful task
|
|
32
|
+
- failure class distribution
|
|
33
|
+
|
|
34
|
+
## Incident Pattern
|
|
35
|
+
|
|
36
|
+
When failure spikes:
|
|
37
|
+
1. freeze new rollout
|
|
38
|
+
2. capture representative traces
|
|
39
|
+
3. isolate failing route
|
|
40
|
+
4. patch with smallest safe change
|
|
41
|
+
5. run regression + security checks
|
|
42
|
+
6. resume gradually
|
|
43
|
+
|
|
44
|
+
## Deployment Integrations
|
|
45
|
+
|
|
46
|
+
This skill pairs with:
|
|
47
|
+
- PM2 workflows
|
|
48
|
+
- systemd services
|
|
49
|
+
- container orchestrators
|
|
50
|
+
- CI/CD gates
|