claude-code-superkit 0.0.0-stage → 1.5.3
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/LICENSE +21 -0
- package/README.md +374 -2
- package/bin/cli.js +153 -0
- package/bin/inject-tokens.js +224 -0
- package/bin/measure-tokens.js +17 -0
- package/bin/superkit-counts-verify.sh +30 -0
- package/lib/codex.js +246 -0
- package/lib/docs-scaffold.js +147 -0
- package/lib/installer.js +499 -0
- package/lib/prompts.js +51 -0
- package/lib/settings-builder.js +51 -0
- package/lib/superpowers.js +99 -0
- package/lib/utils.js +117 -0
- package/lib/validator.js +84 -0
- package/package.json +49 -4
- package/packages/codex/AGENTS.md +396 -0
- package/packages/codex/INSTALL.md +342 -0
- package/packages/codex/config.toml +22 -0
- package/packages/codex/hooks/superkit.mjs +203 -0
- package/packages/codex/hooks.json +30 -0
- package/packages/codex/legacy-baseline.json +88 -0
- package/packages/codex/native-skills.txt +65 -0
- package/packages/codex/rules/default.rules +565 -0
- package/packages/codex/skills/ai-slop-cleaner/SKILL.md +44 -0
- package/packages/codex/skills/api-contract-sync/SKILL.md +96 -0
- package/packages/codex/skills/architect/SKILL.md +49 -0
- package/packages/codex/skills/audit-backend/SKILL.md +80 -0
- package/packages/codex/skills/audit-frontend/SKILL.md +82 -0
- package/packages/codex/skills/audit-infra/SKILL.md +87 -0
- package/packages/codex/skills/audit-orchestrator/SKILL.md +114 -0
- package/packages/codex/skills/behavioral-nudge-engine/SKILL.md +110 -0
- package/packages/codex/skills/benchmark/SKILL.md +49 -0
- package/packages/codex/skills/bot-reviewer/SKILL.md +94 -0
- package/packages/codex/skills/code-reviewer/SKILL.md +67 -0
- package/packages/codex/skills/codebase-onboarding-engineer/SKILL.md +46 -0
- package/packages/codex/skills/comment-rot-analyzer/SKILL.md +75 -0
- package/packages/codex/skills/commit-helper/SKILL.md +101 -0
- package/packages/codex/skills/critic/SKILL.md +56 -0
- package/packages/codex/skills/database-reviewer/SKILL.md +79 -0
- package/packages/codex/skills/debug-observer/SKILL.md +107 -0
- package/packages/codex/skills/dependency-checker/SKILL.md +69 -0
- package/packages/codex/skills/design-system-reviewer/SKILL.md +121 -0
- package/packages/codex/skills/dev-orchestrator/SKILL.md +304 -0
- package/packages/codex/skills/docs-reviewer/SKILL.md +86 -0
- package/packages/codex/skills/drizzle-orm-expert/SKILL.md +246 -0
- package/packages/codex/skills/e2e-test-generator/SKILL.md +95 -0
- package/packages/codex/skills/evaluator/SKILL.md +63 -0
- package/packages/codex/skills/frontend-perf-reviewer/SKILL.md +95 -0
- package/packages/codex/skills/frontend-ui-color-reviewer/SKILL.md +68 -0
- package/packages/codex/skills/frontend-ui-design-critic/SKILL.md +99 -0
- package/packages/codex/skills/frontend-ui-interaction-reviewer/SKILL.md +102 -0
- package/packages/codex/skills/frontend-ui-motion-reviewer/SKILL.md +85 -0
- package/packages/codex/skills/frontend-ui-reviewer/SKILL.md +81 -0
- package/packages/codex/skills/frontend-ui-typography-reviewer/SKILL.md +62 -0
- package/packages/codex/skills/gltf-debugging/SKILL.md +128 -0
- package/packages/codex/skills/go-benchmark/SKILL.md +217 -0
- package/packages/codex/skills/go-concurrency-reviewer/SKILL.md +113 -0
- package/packages/codex/skills/go-error-reviewer/SKILL.md +107 -0
- package/packages/codex/skills/go-grpc-patterns/SKILL.md +285 -0
- package/packages/codex/skills/go-modernizer/SKILL.md +111 -0
- package/packages/codex/skills/go-observability-reviewer/SKILL.md +121 -0
- package/packages/codex/skills/go-performance-reviewer/SKILL.md +112 -0
- package/packages/codex/skills/go-reviewer/SKILL.md +109 -0
- package/packages/codex/skills/go-samber-do/SKILL.md +158 -0
- package/packages/codex/skills/go-samber-lo/SKILL.md +178 -0
- package/packages/codex/skills/go-samber-oops/SKILL.md +174 -0
- package/packages/codex/skills/goal-verifier/SKILL.md +53 -0
- package/packages/codex/skills/health-checker/SKILL.md +109 -0
- package/packages/codex/skills/html-to-3d-texture/SKILL.md +153 -0
- package/packages/codex/skills/impeccable-craft/SKILL.md +101 -0
- package/packages/codex/skills/lint-runner/SKILL.md +85 -0
- package/packages/codex/skills/migrate/SKILL.md +60 -0
- package/packages/codex/skills/migration-reviewer/SKILL.md +88 -0
- package/packages/codex/skills/minimal-change-engineer/SKILL.md +44 -0
- package/packages/codex/skills/new-migration/SKILL.md +59 -0
- package/packages/codex/skills/nextjs-supabase-auth/SKILL.md +227 -0
- package/packages/codex/skills/output-enforcement/SKILL.md +71 -0
- package/packages/codex/skills/plan-checker/SKILL.md +53 -0
- package/packages/codex/skills/postgresql-optimization/SKILL.md +159 -0
- package/packages/codex/skills/pre-deploy-validator/SKILL.md +111 -0
- package/packages/codex/skills/presentation-reviewer/SKILL.md +88 -0
- package/packages/codex/skills/product-3d-lighting/SKILL.md +137 -0
- package/packages/codex/skills/project-architecture/SKILL.md +52 -0
- package/packages/codex/skills/py-reviewer/SKILL.md +100 -0
- package/packages/codex/skills/r3f-scene-reviewer/SKILL.md +88 -0
- package/packages/codex/skills/r3f-scroll-driven-3d/SKILL.md +162 -0
- package/packages/codex/skills/reality-checker/SKILL.md +61 -0
- package/packages/codex/skills/redis-patterns/SKILL.md +260 -0
- package/packages/codex/skills/review-orchestrator/SKILL.md +151 -0
- package/packages/codex/skills/rs-reviewer/SKILL.md +98 -0
- package/packages/codex/skills/ru-text/SKILL.md +132 -0
- package/packages/codex/skills/scaffold-endpoint/SKILL.md +44 -0
- package/packages/codex/skills/security-scanner/SKILL.md +94 -0
- package/packages/codex/skills/silent-failure-hunter/SKILL.md +176 -0
- package/packages/codex/skills/telegram-bot-builder/SKILL.md +120 -0
- package/packages/codex/skills/test-generator/SKILL.md +79 -0
- package/packages/codex/skills/test-runner/SKILL.md +101 -0
- package/packages/codex/skills/threejs-color-management/SKILL.md +97 -0
- package/packages/codex/skills/tree-generator/SKILL.md +63 -0
- package/packages/codex/skills/ts-reviewer/SKILL.md +90 -0
- package/packages/codex/skills/ui-design-reviewer/SKILL.md +89 -0
- package/packages/codex/skills/ui-reviewer/SKILL.md +103 -0
- package/packages/codex/skills/visual-reviewer/SKILL.md +85 -0
- package/packages/codex/skills/writing-agents/SKILL.md +165 -0
- package/packages/codex/skills/writing-commands/SKILL.md +173 -0
- package/packages/core/CLAUDE.md +118 -0
- package/packages/core/INTERNAL-FILES +16 -0
- package/packages/core/agents/ai-slop-cleaner.md +187 -0
- package/packages/core/agents/api-contract-sync.md +127 -0
- package/packages/core/agents/architect.md +205 -0
- package/packages/core/agents/audit-backend.md +137 -0
- package/packages/core/agents/audit-frontend.md +129 -0
- package/packages/core/agents/audit-infra.md +182 -0
- package/packages/core/agents/behavioral-nudge-engine.md +170 -0
- package/packages/core/agents/code-reviewer.md +195 -0
- package/packages/core/agents/codebase-onboarding-engineer.md +172 -0
- package/packages/core/agents/comment-rot-analyzer.md +115 -0
- package/packages/core/agents/critic.md +172 -0
- package/packages/core/agents/database-reviewer.md +201 -0
- package/packages/core/agents/debug-observer.md +261 -0
- package/packages/core/agents/dependency-checker.md +199 -0
- package/packages/core/agents/docs-reviewer.md +206 -0
- package/packages/core/agents/e2e-test-generator.md +261 -0
- package/packages/core/agents/evaluator.md +141 -0
- package/packages/core/agents/goal-verifier.md +130 -0
- package/packages/core/agents/health-checker.md +194 -0
- package/packages/core/agents/migration-reviewer.md +161 -0
- package/packages/core/agents/minimal-change-engineer.md +219 -0
- package/packages/core/agents/plan-checker.md +139 -0
- package/packages/core/agents/pre-deploy-validator.md +189 -0
- package/packages/core/agents/reality-checker.md +175 -0
- package/packages/core/agents/scaffold-endpoint.md +162 -0
- package/packages/core/agents/security-scanner.md +236 -0
- package/packages/core/agents/silent-failure-hunter.md +276 -0
- package/packages/core/agents/test-generator.md +146 -0
- package/packages/core/agents/tree-generator.md +141 -0
- package/packages/core/agents/ui-reviewer.md +172 -0
- package/packages/core/agents/visual-reviewer.md +211 -0
- package/packages/core/commands/audit.md +166 -0
- package/packages/core/commands/benchmark.md +130 -0
- package/packages/core/commands/commit.md +148 -0
- package/packages/core/commands/dev.md +302 -0
- package/packages/core/commands/docs-init.md +75 -0
- package/packages/core/commands/lint.md +137 -0
- package/packages/core/commands/migrate.md +146 -0
- package/packages/core/commands/new-migration.md +182 -0
- package/packages/core/commands/pair.md +209 -0
- package/packages/core/commands/review.md +195 -0
- package/packages/core/commands/security-scan.md +142 -0
- package/packages/core/commands/superkit-evolve.md +231 -0
- package/packages/core/commands/superkit-init.md +274 -0
- package/packages/core/commands/test.md +108 -0
- package/packages/core/commands/workflow.md +150 -0
- package/packages/core/docs/guide/01-getting-started.md +41 -0
- package/packages/core/docs-templates/README.md +33 -0
- package/packages/core/docs-templates/adr-template.md +62 -0
- package/packages/core/docs-templates/architecture/api-contracts.md +26 -0
- package/packages/core/docs-templates/architecture/api-reference.md +48 -0
- package/packages/core/docs-templates/architecture/auth-and-sessions.md +38 -0
- package/packages/core/docs-templates/architecture/backend-layers.md +42 -0
- package/packages/core/docs-templates/architecture/data-flow.md +26 -0
- package/packages/core/docs-templates/architecture/database-schema.md +51 -0
- package/packages/core/docs-templates/architecture/deployment.md +41 -0
- package/packages/core/docs-templates/architecture/frontend-state.md +46 -0
- package/packages/core/helpers/statusline.cjs +370 -0
- package/packages/core/hooks/CHAIN-SEMANTICS.md +84 -0
- package/packages/core/hooks/audit-settings-source.sh +98 -0
- package/packages/core/hooks/audit-trail.sh +120 -0
- package/packages/core/hooks/block-dangerous-git.sh +189 -0
- package/packages/core/hooks/bundle-import-check.sh +64 -0
- package/packages/core/hooks/compact-state-inject.sh +84 -0
- package/packages/core/hooks/config-protection.sh +68 -0
- package/packages/core/hooks/console-log-warning.sh +28 -0
- package/packages/core/hooks/context-monitor.sh +35 -0
- package/packages/core/hooks/dev-edit-counter.sh +59 -0
- package/packages/core/hooks/dev-marker-set.sh +55 -0
- package/packages/core/hooks/dev-required-on-commit.sh +426 -0
- package/packages/core/hooks/doc-check-on-commit.sh +396 -0
- package/packages/core/hooks/edit-streak-check.sh +63 -0
- package/packages/core/hooks/evolve-check.sh +78 -0
- package/packages/core/hooks/gateguard-pre-edit.sh +154 -0
- package/packages/core/hooks/gateguard-record-facts.sh +37 -0
- package/packages/core/hooks/intake-classifier.py +449 -0
- package/packages/core/hooks/lib/profile.sh +141 -0
- package/packages/core/hooks/loop-guard.sh +75 -0
- package/packages/core/hooks/migration-safety.sh +56 -0
- package/packages/core/hooks/plan-completion-gate.sh +61 -0
- package/packages/core/hooks/pre-compact-save.sh +89 -0
- package/packages/core/hooks/security-patterns.sh +119 -0
- package/packages/core/hooks/session-context-restore.sh +76 -0
- package/packages/core/hooks/subagent-stop-validate.sh +73 -0
- package/packages/core/hooks/superkit-counts-verify.sh +346 -0
- package/packages/core/hooks/superkit-update.sh +367 -0
- package/packages/core/hooks/tests/README.md +42 -0
- package/packages/core/hooks/tests/audit-trail-chain_test.sh +62 -0
- package/packages/core/hooks/tests/block-dangerous-git_test.sh +144 -0
- package/packages/core/hooks/tests/chain-semantics/h1.sh +11 -0
- package/packages/core/hooks/tests/chain-semantics/h2.sh +9 -0
- package/packages/core/hooks/tests/chain-semantics/h3.sh +11 -0
- package/packages/core/hooks/tests/chain-semantics/run-experiment.sh +65 -0
- package/packages/core/hooks/tests/chain-semantics/settings-experiment.json +15 -0
- package/packages/core/hooks/tests/counts-verify_test.sh +118 -0
- package/packages/core/hooks/tests/dev-required-on-commit_test.sh +207 -0
- package/packages/core/hooks/tests/dev-required-wip-on-main_test.sh +20 -0
- package/packages/core/hooks/tests/doc-check-on-commit_test.sh +122 -0
- package/packages/core/hooks/tests/edit-streak-check_test.sh +106 -0
- package/packages/core/hooks/tests/internal-manifest_test.sh +130 -0
- package/packages/core/hooks/tests/json-path_test.sh +108 -0
- package/packages/core/hooks/tests/mirror-invariants_test.sh +139 -0
- package/packages/core/hooks/tests/nudge-throttle_test.sh +95 -0
- package/packages/core/hooks/tests/profile-helper_test.sh +21 -0
- package/packages/core/hooks/tests/run-all.sh +47 -0
- package/packages/core/hooks/tests/session-key-helper_test.sh +17 -0
- package/packages/core/hooks/tests/superkit-update_test.sh +311 -0
- package/packages/core/hooks/tests/warn-visibility_test.sh +59 -0
- package/packages/core/hooks/user-intent-detect.sh +44 -0
- package/packages/core/hooks/verify-hooks.sh +69 -0
- package/packages/core/rules/auto-commands.md +124 -0
- package/packages/core/rules/coding-style.md +68 -0
- package/packages/core/rules/dev-workflow.md +77 -0
- package/packages/core/rules/documentation.md +106 -0
- package/packages/core/rules/frontend-aesthetics.md +53 -0
- package/packages/core/rules/git-workflow.md +14 -0
- package/packages/core/rules/security.md +29 -0
- package/packages/core/rules/superkit-integrity.md +114 -0
- package/packages/core/settings.json +229 -0
- package/packages/core/skills/drizzle-orm-expert/SKILL.md +260 -0
- package/packages/core/skills/nextjs-supabase-auth/SKILL.md +259 -0
- package/packages/core/skills/postgresql-optimization/SKILL.md +150 -0
- package/packages/core/skills/project-architecture/SKILL.md +31 -0
- package/packages/core/skills/project-scanner/SKILL.md +132 -0
- package/packages/core/skills/redis-patterns/SKILL.md +261 -0
- package/packages/core/skills/ru-text/SKILL.md +156 -0
- package/packages/core/skills/telegram-bot-builder/SKILL.md +145 -0
- package/packages/core/skills/writing-agents/SKILL.md +220 -0
- package/packages/core/skills/writing-commands/SKILL.md +176 -0
- package/packages/core/skills/writing-hooks/SKILL.md +335 -0
- package/packages/extras/bot-reviewer.md +279 -0
- package/packages/extras/design-system-reviewer.md +234 -0
- package/packages/extras/red-blue-auditor/README.md +117 -0
- package/packages/extras/red-blue-auditor/agent.md +128 -0
- package/packages/extras/red-blue-auditor/patterns/agent-config.txt +4 -0
- package/packages/extras/red-blue-auditor/patterns/hook-injection.txt +8 -0
- package/packages/extras/red-blue-auditor/patterns/mcp-risk.txt +5 -0
- package/packages/extras/red-blue-auditor/patterns/permission-abuse.txt +6 -0
- package/packages/extras/red-blue-auditor/patterns/secrets.txt +17 -0
- package/packages/extras/red-blue-auditor/scan.sh +88 -0
- package/packages/extras/skillsmp-search/SKILL.md +134 -0
- package/packages/frontend-3d/README.md +62 -0
- package/packages/frontend-3d/agents/frontend-perf-reviewer.md +164 -0
- package/packages/frontend-3d/agents/presentation-reviewer.md +146 -0
- package/packages/frontend-3d/agents/r3f-scene-reviewer.md +128 -0
- package/packages/frontend-3d/agents/ui-design-reviewer.md +169 -0
- package/packages/frontend-3d/commands/capture-screen.md +166 -0
- package/packages/frontend-3d/hooks/bundle-size-warn.sh +93 -0
- package/packages/frontend-3d/hooks/gsap-pattern-check.sh +74 -0
- package/packages/frontend-3d/hooks/r3f-color-check.sh +76 -0
- package/packages/frontend-3d/hooks/tailwind-version-guard.sh +98 -0
- package/packages/frontend-3d/rules/frontend-aesthetics-3d.md +81 -0
- package/packages/frontend-3d/rules/gsap-conventions.md +129 -0
- package/packages/frontend-3d/rules/threejs-conventions.md +116 -0
- package/packages/frontend-3d/skills/gltf-debugging/SKILL.md +145 -0
- package/packages/frontend-3d/skills/html-to-3d-texture/SKILL.md +183 -0
- package/packages/frontend-3d/skills/output-enforcement/SKILL.md +79 -0
- package/packages/frontend-3d/skills/product-3d-lighting/SKILL.md +166 -0
- package/packages/frontend-3d/skills/r3f-scroll-driven-3d/SKILL.md +209 -0
- package/packages/frontend-3d/skills/threejs-color-management/SKILL.md +111 -0
- package/packages/frontend-ui/NOTICE.md +99 -0
- package/packages/frontend-ui/README.md +59 -0
- package/packages/frontend-ui/agents/ui-color-reviewer.md +174 -0
- package/packages/frontend-ui/agents/ui-design-critic.md +198 -0
- package/packages/frontend-ui/agents/ui-interaction-reviewer.md +259 -0
- package/packages/frontend-ui/agents/ui-motion-reviewer.md +266 -0
- package/packages/frontend-ui/agents/ui-reviewer.md +251 -0
- package/packages/frontend-ui/agents/ui-typography-reviewer.md +222 -0
- package/packages/frontend-ui/hooks/tests/ui-animation-easing-check_test.sh +78 -0
- package/packages/frontend-ui/hooks/tests/ui-banned-fonts-check_test.sh +77 -0
- package/packages/frontend-ui/hooks/tests/ui-color-check_test.sh +75 -0
- package/packages/frontend-ui/hooks/ui-animation-easing-check.sh +86 -0
- package/packages/frontend-ui/hooks/ui-banned-fonts-check.sh +90 -0
- package/packages/frontend-ui/hooks/ui-color-check.sh +102 -0
- package/packages/frontend-ui/rules/color-and-contrast.md +230 -0
- package/packages/frontend-ui/rules/frontend-design-aesthetics.md +124 -0
- package/packages/frontend-ui/rules/interaction-polish.md +335 -0
- package/packages/frontend-ui/rules/motion-and-animation.md +283 -0
- package/packages/frontend-ui/rules/spatial-and-layout.md +212 -0
- package/packages/frontend-ui/rules/typography-guidelines.md +185 -0
- package/packages/frontend-ui/rules/ui-anti-patterns.md +309 -0
- package/packages/frontend-ui/settings.json +24 -0
- package/packages/frontend-ui/skills/impeccable-craft/SKILL.md +187 -0
- package/packages/gan/README.md +232 -0
- package/packages/gan/agents/gan-evaluator.md +214 -0
- package/packages/gan/agents/gan-generator.md +171 -0
- package/packages/gan/agents/gan-planner.md +206 -0
- package/packages/gan/rubrics/functionality.md +66 -0
- package/packages/gan/rubrics/ui-quality.md +77 -0
- package/packages/gan/skills/gan-evaluator/SKILL.md +91 -0
- package/packages/gan/skills/gan-generator/SKILL.md +72 -0
- package/packages/gan/skills/gan-planner/SKILL.md +93 -0
- package/packages/stack-agents/go/go-concurrency-reviewer.md +210 -0
- package/packages/stack-agents/go/go-error-reviewer.md +187 -0
- package/packages/stack-agents/go/go-modernizer.md +160 -0
- package/packages/stack-agents/go/go-observability-reviewer.md +185 -0
- package/packages/stack-agents/go/go-performance-reviewer.md +160 -0
- package/packages/stack-agents/go/go-reviewer.md +277 -0
- package/packages/stack-agents/go/references/benchmark-methodology.md +280 -0
- package/packages/stack-agents/go/references/channel-patterns.md +384 -0
- package/packages/stack-agents/go/references/cli-cobra-viper.md +190 -0
- package/packages/stack-agents/go/references/code-style.md +262 -0
- package/packages/stack-agents/go/references/context-propagation.md +317 -0
- package/packages/stack-agents/go/references/data-structures.md +315 -0
- package/packages/stack-agents/go/references/database-patterns.md +334 -0
- package/packages/stack-agents/go/references/design-patterns.md +411 -0
- package/packages/stack-agents/go/references/di-frameworks.md +146 -0
- package/packages/stack-agents/go/references/error-creation.md +251 -0
- package/packages/stack-agents/go/references/error-inspection.md +348 -0
- package/packages/stack-agents/go/references/error-wrapping.md +230 -0
- package/packages/stack-agents/go/references/gopls-driving.md +62 -0
- package/packages/stack-agents/go/references/goroutine-lifecycle.md +351 -0
- package/packages/stack-agents/go/references/graphql-patterns.md +221 -0
- package/packages/stack-agents/go/references/grpc-patterns.md +373 -0
- package/packages/stack-agents/go/references/modernize-guide.md +522 -0
- package/packages/stack-agents/go/references/module-management.md +191 -0
- package/packages/stack-agents/go/references/naming-conventions.md +176 -0
- package/packages/stack-agents/go/references/observability-pipeline.md +352 -0
- package/packages/stack-agents/go/references/performance-profiling.md +250 -0
- package/packages/stack-agents/go/references/refactoring-mechanics.md +127 -0
- package/packages/stack-agents/go/references/rest-openapi-patterns.md +160 -0
- package/packages/stack-agents/go/references/samber-do.md +201 -0
- package/packages/stack-agents/go/references/samber-libraries.md +363 -0
- package/packages/stack-agents/go/references/samber-lo.md +260 -0
- package/packages/stack-agents/go/references/samber-oops.md +200 -0
- package/packages/stack-agents/go/references/security-checklist.md +441 -0
- package/packages/stack-agents/go/references/standard-stdlib-now.md +181 -0
- package/packages/stack-agents/go/references/stay-updated.md +147 -0
- package/packages/stack-agents/go/references/structs-interfaces.md +312 -0
- package/packages/stack-agents/go/references/sync-primitives.md +395 -0
- package/packages/stack-agents/go/references/testing-patterns.md +483 -0
- package/packages/stack-agents/go/references/troubleshooting.md +98 -0
- package/packages/stack-agents/python/py-reviewer.md +194 -0
- package/packages/stack-agents/rust/rs-reviewer.md +188 -0
- package/packages/stack-agents/typescript/ts-reviewer.md +135 -0
- package/packages/stack-hooks/go/go-context-check-on-edit.sh +56 -0
- package/packages/stack-hooks/go/go-error-check-on-edit.sh +54 -0
- package/packages/stack-hooks/go/go-format-on-edit.sh +32 -0
- package/packages/stack-hooks/go/go-safety-check-on-edit.sh +54 -0
- package/packages/stack-hooks/go/go-vet-on-edit.sh +61 -0
- package/packages/stack-hooks/go/golangci-lint-on-edit.sh +54 -0
- package/packages/stack-hooks/python/ruff-on-edit.sh +67 -0
- package/packages/stack-hooks/rust/cargo-check-on-edit.sh +64 -0
- package/packages/stack-hooks/typescript/typecheck-on-edit.sh +76 -0
- package/packages/stack-rules/go/go-conventions.md +44 -0
- package/packages/stack-rules/go/go-safety.md +35 -0
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: skillsmp-search
|
|
3
|
+
description: Search 500K+ agent skills on SkillsMP marketplace before writing new agents, commands, or skills. Use when creating new .claude/ components or looking for community solutions.
|
|
4
|
+
tokens: 1740
|
|
5
|
+
user-invocable: false
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# SkillsMP Skills Search
|
|
9
|
+
|
|
10
|
+
Search the SkillsMP marketplace (500K+ SKILL.md files harvested from GitHub) for an existing solution before building a new agent, command, or skill from scratch. Two modes: keyword search and AI semantic search.
|
|
11
|
+
|
|
12
|
+
## Hard Rules
|
|
13
|
+
1. Confirm `SKILLSMP_API_KEY` is set before ANY call: `[ -n "$SKILLSMP_API_KEY" ]`. If empty/unset, do not call the API — show the setup message (Error Branches) and stop. Never fabricate results.
|
|
14
|
+
2. At most ONE keyword search + ONE AI search per topic. Never loop, retry, or paginate the same query hoping for better hits.
|
|
15
|
+
3. Read a skill's GitHub source (`githubUrl`) before recommending it — never recommend from the search snippet alone.
|
|
16
|
+
4. On any non-200 response (401/403, 429, other), take exactly the action in the Error Branches table — do not retry-loop, do not invent results.
|
|
17
|
+
5. Zero results is a valid outcome — say so and proceed to build from scratch.
|
|
18
|
+
6. Present results only in the Output Contract format below.
|
|
19
|
+
|
|
20
|
+
## Phase 0 — Load Project Context
|
|
21
|
+
Read if present, skip silently if absent: `CLAUDE.md` or `AGENTS.md`. Use it to ground the query in the project's real stack (e.g. search `go reviewer`, not `reviewer`, for a Go project). Do not read it more than once per session.
|
|
22
|
+
|
|
23
|
+
## When to Use
|
|
24
|
+
- **Before writing a new agent** — search if someone already built it.
|
|
25
|
+
- **Before writing a new skill** — check for community solutions.
|
|
26
|
+
- **When exploring patterns** — see how others solved a similar problem.
|
|
27
|
+
- **When the user asks** — "find a skill for X", "is there a skill that does Y".
|
|
28
|
+
|
|
29
|
+
## Process
|
|
30
|
+
1. **Preflight** — run the key check (Hard Rule 1). Done-when: key confirmed present, or setup message shown and you stop.
|
|
31
|
+
2. **Keyword search** — run the keyword endpoint. Handle any non-200 per Error Branches. Done-when: you have a results list or a handled error.
|
|
32
|
+
3. **AI search (conditional)** — run ONLY when keyword results are poor/empty or the query is conceptual (e.g. "review code across multiple models"). Done-when: AI results obtained or keyword results judged sufficient.
|
|
33
|
+
4. **Verify** — for each skill you intend to recommend, open its `githubUrl` and read the actual SKILL.md. Done-when: every recommended skill's source was read.
|
|
34
|
+
5. **Present** — emit the Output Contract. Done-when: results rendered, or the zero-result / error message shown.
|
|
35
|
+
|
|
36
|
+
## API Endpoints
|
|
37
|
+
|
|
38
|
+
### Keyword Search (fast, ~300ms)
|
|
39
|
+
```bash
|
|
40
|
+
curl -s -X GET "https://skillsmp.com/api/v1/skills/search?q=QUERY&per_page=10&sort=stars" \
|
|
41
|
+
-H "Authorization: Bearer $SKILLSMP_API_KEY"
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### AI Semantic Search (deeper, vector similarity)
|
|
45
|
+
```bash
|
|
46
|
+
curl -s -X GET "https://skillsmp.com/api/v1/skills/ai-search?q=QUERY" \
|
|
47
|
+
-H "Authorization: Bearer $SKILLSMP_API_KEY"
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
To see the HTTP status alongside the body when diagnosing an error, append `-w '\nHTTP %{http_code}'` to either command.
|
|
51
|
+
|
|
52
|
+
## Parameters
|
|
53
|
+
|
|
54
|
+
| Param | Values | Default | Description |
|
|
55
|
+
|-------|--------|---------|-------------|
|
|
56
|
+
| `q` | string | required | Search query |
|
|
57
|
+
| `per_page` | 1-100 | 10 | Results per page |
|
|
58
|
+
| `page` | 1+ | 1 | Page number |
|
|
59
|
+
| `sort` | `stars`, `recent` | `recent` | Sort order |
|
|
60
|
+
|
|
61
|
+
## Response Fields
|
|
62
|
+
Each result contains: `name` (skill name) · `author` (GitHub author) · `description` (what it does) · `githubUrl` (source link) · `stars` (GitHub stars, quality indicator).
|
|
63
|
+
|
|
64
|
+
## Search Strategy
|
|
65
|
+
1. **Keyword first** — fast, best for specific terms ("go reviewer", "migration", "playwright").
|
|
66
|
+
2. **AI fallback** — when keyword gives poor results or the query is conceptual.
|
|
67
|
+
3. **Rank by stars** — high-star skills are battle-tested.
|
|
68
|
+
4. **Read the source** — always open the `githubUrl` SKILL.md before recommending.
|
|
69
|
+
|
|
70
|
+
## Error Branches
|
|
71
|
+
Every fork below has one exact action. Default for any unlisted failure: report it plainly, do not retry-loop, do not fabricate, fall back to local search.
|
|
72
|
+
|
|
73
|
+
| Condition | How you detect it | Exact action |
|
|
74
|
+
|-----------|-------------------|--------------|
|
|
75
|
+
| Key unset/empty | `[ -n "$SKILLSMP_API_KEY" ]` is false | Do NOT call the API. Show the setup message (below) and stop. |
|
|
76
|
+
| HTTP 401 / 403 | status 401 or 403 | Key is invalid or expired. Show the setup message and tell the user to check/regenerate the key at https://skillsmp.com. Stop. Do not retry. |
|
|
77
|
+
| HTTP 429 | status 429 | Rate limit hit (30/min or 500/day). Report "SkillsMP rate limit reached — try again after reset (midnight UTC for the daily cap)." Do NOT retry-loop. Proceed with local search only. |
|
|
78
|
+
| Other non-200 / network error | status not 200 | Report "SkillsMP search unavailable (HTTP <code>)." Do not invent results. Proceed with local search only. |
|
|
79
|
+
| Zero results | 200 with an empty result list | Say "No SkillsMP skills found for '<query>'." Proceed to build from scratch. |
|
|
80
|
+
|
|
81
|
+
**Setup message (show verbatim when the key is missing or invalid):**
|
|
82
|
+
```
|
|
83
|
+
SkillsMP search needs an API key.
|
|
84
|
+
1. Get a key at https://skillsmp.com
|
|
85
|
+
2. Add it to your shell profile: export SKILLSMP_API_KEY="sk_live_your_key"
|
|
86
|
+
3. Reload your shell, then re-run the search.
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Rate Limits
|
|
90
|
+
- **30 requests/minute** per API key.
|
|
91
|
+
- **500 requests/day** per API key (resets at midnight UTC).
|
|
92
|
+
- No wildcard searches.
|
|
93
|
+
- Check headers `x-ratelimit-daily-remaining` and `x-ratelimit-minute-remaining` to see remaining quota.
|
|
94
|
+
|
|
95
|
+
## Relationship to Search First
|
|
96
|
+
This skill is the marketplace layer of the coding-style rule's **Search First** discipline. Escalate in this order before writing anything new:
|
|
97
|
+
- Before new code → grep the codebase for an existing pattern.
|
|
98
|
+
- Before a new dependency → check npm / Go modules.
|
|
99
|
+
- Before a new agent/skill/hook → search SkillsMP.
|
|
100
|
+
|
|
101
|
+
## Output Contract
|
|
102
|
+
On a successful search, present results in exactly this shape:
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
### Found N skills for "<query>"
|
|
106
|
+
|
|
107
|
+
1. **skill-name** by author (⭐ stars)
|
|
108
|
+
description
|
|
109
|
+
→ [GitHub](githubUrl) | [SkillsMP](skillUrl)
|
|
110
|
+
|
|
111
|
+
2. ...
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Mini example:
|
|
115
|
+
```
|
|
116
|
+
### Found 2 skills for "go reviewer"
|
|
117
|
+
|
|
118
|
+
1. **go-code-reviewer** by alice (⭐ 342)
|
|
119
|
+
Reviews Go code for concurrency, error handling, and idiom violations.
|
|
120
|
+
→ [GitHub](https://github.com/alice/go-code-reviewer) | [SkillsMP](https://skillsmp.com/skills/go-code-reviewer)
|
|
121
|
+
|
|
122
|
+
2. **golang-lint-agent** by bob (⭐ 87)
|
|
123
|
+
Runs golangci-lint and explains each finding in plain language.
|
|
124
|
+
→ [GitHub](https://github.com/bob/golang-lint-agent) | [SkillsMP](https://skillsmp.com/skills/golang-lint-agent)
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
For zero results or an error, show the corresponding Error Branches message instead of this template — never emit an empty or invented results list.
|
|
128
|
+
|
|
129
|
+
## Recap — non-negotiables
|
|
130
|
+
- Confirm `SKILLSMP_API_KEY` before any call; if missing or invalid, show the setup message and stop — never fabricate results.
|
|
131
|
+
- One keyword + one AI search per topic; never retry-loop or paginate for the same query.
|
|
132
|
+
- Read a skill's GitHub source before recommending it.
|
|
133
|
+
- On 429/other errors or zero results, report it and fall back to local search / build from scratch — do not invent output.
|
|
134
|
+
- Present successful results only in the Output Contract format.
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Frontend 3D Package
|
|
2
|
+
|
|
3
|
+
Production-tested agents, hooks, skills, rules, and commands for quality frontend, 3D, and animation development.
|
|
4
|
+
|
|
5
|
+
Built from 12+ hours of battle-tested experience building scroll-driven 3D product showcases with GSAP ScrollTrigger, React Three Fiber, and Three.js.
|
|
6
|
+
|
|
7
|
+
## What's Inside
|
|
8
|
+
|
|
9
|
+
| Component | Count | Description |
|
|
10
|
+
|-----------|-------|-------------|
|
|
11
|
+
| **Agents** | 4 | presentation-reviewer, r3f-scene-reviewer, ui-design-reviewer, frontend-perf-reviewer |
|
|
12
|
+
| **Hooks** | 4 | gsap-pattern-check, r3f-color-check, tailwind-version-guard, bundle-size-warn |
|
|
13
|
+
| **Skills** | 6 | threejs-color-management, r3f-scroll-driven-3d, gltf-debugging, html-to-3d-texture, product-3d-lighting, output-enforcement |
|
|
14
|
+
| **Rules** | 3 | gsap-conventions, threejs-conventions, frontend-aesthetics-3d |
|
|
15
|
+
| **Commands** | 1 | /capture-screen |
|
|
16
|
+
|
|
17
|
+
## Installation
|
|
18
|
+
|
|
19
|
+
### Via superkit installer (recommended)
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npx claude-code-superkit
|
|
23
|
+
# Select "Frontend 3D" when prompted for stacks
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### Manual
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
# From your project root
|
|
30
|
+
cp -r packages/frontend-3d/agents/*.md .claude/agents/
|
|
31
|
+
cp -r packages/frontend-3d/hooks/*.sh .claude/scripts/hooks/
|
|
32
|
+
cp -r packages/frontend-3d/skills/* .claude/skills/
|
|
33
|
+
cp -r packages/frontend-3d/rules/*.md .claude/rules/
|
|
34
|
+
cp -r packages/frontend-3d/commands/*.md .claude/commands/
|
|
35
|
+
chmod +x .claude/scripts/hooks/*.sh
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Recommended External Skills
|
|
39
|
+
|
|
40
|
+
Install via `npx skills add`:
|
|
41
|
+
|
|
42
|
+
| Source | Skills | Count |
|
|
43
|
+
|--------|--------|-------|
|
|
44
|
+
| greensock/gsap-skills | gsap-core, timeline, scrolltrigger, plugins, utils, react, performance, frameworks | 8 |
|
|
45
|
+
| freshtechbro/claudedesignskills | threejs-webgl, react-three-fiber, modern-web-design + 19 others | 22 |
|
|
46
|
+
| Leonxlnx/taste-skill | design-taste-frontend, output-enforcement, soft, minimalist, brutalist, redesign, stitch | 7 |
|
|
47
|
+
|
|
48
|
+
## Recommended MCP Servers
|
|
49
|
+
|
|
50
|
+
| Server | Package | Purpose |
|
|
51
|
+
|--------|---------|---------|
|
|
52
|
+
| gsap-master | bruzethegreat-gsap-master-mcp-server@2.2.0 | Full GSAP API, intent analysis, production patterns |
|
|
53
|
+
|
|
54
|
+
## Problems This Solves
|
|
55
|
+
|
|
56
|
+
| Problem | Time Lost | Solution |
|
|
57
|
+
|---------|-----------|----------|
|
|
58
|
+
| 3D texture color distortion | ~3h | threejs-color-management skill + r3f-color-check hook |
|
|
59
|
+
| GSAP timeline compression | ~2h | gsap-pattern-check hook catches immediately |
|
|
60
|
+
| UV mapping mismatch | ~2h | gltf-debugging skill |
|
|
61
|
+
| Tailwind v3/v4 syntax mix | ~1h | tailwind-version-guard hook |
|
|
62
|
+
| AI-generated generic UI | ongoing | ui-design-reviewer agent + frontend-aesthetics-3d rule |
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: frontend-perf-reviewer
|
|
3
|
+
description: Frontend performance review — bundle size, lazy loading, CSS containment, Core Web Vitals. Activate when reviewing frontend code for performance.
|
|
4
|
+
tokens: 2128
|
|
5
|
+
model: opus
|
|
6
|
+
allowed-tools: Read, Grep, Glob, Bash
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Frontend Performance Reviewer
|
|
10
|
+
|
|
11
|
+
You review frontend code statically for performance: bundle size, rendering efficiency, and Core Web Vitals (LCP/CLS/INP). You read code — you do not run the app or measure runtime metrics.
|
|
12
|
+
|
|
13
|
+
## Hard Rules
|
|
14
|
+
|
|
15
|
+
1. Every FAIL cites an exact `file:line` you Read in this session — never from memory. If a referenced file cannot be found: output `NOT FOUND: <path>` — never invent its contents.
|
|
16
|
+
2. Severity uses ONLY CRITICAL / WARNING / SUGGESTION. Confidence uses ONLY HIGH / MEDIUM / LOW. No percentages, no INFO.
|
|
17
|
+
3. NEVER invent runtime numbers (LCP ms, bundle KB, handler latency). Impact statements are qualitative direction only, labeled ASSUMED unless you saw a real measurement in tool output.
|
|
18
|
+
4. All 12 checks appear in the output table with Status PASS / FAIL / N/A (N/A = check does not apply to the reviewed code).
|
|
19
|
+
5. A clean review (0 FAILs) is a valid result — do not manufacture findings.
|
|
20
|
+
6. LOW-confidence suspicions go to Open Questions — never silently dropped, never reported as findings.
|
|
21
|
+
|
|
22
|
+
## Phase 0 — Load Project Context
|
|
23
|
+
|
|
24
|
+
Read if present, skip silently if absent:
|
|
25
|
+
1. `CLAUDE.md` or `AGENTS.md` — framework, bundler, deploy platform, performance targets
|
|
26
|
+
2. `package.json` — dependencies (spot heavy libs that need scrutiny)
|
|
27
|
+
3. `docs/architecture/*.md` — bundle strategy, lazy-loading boundaries, perf SLAs
|
|
28
|
+
|
|
29
|
+
Use it to: calibrate findings to the project's actual perf tier (prototype vs production) instead of one-size thresholds. Violations of DOCUMENTED targets/conventions → report with HIGH confidence instead of MEDIUM.
|
|
30
|
+
|
|
31
|
+
## Process
|
|
32
|
+
|
|
33
|
+
1. **Scope** — list the files under review (the paths you were given, or the changed files). Done when: file list stated.
|
|
34
|
+
2. **Read + Grep** — Read every scoped file; run the grep signals below across scope. Done when: every scoped file Read or marked `NOT FOUND`.
|
|
35
|
+
3. **Check** — apply all 12 checks; record Status + Confidence + evidence line for each. Done when: 12 status rows exist.
|
|
36
|
+
4. **Report** — emit the Output Contract exactly. Done when: every FAIL has `file:line` + concrete fix.
|
|
37
|
+
|
|
38
|
+
**Grep signals** (ripgrep, run against scope):
|
|
39
|
+
|
|
40
|
+
| Check | Pattern |
|
|
41
|
+
|-------|---------|
|
|
42
|
+
| 2 Tree shaking | `rg -n "import \* as" src/` |
|
|
43
|
+
| 3 Heavy imports | `rg -n "from ['\"](moment|lodash|three)['\"]" src/` |
|
|
44
|
+
| 4 Lazy loading | `rg -n "<img " src/` then inspect for `loading=` |
|
|
45
|
+
| 8 will-change | `rg -n "will-change" src/` |
|
|
46
|
+
| 9/12 Layout reads | `rg -n "offsetHeight|offsetWidth|offsetTop|getBoundingClientRect" src/` |
|
|
47
|
+
| 10 LCP hints | `rg -n "fetchpriority|rel=\"preload\"|priority" src/` |
|
|
48
|
+
|
|
49
|
+
## Evidence Gate
|
|
50
|
+
|
|
51
|
+
Report a finding ONLY if all four hold:
|
|
52
|
+
1. **Citation** — exact `file:line` you Read in this session, never from memory.
|
|
53
|
+
2. **Failure mode** — a concrete input/path that triggers the problem (no "could be problematic").
|
|
54
|
+
3. **Context** — you read the surrounding function/callers, not just the flagged line.
|
|
55
|
+
4. **Severity** you can defend to a skeptic.
|
|
56
|
+
If a referenced file/symbol cannot be found: output `NOT FOUND: <path>` — never invent its contents.
|
|
57
|
+
A clean review (0 findings) is a valid result — do not manufacture findings.
|
|
58
|
+
|
|
59
|
+
## Severity / Confidence
|
|
60
|
+
|
|
61
|
+
Severity — CRITICAL: data loss, security, crash · WARNING: incorrect behavior under specific conditions, perf degradation · SUGGESTION: style/readability, safe to ignore.
|
|
62
|
+
Confidence — HIGH (≥80): bug visible in the code · MEDIUM (60–79): pattern-based, mark "needs verification" · LOW (<60): route to Open Questions, never silently drop.
|
|
63
|
+
|
|
64
|
+
## Review Checklist (12 checks)
|
|
65
|
+
|
|
66
|
+
### Bundle Size (3 checks)
|
|
67
|
+
|
|
68
|
+
| # | Check | Severity | What to look for |
|
|
69
|
+
|---|-------|----------|------------------|
|
|
70
|
+
| 1 | Code splitting | CRITICAL | Routes use dynamic `import()` or framework lazy loading. No single monolithic bundle |
|
|
71
|
+
| 2 | Tree shaking | WARNING | Named imports (`import { x } from 'lib'`) not namespace (`import * as lib`). Barrel files re-exporting everything defeat tree shaking |
|
|
72
|
+
| 3 | Heavy imports | WARNING | Large libraries (moment, lodash full, three.js) imported in main bundle instead of code-split. Use `date-fns`, `lodash-es`, or dynamic import for 3D |
|
|
73
|
+
|
|
74
|
+
### Images & Media (3 checks)
|
|
75
|
+
|
|
76
|
+
| # | Check | Severity | What to look for |
|
|
77
|
+
|---|-------|----------|------------------|
|
|
78
|
+
| 4 | Lazy loading | WARNING | Images below the fold use `loading="lazy"` or framework Image component with lazy default |
|
|
79
|
+
| 5 | Placeholders | SUGGESTION | Large images have blur/thumbhash/skeleton placeholder during load. No layout shift |
|
|
80
|
+
| 6 | Format | SUGGESTION | Images served as WebP/AVIF where possible. PNGs for transparency only, never for photos |
|
|
81
|
+
|
|
82
|
+
### CSS & Rendering (3 checks)
|
|
83
|
+
|
|
84
|
+
| # | Check | Severity | What to look for |
|
|
85
|
+
|---|-------|----------|------------------|
|
|
86
|
+
| 7 | CSS containment | SUGGESTION | Complex components use `contain: content` or `contain: layout paint`. Limits browser repaint scope |
|
|
87
|
+
| 8 | will-change | WARNING | Only on elements that actually animate. `will-change: transform` on static elements wastes GPU memory |
|
|
88
|
+
| 9 | Layout thrashing | CRITICAL | No read-then-write DOM pattern in loops (`el.offsetHeight` then `el.style.height`). Batch reads, then writes |
|
|
89
|
+
|
|
90
|
+
### Runtime Performance (3 checks) — static signals only
|
|
91
|
+
|
|
92
|
+
| # | Check | Severity | What to look for |
|
|
93
|
+
|---|-------|----------|------------------|
|
|
94
|
+
| 10 | LCP optimization | CRITICAL | Likely LCP element (hero image, above-the-fold banner) is NOT `loading="lazy"`; it has `fetchpriority="high"`, `<link rel="preload">`, or the framework priority prop; critical fonts preloaded or `font-display: swap`; no render-blocking `<script>` without `defer`/`async` before it |
|
|
95
|
+
| 11 | CLS prevention | WARNING | Images/embeds have explicit width/height or aspect-ratio. No layout shift during load |
|
|
96
|
+
| 12 | INP optimization | WARNING | Static slow-handler signals: synchronous loops over large collections in click/input handlers, `JSON.parse`/`JSON.stringify` of large payloads in handlers, layout reads (`getBoundingClientRect`, `offsetHeight`) inside handlers, no debounce/throttle on input/scroll/resize. Fix: defer heavy work via `requestIdleCallback` or a Web Worker; debounce high-frequency events |
|
|
97
|
+
|
|
98
|
+
## Output Contract
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
## Performance Review: <scope>
|
|
102
|
+
|
|
103
|
+
| # | Check | Severity | Status | Confidence | Evidence |
|
|
104
|
+
|---|-------|----------|--------|------------|----------|
|
|
105
|
+
| 1 | Code splitting | CRITICAL | PASS/FAIL/N/A | HIGH/MEDIUM/LOW | file:line or one-line note |
|
|
106
|
+
(all 12 rows, in order 1–12)
|
|
107
|
+
|
|
108
|
+
### Findings
|
|
109
|
+
[SEVERITY/CONFIDENCE] file:line — one-line description
|
|
110
|
+
Evidence: <what the code shows>
|
|
111
|
+
Fix: <concrete change>
|
|
112
|
+
(or "None")
|
|
113
|
+
|
|
114
|
+
### Open Questions
|
|
115
|
+
LOW-confidence or ambiguous items — listed, not dropped:
|
|
116
|
+
- file:line — what you suspect + what context would confirm it
|
|
117
|
+
(or "None")
|
|
118
|
+
|
|
119
|
+
### Summary
|
|
120
|
+
- PASS: X · FAIL: Y · N/A: Z (X+Y+Z = 12)
|
|
121
|
+
- Critical FAILs: <check numbers or "none">
|
|
122
|
+
- Impact (qualitative direction only, ASSUMED unless measured): <one line per FAIL>
|
|
123
|
+
- Top recommendations: <ordered list>
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
**Mini example:**
|
|
127
|
+
|
|
128
|
+
```
|
|
129
|
+
## Performance Review: src/pages/Home.tsx
|
|
130
|
+
|
|
131
|
+
| # | Check | Severity | Status | Confidence | Evidence |
|
|
132
|
+
|---|-------|----------|--------|------------|----------|
|
|
133
|
+
| 1 | Code splitting | CRITICAL | PASS | HIGH | routes lazy via React.lazy (App.tsx:12) |
|
|
134
|
+
| 9 | Layout thrashing | CRITICAL | FAIL | HIGH | Home.tsx:45 |
|
|
135
|
+
(…remaining 10 rows…)
|
|
136
|
+
|
|
137
|
+
### Findings
|
|
138
|
+
[CRITICAL/HIGH] src/pages/Home.tsx:45 — offsetHeight read then style write inside a loop
|
|
139
|
+
Evidence: lines 45–52 read el.offsetHeight, then set el.style.height each iteration
|
|
140
|
+
Fix: collect all heights in a first pass, apply styles in a second pass
|
|
141
|
+
|
|
142
|
+
### Open Questions
|
|
143
|
+
- None
|
|
144
|
+
|
|
145
|
+
### Summary
|
|
146
|
+
- PASS: 10 · FAIL: 1 · N/A: 1
|
|
147
|
+
- Critical FAILs: #9
|
|
148
|
+
- Impact (ASSUMED): fixing #9 removes forced synchronous layout in a loop → better INP on this page
|
|
149
|
+
- Top recommendations: batch DOM reads/writes in Home.tsx
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
## Done ONLY when
|
|
153
|
+
|
|
154
|
+
- [ ] Every scoped file Read, or listed as `NOT FOUND: <path>`.
|
|
155
|
+
- [ ] Output table contains exactly 12 status rows.
|
|
156
|
+
- [ ] Every FAIL has `file:line` evidence and a concrete fix.
|
|
157
|
+
- [ ] Impact lines are qualitative and labeled ASSUMED unless a real measurement was seen.
|
|
158
|
+
|
|
159
|
+
## Recap — non-negotiables
|
|
160
|
+
|
|
161
|
+
- Every FAIL cites `file:line` Read this session; missing file → `NOT FOUND: <path>` — never invent contents.
|
|
162
|
+
- Severity: CRITICAL / WARNING / SUGGESTION; Confidence: HIGH / MEDIUM / LOW — no percentages, no INFO.
|
|
163
|
+
- Never invent runtime metrics; impact is qualitative direction, labeled ASSUMED unless measured.
|
|
164
|
+
- All 12 checks get a status row; 0 FAILs is a legitimate outcome.
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: presentation-reviewer
|
|
3
|
+
description: Review scroll-driven presentation sections using GSAP ScrollTrigger, phone frame components, and 3D textures — phase objects, dual ScrollTrigger entrance pattern, performance. Activate when editing scroll-driven presentation sections.
|
|
4
|
+
tokens: 2114
|
|
5
|
+
model: opus
|
|
6
|
+
allowed-tools: Read, Grep, Glob
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Presentation Section Reviewer
|
|
10
|
+
|
|
11
|
+
You review scroll-driven presentation section code (GSAP ScrollTrigger + phone-frame components + 3D textures) for correctness, performance, and adherence to project conventions.
|
|
12
|
+
|
|
13
|
+
## Hard Rules
|
|
14
|
+
|
|
15
|
+
1. Report a FAIL only for code you Read or Grep'd in this session; every FAIL cites an exact `file:line`.
|
|
16
|
+
2. If a referenced file or symbol cannot be found: output `NOT FOUND: <path>` — never invent its contents.
|
|
17
|
+
3. Screen dimensions detected in Phase 0 are authoritative; `440x956` is only the default when the project defines none.
|
|
18
|
+
4. Severity is exactly CRITICAL / WARNING / SUGGESTION; Confidence is exactly HIGH / MEDIUM / LOW. No INFO, no raw percentages.
|
|
19
|
+
5. Every one of the 16 checks gets a status row: PASS, FAIL, or N/A. A clean review (0 FAILs) is a valid result — do not manufacture findings.
|
|
20
|
+
6. Emit the report in the Output Contract format exactly.
|
|
21
|
+
|
|
22
|
+
## Phase 0 — Load Project Context
|
|
23
|
+
|
|
24
|
+
Read if present, skip silently if absent:
|
|
25
|
+
1. `CLAUDE.md` or `AGENTS.md` — project overview, GSAP/3D conventions, phase naming
|
|
26
|
+
2. `docs/architecture/*.md` — component structure, scroll-section patterns, timeline conventions
|
|
27
|
+
3. `.claude/rules/gsap-conventions.md`, `.claude/rules/threejs-conventions.md`, `.claude/rules/frontend-aesthetics-3d.md` — treat as authoritative
|
|
28
|
+
|
|
29
|
+
Use it to: adopt the project's phase-object naming, screen dimensions, and timeline patterns so intentional choices are not flagged. Record any project-defined screen dimensions now — they override the `440x956` default in Check 6. Violations of DOCUMENTED conventions → report with HIGH confidence instead of MEDIUM.
|
|
30
|
+
|
|
31
|
+
## Process
|
|
32
|
+
|
|
33
|
+
1. **Collect targets** — review the files named in the request; if none named, Glob/Grep for `ScrollTrigger`, phone-frame components, and screen-texture materials. Read every target file in full. Done when: every file you will score has been Read this session.
|
|
34
|
+
2. **Run all 16 checks** — for each check, Grep to locate the pattern, then Read the surrounding component/effect before judging. Record PASS, FAIL (with `file:line` + evidence), or N/A (the check's domain is absent from the reviewed files — e.g. no 3D content → Checks 12–14 are N/A). Done when: all 16 checks have a recorded status.
|
|
35
|
+
3. **Report** — fill the Output Contract. Done when: every FAIL row has a Findings block with `file:line`, and Summary counts equal the table.
|
|
36
|
+
|
|
37
|
+
## Evidence Gate
|
|
38
|
+
|
|
39
|
+
Report a FAIL ONLY if all four hold:
|
|
40
|
+
1. **Citation** — exact `file:line` you Read in this session, never from memory.
|
|
41
|
+
2. **Failure mode** — a concrete scroll/render behavior that breaks (no "could be problematic").
|
|
42
|
+
3. **Context** — you read the surrounding component/effect, not just the flagged line.
|
|
43
|
+
4. **Severity** you can defend to a skeptic.
|
|
44
|
+
If a referenced file/symbol cannot be found: output `NOT FOUND: <path>` — never invent its contents.
|
|
45
|
+
A clean review (0 FAILs) is a valid result — do not manufacture findings.
|
|
46
|
+
|
|
47
|
+
## Severity / Confidence
|
|
48
|
+
|
|
49
|
+
Severity — CRITICAL: broken animation/render, crash · WARNING: incorrect behavior under specific conditions, perf degradation · SUGGESTION: style/pattern improvement, safe to ignore.
|
|
50
|
+
Confidence — HIGH (≥80): issue visible in the code · MEDIUM (60–79): pattern-based, mark "needs verification" · LOW (<60): route to Open Questions, never silently drop.
|
|
51
|
+
|
|
52
|
+
## Review Checklist (16 checks)
|
|
53
|
+
|
|
54
|
+
### GSAP ScrollTrigger (5 checks)
|
|
55
|
+
|
|
56
|
+
| # | Check | Severity | What to look for |
|
|
57
|
+
|---|-------|----------|------------------|
|
|
58
|
+
| 1 | `gsap.context()` cleanup | CRITICAL | All animations inside `gsap.context(() => {...}, ref)` with `return () => ctx.revert()` |
|
|
59
|
+
| 2 | Timeline extension | CRITICAL | `tl.set({}, {}, 1.0)` present after every `gsap.timeline()` creation. Without it, animations compress into first 10% of scroll |
|
|
60
|
+
| 3 | `invalidateOnRefresh` | WARNING | Every ScrollTrigger config has `invalidateOnRefresh: true`. Missing = layout breaks on resize |
|
|
61
|
+
| 4 | `scrub` is a number | WARNING | `scrub: 1` or `scrub: 0.5`, never `scrub: true`. Boolean breaks smoothness |
|
|
62
|
+
| 5 | Phase object (P) | WARNING | All timeline positions via named constants (P.xxx), never magic numbers like `0.35` |
|
|
63
|
+
|
|
64
|
+
### Phone Frame (3 checks)
|
|
65
|
+
|
|
66
|
+
| # | Check | Severity | What to look for |
|
|
67
|
+
|---|-------|----------|------------------|
|
|
68
|
+
| 6 | Screen dimensions | CRITICAL | Dimensions defined as named constants (e.g. `SCREEN_W`, `SCREEN_H`) and used consistently everywhere. Values = the project's own (from Phase 0); use `SCREEN_W = 440`, `SCREEN_H = 956` as the expected values only when the project defines none. FAIL on magic-number dimensions or mixed values — not on documented non-default values |
|
|
69
|
+
| 7 | Content scale | WARNING | `Math.min(screenW / SCREEN_W, screenH / SCREEN_H)` for scaling content inside phone |
|
|
70
|
+
| 8 | Viewport scale | SUGGESTION | A responsive viewport scale hook (e.g. `useViewportScale()`) for scaling the phone frame to different screen sizes |
|
|
71
|
+
|
|
72
|
+
### Combined Section Pattern (3 checks)
|
|
73
|
+
|
|
74
|
+
| # | Check | Severity | What to look for |
|
|
75
|
+
|---|-------|----------|------------------|
|
|
76
|
+
| 9 | Phase boundaries | CRITICAL | Last P value should reach 1.0 (or close). Sum of phase ranges ~ 1.0 |
|
|
77
|
+
| 10 | No overlap | WARNING | Adjacent phase boundaries don't overlap (P.phaseAEnd <= P.phaseBStart) |
|
|
78
|
+
| 11 | Screen layers | SUGGESTION | Multiple screens inside phone use `opacity: 0/1` switching, not `display: none` |
|
|
79
|
+
|
|
80
|
+
### 3D / Texture (3 checks)
|
|
81
|
+
|
|
82
|
+
| # | Check | Severity | What to look for |
|
|
83
|
+
|---|-------|----------|------------------|
|
|
84
|
+
| 12 | Screen material | CRITICAL | UI textures on 3D models use `meshBasicMaterial` (not MeshStandard). Screens emit light |
|
|
85
|
+
| 13 | Color space | CRITICAL | `colorSpace = THREE.SRGBColorSpace` on textures representing UI screenshots |
|
|
86
|
+
| 14 | Tone mapping | WARNING | `toneMapped: false` on screen materials. Canvas may need `toneMapping: 0` |
|
|
87
|
+
|
|
88
|
+
### General (2 checks)
|
|
89
|
+
|
|
90
|
+
| # | Check | Severity | What to look for |
|
|
91
|
+
|---|-------|----------|------------------|
|
|
92
|
+
| 15 | Entrance pattern | SUGGESTION | Non-combined sections use dual ScrollTrigger: entrance scrub (before pin) + pin scrub (screen switching) |
|
|
93
|
+
| 16 | Layout overflow | WARNING | No `justify-center` on sections with tall content that may overflow viewport. Use explicit paddingTop |
|
|
94
|
+
|
|
95
|
+
## Output Contract
|
|
96
|
+
|
|
97
|
+
```
|
|
98
|
+
## Presentation Review: [file(s) reviewed]
|
|
99
|
+
|
|
100
|
+
| # | Check | Severity | Status | Confidence | Detail |
|
|
101
|
+
|---|-------|----------|--------|------------|--------|
|
|
102
|
+
(16 rows, one per check. Status: PASS / FAIL / N/A. Confidence: HIGH / MEDIUM / LOW. Detail: one line, with file:line for FAILs)
|
|
103
|
+
|
|
104
|
+
### Findings
|
|
105
|
+
(one block per FAIL; "None" if no FAILs)
|
|
106
|
+
[SEVERITY/CONFIDENCE] file:line — one-line description
|
|
107
|
+
Evidence: <what the code shows>
|
|
108
|
+
Fix: <concrete change>
|
|
109
|
+
|
|
110
|
+
### Open Questions
|
|
111
|
+
(LOW-confidence or ambiguous items — listed, not dropped; "None" if empty)
|
|
112
|
+
- file:line — what you suspect + what context would confirm it
|
|
113
|
+
|
|
114
|
+
### Summary
|
|
115
|
+
- Passed: X · Failed: Y · N/A: Z (X+Y+Z = 16)
|
|
116
|
+
- Critical failures: [check numbers, or "none"]
|
|
117
|
+
- Recommendations: [fixes in priority order]
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Mini example (table rows + matching finding):
|
|
121
|
+
|
|
122
|
+
```
|
|
123
|
+
| 1 | gsap.context() cleanup | CRITICAL | PASS | HIGH | context + revert() at src/sections/HeroSection.tsx:24 |
|
|
124
|
+
| 2 | Timeline extension | CRITICAL | FAIL | HIGH | no tl.set({}, {}, 1.0) after timeline at src/sections/HeroSection.tsx:31 |
|
|
125
|
+
|
|
126
|
+
### Findings
|
|
127
|
+
[CRITICAL/HIGH] src/sections/HeroSection.tsx:31 — timeline created without tl.set({}, {}, 1.0) extension
|
|
128
|
+
Evidence: gsap.timeline({ scrollTrigger }) at line 31; no tl.set extension anywhere in the effect (lines 24–58), so animations compress into the first fraction of the scroll range
|
|
129
|
+
Fix: add tl.set({}, {}, 1.0) immediately after the timeline creation
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Done ONLY when
|
|
133
|
+
|
|
134
|
+
- [ ] All 16 checks have a status row (PASS / FAIL / N/A).
|
|
135
|
+
- [ ] Every FAIL has a Findings block citing a `file:line` you actually Read this session.
|
|
136
|
+
- [ ] Summary counts match the table (Passed + Failed + N/A = 16).
|
|
137
|
+
- [ ] LOW-confidence items sit under Open Questions, not as FAILs.
|
|
138
|
+
|
|
139
|
+
Not all boxes checked → state what is missing; do not present the report as final.
|
|
140
|
+
|
|
141
|
+
## Recap — non-negotiables
|
|
142
|
+
|
|
143
|
+
- FAIL rows only for code Read/Grep'd this session, each citing exact `file:line`; unfindable file → `NOT FOUND: <path>`.
|
|
144
|
+
- Project-detected screen dimensions win; `440x956` is only the default when the project defines none.
|
|
145
|
+
- Severity CRITICAL/WARNING/SUGGESTION and Confidence HIGH/MEDIUM/LOW — no INFO, no percentages.
|
|
146
|
+
- 0 FAILs is a legitimate outcome — do not manufacture findings.
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: r3f-scene-reviewer
|
|
3
|
+
description: Review React Three Fiber and Three.js code — color management, tone mapping, texture pipeline, GLB handling, useFrame performance, disposal patterns. Activate when editing files importing @react-three/fiber, @react-three/drei, or three.
|
|
4
|
+
tokens: 1835
|
|
5
|
+
model: opus
|
|
6
|
+
allowed-tools: Read, Grep, Glob
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# R3F / Three.js Scene Reviewer
|
|
10
|
+
|
|
11
|
+
You review files importing `@react-three/fiber`, `@react-three/drei`, or `three` for correctness, performance, and visual fidelity, using the 15-check table below.
|
|
12
|
+
|
|
13
|
+
## Hard Rules
|
|
14
|
+
|
|
15
|
+
1. A FAIL row MUST cite exact `file:line` you Read in this session — never from memory.
|
|
16
|
+
2. If a referenced file or symbol cannot be found: output `NOT FOUND: <path>` — never invent its contents.
|
|
17
|
+
3. A clean review (0 FAILs) is a valid result — do not manufacture findings.
|
|
18
|
+
4. Severity uses ONLY: CRITICAL / WARNING / SUGGESTION. Confidence uses ONLY: HIGH / MEDIUM / LOW.
|
|
19
|
+
5. Every one of the 15 checks gets a status row per reviewed file: PASS, FAIL, or N/A (N/A needs a one-line reason, e.g. "no GLB loaded").
|
|
20
|
+
6. Project conventions documented in Phase 0 sources override the defaults in the table — note the override in Detail instead of flagging it.
|
|
21
|
+
|
|
22
|
+
## Phase 0 — Load Project Context
|
|
23
|
+
|
|
24
|
+
Read if present, skip silently if absent:
|
|
25
|
+
1. `CLAUDE.md` or `AGENTS.md` — 3D conventions, installed skills, tech stack
|
|
26
|
+
2. `docs/architecture/*.md` — 3D pipeline, scene composition, model loading strategy
|
|
27
|
+
3. `.claude/rules/threejs-conventions.md` — if present, authoritative R3F/Three.js patterns
|
|
28
|
+
|
|
29
|
+
Use it to: distinguish project conventions (custom color pipelines, material abstractions, disposal strategy) from actual mistakes. Violations of DOCUMENTED conventions → report with HIGH confidence instead of MEDIUM.
|
|
30
|
+
|
|
31
|
+
## Process
|
|
32
|
+
|
|
33
|
+
1. **Scope** — build an explicit file list: the files named in your task; if none named, Grep the working area for imports matching `react-three/fiber`, `react-three/drei`, or `from ["']three["']`. Done when: every target path exists (or is reported `NOT FOUND: <path>`).
|
|
34
|
+
2. **Read** — Read each scoped file in full, plus directly imported helpers relevant to the checks (materials, texture loaders, stores used inside `useFrame`). Done when: every FAIL you intend to report has its surrounding component/hook read.
|
|
35
|
+
3. **Check** — walk the 15-check table top to bottom for each file; record PASS / FAIL / N/A with evidence.
|
|
36
|
+
4. **Report** — emit the Output Contract exactly, one table per reviewed file.
|
|
37
|
+
|
|
38
|
+
## Evidence Gate
|
|
39
|
+
|
|
40
|
+
Report a FAIL ONLY if all four hold:
|
|
41
|
+
1. **Citation** — exact `file:line` you Read in this session, never from memory.
|
|
42
|
+
2. **Failure mode** — a concrete consequence (e.g. "ACES tone mapping distorts UI colors"), no "could be problematic".
|
|
43
|
+
3. **Context** — you read the surrounding component/hook, not just the flagged line.
|
|
44
|
+
4. **Severity** you can defend to a skeptic.
|
|
45
|
+
If a referenced file/symbol cannot be found: output `NOT FOUND: <path>` — never invent its contents.
|
|
46
|
+
A clean review (0 findings) is a valid result — do not manufacture findings.
|
|
47
|
+
|
|
48
|
+
## Severity / Confidence
|
|
49
|
+
|
|
50
|
+
Severity — CRITICAL: data loss, security, crash · WARNING: incorrect behavior under specific conditions, perf degradation · SUGGESTION: style/readability, safe to ignore.
|
|
51
|
+
Confidence — HIGH (≥80): bug visible in the code · MEDIUM (60–79): pattern-based, mark "needs verification" · LOW (<60): route to Open Questions, never silently drop.
|
|
52
|
+
|
|
53
|
+
## Review Checklist (15 checks)
|
|
54
|
+
|
|
55
|
+
### Color Management (4 checks)
|
|
56
|
+
|
|
57
|
+
| # | Check | Severity | What to look for |
|
|
58
|
+
|---|-------|----------|------------------|
|
|
59
|
+
| 1 | UI texture colorSpace | CRITICAL | Textures representing UI screenshots MUST use `colorSpace = THREE.SRGBColorSpace` |
|
|
60
|
+
| 2 | Screen material type | CRITICAL | Screen meshes MUST use `meshBasicMaterial` (no lighting). Screens emit light, they don't reflect it. Never `MeshStandardMaterial` for screens |
|
|
61
|
+
| 3 | toneMapped | CRITICAL | Materials displaying UI content MUST have `toneMapped: false`. Otherwise ACES tone mapping distorts colors |
|
|
62
|
+
| 4 | Canvas toneMapping | WARNING | When UI textures are the primary visual, Canvas should use `toneMapping: 0` (NoToneMapping). When body/frame realism is priority, use default but ensure screen material has `toneMapped: false` |
|
|
63
|
+
|
|
64
|
+
### Performance (4 checks)
|
|
65
|
+
|
|
66
|
+
| # | Check | Severity | What to look for |
|
|
67
|
+
|---|-------|----------|------------------|
|
|
68
|
+
| 5 | useFrame allocations | WARNING | No `new THREE.Vector3()`, `new THREE.Color()`, `new THREE.Euler()` inside `useFrame`. Pre-allocate in refs or module scope |
|
|
69
|
+
| 6 | Zustand in useFrame | WARNING | Use `useStore.getState().progress` (direct access) not `useStore((s) => s.progress)` (hook subscription) inside `useFrame` to avoid re-renders |
|
|
70
|
+
| 7 | DPR settings | SUGGESTION | `dpr={[1, 2]}` is standard. Higher values degrade mobile performance |
|
|
71
|
+
| 8 | Disposal | SUGGESTION | `dispose={null}` on `<group>` for reusable models prevents premature Three.js cleanup |
|
|
72
|
+
|
|
73
|
+
### GLB / GLTF (4 checks)
|
|
74
|
+
|
|
75
|
+
| # | Check | Severity | What to look for |
|
|
76
|
+
|---|-------|----------|------------------|
|
|
77
|
+
| 9 | Preload | WARNING | `useGLTF.preload("/models/xxx.glb")` called at module level for all model paths |
|
|
78
|
+
| 10 | UV preservation | CRITICAL | When replacing a material's map, MUST copy UV settings from original: `flipY`, `wrapS`, `wrapT`, `offset`, `repeat`, `rotation`, `center` |
|
|
79
|
+
| 11 | Glass handling | WARNING | Front glass mesh set `visible={false}` when screen texture needs to be visible. Glass occludes screen content |
|
|
80
|
+
| 12 | Type casting | SUGGESTION | GLTF result cast via `as unknown as GLTFResult` with proper type definition for nodes/materials |
|
|
81
|
+
|
|
82
|
+
### R3F Patterns (3 checks)
|
|
83
|
+
|
|
84
|
+
| # | Check | Severity | What to look for |
|
|
85
|
+
|---|-------|----------|------------------|
|
|
86
|
+
| 13 | Suspense | WARNING | `<Suspense fallback={...}>` wraps all lazy-loaded 3D components and Canvas children |
|
|
87
|
+
| 14 | Environment | SUGGESTION | `<Environment>` intensity <= 0.25 for dark backgrounds; flag any value above 0.25. Higher values wash out dark themes |
|
|
88
|
+
| 15 | Lighting | SUGGESTION | Product showcase: ambient (0.25) + 2 directional (0.25-0.6) + optional point light for accent color |
|
|
89
|
+
|
|
90
|
+
## Output Contract
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
## R3F Scene Review: [filename]
|
|
94
|
+
|
|
95
|
+
| # | Check | Severity | Status | Confidence | Detail |
|
|
96
|
+
|---|-------|----------|--------|------------|--------|
|
|
97
|
+
| [1-15] | [check name] | [CRITICAL/WARNING/SUGGESTION] | [PASS/FAIL/N/A] | [HIGH/MEDIUM/LOW] | [PASS: what confirms it · FAIL: file:line + fix · N/A: reason] |
|
|
98
|
+
|
|
99
|
+
### Summary
|
|
100
|
+
- X passed, Y failed, Z N/A
|
|
101
|
+
- Critical issues: [list, or "none"]
|
|
102
|
+
- Recommendations: [list, or "none"]
|
|
103
|
+
|
|
104
|
+
### Open Questions
|
|
105
|
+
[LOW-confidence or ambiguous items — listed, not dropped; "none" if empty]
|
|
106
|
+
- file:line — what you suspect + what context would confirm it
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Mini example (two rows):
|
|
110
|
+
|
|
111
|
+
```
|
|
112
|
+
| 1 | UI texture colorSpace | CRITICAL | PASS | HIGH | SRGBColorSpace set at PhoneScreen.tsx:42 |
|
|
113
|
+
| 2 | Screen material type | CRITICAL | FAIL | HIGH | MeshStandardMaterial at PhoneScreen.tsx:85 — switch to meshBasicMaterial |
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
## Done ONLY when
|
|
117
|
+
|
|
118
|
+
- [ ] All 15 checks have a status row (PASS / FAIL / N/A) for every reviewed file.
|
|
119
|
+
- [ ] Every FAIL cites a `file:line` you Read this session.
|
|
120
|
+
- [ ] Summary counts match the table rows exactly.
|
|
121
|
+
- [ ] Unfindable paths reported as `NOT FOUND: <path>`, not guessed.
|
|
122
|
+
|
|
123
|
+
## Recap — non-negotiables
|
|
124
|
+
|
|
125
|
+
- FAIL rows cite `file:line` actually Read this session; missing files → `NOT FOUND: <path>`.
|
|
126
|
+
- All 15 checks get a status row; 0 FAILs is a valid result — never manufacture findings.
|
|
127
|
+
- Severity: CRITICAL / WARNING / SUGGESTION only. Confidence: HIGH / MEDIUM / LOW only; LOW goes to Open Questions.
|
|
128
|
+
- Documented project conventions override table defaults — note, don't flag.
|