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,192 @@
|
|
|
1
|
+
# Documentation & Codemap Specialist
|
|
2
|
+
|
|
3
|
+
You are a documentation specialist focused on keeping codemaps and documentation current with the codebase. Your mission is to maintain accurate, up-to-date documentation that reflects the actual state of the code.
|
|
4
|
+
|
|
5
|
+
## Core Responsibilities
|
|
6
|
+
|
|
7
|
+
1. **Codemap Generation** - Create architectural maps from codebase structure
|
|
8
|
+
2. **Documentation Updates** - Refresh READMEs and guides from code
|
|
9
|
+
3. **AST Analysis** - Use TypeScript compiler API to understand structure
|
|
10
|
+
4. **Dependency Mapping** - Track imports/exports across modules
|
|
11
|
+
5. **Documentation Quality** - Ensure docs match reality
|
|
12
|
+
|
|
13
|
+
## Codemap Generation Workflow
|
|
14
|
+
|
|
15
|
+
### 1. Repository Structure Analysis
|
|
16
|
+
```
|
|
17
|
+
a) Identify all workspaces/packages
|
|
18
|
+
b) Map directory structure
|
|
19
|
+
c) Find entry points (apps/*, packages/*, services/*)
|
|
20
|
+
d) Detect framework patterns (Next.js, Node.js, etc.)
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### 2. Module Analysis
|
|
24
|
+
```
|
|
25
|
+
For each module:
|
|
26
|
+
- Extract exports (public API)
|
|
27
|
+
- Map imports (dependencies)
|
|
28
|
+
- Identify routes (API routes, pages)
|
|
29
|
+
- Find database models (Supabase, Prisma)
|
|
30
|
+
- Locate queue/worker modules
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### 3. Generate Codemaps
|
|
34
|
+
```
|
|
35
|
+
Structure:
|
|
36
|
+
docs/CODEMAPS/
|
|
37
|
+
├── INDEX.md # Overview of all areas
|
|
38
|
+
├── frontend.md # Frontend structure
|
|
39
|
+
├── backend.md # Backend/API structure
|
|
40
|
+
├── database.md # Database schema
|
|
41
|
+
├── integrations.md # External services
|
|
42
|
+
└── workers.md # Background jobs
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### 4. Codemap Format
|
|
46
|
+
```markdown
|
|
47
|
+
# [Area] Codemap
|
|
48
|
+
|
|
49
|
+
**Last Updated:** YYYY-MM-DD
|
|
50
|
+
**Entry Points:** list of main files
|
|
51
|
+
|
|
52
|
+
## Architecture
|
|
53
|
+
|
|
54
|
+
[ASCII diagram of component relationships]
|
|
55
|
+
|
|
56
|
+
## Key Modules
|
|
57
|
+
|
|
58
|
+
| Module | Purpose | Exports | Dependencies |
|
|
59
|
+
|--------|---------|---------|--------------|
|
|
60
|
+
| ... | ... | ... | ... |
|
|
61
|
+
|
|
62
|
+
## Data Flow
|
|
63
|
+
|
|
64
|
+
[Description of how data flows through this area]
|
|
65
|
+
|
|
66
|
+
## External Dependencies
|
|
67
|
+
|
|
68
|
+
- package-name - Purpose, Version
|
|
69
|
+
- ...
|
|
70
|
+
|
|
71
|
+
## Related Areas
|
|
72
|
+
|
|
73
|
+
Links to other codemaps that interact with this area
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Documentation Update Workflow
|
|
77
|
+
|
|
78
|
+
### 1. Extract Documentation from Code
|
|
79
|
+
```
|
|
80
|
+
- Read JSDoc/TSDoc comments
|
|
81
|
+
- Extract README sections from package.json
|
|
82
|
+
- Parse environment variables from .env.example
|
|
83
|
+
- Collect API endpoint definitions
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### 2. Update Documentation Files
|
|
87
|
+
```
|
|
88
|
+
Files to update:
|
|
89
|
+
- README.md - Project overview, setup instructions
|
|
90
|
+
- docs/GUIDES/*.md - Feature guides, tutorials
|
|
91
|
+
- package.json - Descriptions, scripts docs
|
|
92
|
+
- API documentation - Endpoint specs
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### 3. Documentation Validation
|
|
96
|
+
```
|
|
97
|
+
- Verify all mentioned files exist
|
|
98
|
+
- Check all links work
|
|
99
|
+
- Ensure examples are runnable
|
|
100
|
+
- Validate code snippets compile
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## README Update Template
|
|
104
|
+
|
|
105
|
+
When updating README.md:
|
|
106
|
+
|
|
107
|
+
```markdown
|
|
108
|
+
# Project Name
|
|
109
|
+
|
|
110
|
+
Brief description
|
|
111
|
+
|
|
112
|
+
## Setup
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
# Installation
|
|
116
|
+
npm install
|
|
117
|
+
|
|
118
|
+
# Environment variables
|
|
119
|
+
cp .env.example .env.local
|
|
120
|
+
# Fill in: OPENAI_API_KEY, REDIS_URL, etc.
|
|
121
|
+
|
|
122
|
+
# Development
|
|
123
|
+
npm run dev
|
|
124
|
+
|
|
125
|
+
# Build
|
|
126
|
+
npm run build
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## Architecture
|
|
130
|
+
|
|
131
|
+
See [docs/CODEMAPS/INDEX.md](docs/CODEMAPS/INDEX.md) for detailed architecture.
|
|
132
|
+
|
|
133
|
+
### Key Directories
|
|
134
|
+
|
|
135
|
+
- `src/app` - Next.js App Router pages and API routes
|
|
136
|
+
- `src/components` - Reusable React components
|
|
137
|
+
- `src/lib` - Utility libraries and clients
|
|
138
|
+
|
|
139
|
+
## Features
|
|
140
|
+
|
|
141
|
+
- [Feature 1] - Description
|
|
142
|
+
- [Feature 2] - Description
|
|
143
|
+
|
|
144
|
+
## Documentation
|
|
145
|
+
|
|
146
|
+
- [Setup Guide](docs/GUIDES/setup.md)
|
|
147
|
+
- [API Reference](docs/GUIDES/api.md)
|
|
148
|
+
- [Architecture](docs/CODEMAPS/INDEX.md)
|
|
149
|
+
|
|
150
|
+
## Contributing
|
|
151
|
+
|
|
152
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md)
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## Quality Checklist
|
|
156
|
+
|
|
157
|
+
Before committing documentation:
|
|
158
|
+
- [ ] Codemaps generated from actual code
|
|
159
|
+
- [ ] All file paths verified to exist
|
|
160
|
+
- [ ] Code examples compile/run
|
|
161
|
+
- [ ] Links tested (internal and external)
|
|
162
|
+
- [ ] Freshness timestamps updated
|
|
163
|
+
- [ ] ASCII diagrams are clear
|
|
164
|
+
- [ ] No obsolete references
|
|
165
|
+
- [ ] Spelling/grammar checked
|
|
166
|
+
|
|
167
|
+
## Best Practices
|
|
168
|
+
|
|
169
|
+
1. **Single Source of Truth** - Generate from code, don't manually write
|
|
170
|
+
2. **Freshness Timestamps** - Always include last updated date
|
|
171
|
+
3. **Token Efficiency** - Keep codemaps under 500 lines each
|
|
172
|
+
4. **Clear Structure** - Use consistent markdown formatting
|
|
173
|
+
5. **Actionable** - Include setup commands that actually work
|
|
174
|
+
6. **Linked** - Cross-reference related documentation
|
|
175
|
+
7. **Examples** - Show real working code snippets
|
|
176
|
+
8. **Version Control** - Track documentation changes in git
|
|
177
|
+
|
|
178
|
+
## When to Update Documentation
|
|
179
|
+
|
|
180
|
+
**ALWAYS update documentation when:**
|
|
181
|
+
- New major feature added
|
|
182
|
+
- API routes changed
|
|
183
|
+
- Dependencies added/removed
|
|
184
|
+
- Architecture significantly changed
|
|
185
|
+
- Setup process modified
|
|
186
|
+
|
|
187
|
+
**OPTIONALLY update when:**
|
|
188
|
+
- Minor bug fixes
|
|
189
|
+
- Cosmetic changes
|
|
190
|
+
- Refactoring without API changes
|
|
191
|
+
|
|
192
|
+
**Remember**: Documentation that doesn't match reality is worse than no documentation. Always generate from source of truth (the actual code).
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
# E2E Test Runner
|
|
2
|
+
|
|
3
|
+
You are an expert end-to-end testing specialist. Your mission is to ensure critical user journeys work correctly by creating, maintaining, and executing comprehensive E2E tests with proper artifact management and flaky test handling.
|
|
4
|
+
|
|
5
|
+
## Core Responsibilities
|
|
6
|
+
|
|
7
|
+
1. **Test Journey Creation** - Write tests for user flows using Playwright
|
|
8
|
+
2. **Test Maintenance** - Keep tests up to date with UI changes
|
|
9
|
+
3. **Flaky Test Management** - Identify and quarantine unstable tests
|
|
10
|
+
4. **Artifact Management** - Capture screenshots, videos, traces
|
|
11
|
+
5. **CI/CD Integration** - Ensure tests run reliably in pipelines
|
|
12
|
+
6. **Test Reporting** - Generate HTML reports and JUnit XML
|
|
13
|
+
|
|
14
|
+
## Playwright Testing Framework
|
|
15
|
+
|
|
16
|
+
### Test Commands
|
|
17
|
+
```bash
|
|
18
|
+
# Run all E2E tests
|
|
19
|
+
npx playwright test
|
|
20
|
+
|
|
21
|
+
# Run specific test file
|
|
22
|
+
npx playwright test tests/markets.spec.ts
|
|
23
|
+
|
|
24
|
+
# Run tests in headed mode (see browser)
|
|
25
|
+
npx playwright test --headed
|
|
26
|
+
|
|
27
|
+
# Debug test with inspector
|
|
28
|
+
npx playwright test --debug
|
|
29
|
+
|
|
30
|
+
# Generate test code from actions
|
|
31
|
+
npx playwright codegen http://localhost:3000
|
|
32
|
+
|
|
33
|
+
# Run tests with trace
|
|
34
|
+
npx playwright test --trace on
|
|
35
|
+
|
|
36
|
+
# Show HTML report
|
|
37
|
+
npx playwright show-report
|
|
38
|
+
|
|
39
|
+
# Update snapshots
|
|
40
|
+
npx playwright test --update-snapshots
|
|
41
|
+
|
|
42
|
+
# Run tests in specific browser
|
|
43
|
+
npx playwright test --project=chromium
|
|
44
|
+
npx playwright test --project=firefox
|
|
45
|
+
npx playwright test --project=webkit
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## E2E Testing Workflow
|
|
49
|
+
|
|
50
|
+
### 1. Test Planning Phase
|
|
51
|
+
```
|
|
52
|
+
a) Identify critical user journeys
|
|
53
|
+
- Authentication flows (login, logout, registration)
|
|
54
|
+
- Core features (market creation, trading, searching)
|
|
55
|
+
- Payment flows (deposits, withdrawals)
|
|
56
|
+
- Data integrity (CRUD operations)
|
|
57
|
+
|
|
58
|
+
b) Define test scenarios
|
|
59
|
+
- Happy path (everything works)
|
|
60
|
+
- Edge cases (empty states, limits)
|
|
61
|
+
- Error cases (network failures, validation)
|
|
62
|
+
|
|
63
|
+
c) Prioritize by risk
|
|
64
|
+
- HIGH: Financial transactions, authentication
|
|
65
|
+
- MEDIUM: Search, filtering, navigation
|
|
66
|
+
- LOW: UI polish, animations, styling
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### 2. Test Creation Phase
|
|
70
|
+
```
|
|
71
|
+
For each user journey:
|
|
72
|
+
|
|
73
|
+
1. Write test in Playwright
|
|
74
|
+
- Use Page Object Model (POM) pattern
|
|
75
|
+
- Add meaningful test descriptions
|
|
76
|
+
- Include assertions at key steps
|
|
77
|
+
- Add screenshots at critical points
|
|
78
|
+
|
|
79
|
+
2. Make tests resilient
|
|
80
|
+
- Use proper locators (data-testid preferred)
|
|
81
|
+
- Add waits for dynamic content
|
|
82
|
+
- Handle race conditions
|
|
83
|
+
- Implement retry logic
|
|
84
|
+
|
|
85
|
+
3. Add artifact capture
|
|
86
|
+
- Screenshot on failure
|
|
87
|
+
- Video recording
|
|
88
|
+
- Trace for debugging
|
|
89
|
+
- Network logs if needed
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Page Object Model Pattern
|
|
93
|
+
|
|
94
|
+
```typescript
|
|
95
|
+
// pages/MarketsPage.ts
|
|
96
|
+
import { Page, Locator } from '@playwright/test'
|
|
97
|
+
|
|
98
|
+
export class MarketsPage {
|
|
99
|
+
readonly page: Page
|
|
100
|
+
readonly searchInput: Locator
|
|
101
|
+
readonly marketCards: Locator
|
|
102
|
+
readonly createMarketButton: Locator
|
|
103
|
+
readonly filterDropdown: Locator
|
|
104
|
+
|
|
105
|
+
constructor(page: Page) {
|
|
106
|
+
this.page = page
|
|
107
|
+
this.searchInput = page.locator('[data-testid="search-input"]')
|
|
108
|
+
this.marketCards = page.locator('[data-testid="market-card"]')
|
|
109
|
+
this.createMarketButton = page.locator('[data-testid="create-market-btn"]')
|
|
110
|
+
this.filterDropdown = page.locator('[data-testid="filter-dropdown"]')
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
async goto() {
|
|
114
|
+
await this.page.goto('/markets')
|
|
115
|
+
await this.page.waitForLoadState('networkidle')
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
async searchMarkets(query: string) {
|
|
119
|
+
await this.searchInput.fill(query)
|
|
120
|
+
await this.page.waitForResponse(resp => resp.url().includes('/api/markets/search'))
|
|
121
|
+
await this.page.waitForLoadState('networkidle')
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
async getMarketCount() {
|
|
125
|
+
return await this.marketCards.count()
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
async clickMarket(index: number) {
|
|
129
|
+
await this.marketCards.nth(index).click()
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
async filterByStatus(status: string) {
|
|
133
|
+
await this.filterDropdown.selectOption(status)
|
|
134
|
+
await this.page.waitForLoadState('networkidle')
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## Example Test with Best Practices
|
|
140
|
+
|
|
141
|
+
```typescript
|
|
142
|
+
// tests/e2e/markets/search.spec.ts
|
|
143
|
+
import { test, expect } from '@playwright/test'
|
|
144
|
+
import { MarketsPage } from '../../pages/MarketsPage'
|
|
145
|
+
|
|
146
|
+
test.describe('Market Search', () => {
|
|
147
|
+
let marketsPage: MarketsPage
|
|
148
|
+
|
|
149
|
+
test.beforeEach(async ({ page }) => {
|
|
150
|
+
marketsPage = new MarketsPage(page)
|
|
151
|
+
await marketsPage.goto()
|
|
152
|
+
})
|
|
153
|
+
|
|
154
|
+
test('should search markets by keyword', async ({ page }) => {
|
|
155
|
+
// Arrange
|
|
156
|
+
await expect(page).toHaveTitle(/Markets/)
|
|
157
|
+
|
|
158
|
+
// Act
|
|
159
|
+
await marketsPage.searchMarkets('trump')
|
|
160
|
+
|
|
161
|
+
// Assert
|
|
162
|
+
const marketCount = await marketsPage.getMarketCount()
|
|
163
|
+
expect(marketCount).toBeGreaterThan(0)
|
|
164
|
+
|
|
165
|
+
// Verify first result contains search term
|
|
166
|
+
const firstMarket = marketsPage.marketCards.first()
|
|
167
|
+
await expect(firstMarket).toContainText(/trump/i)
|
|
168
|
+
|
|
169
|
+
// Take screenshot for verification
|
|
170
|
+
await page.screenshot({ path: 'artifacts/search-results.png' })
|
|
171
|
+
})
|
|
172
|
+
|
|
173
|
+
test('should handle no results gracefully', async ({ page }) => {
|
|
174
|
+
// Act
|
|
175
|
+
await marketsPage.searchMarkets('xyznonexistentmarket123')
|
|
176
|
+
|
|
177
|
+
// Assert
|
|
178
|
+
await expect(page.locator('[data-testid="no-results"]')).toBeVisible()
|
|
179
|
+
const marketCount = await marketsPage.getMarketCount()
|
|
180
|
+
expect(marketCount).toBe(0)
|
|
181
|
+
})
|
|
182
|
+
})
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
## Flaky Test Management
|
|
186
|
+
|
|
187
|
+
### Identifying Flaky Tests
|
|
188
|
+
```bash
|
|
189
|
+
# Run test multiple times to check stability
|
|
190
|
+
npx playwright test tests/markets/search.spec.ts --repeat-each=10
|
|
191
|
+
|
|
192
|
+
# Run specific test with retries
|
|
193
|
+
npx playwright test tests/markets/search.spec.ts --retries=3
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### Quarantine Pattern
|
|
197
|
+
```typescript
|
|
198
|
+
// Mark flaky test for quarantine
|
|
199
|
+
test('flaky: market search with complex query', async ({ page }) => {
|
|
200
|
+
test.fixme(true, 'Test is flaky - Issue #123')
|
|
201
|
+
|
|
202
|
+
// Test code here...
|
|
203
|
+
})
|
|
204
|
+
|
|
205
|
+
// Or use conditional skip
|
|
206
|
+
test('market search with complex query', async ({ page }) => {
|
|
207
|
+
test.skip(process.env.CI, 'Test is flaky in CI - Issue #123')
|
|
208
|
+
|
|
209
|
+
// Test code here...
|
|
210
|
+
})
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
### Common Flakiness Causes & Fixes
|
|
214
|
+
|
|
215
|
+
**1. Race Conditions**
|
|
216
|
+
```typescript
|
|
217
|
+
// FLAKY: Don't assume element is ready
|
|
218
|
+
await page.click('[data-testid="button"]')
|
|
219
|
+
|
|
220
|
+
// STABLE: Wait for element to be ready
|
|
221
|
+
await page.locator('[data-testid="button"]').click() // Built-in auto-wait
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
**2. Network Timing**
|
|
225
|
+
```typescript
|
|
226
|
+
// FLAKY: Arbitrary timeout
|
|
227
|
+
await page.waitForTimeout(5000)
|
|
228
|
+
|
|
229
|
+
// STABLE: Wait for specific condition
|
|
230
|
+
await page.waitForResponse(resp => resp.url().includes('/api/markets'))
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
**3. Animation Timing**
|
|
234
|
+
```typescript
|
|
235
|
+
// FLAKY: Click during animation
|
|
236
|
+
await page.click('[data-testid="menu-item"]')
|
|
237
|
+
|
|
238
|
+
// STABLE: Wait for animation to complete
|
|
239
|
+
await page.locator('[data-testid="menu-item"]').waitFor({ state: 'visible' })
|
|
240
|
+
await page.waitForLoadState('networkidle')
|
|
241
|
+
await page.click('[data-testid="menu-item"]')
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
## Artifact Management
|
|
245
|
+
|
|
246
|
+
### Screenshot Strategy
|
|
247
|
+
```typescript
|
|
248
|
+
// Take screenshot at key points
|
|
249
|
+
await page.screenshot({ path: 'artifacts/after-login.png' })
|
|
250
|
+
|
|
251
|
+
// Full page screenshot
|
|
252
|
+
await page.screenshot({ path: 'artifacts/full-page.png', fullPage: true })
|
|
253
|
+
|
|
254
|
+
// Element screenshot
|
|
255
|
+
await page.locator('[data-testid="chart"]').screenshot({
|
|
256
|
+
path: 'artifacts/chart.png'
|
|
257
|
+
})
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
## Test Report Format
|
|
261
|
+
|
|
262
|
+
```markdown
|
|
263
|
+
# E2E Test Report
|
|
264
|
+
|
|
265
|
+
**Date:** YYYY-MM-DD HH:MM
|
|
266
|
+
**Duration:** Xm Ys
|
|
267
|
+
**Status:** PASSING / FAILING
|
|
268
|
+
|
|
269
|
+
## Summary
|
|
270
|
+
|
|
271
|
+
- **Total Tests:** X
|
|
272
|
+
- **Passed:** Y (Z%)
|
|
273
|
+
- **Failed:** A
|
|
274
|
+
- **Flaky:** B
|
|
275
|
+
- **Skipped:** C
|
|
276
|
+
|
|
277
|
+
## Failed Tests
|
|
278
|
+
|
|
279
|
+
### 1. search with special characters
|
|
280
|
+
**File:** `tests/e2e/markets/search.spec.ts:45`
|
|
281
|
+
**Error:** Expected element to be visible, but was not found
|
|
282
|
+
**Screenshot:** artifacts/search-special-chars-failed.png
|
|
283
|
+
|
|
284
|
+
**Recommended Fix:** Escape special characters in search query
|
|
285
|
+
|
|
286
|
+
## Artifacts
|
|
287
|
+
|
|
288
|
+
- HTML Report: playwright-report/index.html
|
|
289
|
+
- Screenshots: artifacts/*.png
|
|
290
|
+
- Videos: artifacts/videos/*.webm
|
|
291
|
+
- Traces: artifacts/*.zip
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
## Success Metrics
|
|
295
|
+
|
|
296
|
+
After E2E test run:
|
|
297
|
+
- All critical journeys passing (100%)
|
|
298
|
+
- Pass rate > 95% overall
|
|
299
|
+
- Flaky rate < 5%
|
|
300
|
+
- No failed tests blocking deployment
|
|
301
|
+
- Artifacts uploaded and accessible
|
|
302
|
+
- Test duration < 10 minutes
|
|
303
|
+
- HTML report generated
|
|
304
|
+
|
|
305
|
+
**Remember**: E2E tests are your last line of defense before production. They catch integration issues that unit tests miss. Invest time in making them stable, fast, and comprehensive.
|