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,427 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: deployment-patterns
|
|
3
|
+
description: Deployment workflows, CI/CD pipeline patterns, Docker containerization, health checks, rollback strategies, and production readiness checklists for web applications.
|
|
4
|
+
origin: ECC
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Deployment Patterns
|
|
8
|
+
|
|
9
|
+
Production deployment workflows and CI/CD best practices.
|
|
10
|
+
|
|
11
|
+
## When to Activate
|
|
12
|
+
|
|
13
|
+
- Setting up CI/CD pipelines
|
|
14
|
+
- Dockerizing an application
|
|
15
|
+
- Planning deployment strategy (blue-green, canary, rolling)
|
|
16
|
+
- Implementing health checks and readiness probes
|
|
17
|
+
- Preparing for a production release
|
|
18
|
+
- Configuring environment-specific settings
|
|
19
|
+
|
|
20
|
+
## Deployment Strategies
|
|
21
|
+
|
|
22
|
+
### Rolling Deployment (Default)
|
|
23
|
+
|
|
24
|
+
Replace instances gradually — old and new versions run simultaneously during rollout.
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
Instance 1: v1 → v2 (update first)
|
|
28
|
+
Instance 2: v1 (still running v1)
|
|
29
|
+
Instance 3: v1 (still running v1)
|
|
30
|
+
|
|
31
|
+
Instance 1: v2
|
|
32
|
+
Instance 2: v1 → v2 (update second)
|
|
33
|
+
Instance 3: v1
|
|
34
|
+
|
|
35
|
+
Instance 1: v2
|
|
36
|
+
Instance 2: v2
|
|
37
|
+
Instance 3: v1 → v2 (update last)
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**Pros:** Zero downtime, gradual rollout
|
|
41
|
+
**Cons:** Two versions run simultaneously — requires backward-compatible changes
|
|
42
|
+
**Use when:** Standard deployments, backward-compatible changes
|
|
43
|
+
|
|
44
|
+
### Blue-Green Deployment
|
|
45
|
+
|
|
46
|
+
Run two identical environments. Switch traffic atomically.
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
Blue (v1) ← traffic
|
|
50
|
+
Green (v2) idle, running new version
|
|
51
|
+
|
|
52
|
+
# After verification:
|
|
53
|
+
Blue (v1) idle (becomes standby)
|
|
54
|
+
Green (v2) ← traffic
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**Pros:** Instant rollback (switch back to blue), clean cutover
|
|
58
|
+
**Cons:** Requires 2x infrastructure during deployment
|
|
59
|
+
**Use when:** Critical services, zero-tolerance for issues
|
|
60
|
+
|
|
61
|
+
### Canary Deployment
|
|
62
|
+
|
|
63
|
+
Route a small percentage of traffic to the new version first.
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
v1: 95% of traffic
|
|
67
|
+
v2: 5% of traffic (canary)
|
|
68
|
+
|
|
69
|
+
# If metrics look good:
|
|
70
|
+
v1: 50% of traffic
|
|
71
|
+
v2: 50% of traffic
|
|
72
|
+
|
|
73
|
+
# Final:
|
|
74
|
+
v2: 100% of traffic
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
**Pros:** Catches issues with real traffic before full rollout
|
|
78
|
+
**Cons:** Requires traffic splitting infrastructure, monitoring
|
|
79
|
+
**Use when:** High-traffic services, risky changes, feature flags
|
|
80
|
+
|
|
81
|
+
## Docker
|
|
82
|
+
|
|
83
|
+
### Multi-Stage Dockerfile (Node.js)
|
|
84
|
+
|
|
85
|
+
```dockerfile
|
|
86
|
+
# Stage 1: Install dependencies
|
|
87
|
+
FROM node:22-alpine AS deps
|
|
88
|
+
WORKDIR /app
|
|
89
|
+
COPY package.json package-lock.json ./
|
|
90
|
+
RUN npm ci --production=false
|
|
91
|
+
|
|
92
|
+
# Stage 2: Build
|
|
93
|
+
FROM node:22-alpine AS builder
|
|
94
|
+
WORKDIR /app
|
|
95
|
+
COPY --from=deps /app/node_modules ./node_modules
|
|
96
|
+
COPY . .
|
|
97
|
+
RUN npm run build
|
|
98
|
+
RUN npm prune --production
|
|
99
|
+
|
|
100
|
+
# Stage 3: Production image
|
|
101
|
+
FROM node:22-alpine AS runner
|
|
102
|
+
WORKDIR /app
|
|
103
|
+
|
|
104
|
+
RUN addgroup -g 1001 -S appgroup && adduser -S appuser -u 1001
|
|
105
|
+
USER appuser
|
|
106
|
+
|
|
107
|
+
COPY --from=builder --chown=appuser:appgroup /app/node_modules ./node_modules
|
|
108
|
+
COPY --from=builder --chown=appuser:appgroup /app/dist ./dist
|
|
109
|
+
COPY --from=builder --chown=appuser:appgroup /app/package.json ./
|
|
110
|
+
|
|
111
|
+
ENV NODE_ENV=production
|
|
112
|
+
EXPOSE 3000
|
|
113
|
+
|
|
114
|
+
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
|
|
115
|
+
CMD wget --no-verbose --tries=1 --spider http://localhost:3000/health || exit 1
|
|
116
|
+
|
|
117
|
+
CMD ["node", "dist/server.js"]
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Multi-Stage Dockerfile (Go)
|
|
121
|
+
|
|
122
|
+
```dockerfile
|
|
123
|
+
FROM golang:1.22-alpine AS builder
|
|
124
|
+
WORKDIR /app
|
|
125
|
+
COPY go.mod go.sum ./
|
|
126
|
+
RUN go mod download
|
|
127
|
+
COPY . .
|
|
128
|
+
RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o /server ./cmd/server
|
|
129
|
+
|
|
130
|
+
FROM alpine:3.19 AS runner
|
|
131
|
+
RUN apk --no-cache add ca-certificates
|
|
132
|
+
RUN adduser -D -u 1001 appuser
|
|
133
|
+
USER appuser
|
|
134
|
+
|
|
135
|
+
COPY --from=builder /server /server
|
|
136
|
+
|
|
137
|
+
EXPOSE 8080
|
|
138
|
+
HEALTHCHECK --interval=30s --timeout=3s CMD wget -qO- http://localhost:8080/health || exit 1
|
|
139
|
+
CMD ["/server"]
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Multi-Stage Dockerfile (Python/Django)
|
|
143
|
+
|
|
144
|
+
```dockerfile
|
|
145
|
+
FROM python:3.12-slim AS builder
|
|
146
|
+
WORKDIR /app
|
|
147
|
+
RUN pip install --no-cache-dir uv
|
|
148
|
+
COPY requirements.txt .
|
|
149
|
+
RUN uv pip install --system --no-cache -r requirements.txt
|
|
150
|
+
|
|
151
|
+
FROM python:3.12-slim AS runner
|
|
152
|
+
WORKDIR /app
|
|
153
|
+
|
|
154
|
+
RUN useradd -r -u 1001 appuser
|
|
155
|
+
USER appuser
|
|
156
|
+
|
|
157
|
+
COPY --from=builder /usr/local/lib/python3.12/site-packages /usr/local/lib/python3.12/site-packages
|
|
158
|
+
COPY --from=builder /usr/local/bin /usr/local/bin
|
|
159
|
+
COPY . .
|
|
160
|
+
|
|
161
|
+
ENV PYTHONUNBUFFERED=1
|
|
162
|
+
EXPOSE 8000
|
|
163
|
+
|
|
164
|
+
HEALTHCHECK --interval=30s --timeout=3s CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:8000/health/')" || exit 1
|
|
165
|
+
CMD ["gunicorn", "config.wsgi:application", "--bind", "0.0.0.0:8000", "--workers", "4"]
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### Docker Best Practices
|
|
169
|
+
|
|
170
|
+
```
|
|
171
|
+
# GOOD practices
|
|
172
|
+
- Use specific version tags (node:22-alpine, not node:latest)
|
|
173
|
+
- Multi-stage builds to minimize image size
|
|
174
|
+
- Run as non-root user
|
|
175
|
+
- Copy dependency files first (layer caching)
|
|
176
|
+
- Use .dockerignore to exclude node_modules, .git, tests
|
|
177
|
+
- Add HEALTHCHECK instruction
|
|
178
|
+
- Set resource limits in docker-compose or k8s
|
|
179
|
+
|
|
180
|
+
# BAD practices
|
|
181
|
+
- Running as root
|
|
182
|
+
- Using :latest tags
|
|
183
|
+
- Copying entire repo in one COPY layer
|
|
184
|
+
- Installing dev dependencies in production image
|
|
185
|
+
- Storing secrets in image (use env vars or secrets manager)
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
## CI/CD Pipeline
|
|
189
|
+
|
|
190
|
+
### GitHub Actions (Standard Pipeline)
|
|
191
|
+
|
|
192
|
+
```yaml
|
|
193
|
+
name: CI/CD
|
|
194
|
+
|
|
195
|
+
on:
|
|
196
|
+
push:
|
|
197
|
+
branches: [main]
|
|
198
|
+
pull_request:
|
|
199
|
+
branches: [main]
|
|
200
|
+
|
|
201
|
+
jobs:
|
|
202
|
+
test:
|
|
203
|
+
runs-on: ubuntu-latest
|
|
204
|
+
steps:
|
|
205
|
+
- uses: actions/checkout@v4
|
|
206
|
+
- uses: actions/setup-node@v4
|
|
207
|
+
with:
|
|
208
|
+
node-version: 22
|
|
209
|
+
cache: npm
|
|
210
|
+
- run: npm ci
|
|
211
|
+
- run: npm run lint
|
|
212
|
+
- run: npm run typecheck
|
|
213
|
+
- run: npm test -- --coverage
|
|
214
|
+
- uses: actions/upload-artifact@v4
|
|
215
|
+
if: always()
|
|
216
|
+
with:
|
|
217
|
+
name: coverage
|
|
218
|
+
path: coverage/
|
|
219
|
+
|
|
220
|
+
build:
|
|
221
|
+
needs: test
|
|
222
|
+
runs-on: ubuntu-latest
|
|
223
|
+
if: github.ref == 'refs/heads/main'
|
|
224
|
+
steps:
|
|
225
|
+
- uses: actions/checkout@v4
|
|
226
|
+
- uses: docker/setup-buildx-action@v3
|
|
227
|
+
- uses: docker/login-action@v3
|
|
228
|
+
with:
|
|
229
|
+
registry: ghcr.io
|
|
230
|
+
username: ${{ github.actor }}
|
|
231
|
+
password: ${{ secrets.GITHUB_TOKEN }}
|
|
232
|
+
- uses: docker/build-push-action@v5
|
|
233
|
+
with:
|
|
234
|
+
push: true
|
|
235
|
+
tags: ghcr.io/${{ github.repository }}:${{ github.sha }}
|
|
236
|
+
cache-from: type=gha
|
|
237
|
+
cache-to: type=gha,mode=max
|
|
238
|
+
|
|
239
|
+
deploy:
|
|
240
|
+
needs: build
|
|
241
|
+
runs-on: ubuntu-latest
|
|
242
|
+
if: github.ref == 'refs/heads/main'
|
|
243
|
+
environment: production
|
|
244
|
+
steps:
|
|
245
|
+
- name: Deploy to production
|
|
246
|
+
run: |
|
|
247
|
+
# Platform-specific deployment command
|
|
248
|
+
# Railway: railway up
|
|
249
|
+
# Vercel: vercel --prod
|
|
250
|
+
# K8s: kubectl set image deployment/app app=ghcr.io/${{ github.repository }}:${{ github.sha }}
|
|
251
|
+
echo "Deploying ${{ github.sha }}"
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
### Pipeline Stages
|
|
255
|
+
|
|
256
|
+
```
|
|
257
|
+
PR opened:
|
|
258
|
+
lint → typecheck → unit tests → integration tests → preview deploy
|
|
259
|
+
|
|
260
|
+
Merged to main:
|
|
261
|
+
lint → typecheck → unit tests → integration tests → build image → deploy staging → smoke tests → deploy production
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
## Health Checks
|
|
265
|
+
|
|
266
|
+
### Health Check Endpoint
|
|
267
|
+
|
|
268
|
+
```typescript
|
|
269
|
+
// Simple health check
|
|
270
|
+
app.get("/health", (req, res) => {
|
|
271
|
+
res.status(200).json({ status: "ok" });
|
|
272
|
+
});
|
|
273
|
+
|
|
274
|
+
// Detailed health check (for internal monitoring)
|
|
275
|
+
app.get("/health/detailed", async (req, res) => {
|
|
276
|
+
const checks = {
|
|
277
|
+
database: await checkDatabase(),
|
|
278
|
+
redis: await checkRedis(),
|
|
279
|
+
externalApi: await checkExternalApi(),
|
|
280
|
+
};
|
|
281
|
+
|
|
282
|
+
const allHealthy = Object.values(checks).every(c => c.status === "ok");
|
|
283
|
+
|
|
284
|
+
res.status(allHealthy ? 200 : 503).json({
|
|
285
|
+
status: allHealthy ? "ok" : "degraded",
|
|
286
|
+
timestamp: new Date().toISOString(),
|
|
287
|
+
version: process.env.APP_VERSION || "unknown",
|
|
288
|
+
uptime: process.uptime(),
|
|
289
|
+
checks,
|
|
290
|
+
});
|
|
291
|
+
});
|
|
292
|
+
|
|
293
|
+
async function checkDatabase(): Promise<HealthCheck> {
|
|
294
|
+
try {
|
|
295
|
+
await db.query("SELECT 1");
|
|
296
|
+
return { status: "ok", latency_ms: 2 };
|
|
297
|
+
} catch (err) {
|
|
298
|
+
return { status: "error", message: "Database unreachable" };
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
### Kubernetes Probes
|
|
304
|
+
|
|
305
|
+
```yaml
|
|
306
|
+
livenessProbe:
|
|
307
|
+
httpGet:
|
|
308
|
+
path: /health
|
|
309
|
+
port: 3000
|
|
310
|
+
initialDelaySeconds: 10
|
|
311
|
+
periodSeconds: 30
|
|
312
|
+
failureThreshold: 3
|
|
313
|
+
|
|
314
|
+
readinessProbe:
|
|
315
|
+
httpGet:
|
|
316
|
+
path: /health
|
|
317
|
+
port: 3000
|
|
318
|
+
initialDelaySeconds: 5
|
|
319
|
+
periodSeconds: 10
|
|
320
|
+
failureThreshold: 2
|
|
321
|
+
|
|
322
|
+
startupProbe:
|
|
323
|
+
httpGet:
|
|
324
|
+
path: /health
|
|
325
|
+
port: 3000
|
|
326
|
+
initialDelaySeconds: 0
|
|
327
|
+
periodSeconds: 5
|
|
328
|
+
failureThreshold: 30 # 30 * 5s = 150s max startup time
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
## Environment Configuration
|
|
332
|
+
|
|
333
|
+
### Twelve-Factor App Pattern
|
|
334
|
+
|
|
335
|
+
```bash
|
|
336
|
+
# All config via environment variables — never in code
|
|
337
|
+
DATABASE_URL=postgres://user:pass@host:5432/db
|
|
338
|
+
REDIS_URL=redis://host:6379/0
|
|
339
|
+
API_KEY=${API_KEY} # injected by secrets manager
|
|
340
|
+
LOG_LEVEL=info
|
|
341
|
+
PORT=3000
|
|
342
|
+
|
|
343
|
+
# Environment-specific behavior
|
|
344
|
+
NODE_ENV=production # or staging, development
|
|
345
|
+
APP_ENV=production # explicit app environment
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
### Configuration Validation
|
|
349
|
+
|
|
350
|
+
```typescript
|
|
351
|
+
import { z } from "zod";
|
|
352
|
+
|
|
353
|
+
const envSchema = z.object({
|
|
354
|
+
NODE_ENV: z.enum(["development", "staging", "production"]),
|
|
355
|
+
PORT: z.coerce.number().default(3000),
|
|
356
|
+
DATABASE_URL: z.string().url(),
|
|
357
|
+
REDIS_URL: z.string().url(),
|
|
358
|
+
JWT_SECRET: z.string().min(32),
|
|
359
|
+
LOG_LEVEL: z.enum(["debug", "info", "warn", "error"]).default("info"),
|
|
360
|
+
});
|
|
361
|
+
|
|
362
|
+
// Validate at startup — fail fast if config is wrong
|
|
363
|
+
export const env = envSchema.parse(process.env);
|
|
364
|
+
```
|
|
365
|
+
|
|
366
|
+
## Rollback Strategy
|
|
367
|
+
|
|
368
|
+
### Instant Rollback
|
|
369
|
+
|
|
370
|
+
```bash
|
|
371
|
+
# Docker/Kubernetes: point to previous image
|
|
372
|
+
kubectl rollout undo deployment/app
|
|
373
|
+
|
|
374
|
+
# Vercel: promote previous deployment
|
|
375
|
+
vercel rollback
|
|
376
|
+
|
|
377
|
+
# Railway: redeploy previous commit
|
|
378
|
+
railway up --commit <previous-sha>
|
|
379
|
+
|
|
380
|
+
# Database: rollback migration (if reversible)
|
|
381
|
+
npx prisma migrate resolve --rolled-back <migration-name>
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
### Rollback Checklist
|
|
385
|
+
|
|
386
|
+
- [ ] Previous image/artifact is available and tagged
|
|
387
|
+
- [ ] Database migrations are backward-compatible (no destructive changes)
|
|
388
|
+
- [ ] Feature flags can disable new features without deploy
|
|
389
|
+
- [ ] Monitoring alerts configured for error rate spikes
|
|
390
|
+
- [ ] Rollback tested in staging before production release
|
|
391
|
+
|
|
392
|
+
## Production Readiness Checklist
|
|
393
|
+
|
|
394
|
+
Before any production deployment:
|
|
395
|
+
|
|
396
|
+
### Application
|
|
397
|
+
- [ ] All tests pass (unit, integration, E2E)
|
|
398
|
+
- [ ] No hardcoded secrets in code or config files
|
|
399
|
+
- [ ] Error handling covers all edge cases
|
|
400
|
+
- [ ] Logging is structured (JSON) and does not contain PII
|
|
401
|
+
- [ ] Health check endpoint returns meaningful status
|
|
402
|
+
|
|
403
|
+
### Infrastructure
|
|
404
|
+
- [ ] Docker image builds reproducibly (pinned versions)
|
|
405
|
+
- [ ] Environment variables documented and validated at startup
|
|
406
|
+
- [ ] Resource limits set (CPU, memory)
|
|
407
|
+
- [ ] Horizontal scaling configured (min/max instances)
|
|
408
|
+
- [ ] SSL/TLS enabled on all endpoints
|
|
409
|
+
|
|
410
|
+
### Monitoring
|
|
411
|
+
- [ ] Application metrics exported (request rate, latency, errors)
|
|
412
|
+
- [ ] Alerts configured for error rate > threshold
|
|
413
|
+
- [ ] Log aggregation set up (structured logs, searchable)
|
|
414
|
+
- [ ] Uptime monitoring on health endpoint
|
|
415
|
+
|
|
416
|
+
### Security
|
|
417
|
+
- [ ] Dependencies scanned for CVEs
|
|
418
|
+
- [ ] CORS configured for allowed origins only
|
|
419
|
+
- [ ] Rate limiting enabled on public endpoints
|
|
420
|
+
- [ ] Authentication and authorization verified
|
|
421
|
+
- [ ] Security headers set (CSP, HSTS, X-Frame-Options)
|
|
422
|
+
|
|
423
|
+
### Operations
|
|
424
|
+
- [ ] Rollback plan documented and tested
|
|
425
|
+
- [ ] Database migration tested against production-sized data
|
|
426
|
+
- [ ] Runbook for common failure scenarios
|
|
427
|
+
- [ ] On-call rotation and escalation path defined
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: deprecation-and-migration
|
|
3
|
+
description: Removes old systems safely and migrates consumers deliberately. Use when sunsetting features, replacing interfaces, or consolidating duplicate implementations.
|
|
4
|
+
origin: ECC
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Deprecation and Migration
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
Code is not automatically an asset.
|
|
12
|
+
Every old path, endpoint, flag, dependency, or subsystem carries maintenance, security, and cognitive cost.
|
|
13
|
+
This skill helps decide what should be removed, how consumers move safely, and when the old path can finally disappear.
|
|
14
|
+
|
|
15
|
+
## When to Use
|
|
16
|
+
|
|
17
|
+
- replacing an old API, library, feature, or workflow
|
|
18
|
+
- removing dead or duplicate code
|
|
19
|
+
- migrating users, services, or teams to a new implementation
|
|
20
|
+
- planning removal of deprecated behavior
|
|
21
|
+
- deciding whether to maintain versus sunset a legacy path
|
|
22
|
+
|
|
23
|
+
**When NOT to use**
|
|
24
|
+
|
|
25
|
+
- no replacement or migration path exists yet
|
|
26
|
+
- the change is a purely additive feature with no retirement surface
|
|
27
|
+
|
|
28
|
+
## Workflow
|
|
29
|
+
|
|
30
|
+
1. Prove the deprecation case first.
|
|
31
|
+
Clarify:
|
|
32
|
+
- what unique value the old path still provides
|
|
33
|
+
- who depends on it
|
|
34
|
+
- what it costs to keep maintaining it
|
|
35
|
+
- what the replacement is
|
|
36
|
+
2. Choose the deprecation posture deliberately.
|
|
37
|
+
Decide whether the change is advisory or compulsory.
|
|
38
|
+
Default to advisory unless risk, security, or platform pressure requires a deadline.
|
|
39
|
+
3. Build the replacement and migration path before removal.
|
|
40
|
+
Use adapters, feature flags, or strangler patterns where needed.
|
|
41
|
+
For schema or data moves, coordinate with the existing migration skills and repo standards.
|
|
42
|
+
4. Migrate incrementally and measure usage.
|
|
43
|
+
Move consumers one by one when possible.
|
|
44
|
+
Use logs, metrics, dependency scans, or runtime evidence to prove who still depends on the old path.
|
|
45
|
+
5. Remove the legacy path only after real usage is gone.
|
|
46
|
+
Delete the old code, tests, docs, config, and deprecation notices once they have served their purpose.
|
|
47
|
+
6. Document the lifecycle decision.
|
|
48
|
+
Use `../../references/deprecation-and-migration.md` and `documentation-and-adrs` when future engineers need the why and the removal plan.
|
|
49
|
+
|
|
50
|
+
## Common Rationalizations
|
|
51
|
+
|
|
52
|
+
| Rationalization | Reality |
|
|
53
|
+
|---|---|
|
|
54
|
+
| "It still works, so we should keep it." | Working but unowned code quietly accumulates cost and risk. |
|
|
55
|
+
| "Users will migrate on their own." | Most consumers need tooling, help, or active churn management. |
|
|
56
|
+
| "We can maintain both forever." | Duplicate systems multiply maintenance and slow future work. |
|
|
57
|
+
| "We'll remove it once the new system settles." | Without an explicit removal plan, the old path usually survives indefinitely. |
|
|
58
|
+
|
|
59
|
+
## Red Flags
|
|
60
|
+
|
|
61
|
+
- a deprecation is announced without a working replacement
|
|
62
|
+
- active usage is guessed instead of measured
|
|
63
|
+
- the old path keeps receiving new feature work
|
|
64
|
+
- code is removed before consumer migration is proven
|
|
65
|
+
- dead docs, tests, or flags remain after the "migration" is supposedly done
|
|
66
|
+
|
|
67
|
+
## Verification
|
|
68
|
+
|
|
69
|
+
After deprecation or migration work, confirm:
|
|
70
|
+
|
|
71
|
+
- [ ] the replacement exists and covers critical use cases
|
|
72
|
+
- [ ] usage and migration scope were measured, not guessed
|
|
73
|
+
- [ ] the migration path is documented and actionable
|
|
74
|
+
- [ ] remaining consumers are explicit or zero
|
|
75
|
+
- [ ] old code, tests, docs, and config are removed only after real migration proof
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Design System — Generate & Audit Visual Systems
|
|
2
|
+
|
|
3
|
+
## When to Use
|
|
4
|
+
|
|
5
|
+
- Starting a new project that needs a design system
|
|
6
|
+
- Auditing an existing codebase for visual consistency
|
|
7
|
+
- Before a redesign — understand what you have
|
|
8
|
+
- When the UI looks "off" but you can't pinpoint why
|
|
9
|
+
- Reviewing PRs that touch styling
|
|
10
|
+
|
|
11
|
+
## How It Works
|
|
12
|
+
|
|
13
|
+
### Mode 1: Generate Design System
|
|
14
|
+
|
|
15
|
+
Analyzes your codebase and generates a cohesive design system:
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
1. Scan CSS/Tailwind/styled-components for existing patterns
|
|
19
|
+
2. Extract: colors, typography, spacing, border-radius, shadows, breakpoints
|
|
20
|
+
3. Research 3 competitor sites for inspiration (via browser MCP)
|
|
21
|
+
4. Propose a design token set (JSON + CSS custom properties)
|
|
22
|
+
5. Generate DESIGN.md with rationale for each decision
|
|
23
|
+
6. Create an interactive HTML preview page (self-contained, no deps)
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Output: `DESIGN.md` + `design-tokens.json` + `design-preview.html`
|
|
27
|
+
|
|
28
|
+
### Mode 2: Visual Audit
|
|
29
|
+
|
|
30
|
+
Scores your UI across 10 dimensions (0-10 each):
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
1. Color consistency — are you using your palette or random hex values?
|
|
34
|
+
2. Typography hierarchy — clear h1 > h2 > h3 > body > caption?
|
|
35
|
+
3. Spacing rhythm — consistent scale (4px/8px/16px) or arbitrary?
|
|
36
|
+
4. Component consistency — do similar elements look similar?
|
|
37
|
+
5. Responsive behavior — fluid or broken at breakpoints?
|
|
38
|
+
6. Dark mode — complete or half-done?
|
|
39
|
+
7. Animation — purposeful or gratuitous?
|
|
40
|
+
8. Accessibility — contrast ratios, focus states, touch targets
|
|
41
|
+
9. Information density — cluttered or clean?
|
|
42
|
+
10. Polish — hover states, transitions, loading states, empty states
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Each dimension gets a score, specific examples, and a fix with exact file:line.
|
|
46
|
+
|
|
47
|
+
### Mode 3: AI Slop Detection
|
|
48
|
+
|
|
49
|
+
Identifies generic AI-generated design patterns:
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
- Gratuitous gradients on everything
|
|
53
|
+
- Purple-to-blue defaults
|
|
54
|
+
- "Glass morphism" cards with no purpose
|
|
55
|
+
- Rounded corners on things that shouldn't be rounded
|
|
56
|
+
- Excessive animations on scroll
|
|
57
|
+
- Generic hero with centered text over stock gradient
|
|
58
|
+
- Sans-serif font stack with no personality
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Examples
|
|
62
|
+
|
|
63
|
+
**Generate for a SaaS app:**
|
|
64
|
+
```
|
|
65
|
+
/design-system generate --style minimal --palette earth-tones
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
**Audit existing UI:**
|
|
69
|
+
```
|
|
70
|
+
/design-system audit --url http://localhost:3000 --pages / /pricing /docs
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**Check for AI slop:**
|
|
74
|
+
```
|
|
75
|
+
/design-system slop-check
|
|
76
|
+
```
|