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
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Harness Audit Command
|
|
2
|
+
|
|
3
|
+
Run a deterministic repository harness audit and return a prioritized scorecard.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
`/harness-audit [scope] [--format text|json]`
|
|
8
|
+
|
|
9
|
+
- `scope` (optional): `repo` (default), `hooks`, `skills`, `commands`, `agents`
|
|
10
|
+
- `--format`: output style (`text` default, `json` for automation)
|
|
11
|
+
|
|
12
|
+
## Deterministic Engine
|
|
13
|
+
|
|
14
|
+
Always run:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
node scripts/harness-audit.js <scope> --format <text|json>
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
This script is the source of truth for scoring and checks. Do not invent additional dimensions or ad-hoc points.
|
|
21
|
+
|
|
22
|
+
Rubric version: `2026-03-16`.
|
|
23
|
+
|
|
24
|
+
The script computes 7 fixed categories (`0-10` normalized each):
|
|
25
|
+
|
|
26
|
+
1. Tool Coverage
|
|
27
|
+
2. Context Efficiency
|
|
28
|
+
3. Quality Gates
|
|
29
|
+
4. Memory Persistence
|
|
30
|
+
5. Eval Coverage
|
|
31
|
+
6. Security Guardrails
|
|
32
|
+
7. Cost Efficiency
|
|
33
|
+
|
|
34
|
+
Scores are derived from explicit file/rule checks and are reproducible for the same commit.
|
|
35
|
+
|
|
36
|
+
## Output Contract
|
|
37
|
+
|
|
38
|
+
Return:
|
|
39
|
+
|
|
40
|
+
1. `overall_score` out of `max_score` (70 for `repo`; smaller for scoped audits)
|
|
41
|
+
2. Category scores and concrete findings
|
|
42
|
+
3. Failed checks with exact file paths
|
|
43
|
+
4. Top 3 actions from the deterministic output (`top_actions`)
|
|
44
|
+
5. Suggested ECC skills to apply next
|
|
45
|
+
|
|
46
|
+
## Checklist
|
|
47
|
+
|
|
48
|
+
- Use script output directly; do not rescore manually.
|
|
49
|
+
- If `--format json` is requested, return the script JSON unchanged.
|
|
50
|
+
- If text is requested, summarize failing checks and top actions.
|
|
51
|
+
- Include exact file paths from `checks[]` and `top_actions[]`.
|
|
52
|
+
|
|
53
|
+
## Example Result
|
|
54
|
+
|
|
55
|
+
```text
|
|
56
|
+
Harness Audit (repo): 66/70
|
|
57
|
+
- Tool Coverage: 10/10 (10/10 pts)
|
|
58
|
+
- Context Efficiency: 9/10 (9/10 pts)
|
|
59
|
+
- Quality Gates: 10/10 (10/10 pts)
|
|
60
|
+
|
|
61
|
+
Top 3 Actions:
|
|
62
|
+
1) [Security Guardrails] Add prompt/tool preflight security guards in hooks/hooks.json. (hooks/hooks.json)
|
|
63
|
+
2) [Tool Coverage] Sync commands/harness-audit.md and .opencode/commands/harness-audit.md. (.opencode/commands/harness-audit.md)
|
|
64
|
+
3) [Eval Coverage] Increase automated test coverage across scripts/hooks/lib. (tests/)
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Arguments
|
|
68
|
+
|
|
69
|
+
$ARGUMENTS:
|
|
70
|
+
- `repo|hooks|skills|commands|agents` (optional scope)
|
|
71
|
+
- `--format text|json` (optional output format)
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: instinct-export
|
|
3
|
+
description: Export instincts from project/global scope to a file
|
|
4
|
+
command: /instinct-export
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Instinct Export Command
|
|
8
|
+
|
|
9
|
+
Exports instincts to a shareable format. Perfect for:
|
|
10
|
+
- Sharing with teammates
|
|
11
|
+
- Transferring to a new machine
|
|
12
|
+
- Contributing to project conventions
|
|
13
|
+
|
|
14
|
+
## Usage
|
|
15
|
+
|
|
16
|
+
```
|
|
17
|
+
/instinct-export # Export all personal instincts
|
|
18
|
+
/instinct-export --domain testing # Export only testing instincts
|
|
19
|
+
/instinct-export --min-confidence 0.7 # Only export high-confidence instincts
|
|
20
|
+
/instinct-export --output team-instincts.yaml
|
|
21
|
+
/instinct-export --scope project --output project-instincts.yaml
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## What to Do
|
|
25
|
+
|
|
26
|
+
1. Detect current project context
|
|
27
|
+
2. Load instincts by selected scope:
|
|
28
|
+
- `project`: current project only
|
|
29
|
+
- `global`: global only
|
|
30
|
+
- `all`: project + global merged (default)
|
|
31
|
+
3. Apply filters (`--domain`, `--min-confidence`)
|
|
32
|
+
4. Write YAML-style export to file (or stdout if no output path provided)
|
|
33
|
+
|
|
34
|
+
## Output Format
|
|
35
|
+
|
|
36
|
+
Creates a YAML file:
|
|
37
|
+
|
|
38
|
+
```yaml
|
|
39
|
+
# Instincts Export
|
|
40
|
+
# Generated: 2025-01-22
|
|
41
|
+
# Source: personal
|
|
42
|
+
# Count: 12 instincts
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
id: prefer-functional-style
|
|
46
|
+
trigger: "when writing new functions"
|
|
47
|
+
confidence: 0.8
|
|
48
|
+
domain: code-style
|
|
49
|
+
source: session-observation
|
|
50
|
+
scope: project
|
|
51
|
+
project_id: a1b2c3d4e5f6
|
|
52
|
+
project_name: my-app
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
# Prefer Functional Style
|
|
56
|
+
|
|
57
|
+
## Action
|
|
58
|
+
Use functional patterns over classes.
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Flags
|
|
62
|
+
|
|
63
|
+
- `--domain <name>`: Export only specified domain
|
|
64
|
+
- `--min-confidence <n>`: Minimum confidence threshold
|
|
65
|
+
- `--output <file>`: Output file path (prints to stdout when omitted)
|
|
66
|
+
- `--scope <project|global|all>`: Export scope (default: `all`)
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: instinct-import
|
|
3
|
+
description: Import instincts from file or URL into project/global scope
|
|
4
|
+
command: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Instinct Import Command
|
|
8
|
+
|
|
9
|
+
## Implementation
|
|
10
|
+
|
|
11
|
+
Run the instinct CLI using the plugin root path:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
python3 "${CLAUDE_PLUGIN_ROOT}/skills/continuous-learning-v2/scripts/instinct-cli.py" import <file-or-url> [--dry-run] [--force] [--min-confidence 0.7] [--scope project|global]
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Or if `CLAUDE_PLUGIN_ROOT` is not set (manual installation):
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
python3 ~/.claude/skills/continuous-learning-v2/scripts/instinct-cli.py import <file-or-url>
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Import instincts from local file paths or HTTP(S) URLs.
|
|
24
|
+
|
|
25
|
+
## Usage
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
/instinct-import team-instincts.yaml
|
|
29
|
+
/instinct-import https://github.com/org/repo/instincts.yaml
|
|
30
|
+
/instinct-import team-instincts.yaml --dry-run
|
|
31
|
+
/instinct-import team-instincts.yaml --scope global --force
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## What to Do
|
|
35
|
+
|
|
36
|
+
1. Fetch the instinct file (local path or URL)
|
|
37
|
+
2. Parse and validate the format
|
|
38
|
+
3. Check for duplicates with existing instincts
|
|
39
|
+
4. Merge or add new instincts
|
|
40
|
+
5. Save to inherited instincts directory:
|
|
41
|
+
- Project scope: `~/.claude/homunculus/projects/<project-id>/instincts/inherited/`
|
|
42
|
+
- Global scope: `~/.claude/homunculus/instincts/inherited/`
|
|
43
|
+
|
|
44
|
+
## Import Process
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
📥 Importing instincts from: team-instincts.yaml
|
|
48
|
+
================================================
|
|
49
|
+
|
|
50
|
+
Found 12 instincts to import.
|
|
51
|
+
|
|
52
|
+
Analyzing conflicts...
|
|
53
|
+
|
|
54
|
+
## New Instincts (8)
|
|
55
|
+
These will be added:
|
|
56
|
+
✓ use-zod-validation (confidence: 0.7)
|
|
57
|
+
✓ prefer-named-exports (confidence: 0.65)
|
|
58
|
+
✓ test-async-functions (confidence: 0.8)
|
|
59
|
+
...
|
|
60
|
+
|
|
61
|
+
## Duplicate Instincts (3)
|
|
62
|
+
Already have similar instincts:
|
|
63
|
+
⚠️ prefer-functional-style
|
|
64
|
+
Local: 0.8 confidence, 12 observations
|
|
65
|
+
Import: 0.7 confidence
|
|
66
|
+
→ Keep local (higher confidence)
|
|
67
|
+
|
|
68
|
+
⚠️ test-first-workflow
|
|
69
|
+
Local: 0.75 confidence
|
|
70
|
+
Import: 0.9 confidence
|
|
71
|
+
→ Update to import (higher confidence)
|
|
72
|
+
|
|
73
|
+
Import 8 new, update 1?
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Merge Behavior
|
|
77
|
+
|
|
78
|
+
When importing an instinct with an existing ID:
|
|
79
|
+
- Higher-confidence import becomes an update candidate
|
|
80
|
+
- Equal/lower-confidence import is skipped
|
|
81
|
+
- User confirms unless `--force` is used
|
|
82
|
+
|
|
83
|
+
## Source Tracking
|
|
84
|
+
|
|
85
|
+
Imported instincts are marked with:
|
|
86
|
+
```yaml
|
|
87
|
+
source: inherited
|
|
88
|
+
scope: project
|
|
89
|
+
imported_from: "team-instincts.yaml"
|
|
90
|
+
project_id: "a1b2c3d4e5f6"
|
|
91
|
+
project_name: "my-project"
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Flags
|
|
95
|
+
|
|
96
|
+
- `--dry-run`: Preview without importing
|
|
97
|
+
- `--force`: Skip confirmation prompt
|
|
98
|
+
- `--min-confidence <n>`: Only import instincts above threshold
|
|
99
|
+
- `--scope <project|global>`: Select target scope (default: `project`)
|
|
100
|
+
|
|
101
|
+
## Output
|
|
102
|
+
|
|
103
|
+
After import:
|
|
104
|
+
```
|
|
105
|
+
✅ Import complete!
|
|
106
|
+
|
|
107
|
+
Added: 8 instincts
|
|
108
|
+
Updated: 1 instinct
|
|
109
|
+
Skipped: 3 instincts (equal/higher confidence already exists)
|
|
110
|
+
|
|
111
|
+
New instincts saved to: ~/.claude/homunculus/instincts/inherited/
|
|
112
|
+
|
|
113
|
+
Run /aw:instinct-status to see all instincts.
|
|
114
|
+
```
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: instinct-status
|
|
3
|
+
description: Show learned instincts (project + global) with confidence
|
|
4
|
+
command: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Instinct Status Command
|
|
8
|
+
|
|
9
|
+
Shows learned instincts for the current project plus global instincts, grouped by domain.
|
|
10
|
+
|
|
11
|
+
## Implementation
|
|
12
|
+
|
|
13
|
+
Run the instinct CLI using the plugin root path:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
python3 "${CLAUDE_PLUGIN_ROOT}/skills/continuous-learning-v2/scripts/instinct-cli.py" status
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Or if `CLAUDE_PLUGIN_ROOT` is not set (manual installation), use:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
python3 ~/.claude/skills/continuous-learning-v2/scripts/instinct-cli.py status
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Usage
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
/instinct-status
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## What to Do
|
|
32
|
+
|
|
33
|
+
1. Detect current project context (git remote/path hash)
|
|
34
|
+
2. Read project instincts from `~/.claude/homunculus/projects/<project-id>/instincts/`
|
|
35
|
+
3. Read global instincts from `~/.claude/homunculus/instincts/`
|
|
36
|
+
4. Merge with precedence rules (project overrides global when IDs collide)
|
|
37
|
+
5. Display grouped by domain with confidence bars and observation stats
|
|
38
|
+
|
|
39
|
+
## Output Format
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
============================================================
|
|
43
|
+
INSTINCT STATUS - 12 total
|
|
44
|
+
============================================================
|
|
45
|
+
|
|
46
|
+
Project: my-app (a1b2c3d4e5f6)
|
|
47
|
+
Project instincts: 8
|
|
48
|
+
Global instincts: 4
|
|
49
|
+
|
|
50
|
+
## PROJECT-SCOPED (my-app)
|
|
51
|
+
### WORKFLOW (3)
|
|
52
|
+
███████░░░ 70% grep-before-edit [project]
|
|
53
|
+
trigger: when modifying code
|
|
54
|
+
|
|
55
|
+
## GLOBAL (apply to all projects)
|
|
56
|
+
### SECURITY (2)
|
|
57
|
+
█████████░ 85% validate-user-input [global]
|
|
58
|
+
trigger: when handling user input
|
|
59
|
+
```
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: aw:investigate
|
|
3
|
+
description: Reproduce, localize, and confirm bugs, alerts, and failing behavior before broad fixes are attempted.
|
|
4
|
+
argument-hint: "<bug, alert, failing behavior, log signal, or incident scope>"
|
|
5
|
+
status: active
|
|
6
|
+
stage: investigate
|
|
7
|
+
internal_skill: aw-investigate
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Investigate
|
|
11
|
+
|
|
12
|
+
Use `/aw:investigate` when the problem is real but the cause is not yet clear.
|
|
13
|
+
|
|
14
|
+
## Role
|
|
15
|
+
|
|
16
|
+
Turn vague breakage into a concrete reproduction, localized fault surface, and next-action recommendation.
|
|
17
|
+
|
|
18
|
+
## Modes
|
|
19
|
+
|
|
20
|
+
| Mode | Use when | Primary outputs |
|
|
21
|
+
|---|---|---|
|
|
22
|
+
| `bug` | product behavior is wrong | `investigation.md`, `state.json`, repro and fault-surface notes |
|
|
23
|
+
| `alert` | monitoring or runtime alert fired | `investigation.md`, `state.json`, signal triage and likely cause |
|
|
24
|
+
| `regression` | a previously working flow broke | `investigation.md`, `state.json`, diff and regression notes |
|
|
25
|
+
| `incident` | failure may span services or environments | `investigation.md`, `state.json`, scoped blast-radius and next probes |
|
|
26
|
+
|
|
27
|
+
## Outputs
|
|
28
|
+
|
|
29
|
+
- `.aw_docs/features/<feature_slug>/investigation.md`
|
|
30
|
+
- updated `.aw_docs/features/<feature_slug>/state.json`
|
|
31
|
+
- reproduction, expected-vs-actual, hypothesis, and next probe or build handoff
|
|
32
|
+
|
|
33
|
+
## Investigation Rules
|
|
34
|
+
|
|
35
|
+
1. Reproduce first.
|
|
36
|
+
2. Capture expected vs actual behavior.
|
|
37
|
+
3. Use the smallest confirming probe before patching.
|
|
38
|
+
4. Load org-standard observability and platform playbooks when the baseline requires them.
|
|
39
|
+
5. For frontend issues, include runtime and responsive evidence when relevant.
|
|
40
|
+
6. Name the exact next probe or next command before stopping.
|
|
41
|
+
7. Do not broaden into implementation until the fault surface is concrete enough.
|
|
42
|
+
|
|
43
|
+
## Must Not Do
|
|
44
|
+
|
|
45
|
+
- must not guess through an unclear root cause
|
|
46
|
+
- must not stack speculative fixes without new evidence
|
|
47
|
+
- must not claim a fix without handing off to `/aw:build` or proving it directly
|
|
48
|
+
|
|
49
|
+
## Recommended Next Commands
|
|
50
|
+
|
|
51
|
+
- `/aw:build`
|
|
52
|
+
- `/aw:test`
|
|
53
|
+
|
|
54
|
+
## Final Output Shape
|
|
55
|
+
|
|
56
|
+
Always end with:
|
|
57
|
+
|
|
58
|
+
- `Mode`
|
|
59
|
+
- `Reproduction`
|
|
60
|
+
- `Expected vs Actual`
|
|
61
|
+
- `Evidence`
|
|
62
|
+
- `Likely Fault Surface`
|
|
63
|
+
- `Next`
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Fix Kotlin/Gradle build errors, compiler warnings, and dependency issues incrementally. Invokes the kotlin-build-resolver agent for minimal, surgical fixes.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Kotlin Build and Fix
|
|
6
|
+
|
|
7
|
+
This command invokes the **kotlin-build-resolver** agent to incrementally fix Kotlin build errors with minimal changes.
|
|
8
|
+
|
|
9
|
+
## What This Command Does
|
|
10
|
+
|
|
11
|
+
1. **Run Diagnostics**: Execute `./gradlew build`, `detekt`, `ktlintCheck`
|
|
12
|
+
2. **Parse Errors**: Group by file and sort by severity
|
|
13
|
+
3. **Fix Incrementally**: One error at a time
|
|
14
|
+
4. **Verify Each Fix**: Re-run build after each change
|
|
15
|
+
5. **Report Summary**: Show what was fixed and what remains
|
|
16
|
+
|
|
17
|
+
## When to Use
|
|
18
|
+
|
|
19
|
+
Use `/aw:kotlin-build` when:
|
|
20
|
+
- `./gradlew build` fails with errors
|
|
21
|
+
- Kotlin compiler reports errors
|
|
22
|
+
- `./gradlew detekt` reports violations
|
|
23
|
+
- Gradle dependency resolution fails
|
|
24
|
+
- After pulling changes that break the build
|
|
25
|
+
|
|
26
|
+
## Diagnostic Commands Run
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
# Primary build check
|
|
30
|
+
./gradlew build 2>&1
|
|
31
|
+
|
|
32
|
+
# Static analysis
|
|
33
|
+
./gradlew detekt 2>&1 || echo "detekt not configured"
|
|
34
|
+
./gradlew ktlintCheck 2>&1 || echo "ktlint not configured"
|
|
35
|
+
|
|
36
|
+
# Dependency issues
|
|
37
|
+
./gradlew dependencies --configuration runtimeClasspath 2>&1 | head -100
|
|
38
|
+
|
|
39
|
+
# Optional deep refresh when caches or dependency metadata are suspect
|
|
40
|
+
./gradlew build --refresh-dependencies
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Example Session
|
|
44
|
+
|
|
45
|
+
````text
|
|
46
|
+
User: /aw:kotlin-build
|
|
47
|
+
|
|
48
|
+
Agent:
|
|
49
|
+
# Kotlin Build Resolution
|
|
50
|
+
|
|
51
|
+
## Initial Diagnostics
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
$ ./gradlew build
|
|
55
|
+
e: src/main/kotlin/com/example/service/UserService.kt:25:15 Unresolved reference: UserRepository
|
|
56
|
+
e: src/main/kotlin/com/example/routes/UserRoutes.kt:42:9 Type mismatch: inferred type is String but Int was expected
|
|
57
|
+
e: src/main/kotlin/com/example/routes/UserRoutes.kt:58:5 'when' expression must be exhaustive
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Errors found: 3
|
|
61
|
+
|
|
62
|
+
## Fix 1: Unresolved Reference
|
|
63
|
+
|
|
64
|
+
File: src/main/kotlin/com/example/service/UserService.kt:25
|
|
65
|
+
Error: Unresolved reference: UserRepository
|
|
66
|
+
Cause: Missing import
|
|
67
|
+
|
|
68
|
+
```kotlin
|
|
69
|
+
// Added import
|
|
70
|
+
import com.example.repository.UserRepository
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
$ ./gradlew build
|
|
75
|
+
# 2 errors remaining
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Fix 2: Type Mismatch
|
|
79
|
+
|
|
80
|
+
File: src/main/kotlin/com/example/routes/UserRoutes.kt:42
|
|
81
|
+
Error: Type mismatch: inferred type is String but Int was expected
|
|
82
|
+
|
|
83
|
+
```kotlin
|
|
84
|
+
// Changed
|
|
85
|
+
val count = call.parameters["count"]
|
|
86
|
+
// To
|
|
87
|
+
val count = call.parameters["count"]?.toIntOrNull()
|
|
88
|
+
?: return@get call.respond(HttpStatusCode.BadRequest, "Invalid count")
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
$ ./gradlew build
|
|
93
|
+
# 1 error remaining
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Fix 3: Non-Exhaustive When
|
|
97
|
+
|
|
98
|
+
File: src/main/kotlin/com/example/routes/UserRoutes.kt:58
|
|
99
|
+
Error: 'when' expression must be exhaustive
|
|
100
|
+
|
|
101
|
+
```kotlin
|
|
102
|
+
// Added missing branch
|
|
103
|
+
when (user.role) {
|
|
104
|
+
Role.ADMIN -> handleAdmin(user)
|
|
105
|
+
Role.USER -> handleUser(user)
|
|
106
|
+
Role.MODERATOR -> handleModerator(user) // Added
|
|
107
|
+
}
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
$ ./gradlew build
|
|
112
|
+
# Build successful!
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Final Verification
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
$ ./gradlew detekt
|
|
119
|
+
# No issues
|
|
120
|
+
|
|
121
|
+
$ ./gradlew test
|
|
122
|
+
# All tests passed
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## Summary
|
|
126
|
+
|
|
127
|
+
| Metric | Count |
|
|
128
|
+
|--------|-------|
|
|
129
|
+
| Build errors fixed | 3 |
|
|
130
|
+
| Detekt issues fixed | 0 |
|
|
131
|
+
| Files modified | 2 |
|
|
132
|
+
| Remaining issues | 0 |
|
|
133
|
+
|
|
134
|
+
Build Status: ✅ SUCCESS
|
|
135
|
+
````
|
|
136
|
+
|
|
137
|
+
## Common Errors Fixed
|
|
138
|
+
|
|
139
|
+
| Error | Typical Fix |
|
|
140
|
+
|-------|-------------|
|
|
141
|
+
| `Unresolved reference: X` | Add import or dependency |
|
|
142
|
+
| `Type mismatch` | Fix type conversion or assignment |
|
|
143
|
+
| `'when' must be exhaustive` | Add missing sealed class branches |
|
|
144
|
+
| `Suspend function can only be called from coroutine` | Add `suspend` modifier |
|
|
145
|
+
| `Smart cast impossible` | Use local `val` or `let` |
|
|
146
|
+
| `None of the following candidates is applicable` | Fix argument types |
|
|
147
|
+
| `Could not resolve dependency` | Fix version or add repository |
|
|
148
|
+
|
|
149
|
+
## Fix Strategy
|
|
150
|
+
|
|
151
|
+
1. **Build errors first** - Code must compile
|
|
152
|
+
2. **Detekt violations second** - Fix code quality issues
|
|
153
|
+
3. **ktlint warnings third** - Fix formatting
|
|
154
|
+
4. **One fix at a time** - Verify each change
|
|
155
|
+
5. **Minimal changes** - Don't refactor, just fix
|
|
156
|
+
|
|
157
|
+
## Stop Conditions
|
|
158
|
+
|
|
159
|
+
The agent will stop and report if:
|
|
160
|
+
- Same error persists after 3 attempts
|
|
161
|
+
- Fix introduces more errors
|
|
162
|
+
- Requires architectural changes
|
|
163
|
+
- Missing external dependencies
|
|
164
|
+
|
|
165
|
+
## Related Commands
|
|
166
|
+
|
|
167
|
+
- `/aw:kotlin-test` - Run tests after build succeeds
|
|
168
|
+
- `/aw:kotlin-review` - Review code quality
|
|
169
|
+
- `/aw:test` - Run targeted QA and proof
|
|
170
|
+
- `/aw:review` - Run readiness and findings review
|
|
171
|
+
|
|
172
|
+
## Related
|
|
173
|
+
|
|
174
|
+
- Agent: `agents/kotlin-build-resolver.md`
|
|
175
|
+
- Skill: `skills/kotlin-patterns/`
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Comprehensive Kotlin code review for idiomatic patterns, null safety, coroutine safety, and security. Invokes the kotlin-reviewer agent.
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Kotlin Code Review
|
|
6
|
+
|
|
7
|
+
This command invokes the **kotlin-reviewer** agent for comprehensive Kotlin-specific code review.
|
|
8
|
+
|
|
9
|
+
## What This Command Does
|
|
10
|
+
|
|
11
|
+
1. **Identify Kotlin Changes**: Find modified `.kt` and `.kts` files via `git diff`
|
|
12
|
+
2. **Run Build & Static Analysis**: Execute `./gradlew build`, `detekt`, `ktlintCheck`
|
|
13
|
+
3. **Security Scan**: Check for SQL injection, command injection, hardcoded secrets
|
|
14
|
+
4. **Null Safety Review**: Analyze `!!` usage, platform type handling, unsafe casts
|
|
15
|
+
5. **Coroutine Review**: Check structured concurrency, dispatcher usage, cancellation
|
|
16
|
+
6. **Generate Report**: Categorize issues by severity
|
|
17
|
+
|
|
18
|
+
## When to Use
|
|
19
|
+
|
|
20
|
+
Use `/aw:kotlin-review` when:
|
|
21
|
+
- After writing or modifying Kotlin code
|
|
22
|
+
- Before committing Kotlin changes
|
|
23
|
+
- Reviewing pull requests with Kotlin code
|
|
24
|
+
- Onboarding to a new Kotlin codebase
|
|
25
|
+
- Learning idiomatic Kotlin patterns
|
|
26
|
+
|
|
27
|
+
## Review Categories
|
|
28
|
+
|
|
29
|
+
### CRITICAL (Must Fix)
|
|
30
|
+
- SQL/Command injection vulnerabilities
|
|
31
|
+
- Force-unwrap `!!` without justification
|
|
32
|
+
- Platform type null safety violations
|
|
33
|
+
- GlobalScope usage (structured concurrency violation)
|
|
34
|
+
- Hardcoded credentials
|
|
35
|
+
- Unsafe deserialization
|
|
36
|
+
|
|
37
|
+
### HIGH (Should Fix)
|
|
38
|
+
- Mutable state where immutable suffices
|
|
39
|
+
- Blocking calls inside coroutine context
|
|
40
|
+
- Missing cancellation checks in long loops
|
|
41
|
+
- Non-exhaustive `when` on sealed types
|
|
42
|
+
- Large functions (>50 lines)
|
|
43
|
+
- Deep nesting (>4 levels)
|
|
44
|
+
|
|
45
|
+
### MEDIUM (Consider)
|
|
46
|
+
- Non-idiomatic Kotlin (Java-style patterns)
|
|
47
|
+
- Missing trailing commas
|
|
48
|
+
- Scope function misuse or nesting
|
|
49
|
+
- Missing sequence for large collection chains
|
|
50
|
+
- Redundant explicit types
|
|
51
|
+
|
|
52
|
+
## Automated Checks Run
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
# Build check
|
|
56
|
+
./gradlew build
|
|
57
|
+
|
|
58
|
+
# Static analysis
|
|
59
|
+
./gradlew detekt
|
|
60
|
+
|
|
61
|
+
# Formatting check
|
|
62
|
+
./gradlew ktlintCheck
|
|
63
|
+
|
|
64
|
+
# Tests
|
|
65
|
+
./gradlew test
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Example Usage
|
|
69
|
+
|
|
70
|
+
````text
|
|
71
|
+
User: /aw:kotlin-review
|
|
72
|
+
|
|
73
|
+
Agent:
|
|
74
|
+
# Kotlin Code Review Report
|
|
75
|
+
|
|
76
|
+
## Files Reviewed
|
|
77
|
+
- src/main/kotlin/com/example/service/UserService.kt (modified)
|
|
78
|
+
- src/main/kotlin/com/example/routes/UserRoutes.kt (modified)
|
|
79
|
+
|
|
80
|
+
## Static Analysis Results
|
|
81
|
+
✓ Build: Successful
|
|
82
|
+
✓ detekt: No issues
|
|
83
|
+
⚠ ktlint: 2 formatting warnings
|
|
84
|
+
|
|
85
|
+
## Issues Found
|
|
86
|
+
|
|
87
|
+
[CRITICAL] Force-Unwrap Null Safety
|
|
88
|
+
File: src/main/kotlin/com/example/service/UserService.kt:28
|
|
89
|
+
Issue: Using !! on nullable repository result
|
|
90
|
+
```kotlin
|
|
91
|
+
val user = repository.findById(id)!! // NPE risk
|
|
92
|
+
```
|
|
93
|
+
Fix: Use safe call with error handling
|
|
94
|
+
```kotlin
|
|
95
|
+
val user = repository.findById(id)
|
|
96
|
+
?: throw UserNotFoundException("User $id not found")
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
[HIGH] GlobalScope Usage
|
|
100
|
+
File: src/main/kotlin/com/example/routes/UserRoutes.kt:45
|
|
101
|
+
Issue: Using GlobalScope breaks structured concurrency
|
|
102
|
+
```kotlin
|
|
103
|
+
GlobalScope.launch {
|
|
104
|
+
notificationService.sendWelcome(user)
|
|
105
|
+
}
|
|
106
|
+
```
|
|
107
|
+
Fix: Use the call's coroutine scope
|
|
108
|
+
```kotlin
|
|
109
|
+
launch {
|
|
110
|
+
notificationService.sendWelcome(user)
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## Summary
|
|
115
|
+
- CRITICAL: 1
|
|
116
|
+
- HIGH: 1
|
|
117
|
+
- MEDIUM: 0
|
|
118
|
+
|
|
119
|
+
Recommendation: ❌ Block merge until CRITICAL issue is fixed
|
|
120
|
+
````
|
|
121
|
+
|
|
122
|
+
## Approval Criteria
|
|
123
|
+
|
|
124
|
+
| Status | Condition |
|
|
125
|
+
|--------|-----------|
|
|
126
|
+
| ✅ Approve | No CRITICAL or HIGH issues |
|
|
127
|
+
| ⚠️ Warning | Only MEDIUM issues (merge with caution) |
|
|
128
|
+
| ❌ Block | CRITICAL or HIGH issues found |
|
|
129
|
+
|
|
130
|
+
## Integration with Other Commands
|
|
131
|
+
|
|
132
|
+
- Use `/aw:kotlin-test` first to ensure tests pass
|
|
133
|
+
- Use `/aw:kotlin-build` if build errors occur
|
|
134
|
+
- Use `/aw:kotlin-review` before committing
|
|
135
|
+
- Use `/aw:code-review` for non-Kotlin-specific concerns
|
|
136
|
+
|
|
137
|
+
## Related
|
|
138
|
+
|
|
139
|
+
- Agent: `agents/kotlin-reviewer.md`
|
|
140
|
+
- Skills: `skills/kotlin-patterns/`, `skills/kotlin-testing/`
|