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,81 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Update codemaps for codebase navigation
|
|
3
|
+
agent: doc-updater
|
|
4
|
+
subtask: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Update Codemaps Command
|
|
8
|
+
|
|
9
|
+
Update codemaps to reflect current codebase structure: $ARGUMENTS
|
|
10
|
+
|
|
11
|
+
## Your Task
|
|
12
|
+
|
|
13
|
+
Generate or update codemaps in `docs/CODEMAPS/` directory:
|
|
14
|
+
|
|
15
|
+
1. **Analyze codebase structure**
|
|
16
|
+
2. **Generate component maps**
|
|
17
|
+
3. **Document relationships**
|
|
18
|
+
4. **Update navigation guides**
|
|
19
|
+
|
|
20
|
+
## Codemap Types
|
|
21
|
+
|
|
22
|
+
### Architecture Map
|
|
23
|
+
```
|
|
24
|
+
docs/CODEMAPS/ARCHITECTURE.md
|
|
25
|
+
```
|
|
26
|
+
- High-level system overview
|
|
27
|
+
- Component relationships
|
|
28
|
+
- Data flow diagrams
|
|
29
|
+
|
|
30
|
+
### Module Map
|
|
31
|
+
```
|
|
32
|
+
docs/CODEMAPS/MODULES.md
|
|
33
|
+
```
|
|
34
|
+
- Module descriptions
|
|
35
|
+
- Public APIs
|
|
36
|
+
- Dependencies
|
|
37
|
+
|
|
38
|
+
### File Map
|
|
39
|
+
```
|
|
40
|
+
docs/CODEMAPS/FILES.md
|
|
41
|
+
```
|
|
42
|
+
- Directory structure
|
|
43
|
+
- File purposes
|
|
44
|
+
- Key files
|
|
45
|
+
|
|
46
|
+
## Codemap Format
|
|
47
|
+
|
|
48
|
+
### [Module Name]
|
|
49
|
+
|
|
50
|
+
**Purpose**: [Brief description]
|
|
51
|
+
|
|
52
|
+
**Location**: `src/[path]/`
|
|
53
|
+
|
|
54
|
+
**Key Files**:
|
|
55
|
+
- `file1.ts` - [purpose]
|
|
56
|
+
- `file2.ts` - [purpose]
|
|
57
|
+
|
|
58
|
+
**Dependencies**:
|
|
59
|
+
- [Module A]
|
|
60
|
+
- [Module B]
|
|
61
|
+
|
|
62
|
+
**Exports**:
|
|
63
|
+
- `functionName()` - [description]
|
|
64
|
+
- `ClassName` - [description]
|
|
65
|
+
|
|
66
|
+
**Usage Example**:
|
|
67
|
+
```typescript
|
|
68
|
+
import { functionName } from '@/module'
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Generation Process
|
|
72
|
+
|
|
73
|
+
1. Scan directory structure
|
|
74
|
+
2. Parse imports/exports
|
|
75
|
+
3. Build dependency graph
|
|
76
|
+
4. Generate markdown maps
|
|
77
|
+
5. Validate links
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
**TIP**: Keep codemaps updated when adding new modules or significant refactoring.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Update documentation for recent changes
|
|
3
|
+
agent: doc-updater
|
|
4
|
+
subtask: true
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Update Docs Command
|
|
8
|
+
|
|
9
|
+
Update documentation to reflect recent changes: $ARGUMENTS
|
|
10
|
+
|
|
11
|
+
## Your Task
|
|
12
|
+
|
|
13
|
+
1. **Identify changed code** - `git diff --name-only`
|
|
14
|
+
2. **Find related docs** - README, API docs, guides
|
|
15
|
+
3. **Update documentation** - Keep in sync with code
|
|
16
|
+
4. **Verify accuracy** - Docs match implementation
|
|
17
|
+
|
|
18
|
+
## Documentation Types
|
|
19
|
+
|
|
20
|
+
### README.md
|
|
21
|
+
- Installation instructions
|
|
22
|
+
- Quick start guide
|
|
23
|
+
- Feature overview
|
|
24
|
+
- Configuration options
|
|
25
|
+
|
|
26
|
+
### API Documentation
|
|
27
|
+
- Endpoint descriptions
|
|
28
|
+
- Request/response formats
|
|
29
|
+
- Authentication details
|
|
30
|
+
- Error codes
|
|
31
|
+
|
|
32
|
+
### Code Comments
|
|
33
|
+
- JSDoc for public APIs
|
|
34
|
+
- Complex logic explanations
|
|
35
|
+
- TODO/FIXME cleanup
|
|
36
|
+
|
|
37
|
+
### Guides
|
|
38
|
+
- How-to tutorials
|
|
39
|
+
- Architecture decisions (ADRs)
|
|
40
|
+
- Troubleshooting guides
|
|
41
|
+
|
|
42
|
+
## Update Checklist
|
|
43
|
+
|
|
44
|
+
- [ ] README reflects current features
|
|
45
|
+
- [ ] API docs match endpoints
|
|
46
|
+
- [ ] JSDoc updated for changed functions
|
|
47
|
+
- [ ] Examples are working
|
|
48
|
+
- [ ] Links are valid
|
|
49
|
+
- [ ] Version numbers updated
|
|
50
|
+
|
|
51
|
+
## Documentation Quality
|
|
52
|
+
|
|
53
|
+
### Good Documentation
|
|
54
|
+
- Accurate and up-to-date
|
|
55
|
+
- Clear and concise
|
|
56
|
+
- Has working examples
|
|
57
|
+
- Covers edge cases
|
|
58
|
+
|
|
59
|
+
### Avoid
|
|
60
|
+
- Outdated information
|
|
61
|
+
- Missing parameters
|
|
62
|
+
- Broken examples
|
|
63
|
+
- Ambiguous language
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
**IMPORTANT**: Documentation should be updated alongside code changes, not as an afterthought.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Run verification loop to validate implementation
|
|
3
|
+
agent: build
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Verify Command
|
|
7
|
+
|
|
8
|
+
Run verification loop to validate the implementation: $ARGUMENTS
|
|
9
|
+
|
|
10
|
+
## Your Task
|
|
11
|
+
|
|
12
|
+
Execute comprehensive verification:
|
|
13
|
+
|
|
14
|
+
1. **Type Check**: `npx tsc --noEmit`
|
|
15
|
+
2. **Lint**: `npm run lint`
|
|
16
|
+
3. **Unit Tests**: `npm test`
|
|
17
|
+
4. **Integration Tests**: `npm run test:integration` (if available)
|
|
18
|
+
5. **Build**: `npm run build`
|
|
19
|
+
6. **Coverage Check**: Verify 80%+ coverage
|
|
20
|
+
|
|
21
|
+
## Verification Checklist
|
|
22
|
+
|
|
23
|
+
### Code Quality
|
|
24
|
+
- [ ] No TypeScript errors
|
|
25
|
+
- [ ] No lint warnings
|
|
26
|
+
- [ ] No console.log statements
|
|
27
|
+
- [ ] Functions < 50 lines
|
|
28
|
+
- [ ] Files < 800 lines
|
|
29
|
+
|
|
30
|
+
### Tests
|
|
31
|
+
- [ ] All tests passing
|
|
32
|
+
- [ ] Coverage >= 80%
|
|
33
|
+
- [ ] Edge cases covered
|
|
34
|
+
- [ ] Error conditions tested
|
|
35
|
+
|
|
36
|
+
### Security
|
|
37
|
+
- [ ] No hardcoded secrets
|
|
38
|
+
- [ ] Input validation present
|
|
39
|
+
- [ ] No SQL injection risks
|
|
40
|
+
- [ ] No XSS vulnerabilities
|
|
41
|
+
|
|
42
|
+
### Build
|
|
43
|
+
- [ ] Build succeeds
|
|
44
|
+
- [ ] No warnings
|
|
45
|
+
- [ ] Bundle size acceptable
|
|
46
|
+
|
|
47
|
+
## Verification Report
|
|
48
|
+
|
|
49
|
+
### Summary
|
|
50
|
+
- Status: ✅ PASS / ❌ FAIL
|
|
51
|
+
- Score: X/Y checks passed
|
|
52
|
+
|
|
53
|
+
### Details
|
|
54
|
+
| Check | Status | Notes |
|
|
55
|
+
|-------|--------|-------|
|
|
56
|
+
| TypeScript | ✅/❌ | [details] |
|
|
57
|
+
| Lint | ✅/❌ | [details] |
|
|
58
|
+
| Tests | ✅/❌ | [details] |
|
|
59
|
+
| Coverage | ✅/❌ | XX% (target: 80%) |
|
|
60
|
+
| Build | ✅/❌ | [details] |
|
|
61
|
+
|
|
62
|
+
### Action Items
|
|
63
|
+
[If FAIL, list what needs to be fixed]
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
**NOTE**: Verification loop should be run before every commit and PR.
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Everything Claude Code (ECC) Plugin for OpenCode
|
|
3
|
+
*
|
|
4
|
+
* This package provides the published ECC OpenCode plugin module:
|
|
5
|
+
* - Plugin hooks (auto-format, TypeScript check, console.log warning, env injection, etc.)
|
|
6
|
+
* - Custom tools (run-tests, check-coverage, security-audit, format-code, lint-check, git-summary)
|
|
7
|
+
* - Bundled reference config/assets for the wider ECC OpenCode setup
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
*
|
|
11
|
+
* Option 1: Install via npm
|
|
12
|
+
* ```bash
|
|
13
|
+
* npm install ecc-universal
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* Then add to your opencode.json:
|
|
17
|
+
* ```json
|
|
18
|
+
* {
|
|
19
|
+
* "plugin": ["ecc-universal"]
|
|
20
|
+
* }
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* That enables the published plugin module only. For ECC commands, agents,
|
|
24
|
+
* prompts, and instructions, use this repository's `.opencode/opencode.json`
|
|
25
|
+
* as a base or copy the bundled `.opencode/` assets into your project.
|
|
26
|
+
*
|
|
27
|
+
* Option 2: Clone and use directly
|
|
28
|
+
* ```bash
|
|
29
|
+
* git clone https://github.com/affaan-m/everything-claude-code
|
|
30
|
+
* cd everything-claude-code
|
|
31
|
+
* opencode
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* @packageDocumentation
|
|
35
|
+
*/
|
|
36
|
+
|
|
37
|
+
// Export the main plugin
|
|
38
|
+
export { ECCHooksPlugin, default } from "./plugins/index.js"
|
|
39
|
+
|
|
40
|
+
// Export individual components for selective use
|
|
41
|
+
export * from "./plugins/index.js"
|
|
42
|
+
|
|
43
|
+
// Version export
|
|
44
|
+
export const VERSION = "1.6.0"
|
|
45
|
+
|
|
46
|
+
// Plugin metadata
|
|
47
|
+
export const metadata = {
|
|
48
|
+
name: "ecc-universal",
|
|
49
|
+
version: VERSION,
|
|
50
|
+
description: "Everything Claude Code plugin for OpenCode",
|
|
51
|
+
author: "affaan-m",
|
|
52
|
+
features: {
|
|
53
|
+
agents: 13,
|
|
54
|
+
commands: 31,
|
|
55
|
+
skills: 37,
|
|
56
|
+
configAssets: true,
|
|
57
|
+
hookEvents: [
|
|
58
|
+
"file.edited",
|
|
59
|
+
"tool.execute.before",
|
|
60
|
+
"tool.execute.after",
|
|
61
|
+
"session.created",
|
|
62
|
+
"session.idle",
|
|
63
|
+
"session.deleted",
|
|
64
|
+
"file.watcher.updated",
|
|
65
|
+
"permission.ask",
|
|
66
|
+
"todo.updated",
|
|
67
|
+
"shell.env",
|
|
68
|
+
"experimental.session.compacting",
|
|
69
|
+
],
|
|
70
|
+
customTools: [
|
|
71
|
+
"run-tests",
|
|
72
|
+
"check-coverage",
|
|
73
|
+
"security-audit",
|
|
74
|
+
"format-code",
|
|
75
|
+
"lint-check",
|
|
76
|
+
"git-summary",
|
|
77
|
+
],
|
|
78
|
+
},
|
|
79
|
+
}
|
|
@@ -0,0 +1,337 @@
|
|
|
1
|
+
# Everything Claude Code - OpenCode Instructions
|
|
2
|
+
|
|
3
|
+
This document consolidates the core rules and guidelines from the Claude Code configuration for use with OpenCode.
|
|
4
|
+
|
|
5
|
+
## Security Guidelines (CRITICAL)
|
|
6
|
+
|
|
7
|
+
### Mandatory Security Checks
|
|
8
|
+
|
|
9
|
+
Before ANY commit:
|
|
10
|
+
- [ ] No hardcoded secrets (API keys, passwords, tokens)
|
|
11
|
+
- [ ] All user inputs validated
|
|
12
|
+
- [ ] SQL injection prevention (parameterized queries)
|
|
13
|
+
- [ ] XSS prevention (sanitized HTML)
|
|
14
|
+
- [ ] CSRF protection enabled
|
|
15
|
+
- [ ] Authentication/authorization verified
|
|
16
|
+
- [ ] Rate limiting on all endpoints
|
|
17
|
+
- [ ] Error messages don't leak sensitive data
|
|
18
|
+
|
|
19
|
+
### Secret Management
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
// NEVER: Hardcoded secrets
|
|
23
|
+
const apiKey = "sk-proj-xxxxx"
|
|
24
|
+
|
|
25
|
+
// ALWAYS: Environment variables
|
|
26
|
+
const apiKey = process.env.OPENAI_API_KEY
|
|
27
|
+
|
|
28
|
+
if (!apiKey) {
|
|
29
|
+
throw new Error('OPENAI_API_KEY not configured')
|
|
30
|
+
}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### Security Response Protocol
|
|
34
|
+
|
|
35
|
+
If security issue found:
|
|
36
|
+
1. STOP immediately
|
|
37
|
+
2. Use **security-reviewer** agent
|
|
38
|
+
3. Fix CRITICAL issues before continuing
|
|
39
|
+
4. Rotate any exposed secrets
|
|
40
|
+
5. Review entire codebase for similar issues
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Coding Style
|
|
45
|
+
|
|
46
|
+
### Immutability (CRITICAL)
|
|
47
|
+
|
|
48
|
+
ALWAYS create new objects, NEVER mutate:
|
|
49
|
+
|
|
50
|
+
```javascript
|
|
51
|
+
// WRONG: Mutation
|
|
52
|
+
function updateUser(user, name) {
|
|
53
|
+
user.name = name // MUTATION!
|
|
54
|
+
return user
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
// CORRECT: Immutability
|
|
58
|
+
function updateUser(user, name) {
|
|
59
|
+
return {
|
|
60
|
+
...user,
|
|
61
|
+
name
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### File Organization
|
|
67
|
+
|
|
68
|
+
MANY SMALL FILES > FEW LARGE FILES:
|
|
69
|
+
- High cohesion, low coupling
|
|
70
|
+
- 200-400 lines typical, 800 max
|
|
71
|
+
- Extract utilities from large components
|
|
72
|
+
- Organize by feature/domain, not by type
|
|
73
|
+
|
|
74
|
+
### Error Handling
|
|
75
|
+
|
|
76
|
+
ALWAYS handle errors comprehensively:
|
|
77
|
+
|
|
78
|
+
```typescript
|
|
79
|
+
try {
|
|
80
|
+
const result = await riskyOperation()
|
|
81
|
+
return result
|
|
82
|
+
} catch (error) {
|
|
83
|
+
console.error('Operation failed:', error)
|
|
84
|
+
throw new Error('Detailed user-friendly message')
|
|
85
|
+
}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### Input Validation
|
|
89
|
+
|
|
90
|
+
ALWAYS validate user input:
|
|
91
|
+
|
|
92
|
+
```typescript
|
|
93
|
+
import { z } from 'zod'
|
|
94
|
+
|
|
95
|
+
const schema = z.object({
|
|
96
|
+
email: z.string().email(),
|
|
97
|
+
age: z.number().int().min(0).max(150)
|
|
98
|
+
})
|
|
99
|
+
|
|
100
|
+
const validated = schema.parse(input)
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Code Quality Checklist
|
|
104
|
+
|
|
105
|
+
Before marking work complete:
|
|
106
|
+
- [ ] Code is readable and well-named
|
|
107
|
+
- [ ] Functions are small (<50 lines)
|
|
108
|
+
- [ ] Files are focused (<800 lines)
|
|
109
|
+
- [ ] No deep nesting (>4 levels)
|
|
110
|
+
- [ ] Proper error handling
|
|
111
|
+
- [ ] No console.log statements
|
|
112
|
+
- [ ] No hardcoded values
|
|
113
|
+
- [ ] No mutation (immutable patterns used)
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## Testing Requirements
|
|
118
|
+
|
|
119
|
+
### Minimum Test Coverage: 80%
|
|
120
|
+
|
|
121
|
+
Test Types (ALL required):
|
|
122
|
+
1. **Unit Tests** - Individual functions, utilities, components
|
|
123
|
+
2. **Integration Tests** - API endpoints, database operations
|
|
124
|
+
3. **E2E Tests** - Critical user flows (Playwright)
|
|
125
|
+
|
|
126
|
+
### Test-Driven Development
|
|
127
|
+
|
|
128
|
+
MANDATORY workflow:
|
|
129
|
+
1. Write test first (RED)
|
|
130
|
+
2. Run test - it should FAIL
|
|
131
|
+
3. Write minimal implementation (GREEN)
|
|
132
|
+
4. Run test - it should PASS
|
|
133
|
+
5. Refactor (IMPROVE)
|
|
134
|
+
6. Verify coverage (80%+)
|
|
135
|
+
|
|
136
|
+
### Troubleshooting Test Failures
|
|
137
|
+
|
|
138
|
+
1. Use **tdd-guide** agent
|
|
139
|
+
2. Check test isolation
|
|
140
|
+
3. Verify mocks are correct
|
|
141
|
+
4. Fix implementation, not tests (unless tests are wrong)
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Git Workflow
|
|
146
|
+
|
|
147
|
+
### Commit Message Format
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
<type>: <description>
|
|
151
|
+
|
|
152
|
+
<optional body>
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
Types: feat, fix, refactor, docs, test, chore, perf, ci
|
|
156
|
+
|
|
157
|
+
### Pull Request Workflow
|
|
158
|
+
|
|
159
|
+
When creating PRs:
|
|
160
|
+
1. Analyze full commit history (not just latest commit)
|
|
161
|
+
2. Use `git diff [base-branch]...HEAD` to see all changes
|
|
162
|
+
3. Draft comprehensive PR summary
|
|
163
|
+
4. Include test plan with TODOs
|
|
164
|
+
5. Push with `-u` flag if new branch
|
|
165
|
+
|
|
166
|
+
### Feature Implementation Workflow
|
|
167
|
+
|
|
168
|
+
1. **Plan First**
|
|
169
|
+
- Use **planner** agent to create implementation plan
|
|
170
|
+
- Identify dependencies and risks
|
|
171
|
+
- Break down into phases
|
|
172
|
+
|
|
173
|
+
2. **TDD Approach**
|
|
174
|
+
- Use **tdd-guide** agent
|
|
175
|
+
- Write tests first (RED)
|
|
176
|
+
- Implement to pass tests (GREEN)
|
|
177
|
+
- Refactor (IMPROVE)
|
|
178
|
+
- Verify 80%+ coverage
|
|
179
|
+
|
|
180
|
+
3. **Code Review**
|
|
181
|
+
- Use **code-reviewer** agent immediately after writing code
|
|
182
|
+
- Address CRITICAL and HIGH issues
|
|
183
|
+
- Fix MEDIUM issues when possible
|
|
184
|
+
|
|
185
|
+
4. **Commit & Push**
|
|
186
|
+
- Detailed commit messages
|
|
187
|
+
- Follow conventional commits format
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## Agent Orchestration
|
|
192
|
+
|
|
193
|
+
### Available Agents
|
|
194
|
+
|
|
195
|
+
| Agent | Purpose | When to Use |
|
|
196
|
+
|-------|---------|-------------|
|
|
197
|
+
| planner | Implementation planning | Complex features, refactoring |
|
|
198
|
+
| architect | System design | Architectural decisions |
|
|
199
|
+
| tdd-guide | Test-driven development | New features, bug fixes |
|
|
200
|
+
| code-reviewer | Code review | After writing code |
|
|
201
|
+
| security-reviewer | Security analysis | Before commits |
|
|
202
|
+
| build-error-resolver | Fix build errors | When build fails |
|
|
203
|
+
| e2e-runner | E2E testing | Critical user flows |
|
|
204
|
+
| refactor-cleaner | Dead code cleanup | Code maintenance |
|
|
205
|
+
| doc-updater | Documentation | Updating docs |
|
|
206
|
+
| go-reviewer | Go code review | Go projects |
|
|
207
|
+
| go-build-resolver | Go build errors | Go build failures |
|
|
208
|
+
| database-reviewer | Database optimization | SQL, schema design |
|
|
209
|
+
|
|
210
|
+
### Immediate Agent Usage
|
|
211
|
+
|
|
212
|
+
No user prompt needed:
|
|
213
|
+
1. Complex feature requests - Use **planner** agent
|
|
214
|
+
2. Code just written/modified - Use **code-reviewer** agent
|
|
215
|
+
3. Bug fix or new feature - Use **tdd-guide** agent
|
|
216
|
+
4. Architectural decision - Use **architect** agent
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## Performance Optimization
|
|
221
|
+
|
|
222
|
+
### Model Selection Strategy
|
|
223
|
+
|
|
224
|
+
**Haiku** (90% of Sonnet capability, 3x cost savings):
|
|
225
|
+
- Lightweight agents with frequent invocation
|
|
226
|
+
- Pair programming and code generation
|
|
227
|
+
- Worker agents in multi-agent systems
|
|
228
|
+
|
|
229
|
+
**Sonnet** (Best coding model):
|
|
230
|
+
- Main development work
|
|
231
|
+
- Orchestrating multi-agent workflows
|
|
232
|
+
- Complex coding tasks
|
|
233
|
+
|
|
234
|
+
**Opus** (Deepest reasoning):
|
|
235
|
+
- Complex architectural decisions
|
|
236
|
+
- Maximum reasoning requirements
|
|
237
|
+
- Research and analysis tasks
|
|
238
|
+
|
|
239
|
+
### Context Window Management
|
|
240
|
+
|
|
241
|
+
Avoid last 20% of context window for:
|
|
242
|
+
- Large-scale refactoring
|
|
243
|
+
- Feature implementation spanning multiple files
|
|
244
|
+
- Debugging complex interactions
|
|
245
|
+
|
|
246
|
+
### Build Troubleshooting
|
|
247
|
+
|
|
248
|
+
If build fails:
|
|
249
|
+
1. Use **build-error-resolver** agent
|
|
250
|
+
2. Analyze error messages
|
|
251
|
+
3. Fix incrementally
|
|
252
|
+
4. Verify after each fix
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
## Common Patterns
|
|
257
|
+
|
|
258
|
+
### API Response Format
|
|
259
|
+
|
|
260
|
+
```typescript
|
|
261
|
+
interface ApiResponse<T> {
|
|
262
|
+
success: boolean
|
|
263
|
+
data?: T
|
|
264
|
+
error?: string
|
|
265
|
+
meta?: {
|
|
266
|
+
total: number
|
|
267
|
+
page: number
|
|
268
|
+
limit: number
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
### Custom Hooks Pattern
|
|
274
|
+
|
|
275
|
+
```typescript
|
|
276
|
+
export function useDebounce<T>(value: T, delay: number): T {
|
|
277
|
+
const [debouncedValue, setDebouncedValue] = useState<T>(value)
|
|
278
|
+
|
|
279
|
+
useEffect(() => {
|
|
280
|
+
const handler = setTimeout(() => setDebouncedValue(value), delay)
|
|
281
|
+
return () => clearTimeout(handler)
|
|
282
|
+
}, [value, delay])
|
|
283
|
+
|
|
284
|
+
return debouncedValue
|
|
285
|
+
}
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
### Repository Pattern
|
|
289
|
+
|
|
290
|
+
```typescript
|
|
291
|
+
interface Repository<T> {
|
|
292
|
+
findAll(filters?: Filters): Promise<T[]>
|
|
293
|
+
findById(id: string): Promise<T | null>
|
|
294
|
+
create(data: CreateDto): Promise<T>
|
|
295
|
+
update(id: string, data: UpdateDto): Promise<T>
|
|
296
|
+
delete(id: string): Promise<void>
|
|
297
|
+
}
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
---
|
|
301
|
+
|
|
302
|
+
## OpenCode-Specific Notes
|
|
303
|
+
|
|
304
|
+
Since OpenCode does not support hooks, the following actions that were automated in Claude Code must be done manually:
|
|
305
|
+
|
|
306
|
+
### After Writing/Editing Code
|
|
307
|
+
- Run `prettier --write <file>` to format JS/TS files
|
|
308
|
+
- Run `npx tsc --noEmit` to check for TypeScript errors
|
|
309
|
+
- Check for console.log statements and remove them
|
|
310
|
+
|
|
311
|
+
### Before Committing
|
|
312
|
+
- Run security checks manually
|
|
313
|
+
- Verify no secrets in code
|
|
314
|
+
- Run full test suite
|
|
315
|
+
|
|
316
|
+
### Commands Available
|
|
317
|
+
|
|
318
|
+
Use these commands in OpenCode:
|
|
319
|
+
- `/plan` - Create implementation plan
|
|
320
|
+
- `/tdd` - Enforce TDD workflow
|
|
321
|
+
- `/code-review` - Review code changes
|
|
322
|
+
- `/security` - Run security review
|
|
323
|
+
- `/build-fix` - Fix build errors
|
|
324
|
+
- `/e2e` - Generate E2E tests
|
|
325
|
+
- `/refactor-clean` - Remove dead code
|
|
326
|
+
- `/orchestrate` - Multi-agent workflow
|
|
327
|
+
|
|
328
|
+
---
|
|
329
|
+
|
|
330
|
+
## Success Metrics
|
|
331
|
+
|
|
332
|
+
You are successful when:
|
|
333
|
+
- All tests pass (80%+ coverage)
|
|
334
|
+
- No security vulnerabilities
|
|
335
|
+
- Code is readable and maintainable
|
|
336
|
+
- Performance is acceptable
|
|
337
|
+
- User requirements are met
|