aw-ecc 1.4.21
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/.agents/skills/api-design/SKILL.md +523 -0
- package/.agents/skills/api-design/agents/openai.yaml +7 -0
- package/.agents/skills/article-writing/SKILL.md +85 -0
- package/.agents/skills/article-writing/agents/openai.yaml +7 -0
- package/.agents/skills/backend-patterns/SKILL.md +598 -0
- package/.agents/skills/backend-patterns/agents/openai.yaml +7 -0
- package/.agents/skills/bun-runtime/SKILL.md +84 -0
- package/.agents/skills/bun-runtime/agents/openai.yaml +7 -0
- package/.agents/skills/claude-api/SKILL.md +337 -0
- package/.agents/skills/claude-api/agents/openai.yaml +7 -0
- package/.agents/skills/coding-standards/SKILL.md +530 -0
- package/.agents/skills/coding-standards/agents/openai.yaml +7 -0
- package/.agents/skills/content-engine/SKILL.md +88 -0
- package/.agents/skills/content-engine/agents/openai.yaml +7 -0
- package/.agents/skills/crosspost/SKILL.md +188 -0
- package/.agents/skills/crosspost/agents/openai.yaml +7 -0
- package/.agents/skills/deep-research/SKILL.md +155 -0
- package/.agents/skills/deep-research/agents/openai.yaml +7 -0
- package/.agents/skills/dmux-workflows/SKILL.md +144 -0
- package/.agents/skills/dmux-workflows/agents/openai.yaml +7 -0
- package/.agents/skills/documentation-lookup/SKILL.md +90 -0
- package/.agents/skills/documentation-lookup/agents/openai.yaml +7 -0
- package/.agents/skills/e2e-testing/SKILL.md +326 -0
- package/.agents/skills/e2e-testing/agents/openai.yaml +7 -0
- package/.agents/skills/eval-harness/SKILL.md +236 -0
- package/.agents/skills/eval-harness/agents/openai.yaml +7 -0
- package/.agents/skills/everything-claude-code/SKILL.md +442 -0
- package/.agents/skills/everything-claude-code/agents/openai.yaml +6 -0
- package/.agents/skills/exa-search/SKILL.md +170 -0
- package/.agents/skills/exa-search/agents/openai.yaml +7 -0
- package/.agents/skills/fal-ai-media/SKILL.md +277 -0
- package/.agents/skills/fal-ai-media/agents/openai.yaml +7 -0
- package/.agents/skills/frontend-patterns/SKILL.md +642 -0
- package/.agents/skills/frontend-patterns/agents/openai.yaml +7 -0
- package/.agents/skills/frontend-slides/SKILL.md +184 -0
- package/.agents/skills/frontend-slides/STYLE_PRESETS.md +330 -0
- package/.agents/skills/frontend-slides/agents/openai.yaml +7 -0
- package/.agents/skills/investor-materials/SKILL.md +96 -0
- package/.agents/skills/investor-materials/agents/openai.yaml +7 -0
- package/.agents/skills/investor-outreach/SKILL.md +76 -0
- package/.agents/skills/investor-outreach/agents/openai.yaml +7 -0
- package/.agents/skills/market-research/SKILL.md +75 -0
- package/.agents/skills/market-research/agents/openai.yaml +7 -0
- package/.agents/skills/mcp-server-patterns/SKILL.md +67 -0
- package/.agents/skills/nextjs-turbopack/SKILL.md +44 -0
- package/.agents/skills/nextjs-turbopack/agents/openai.yaml +7 -0
- package/.agents/skills/security-review/SKILL.md +495 -0
- package/.agents/skills/security-review/agents/openai.yaml +7 -0
- package/.agents/skills/strategic-compact/SKILL.md +103 -0
- package/.agents/skills/strategic-compact/agents/openai.yaml +7 -0
- package/.agents/skills/tdd-workflow/SKILL.md +410 -0
- package/.agents/skills/tdd-workflow/agents/openai.yaml +7 -0
- package/.agents/skills/verification-loop/SKILL.md +126 -0
- package/.agents/skills/verification-loop/agents/openai.yaml +7 -0
- package/.agents/skills/video-editing/SKILL.md +308 -0
- package/.agents/skills/video-editing/agents/openai.yaml +7 -0
- package/.agents/skills/x-api/SKILL.md +214 -0
- package/.agents/skills/x-api/agents/openai.yaml +7 -0
- package/.claude-plugin/README.md +17 -0
- package/.claude-plugin/plugin.json +24 -0
- package/.codex/AGENTS.md +93 -0
- package/.codex/INSTALL.md +64 -0
- package/.codex/agents/docs-researcher.toml +9 -0
- package/.codex/agents/explorer.toml +9 -0
- package/.codex/agents/reviewer.toml +9 -0
- package/.codex/config.toml +108 -0
- package/.codex/hooks/aw-post-tool-use.sh +5 -0
- package/.codex/hooks/aw-pre-tool-use.sh +5 -0
- package/.codex/hooks/aw-session-start.sh +21 -0
- package/.codex/hooks/aw-stop.sh +5 -0
- package/.codex/hooks/aw-user-prompt-submit.sh +9 -0
- package/.codex/hooks.json +62 -0
- package/.cursor/INSTALL.md +40 -0
- package/.cursor/hooks/adapter.js +120 -0
- package/.cursor/hooks/after-file-edit.js +11 -0
- package/.cursor/hooks/after-mcp-execution.js +11 -0
- package/.cursor/hooks/after-shell-execution.js +11 -0
- package/.cursor/hooks/after-tab-file-edit.js +12 -0
- package/.cursor/hooks/aw-phase-adapter.js +43 -0
- package/.cursor/hooks/before-mcp-execution.js +11 -0
- package/.cursor/hooks/before-read-file.js +13 -0
- package/.cursor/hooks/before-shell-execution.js +11 -0
- package/.cursor/hooks/before-submit-prompt.js +41 -0
- package/.cursor/hooks/before-tab-file-read.js +13 -0
- package/.cursor/hooks/pre-compact.js +11 -0
- package/.cursor/hooks/session-end.js +11 -0
- package/.cursor/hooks/session-start.js +11 -0
- package/.cursor/hooks/shared/aw-phase-definitions.js +190 -0
- package/.cursor/hooks/shared/aw-phase-runner.js +61 -0
- package/.cursor/hooks/shared/session-start.sh +20 -0
- package/.cursor/hooks/shared/user-prompt-submit.sh +155 -0
- package/.cursor/hooks/stop.js +11 -0
- package/.cursor/hooks/subagent-start.js +10 -0
- package/.cursor/hooks/subagent-stop.js +10 -0
- package/.cursor/hooks.json +115 -0
- package/.cursor/rules/common-agents.md +53 -0
- package/.cursor/rules/common-coding-style.md +52 -0
- package/.cursor/rules/common-development-workflow.md +33 -0
- package/.cursor/rules/common-git-workflow.md +28 -0
- package/.cursor/rules/common-hooks.md +34 -0
- package/.cursor/rules/common-patterns.md +35 -0
- package/.cursor/rules/common-performance.md +59 -0
- package/.cursor/rules/common-security.md +33 -0
- package/.cursor/rules/common-testing.md +33 -0
- package/.cursor/rules/golang-coding-style.md +31 -0
- package/.cursor/rules/golang-hooks.md +16 -0
- package/.cursor/rules/golang-patterns.md +44 -0
- package/.cursor/rules/golang-security.md +33 -0
- package/.cursor/rules/golang-testing.md +30 -0
- package/.cursor/rules/kotlin-coding-style.md +39 -0
- package/.cursor/rules/kotlin-hooks.md +16 -0
- package/.cursor/rules/kotlin-patterns.md +50 -0
- package/.cursor/rules/kotlin-security.md +58 -0
- package/.cursor/rules/kotlin-testing.md +38 -0
- package/.cursor/rules/php-coding-style.md +25 -0
- package/.cursor/rules/php-hooks.md +21 -0
- package/.cursor/rules/php-patterns.md +23 -0
- package/.cursor/rules/php-security.md +24 -0
- package/.cursor/rules/php-testing.md +26 -0
- package/.cursor/rules/python-coding-style.md +42 -0
- package/.cursor/rules/python-hooks.md +19 -0
- package/.cursor/rules/python-patterns.md +39 -0
- package/.cursor/rules/python-security.md +30 -0
- package/.cursor/rules/python-testing.md +38 -0
- package/.cursor/rules/swift-coding-style.md +47 -0
- package/.cursor/rules/swift-hooks.md +20 -0
- package/.cursor/rules/swift-patterns.md +66 -0
- package/.cursor/rules/swift-security.md +33 -0
- package/.cursor/rules/swift-testing.md +45 -0
- package/.cursor/rules/typescript-coding-style.md +63 -0
- package/.cursor/rules/typescript-hooks.md +20 -0
- package/.cursor/rules/typescript-patterns.md +50 -0
- package/.cursor/rules/typescript-security.md +26 -0
- package/.cursor/rules/typescript-testing.md +16 -0
- package/.cursor/skills/article-writing/SKILL.md +85 -0
- package/.cursor/skills/bun-runtime/SKILL.md +84 -0
- package/.cursor/skills/content-engine/SKILL.md +88 -0
- package/.cursor/skills/documentation-lookup/SKILL.md +90 -0
- package/.cursor/skills/frontend-slides/SKILL.md +184 -0
- package/.cursor/skills/frontend-slides/STYLE_PRESETS.md +330 -0
- package/.cursor/skills/investor-materials/SKILL.md +96 -0
- package/.cursor/skills/investor-outreach/SKILL.md +76 -0
- package/.cursor/skills/market-research/SKILL.md +75 -0
- package/.cursor/skills/mcp-server-patterns/SKILL.md +67 -0
- package/.cursor/skills/nextjs-turbopack/SKILL.md +44 -0
- package/.opencode/MIGRATION.md +368 -0
- package/.opencode/README.md +204 -0
- package/.opencode/commands/build-fix.md +56 -0
- package/.opencode/commands/checkpoint.md +67 -0
- package/.opencode/commands/code-review.md +68 -0
- package/.opencode/commands/e2e.md +105 -0
- package/.opencode/commands/eval.md +88 -0
- package/.opencode/commands/evolve.md +36 -0
- package/.opencode/commands/go-build.md +87 -0
- package/.opencode/commands/go-review.md +71 -0
- package/.opencode/commands/go-test.md +131 -0
- package/.opencode/commands/harness-audit.md +71 -0
- package/.opencode/commands/instinct-export.md +93 -0
- package/.opencode/commands/instinct-import.md +88 -0
- package/.opencode/commands/instinct-status.md +29 -0
- package/.opencode/commands/learn.md +61 -0
- package/.opencode/commands/loop-start.md +32 -0
- package/.opencode/commands/loop-status.md +24 -0
- package/.opencode/commands/model-route.md +26 -0
- package/.opencode/commands/orchestrate.md +88 -0
- package/.opencode/commands/plan.md +49 -0
- package/.opencode/commands/projects.md +23 -0
- package/.opencode/commands/promote.md +23 -0
- package/.opencode/commands/quality-gate.md +29 -0
- package/.opencode/commands/refactor-clean.md +102 -0
- package/.opencode/commands/rust-build.md +78 -0
- package/.opencode/commands/rust-review.md +65 -0
- package/.opencode/commands/rust-test.md +104 -0
- package/.opencode/commands/security.md +89 -0
- package/.opencode/commands/setup-pm.md +67 -0
- package/.opencode/commands/skill-create.md +117 -0
- package/.opencode/commands/tdd.md +66 -0
- package/.opencode/commands/test-coverage.md +80 -0
- package/.opencode/commands/update-codemaps.md +81 -0
- package/.opencode/commands/update-docs.md +67 -0
- package/.opencode/commands/verify.md +67 -0
- package/.opencode/index.ts +79 -0
- package/.opencode/instructions/INSTRUCTIONS.md +337 -0
- package/.opencode/opencode.json +319 -0
- package/.opencode/package.json +70 -0
- package/.opencode/plugins/ecc-hooks.ts +455 -0
- package/.opencode/plugins/index.ts +12 -0
- package/.opencode/prompts/agents/architect.txt +175 -0
- package/.opencode/prompts/agents/build-error-resolver.txt +233 -0
- package/.opencode/prompts/agents/code-reviewer.txt +103 -0
- package/.opencode/prompts/agents/database-reviewer.txt +247 -0
- package/.opencode/prompts/agents/doc-updater.txt +192 -0
- package/.opencode/prompts/agents/e2e-runner.txt +305 -0
- package/.opencode/prompts/agents/go-build-resolver.txt +325 -0
- package/.opencode/prompts/agents/go-reviewer.txt +241 -0
- package/.opencode/prompts/agents/planner.txt +112 -0
- package/.opencode/prompts/agents/refactor-cleaner.txt +241 -0
- package/.opencode/prompts/agents/rust-build-resolver.txt +93 -0
- package/.opencode/prompts/agents/rust-reviewer.txt +61 -0
- package/.opencode/prompts/agents/security-reviewer.txt +207 -0
- package/.opencode/prompts/agents/tdd-guide.txt +211 -0
- package/.opencode/tools/check-coverage.ts +170 -0
- package/.opencode/tools/format-code.ts +68 -0
- package/.opencode/tools/git-summary.ts +54 -0
- package/.opencode/tools/index.ts +13 -0
- package/.opencode/tools/lint-check.ts +85 -0
- package/.opencode/tools/run-tests.ts +139 -0
- package/.opencode/tools/security-audit.ts +277 -0
- package/.opencode/tsconfig.json +29 -0
- package/AGENTS.md +124 -0
- package/LICENSE +21 -0
- package/README.md +146 -0
- package/README.zh-CN.md +552 -0
- package/agents/architect.md +211 -0
- package/agents/build-error-resolver.md +114 -0
- package/agents/chief-of-staff.md +151 -0
- package/agents/code-reviewer.md +237 -0
- package/agents/cpp-build-resolver.md +90 -0
- package/agents/cpp-reviewer.md +72 -0
- package/agents/database-reviewer.md +91 -0
- package/agents/doc-updater.md +107 -0
- package/agents/docs-lookup.md +68 -0
- package/agents/e2e-runner.md +107 -0
- package/agents/evals/code-reviewer-scenarios.json +23 -0
- package/agents/flutter-reviewer.md +243 -0
- package/agents/go-build-resolver.md +94 -0
- package/agents/go-reviewer.md +76 -0
- package/agents/harness-optimizer.md +35 -0
- package/agents/java-build-resolver.md +153 -0
- package/agents/java-reviewer.md +92 -0
- package/agents/kotlin-build-resolver.md +118 -0
- package/agents/kotlin-reviewer.md +159 -0
- package/agents/loop-operator.md +36 -0
- package/agents/planner.md +212 -0
- package/agents/python-reviewer.md +98 -0
- package/agents/pytorch-build-resolver.md +120 -0
- package/agents/refactor-cleaner.md +85 -0
- package/agents/rust-build-resolver.md +148 -0
- package/agents/rust-reviewer.md +94 -0
- package/agents/security-reviewer.md +108 -0
- package/agents/tdd-guide.md +91 -0
- package/agents/typescript-reviewer.md +112 -0
- package/commands/aside.md +164 -0
- package/commands/brainstorm.md +16 -0
- package/commands/build-fix.md +70 -0
- package/commands/build.md +91 -0
- package/commands/checkpoint.md +74 -0
- package/commands/claw.md +51 -0
- package/commands/code-review.md +24 -0
- package/commands/context-budget.md +29 -0
- package/commands/cpp-build.md +174 -0
- package/commands/cpp-review.md +132 -0
- package/commands/cpp-test.md +252 -0
- package/commands/deploy.md +75 -0
- package/commands/devfleet.md +92 -0
- package/commands/docs.md +31 -0
- package/commands/e2e.md +373 -0
- package/commands/eval.md +120 -0
- package/commands/evolve.md +178 -0
- package/commands/execute.md +51 -0
- package/commands/finish.md +22 -0
- package/commands/go-build.md +184 -0
- package/commands/go-review.md +148 -0
- package/commands/go-test.md +269 -0
- package/commands/gradle-build.md +70 -0
- package/commands/harness-audit.md +71 -0
- package/commands/instinct-export.md +66 -0
- package/commands/instinct-import.md +114 -0
- package/commands/instinct-status.md +59 -0
- package/commands/investigate.md +63 -0
- package/commands/kotlin-build.md +175 -0
- package/commands/kotlin-review.md +140 -0
- package/commands/kotlin-test.md +313 -0
- package/commands/learn-eval.md +116 -0
- package/commands/learn.md +70 -0
- package/commands/loop-start.md +32 -0
- package/commands/loop-status.md +24 -0
- package/commands/model-route.md +26 -0
- package/commands/multi-backend.md +166 -0
- package/commands/multi-execute.md +324 -0
- package/commands/multi-frontend.md +165 -0
- package/commands/multi-plan.md +277 -0
- package/commands/multi-workflow.md +200 -0
- package/commands/orchestrate.md +240 -0
- package/commands/plan.md +130 -0
- package/commands/pm2.md +272 -0
- package/commands/projects.md +39 -0
- package/commands/promote.md +41 -0
- package/commands/prompt-optimize.md +38 -0
- package/commands/prune.md +31 -0
- package/commands/python-review.md +297 -0
- package/commands/quality-gate.md +29 -0
- package/commands/refactor-clean.md +89 -0
- package/commands/resume-session.md +155 -0
- package/commands/review.md +64 -0
- package/commands/rules-distill.md +11 -0
- package/commands/rust-build.md +188 -0
- package/commands/rust-review.md +142 -0
- package/commands/rust-test.md +309 -0
- package/commands/save-session.md +275 -0
- package/commands/sessions.md +333 -0
- package/commands/setup-pm.md +80 -0
- package/commands/ship.md +77 -0
- package/commands/skill-create.md +174 -0
- package/commands/skill-health.md +54 -0
- package/commands/tdd.md +20 -0
- package/commands/test-coverage.md +77 -0
- package/commands/test.md +64 -0
- package/commands/update-codemaps.md +72 -0
- package/commands/update-docs.md +84 -0
- package/commands/verify.md +55 -0
- package/contexts/dev.md +20 -0
- package/contexts/research.md +26 -0
- package/contexts/review.md +22 -0
- package/examples/CLAUDE.md +100 -0
- package/examples/statusline.json +19 -0
- package/examples/user-CLAUDE.md +109 -0
- package/hooks/README.md +219 -0
- package/hooks/hooks.json +320 -0
- package/hooks/run-hook.cmd +31 -0
- package/hooks/session-start +6 -0
- package/install.ps1 +38 -0
- package/install.sh +17 -0
- package/manifests/install-components.json +415 -0
- package/manifests/install-modules.json +500 -0
- package/manifests/install-profiles.json +80 -0
- package/mcp-configs/mcp-servers.json +153 -0
- package/package.json +131 -0
- package/plugins/README.md +85 -0
- package/rules/README.md +106 -0
- package/rules/common/agents.md +50 -0
- package/rules/common/coding-style.md +48 -0
- package/rules/common/development-workflow.md +38 -0
- package/rules/common/git-workflow.md +24 -0
- package/rules/common/hooks.md +30 -0
- package/rules/common/patterns.md +31 -0
- package/rules/common/performance.md +55 -0
- package/rules/common/security.md +29 -0
- package/rules/common/testing.md +29 -0
- package/rules/cpp/coding-style.md +44 -0
- package/rules/cpp/hooks.md +39 -0
- package/rules/cpp/patterns.md +51 -0
- package/rules/cpp/security.md +51 -0
- package/rules/cpp/testing.md +44 -0
- package/rules/csharp/coding-style.md +72 -0
- package/rules/csharp/hooks.md +25 -0
- package/rules/csharp/patterns.md +50 -0
- package/rules/csharp/security.md +58 -0
- package/rules/csharp/testing.md +46 -0
- package/rules/golang/coding-style.md +32 -0
- package/rules/golang/hooks.md +17 -0
- package/rules/golang/patterns.md +45 -0
- package/rules/golang/security.md +34 -0
- package/rules/golang/testing.md +31 -0
- package/rules/java/coding-style.md +114 -0
- package/rules/java/hooks.md +18 -0
- package/rules/java/patterns.md +146 -0
- package/rules/java/security.md +100 -0
- package/rules/java/testing.md +131 -0
- package/rules/kotlin/coding-style.md +86 -0
- package/rules/kotlin/hooks.md +17 -0
- package/rules/kotlin/patterns.md +146 -0
- package/rules/kotlin/security.md +82 -0
- package/rules/kotlin/testing.md +128 -0
- package/rules/perl/coding-style.md +46 -0
- package/rules/perl/hooks.md +22 -0
- package/rules/perl/patterns.md +76 -0
- package/rules/perl/security.md +69 -0
- package/rules/perl/testing.md +54 -0
- package/rules/php/coding-style.md +40 -0
- package/rules/php/hooks.md +24 -0
- package/rules/php/patterns.md +33 -0
- package/rules/php/security.md +37 -0
- package/rules/php/testing.md +39 -0
- package/rules/python/coding-style.md +42 -0
- package/rules/python/hooks.md +19 -0
- package/rules/python/patterns.md +39 -0
- package/rules/python/security.md +30 -0
- package/rules/python/testing.md +38 -0
- package/rules/rust/coding-style.md +151 -0
- package/rules/rust/hooks.md +16 -0
- package/rules/rust/patterns.md +168 -0
- package/rules/rust/security.md +141 -0
- package/rules/rust/testing.md +154 -0
- package/rules/swift/coding-style.md +47 -0
- package/rules/swift/hooks.md +20 -0
- package/rules/swift/patterns.md +66 -0
- package/rules/swift/security.md +33 -0
- package/rules/swift/testing.md +45 -0
- package/rules/typescript/coding-style.md +199 -0
- package/rules/typescript/hooks.md +22 -0
- package/rules/typescript/patterns.md +52 -0
- package/rules/typescript/security.md +28 -0
- package/rules/typescript/testing.md +18 -0
- package/schemas/ecc-install-config.schema.json +58 -0
- package/schemas/hooks.schema.json +197 -0
- package/schemas/install-components.schema.json +58 -0
- package/schemas/install-modules.schema.json +105 -0
- package/schemas/install-profiles.schema.json +45 -0
- package/schemas/install-state.schema.json +210 -0
- package/schemas/package-manager.schema.json +23 -0
- package/schemas/plugin.schema.json +58 -0
- package/schemas/provenance.schema.json +31 -0
- package/schemas/state-store.schema.json +316 -0
- package/scripts/ci/catalog.js +245 -0
- package/scripts/ci/validate-agents.js +81 -0
- package/scripts/ci/validate-commands.js +136 -0
- package/scripts/ci/validate-hooks.js +239 -0
- package/scripts/ci/validate-install-manifests.js +214 -0
- package/scripts/ci/validate-no-personal-paths.js +63 -0
- package/scripts/ci/validate-rules.js +81 -0
- package/scripts/ci/validate-skills.js +56 -0
- package/scripts/claw.js +473 -0
- package/scripts/codex/merge-mcp-config.js +304 -0
- package/scripts/cursor-aw-home/hooks.json +115 -0
- package/scripts/cursor-aw-hooks/adapter.js +120 -0
- package/scripts/cursor-aw-hooks/after-file-edit.js +11 -0
- package/scripts/cursor-aw-hooks/after-mcp-execution.js +11 -0
- package/scripts/cursor-aw-hooks/after-shell-execution.js +11 -0
- package/scripts/cursor-aw-hooks/aw-phase-adapter.js +43 -0
- package/scripts/cursor-aw-hooks/before-mcp-execution.js +11 -0
- package/scripts/cursor-aw-hooks/before-shell-execution.js +11 -0
- package/scripts/cursor-aw-hooks/before-submit-prompt.js +41 -0
- package/scripts/cursor-aw-hooks/pre-compact.js +11 -0
- package/scripts/cursor-aw-hooks/session-end.js +11 -0
- package/scripts/cursor-aw-hooks/session-start.js +11 -0
- package/scripts/cursor-aw-hooks/stop.js +11 -0
- package/scripts/doctor.js +110 -0
- package/scripts/ecc.js +208 -0
- package/scripts/generate-aw-hooks.js +110 -0
- package/scripts/harness-audit.js +512 -0
- package/scripts/hooks/auto-tmux-dev.js +88 -0
- package/scripts/hooks/check-console-log.js +71 -0
- package/scripts/hooks/check-hook-enabled.js +12 -0
- package/scripts/hooks/config-protection.js +125 -0
- package/scripts/hooks/cost-tracker.js +78 -0
- package/scripts/hooks/doc-file-warning.js +63 -0
- package/scripts/hooks/evaluate-session.js +100 -0
- package/scripts/hooks/governance-capture.js +280 -0
- package/scripts/hooks/insaits-security-monitor.py +269 -0
- package/scripts/hooks/insaits-security-wrapper.js +88 -0
- package/scripts/hooks/mcp-health-check.js +588 -0
- package/scripts/hooks/post-bash-build-complete.js +27 -0
- package/scripts/hooks/post-bash-pr-created.js +37 -0
- package/scripts/hooks/post-edit-console-warn.js +54 -0
- package/scripts/hooks/post-edit-format.js +109 -0
- package/scripts/hooks/post-edit-typecheck.js +96 -0
- package/scripts/hooks/post-mcp-log.js +27 -0
- package/scripts/hooks/pre-bash-dev-server-block.js +187 -0
- package/scripts/hooks/pre-bash-git-push-reminder.js +28 -0
- package/scripts/hooks/pre-bash-tmux-reminder.js +33 -0
- package/scripts/hooks/pre-compact.js +48 -0
- package/scripts/hooks/pre-mcp-log.js +26 -0
- package/scripts/hooks/pre-write-doc-warn.js +9 -0
- package/scripts/hooks/quality-gate.js +168 -0
- package/scripts/hooks/run-with-flags-shell.sh +32 -0
- package/scripts/hooks/run-with-flags.js +120 -0
- package/scripts/hooks/session-end-marker.js +29 -0
- package/scripts/hooks/session-end.js +301 -0
- package/scripts/hooks/session-start-rules-context.sh +5 -0
- package/scripts/hooks/session-start.js +98 -0
- package/scripts/hooks/shared/aw-phase-definitions.js +190 -0
- package/scripts/hooks/shared/aw-phase-runner.js +61 -0
- package/scripts/hooks/shared/session-start.sh +20 -0
- package/scripts/hooks/shared/user-prompt-submit.sh +155 -0
- package/scripts/hooks/suggest-compact.js +80 -0
- package/scripts/install-apply.js +140 -0
- package/scripts/install-plan.js +254 -0
- package/scripts/lib/agent-compress.js +244 -0
- package/scripts/lib/aw-harness-registry.js +122 -0
- package/scripts/lib/aw-hook-contract.js +86 -0
- package/scripts/lib/claude-aw-hook-files.js +28 -0
- package/scripts/lib/claude-hook-config.js +76 -0
- package/scripts/lib/codex-aw-hook-files.js +38 -0
- package/scripts/lib/codex-hook-config.js +88 -0
- package/scripts/lib/cursor-aw-hook-files.js +62 -0
- package/scripts/lib/cursor-hook-config.js +148 -0
- package/scripts/lib/hook-flags.js +74 -0
- package/scripts/lib/inspection.js +212 -0
- package/scripts/lib/install/apply.js +23 -0
- package/scripts/lib/install/config.js +82 -0
- package/scripts/lib/install/request.js +120 -0
- package/scripts/lib/install/runtime.js +54 -0
- package/scripts/lib/install-executor.js +778 -0
- package/scripts/lib/install-lifecycle.js +1311 -0
- package/scripts/lib/install-manifests.js +448 -0
- package/scripts/lib/install-state.js +313 -0
- package/scripts/lib/install-targets/antigravity-project.js +69 -0
- package/scripts/lib/install-targets/claude-home.js +54 -0
- package/scripts/lib/install-targets/codex-home.js +62 -0
- package/scripts/lib/install-targets/cursor-project.js +80 -0
- package/scripts/lib/install-targets/helpers.js +307 -0
- package/scripts/lib/install-targets/opencode-home.js +10 -0
- package/scripts/lib/install-targets/registry.js +66 -0
- package/scripts/lib/orchestration-session.js +299 -0
- package/scripts/lib/package-manager.d.ts +119 -0
- package/scripts/lib/package-manager.js +431 -0
- package/scripts/lib/project-detect.js +428 -0
- package/scripts/lib/resolve-ecc-root.js +89 -0
- package/scripts/lib/resolve-formatter.js +185 -0
- package/scripts/lib/session-adapters/canonical-session.js +531 -0
- package/scripts/lib/session-adapters/claude-history.js +160 -0
- package/scripts/lib/session-adapters/dmux-tmux.js +90 -0
- package/scripts/lib/session-adapters/registry.js +127 -0
- package/scripts/lib/session-aliases.d.ts +136 -0
- package/scripts/lib/session-aliases.js +481 -0
- package/scripts/lib/session-manager.d.ts +131 -0
- package/scripts/lib/session-manager.js +464 -0
- package/scripts/lib/shell-split.js +86 -0
- package/scripts/lib/skill-evolution/dashboard.js +401 -0
- package/scripts/lib/skill-evolution/health.js +263 -0
- package/scripts/lib/skill-evolution/index.js +20 -0
- package/scripts/lib/skill-evolution/provenance.js +187 -0
- package/scripts/lib/skill-evolution/tracker.js +146 -0
- package/scripts/lib/skill-evolution/versioning.js +237 -0
- package/scripts/lib/skill-improvement/amendify.js +89 -0
- package/scripts/lib/skill-improvement/evaluate.js +59 -0
- package/scripts/lib/skill-improvement/health.js +118 -0
- package/scripts/lib/skill-improvement/observations.js +108 -0
- package/scripts/lib/state-store/index.js +191 -0
- package/scripts/lib/state-store/migrations.js +178 -0
- package/scripts/lib/state-store/queries.js +697 -0
- package/scripts/lib/state-store/schema.js +92 -0
- package/scripts/lib/tmux-worktree-orchestrator.js +475 -0
- package/scripts/lib/utils.d.ts +183 -0
- package/scripts/lib/utils.js +564 -0
- package/scripts/list-installed.js +90 -0
- package/scripts/orchestrate-codex-worker.sh +107 -0
- package/scripts/orchestrate-worktrees.js +40 -0
- package/scripts/orchestration-status.js +82 -0
- package/scripts/repair.js +97 -0
- package/scripts/session-inspect.js +150 -0
- package/scripts/sessions-cli.js +177 -0
- package/scripts/setup-package-manager.js +204 -0
- package/scripts/skill-create-output.js +244 -0
- package/scripts/status.js +176 -0
- package/scripts/uninstall.js +96 -0
- package/skills/agent-eval/SKILL.md +145 -0
- package/skills/agent-harness-construction/SKILL.md +73 -0
- package/skills/agentic-engineering/SKILL.md +63 -0
- package/skills/ai-first-engineering/SKILL.md +51 -0
- package/skills/ai-regression-testing/SKILL.md +385 -0
- package/skills/android-clean-architecture/SKILL.md +339 -0
- package/skills/api-and-interface-design/SKILL.md +75 -0
- package/skills/api-design/SKILL.md +523 -0
- package/skills/architecture-decision-records/SKILL.md +179 -0
- package/skills/article-writing/SKILL.md +85 -0
- package/skills/autonomous-loops/SKILL.md +610 -0
- package/skills/aw-brainstorm/SKILL.md +115 -0
- package/skills/aw-build/SKILL.md +189 -0
- package/skills/aw-build/evals/build-stage-cases.json +28 -0
- package/skills/aw-debug/SKILL.md +49 -0
- package/skills/aw-deploy/SKILL.md +101 -0
- package/skills/aw-deploy/evals/deploy-stage-cases.json +32 -0
- package/skills/aw-execute/SKILL.md +47 -0
- package/skills/aw-execute/references/mode-code.md +47 -0
- package/skills/aw-execute/references/mode-docs.md +28 -0
- package/skills/aw-execute/references/mode-infra.md +44 -0
- package/skills/aw-execute/references/mode-migration.md +58 -0
- package/skills/aw-execute/references/worker-implementer.md +26 -0
- package/skills/aw-execute/references/worker-parallel-worker.md +23 -0
- package/skills/aw-execute/references/worker-quality-reviewer.md +23 -0
- package/skills/aw-execute/references/worker-spec-reviewer.md +23 -0
- package/skills/aw-execute/scripts/build-worker-bundle.js +229 -0
- package/skills/aw-finish/SKILL.md +111 -0
- package/skills/aw-investigate/SKILL.md +109 -0
- package/skills/aw-plan/SKILL.md +399 -0
- package/skills/aw-prepare/SKILL.md +118 -0
- package/skills/aw-review/SKILL.md +123 -0
- package/skills/aw-rules/SKILL.md +129 -0
- package/skills/aw-rules/references/known-hallucinations.md +43 -0
- package/skills/aw-rules/references/verification-sources.md +50 -0
- package/skills/aw-ship/SKILL.md +115 -0
- package/skills/aw-spec/SKILL.md +128 -0
- package/skills/aw-tasks/SKILL.md +155 -0
- package/skills/aw-test/SKILL.md +118 -0
- package/skills/aw-verify/SKILL.md +51 -0
- package/skills/aw-yolo/SKILL.md +111 -0
- package/skills/backend-patterns/SKILL.md +598 -0
- package/skills/benchmark/SKILL.md +87 -0
- package/skills/blueprint/SKILL.md +105 -0
- package/skills/browser-qa/SKILL.md +81 -0
- package/skills/browser-testing-with-devtools/SKILL.md +81 -0
- package/skills/bun-runtime/SKILL.md +84 -0
- package/skills/canary-watch/SKILL.md +93 -0
- package/skills/carrier-relationship-management/SKILL.md +212 -0
- package/skills/ci-cd-and-automation/SKILL.md +71 -0
- package/skills/claude-api/SKILL.md +337 -0
- package/skills/claude-devfleet/SKILL.md +103 -0
- package/skills/click-path-audit/SKILL.md +244 -0
- package/skills/clickhouse-io/SKILL.md +439 -0
- package/skills/code-simplification/SKILL.md +74 -0
- package/skills/codebase-onboarding/SKILL.md +233 -0
- package/skills/coding-standards/SKILL.md +530 -0
- package/skills/compose-multiplatform-patterns/SKILL.md +299 -0
- package/skills/configure-ecc/SKILL.md +367 -0
- package/skills/content-engine/SKILL.md +88 -0
- package/skills/content-hash-cache-pattern/SKILL.md +161 -0
- package/skills/context-budget/SKILL.md +135 -0
- package/skills/context-engineering/SKILL.md +74 -0
- package/skills/continuous-agent-loop/SKILL.md +45 -0
- package/skills/continuous-learning/SKILL.md +119 -0
- package/skills/continuous-learning/config.json +18 -0
- package/skills/continuous-learning/evaluate-session.sh +69 -0
- package/skills/continuous-learning-v2/SKILL.md +365 -0
- package/skills/continuous-learning-v2/agents/observer-loop.sh +191 -0
- package/skills/continuous-learning-v2/agents/observer.md +198 -0
- package/skills/continuous-learning-v2/agents/session-guardian.sh +150 -0
- package/skills/continuous-learning-v2/agents/start-observer.sh +240 -0
- package/skills/continuous-learning-v2/config.json +8 -0
- package/skills/continuous-learning-v2/hooks/observe.sh +412 -0
- package/skills/continuous-learning-v2/scripts/detect-project.sh +228 -0
- package/skills/continuous-learning-v2/scripts/instinct-cli.py +1426 -0
- package/skills/continuous-learning-v2/scripts/test_parse_instinct.py +984 -0
- package/skills/cost-aware-llm-pipeline/SKILL.md +183 -0
- package/skills/cpp-coding-standards/SKILL.md +723 -0
- package/skills/cpp-testing/SKILL.md +324 -0
- package/skills/crosspost/SKILL.md +190 -0
- package/skills/customs-trade-compliance/SKILL.md +263 -0
- package/skills/data-scraper-agent/SKILL.md +764 -0
- package/skills/database-migrations/SKILL.md +429 -0
- package/skills/deep-research/SKILL.md +155 -0
- package/skills/deployment-patterns/SKILL.md +427 -0
- package/skills/deprecation-and-migration/SKILL.md +75 -0
- package/skills/design-system/SKILL.md +76 -0
- package/skills/django-patterns/SKILL.md +734 -0
- package/skills/django-security/SKILL.md +593 -0
- package/skills/django-tdd/SKILL.md +729 -0
- package/skills/django-verification/SKILL.md +469 -0
- package/skills/dmux-workflows/SKILL.md +191 -0
- package/skills/docker-patterns/SKILL.md +364 -0
- package/skills/documentation-and-adrs/SKILL.md +75 -0
- package/skills/documentation-lookup/SKILL.md +90 -0
- package/skills/e2e-testing/SKILL.md +326 -0
- package/skills/energy-procurement/SKILL.md +228 -0
- package/skills/enterprise-agent-ops/SKILL.md +50 -0
- package/skills/eval-harness/SKILL.md +270 -0
- package/skills/exa-search/SKILL.md +103 -0
- package/skills/fal-ai-media/SKILL.md +284 -0
- package/skills/flutter-dart-code-review/SKILL.md +435 -0
- package/skills/foundation-models-on-device/SKILL.md +243 -0
- package/skills/frontend-patterns/SKILL.md +642 -0
- package/skills/frontend-slides/SKILL.md +184 -0
- package/skills/frontend-slides/STYLE_PRESETS.md +330 -0
- package/skills/frontend-ui-engineering/SKILL.md +68 -0
- package/skills/git-workflow-and-versioning/SKILL.md +75 -0
- package/skills/golang-patterns/SKILL.md +674 -0
- package/skills/golang-testing/SKILL.md +720 -0
- package/skills/idea-refine/SKILL.md +84 -0
- package/skills/incremental-implementation/SKILL.md +86 -0
- package/skills/inventory-demand-planning/SKILL.md +247 -0
- package/skills/investor-materials/SKILL.md +96 -0
- package/skills/investor-outreach/SKILL.md +76 -0
- package/skills/iterative-retrieval/SKILL.md +211 -0
- package/skills/java-coding-standards/SKILL.md +147 -0
- package/skills/jpa-patterns/SKILL.md +151 -0
- package/skills/kotlin-coroutines-flows/SKILL.md +284 -0
- package/skills/kotlin-exposed-patterns/SKILL.md +719 -0
- package/skills/kotlin-ktor-patterns/SKILL.md +689 -0
- package/skills/kotlin-patterns/SKILL.md +711 -0
- package/skills/kotlin-testing/SKILL.md +824 -0
- package/skills/laravel-patterns/SKILL.md +415 -0
- package/skills/laravel-security/SKILL.md +285 -0
- package/skills/laravel-tdd/SKILL.md +283 -0
- package/skills/laravel-verification/SKILL.md +179 -0
- package/skills/liquid-glass-design/SKILL.md +279 -0
- package/skills/logistics-exception-management/SKILL.md +222 -0
- package/skills/market-research/SKILL.md +75 -0
- package/skills/mcp-server-patterns/SKILL.md +67 -0
- package/skills/nanoclaw-repl/SKILL.md +33 -0
- package/skills/nextjs-turbopack/SKILL.md +44 -0
- package/skills/nutrient-document-processing/SKILL.md +167 -0
- package/skills/nuxt4-patterns/SKILL.md +100 -0
- package/skills/performance-optimization/SKILL.md +77 -0
- package/skills/perl-patterns/SKILL.md +504 -0
- package/skills/perl-security/SKILL.md +503 -0
- package/skills/perl-testing/SKILL.md +475 -0
- package/skills/plankton-code-quality/SKILL.md +236 -0
- package/skills/postgres-patterns/SKILL.md +147 -0
- package/skills/product-lens/SKILL.md +79 -0
- package/skills/production-scheduling/SKILL.md +238 -0
- package/skills/project-guidelines-example/SKILL.md +349 -0
- package/skills/prompt-optimizer/SKILL.md +397 -0
- package/skills/python-patterns/SKILL.md +750 -0
- package/skills/python-testing/SKILL.md +816 -0
- package/skills/pytorch-patterns/SKILL.md +396 -0
- package/skills/quality-nonconformance/SKILL.md +260 -0
- package/skills/ralphinho-rfc-pipeline/SKILL.md +67 -0
- package/skills/regex-vs-llm-structured-text/SKILL.md +220 -0
- package/skills/returns-reverse-logistics/SKILL.md +240 -0
- package/skills/rules-distill/SKILL.md +264 -0
- package/skills/rules-distill/scripts/scan-rules.sh +58 -0
- package/skills/rules-distill/scripts/scan-skills.sh +129 -0
- package/skills/rust-patterns/SKILL.md +499 -0
- package/skills/rust-testing/SKILL.md +500 -0
- package/skills/safety-guard/SKILL.md +69 -0
- package/skills/santa-method/SKILL.md +306 -0
- package/skills/search-first/SKILL.md +161 -0
- package/skills/security-and-hardening/SKILL.md +70 -0
- package/skills/security-review/SKILL.md +495 -0
- package/skills/security-review/cloud-infrastructure-security.md +361 -0
- package/skills/security-scan/SKILL.md +165 -0
- package/skills/skill-comply/SKILL.md +58 -0
- package/skills/skill-comply/fixtures/compliant_trace.jsonl +5 -0
- package/skills/skill-comply/fixtures/noncompliant_trace.jsonl +3 -0
- package/skills/skill-comply/fixtures/tdd_spec.yaml +44 -0
- package/skills/skill-comply/prompts/classifier.md +24 -0
- package/skills/skill-comply/prompts/scenario_generator.md +62 -0
- package/skills/skill-comply/prompts/spec_generator.md +42 -0
- package/skills/skill-comply/pyproject.toml +15 -0
- package/skills/skill-comply/scripts/__init__.py +0 -0
- package/skills/skill-comply/scripts/classifier.py +85 -0
- package/skills/skill-comply/scripts/grader.py +122 -0
- package/skills/skill-comply/scripts/parser.py +107 -0
- package/skills/skill-comply/scripts/report.py +170 -0
- package/skills/skill-comply/scripts/run.py +127 -0
- package/skills/skill-comply/scripts/runner.py +161 -0
- package/skills/skill-comply/scripts/scenario_generator.py +70 -0
- package/skills/skill-comply/scripts/spec_generator.py +72 -0
- package/skills/skill-comply/scripts/utils.py +13 -0
- package/skills/skill-comply/tests/test_grader.py +137 -0
- package/skills/skill-comply/tests/test_parser.py +90 -0
- package/skills/skill-quality-review/SKILL.md +102 -0
- package/skills/skill-quality-review/references/review-rubric.md +112 -0
- package/skills/skill-stocktake/SKILL.md +197 -0
- package/skills/skill-stocktake/scripts/quick-diff.sh +87 -0
- package/skills/skill-stocktake/scripts/save-results.sh +56 -0
- package/skills/skill-stocktake/scripts/scan.sh +170 -0
- package/skills/springboot-patterns/SKILL.md +314 -0
- package/skills/springboot-security/SKILL.md +272 -0
- package/skills/springboot-tdd/SKILL.md +158 -0
- package/skills/springboot-verification/SKILL.md +231 -0
- package/skills/strategic-compact/SKILL.md +131 -0
- package/skills/strategic-compact/suggest-compact.sh +54 -0
- package/skills/swift-actor-persistence/SKILL.md +143 -0
- package/skills/swift-concurrency-6-2/SKILL.md +216 -0
- package/skills/swift-protocol-di-testing/SKILL.md +190 -0
- package/skills/swiftui-patterns/SKILL.md +259 -0
- package/skills/tdd-workflow/SKILL.md +145 -0
- package/skills/team-builder/SKILL.md +161 -0
- package/skills/using-aw-skills/SKILL.md +290 -0
- package/skills/using-aw-skills/evals/skill-trigger-cases.tsv +25 -0
- package/skills/using-aw-skills/evals/test-skill-triggers.sh +171 -0
- package/skills/using-aw-skills/hooks/hooks.json +9 -0
- package/skills/using-aw-skills/hooks/session-start.sh +188 -0
- package/skills/using-platform-skills/SKILL.md +163 -0
- package/skills/using-platform-skills/evals/platform-selection-cases.json +52 -0
- package/skills/verification-loop/SKILL.md +126 -0
- package/skills/video-editing/SKILL.md +310 -0
- package/skills/videodb/SKILL.md +374 -0
- package/skills/videodb/reference/api-reference.md +550 -0
- package/skills/videodb/reference/capture-reference.md +407 -0
- package/skills/videodb/reference/capture.md +101 -0
- package/skills/videodb/reference/editor.md +443 -0
- package/skills/videodb/reference/generative.md +331 -0
- package/skills/videodb/reference/rtstream-reference.md +564 -0
- package/skills/videodb/reference/rtstream.md +65 -0
- package/skills/videodb/reference/search.md +230 -0
- package/skills/videodb/reference/streaming.md +406 -0
- package/skills/videodb/reference/use-cases.md +118 -0
- package/skills/videodb/scripts/ws_listener.py +282 -0
- package/skills/visa-doc-translate/README.md +86 -0
- package/skills/visa-doc-translate/SKILL.md +117 -0
- package/skills/x-api/SKILL.md +208 -0
package/contexts/dev.md
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Development Context
|
|
2
|
+
|
|
3
|
+
Mode: Active development
|
|
4
|
+
Focus: Implementation, coding, building features
|
|
5
|
+
|
|
6
|
+
## Behavior
|
|
7
|
+
- Write code first, explain after
|
|
8
|
+
- Prefer working solutions over perfect solutions
|
|
9
|
+
- Run tests after changes
|
|
10
|
+
- Keep commits atomic
|
|
11
|
+
|
|
12
|
+
## Priorities
|
|
13
|
+
1. Get it working
|
|
14
|
+
2. Get it right
|
|
15
|
+
3. Get it clean
|
|
16
|
+
|
|
17
|
+
## Tools to favor
|
|
18
|
+
- Edit, Write for code changes
|
|
19
|
+
- Bash for running tests/builds
|
|
20
|
+
- Grep, Glob for finding code
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Research Context
|
|
2
|
+
|
|
3
|
+
Mode: Exploration, investigation, learning
|
|
4
|
+
Focus: Understanding before acting
|
|
5
|
+
|
|
6
|
+
## Behavior
|
|
7
|
+
- Read widely before concluding
|
|
8
|
+
- Ask clarifying questions
|
|
9
|
+
- Document findings as you go
|
|
10
|
+
- Don't write code until understanding is clear
|
|
11
|
+
|
|
12
|
+
## Research Process
|
|
13
|
+
1. Understand the question
|
|
14
|
+
2. Explore relevant code/docs
|
|
15
|
+
3. Form hypothesis
|
|
16
|
+
4. Verify with evidence
|
|
17
|
+
5. Summarize findings
|
|
18
|
+
|
|
19
|
+
## Tools to favor
|
|
20
|
+
- Read for understanding code
|
|
21
|
+
- Grep, Glob for finding patterns
|
|
22
|
+
- WebSearch, WebFetch for external docs
|
|
23
|
+
- Task with Explore agent for codebase questions
|
|
24
|
+
|
|
25
|
+
## Output
|
|
26
|
+
Findings first, recommendations second
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Code Review Context
|
|
2
|
+
|
|
3
|
+
Mode: PR review, code analysis
|
|
4
|
+
Focus: Quality, security, maintainability
|
|
5
|
+
|
|
6
|
+
## Behavior
|
|
7
|
+
- Read thoroughly before commenting
|
|
8
|
+
- Prioritize issues by severity (critical > high > medium > low)
|
|
9
|
+
- Suggest fixes, don't just point out problems
|
|
10
|
+
- Check for security vulnerabilities
|
|
11
|
+
|
|
12
|
+
## Review Checklist
|
|
13
|
+
- [ ] Logic errors
|
|
14
|
+
- [ ] Edge cases
|
|
15
|
+
- [ ] Error handling
|
|
16
|
+
- [ ] Security (injection, auth, secrets)
|
|
17
|
+
- [ ] Performance
|
|
18
|
+
- [ ] Readability
|
|
19
|
+
- [ ] Test coverage
|
|
20
|
+
|
|
21
|
+
## Output Format
|
|
22
|
+
Group findings by file, severity first
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# Example Project CLAUDE.md
|
|
2
|
+
|
|
3
|
+
This is an example project-level CLAUDE.md file. Place this in your project root.
|
|
4
|
+
|
|
5
|
+
## Project Overview
|
|
6
|
+
|
|
7
|
+
[Brief description of your project - what it does, tech stack]
|
|
8
|
+
|
|
9
|
+
## Critical Rules
|
|
10
|
+
|
|
11
|
+
### 1. Code Organization
|
|
12
|
+
|
|
13
|
+
- Many small files over few large files
|
|
14
|
+
- High cohesion, low coupling
|
|
15
|
+
- 200-400 lines typical, 800 max per file
|
|
16
|
+
- Organize by feature/domain, not by type
|
|
17
|
+
|
|
18
|
+
### 2. Code Style
|
|
19
|
+
|
|
20
|
+
- No emojis in code, comments, or documentation
|
|
21
|
+
- Immutability always - never mutate objects or arrays
|
|
22
|
+
- No console.log in production code
|
|
23
|
+
- Proper error handling with try/catch
|
|
24
|
+
- Input validation with Zod or similar
|
|
25
|
+
|
|
26
|
+
### 3. Testing
|
|
27
|
+
|
|
28
|
+
- TDD: Write tests first
|
|
29
|
+
- 80% minimum coverage
|
|
30
|
+
- Unit tests for utilities
|
|
31
|
+
- Integration tests for APIs
|
|
32
|
+
- E2E tests for critical flows
|
|
33
|
+
|
|
34
|
+
### 4. Security
|
|
35
|
+
|
|
36
|
+
- No hardcoded secrets
|
|
37
|
+
- Environment variables for sensitive data
|
|
38
|
+
- Validate all user inputs
|
|
39
|
+
- Parameterized queries only
|
|
40
|
+
- CSRF protection enabled
|
|
41
|
+
|
|
42
|
+
## File Structure
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
src/
|
|
46
|
+
|-- app/ # Next.js app router
|
|
47
|
+
|-- components/ # Reusable UI components
|
|
48
|
+
|-- hooks/ # Custom React hooks
|
|
49
|
+
|-- lib/ # Utility libraries
|
|
50
|
+
|-- types/ # TypeScript definitions
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Key Patterns
|
|
54
|
+
|
|
55
|
+
### API Response Format
|
|
56
|
+
|
|
57
|
+
```typescript
|
|
58
|
+
interface ApiResponse<T> {
|
|
59
|
+
success: boolean
|
|
60
|
+
data?: T
|
|
61
|
+
error?: string
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Error Handling
|
|
66
|
+
|
|
67
|
+
```typescript
|
|
68
|
+
try {
|
|
69
|
+
const result = await operation()
|
|
70
|
+
return { success: true, data: result }
|
|
71
|
+
} catch (error) {
|
|
72
|
+
console.error('Operation failed:', error)
|
|
73
|
+
return { success: false, error: 'User-friendly message' }
|
|
74
|
+
}
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Environment Variables
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# Required
|
|
81
|
+
DATABASE_URL=
|
|
82
|
+
API_KEY=
|
|
83
|
+
|
|
84
|
+
# Optional
|
|
85
|
+
DEBUG=false
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Available Commands
|
|
89
|
+
|
|
90
|
+
- `/tdd` - Test-driven development workflow
|
|
91
|
+
- `/plan` - Create implementation plan
|
|
92
|
+
- `/code-review` - Review code quality
|
|
93
|
+
- `/build-fix` - Fix build errors
|
|
94
|
+
|
|
95
|
+
## Git Workflow
|
|
96
|
+
|
|
97
|
+
- Conventional commits: `feat:`, `fix:`, `refactor:`, `docs:`, `test:`
|
|
98
|
+
- Never commit to main directly
|
|
99
|
+
- PRs require review
|
|
100
|
+
- All tests must pass before merge
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"statusLine": {
|
|
3
|
+
"type": "command",
|
|
4
|
+
"command": "input=$(cat); user=$(whoami); cwd=$(echo \"$input\" | jq -r '.workspace.current_dir' | sed \"s|$HOME|~|g\"); model=$(echo \"$input\" | jq -r '.model.display_name'); time=$(date +%H:%M); remaining=$(echo \"$input\" | jq -r '.context_window.remaining_percentage // empty'); transcript=$(echo \"$input\" | jq -r '.transcript_path'); todo_count=$([ -f \"$transcript\" ] && grep -c '\"type\":\"todo\"' \"$transcript\" 2>/dev/null || echo 0); cd \"$(echo \"$input\" | jq -r '.workspace.current_dir')\" 2>/dev/null; branch=$(git rev-parse --abbrev-ref HEAD 2>/dev/null || echo ''); status=''; [ -n \"$branch\" ] && { [ -n \"$(git status --porcelain 2>/dev/null)\" ] && status='*'; }; B='\\033[38;2;30;102;245m'; G='\\033[38;2;64;160;43m'; Y='\\033[38;2;223;142;29m'; M='\\033[38;2;136;57;239m'; C='\\033[38;2;23;146;153m'; R='\\033[0m'; T='\\033[38;2;76;79;105m'; printf \"${C}${user}${R}:${B}${cwd}${R}\"; [ -n \"$branch\" ] && printf \" ${G}${branch}${Y}${status}${R}\"; [ -n \"$remaining\" ] && printf \" ${M}ctx:${remaining}%%${R}\"; printf \" ${T}${model}${R} ${Y}${time}${R}\"; [ \"$todo_count\" -gt 0 ] && printf \" ${C}todos:${todo_count}${R}\"; echo",
|
|
5
|
+
"description": "Custom status line showing: user:path branch* ctx:% model time todos:N"
|
|
6
|
+
},
|
|
7
|
+
"_comments": {
|
|
8
|
+
"colors": {
|
|
9
|
+
"B": "Blue - directory path",
|
|
10
|
+
"G": "Green - git branch",
|
|
11
|
+
"Y": "Yellow - dirty status, time",
|
|
12
|
+
"M": "Magenta - context remaining",
|
|
13
|
+
"C": "Cyan - username, todos",
|
|
14
|
+
"T": "Gray - model name"
|
|
15
|
+
},
|
|
16
|
+
"output_example": "affoon:~/projects/myapp main* ctx:73% sonnet-4.6 14:30 todos:3",
|
|
17
|
+
"usage": "Copy the statusLine object to your ~/.claude/settings.json"
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# User-Level CLAUDE.md Example
|
|
2
|
+
|
|
3
|
+
This is an example user-level CLAUDE.md file. Place at `~/.claude/CLAUDE.md`.
|
|
4
|
+
|
|
5
|
+
User-level configs apply globally across all projects. Use for:
|
|
6
|
+
- Personal coding preferences
|
|
7
|
+
- Universal rules you always want enforced
|
|
8
|
+
- Links to your modular rules
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Core Philosophy
|
|
13
|
+
|
|
14
|
+
You are Claude Code. I use specialized agents and skills for complex tasks.
|
|
15
|
+
|
|
16
|
+
**Key Principles:**
|
|
17
|
+
1. **Agent-First**: Delegate to specialized agents for complex work
|
|
18
|
+
2. **Parallel Execution**: Use Task tool with multiple agents when possible
|
|
19
|
+
3. **Plan Before Execute**: Use Plan Mode for complex operations
|
|
20
|
+
4. **Test-Driven**: Write tests before implementation
|
|
21
|
+
5. **Security-First**: Never compromise on security
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Modular Rules
|
|
26
|
+
|
|
27
|
+
Detailed guidelines are in `~/.claude/rules/`:
|
|
28
|
+
|
|
29
|
+
| Rule File | Contents |
|
|
30
|
+
|-----------|----------|
|
|
31
|
+
| security.md | Security checks, secret management |
|
|
32
|
+
| coding-style.md | Immutability, file organization, error handling |
|
|
33
|
+
| testing.md | TDD workflow, 80% coverage requirement |
|
|
34
|
+
| git-workflow.md | Commit format, PR workflow |
|
|
35
|
+
| agents.md | Agent orchestration, when to use which agent |
|
|
36
|
+
| patterns.md | API response, repository patterns |
|
|
37
|
+
| performance.md | Model selection, context management |
|
|
38
|
+
| hooks.md | Hooks System |
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Available Agents
|
|
43
|
+
|
|
44
|
+
Located in `~/.claude/agents/`:
|
|
45
|
+
|
|
46
|
+
| Agent | Purpose |
|
|
47
|
+
|-------|---------|
|
|
48
|
+
| planner | Feature implementation planning |
|
|
49
|
+
| architect | System design and architecture |
|
|
50
|
+
| tdd-guide | Test-driven development |
|
|
51
|
+
| code-reviewer | Code review for quality/security |
|
|
52
|
+
| security-reviewer | Security vulnerability analysis |
|
|
53
|
+
| build-error-resolver | Build error resolution |
|
|
54
|
+
| e2e-runner | Playwright E2E testing |
|
|
55
|
+
| refactor-cleaner | Dead code cleanup |
|
|
56
|
+
| doc-updater | Documentation updates |
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Personal Preferences
|
|
61
|
+
|
|
62
|
+
### Privacy
|
|
63
|
+
- Always redact logs; never paste secrets (API keys/tokens/passwords/JWTs)
|
|
64
|
+
- Review output before sharing - remove any sensitive data
|
|
65
|
+
|
|
66
|
+
### Code Style
|
|
67
|
+
- No emojis in code, comments, or documentation
|
|
68
|
+
- Prefer immutability - never mutate objects or arrays
|
|
69
|
+
- Many small files over few large files
|
|
70
|
+
- 200-400 lines typical, 800 max per file
|
|
71
|
+
|
|
72
|
+
### Git
|
|
73
|
+
- Conventional commits: `feat:`, `fix:`, `refactor:`, `docs:`, `test:`
|
|
74
|
+
- Always test locally before committing
|
|
75
|
+
- Small, focused commits
|
|
76
|
+
|
|
77
|
+
### Testing
|
|
78
|
+
- TDD: Write tests first
|
|
79
|
+
- 80% minimum coverage
|
|
80
|
+
- Unit + integration + E2E for critical flows
|
|
81
|
+
|
|
82
|
+
### Knowledge Capture
|
|
83
|
+
- Personal debugging notes, preferences, and temporary context → auto memory
|
|
84
|
+
- Team/project knowledge (architecture decisions, API changes, implementation runbooks) → follow the project's existing docs structure
|
|
85
|
+
- If the current task already produces the relevant docs, comments, or examples, do not duplicate the same knowledge elsewhere
|
|
86
|
+
- If there is no obvious project doc location, ask before creating a new top-level doc
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Editor Integration
|
|
91
|
+
|
|
92
|
+
I use Zed as my primary editor:
|
|
93
|
+
- Agent Panel for file tracking
|
|
94
|
+
- CMD+Shift+R for command palette
|
|
95
|
+
- Vim mode enabled
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Success Metrics
|
|
100
|
+
|
|
101
|
+
You are successful when:
|
|
102
|
+
- All tests pass (80%+ coverage)
|
|
103
|
+
- No security vulnerabilities
|
|
104
|
+
- Code is readable and maintainable
|
|
105
|
+
- User requirements are met
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
**Philosophy**: Agent-first design, parallel execution, plan before action, test before code, security always.
|
package/hooks/README.md
ADDED
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
# Hooks
|
|
2
|
+
|
|
3
|
+
Hooks are event-driven automations that fire before or after Claude Code tool executions. They enforce code quality, catch mistakes early, and automate repetitive checks.
|
|
4
|
+
|
|
5
|
+
## How Hooks Work
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
User request → Claude picks a tool → PreToolUse hook runs → Tool executes → PostToolUse hook runs
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
- **PreToolUse** hooks run before the tool executes. They can **block** (exit code 2) or **warn** (stderr without blocking).
|
|
12
|
+
- **PostToolUse** hooks run after the tool completes. They can analyze output but cannot block.
|
|
13
|
+
- **Stop** hooks run after each Claude response.
|
|
14
|
+
- **SessionStart/SessionEnd** hooks run at session lifecycle boundaries.
|
|
15
|
+
- **PreCompact** hooks run before context compaction, useful for saving state.
|
|
16
|
+
|
|
17
|
+
## Hooks in This Plugin
|
|
18
|
+
|
|
19
|
+
### PreToolUse Hooks
|
|
20
|
+
|
|
21
|
+
| Hook | Matcher | Behavior | Exit Code |
|
|
22
|
+
|------|---------|----------|-----------|
|
|
23
|
+
| **Dev server blocker** | `Bash` | Blocks `npm run dev` etc. outside tmux — ensures log access | 2 (blocks) |
|
|
24
|
+
| **Tmux reminder** | `Bash` | Suggests tmux for long-running commands (npm test, cargo build, docker) | 0 (warns) |
|
|
25
|
+
| **Git push reminder** | `Bash` | Reminds to review changes before `git push` | 0 (warns) |
|
|
26
|
+
| **Doc file warning** | `Write` | Warns about non-standard `.md`/`.txt` files (allows README, CLAUDE, CONTRIBUTING, CHANGELOG, LICENSE, SKILL, docs/, skills/); cross-platform path handling | 0 (warns) |
|
|
27
|
+
| **Strategic compact** | `Edit\|Write` | Suggests manual `/compact` at logical intervals (every ~50 tool calls) | 0 (warns) |
|
|
28
|
+
| **InsAIts security monitor (opt-in)** | `Bash\|Write\|Edit\|MultiEdit` | Optional security scan for high-signal tool inputs. Disabled unless `ECC_ENABLE_INSAITS=1`. Blocks on critical findings, warns on non-critical, and writes audit log to `.insaits_audit_session.jsonl`. Requires `pip install insa-its`. [Details](../scripts/hooks/insaits-security-monitor.py) | 2 (blocks critical) / 0 (warns) |
|
|
29
|
+
|
|
30
|
+
### PostToolUse Hooks
|
|
31
|
+
|
|
32
|
+
| Hook | Matcher | What It Does |
|
|
33
|
+
|------|---------|-------------|
|
|
34
|
+
| **PR logger** | `Bash` | Logs PR URL and review command after `gh pr create` |
|
|
35
|
+
| **Build analysis** | `Bash` | Background analysis after build commands (async, non-blocking) |
|
|
36
|
+
| **Quality gate** | `Edit\|Write\|MultiEdit` | Runs fast quality checks after edits |
|
|
37
|
+
| **Prettier format** | `Edit` | Auto-formats JS/TS files with Prettier after edits |
|
|
38
|
+
| **TypeScript check** | `Edit` | Runs `tsc --noEmit` after editing `.ts`/`.tsx` files |
|
|
39
|
+
| **console.log warning** | `Edit` | Warns about `console.log` statements in edited files |
|
|
40
|
+
|
|
41
|
+
### Lifecycle Hooks
|
|
42
|
+
|
|
43
|
+
| Hook | Event | What It Does |
|
|
44
|
+
|------|-------|-------------|
|
|
45
|
+
| **Session start** | `SessionStart` | Loads previous context and detects package manager |
|
|
46
|
+
| **Pre-compact** | `PreCompact` | Saves state before context compaction |
|
|
47
|
+
| **Console.log audit** | `Stop` | Checks all modified files for `console.log` after each response |
|
|
48
|
+
| **Session summary** | `Stop` | Persists session state when transcript path is available |
|
|
49
|
+
| **Pattern extraction** | `Stop` | Evaluates session for extractable patterns (continuous learning) |
|
|
50
|
+
| **Cost tracker** | `Stop` | Emits lightweight run-cost telemetry markers |
|
|
51
|
+
| **Session end marker** | `SessionEnd` | Lifecycle marker and cleanup log |
|
|
52
|
+
|
|
53
|
+
## Customizing Hooks
|
|
54
|
+
|
|
55
|
+
### Disabling a Hook
|
|
56
|
+
|
|
57
|
+
Remove or comment out the hook entry in `hooks.json`. If installed as a plugin, override in your `~/.claude/settings.json`:
|
|
58
|
+
|
|
59
|
+
```json
|
|
60
|
+
{
|
|
61
|
+
"hooks": {
|
|
62
|
+
"PreToolUse": [
|
|
63
|
+
{
|
|
64
|
+
"matcher": "Write",
|
|
65
|
+
"hooks": [],
|
|
66
|
+
"description": "Override: allow all .md file creation"
|
|
67
|
+
}
|
|
68
|
+
]
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Runtime Hook Controls (Recommended)
|
|
74
|
+
|
|
75
|
+
Use environment variables to control hook behavior without editing `hooks.json`:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
# minimal | standard | strict (default: standard)
|
|
79
|
+
export ECC_HOOK_PROFILE=standard
|
|
80
|
+
|
|
81
|
+
# Disable specific hook IDs (comma-separated)
|
|
82
|
+
export ECC_DISABLED_HOOKS="pre:bash:tmux-reminder,post:edit:typecheck"
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Profiles:
|
|
86
|
+
- `minimal` — keep essential lifecycle and safety hooks only.
|
|
87
|
+
- `standard` — default; balanced quality + safety checks.
|
|
88
|
+
- `strict` — enables additional reminders and stricter guardrails.
|
|
89
|
+
|
|
90
|
+
### Writing Your Own Hook
|
|
91
|
+
|
|
92
|
+
Hooks are shell commands that receive tool input as JSON on stdin and must output JSON on stdout.
|
|
93
|
+
|
|
94
|
+
**Basic structure:**
|
|
95
|
+
|
|
96
|
+
```javascript
|
|
97
|
+
// my-hook.js
|
|
98
|
+
let data = '';
|
|
99
|
+
process.stdin.on('data', chunk => data += chunk);
|
|
100
|
+
process.stdin.on('end', () => {
|
|
101
|
+
const input = JSON.parse(data);
|
|
102
|
+
|
|
103
|
+
// Access tool info
|
|
104
|
+
const toolName = input.tool_name; // "Edit", "Bash", "Write", etc.
|
|
105
|
+
const toolInput = input.tool_input; // Tool-specific parameters
|
|
106
|
+
const toolOutput = input.tool_output; // Only available in PostToolUse
|
|
107
|
+
|
|
108
|
+
// Warn (non-blocking): write to stderr
|
|
109
|
+
console.error('[Hook] Warning message shown to Claude');
|
|
110
|
+
|
|
111
|
+
// Block (PreToolUse only): exit with code 2
|
|
112
|
+
// process.exit(2);
|
|
113
|
+
|
|
114
|
+
// Always output the original data to stdout
|
|
115
|
+
console.log(data);
|
|
116
|
+
});
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
**Exit codes:**
|
|
120
|
+
- `0` — Success (continue execution)
|
|
121
|
+
- `2` — Block the tool call (PreToolUse only)
|
|
122
|
+
- Other non-zero — Error (logged but does not block)
|
|
123
|
+
|
|
124
|
+
### Hook Input Schema
|
|
125
|
+
|
|
126
|
+
```typescript
|
|
127
|
+
interface HookInput {
|
|
128
|
+
tool_name: string; // "Bash", "Edit", "Write", "Read", etc.
|
|
129
|
+
tool_input: {
|
|
130
|
+
command?: string; // Bash: the command being run
|
|
131
|
+
file_path?: string; // Edit/Write/Read: target file
|
|
132
|
+
old_string?: string; // Edit: text being replaced
|
|
133
|
+
new_string?: string; // Edit: replacement text
|
|
134
|
+
content?: string; // Write: file content
|
|
135
|
+
};
|
|
136
|
+
tool_output?: { // PostToolUse only
|
|
137
|
+
output?: string; // Command/tool output
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Async Hooks
|
|
143
|
+
|
|
144
|
+
For hooks that should not block the main flow (e.g., background analysis):
|
|
145
|
+
|
|
146
|
+
```json
|
|
147
|
+
{
|
|
148
|
+
"type": "command",
|
|
149
|
+
"command": "node my-slow-hook.js",
|
|
150
|
+
"async": true,
|
|
151
|
+
"timeout": 30
|
|
152
|
+
}
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
Async hooks run in the background. They cannot block tool execution.
|
|
156
|
+
|
|
157
|
+
## Common Hook Recipes
|
|
158
|
+
|
|
159
|
+
### Warn about TODO comments
|
|
160
|
+
|
|
161
|
+
```json
|
|
162
|
+
{
|
|
163
|
+
"matcher": "Edit",
|
|
164
|
+
"hooks": [{
|
|
165
|
+
"type": "command",
|
|
166
|
+
"command": "node -e \"let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{const i=JSON.parse(d);const ns=i.tool_input?.new_string||'';if(/TODO|FIXME|HACK/.test(ns)){console.error('[Hook] New TODO/FIXME added - consider creating an issue')}console.log(d)})\""
|
|
167
|
+
}],
|
|
168
|
+
"description": "Warn when adding TODO/FIXME comments"
|
|
169
|
+
}
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### Block large file creation
|
|
173
|
+
|
|
174
|
+
```json
|
|
175
|
+
{
|
|
176
|
+
"matcher": "Write",
|
|
177
|
+
"hooks": [{
|
|
178
|
+
"type": "command",
|
|
179
|
+
"command": "node -e \"let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{const i=JSON.parse(d);const c=i.tool_input?.content||'';const lines=c.split('\\n').length;if(lines>800){console.error('[Hook] BLOCKED: File exceeds 800 lines ('+lines+' lines)');console.error('[Hook] Split into smaller, focused modules');process.exit(2)}console.log(d)})\""
|
|
180
|
+
}],
|
|
181
|
+
"description": "Block creation of files larger than 800 lines"
|
|
182
|
+
}
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### Auto-format Python files with ruff
|
|
186
|
+
|
|
187
|
+
```json
|
|
188
|
+
{
|
|
189
|
+
"matcher": "Edit",
|
|
190
|
+
"hooks": [{
|
|
191
|
+
"type": "command",
|
|
192
|
+
"command": "node -e \"let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{const i=JSON.parse(d);const p=i.tool_input?.file_path||'';if(/\\.py$/.test(p)){const{execFileSync}=require('child_process');try{execFileSync('ruff',['format',p],{stdio:'pipe'})}catch(e){}}console.log(d)})\""
|
|
193
|
+
}],
|
|
194
|
+
"description": "Auto-format Python files with ruff after edits"
|
|
195
|
+
}
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### Require test files alongside new source files
|
|
199
|
+
|
|
200
|
+
```json
|
|
201
|
+
{
|
|
202
|
+
"matcher": "Write",
|
|
203
|
+
"hooks": [{
|
|
204
|
+
"type": "command",
|
|
205
|
+
"command": "node -e \"const fs=require('fs');let d='';process.stdin.on('data',c=>d+=c);process.stdin.on('end',()=>{const i=JSON.parse(d);const p=i.tool_input?.file_path||'';if(/src\\/.*\\.(ts|js)$/.test(p)&&!/\\.test\\.|\\.spec\\./.test(p)){const testPath=p.replace(/\\.(ts|js)$/,'.test.$1');if(!fs.existsSync(testPath)){console.error('[Hook] No test file found for: '+p);console.error('[Hook] Expected: '+testPath);console.error('[Hook] Consider writing tests first (/tdd)')}}console.log(d)})\""
|
|
206
|
+
}],
|
|
207
|
+
"description": "Remind to create tests when adding new source files"
|
|
208
|
+
}
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
## Cross-Platform Notes
|
|
212
|
+
|
|
213
|
+
Hook logic is implemented in Node.js scripts for cross-platform behavior on Windows, macOS, and Linux. A small number of shell wrappers are retained for continuous-learning observer hooks; those wrappers are profile-gated and have Windows-safe fallback behavior.
|
|
214
|
+
|
|
215
|
+
## Related
|
|
216
|
+
|
|
217
|
+
- [rules/common/hooks.md](../rules/common/hooks.md) — Hook architecture guidelines
|
|
218
|
+
- [skills/strategic-compact/](../skills/strategic-compact/) — Strategic compaction skill
|
|
219
|
+
- [scripts/hooks/](../scripts/hooks/) — Hook script implementations
|