compact-agent 1.10.1 → 1.11.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/bin/ecc-hooks.cjs +110 -0
- package/dist/ecc.d.ts +11 -0
- package/dist/ecc.js +142 -27
- package/dist/ecc.js.map +1 -1
- package/dist/index.js +47 -7
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/resources/ecc/agents/a11y-architect.md +149 -0
- package/resources/ecc/agents/architect.md +11 -3
- package/resources/ecc/agents/build-error-resolver.md +11 -4
- package/resources/ecc/agents/chief-of-staff.md +11 -4
- package/resources/ecc/agents/code-architect.md +80 -0
- package/resources/ecc/agents/code-explorer.md +78 -0
- package/resources/ecc/agents/code-reviewer.md +89 -4
- package/resources/ecc/agents/code-simplifier.md +56 -0
- package/resources/ecc/agents/comment-analyzer.md +54 -0
- package/resources/ecc/agents/conversation-analyzer.md +61 -0
- package/resources/ecc/agents/cpp-build-resolver.md +99 -0
- package/resources/ecc/agents/cpp-reviewer.md +81 -0
- package/resources/ecc/agents/csharp-reviewer.md +110 -0
- package/resources/ecc/agents/dart-build-resolver.md +210 -0
- package/resources/ecc/agents/database-reviewer.md +11 -3
- package/resources/ecc/agents/django-build-resolver.md +252 -0
- package/resources/ecc/agents/django-reviewer.md +169 -0
- package/resources/ecc/agents/doc-updater.md +11 -3
- package/resources/ecc/agents/docs-lookup.md +77 -0
- package/resources/ecc/agents/e2e-runner.md +11 -4
- package/resources/ecc/agents/fastapi-reviewer.md +79 -0
- package/resources/ecc/agents/flutter-reviewer.md +252 -0
- package/resources/ecc/agents/fsharp-reviewer.md +109 -0
- package/resources/ecc/agents/gan-evaluator.md +218 -0
- package/resources/ecc/agents/gan-generator.md +140 -0
- package/resources/ecc/agents/gan-planner.md +108 -0
- package/resources/ecc/agents/go-build-resolver.md +11 -4
- package/resources/ecc/agents/go-reviewer.md +11 -3
- package/resources/ecc/agents/harmonyos-app-resolver.md +182 -0
- package/resources/ecc/agents/harness-optimizer.md +12 -2
- package/resources/ecc/agents/healthcare-reviewer.md +92 -0
- package/resources/ecc/agents/homelab-architect.md +107 -0
- package/resources/ecc/agents/java-build-resolver.md +275 -0
- package/resources/ecc/agents/java-reviewer.md +190 -0
- package/resources/ecc/agents/kotlin-build-resolver.md +127 -0
- package/resources/ecc/agents/kotlin-reviewer.md +168 -0
- package/resources/ecc/agents/loop-operator.md +12 -3
- package/resources/ecc/agents/mle-reviewer.md +162 -0
- package/resources/ecc/agents/network-architect.md +106 -0
- package/resources/ecc/agents/network-config-reviewer.md +106 -0
- package/resources/ecc/agents/network-troubleshooter.md +128 -0
- package/resources/ecc/agents/opensource-forker.md +207 -0
- package/resources/ecc/agents/opensource-packager.md +258 -0
- package/resources/ecc/agents/opensource-sanitizer.md +197 -0
- package/resources/ecc/agents/performance-optimizer.md +455 -0
- package/resources/ecc/agents/planner.md +11 -2
- package/resources/ecc/agents/pr-test-analyzer.md +54 -0
- package/resources/ecc/agents/python-reviewer.md +11 -3
- package/resources/ecc/agents/pytorch-build-resolver.md +129 -0
- package/resources/ecc/agents/refactor-cleaner.md +11 -4
- package/resources/ecc/agents/rust-build-resolver.md +157 -0
- package/resources/ecc/agents/rust-reviewer.md +103 -0
- package/resources/ecc/agents/security-reviewer.md +11 -3
- package/resources/ecc/agents/seo-specialist.md +71 -0
- package/resources/ecc/agents/silent-failure-hunter.md +59 -0
- package/resources/ecc/agents/swift-build-resolver.md +170 -0
- package/resources/ecc/agents/swift-reviewer.md +116 -0
- package/resources/ecc/agents/tdd-guide.md +11 -4
- package/resources/ecc/agents/type-design-analyzer.md +50 -0
- package/resources/ecc/agents/typescript-reviewer.md +121 -0
- package/resources/ecc/commands/aside.md +164 -0
- package/resources/ecc/commands/auto-update.md +28 -0
- package/resources/ecc/commands/build-fix.md +66 -0
- package/resources/ecc/commands/checkpoint.md +78 -0
- package/resources/ecc/commands/code-review.md +289 -0
- package/resources/ecc/commands/cost-report.md +107 -0
- package/resources/ecc/commands/cpp-build.md +173 -0
- package/resources/ecc/commands/cpp-review.md +132 -0
- package/resources/ecc/commands/cpp-test.md +251 -0
- package/resources/ecc/commands/ecc-guide.md +93 -0
- package/resources/ecc/commands/evolve.md +178 -0
- package/resources/ecc/commands/fastapi-review.md +39 -0
- package/resources/ecc/commands/feature-dev.md +49 -0
- package/resources/ecc/commands/flutter-build.md +164 -0
- package/resources/ecc/commands/flutter-review.md +116 -0
- package/resources/ecc/commands/flutter-test.md +144 -0
- package/resources/ecc/commands/gan-build.md +103 -0
- package/resources/ecc/commands/gan-design.md +39 -0
- package/resources/ecc/commands/go-build.md +183 -0
- package/resources/ecc/commands/go-review.md +148 -0
- package/resources/ecc/commands/go-test.md +268 -0
- package/resources/ecc/commands/gradle-build.md +70 -0
- package/resources/ecc/commands/harness-audit.md +77 -0
- package/resources/ecc/commands/hookify-configure.md +14 -0
- package/resources/ecc/commands/hookify-help.md +46 -0
- package/resources/ecc/commands/hookify-list.md +21 -0
- package/resources/ecc/commands/hookify.md +50 -0
- package/resources/ecc/commands/instinct-export.md +66 -0
- package/resources/ecc/commands/instinct-import.md +114 -0
- package/resources/ecc/commands/instinct-status.md +59 -0
- package/resources/ecc/commands/jira.md +106 -0
- package/resources/ecc/commands/kotlin-build.md +174 -0
- package/resources/ecc/commands/kotlin-review.md +140 -0
- package/resources/ecc/commands/kotlin-test.md +312 -0
- package/resources/ecc/commands/learn-eval.md +116 -0
- package/resources/ecc/commands/learn.md +74 -0
- package/resources/ecc/commands/loop-start.md +36 -0
- package/resources/ecc/commands/loop-status.md +77 -0
- package/resources/ecc/commands/model-route.md +30 -0
- package/resources/ecc/commands/multi-backend.md +162 -0
- package/resources/ecc/commands/multi-execute.md +319 -0
- package/resources/ecc/commands/multi-frontend.md +162 -0
- package/resources/ecc/commands/multi-plan.md +272 -0
- package/resources/ecc/commands/multi-workflow.md +195 -0
- package/resources/ecc/commands/plan-prd.md +160 -0
- package/resources/ecc/commands/plan.md +200 -0
- package/resources/ecc/commands/pm2.md +276 -0
- package/resources/ecc/commands/pr.md +184 -0
- package/resources/ecc/commands/project-init.md +86 -0
- package/resources/ecc/commands/projects.md +39 -0
- package/resources/ecc/commands/promote.md +41 -0
- package/resources/ecc/commands/prp-commit.md +112 -0
- package/resources/ecc/commands/prp-implement.md +385 -0
- package/resources/ecc/commands/prp-plan.md +502 -0
- package/resources/ecc/commands/prp-pr.md +184 -0
- package/resources/ecc/commands/prp-prd.md +447 -0
- package/resources/ecc/commands/prune.md +31 -0
- package/resources/ecc/commands/python-review.md +297 -0
- package/resources/ecc/commands/quality-gate.md +33 -0
- package/resources/ecc/commands/refactor-clean.md +84 -0
- package/resources/ecc/commands/resume-session.md +156 -0
- package/resources/ecc/commands/review-pr.md +37 -0
- package/resources/ecc/commands/rust-build.md +187 -0
- package/resources/ecc/commands/rust-review.md +142 -0
- package/resources/ecc/commands/rust-test.md +308 -0
- package/resources/ecc/commands/santa-loop.md +175 -0
- package/resources/ecc/commands/save-session.md +275 -0
- package/resources/ecc/commands/security-scan.md +92 -0
- package/resources/ecc/commands/sessions.md +339 -0
- package/resources/ecc/commands/setup-pm.md +80 -0
- package/resources/ecc/commands/skill-create.md +174 -0
- package/resources/ecc/commands/skill-health.md +54 -0
- package/resources/ecc/commands/test-coverage.md +73 -0
- package/resources/ecc/commands/update-codemaps.md +76 -0
- package/resources/ecc/commands/update-docs.md +88 -0
- package/resources/ecc/rules/README.md +120 -0
- package/resources/ecc/rules/angular/coding-style.md +182 -0
- package/resources/ecc/rules/angular/hooks.md +25 -0
- package/resources/ecc/rules/angular/patterns.md +249 -0
- package/resources/ecc/rules/angular/security.md +87 -0
- package/resources/ecc/rules/angular/testing.md +164 -0
- package/resources/ecc/rules/arkts/coding-style.md +153 -0
- package/resources/ecc/rules/arkts/hooks.md +135 -0
- package/resources/ecc/rules/arkts/patterns.md +236 -0
- package/resources/ecc/rules/arkts/security.md +141 -0
- package/resources/ecc/rules/arkts/testing.md +126 -0
- package/resources/ecc/rules/{common-agents.md → common/agents.md} +2 -4
- package/resources/ecc/rules/common/code-review.md +124 -0
- package/resources/ecc/rules/{common-coding-style.md → common/coding-style.md} +42 -4
- package/resources/ecc/rules/common/development-workflow.md +44 -0
- package/resources/ecc/rules/{common-git-workflow.md → common/git-workflow.md} +1 -5
- package/resources/ecc/rules/{common-hooks.md → common/hooks.md} +0 -4
- package/resources/ecc/rules/{common-patterns.md → common/patterns.md} +0 -4
- package/resources/ecc/rules/{common-performance.md → common/performance.md} +0 -4
- package/resources/ecc/rules/{common-security.md → common/security.md} +0 -4
- package/resources/ecc/rules/{common-testing.md → common/testing.md} +28 -4
- package/resources/ecc/rules/cpp/coding-style.md +44 -0
- package/resources/ecc/rules/cpp/hooks.md +39 -0
- package/resources/ecc/rules/cpp/patterns.md +51 -0
- package/resources/ecc/rules/cpp/security.md +51 -0
- package/resources/ecc/rules/cpp/testing.md +44 -0
- package/resources/ecc/rules/csharp/coding-style.md +72 -0
- package/resources/ecc/rules/csharp/hooks.md +25 -0
- package/resources/ecc/rules/csharp/patterns.md +50 -0
- package/resources/ecc/rules/csharp/security.md +58 -0
- package/resources/ecc/rules/csharp/testing.md +46 -0
- package/resources/ecc/rules/dart/coding-style.md +159 -0
- package/resources/ecc/rules/dart/hooks.md +66 -0
- package/resources/ecc/rules/dart/patterns.md +261 -0
- package/resources/ecc/rules/dart/security.md +135 -0
- package/resources/ecc/rules/dart/testing.md +215 -0
- package/resources/ecc/rules/fsharp/coding-style.md +112 -0
- package/resources/ecc/rules/fsharp/hooks.md +26 -0
- package/resources/ecc/rules/fsharp/patterns.md +111 -0
- package/resources/ecc/rules/fsharp/security.md +76 -0
- package/resources/ecc/rules/fsharp/testing.md +62 -0
- package/resources/ecc/rules/{golang-coding-style.md → golang/coding-style.md} +6 -5
- package/resources/ecc/rules/{golang-hooks.md → golang/hooks.md} +5 -4
- package/resources/ecc/rules/{golang-patterns.md → golang/patterns.md} +5 -4
- package/resources/ecc/rules/{golang-security.md → golang/security.md} +5 -4
- package/resources/ecc/rules/{golang-testing.md → golang/testing.md} +5 -4
- package/resources/ecc/rules/java/coding-style.md +114 -0
- package/resources/ecc/rules/java/hooks.md +18 -0
- package/resources/ecc/rules/java/patterns.md +147 -0
- package/resources/ecc/rules/java/security.md +101 -0
- package/resources/ecc/rules/java/testing.md +133 -0
- package/resources/ecc/rules/kotlin/coding-style.md +86 -0
- package/resources/ecc/rules/{kotlin-hooks.md → kotlin/hooks.md} +5 -4
- package/resources/ecc/rules/kotlin/patterns.md +146 -0
- package/resources/ecc/rules/kotlin/security.md +82 -0
- package/resources/ecc/rules/kotlin/testing.md +128 -0
- package/resources/ecc/rules/perl/coding-style.md +46 -0
- package/resources/ecc/rules/perl/hooks.md +22 -0
- package/resources/ecc/rules/perl/patterns.md +76 -0
- package/resources/ecc/rules/perl/security.md +69 -0
- package/resources/ecc/rules/perl/testing.md +54 -0
- package/resources/ecc/rules/php/coding-style.md +40 -0
- package/resources/ecc/rules/{php-hooks.md → php/hooks.md} +7 -4
- package/resources/ecc/rules/php/patterns.md +33 -0
- package/resources/ecc/rules/php/security.md +37 -0
- package/resources/ecc/rules/php/testing.md +39 -0
- package/resources/ecc/rules/{python-coding-style.md → python/coding-style.md} +4 -4
- package/resources/ecc/rules/python/fastapi.md +58 -0
- package/resources/ecc/rules/{python-hooks.md → python/hooks.md} +4 -4
- package/resources/ecc/rules/{python-patterns.md → python/patterns.md} +4 -4
- package/resources/ecc/rules/{python-security.md → python/security.md} +4 -4
- package/resources/ecc/rules/{python-testing.md → python/testing.md} +4 -4
- package/resources/ecc/rules/ruby/coding-style.md +46 -0
- package/resources/ecc/rules/ruby/hooks.md +37 -0
- package/resources/ecc/rules/ruby/patterns.md +44 -0
- package/resources/ecc/rules/ruby/security.md +51 -0
- package/resources/ecc/rules/ruby/testing.md +51 -0
- package/resources/ecc/rules/rust/coding-style.md +151 -0
- package/resources/ecc/rules/rust/hooks.md +16 -0
- package/resources/ecc/rules/rust/patterns.md +168 -0
- package/resources/ecc/rules/rust/security.md +141 -0
- package/resources/ecc/rules/rust/testing.md +154 -0
- package/resources/ecc/rules/{swift-coding-style.md → swift/coding-style.md} +6 -6
- package/resources/ecc/rules/swift/hooks.md +20 -0
- package/resources/ecc/rules/{swift-patterns.md → swift/patterns.md} +5 -5
- package/resources/ecc/rules/{swift-security.md → swift/security.md} +7 -7
- package/resources/ecc/rules/{swift-testing.md → swift/testing.md} +5 -5
- package/resources/ecc/rules/typescript/coding-style.md +199 -0
- package/resources/ecc/rules/{typescript-hooks.md → typescript/hooks.md} +6 -4
- package/resources/ecc/rules/{typescript-patterns.md → typescript/patterns.md} +6 -4
- package/resources/ecc/rules/{typescript-security.md → typescript/security.md} +6 -4
- package/resources/ecc/rules/typescript/testing.md +18 -0
- package/resources/ecc/rules/web/coding-style.md +96 -0
- package/resources/ecc/rules/web/design-quality.md +63 -0
- package/resources/ecc/rules/web/hooks.md +129 -0
- package/resources/ecc/rules/web/patterns.md +79 -0
- package/resources/ecc/rules/web/performance.md +64 -0
- package/resources/ecc/rules/web/security.md +57 -0
- package/resources/ecc/rules/web/testing.md +55 -0
- package/resources/ecc/rules/zh/README.md +108 -0
- package/resources/ecc/rules/zh/agents.md +50 -0
- package/resources/ecc/rules/zh/code-review.md +124 -0
- package/resources/ecc/rules/zh/coding-style.md +48 -0
- package/resources/ecc/rules/zh/development-workflow.md +44 -0
- package/resources/ecc/rules/zh/git-workflow.md +24 -0
- package/resources/ecc/rules/zh/hooks.md +30 -0
- package/resources/ecc/rules/zh/patterns.md +31 -0
- package/resources/ecc/rules/zh/performance.md +55 -0
- package/resources/ecc/rules/zh/security.md +29 -0
- package/resources/ecc/rules/zh/testing.md +29 -0
- package/resources/ecc/skills/accessibility/SKILL.md +146 -0
- package/resources/ecc/skills/agent-architecture-audit/SKILL.md +256 -0
- package/resources/ecc/skills/agent-eval/SKILL.md +145 -0
- package/resources/ecc/skills/agent-harness-construction/SKILL.md +73 -0
- package/resources/ecc/skills/agent-introspection-debugging/SKILL.md +1 -0
- package/resources/ecc/skills/agent-payment-x402/SKILL.md +224 -0
- package/resources/ecc/skills/agent-sort/SKILL.md +1 -0
- package/resources/ecc/skills/agentic-engineering/SKILL.md +63 -0
- package/resources/ecc/skills/agentic-os/SKILL.md +387 -0
- package/resources/ecc/skills/ai-first-engineering/SKILL.md +51 -0
- package/resources/ecc/skills/ai-regression-testing/SKILL.md +385 -0
- package/resources/ecc/skills/android-clean-architecture/SKILL.md +339 -0
- package/resources/ecc/skills/angular-developer/SKILL.md +154 -0
- package/resources/ecc/skills/angular-developer/references/angular-animations.md +160 -0
- package/resources/ecc/skills/angular-developer/references/angular-aria.md +410 -0
- package/resources/ecc/skills/angular-developer/references/cli.md +86 -0
- package/resources/ecc/skills/angular-developer/references/component-harnesses.md +59 -0
- package/resources/ecc/skills/angular-developer/references/component-styling.md +91 -0
- package/resources/ecc/skills/angular-developer/references/components.md +117 -0
- package/resources/ecc/skills/angular-developer/references/creating-services.md +97 -0
- package/resources/ecc/skills/angular-developer/references/data-resolvers.md +69 -0
- package/resources/ecc/skills/angular-developer/references/define-routes.md +67 -0
- package/resources/ecc/skills/angular-developer/references/defining-providers.md +72 -0
- package/resources/ecc/skills/angular-developer/references/di-fundamentals.md +120 -0
- package/resources/ecc/skills/angular-developer/references/e2e-testing.md +56 -0
- package/resources/ecc/skills/angular-developer/references/effects.md +83 -0
- package/resources/ecc/skills/angular-developer/references/hierarchical-injectors.md +43 -0
- package/resources/ecc/skills/angular-developer/references/host-elements.md +80 -0
- package/resources/ecc/skills/angular-developer/references/injection-context.md +63 -0
- package/resources/ecc/skills/angular-developer/references/inputs.md +101 -0
- package/resources/ecc/skills/angular-developer/references/linked-signal.md +59 -0
- package/resources/ecc/skills/angular-developer/references/loading-strategies.md +61 -0
- package/resources/ecc/skills/angular-developer/references/mcp.md +108 -0
- package/resources/ecc/skills/angular-developer/references/navigate-to-routes.md +69 -0
- package/resources/ecc/skills/angular-developer/references/outputs.md +86 -0
- package/resources/ecc/skills/angular-developer/references/reactive-forms.md +122 -0
- package/resources/ecc/skills/angular-developer/references/rendering-strategies.md +44 -0
- package/resources/ecc/skills/angular-developer/references/resource.md +77 -0
- package/resources/ecc/skills/angular-developer/references/route-animations.md +56 -0
- package/resources/ecc/skills/angular-developer/references/route-guards.md +52 -0
- package/resources/ecc/skills/angular-developer/references/router-lifecycle.md +45 -0
- package/resources/ecc/skills/angular-developer/references/router-testing.md +87 -0
- package/resources/ecc/skills/angular-developer/references/show-routes-with-outlets.md +68 -0
- package/resources/ecc/skills/angular-developer/references/signal-forms.md +795 -0
- package/resources/ecc/skills/angular-developer/references/signals-overview.md +94 -0
- package/resources/ecc/skills/angular-developer/references/tailwind-css.md +69 -0
- package/resources/ecc/skills/angular-developer/references/template-driven-forms.md +114 -0
- package/resources/ecc/skills/angular-developer/references/testing-fundamentals.md +65 -0
- package/resources/ecc/skills/api-connector-builder/SKILL.md +120 -0
- package/resources/ecc/skills/api-design/SKILL.md +1 -0
- package/resources/ecc/skills/architecture-decision-records/SKILL.md +179 -0
- package/resources/ecc/skills/article-writing/SKILL.md +1 -0
- package/resources/ecc/skills/automation-audit-ops/SKILL.md +142 -0
- package/resources/ecc/skills/autonomous-agent-harness/SKILL.md +273 -0
- package/resources/ecc/skills/autonomous-loops/SKILL.md +610 -0
- package/resources/ecc/skills/backend-patterns/SKILL.md +8 -44
- package/resources/ecc/skills/benchmark/SKILL.md +93 -0
- package/resources/ecc/skills/blueprint/SKILL.md +105 -0
- package/resources/ecc/skills/brand-voice/SKILL.md +1 -0
- package/resources/ecc/skills/browser-qa/SKILL.md +87 -0
- package/resources/ecc/skills/bun-runtime/SKILL.md +1 -0
- package/resources/ecc/skills/canary-watch/SKILL.md +99 -0
- package/resources/ecc/skills/carrier-relationship-management/SKILL.md +212 -0
- package/resources/ecc/skills/cisco-ios-patterns/SKILL.md +163 -0
- package/resources/ecc/skills/ck/SKILL.md +147 -0
- package/resources/ecc/skills/ck/commands/forget.mjs +44 -0
- package/resources/ecc/skills/ck/commands/info.mjs +24 -0
- package/resources/ecc/skills/ck/commands/init.mjs +143 -0
- package/resources/ecc/skills/ck/commands/list.mjs +40 -0
- package/resources/ecc/skills/ck/commands/migrate.mjs +202 -0
- package/resources/ecc/skills/ck/commands/resume.mjs +36 -0
- package/resources/ecc/skills/ck/commands/save.mjs +210 -0
- package/resources/ecc/skills/ck/commands/shared.mjs +387 -0
- package/resources/ecc/skills/ck/hooks/session-start.mjs +224 -0
- package/resources/ecc/skills/claude-devfleet/SKILL.md +103 -0
- package/resources/ecc/skills/click-path-audit/SKILL.md +244 -0
- package/resources/ecc/skills/clickhouse-io/SKILL.md +439 -0
- package/resources/ecc/skills/code-tour/SKILL.md +236 -0
- package/resources/ecc/skills/codebase-onboarding/SKILL.md +233 -0
- package/resources/ecc/skills/coding-standards/SKILL.md +1 -0
- package/resources/ecc/skills/compose-multiplatform-patterns/SKILL.md +299 -0
- package/resources/ecc/skills/configure-ecc/SKILL.md +384 -0
- package/resources/ecc/skills/connections-optimizer/SKILL.md +189 -0
- package/resources/ecc/skills/content-engine/SKILL.md +1 -0
- package/resources/ecc/skills/content-hash-cache-pattern/SKILL.md +161 -0
- package/resources/ecc/skills/context-budget/SKILL.md +135 -0
- package/resources/ecc/skills/continuous-agent-loop/SKILL.md +45 -0
- package/resources/ecc/skills/continuous-learning/SKILL.md +131 -0
- package/resources/ecc/skills/continuous-learning/config.json +18 -0
- package/resources/ecc/skills/continuous-learning/evaluate-session.sh +69 -0
- package/resources/ecc/skills/continuous-learning-v2/SKILL.md +360 -0
- package/resources/ecc/skills/continuous-learning-v2/agents/observer-loop.sh +322 -0
- package/resources/ecc/skills/continuous-learning-v2/agents/observer.md +198 -0
- package/resources/ecc/skills/continuous-learning-v2/agents/session-guardian.sh +150 -0
- package/resources/ecc/skills/continuous-learning-v2/agents/start-observer.sh +248 -0
- package/resources/ecc/skills/continuous-learning-v2/config.json +8 -0
- package/resources/ecc/skills/continuous-learning-v2/hooks/observe.sh +476 -0
- package/resources/ecc/skills/continuous-learning-v2/scripts/detect-project.sh +288 -0
- package/resources/ecc/skills/continuous-learning-v2/scripts/instinct-cli.py +1519 -0
- package/resources/ecc/skills/continuous-learning-v2/scripts/lib/homunculus-dir.sh +31 -0
- package/resources/ecc/skills/continuous-learning-v2/scripts/migrate-homunculus.sh +62 -0
- package/resources/ecc/skills/continuous-learning-v2/scripts/test_parse_instinct.py +1018 -0
- package/resources/ecc/skills/cost-aware-llm-pipeline/SKILL.md +183 -0
- package/resources/ecc/skills/cost-tracking/SKILL.md +147 -0
- package/resources/ecc/skills/council/SKILL.md +203 -0
- package/resources/ecc/skills/cpp-coding-standards/SKILL.md +723 -0
- package/resources/ecc/skills/cpp-testing/SKILL.md +324 -0
- package/resources/ecc/skills/crosspost/SKILL.md +1 -0
- package/resources/ecc/skills/csharp-testing/SKILL.md +321 -0
- package/resources/ecc/skills/customer-billing-ops/SKILL.md +140 -0
- package/resources/ecc/skills/customs-trade-compliance/SKILL.md +263 -0
- package/resources/ecc/skills/dart-flutter-patterns/SKILL.md +563 -0
- package/resources/ecc/skills/dashboard-builder/SKILL.md +108 -0
- package/resources/ecc/skills/data-scraper-agent/SKILL.md +764 -0
- package/resources/ecc/skills/database-migrations/SKILL.md +429 -0
- package/resources/ecc/skills/deep-research/SKILL.md +5 -0
- package/resources/ecc/skills/defi-amm-security/SKILL.md +166 -0
- package/resources/ecc/skills/deployment-patterns/SKILL.md +427 -0
- package/resources/ecc/skills/design-system/SKILL.md +82 -0
- package/resources/ecc/skills/django-celery/SKILL.md +457 -0
- package/resources/ecc/skills/django-patterns/SKILL.md +734 -0
- package/resources/ecc/skills/django-security/SKILL.md +593 -0
- package/resources/ecc/skills/django-tdd/SKILL.md +729 -0
- package/resources/ecc/skills/django-verification/SKILL.md +469 -0
- package/resources/ecc/skills/dmux-workflows/SKILL.md +52 -4
- package/resources/ecc/skills/docker-patterns/SKILL.md +364 -0
- package/resources/ecc/skills/documentation-lookup/SKILL.md +1 -0
- package/resources/ecc/skills/dotnet-patterns/SKILL.md +321 -0
- package/resources/ecc/skills/e2e-testing/SKILL.md +1 -0
- package/resources/ecc/skills/ecc-guide/SKILL.md +189 -0
- package/resources/ecc/skills/ecc-tools-cost-audit/SKILL.md +160 -0
- package/resources/ecc/skills/email-ops/SKILL.md +121 -0
- package/resources/ecc/skills/energy-procurement/SKILL.md +228 -0
- package/resources/ecc/skills/enterprise-agent-ops/SKILL.md +50 -0
- package/resources/ecc/skills/error-handling/SKILL.md +376 -0
- package/resources/ecc/skills/eval-harness/SKILL.md +36 -1
- package/resources/ecc/skills/evm-token-decimals/SKILL.md +130 -0
- package/resources/ecc/skills/exa-search/SKILL.md +18 -80
- package/resources/ecc/skills/fal-ai-media/SKILL.md +32 -20
- package/resources/ecc/skills/fastapi-patterns/SKILL.md +327 -0
- package/resources/ecc/skills/finance-billing-ops/SKILL.md +127 -0
- package/resources/ecc/skills/flox-environments/SKILL.md +496 -0
- package/resources/ecc/skills/flutter-dart-code-review/SKILL.md +435 -0
- package/resources/ecc/skills/foundation-models-on-device/SKILL.md +243 -0
- package/resources/ecc/skills/frontend-design-direction/SKILL.md +92 -0
- package/resources/ecc/skills/frontend-patterns/SKILL.md +1 -6
- package/resources/ecc/skills/frontend-slides/SKILL.md +2 -1
- package/resources/ecc/skills/frontend-slides/animation-patterns.md +122 -0
- package/resources/ecc/skills/frontend-slides/html-template.md +419 -0
- package/resources/ecc/skills/frontend-slides/scripts/export-pdf.sh +418 -0
- package/resources/ecc/skills/frontend-slides/scripts/extract-pptx.py +96 -0
- package/resources/ecc/skills/frontend-slides/viewport-base.css +153 -0
- package/resources/ecc/skills/fsharp-testing/SKILL.md +280 -0
- package/resources/ecc/skills/gan-style-harness/SKILL.md +278 -0
- package/resources/ecc/skills/gateguard/SKILL.md +125 -0
- package/resources/ecc/skills/git-workflow/SKILL.md +715 -0
- package/resources/ecc/skills/github-ops/SKILL.md +144 -0
- package/resources/ecc/skills/golang-patterns/SKILL.md +674 -0
- package/resources/ecc/skills/golang-testing/SKILL.md +720 -0
- package/resources/ecc/skills/google-workspace-ops/SKILL.md +95 -0
- package/resources/ecc/skills/healthcare-cdss-patterns/SKILL.md +245 -0
- package/resources/ecc/skills/healthcare-emr-patterns/SKILL.md +159 -0
- package/resources/ecc/skills/healthcare-eval-harness/SKILL.md +207 -0
- package/resources/ecc/skills/healthcare-phi-compliance/SKILL.md +145 -0
- package/resources/ecc/skills/hermes-imports/SKILL.md +88 -0
- package/resources/ecc/skills/hexagonal-architecture/SKILL.md +276 -0
- package/resources/ecc/skills/hipaa-compliance/SKILL.md +78 -0
- package/resources/ecc/skills/homelab-network-readiness/SKILL.md +169 -0
- package/resources/ecc/skills/homelab-network-setup/SKILL.md +129 -0
- package/resources/ecc/skills/homelab-pihole-dns/SKILL.md +274 -0
- package/resources/ecc/skills/homelab-vlan-segmentation/SKILL.md +311 -0
- package/resources/ecc/skills/homelab-wireguard-vpn/SKILL.md +305 -0
- package/resources/ecc/skills/hookify-rules/SKILL.md +128 -0
- package/resources/ecc/skills/inventory-demand-planning/SKILL.md +247 -0
- package/resources/ecc/skills/investor-materials/SKILL.md +1 -0
- package/resources/ecc/skills/investor-outreach/SKILL.md +1 -0
- package/resources/ecc/skills/ios-icon-gen/SKILL.md +157 -0
- package/resources/ecc/skills/ios-icon-gen/scripts/generate_icons.swift +258 -0
- package/resources/ecc/skills/ios-icon-gen/scripts/iconify_gen.sh +235 -0
- package/resources/ecc/skills/iterative-retrieval/SKILL.md +211 -0
- package/resources/ecc/skills/java-coding-standards/SKILL.md +383 -0
- package/resources/ecc/skills/jira-integration/SKILL.md +293 -0
- package/resources/ecc/skills/jpa-patterns/SKILL.md +151 -0
- package/resources/ecc/skills/knowledge-ops/SKILL.md +154 -0
- package/resources/ecc/skills/kotlin-coroutines-flows/SKILL.md +284 -0
- package/resources/ecc/skills/kotlin-exposed-patterns/SKILL.md +719 -0
- package/resources/ecc/skills/kotlin-ktor-patterns/SKILL.md +689 -0
- package/resources/ecc/skills/kotlin-patterns/SKILL.md +711 -0
- package/resources/ecc/skills/kotlin-testing/SKILL.md +824 -0
- package/resources/ecc/skills/laravel-patterns/SKILL.md +415 -0
- package/resources/ecc/skills/laravel-plugin-discovery/SKILL.md +229 -0
- package/resources/ecc/skills/laravel-security/SKILL.md +285 -0
- package/resources/ecc/skills/laravel-tdd/SKILL.md +283 -0
- package/resources/ecc/skills/laravel-verification/SKILL.md +179 -0
- package/resources/ecc/skills/lead-intelligence/SKILL.md +321 -0
- package/resources/ecc/skills/lead-intelligence/agents/enrichment-agent.md +85 -0
- package/resources/ecc/skills/lead-intelligence/agents/mutual-mapper.md +75 -0
- package/resources/ecc/skills/lead-intelligence/agents/outreach-drafter.md +98 -0
- package/resources/ecc/skills/lead-intelligence/agents/signal-scorer.md +60 -0
- package/resources/ecc/skills/liquid-glass-design/SKILL.md +279 -0
- package/resources/ecc/skills/llm-trading-agent-security/SKILL.md +146 -0
- package/resources/ecc/skills/logistics-exception-management/SKILL.md +222 -0
- package/resources/ecc/skills/make-interfaces-feel-better/SKILL.md +151 -0
- package/resources/ecc/skills/manim-video/SKILL.md +89 -0
- package/resources/ecc/skills/manim-video/assets/network_graph_scene.py +52 -0
- package/resources/ecc/skills/market-research/SKILL.md +1 -0
- package/resources/ecc/skills/mcp-server-patterns/SKILL.md +3 -0
- package/resources/ecc/skills/messages-ops/SKILL.md +104 -0
- package/resources/ecc/skills/mle-workflow/SKILL.md +1 -1
- package/resources/ecc/skills/motion-advanced/SKILL.md +596 -0
- package/resources/ecc/skills/motion-foundations/SKILL.md +299 -0
- package/resources/ecc/skills/motion-patterns/SKILL.md +435 -0
- package/resources/ecc/skills/motion-ui/SKILL.md +575 -0
- package/resources/ecc/skills/mysql-patterns/SKILL.md +412 -0
- package/resources/ecc/skills/nanoclaw-repl/SKILL.md +33 -0
- package/resources/ecc/skills/nestjs-patterns/SKILL.md +230 -0
- package/resources/ecc/skills/netmiko-ssh-automation/SKILL.md +173 -0
- package/resources/ecc/skills/network-bgp-diagnostics/SKILL.md +167 -0
- package/resources/ecc/skills/network-config-validation/SKILL.md +210 -0
- package/resources/ecc/skills/network-interface-health/SKILL.md +152 -0
- package/resources/ecc/skills/nextjs-turbopack/SKILL.md +1 -0
- package/resources/ecc/skills/nodejs-keccak256/SKILL.md +102 -0
- package/resources/ecc/skills/nutrient-document-processing/SKILL.md +167 -0
- package/resources/ecc/skills/nuxt4-patterns/SKILL.md +100 -0
- package/resources/ecc/skills/openclaw-persona-forge/SKILL.md +288 -0
- package/resources/ecc/skills/openclaw-persona-forge/gacha.py +224 -0
- package/resources/ecc/skills/openclaw-persona-forge/gacha.sh +5 -0
- package/resources/ecc/skills/openclaw-persona-forge/references/avatar-style.md +124 -0
- package/resources/ecc/skills/openclaw-persona-forge/references/boundary-rules.md +53 -0
- package/resources/ecc/skills/openclaw-persona-forge/references/error-handling.md +53 -0
- package/resources/ecc/skills/openclaw-persona-forge/references/identity-tension.md +48 -0
- package/resources/ecc/skills/openclaw-persona-forge/references/naming-system.md +39 -0
- package/resources/ecc/skills/openclaw-persona-forge/references/output-template.md +166 -0
- package/resources/ecc/skills/opensource-pipeline/SKILL.md +255 -0
- package/resources/ecc/skills/perl-patterns/SKILL.md +504 -0
- package/resources/ecc/skills/perl-security/SKILL.md +503 -0
- package/resources/ecc/skills/perl-testing/SKILL.md +475 -0
- package/resources/ecc/skills/plan-orchestrate/SKILL.md +262 -0
- package/resources/ecc/skills/plankton-code-quality/SKILL.md +236 -0
- package/resources/ecc/skills/postgres-patterns/SKILL.md +147 -0
- package/resources/ecc/skills/product-capability/SKILL.md +1 -0
- package/resources/ecc/skills/product-lens/SKILL.md +92 -0
- package/resources/ecc/skills/production-audit/SKILL.md +206 -0
- package/resources/ecc/skills/production-scheduling/SKILL.md +238 -0
- package/resources/ecc/skills/project-flow-ops/SKILL.md +111 -0
- package/resources/ecc/skills/prompt-optimizer/SKILL.md +398 -0
- package/resources/ecc/skills/python-patterns/SKILL.md +750 -0
- package/resources/ecc/skills/python-testing/SKILL.md +816 -0
- package/resources/ecc/skills/pytorch-patterns/SKILL.md +396 -0
- package/resources/ecc/skills/quality-nonconformance/SKILL.md +260 -0
- package/resources/ecc/skills/quarkus-patterns/SKILL.md +722 -0
- package/resources/ecc/skills/quarkus-security/SKILL.md +467 -0
- package/resources/ecc/skills/quarkus-tdd/SKILL.md +811 -0
- package/resources/ecc/skills/quarkus-verification/SKILL.md +479 -0
- package/resources/ecc/skills/ralphinho-rfc-pipeline/SKILL.md +67 -0
- package/resources/ecc/skills/redis-patterns/SKILL.md +403 -0
- package/resources/ecc/skills/regex-vs-llm-structured-text/SKILL.md +220 -0
- package/resources/ecc/skills/remotion-video-creation/SKILL.md +43 -0
- package/resources/ecc/skills/remotion-video-creation/rules/3d.md +86 -0
- package/resources/ecc/skills/remotion-video-creation/rules/animations.md +29 -0
- package/resources/ecc/skills/remotion-video-creation/rules/assets/charts-bar-chart.tsx +173 -0
- package/resources/ecc/skills/remotion-video-creation/rules/assets/text-animations-typewriter.tsx +100 -0
- package/resources/ecc/skills/remotion-video-creation/rules/assets/text-animations-word-highlight.tsx +108 -0
- package/resources/ecc/skills/remotion-video-creation/rules/assets.md +78 -0
- package/resources/ecc/skills/remotion-video-creation/rules/audio.md +172 -0
- package/resources/ecc/skills/remotion-video-creation/rules/calculate-metadata.md +104 -0
- package/resources/ecc/skills/remotion-video-creation/rules/can-decode.md +75 -0
- package/resources/ecc/skills/remotion-video-creation/rules/charts.md +58 -0
- package/resources/ecc/skills/remotion-video-creation/rules/compositions.md +146 -0
- package/resources/ecc/skills/remotion-video-creation/rules/display-captions.md +126 -0
- package/resources/ecc/skills/remotion-video-creation/rules/extract-frames.md +229 -0
- package/resources/ecc/skills/remotion-video-creation/rules/fonts.md +152 -0
- package/resources/ecc/skills/remotion-video-creation/rules/get-audio-duration.md +58 -0
- package/resources/ecc/skills/remotion-video-creation/rules/get-video-dimensions.md +68 -0
- package/resources/ecc/skills/remotion-video-creation/rules/get-video-duration.md +58 -0
- package/resources/ecc/skills/remotion-video-creation/rules/gifs.md +138 -0
- package/resources/ecc/skills/remotion-video-creation/rules/images.md +130 -0
- package/resources/ecc/skills/remotion-video-creation/rules/import-srt-captions.md +67 -0
- package/resources/ecc/skills/remotion-video-creation/rules/lottie.md +67 -0
- package/resources/ecc/skills/remotion-video-creation/rules/measuring-dom-nodes.md +34 -0
- package/resources/ecc/skills/remotion-video-creation/rules/measuring-text.md +143 -0
- package/resources/ecc/skills/remotion-video-creation/rules/sequencing.md +106 -0
- package/resources/ecc/skills/remotion-video-creation/rules/tailwind.md +11 -0
- package/resources/ecc/skills/remotion-video-creation/rules/text-animations.md +20 -0
- package/resources/ecc/skills/remotion-video-creation/rules/timing.md +179 -0
- package/resources/ecc/skills/remotion-video-creation/rules/transcribe-captions.md +19 -0
- package/resources/ecc/skills/remotion-video-creation/rules/transitions.md +122 -0
- package/resources/ecc/skills/remotion-video-creation/rules/trimming.md +52 -0
- package/resources/ecc/skills/remotion-video-creation/rules/videos.md +171 -0
- package/resources/ecc/skills/repo-scan/SKILL.md +78 -0
- package/resources/ecc/skills/research-ops/SKILL.md +112 -0
- package/resources/ecc/skills/returns-reverse-logistics/SKILL.md +240 -0
- package/resources/ecc/skills/rules-distill/SKILL.md +264 -0
- package/resources/ecc/skills/rules-distill/scripts/scan-rules.sh +58 -0
- package/resources/ecc/skills/rules-distill/scripts/scan-skills.sh +129 -0
- package/resources/ecc/skills/rust-patterns/SKILL.md +499 -0
- package/resources/ecc/skills/rust-testing/SKILL.md +500 -0
- package/resources/ecc/skills/safety-guard/SKILL.md +75 -0
- package/resources/ecc/skills/santa-method/SKILL.md +306 -0
- package/resources/ecc/skills/scientific-db-pubmed-database/SKILL.md +175 -0
- package/resources/ecc/skills/scientific-db-uspto-database/SKILL.md +177 -0
- package/resources/ecc/skills/scientific-pkg-gget/SKILL.md +166 -0
- package/resources/ecc/skills/scientific-thinking-literature-review/SKILL.md +192 -0
- package/resources/ecc/skills/scientific-thinking-scholar-evaluation/SKILL.md +160 -0
- package/resources/ecc/skills/search-first/SKILL.md +182 -0
- package/resources/ecc/skills/security-bounty-hunter/SKILL.md +99 -0
- package/resources/ecc/skills/security-review/SKILL.md +11 -2
- package/resources/ecc/skills/security-review/cloud-infrastructure-security.md +361 -0
- package/resources/ecc/skills/security-scan/SKILL.md +165 -0
- package/resources/ecc/skills/seo/SKILL.md +154 -0
- package/resources/ecc/skills/skill-comply/SKILL.md +58 -0
- package/resources/ecc/skills/skill-comply/fixtures/compliant_trace.jsonl +5 -0
- package/resources/ecc/skills/skill-comply/fixtures/noncompliant_trace.jsonl +3 -0
- package/resources/ecc/skills/skill-comply/fixtures/tdd_spec.yaml +44 -0
- package/resources/ecc/skills/skill-comply/prompts/classifier.md +24 -0
- package/resources/ecc/skills/skill-comply/prompts/scenario_generator.md +62 -0
- package/resources/ecc/skills/skill-comply/prompts/spec_generator.md +42 -0
- package/resources/ecc/skills/skill-comply/pyproject.toml +15 -0
- package/resources/ecc/skills/skill-comply/scripts/__init__.py +0 -0
- package/resources/ecc/skills/skill-comply/scripts/classifier.py +85 -0
- package/resources/ecc/skills/skill-comply/scripts/grader.py +124 -0
- package/resources/ecc/skills/skill-comply/scripts/parser.py +107 -0
- package/resources/ecc/skills/skill-comply/scripts/report.py +170 -0
- package/resources/ecc/skills/skill-comply/scripts/run.py +127 -0
- package/resources/ecc/skills/skill-comply/scripts/runner.py +186 -0
- package/resources/ecc/skills/skill-comply/scripts/scenario_generator.py +70 -0
- package/resources/ecc/skills/skill-comply/scripts/spec_generator.py +72 -0
- package/resources/ecc/skills/skill-comply/scripts/utils.py +13 -0
- package/resources/ecc/skills/skill-comply/tests/test_grader.py +197 -0
- package/resources/ecc/skills/skill-comply/tests/test_parser.py +90 -0
- package/resources/ecc/skills/skill-comply/tests/test_runner.py +172 -0
- package/resources/ecc/skills/skill-scout/SKILL.md +140 -0
- package/resources/ecc/skills/skill-stocktake/SKILL.md +194 -0
- package/resources/ecc/skills/skill-stocktake/scripts/quick-diff.sh +87 -0
- package/resources/ecc/skills/skill-stocktake/scripts/save-results.sh +56 -0
- package/resources/ecc/skills/skill-stocktake/scripts/scan.sh +170 -0
- package/resources/ecc/skills/social-graph-ranker/SKILL.md +154 -0
- package/resources/ecc/skills/springboot-patterns/SKILL.md +314 -0
- package/resources/ecc/skills/springboot-security/SKILL.md +272 -0
- package/resources/ecc/skills/springboot-tdd/SKILL.md +158 -0
- package/resources/ecc/skills/springboot-verification/SKILL.md +231 -0
- package/resources/ecc/skills/strategic-compact/SKILL.md +31 -2
- package/resources/ecc/skills/strategic-compact/suggest-compact.sh +54 -0
- package/resources/ecc/skills/swift-actor-persistence/SKILL.md +143 -0
- package/resources/ecc/skills/swift-concurrency-6-2/SKILL.md +216 -0
- package/resources/ecc/skills/swift-protocol-di-testing/SKILL.md +190 -0
- package/resources/ecc/skills/swiftui-patterns/SKILL.md +259 -0
- package/resources/ecc/skills/tdd-workflow/SKILL.md +54 -0
- package/resources/ecc/skills/team-builder/SKILL.md +168 -0
- package/resources/ecc/skills/terminal-ops/SKILL.md +109 -0
- package/resources/ecc/skills/tinystruct-patterns/SKILL.md +131 -0
- package/resources/ecc/skills/tinystruct-patterns/references/architecture.md +77 -0
- package/resources/ecc/skills/tinystruct-patterns/references/data-handling.md +35 -0
- package/resources/ecc/skills/tinystruct-patterns/references/routing.md +57 -0
- package/resources/ecc/skills/tinystruct-patterns/references/system-usage.md +74 -0
- package/resources/ecc/skills/tinystruct-patterns/references/testing.md +59 -0
- package/resources/ecc/skills/token-budget-advisor/SKILL.md +133 -0
- package/resources/ecc/skills/ui-demo/SKILL.md +465 -0
- package/resources/ecc/skills/ui-to-vue/SKILL.md +134 -0
- package/resources/ecc/skills/unified-notifications-ops/SKILL.md +187 -0
- package/resources/ecc/skills/verification-loop/SKILL.md +1 -0
- package/resources/ecc/skills/video-editing/SKILL.md +4 -1
- package/resources/ecc/skills/videodb/SKILL.md +374 -0
- package/resources/ecc/skills/videodb/reference/api-reference.md +550 -0
- package/resources/ecc/skills/videodb/reference/capture-reference.md +407 -0
- package/resources/ecc/skills/videodb/reference/capture.md +101 -0
- package/resources/ecc/skills/videodb/reference/editor.md +443 -0
- package/resources/ecc/skills/videodb/reference/generative.md +331 -0
- package/resources/ecc/skills/videodb/reference/rtstream-reference.md +564 -0
- package/resources/ecc/skills/videodb/reference/rtstream.md +65 -0
- package/resources/ecc/skills/videodb/reference/search.md +230 -0
- package/resources/ecc/skills/videodb/reference/streaming.md +406 -0
- package/resources/ecc/skills/videodb/reference/use-cases.md +118 -0
- package/resources/ecc/skills/videodb/scripts/ws_listener.py +282 -0
- package/resources/ecc/skills/visa-doc-translate/README.md +86 -0
- package/resources/ecc/skills/visa-doc-translate/SKILL.md +117 -0
- package/resources/ecc/skills/vite-patterns/SKILL.md +449 -0
- package/resources/ecc/skills/windows-desktop-e2e/SKILL.md +788 -0
- package/resources/ecc/skills/workspace-surface-audit/SKILL.md +125 -0
- package/resources/ecc/skills/x-api/SKILL.md +5 -0
- package/resources/ecc/agents/architect.json +0 -16
- package/resources/ecc/agents/build-error-resolver.json +0 -17
- package/resources/ecc/agents/chief-of-staff.json +0 -17
- package/resources/ecc/agents/code-reviewer.json +0 -16
- package/resources/ecc/agents/database-reviewer.json +0 -16
- package/resources/ecc/agents/doc-updater.json +0 -16
- package/resources/ecc/agents/e2e-runner.json +0 -17
- package/resources/ecc/agents/go-build-resolver.json +0 -17
- package/resources/ecc/agents/go-reviewer.json +0 -16
- package/resources/ecc/agents/harness-optimizer.json +0 -15
- package/resources/ecc/agents/loop-operator.json +0 -16
- package/resources/ecc/agents/planner.json +0 -15
- package/resources/ecc/agents/python-reviewer.json +0 -16
- package/resources/ecc/agents/refactor-cleaner.json +0 -17
- package/resources/ecc/agents/security-reviewer.json +0 -16
- package/resources/ecc/agents/tdd-guide.json +0 -17
- package/resources/ecc/commands/add-language-rules.md +0 -39
- package/resources/ecc/commands/database-migration.md +0 -36
- package/resources/ecc/commands/feature-development.md +0 -38
- package/resources/ecc/rules/common-development-workflow.md +0 -33
- package/resources/ecc/rules/kotlin-coding-style.md +0 -39
- package/resources/ecc/rules/kotlin-patterns.md +0 -50
- package/resources/ecc/rules/kotlin-security.md +0 -58
- package/resources/ecc/rules/kotlin-testing.md +0 -38
- package/resources/ecc/rules/php-coding-style.md +0 -25
- package/resources/ecc/rules/php-patterns.md +0 -23
- package/resources/ecc/rules/php-security.md +0 -24
- package/resources/ecc/rules/php-testing.md +0 -26
- package/resources/ecc/rules/swift-hooks.md +0 -20
- package/resources/ecc/rules/typescript-coding-style.md +0 -63
- package/resources/ecc/rules/typescript-testing.md +0 -16
- package/resources/ecc/skills/agent-introspection-debugging/agents/openai.yaml +0 -7
- package/resources/ecc/skills/agent-sort/agents/openai.yaml +0 -7
- package/resources/ecc/skills/api-design/agents/openai.yaml +0 -7
- package/resources/ecc/skills/article-writing/agents/openai.yaml +0 -7
- package/resources/ecc/skills/backend-patterns/agents/openai.yaml +0 -7
- package/resources/ecc/skills/brand-voice/agents/openai.yaml +0 -7
- package/resources/ecc/skills/bun-runtime/agents/openai.yaml +0 -7
- package/resources/ecc/skills/coding-standards/agents/openai.yaml +0 -7
- package/resources/ecc/skills/content-engine/agents/openai.yaml +0 -7
- package/resources/ecc/skills/crosspost/agents/openai.yaml +0 -7
- package/resources/ecc/skills/deep-research/agents/openai.yaml +0 -7
- package/resources/ecc/skills/dmux-workflows/agents/openai.yaml +0 -7
- package/resources/ecc/skills/documentation-lookup/agents/openai.yaml +0 -7
- package/resources/ecc/skills/e2e-testing/agents/openai.yaml +0 -7
- package/resources/ecc/skills/eval-harness/agents/openai.yaml +0 -7
- package/resources/ecc/skills/everything-claude-code/SKILL.md +0 -442
- package/resources/ecc/skills/everything-claude-code/agents/openai.yaml +0 -7
- package/resources/ecc/skills/exa-search/agents/openai.yaml +0 -7
- package/resources/ecc/skills/fal-ai-media/agents/openai.yaml +0 -7
- package/resources/ecc/skills/frontend-patterns/agents/openai.yaml +0 -7
- package/resources/ecc/skills/frontend-slides/agents/openai.yaml +0 -7
- package/resources/ecc/skills/investor-materials/agents/openai.yaml +0 -7
- package/resources/ecc/skills/investor-outreach/agents/openai.yaml +0 -7
- package/resources/ecc/skills/market-research/agents/openai.yaml +0 -7
- package/resources/ecc/skills/mcp-server-patterns/agents/openai.yaml +0 -7
- package/resources/ecc/skills/mle-workflow/agents/openai.yaml +0 -7
- package/resources/ecc/skills/nextjs-turbopack/agents/openai.yaml +0 -7
- package/resources/ecc/skills/product-capability/agents/openai.yaml +0 -7
- package/resources/ecc/skills/security-review/agents/openai.yaml +0 -7
- package/resources/ecc/skills/strategic-compact/agents/openai.yaml +0 -7
- package/resources/ecc/skills/tdd-workflow/agents/openai.yaml +0 -7
- package/resources/ecc/skills/verification-loop/agents/openai.yaml +0 -7
- package/resources/ecc/skills/video-editing/agents/openai.yaml +0 -7
- package/resources/ecc/skills/x-api/agents/openai.yaml +0 -7
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Analyze coverage, identify gaps, and generate missing tests toward the target threshold.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Test Coverage
|
|
6
|
+
|
|
7
|
+
Analyze test coverage, identify gaps, and generate missing tests to reach 80%+ coverage.
|
|
8
|
+
|
|
9
|
+
## Step 1: Detect Test Framework
|
|
10
|
+
|
|
11
|
+
| Indicator | Coverage Command |
|
|
12
|
+
|-----------|-----------------|
|
|
13
|
+
| `jest.config.*` or `package.json` jest | `npx jest --coverage --coverageReporters=json-summary` |
|
|
14
|
+
| `vitest.config.*` | `npx vitest run --coverage` |
|
|
15
|
+
| `pytest.ini` / `pyproject.toml` pytest | `pytest --cov=src --cov-report=json` |
|
|
16
|
+
| `Cargo.toml` | `cargo llvm-cov --json` |
|
|
17
|
+
| `pom.xml` with JaCoCo | `mvn test jacoco:report` |
|
|
18
|
+
| `go.mod` | `go test -coverprofile=coverage.out ./...` |
|
|
19
|
+
|
|
20
|
+
## Step 2: Analyze Coverage Report
|
|
21
|
+
|
|
22
|
+
1. Run the coverage command
|
|
23
|
+
2. Parse the output (JSON summary or terminal output)
|
|
24
|
+
3. List files **below 80% coverage**, sorted worst-first
|
|
25
|
+
4. For each under-covered file, identify:
|
|
26
|
+
- Untested functions or methods
|
|
27
|
+
- Missing branch coverage (if/else, switch, error paths)
|
|
28
|
+
- Dead code that inflates the denominator
|
|
29
|
+
|
|
30
|
+
## Step 3: Generate Missing Tests
|
|
31
|
+
|
|
32
|
+
For each under-covered file, generate tests following this priority:
|
|
33
|
+
|
|
34
|
+
1. **Happy path** — Core functionality with valid inputs
|
|
35
|
+
2. **Error handling** — Invalid inputs, missing data, network failures
|
|
36
|
+
3. **Edge cases** — Empty arrays, null/undefined, boundary values (0, -1, MAX_INT)
|
|
37
|
+
4. **Branch coverage** — Each if/else, switch case, ternary
|
|
38
|
+
|
|
39
|
+
### Test Generation Rules
|
|
40
|
+
|
|
41
|
+
- Place tests adjacent to source: `foo.ts` → `foo.test.ts` (or project convention)
|
|
42
|
+
- Use existing test patterns from the project (import style, assertion library, mocking approach)
|
|
43
|
+
- Mock external dependencies (database, APIs, file system)
|
|
44
|
+
- Each test should be independent — no shared mutable state between tests
|
|
45
|
+
- Name tests descriptively: `test_create_user_with_duplicate_email_returns_409`
|
|
46
|
+
|
|
47
|
+
## Step 4: Verify
|
|
48
|
+
|
|
49
|
+
1. Run the full test suite — all tests must pass
|
|
50
|
+
2. Re-run coverage — verify improvement
|
|
51
|
+
3. If still below 80%, repeat Step 3 for remaining gaps
|
|
52
|
+
|
|
53
|
+
## Step 5: Report
|
|
54
|
+
|
|
55
|
+
Show before/after comparison:
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
Coverage Report
|
|
59
|
+
──────────────────────────────
|
|
60
|
+
File Before After
|
|
61
|
+
src/services/auth.ts 45% 88%
|
|
62
|
+
src/utils/validation.ts 32% 82%
|
|
63
|
+
──────────────────────────────
|
|
64
|
+
Overall: 67% 84% PASS:
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Focus Areas
|
|
68
|
+
|
|
69
|
+
- Functions with complex branching (high cyclomatic complexity)
|
|
70
|
+
- Error handlers and catch blocks
|
|
71
|
+
- Utility functions used across the codebase
|
|
72
|
+
- API endpoint handlers (request → response flow)
|
|
73
|
+
- Edge cases: null, undefined, empty string, empty array, zero, negative numbers
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Scan project structure and generate token-lean architecture codemaps.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Update Codemaps
|
|
6
|
+
|
|
7
|
+
Analyze the codebase structure and generate token-lean architecture documentation.
|
|
8
|
+
|
|
9
|
+
## Step 1: Scan Project Structure
|
|
10
|
+
|
|
11
|
+
1. Identify the project type (monorepo, single app, library, microservice)
|
|
12
|
+
2. Find all source directories (src/, lib/, app/, packages/)
|
|
13
|
+
3. Map entry points (main.ts, index.ts, app.py, main.go, etc.)
|
|
14
|
+
|
|
15
|
+
## Step 2: Generate Codemaps
|
|
16
|
+
|
|
17
|
+
Create or update codemaps in `docs/CODEMAPS/` (or `.reports/codemaps/`):
|
|
18
|
+
|
|
19
|
+
| File | Contents |
|
|
20
|
+
|------|----------|
|
|
21
|
+
| `architecture.md` | High-level system diagram, service boundaries, data flow |
|
|
22
|
+
| `backend.md` | API routes, middleware chain, service → repository mapping |
|
|
23
|
+
| `frontend.md` | Page tree, component hierarchy, state management flow |
|
|
24
|
+
| `data.md` | Database tables, relationships, migration history |
|
|
25
|
+
| `dependencies.md` | External services, third-party integrations, shared libraries |
|
|
26
|
+
|
|
27
|
+
### Codemap Format
|
|
28
|
+
|
|
29
|
+
Each codemap should be token-lean — optimized for AI context consumption:
|
|
30
|
+
|
|
31
|
+
```markdown
|
|
32
|
+
# Backend Architecture
|
|
33
|
+
|
|
34
|
+
## Routes
|
|
35
|
+
POST /api/users → UserController.create → UserService.create → UserRepo.insert
|
|
36
|
+
GET /api/users/:id → UserController.get → UserService.findById → UserRepo.findById
|
|
37
|
+
|
|
38
|
+
## Key Files
|
|
39
|
+
src/services/user.ts (business logic, 120 lines)
|
|
40
|
+
src/repos/user.ts (database access, 80 lines)
|
|
41
|
+
|
|
42
|
+
## Dependencies
|
|
43
|
+
- PostgreSQL (primary data store)
|
|
44
|
+
- Redis (session cache, rate limiting)
|
|
45
|
+
- Stripe (payment processing)
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## Step 3: Diff Detection
|
|
49
|
+
|
|
50
|
+
1. If previous codemaps exist, calculate the diff percentage
|
|
51
|
+
2. If changes > 30%, show the diff and request user approval before overwriting
|
|
52
|
+
3. If changes <= 30%, update in place
|
|
53
|
+
|
|
54
|
+
## Step 4: Add Metadata
|
|
55
|
+
|
|
56
|
+
Add a freshness header to each codemap:
|
|
57
|
+
|
|
58
|
+
```markdown
|
|
59
|
+
<!-- Generated: 2026-02-11 | Files scanned: 142 | Token estimate: ~800 -->
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## Step 5: Save Analysis Report
|
|
63
|
+
|
|
64
|
+
Write a summary to `.reports/codemap-diff.txt`:
|
|
65
|
+
- Files added/removed/modified since last scan
|
|
66
|
+
- New dependencies detected
|
|
67
|
+
- Architecture changes (new routes, new services, etc.)
|
|
68
|
+
- Staleness warnings for docs not updated in 90+ days
|
|
69
|
+
|
|
70
|
+
## Tips
|
|
71
|
+
|
|
72
|
+
- Focus on **high-level structure**, not implementation details
|
|
73
|
+
- Prefer **file paths and function signatures** over full code blocks
|
|
74
|
+
- Keep each codemap under **1000 tokens** for efficient context loading
|
|
75
|
+
- Use ASCII diagrams for data flow instead of verbose descriptions
|
|
76
|
+
- Run after major feature additions or refactoring sessions
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Sync documentation from source-of-truth files such as scripts, schemas, routes, and exports.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Update Documentation
|
|
6
|
+
|
|
7
|
+
Sync documentation with the codebase, generating from source-of-truth files.
|
|
8
|
+
|
|
9
|
+
## Step 1: Identify Sources of Truth
|
|
10
|
+
|
|
11
|
+
| Source | Generates |
|
|
12
|
+
|--------|-----------|
|
|
13
|
+
| `package.json` scripts | Available commands reference |
|
|
14
|
+
| `.env.example` | Environment variable documentation |
|
|
15
|
+
| `openapi.yaml` / route files | API endpoint reference |
|
|
16
|
+
| Source code exports | Public API documentation |
|
|
17
|
+
| `Dockerfile` / `docker-compose.yml` | Infrastructure setup docs |
|
|
18
|
+
|
|
19
|
+
## Step 2: Generate Script Reference
|
|
20
|
+
|
|
21
|
+
1. Read `package.json` (or `Makefile`, `Cargo.toml`, `pyproject.toml`)
|
|
22
|
+
2. Extract all scripts/commands with their descriptions
|
|
23
|
+
3. Generate a reference table:
|
|
24
|
+
|
|
25
|
+
```markdown
|
|
26
|
+
| Command | Description |
|
|
27
|
+
|---------|-------------|
|
|
28
|
+
| `npm run dev` | Start development server with hot reload |
|
|
29
|
+
| `npm run build` | Production build with type checking |
|
|
30
|
+
| `npm test` | Run test suite with coverage |
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Step 3: Generate Environment Documentation
|
|
34
|
+
|
|
35
|
+
1. Read `.env.example` (or `.env.template`, `.env.sample`)
|
|
36
|
+
2. Extract all variables with their purposes
|
|
37
|
+
3. Categorize as required vs optional
|
|
38
|
+
4. Document expected format and valid values
|
|
39
|
+
|
|
40
|
+
```markdown
|
|
41
|
+
| Variable | Required | Description | Example |
|
|
42
|
+
|----------|----------|-------------|---------|
|
|
43
|
+
| `DATABASE_URL` | Yes | PostgreSQL connection string | `postgres://user:pass@host:5432/db` |
|
|
44
|
+
| `LOG_LEVEL` | No | Logging verbosity (default: info) | `debug`, `info`, `warn`, `error` |
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Step 4: Update Contributing Guide
|
|
48
|
+
|
|
49
|
+
Generate or update `docs/CONTRIBUTING.md` with:
|
|
50
|
+
- Development environment setup (prerequisites, install steps)
|
|
51
|
+
- Available scripts and their purposes
|
|
52
|
+
- Testing procedures (how to run, how to write new tests)
|
|
53
|
+
- Code style enforcement (linter, formatter, pre-commit hooks)
|
|
54
|
+
- PR submission checklist
|
|
55
|
+
|
|
56
|
+
## Step 5: Update Runbook
|
|
57
|
+
|
|
58
|
+
Generate or update `docs/RUNBOOK.md` with:
|
|
59
|
+
- Deployment procedures (step-by-step)
|
|
60
|
+
- Health check endpoints and monitoring
|
|
61
|
+
- Common issues and their fixes
|
|
62
|
+
- Rollback procedures
|
|
63
|
+
- Alerting and escalation paths
|
|
64
|
+
|
|
65
|
+
## Step 6: Staleness Check
|
|
66
|
+
|
|
67
|
+
1. Find documentation files not modified in 90+ days
|
|
68
|
+
2. Cross-reference with recent source code changes
|
|
69
|
+
3. Flag potentially outdated docs for manual review
|
|
70
|
+
|
|
71
|
+
## Step 7: Show Summary
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
Documentation Update
|
|
75
|
+
──────────────────────────────
|
|
76
|
+
Updated: docs/CONTRIBUTING.md (scripts table)
|
|
77
|
+
Updated: docs/ENV.md (3 new variables)
|
|
78
|
+
Flagged: docs/DEPLOY.md (142 days stale)
|
|
79
|
+
Skipped: docs/API.md (no changes detected)
|
|
80
|
+
──────────────────────────────
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Rules
|
|
84
|
+
|
|
85
|
+
- **Single source of truth**: Always generate from code, never manually edit generated sections
|
|
86
|
+
- **Preserve manual sections**: Only update generated sections; leave hand-written prose intact
|
|
87
|
+
- **Mark generated content**: Use `<!-- AUTO-GENERATED -->` markers around generated sections
|
|
88
|
+
- **Don't create docs unprompted**: Only create new doc files if the command explicitly requests it
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# Rules
|
|
2
|
+
## Structure
|
|
3
|
+
|
|
4
|
+
Rules are organized into a **common** layer plus **language-specific** directories:
|
|
5
|
+
|
|
6
|
+
```
|
|
7
|
+
rules/
|
|
8
|
+
├── common/ # Language-agnostic principles (always install)
|
|
9
|
+
│ ├── coding-style.md
|
|
10
|
+
│ ├── git-workflow.md
|
|
11
|
+
│ ├── testing.md
|
|
12
|
+
│ ├── performance.md
|
|
13
|
+
│ ├── patterns.md
|
|
14
|
+
│ ├── hooks.md
|
|
15
|
+
│ ├── agents.md
|
|
16
|
+
│ └── security.md
|
|
17
|
+
├── typescript/ # TypeScript/JavaScript specific
|
|
18
|
+
├── angular/ # Angular specific
|
|
19
|
+
├── python/ # Python specific
|
|
20
|
+
├── golang/ # Go specific
|
|
21
|
+
├── web/ # Web and frontend specific
|
|
22
|
+
├── swift/ # Swift specific
|
|
23
|
+
├── php/ # PHP specific
|
|
24
|
+
├── ruby/ # Ruby / Rails specific
|
|
25
|
+
└── arkts/ # HarmonyOS / ArkTS specific
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
- **common/** contains universal principles — no language-specific code examples.
|
|
29
|
+
- **Language directories** extend the common rules with framework-specific patterns, tools, and code examples. Each file references its common counterpart.
|
|
30
|
+
|
|
31
|
+
## Installation
|
|
32
|
+
|
|
33
|
+
### Option 1: Install Script (Recommended)
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
# Install common + one or more language-specific rule sets
|
|
37
|
+
./install.sh typescript
|
|
38
|
+
./install.sh angular
|
|
39
|
+
./install.sh python
|
|
40
|
+
./install.sh golang
|
|
41
|
+
./install.sh web
|
|
42
|
+
./install.sh swift
|
|
43
|
+
./install.sh php
|
|
44
|
+
./install.sh ruby
|
|
45
|
+
./install.sh arkts
|
|
46
|
+
|
|
47
|
+
# Install multiple languages at once
|
|
48
|
+
./install.sh typescript python
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Option 2: Manual Installation
|
|
52
|
+
|
|
53
|
+
> **Important:** Copy entire directories — do NOT flatten with `/*`.
|
|
54
|
+
> Common and language-specific directories contain files with the same names.
|
|
55
|
+
> Flattening them into one directory causes language-specific files to overwrite
|
|
56
|
+
> common rules, and breaks the relative `../common/` references used by
|
|
57
|
+
> language-specific files.
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
# Install common rules (required for all projects)
|
|
61
|
+
cp -r rules/common ~/.claude/rules/common
|
|
62
|
+
|
|
63
|
+
# Install language-specific rules based on your project's tech stack
|
|
64
|
+
cp -r rules/typescript ~/.claude/rules/typescript
|
|
65
|
+
cp -r rules/angular ~/.claude/rules/angular
|
|
66
|
+
cp -r rules/python ~/.claude/rules/python
|
|
67
|
+
cp -r rules/golang ~/.claude/rules/golang
|
|
68
|
+
cp -r rules/web ~/.claude/rules/web
|
|
69
|
+
cp -r rules/swift ~/.claude/rules/swift
|
|
70
|
+
cp -r rules/php ~/.claude/rules/php
|
|
71
|
+
cp -r rules/ruby ~/.claude/rules/ruby
|
|
72
|
+
cp -r rules/arkts ~/.claude/rules/arkts
|
|
73
|
+
|
|
74
|
+
# Attention ! ! ! Configure according to your actual project requirements; the configuration here is for reference only.
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Rules vs Skills
|
|
78
|
+
|
|
79
|
+
- **Rules** define standards, conventions, and checklists that apply broadly (e.g., "80% test coverage", "no hardcoded secrets").
|
|
80
|
+
- **Skills** (`skills/` directory) provide deep, actionable reference material for specific tasks (e.g., `python-patterns`, `golang-testing`).
|
|
81
|
+
|
|
82
|
+
Language-specific rule files reference relevant skills where appropriate. Rules tell you *what* to do; skills tell you *how* to do it.
|
|
83
|
+
|
|
84
|
+
## Adding a New Language
|
|
85
|
+
|
|
86
|
+
To add support for a new language (e.g., `rust/`):
|
|
87
|
+
|
|
88
|
+
1. Create a `rules/rust/` directory
|
|
89
|
+
2. Add files that extend the common rules:
|
|
90
|
+
- `coding-style.md` — formatting tools, idioms, error handling patterns
|
|
91
|
+
- `testing.md` — test framework, coverage tools, test organization
|
|
92
|
+
- `patterns.md` — language-specific design patterns
|
|
93
|
+
- `hooks.md` — PostToolUse hooks for formatters, linters, type checkers
|
|
94
|
+
- `security.md` — secret management, security scanning tools
|
|
95
|
+
3. Each file should start with:
|
|
96
|
+
```
|
|
97
|
+
> This file extends [common/xxx.md](../common/xxx.md) with <Language> specific content.
|
|
98
|
+
```
|
|
99
|
+
4. Reference existing skills if available, or create new ones under `skills/`.
|
|
100
|
+
|
|
101
|
+
For non-language domains like `web/`, follow the same layered pattern when there is enough reusable domain-specific guidance to justify a standalone ruleset.
|
|
102
|
+
|
|
103
|
+
## Rule Priority
|
|
104
|
+
|
|
105
|
+
When language-specific rules and common rules conflict, **language-specific rules take precedence** (specific overrides general). This follows the standard layered configuration pattern (similar to CSS specificity or `.gitignore` precedence).
|
|
106
|
+
|
|
107
|
+
- `rules/common/` defines universal defaults applicable to all projects.
|
|
108
|
+
- `rules/golang/`, `rules/python/`, `rules/swift/`, `rules/php/`, `rules/typescript/`, etc. override those defaults where language idioms differ.
|
|
109
|
+
|
|
110
|
+
### Example
|
|
111
|
+
|
|
112
|
+
`common/coding-style.md` recommends immutability as a default principle. A language-specific `golang/coding-style.md` can override this:
|
|
113
|
+
|
|
114
|
+
> Idiomatic Go uses pointer receivers for struct mutation — see [common/coding-style.md](../common/coding-style.md) for the general principle, but Go-idiomatic mutation is preferred here.
|
|
115
|
+
|
|
116
|
+
### Common rules with override notes
|
|
117
|
+
|
|
118
|
+
Rules in `rules/common/` that may be overridden by language-specific files are marked with:
|
|
119
|
+
|
|
120
|
+
> **Language note**: This rule may be overridden by language-specific rules for languages where this pattern is not idiomatic.
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
---
|
|
2
|
+
paths:
|
|
3
|
+
- "**/*.component.ts"
|
|
4
|
+
- "**/*.component.html"
|
|
5
|
+
- "**/*.service.ts"
|
|
6
|
+
- "**/*.directive.ts"
|
|
7
|
+
- "**/*.pipe.ts"
|
|
8
|
+
- "**/*.guard.ts"
|
|
9
|
+
- "**/*.resolver.ts"
|
|
10
|
+
- "**/*.module.ts"
|
|
11
|
+
---
|
|
12
|
+
# Angular Coding Style
|
|
13
|
+
|
|
14
|
+
> This file extends [common/coding-style.md](../common/coding-style.md) with Angular specific content.
|
|
15
|
+
|
|
16
|
+
## Version Awareness
|
|
17
|
+
|
|
18
|
+
Always check the project's Angular version before writing code — features differ significantly between versions. Run `ng version` or inspect `package.json`. When creating a new project, do not pin a version unless the user specifies one.
|
|
19
|
+
|
|
20
|
+
After generating or modifying Angular code, always run `ng build` to catch errors before finishing.
|
|
21
|
+
|
|
22
|
+
## File Naming
|
|
23
|
+
|
|
24
|
+
Follow Angular CLI conventions — one artifact per file:
|
|
25
|
+
|
|
26
|
+
- `user-profile.component.ts` + `user-profile.component.html` + `user-profile.component.spec.ts`
|
|
27
|
+
- `user.service.ts`, `auth.guard.ts`, `date-format.pipe.ts`
|
|
28
|
+
- Feature folders: `features/users/`, `features/auth/`
|
|
29
|
+
- Generate with the CLI: `ng generate component features/users/user-card`
|
|
30
|
+
|
|
31
|
+
## Components
|
|
32
|
+
|
|
33
|
+
Prefer standalone components (v17+ default). Use `OnPush` change detection on all new components.
|
|
34
|
+
|
|
35
|
+
```typescript
|
|
36
|
+
@Component({
|
|
37
|
+
selector: 'app-user-card',
|
|
38
|
+
standalone: true,
|
|
39
|
+
imports: [RouterModule],
|
|
40
|
+
templateUrl: './user-card.component.html',
|
|
41
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
42
|
+
})
|
|
43
|
+
export class UserCardComponent {
|
|
44
|
+
user = input.required<User>();
|
|
45
|
+
select = output<string>();
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Dependency Injection
|
|
50
|
+
|
|
51
|
+
Use `inject()` over constructor injection. Keep constructors empty or remove them entirely.
|
|
52
|
+
|
|
53
|
+
```typescript
|
|
54
|
+
// CORRECT
|
|
55
|
+
@Injectable({ providedIn: 'root' })
|
|
56
|
+
export class UserService {
|
|
57
|
+
private http = inject(HttpClient);
|
|
58
|
+
private router = inject(Router);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// WRONG: Constructor injection is verbose and harder to tree-shake
|
|
62
|
+
constructor(private http: HttpClient, private router: Router) {}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Use `InjectionToken` for non-class dependencies:
|
|
66
|
+
|
|
67
|
+
```typescript
|
|
68
|
+
const API_URL = new InjectionToken<string>('API_URL');
|
|
69
|
+
|
|
70
|
+
// Provide:
|
|
71
|
+
{ provide: API_URL, useValue: 'https://api.example.com' }
|
|
72
|
+
|
|
73
|
+
// Consume:
|
|
74
|
+
private apiUrl = inject(API_URL);
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Signals
|
|
78
|
+
|
|
79
|
+
### Core Primitives
|
|
80
|
+
|
|
81
|
+
```typescript
|
|
82
|
+
count = signal(0);
|
|
83
|
+
doubled = computed(() => this.count() * 2);
|
|
84
|
+
|
|
85
|
+
increment() {
|
|
86
|
+
this.count.update(n => n + 1);
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### `linkedSignal` — Writable Derived State
|
|
91
|
+
|
|
92
|
+
Use `linkedSignal` when a signal must reset or adapt when a source changes, but also be independently writable:
|
|
93
|
+
|
|
94
|
+
```typescript
|
|
95
|
+
selectedOption = linkedSignal(() => this.options()[0]);
|
|
96
|
+
// Resets to first option when options changes, but user can override
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### `resource` — Async Data into Signals
|
|
100
|
+
|
|
101
|
+
Use `resource()` to fetch async data reactively without manual subscriptions:
|
|
102
|
+
|
|
103
|
+
```typescript
|
|
104
|
+
userResource = resource({
|
|
105
|
+
request: () => ({ id: this.userId() }),
|
|
106
|
+
loader: ({ request }) => fetch(`/api/users/${request.id}`).then(r => r.json()),
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
// Access: userResource.value(), userResource.isLoading(), userResource.error()
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### `effect` Usage
|
|
113
|
+
|
|
114
|
+
Use `effect()` only for side effects that must react to signal changes (logging, third-party DOM manipulation). Never use effects to synchronize signals — use `computed` or `linkedSignal` instead. For DOM work after render, use `afterRenderEffect`.
|
|
115
|
+
|
|
116
|
+
```typescript
|
|
117
|
+
// CORRECT: Side effect
|
|
118
|
+
effect(() => console.log('User changed:', this.user()));
|
|
119
|
+
|
|
120
|
+
// WRONG: Use computed instead
|
|
121
|
+
effect(() => { this.fullName.set(`${this.first()} ${this.last()}`); });
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Templates
|
|
125
|
+
|
|
126
|
+
Use v17+ block syntax. Always provide `track` in `@for`:
|
|
127
|
+
|
|
128
|
+
```html
|
|
129
|
+
@for (item of items(); track item.id) {
|
|
130
|
+
<app-item [item]="item" />
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
@if (isLoading()) {
|
|
134
|
+
<app-spinner />
|
|
135
|
+
} @else if (error()) {
|
|
136
|
+
<app-error [message]="error()" />
|
|
137
|
+
} @else {
|
|
138
|
+
<app-content [data]="data()" />
|
|
139
|
+
}
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
No logic in templates beyond simple conditionals — move to component methods or pipes.
|
|
143
|
+
|
|
144
|
+
## Forms
|
|
145
|
+
|
|
146
|
+
Choose the form strategy that matches the project's existing approach:
|
|
147
|
+
|
|
148
|
+
- **Signal Forms** (v21+): Preferred for new projects on v21+. Signal-based form state.
|
|
149
|
+
- **Reactive Forms**: `FormBuilder` + `FormGroup` + `FormControl`. Best for complex forms with dynamic validation.
|
|
150
|
+
- **Template-Driven Forms**: `ngModel`. Suitable for simple forms only.
|
|
151
|
+
|
|
152
|
+
```typescript
|
|
153
|
+
// Reactive Forms — standard approach for most apps
|
|
154
|
+
export class LoginComponent {
|
|
155
|
+
private fb = inject(FormBuilder);
|
|
156
|
+
|
|
157
|
+
form = this.fb.group({
|
|
158
|
+
email: ['', [Validators.required, Validators.email]],
|
|
159
|
+
password: ['', [Validators.required, Validators.minLength(8)]],
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
submit() {
|
|
163
|
+
if (this.form.valid) {
|
|
164
|
+
// use this.form.value
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
## Component Styles
|
|
171
|
+
|
|
172
|
+
Use component-level styles with `ViewEncapsulation.Emulated` (default). Avoid `ViewEncapsulation.None` unless building a design system that intentionally bleeds styles.
|
|
173
|
+
|
|
174
|
+
- Scope styles to the component — do not use global class names inside component stylesheets
|
|
175
|
+
- Use `:host` for host element styling
|
|
176
|
+
- Prefer CSS custom properties for themeable values
|
|
177
|
+
|
|
178
|
+
## Change Detection
|
|
179
|
+
|
|
180
|
+
- Default to `ChangeDetectionStrategy.OnPush` on all new components
|
|
181
|
+
- Signals and `async` pipe handle detection automatically — avoid `markForCheck()` and `detectChanges()`
|
|
182
|
+
- Never mutate `@Input()` objects in place when using OnPush
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
paths:
|
|
3
|
+
- "**/*.component.ts"
|
|
4
|
+
- "**/*.component.html"
|
|
5
|
+
- "**/*.service.ts"
|
|
6
|
+
- "**/*.directive.ts"
|
|
7
|
+
- "**/*.pipe.ts"
|
|
8
|
+
- "**/*.spec.ts"
|
|
9
|
+
---
|
|
10
|
+
# Angular Hooks
|
|
11
|
+
|
|
12
|
+
> This file extends [common/hooks.md](../common/hooks.md) with Angular specific content.
|
|
13
|
+
|
|
14
|
+
## PostToolUse Hooks
|
|
15
|
+
|
|
16
|
+
Configure in `~/.claude/settings.json`:
|
|
17
|
+
|
|
18
|
+
- **Prettier**: Auto-format `.ts` and `.html` files after edit
|
|
19
|
+
- **ESLint / ng lint**: Run `ng lint` after editing Angular source files to catch decorator misuse, template errors, and style violations
|
|
20
|
+
- **TypeScript check**: Run `tsc --noEmit` after editing `.ts` files
|
|
21
|
+
- **Build check**: Run `ng build` after generating or significantly changing Angular code to catch template and type errors early
|
|
22
|
+
|
|
23
|
+
## Stop Hooks
|
|
24
|
+
|
|
25
|
+
- **Lint audit**: Run `ng lint` across modified files before session ends to catch any outstanding violations
|