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,184 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: frontend-slides
|
|
3
|
+
description: Create stunning, animation-rich HTML presentations from scratch or by converting PowerPoint files. Use when the user wants to build a presentation, convert a PPT/PPTX to web, or create slides for a talk/pitch. Helps non-designers discover their aesthetic through visual exploration rather than abstract choices.
|
|
4
|
+
origin: ECC
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Frontend Slides
|
|
8
|
+
|
|
9
|
+
Create zero-dependency, animation-rich HTML presentations that run entirely in the browser.
|
|
10
|
+
|
|
11
|
+
Inspired by the visual exploration approach showcased in work by zarazhangrui (credit: @zarazhangrui).
|
|
12
|
+
|
|
13
|
+
## When to Activate
|
|
14
|
+
|
|
15
|
+
- Creating a talk deck, pitch deck, workshop deck, or internal presentation
|
|
16
|
+
- Converting `.ppt` or `.pptx` slides into an HTML presentation
|
|
17
|
+
- Improving an existing HTML presentation's layout, motion, or typography
|
|
18
|
+
- Exploring presentation styles with a user who does not know their design preference yet
|
|
19
|
+
|
|
20
|
+
## Non-Negotiables
|
|
21
|
+
|
|
22
|
+
1. **Zero dependencies**: default to one self-contained HTML file with inline CSS and JS.
|
|
23
|
+
2. **Viewport fit is mandatory**: every slide must fit inside one viewport with no internal scrolling.
|
|
24
|
+
3. **Show, don't tell**: use visual previews instead of abstract style questionnaires.
|
|
25
|
+
4. **Distinctive design**: avoid generic purple-gradient, Inter-on-white, template-looking decks.
|
|
26
|
+
5. **Production quality**: keep code commented, accessible, responsive, and performant.
|
|
27
|
+
|
|
28
|
+
Before generating, read `STYLE_PRESETS.md` for the viewport-safe CSS base, density limits, preset catalog, and CSS gotchas.
|
|
29
|
+
|
|
30
|
+
## Workflow
|
|
31
|
+
|
|
32
|
+
### 1. Detect Mode
|
|
33
|
+
|
|
34
|
+
Choose one path:
|
|
35
|
+
- **New presentation**: user has a topic, notes, or full draft
|
|
36
|
+
- **PPT conversion**: user has `.ppt` or `.pptx`
|
|
37
|
+
- **Enhancement**: user already has HTML slides and wants improvements
|
|
38
|
+
|
|
39
|
+
### 2. Discover Content
|
|
40
|
+
|
|
41
|
+
Ask only the minimum needed:
|
|
42
|
+
- purpose: pitch, teaching, conference talk, internal update
|
|
43
|
+
- length: short (5-10), medium (10-20), long (20+)
|
|
44
|
+
- content state: finished copy, rough notes, topic only
|
|
45
|
+
|
|
46
|
+
If the user has content, ask them to paste it before styling.
|
|
47
|
+
|
|
48
|
+
### 3. Discover Style
|
|
49
|
+
|
|
50
|
+
Default to visual exploration.
|
|
51
|
+
|
|
52
|
+
If the user already knows the desired preset, skip previews and use it directly.
|
|
53
|
+
|
|
54
|
+
Otherwise:
|
|
55
|
+
1. Ask what feeling the deck should create: impressed, energized, focused, inspired.
|
|
56
|
+
2. Generate **3 single-slide preview files** in `.ecc-design/slide-previews/`.
|
|
57
|
+
3. Each preview must be self-contained, show typography/color/motion clearly, and stay under roughly 100 lines of slide content.
|
|
58
|
+
4. Ask the user which preview to keep or what elements to mix.
|
|
59
|
+
|
|
60
|
+
Use the preset guide in `STYLE_PRESETS.md` when mapping mood to style.
|
|
61
|
+
|
|
62
|
+
### 4. Build the Presentation
|
|
63
|
+
|
|
64
|
+
Output either:
|
|
65
|
+
- `presentation.html`
|
|
66
|
+
- `[presentation-name].html`
|
|
67
|
+
|
|
68
|
+
Use an `assets/` folder only when the deck contains extracted or user-supplied images.
|
|
69
|
+
|
|
70
|
+
Required structure:
|
|
71
|
+
- semantic slide sections
|
|
72
|
+
- a viewport-safe CSS base from `STYLE_PRESETS.md`
|
|
73
|
+
- CSS custom properties for theme values
|
|
74
|
+
- a presentation controller class for keyboard, wheel, and touch navigation
|
|
75
|
+
- Intersection Observer for reveal animations
|
|
76
|
+
- reduced-motion support
|
|
77
|
+
|
|
78
|
+
### 5. Enforce Viewport Fit
|
|
79
|
+
|
|
80
|
+
Treat this as a hard gate.
|
|
81
|
+
|
|
82
|
+
Rules:
|
|
83
|
+
- every `.slide` must use `height: 100vh; height: 100dvh; overflow: hidden;`
|
|
84
|
+
- all type and spacing must scale with `clamp()`
|
|
85
|
+
- when content does not fit, split into multiple slides
|
|
86
|
+
- never solve overflow by shrinking text below readable sizes
|
|
87
|
+
- never allow scrollbars inside a slide
|
|
88
|
+
|
|
89
|
+
Use the density limits and mandatory CSS block in `STYLE_PRESETS.md`.
|
|
90
|
+
|
|
91
|
+
### 6. Validate
|
|
92
|
+
|
|
93
|
+
Check the finished deck at these sizes:
|
|
94
|
+
- 1920x1080
|
|
95
|
+
- 1280x720
|
|
96
|
+
- 768x1024
|
|
97
|
+
- 375x667
|
|
98
|
+
- 667x375
|
|
99
|
+
|
|
100
|
+
If browser automation is available, use it to verify no slide overflows and that keyboard navigation works.
|
|
101
|
+
|
|
102
|
+
### 7. Deliver
|
|
103
|
+
|
|
104
|
+
At handoff:
|
|
105
|
+
- delete temporary preview files unless the user wants to keep them
|
|
106
|
+
- open the deck with the platform-appropriate opener when useful
|
|
107
|
+
- summarize file path, preset used, slide count, and easy theme customization points
|
|
108
|
+
|
|
109
|
+
Use the correct opener for the current OS:
|
|
110
|
+
- macOS: `open file.html`
|
|
111
|
+
- Linux: `xdg-open file.html`
|
|
112
|
+
- Windows: `start "" file.html`
|
|
113
|
+
|
|
114
|
+
## PPT / PPTX Conversion
|
|
115
|
+
|
|
116
|
+
For PowerPoint conversion:
|
|
117
|
+
1. Prefer `python3` with `python-pptx` to extract text, images, and notes.
|
|
118
|
+
2. If `python-pptx` is unavailable, ask whether to install it or fall back to a manual/export-based workflow.
|
|
119
|
+
3. Preserve slide order, speaker notes, and extracted assets.
|
|
120
|
+
4. After extraction, run the same style-selection workflow as a new presentation.
|
|
121
|
+
|
|
122
|
+
Keep conversion cross-platform. Do not rely on macOS-only tools when Python can do the job.
|
|
123
|
+
|
|
124
|
+
## Implementation Requirements
|
|
125
|
+
|
|
126
|
+
### HTML / CSS
|
|
127
|
+
|
|
128
|
+
- Use inline CSS and JS unless the user explicitly wants a multi-file project.
|
|
129
|
+
- Fonts may come from Google Fonts or Fontshare.
|
|
130
|
+
- Prefer atmospheric backgrounds, strong type hierarchy, and a clear visual direction.
|
|
131
|
+
- Use abstract shapes, gradients, grids, noise, and geometry rather than illustrations.
|
|
132
|
+
|
|
133
|
+
### JavaScript
|
|
134
|
+
|
|
135
|
+
Include:
|
|
136
|
+
- keyboard navigation
|
|
137
|
+
- touch / swipe navigation
|
|
138
|
+
- mouse wheel navigation
|
|
139
|
+
- progress indicator or slide index
|
|
140
|
+
- reveal-on-enter animation triggers
|
|
141
|
+
|
|
142
|
+
### Accessibility
|
|
143
|
+
|
|
144
|
+
- use semantic structure (`main`, `section`, `nav`)
|
|
145
|
+
- keep contrast readable
|
|
146
|
+
- support keyboard-only navigation
|
|
147
|
+
- respect `prefers-reduced-motion`
|
|
148
|
+
|
|
149
|
+
## Content Density Limits
|
|
150
|
+
|
|
151
|
+
Use these maxima unless the user explicitly asks for denser slides and readability still holds:
|
|
152
|
+
|
|
153
|
+
| Slide type | Limit |
|
|
154
|
+
|------------|-------|
|
|
155
|
+
| Title | 1 heading + 1 subtitle + optional tagline |
|
|
156
|
+
| Content | 1 heading + 4-6 bullets or 2 short paragraphs |
|
|
157
|
+
| Feature grid | 6 cards max |
|
|
158
|
+
| Code | 8-10 lines max |
|
|
159
|
+
| Quote | 1 quote + attribution |
|
|
160
|
+
| Image | 1 image constrained by viewport |
|
|
161
|
+
|
|
162
|
+
## Anti-Patterns
|
|
163
|
+
|
|
164
|
+
- generic startup gradients with no visual identity
|
|
165
|
+
- system-font decks unless intentionally editorial
|
|
166
|
+
- long bullet walls
|
|
167
|
+
- code blocks that need scrolling
|
|
168
|
+
- fixed-height content boxes that break on short screens
|
|
169
|
+
- invalid negated CSS functions like `-clamp(...)`
|
|
170
|
+
|
|
171
|
+
## Related ECC Skills
|
|
172
|
+
|
|
173
|
+
- `frontend-patterns` for component and interaction patterns around the deck
|
|
174
|
+
- `liquid-glass-design` when a presentation intentionally borrows Apple glass aesthetics
|
|
175
|
+
- `e2e-testing` if you need automated browser verification for the final deck
|
|
176
|
+
|
|
177
|
+
## Deliverable Checklist
|
|
178
|
+
|
|
179
|
+
- presentation runs from a local file in a browser
|
|
180
|
+
- every slide fits the viewport without scrolling
|
|
181
|
+
- style is distinctive and intentional
|
|
182
|
+
- animation is meaningful, not noisy
|
|
183
|
+
- reduced motion is respected
|
|
184
|
+
- file paths and customization points are explained at handoff
|
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
# Style Presets Reference
|
|
2
|
+
|
|
3
|
+
Curated visual styles for `frontend-slides`.
|
|
4
|
+
|
|
5
|
+
Use this file for:
|
|
6
|
+
- the mandatory viewport-fitting CSS base
|
|
7
|
+
- preset selection and mood mapping
|
|
8
|
+
- CSS gotchas and validation rules
|
|
9
|
+
|
|
10
|
+
Abstract shapes only. Avoid illustrations unless the user explicitly asks for them.
|
|
11
|
+
|
|
12
|
+
## Viewport Fit Is Non-Negotiable
|
|
13
|
+
|
|
14
|
+
Every slide must fully fit in one viewport.
|
|
15
|
+
|
|
16
|
+
### Golden Rule
|
|
17
|
+
|
|
18
|
+
```text
|
|
19
|
+
Each slide = exactly one viewport height.
|
|
20
|
+
Too much content = split into more slides.
|
|
21
|
+
Never scroll inside a slide.
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Density Limits
|
|
25
|
+
|
|
26
|
+
| Slide Type | Maximum Content |
|
|
27
|
+
|------------|-----------------|
|
|
28
|
+
| Title slide | 1 heading + 1 subtitle + optional tagline |
|
|
29
|
+
| Content slide | 1 heading + 4-6 bullets or 2 paragraphs |
|
|
30
|
+
| Feature grid | 6 cards maximum |
|
|
31
|
+
| Code slide | 8-10 lines maximum |
|
|
32
|
+
| Quote slide | 1 quote + attribution |
|
|
33
|
+
| Image slide | 1 image, ideally under 60vh |
|
|
34
|
+
|
|
35
|
+
## Mandatory Base CSS
|
|
36
|
+
|
|
37
|
+
Copy this block into every generated presentation and then theme on top of it.
|
|
38
|
+
|
|
39
|
+
```css
|
|
40
|
+
/* ===========================================
|
|
41
|
+
VIEWPORT FITTING: MANDATORY BASE STYLES
|
|
42
|
+
=========================================== */
|
|
43
|
+
|
|
44
|
+
html, body {
|
|
45
|
+
height: 100%;
|
|
46
|
+
overflow-x: hidden;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
html {
|
|
50
|
+
scroll-snap-type: y mandatory;
|
|
51
|
+
scroll-behavior: smooth;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.slide {
|
|
55
|
+
width: 100vw;
|
|
56
|
+
height: 100vh;
|
|
57
|
+
height: 100dvh;
|
|
58
|
+
overflow: hidden;
|
|
59
|
+
scroll-snap-align: start;
|
|
60
|
+
display: flex;
|
|
61
|
+
flex-direction: column;
|
|
62
|
+
position: relative;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.slide-content {
|
|
66
|
+
flex: 1;
|
|
67
|
+
display: flex;
|
|
68
|
+
flex-direction: column;
|
|
69
|
+
justify-content: center;
|
|
70
|
+
max-height: 100%;
|
|
71
|
+
overflow: hidden;
|
|
72
|
+
padding: var(--slide-padding);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
:root {
|
|
76
|
+
--title-size: clamp(1.5rem, 5vw, 4rem);
|
|
77
|
+
--h2-size: clamp(1.25rem, 3.5vw, 2.5rem);
|
|
78
|
+
--h3-size: clamp(1rem, 2.5vw, 1.75rem);
|
|
79
|
+
--body-size: clamp(0.75rem, 1.5vw, 1.125rem);
|
|
80
|
+
--small-size: clamp(0.65rem, 1vw, 0.875rem);
|
|
81
|
+
|
|
82
|
+
--slide-padding: clamp(1rem, 4vw, 4rem);
|
|
83
|
+
--content-gap: clamp(0.5rem, 2vw, 2rem);
|
|
84
|
+
--element-gap: clamp(0.25rem, 1vw, 1rem);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.card, .container, .content-box {
|
|
88
|
+
max-width: min(90vw, 1000px);
|
|
89
|
+
max-height: min(80vh, 700px);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.feature-list, .bullet-list {
|
|
93
|
+
gap: clamp(0.4rem, 1vh, 1rem);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.feature-list li, .bullet-list li {
|
|
97
|
+
font-size: var(--body-size);
|
|
98
|
+
line-height: 1.4;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.grid {
|
|
102
|
+
display: grid;
|
|
103
|
+
grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr));
|
|
104
|
+
gap: clamp(0.5rem, 1.5vw, 1rem);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
img, .image-container {
|
|
108
|
+
max-width: 100%;
|
|
109
|
+
max-height: min(50vh, 400px);
|
|
110
|
+
object-fit: contain;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
@media (max-height: 700px) {
|
|
114
|
+
:root {
|
|
115
|
+
--slide-padding: clamp(0.75rem, 3vw, 2rem);
|
|
116
|
+
--content-gap: clamp(0.4rem, 1.5vw, 1rem);
|
|
117
|
+
--title-size: clamp(1.25rem, 4.5vw, 2.5rem);
|
|
118
|
+
--h2-size: clamp(1rem, 3vw, 1.75rem);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
@media (max-height: 600px) {
|
|
123
|
+
:root {
|
|
124
|
+
--slide-padding: clamp(0.5rem, 2.5vw, 1.5rem);
|
|
125
|
+
--content-gap: clamp(0.3rem, 1vw, 0.75rem);
|
|
126
|
+
--title-size: clamp(1.1rem, 4vw, 2rem);
|
|
127
|
+
--body-size: clamp(0.7rem, 1.2vw, 0.95rem);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
.nav-dots, .keyboard-hint, .decorative {
|
|
131
|
+
display: none;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
@media (max-height: 500px) {
|
|
136
|
+
:root {
|
|
137
|
+
--slide-padding: clamp(0.4rem, 2vw, 1rem);
|
|
138
|
+
--title-size: clamp(1rem, 3.5vw, 1.5rem);
|
|
139
|
+
--h2-size: clamp(0.9rem, 2.5vw, 1.25rem);
|
|
140
|
+
--body-size: clamp(0.65rem, 1vw, 0.85rem);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
@media (max-width: 600px) {
|
|
145
|
+
:root {
|
|
146
|
+
--title-size: clamp(1.25rem, 7vw, 2.5rem);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.grid {
|
|
150
|
+
grid-template-columns: 1fr;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
@media (prefers-reduced-motion: reduce) {
|
|
155
|
+
*, *::before, *::after {
|
|
156
|
+
animation-duration: 0.01ms !important;
|
|
157
|
+
transition-duration: 0.2s !important;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
html {
|
|
161
|
+
scroll-behavior: auto;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
## Viewport Checklist
|
|
167
|
+
|
|
168
|
+
- every `.slide` has `height: 100vh`, `height: 100dvh`, and `overflow: hidden`
|
|
169
|
+
- all typography uses `clamp()`
|
|
170
|
+
- all spacing uses `clamp()` or viewport units
|
|
171
|
+
- images have `max-height` constraints
|
|
172
|
+
- grids adapt with `auto-fit` + `minmax()`
|
|
173
|
+
- short-height breakpoints exist at `700px`, `600px`, and `500px`
|
|
174
|
+
- if anything feels cramped, split the slide
|
|
175
|
+
|
|
176
|
+
## Mood to Preset Mapping
|
|
177
|
+
|
|
178
|
+
| Mood | Good Presets |
|
|
179
|
+
|------|--------------|
|
|
180
|
+
| Impressed / Confident | Bold Signal, Electric Studio, Dark Botanical |
|
|
181
|
+
| Excited / Energized | Creative Voltage, Neon Cyber, Split Pastel |
|
|
182
|
+
| Calm / Focused | Notebook Tabs, Paper & Ink, Swiss Modern |
|
|
183
|
+
| Inspired / Moved | Dark Botanical, Vintage Editorial, Pastel Geometry |
|
|
184
|
+
|
|
185
|
+
## Preset Catalog
|
|
186
|
+
|
|
187
|
+
### 1. Bold Signal
|
|
188
|
+
|
|
189
|
+
- Vibe: confident, high-impact, keynote-ready
|
|
190
|
+
- Best for: pitch decks, launches, statements
|
|
191
|
+
- Fonts: Archivo Black + Space Grotesk
|
|
192
|
+
- Palette: charcoal base, hot orange focal card, crisp white text
|
|
193
|
+
- Signature: oversized section numbers, high-contrast card on dark field
|
|
194
|
+
|
|
195
|
+
### 2. Electric Studio
|
|
196
|
+
|
|
197
|
+
- Vibe: clean, bold, agency-polished
|
|
198
|
+
- Best for: client presentations, strategic reviews
|
|
199
|
+
- Fonts: Manrope only
|
|
200
|
+
- Palette: black, white, saturated cobalt accent
|
|
201
|
+
- Signature: two-panel split and sharp editorial alignment
|
|
202
|
+
|
|
203
|
+
### 3. Creative Voltage
|
|
204
|
+
|
|
205
|
+
- Vibe: energetic, retro-modern, playful confidence
|
|
206
|
+
- Best for: creative studios, brand work, product storytelling
|
|
207
|
+
- Fonts: Syne + Space Mono
|
|
208
|
+
- Palette: electric blue, neon yellow, deep navy
|
|
209
|
+
- Signature: halftone textures, badges, punchy contrast
|
|
210
|
+
|
|
211
|
+
### 4. Dark Botanical
|
|
212
|
+
|
|
213
|
+
- Vibe: elegant, premium, atmospheric
|
|
214
|
+
- Best for: luxury brands, thoughtful narratives, premium product decks
|
|
215
|
+
- Fonts: Cormorant + IBM Plex Sans
|
|
216
|
+
- Palette: near-black, warm ivory, blush, gold, terracotta
|
|
217
|
+
- Signature: blurred abstract circles, fine rules, restrained motion
|
|
218
|
+
|
|
219
|
+
### 5. Notebook Tabs
|
|
220
|
+
|
|
221
|
+
- Vibe: editorial, organized, tactile
|
|
222
|
+
- Best for: reports, reviews, structured storytelling
|
|
223
|
+
- Fonts: Bodoni Moda + DM Sans
|
|
224
|
+
- Palette: cream paper on charcoal with pastel tabs
|
|
225
|
+
- Signature: paper sheet, colored side tabs, binder details
|
|
226
|
+
|
|
227
|
+
### 6. Pastel Geometry
|
|
228
|
+
|
|
229
|
+
- Vibe: approachable, modern, friendly
|
|
230
|
+
- Best for: product overviews, onboarding, lighter brand decks
|
|
231
|
+
- Fonts: Plus Jakarta Sans only
|
|
232
|
+
- Palette: pale blue field, cream card, soft pink/mint/lavender accents
|
|
233
|
+
- Signature: vertical pills, rounded cards, soft shadows
|
|
234
|
+
|
|
235
|
+
### 7. Split Pastel
|
|
236
|
+
|
|
237
|
+
- Vibe: playful, modern, creative
|
|
238
|
+
- Best for: agency intros, workshops, portfolios
|
|
239
|
+
- Fonts: Outfit only
|
|
240
|
+
- Palette: peach + lavender split with mint badges
|
|
241
|
+
- Signature: split backdrop, rounded tags, light grid overlays
|
|
242
|
+
|
|
243
|
+
### 8. Vintage Editorial
|
|
244
|
+
|
|
245
|
+
- Vibe: witty, personality-driven, magazine-inspired
|
|
246
|
+
- Best for: personal brands, opinionated talks, storytelling
|
|
247
|
+
- Fonts: Fraunces + Work Sans
|
|
248
|
+
- Palette: cream, charcoal, dusty warm accents
|
|
249
|
+
- Signature: geometric accents, bordered callouts, punchy serif headlines
|
|
250
|
+
|
|
251
|
+
### 9. Neon Cyber
|
|
252
|
+
|
|
253
|
+
- Vibe: futuristic, techy, kinetic
|
|
254
|
+
- Best for: AI, infra, dev tools, future-of-X talks
|
|
255
|
+
- Fonts: Clash Display + Satoshi
|
|
256
|
+
- Palette: midnight navy, cyan, magenta
|
|
257
|
+
- Signature: glow, particles, grids, data-radar energy
|
|
258
|
+
|
|
259
|
+
### 10. Terminal Green
|
|
260
|
+
|
|
261
|
+
- Vibe: developer-focused, hacker-clean
|
|
262
|
+
- Best for: APIs, CLI tools, engineering demos
|
|
263
|
+
- Fonts: JetBrains Mono only
|
|
264
|
+
- Palette: GitHub dark + terminal green
|
|
265
|
+
- Signature: scan lines, command-line framing, precise monospace rhythm
|
|
266
|
+
|
|
267
|
+
### 11. Swiss Modern
|
|
268
|
+
|
|
269
|
+
- Vibe: minimal, precise, data-forward
|
|
270
|
+
- Best for: corporate, product strategy, analytics
|
|
271
|
+
- Fonts: Archivo + Nunito
|
|
272
|
+
- Palette: white, black, signal red
|
|
273
|
+
- Signature: visible grids, asymmetry, geometric discipline
|
|
274
|
+
|
|
275
|
+
### 12. Paper & Ink
|
|
276
|
+
|
|
277
|
+
- Vibe: literary, thoughtful, story-driven
|
|
278
|
+
- Best for: essays, keynote narratives, manifesto decks
|
|
279
|
+
- Fonts: Cormorant Garamond + Source Serif 4
|
|
280
|
+
- Palette: warm cream, charcoal, crimson accent
|
|
281
|
+
- Signature: pull quotes, drop caps, elegant rules
|
|
282
|
+
|
|
283
|
+
## Direct Selection Prompts
|
|
284
|
+
|
|
285
|
+
If the user already knows the style they want, let them pick directly from the preset names above instead of forcing preview generation.
|
|
286
|
+
|
|
287
|
+
## Animation Feel Mapping
|
|
288
|
+
|
|
289
|
+
| Feeling | Motion Direction |
|
|
290
|
+
|---------|------------------|
|
|
291
|
+
| Dramatic / Cinematic | slow fades, parallax, large scale-ins |
|
|
292
|
+
| Techy / Futuristic | glow, particles, grid motion, scramble text |
|
|
293
|
+
| Playful / Friendly | springy easing, rounded shapes, floating motion |
|
|
294
|
+
| Professional / Corporate | subtle 200-300ms transitions, clean slides |
|
|
295
|
+
| Calm / Minimal | very restrained movement, whitespace-first |
|
|
296
|
+
| Editorial / Magazine | strong hierarchy, staggered text and image interplay |
|
|
297
|
+
|
|
298
|
+
## CSS Gotcha: Negating Functions
|
|
299
|
+
|
|
300
|
+
Never write these:
|
|
301
|
+
|
|
302
|
+
```css
|
|
303
|
+
right: -clamp(28px, 3.5vw, 44px);
|
|
304
|
+
margin-left: -min(10vw, 100px);
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
Browsers ignore them silently.
|
|
308
|
+
|
|
309
|
+
Always write this instead:
|
|
310
|
+
|
|
311
|
+
```css
|
|
312
|
+
right: calc(-1 * clamp(28px, 3.5vw, 44px));
|
|
313
|
+
margin-left: calc(-1 * min(10vw, 100px));
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
## Validation Sizes
|
|
317
|
+
|
|
318
|
+
Test at minimum:
|
|
319
|
+
- Desktop: `1920x1080`, `1440x900`, `1280x720`
|
|
320
|
+
- Tablet: `1024x768`, `768x1024`
|
|
321
|
+
- Mobile: `375x667`, `414x896`
|
|
322
|
+
- Landscape phone: `667x375`, `896x414`
|
|
323
|
+
|
|
324
|
+
## Anti-Patterns
|
|
325
|
+
|
|
326
|
+
Do not use:
|
|
327
|
+
- purple-on-white startup templates
|
|
328
|
+
- Inter / Roboto / Arial as the visual voice unless the user explicitly wants utilitarian neutrality
|
|
329
|
+
- bullet walls, tiny type, or code blocks that require scrolling
|
|
330
|
+
- decorative illustrations when abstract geometry would do the job better
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: frontend-ui-engineering
|
|
3
|
+
description: Builds production-quality UI with design-system compliance, accessibility, responsive behavior, and runtime proof. Use when implementing or changing user-facing interfaces.
|
|
4
|
+
origin: ECC
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Frontend UI Engineering
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
Frontend work is not "just make the UI appear."
|
|
12
|
+
This skill treats design quality, accessibility, responsive behavior, interaction states, and runtime verification as part of the implementation itself.
|
|
13
|
+
|
|
14
|
+
## When to Use
|
|
15
|
+
|
|
16
|
+
- building new pages, components, forms, or flows
|
|
17
|
+
- modifying existing user-facing UI
|
|
18
|
+
- implementing interaction changes or responsive layouts
|
|
19
|
+
- touching design-system components, page structure, or frontend state
|
|
20
|
+
|
|
21
|
+
**When NOT to use**
|
|
22
|
+
|
|
23
|
+
- backend-only or non-UI work
|
|
24
|
+
- pure documentation updates with no user-facing surface
|
|
25
|
+
|
|
26
|
+
## Workflow
|
|
27
|
+
|
|
28
|
+
1. Load the visual and product constraints first.
|
|
29
|
+
Start with approved design artifacts, design-system rules, component conventions, and relevant UI standards.
|
|
30
|
+
2. Define the required states.
|
|
31
|
+
Name the happy path, loading, empty, error, disabled, and responsive states before writing polish code.
|
|
32
|
+
3. Build structure before ornament.
|
|
33
|
+
Implement semantic layout, component boundaries, and state flow first.
|
|
34
|
+
Visual detail should reinforce the structure, not compensate for a weak structure.
|
|
35
|
+
4. Treat accessibility as a first-class requirement.
|
|
36
|
+
Use `../../references/accessibility-checklist.md` and `../../references/frontend-quality-checklist.md`.
|
|
37
|
+
Keyboard support, focus behavior, labels, semantics, and contrast are part of done.
|
|
38
|
+
5. Pair UI work with proof.
|
|
39
|
+
Use `../../references/testing-patterns.md` for behavior tests and runtime evidence.
|
|
40
|
+
For complex UI or interaction work, verify the behavior in a browser, not just in code.
|
|
41
|
+
6. Check responsive behavior intentionally.
|
|
42
|
+
Confirm the key flow still works across the relevant viewport sizes and input states.
|
|
43
|
+
|
|
44
|
+
## Common Rationalizations
|
|
45
|
+
|
|
46
|
+
| Rationalization | Reality |
|
|
47
|
+
|---|---|
|
|
48
|
+
| "The UI compiles, so it's basically done." | Compilation does not prove usable layout, accessibility, or runtime behavior. |
|
|
49
|
+
| "Accessibility can come later." | Retrofitting accessibility after the structure is baked is slower and riskier. |
|
|
50
|
+
| "Desktop is enough for now." | Responsive breakage is still product breakage. |
|
|
51
|
+
| "The design system will cover everything automatically." | Design systems reduce mistakes, but they do not remove the need for state, layout, and interaction judgment. |
|
|
52
|
+
|
|
53
|
+
## Red Flags
|
|
54
|
+
|
|
55
|
+
- no explicit state model for loading, empty, or error cases
|
|
56
|
+
- browser/runtime proof is missing for meaningful interaction changes
|
|
57
|
+
- design tokens or system components are bypassed without reason
|
|
58
|
+
- accessibility is mentioned vaguely instead of checked concretely
|
|
59
|
+
|
|
60
|
+
## Verification
|
|
61
|
+
|
|
62
|
+
After frontend implementation, confirm:
|
|
63
|
+
|
|
64
|
+
- [ ] required states are implemented, not implied
|
|
65
|
+
- [ ] the UI respects the active design system and conventions
|
|
66
|
+
- [ ] accessibility checks were applied deliberately
|
|
67
|
+
- [ ] the key flow works responsively at the relevant breakpoints
|
|
68
|
+
- [ ] runtime or browser evidence exists for meaningful interaction changes
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: git-workflow-and-versioning
|
|
3
|
+
description: Keeps work reviewable, reversible, and well-scoped. Use for any code change that needs branches, save points, commit hygiene, or parallel work isolation.
|
|
4
|
+
origin: ECC
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Git Workflow and Versioning
|
|
8
|
+
|
|
9
|
+
## Overview
|
|
10
|
+
|
|
11
|
+
Git is the safety system for fast-moving engineering work.
|
|
12
|
+
Treat branches as sandboxes, commits as save points, and history as operational documentation for humans, reviewers, and future agents.
|
|
13
|
+
|
|
14
|
+
## When to Use
|
|
15
|
+
|
|
16
|
+
- making any code, config, docs, or migration change
|
|
17
|
+
- deciding branch or worktree strategy
|
|
18
|
+
- choosing commit boundaries
|
|
19
|
+
- preparing changes for review or rollback
|
|
20
|
+
- organizing parallel agent or multi-slice work
|
|
21
|
+
|
|
22
|
+
**When NOT to use**
|
|
23
|
+
|
|
24
|
+
- only when no repository-backed change is being made at all
|
|
25
|
+
|
|
26
|
+
## Workflow
|
|
27
|
+
|
|
28
|
+
1. Start from the smallest isolated workspace that fits the change.
|
|
29
|
+
Prefer short-lived feature branches.
|
|
30
|
+
For parallel work or risky experiments, use worktrees instead of branch thrash.
|
|
31
|
+
2. Size the work before committing.
|
|
32
|
+
Break the change into logical slices that can be explained, reviewed, and reverted independently.
|
|
33
|
+
Use `../../references/git-save-points.md` when save-point discipline matters.
|
|
34
|
+
3. Commit each successful increment.
|
|
35
|
+
The pattern is:
|
|
36
|
+
implement slice -> verify slice -> commit slice.
|
|
37
|
+
Do not wait for one giant final commit.
|
|
38
|
+
4. Keep concerns separate.
|
|
39
|
+
Avoid mixing formatting, refactors, dependency churn, and feature behavior in the same commit unless they are inseparable.
|
|
40
|
+
Reviewable history is part of engineering quality.
|
|
41
|
+
5. Run pre-commit hygiene.
|
|
42
|
+
Check the staged diff, run the smallest relevant validation, and verify secrets or generated junk are not being committed.
|
|
43
|
+
6. Leave a scope map for the next human or agent.
|
|
44
|
+
Name:
|
|
45
|
+
- what changed
|
|
46
|
+
- what did not change
|
|
47
|
+
- what still needs follow-up
|
|
48
|
+
In AW flows, keep this aligned with the stage artifacts and change summaries.
|
|
49
|
+
|
|
50
|
+
## Common Rationalizations
|
|
51
|
+
|
|
52
|
+
| Rationalization | Reality |
|
|
53
|
+
|---|---|
|
|
54
|
+
| "I'll clean up the history later." | Messy history is harder to split and explain after the fact. |
|
|
55
|
+
| "One big commit is faster." | Giant commits are slower to review, debug, and revert. |
|
|
56
|
+
| "This cleanup can ride along with the feature." | Mixed concerns make scope, blame, and rollback harder. |
|
|
57
|
+
| "I don't need an isolated branch for a small change." | Isolation is cheap; accidental overlap is expensive. |
|
|
58
|
+
|
|
59
|
+
## Red Flags
|
|
60
|
+
|
|
61
|
+
- one commit mixes unrelated concerns
|
|
62
|
+
- the diff is too large to explain in one sentence
|
|
63
|
+
- no save point exists between meaningful slices
|
|
64
|
+
- generated output, secrets, or local-only noise are staged
|
|
65
|
+
- branch or worktree discipline is vague during multi-agent work
|
|
66
|
+
|
|
67
|
+
## Verification
|
|
68
|
+
|
|
69
|
+
After using git workflow discipline, confirm:
|
|
70
|
+
|
|
71
|
+
- [ ] the work is isolated in the right branch or worktree
|
|
72
|
+
- [ ] commit boundaries match real progress
|
|
73
|
+
- [ ] staged content excludes secrets and unrelated noise
|
|
74
|
+
- [ ] the history is reviewable and reversible
|
|
75
|
+
- [ ] the change summary makes scope boundaries explicit
|