ac-framework 1.4.0 → 1.6.0
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 +1 -1
- package/bin/postinstall.js +18 -2
- package/framework/.agent/skills/openspec-apply-change/SKILL.md +4 -4
- package/framework/.agent/skills/openspec-archive-change/SKILL.md +4 -4
- package/framework/.agent/skills/openspec-bulk-archive-change/SKILL.md +3 -3
- package/framework/.agent/skills/openspec-continue-change/SKILL.md +5 -5
- package/framework/.agent/skills/openspec-explore/SKILL.md +2 -2
- package/framework/.agent/skills/openspec-ff-change/SKILL.md +7 -7
- package/framework/.agent/skills/openspec-new-change/SKILL.md +5 -5
- package/framework/.agent/skills/openspec-onboard/SKILL.md +6 -6
- package/framework/.agent/skills/openspec-sync-specs/SKILL.md +2 -2
- package/framework/.agent/skills/openspec-verify-change/SKILL.md +4 -4
- package/framework/.agent/skills/performance-optimizer/SKILL.md +43 -0
- package/framework/.agent/skills/project-constitution/SKILL.md +66 -0
- package/framework/.agent/skills/requirement-checklist/SKILL.md +90 -0
- package/framework/.agent/skills/spec-analysis/SKILL.md +65 -0
- package/framework/.agent/skills/spec-clarification/SKILL.md +73 -0
- package/framework/.agent/skills/sync-index/SKILL.md +35 -0
- package/framework/.agent/skills/test-generator/SKILL.md +41 -0
- package/framework/.agent/skills/vercel-react-best-practices/AGENTS.md +2934 -0
- package/framework/.agent/skills/vercel-react-best-practices/SKILL.md +136 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/framework/.agent/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/framework/.agent/workflows/ac.md +261 -0
- package/framework/.agent/workflows/opsx-apply.md +3 -3
- package/framework/.agent/workflows/opsx-archive.md +3 -3
- package/framework/.agent/workflows/opsx-bulk-archive.md +2 -2
- package/framework/.agent/workflows/opsx-continue.md +4 -4
- package/framework/.agent/workflows/opsx-explore.md +1 -1
- package/framework/.agent/workflows/opsx-ff.md +6 -6
- package/framework/.agent/workflows/opsx-new.md +4 -4
- package/framework/.agent/workflows/opsx-onboard.md +5 -5
- package/framework/.agent/workflows/opsx-sync.md +1 -1
- package/framework/.agent/workflows/opsx-verify.md +3 -3
- package/framework/.amazonq/prompts/ac.md +261 -0
- package/framework/.amazonq/prompts/opsx-apply.md +3 -3
- package/framework/.amazonq/prompts/opsx-archive.md +3 -3
- package/framework/.amazonq/prompts/opsx-bulk-archive.md +2 -2
- package/framework/.amazonq/prompts/opsx-continue.md +4 -4
- package/framework/.amazonq/prompts/opsx-explore.md +1 -1
- package/framework/.amazonq/prompts/opsx-ff.md +6 -6
- package/framework/.amazonq/prompts/opsx-new.md +4 -4
- package/framework/.amazonq/prompts/opsx-onboard.md +5 -5
- package/framework/.amazonq/prompts/opsx-sync.md +1 -1
- package/framework/.amazonq/prompts/opsx-verify.md +3 -3
- package/framework/.amazonq/skills/openspec-apply-change/SKILL.md +4 -4
- package/framework/.amazonq/skills/openspec-archive-change/SKILL.md +4 -4
- package/framework/.amazonq/skills/openspec-bulk-archive-change/SKILL.md +3 -3
- package/framework/.amazonq/skills/openspec-continue-change/SKILL.md +5 -5
- package/framework/.amazonq/skills/openspec-explore/SKILL.md +2 -2
- package/framework/.amazonq/skills/openspec-ff-change/SKILL.md +7 -7
- package/framework/.amazonq/skills/openspec-new-change/SKILL.md +5 -5
- package/framework/.amazonq/skills/openspec-onboard/SKILL.md +6 -6
- package/framework/.amazonq/skills/openspec-sync-specs/SKILL.md +2 -2
- package/framework/.amazonq/skills/openspec-verify-change/SKILL.md +4 -4
- package/framework/.amazonq/skills/performance-optimizer/SKILL.md +43 -0
- package/framework/.amazonq/skills/project-constitution/SKILL.md +66 -0
- package/framework/.amazonq/skills/requirement-checklist/SKILL.md +90 -0
- package/framework/.amazonq/skills/spec-analysis/SKILL.md +65 -0
- package/framework/.amazonq/skills/spec-clarification/SKILL.md +73 -0
- package/framework/.amazonq/skills/sync-index/SKILL.md +35 -0
- package/framework/.amazonq/skills/test-generator/SKILL.md +41 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/AGENTS.md +2934 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/SKILL.md +136 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/framework/.amazonq/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/framework/.augment/commands/ac.md +261 -0
- package/framework/.augment/commands/opsx-apply.md +3 -3
- package/framework/.augment/commands/opsx-archive.md +3 -3
- package/framework/.augment/commands/opsx-bulk-archive.md +2 -2
- package/framework/.augment/commands/opsx-continue.md +4 -4
- package/framework/.augment/commands/opsx-explore.md +1 -1
- package/framework/.augment/commands/opsx-ff.md +6 -6
- package/framework/.augment/commands/opsx-new.md +4 -4
- package/framework/.augment/commands/opsx-onboard.md +5 -5
- package/framework/.augment/commands/opsx-sync.md +1 -1
- package/framework/.augment/commands/opsx-verify.md +3 -3
- package/framework/.augment/skills/openspec-apply-change/SKILL.md +4 -4
- package/framework/.augment/skills/openspec-archive-change/SKILL.md +4 -4
- package/framework/.augment/skills/openspec-bulk-archive-change/SKILL.md +3 -3
- package/framework/.augment/skills/openspec-continue-change/SKILL.md +5 -5
- package/framework/.augment/skills/openspec-explore/SKILL.md +2 -2
- package/framework/.augment/skills/openspec-ff-change/SKILL.md +7 -7
- package/framework/.augment/skills/openspec-new-change/SKILL.md +5 -5
- package/framework/.augment/skills/openspec-onboard/SKILL.md +6 -6
- package/framework/.augment/skills/openspec-sync-specs/SKILL.md +2 -2
- package/framework/.augment/skills/openspec-verify-change/SKILL.md +4 -4
- package/framework/.augment/skills/performance-optimizer/SKILL.md +43 -0
- package/framework/.augment/skills/project-constitution/SKILL.md +66 -0
- package/framework/.augment/skills/requirement-checklist/SKILL.md +90 -0
- package/framework/.augment/skills/spec-analysis/SKILL.md +65 -0
- package/framework/.augment/skills/spec-clarification/SKILL.md +73 -0
- package/framework/.augment/skills/sync-index/SKILL.md +35 -0
- package/framework/.augment/skills/test-generator/SKILL.md +41 -0
- package/framework/.augment/skills/vercel-react-best-practices/AGENTS.md +2934 -0
- package/framework/.augment/skills/vercel-react-best-practices/SKILL.md +136 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/framework/.augment/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/framework/.claude/commands/opsx/ac.md +261 -0
- package/framework/.claude/commands/opsx/apply.md +3 -3
- package/framework/.claude/commands/opsx/archive.md +3 -3
- package/framework/.claude/commands/opsx/bulk-archive.md +2 -2
- package/framework/.claude/commands/opsx/continue.md +4 -4
- package/framework/.claude/commands/opsx/explore.md +1 -1
- package/framework/.claude/commands/opsx/ff.md +6 -6
- package/framework/.claude/commands/opsx/new.md +4 -4
- package/framework/.claude/commands/opsx/onboard.md +5 -5
- package/framework/.claude/commands/opsx/sync.md +1 -1
- package/framework/.claude/commands/opsx/verify.md +3 -3
- package/framework/.claude/skills/openspec-apply-change/SKILL.md +4 -4
- package/framework/.claude/skills/openspec-archive-change/SKILL.md +4 -4
- package/framework/.claude/skills/openspec-bulk-archive-change/SKILL.md +3 -3
- package/framework/.claude/skills/openspec-continue-change/SKILL.md +5 -5
- package/framework/.claude/skills/openspec-explore/SKILL.md +2 -2
- package/framework/.claude/skills/openspec-ff-change/SKILL.md +7 -7
- package/framework/.claude/skills/openspec-new-change/SKILL.md +5 -5
- package/framework/.claude/skills/openspec-onboard/SKILL.md +6 -6
- package/framework/.claude/skills/openspec-sync-specs/SKILL.md +2 -2
- package/framework/.claude/skills/openspec-verify-change/SKILL.md +4 -4
- package/framework/.claude/skills/performance-optimizer/SKILL.md +43 -0
- package/framework/.claude/skills/project-constitution/SKILL.md +66 -0
- package/framework/.claude/skills/requirement-checklist/SKILL.md +90 -0
- package/framework/.claude/skills/spec-analysis/SKILL.md +65 -0
- package/framework/.claude/skills/spec-clarification/SKILL.md +73 -0
- package/framework/.claude/skills/sync-index/SKILL.md +35 -0
- package/framework/.claude/skills/test-generator/SKILL.md +41 -0
- package/framework/.claude/skills/vercel-react-best-practices/AGENTS.md +2934 -0
- package/framework/.claude/skills/vercel-react-best-practices/SKILL.md +136 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/framework/.claude/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/framework/.cline/skills/openspec-apply-change/SKILL.md +4 -4
- package/framework/.cline/skills/openspec-archive-change/SKILL.md +4 -4
- package/framework/.cline/skills/openspec-bulk-archive-change/SKILL.md +3 -3
- package/framework/.cline/skills/openspec-continue-change/SKILL.md +5 -5
- package/framework/.cline/skills/openspec-explore/SKILL.md +2 -2
- package/framework/.cline/skills/openspec-ff-change/SKILL.md +7 -7
- package/framework/.cline/skills/openspec-new-change/SKILL.md +5 -5
- package/framework/.cline/skills/openspec-onboard/SKILL.md +6 -6
- package/framework/.cline/skills/openspec-sync-specs/SKILL.md +2 -2
- package/framework/.cline/skills/openspec-verify-change/SKILL.md +4 -4
- package/framework/.cline/skills/performance-optimizer/SKILL.md +43 -0
- package/framework/.cline/skills/project-constitution/SKILL.md +66 -0
- package/framework/.cline/skills/requirement-checklist/SKILL.md +90 -0
- package/framework/.cline/skills/spec-analysis/SKILL.md +65 -0
- package/framework/.cline/skills/spec-clarification/SKILL.md +73 -0
- package/framework/.cline/skills/sync-index/SKILL.md +35 -0
- package/framework/.cline/skills/test-generator/SKILL.md +41 -0
- package/framework/.cline/skills/vercel-react-best-practices/AGENTS.md +2934 -0
- package/framework/.cline/skills/vercel-react-best-practices/SKILL.md +136 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/framework/.cline/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/framework/.clinerules/skills/api-design-principles/SKILL.md +528 -0
- package/framework/.clinerules/skills/api-design-principles/assets/api-design-checklist.md +155 -0
- package/framework/.clinerules/skills/api-design-principles/assets/rest-api-template.py +182 -0
- package/framework/.clinerules/skills/api-design-principles/references/graphql-schema-design.md +583 -0
- package/framework/.clinerules/skills/api-design-principles/references/rest-best-practices.md +408 -0
- package/framework/.clinerules/skills/brainstorming/SKILL.md +54 -0
- package/framework/.clinerules/skills/changelog-generator/SKILL.md +104 -0
- package/framework/.clinerules/skills/code-maintainability/SKILL.md +1108 -0
- package/framework/.clinerules/skills/error-handling-patterns/SKILL.md +641 -0
- package/framework/.clinerules/skills/interface-design/SKILL.md +310 -0
- package/framework/.clinerules/skills/interface-design/references/example.md +86 -0
- package/framework/.clinerules/skills/interface-design/references/principles.md +235 -0
- package/framework/.clinerules/skills/interface-design/references/validation.md +48 -0
- package/framework/.clinerules/skills/openspec-apply-change/SKILL.md +156 -0
- package/framework/.clinerules/skills/openspec-archive-change/SKILL.md +114 -0
- package/framework/.clinerules/skills/openspec-bulk-archive-change/SKILL.md +246 -0
- package/framework/.clinerules/skills/openspec-continue-change/SKILL.md +118 -0
- package/framework/.clinerules/skills/openspec-explore/SKILL.md +290 -0
- package/framework/.clinerules/skills/openspec-ff-change/SKILL.md +101 -0
- package/framework/.clinerules/skills/openspec-new-change/SKILL.md +74 -0
- package/framework/.clinerules/skills/openspec-onboard/SKILL.md +529 -0
- package/framework/.clinerules/skills/openspec-sync-specs/SKILL.md +138 -0
- package/framework/.clinerules/skills/openspec-verify-change/SKILL.md +168 -0
- package/framework/.clinerules/skills/performance-optimizer/SKILL.md +43 -0
- package/framework/.clinerules/skills/project-constitution/SKILL.md +66 -0
- package/framework/.clinerules/skills/project-index/SKILL.md +234 -0
- package/framework/.clinerules/skills/project-index/scripts/scan_codebase.py +47 -0
- package/framework/.clinerules/skills/project-index/templates/agent-template.md +18 -0
- package/framework/.clinerules/skills/project-index/templates/skill-template.md +20 -0
- package/framework/.clinerules/skills/requirement-checklist/SKILL.md +90 -0
- package/framework/.clinerules/skills/secure-coding-cybersecurity/SKILL.md +793 -0
- package/framework/.clinerules/skills/secure-coding-cybersecurity/references/ai_coding_pitfalls.md +44 -0
- package/framework/.clinerules/skills/secure-coding-cybersecurity/references/owasp_top_10_2025.md +28 -0
- package/framework/.clinerules/skills/secure-coding-cybersecurity/references/secure_coding_examples.md +102 -0
- package/framework/.clinerules/skills/secure-coding-cybersecurity/scripts/security_audit.py +46 -0
- package/framework/.clinerules/skills/skill-writer/SKILL.md +385 -0
- package/framework/.clinerules/skills/spec-analysis/SKILL.md +65 -0
- package/framework/.clinerules/skills/spec-clarification/SKILL.md +73 -0
- package/framework/.clinerules/skills/sync-index/SKILL.md +35 -0
- package/framework/.clinerules/skills/systematic-debugging/SKILL.md +296 -0
- package/framework/.clinerules/skills/test-generator/SKILL.md +41 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/AGENTS.md +2934 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/SKILL.md +136 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/framework/.clinerules/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/framework/.clinerules/workflows/ac.md +261 -0
- package/framework/.clinerules/workflows/opsx-apply.md +3 -3
- package/framework/.clinerules/workflows/opsx-archive.md +3 -3
- package/framework/.clinerules/workflows/opsx-bulk-archive.md +2 -2
- package/framework/.clinerules/workflows/opsx-continue.md +4 -4
- package/framework/.clinerules/workflows/opsx-explore.md +1 -1
- package/framework/.clinerules/workflows/opsx-ff.md +6 -6
- package/framework/.clinerules/workflows/opsx-new.md +4 -4
- package/framework/.clinerules/workflows/opsx-onboard.md +5 -5
- package/framework/.clinerules/workflows/opsx-sync.md +1 -1
- package/framework/.clinerules/workflows/opsx-verify.md +3 -3
- package/framework/.codebuddy/commands/opsx/ac.md +261 -0
- package/framework/.codebuddy/commands/opsx/apply.md +3 -3
- package/framework/.codebuddy/commands/opsx/archive.md +3 -3
- package/framework/.codebuddy/commands/opsx/bulk-archive.md +2 -2
- package/framework/.codebuddy/commands/opsx/continue.md +4 -4
- package/framework/.codebuddy/commands/opsx/explore.md +1 -1
- package/framework/.codebuddy/commands/opsx/ff.md +6 -6
- package/framework/.codebuddy/commands/opsx/new.md +4 -4
- package/framework/.codebuddy/commands/opsx/onboard.md +5 -5
- package/framework/.codebuddy/commands/opsx/sync.md +1 -1
- package/framework/.codebuddy/commands/opsx/verify.md +3 -3
- package/framework/.codebuddy/skills/openspec-apply-change/SKILL.md +4 -4
- package/framework/.codebuddy/skills/openspec-archive-change/SKILL.md +4 -4
- package/framework/.codebuddy/skills/openspec-bulk-archive-change/SKILL.md +3 -3
- package/framework/.codebuddy/skills/openspec-continue-change/SKILL.md +5 -5
- package/framework/.codebuddy/skills/openspec-explore/SKILL.md +2 -2
- package/framework/.codebuddy/skills/openspec-ff-change/SKILL.md +7 -7
- package/framework/.codebuddy/skills/openspec-new-change/SKILL.md +5 -5
- package/framework/.codebuddy/skills/openspec-onboard/SKILL.md +6 -6
- package/framework/.codebuddy/skills/openspec-sync-specs/SKILL.md +2 -2
- package/framework/.codebuddy/skills/openspec-verify-change/SKILL.md +4 -4
- package/framework/.codebuddy/skills/performance-optimizer/SKILL.md +43 -0
- package/framework/.codebuddy/skills/project-constitution/SKILL.md +66 -0
- package/framework/.codebuddy/skills/requirement-checklist/SKILL.md +90 -0
- package/framework/.codebuddy/skills/spec-analysis/SKILL.md +65 -0
- package/framework/.codebuddy/skills/spec-clarification/SKILL.md +73 -0
- package/framework/.codebuddy/skills/sync-index/SKILL.md +35 -0
- package/framework/.codebuddy/skills/test-generator/SKILL.md +41 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/AGENTS.md +2934 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/SKILL.md +136 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/framework/.codebuddy/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/framework/.codex/skills/openspec-apply-change/SKILL.md +4 -4
- package/framework/.codex/skills/openspec-archive-change/SKILL.md +4 -4
- package/framework/.codex/skills/openspec-bulk-archive-change/SKILL.md +3 -3
- package/framework/.codex/skills/openspec-continue-change/SKILL.md +5 -5
- package/framework/.codex/skills/openspec-explore/SKILL.md +2 -2
- package/framework/.codex/skills/openspec-ff-change/SKILL.md +7 -7
- package/framework/.codex/skills/openspec-new-change/SKILL.md +5 -5
- package/framework/.codex/skills/openspec-onboard/SKILL.md +6 -6
- package/framework/.codex/skills/openspec-sync-specs/SKILL.md +2 -2
- package/framework/.codex/skills/openspec-verify-change/SKILL.md +4 -4
- package/framework/.codex/skills/performance-optimizer/SKILL.md +43 -0
- package/framework/.codex/skills/project-constitution/SKILL.md +66 -0
- package/framework/.codex/skills/requirement-checklist/SKILL.md +90 -0
- package/framework/.codex/skills/spec-analysis/SKILL.md +65 -0
- package/framework/.codex/skills/spec-clarification/SKILL.md +73 -0
- package/framework/.codex/skills/sync-index/SKILL.md +35 -0
- package/framework/.codex/skills/test-generator/SKILL.md +41 -0
- package/framework/.codex/skills/vercel-react-best-practices/AGENTS.md +2934 -0
- package/framework/.codex/skills/vercel-react-best-practices/SKILL.md +136 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/framework/.codex/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/framework/.continue/prompts/ac.prompt +192 -0
- package/framework/.continue/skills/openspec-apply-change/SKILL.md +4 -4
- package/framework/.continue/skills/openspec-archive-change/SKILL.md +4 -4
- package/framework/.continue/skills/openspec-bulk-archive-change/SKILL.md +3 -3
- package/framework/.continue/skills/openspec-continue-change/SKILL.md +5 -5
- package/framework/.continue/skills/openspec-explore/SKILL.md +2 -2
- package/framework/.continue/skills/openspec-ff-change/SKILL.md +7 -7
- package/framework/.continue/skills/openspec-new-change/SKILL.md +5 -5
- package/framework/.continue/skills/openspec-onboard/SKILL.md +6 -6
- package/framework/.continue/skills/openspec-sync-specs/SKILL.md +2 -2
- package/framework/.continue/skills/openspec-verify-change/SKILL.md +4 -4
- package/framework/.continue/skills/performance-optimizer/SKILL.md +43 -0
- package/framework/.continue/skills/project-constitution/SKILL.md +66 -0
- package/framework/.continue/skills/requirement-checklist/SKILL.md +90 -0
- package/framework/.continue/skills/spec-analysis/SKILL.md +65 -0
- package/framework/.continue/skills/spec-clarification/SKILL.md +73 -0
- package/framework/.continue/skills/sync-index/SKILL.md +35 -0
- package/framework/.continue/skills/test-generator/SKILL.md +41 -0
- package/framework/.continue/skills/vercel-react-best-practices/AGENTS.md +2934 -0
- package/framework/.continue/skills/vercel-react-best-practices/SKILL.md +136 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/framework/.continue/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/framework/.cospec/openspec/commands/ac.md +261 -0
- package/framework/.cospec/openspec/commands/opsx-apply.md +3 -3
- package/framework/.cospec/openspec/commands/opsx-archive.md +3 -3
- package/framework/.cospec/openspec/commands/opsx-bulk-archive.md +2 -2
- package/framework/.cospec/openspec/commands/opsx-continue.md +4 -4
- package/framework/.cospec/openspec/commands/opsx-explore.md +1 -1
- package/framework/.cospec/openspec/commands/opsx-ff.md +6 -6
- package/framework/.cospec/openspec/commands/opsx-new.md +4 -4
- package/framework/.cospec/openspec/commands/opsx-onboard.md +5 -5
- package/framework/.cospec/openspec/commands/opsx-sync.md +1 -1
- package/framework/.cospec/openspec/commands/opsx-verify.md +3 -3
- package/framework/.cospec/skills/openspec-apply-change/SKILL.md +4 -4
- package/framework/.cospec/skills/openspec-archive-change/SKILL.md +4 -4
- package/framework/.cospec/skills/openspec-bulk-archive-change/SKILL.md +3 -3
- package/framework/.cospec/skills/openspec-continue-change/SKILL.md +5 -5
- package/framework/.cospec/skills/openspec-explore/SKILL.md +2 -2
- package/framework/.cospec/skills/openspec-ff-change/SKILL.md +7 -7
- package/framework/.cospec/skills/openspec-new-change/SKILL.md +5 -5
- package/framework/.cospec/skills/openspec-onboard/SKILL.md +6 -6
- package/framework/.cospec/skills/openspec-sync-specs/SKILL.md +2 -2
- package/framework/.cospec/skills/openspec-verify-change/SKILL.md +4 -4
- package/framework/.cospec/skills/performance-optimizer/SKILL.md +43 -0
- package/framework/.cospec/skills/project-constitution/SKILL.md +66 -0
- package/framework/.cospec/skills/requirement-checklist/SKILL.md +90 -0
- package/framework/.cospec/skills/spec-analysis/SKILL.md +65 -0
- package/framework/.cospec/skills/spec-clarification/SKILL.md +73 -0
- package/framework/.cospec/skills/sync-index/SKILL.md +35 -0
- package/framework/.cospec/skills/test-generator/SKILL.md +41 -0
- package/framework/.cospec/skills/vercel-react-best-practices/AGENTS.md +2934 -0
- package/framework/.cospec/skills/vercel-react-best-practices/SKILL.md +136 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/framework/.cospec/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/framework/.crush/commands/opsx/ac.md +261 -0
- package/framework/.crush/commands/opsx/apply.md +3 -3
- package/framework/.crush/commands/opsx/archive.md +3 -3
- package/framework/.crush/commands/opsx/bulk-archive.md +2 -2
- package/framework/.crush/commands/opsx/continue.md +4 -4
- package/framework/.crush/commands/opsx/explore.md +1 -1
- package/framework/.crush/commands/opsx/ff.md +6 -6
- package/framework/.crush/commands/opsx/new.md +4 -4
- package/framework/.crush/commands/opsx/onboard.md +5 -5
- package/framework/.crush/commands/opsx/sync.md +1 -1
- package/framework/.crush/commands/opsx/verify.md +3 -3
- package/framework/.crush/skills/openspec-apply-change/SKILL.md +4 -4
- package/framework/.crush/skills/openspec-archive-change/SKILL.md +4 -4
- package/framework/.crush/skills/openspec-bulk-archive-change/SKILL.md +3 -3
- package/framework/.crush/skills/openspec-continue-change/SKILL.md +5 -5
- package/framework/.crush/skills/openspec-explore/SKILL.md +2 -2
- package/framework/.crush/skills/openspec-ff-change/SKILL.md +7 -7
- package/framework/.crush/skills/openspec-new-change/SKILL.md +5 -5
- package/framework/.crush/skills/openspec-onboard/SKILL.md +6 -6
- package/framework/.crush/skills/openspec-sync-specs/SKILL.md +2 -2
- package/framework/.crush/skills/openspec-verify-change/SKILL.md +4 -4
- package/framework/.crush/skills/performance-optimizer/SKILL.md +43 -0
- package/framework/.crush/skills/project-constitution/SKILL.md +66 -0
- package/framework/.crush/skills/requirement-checklist/SKILL.md +90 -0
- package/framework/.crush/skills/spec-analysis/SKILL.md +65 -0
- package/framework/.crush/skills/spec-clarification/SKILL.md +73 -0
- package/framework/.crush/skills/sync-index/SKILL.md +35 -0
- package/framework/.crush/skills/test-generator/SKILL.md +41 -0
- package/framework/.crush/skills/vercel-react-best-practices/AGENTS.md +2934 -0
- package/framework/.crush/skills/vercel-react-best-practices/SKILL.md +136 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/framework/.crush/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/framework/.cursor/commands/ac.md +261 -0
- package/framework/.cursor/commands/opsx-apply.md +3 -3
- package/framework/.cursor/commands/opsx-archive.md +3 -3
- package/framework/.cursor/commands/opsx-bulk-archive.md +2 -2
- package/framework/.cursor/commands/opsx-continue.md +4 -4
- package/framework/.cursor/commands/opsx-explore.md +1 -1
- package/framework/.cursor/commands/opsx-ff.md +6 -6
- package/framework/.cursor/commands/opsx-new.md +4 -4
- package/framework/.cursor/commands/opsx-onboard.md +5 -5
- package/framework/.cursor/commands/opsx-sync.md +1 -1
- package/framework/.cursor/commands/opsx-verify.md +3 -3
- package/framework/.cursor/skills/openspec-apply-change/SKILL.md +4 -4
- package/framework/.cursor/skills/openspec-archive-change/SKILL.md +4 -4
- package/framework/.cursor/skills/openspec-bulk-archive-change/SKILL.md +3 -3
- package/framework/.cursor/skills/openspec-continue-change/SKILL.md +5 -5
- package/framework/.cursor/skills/openspec-explore/SKILL.md +2 -2
- package/framework/.cursor/skills/openspec-ff-change/SKILL.md +7 -7
- package/framework/.cursor/skills/openspec-new-change/SKILL.md +5 -5
- package/framework/.cursor/skills/openspec-onboard/SKILL.md +6 -6
- package/framework/.cursor/skills/openspec-sync-specs/SKILL.md +2 -2
- package/framework/.cursor/skills/openspec-verify-change/SKILL.md +4 -4
- package/framework/.cursor/skills/performance-optimizer/SKILL.md +43 -0
- package/framework/.cursor/skills/project-constitution/SKILL.md +66 -0
- package/framework/.cursor/skills/requirement-checklist/SKILL.md +90 -0
- package/framework/.cursor/skills/spec-analysis/SKILL.md +65 -0
- package/framework/.cursor/skills/spec-clarification/SKILL.md +73 -0
- package/framework/.cursor/skills/sync-index/SKILL.md +35 -0
- package/framework/.cursor/skills/test-generator/SKILL.md +41 -0
- package/framework/.cursor/skills/vercel-react-best-practices/AGENTS.md +2934 -0
- package/framework/.cursor/skills/vercel-react-best-practices/SKILL.md +136 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/framework/.cursor/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/framework/.factory/commands/ac.md +261 -0
- package/framework/.factory/commands/opsx-apply.md +3 -3
- package/framework/.factory/commands/opsx-archive.md +3 -3
- package/framework/.factory/commands/opsx-bulk-archive.md +2 -2
- package/framework/.factory/commands/opsx-continue.md +4 -4
- package/framework/.factory/commands/opsx-explore.md +1 -1
- package/framework/.factory/commands/opsx-ff.md +6 -6
- package/framework/.factory/commands/opsx-new.md +4 -4
- package/framework/.factory/commands/opsx-onboard.md +5 -5
- package/framework/.factory/commands/opsx-sync.md +1 -1
- package/framework/.factory/commands/opsx-verify.md +3 -3
- package/framework/.factory/skills/openspec-apply-change/SKILL.md +4 -4
- package/framework/.factory/skills/openspec-archive-change/SKILL.md +4 -4
- package/framework/.factory/skills/openspec-bulk-archive-change/SKILL.md +3 -3
- package/framework/.factory/skills/openspec-continue-change/SKILL.md +5 -5
- package/framework/.factory/skills/openspec-explore/SKILL.md +2 -2
- package/framework/.factory/skills/openspec-ff-change/SKILL.md +7 -7
- package/framework/.factory/skills/openspec-new-change/SKILL.md +5 -5
- package/framework/.factory/skills/openspec-onboard/SKILL.md +6 -6
- package/framework/.factory/skills/openspec-sync-specs/SKILL.md +2 -2
- package/framework/.factory/skills/openspec-verify-change/SKILL.md +4 -4
- package/framework/.factory/skills/performance-optimizer/SKILL.md +43 -0
- package/framework/.factory/skills/project-constitution/SKILL.md +66 -0
- package/framework/.factory/skills/requirement-checklist/SKILL.md +90 -0
- package/framework/.factory/skills/spec-analysis/SKILL.md +65 -0
- package/framework/.factory/skills/spec-clarification/SKILL.md +73 -0
- package/framework/.factory/skills/sync-index/SKILL.md +35 -0
- package/framework/.factory/skills/test-generator/SKILL.md +41 -0
- package/framework/.factory/skills/vercel-react-best-practices/AGENTS.md +2934 -0
- package/framework/.factory/skills/vercel-react-best-practices/SKILL.md +136 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/framework/.factory/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/framework/.gemini/commands/opsx/ac.toml +192 -0
- package/framework/.gemini/skills/openspec-apply-change/SKILL.md +4 -4
- package/framework/.gemini/skills/openspec-archive-change/SKILL.md +4 -4
- package/framework/.gemini/skills/openspec-bulk-archive-change/SKILL.md +3 -3
- package/framework/.gemini/skills/openspec-continue-change/SKILL.md +5 -5
- package/framework/.gemini/skills/openspec-explore/SKILL.md +2 -2
- package/framework/.gemini/skills/openspec-ff-change/SKILL.md +7 -7
- package/framework/.gemini/skills/openspec-new-change/SKILL.md +5 -5
- package/framework/.gemini/skills/openspec-onboard/SKILL.md +6 -6
- package/framework/.gemini/skills/openspec-sync-specs/SKILL.md +2 -2
- package/framework/.gemini/skills/openspec-verify-change/SKILL.md +4 -4
- package/framework/.gemini/skills/performance-optimizer/SKILL.md +43 -0
- package/framework/.gemini/skills/project-constitution/SKILL.md +66 -0
- package/framework/.gemini/skills/requirement-checklist/SKILL.md +90 -0
- package/framework/.gemini/skills/spec-analysis/SKILL.md +65 -0
- package/framework/.gemini/skills/spec-clarification/SKILL.md +73 -0
- package/framework/.gemini/skills/sync-index/SKILL.md +35 -0
- package/framework/.gemini/skills/test-generator/SKILL.md +41 -0
- package/framework/.gemini/skills/vercel-react-best-practices/AGENTS.md +2934 -0
- package/framework/.gemini/skills/vercel-react-best-practices/SKILL.md +136 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/framework/.gemini/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/framework/.github/prompts/ac.prompt.md +192 -0
- package/framework/.github/prompts/opsx-apply.prompt.md +3 -3
- package/framework/.github/prompts/opsx-archive.prompt.md +3 -3
- package/framework/.github/prompts/opsx-bulk-archive.prompt.md +2 -2
- package/framework/.github/prompts/opsx-continue.prompt.md +4 -4
- package/framework/.github/prompts/opsx-explore.prompt.md +1 -1
- package/framework/.github/prompts/opsx-ff.prompt.md +6 -6
- package/framework/.github/prompts/opsx-new.prompt.md +4 -4
- package/framework/.github/prompts/opsx-onboard.prompt.md +5 -5
- package/framework/.github/prompts/opsx-sync.prompt.md +1 -1
- package/framework/.github/prompts/opsx-verify.prompt.md +3 -3
- package/framework/.github/skills/openspec-apply-change/SKILL.md +4 -4
- package/framework/.github/skills/openspec-archive-change/SKILL.md +4 -4
- package/framework/.github/skills/openspec-bulk-archive-change/SKILL.md +3 -3
- package/framework/.github/skills/openspec-continue-change/SKILL.md +5 -5
- package/framework/.github/skills/openspec-explore/SKILL.md +2 -2
- package/framework/.github/skills/openspec-ff-change/SKILL.md +7 -7
- package/framework/.github/skills/openspec-new-change/SKILL.md +5 -5
- package/framework/.github/skills/openspec-onboard/SKILL.md +6 -6
- package/framework/.github/skills/openspec-sync-specs/SKILL.md +2 -2
- package/framework/.github/skills/openspec-verify-change/SKILL.md +4 -4
- package/framework/.github/skills/performance-optimizer/SKILL.md +43 -0
- package/framework/.github/skills/project-constitution/SKILL.md +66 -0
- package/framework/.github/skills/requirement-checklist/SKILL.md +90 -0
- package/framework/.github/skills/spec-analysis/SKILL.md +65 -0
- package/framework/.github/skills/spec-clarification/SKILL.md +73 -0
- package/framework/.github/skills/sync-index/SKILL.md +35 -0
- package/framework/.github/skills/test-generator/SKILL.md +41 -0
- package/framework/.github/skills/vercel-react-best-practices/AGENTS.md +2934 -0
- package/framework/.github/skills/vercel-react-best-practices/SKILL.md +136 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/framework/.github/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/framework/.iflow/commands/ac.md +261 -0
- package/framework/.iflow/commands/opsx-apply.md +3 -3
- package/framework/.iflow/commands/opsx-archive.md +3 -3
- package/framework/.iflow/commands/opsx-bulk-archive.md +2 -2
- package/framework/.iflow/commands/opsx-continue.md +4 -4
- package/framework/.iflow/commands/opsx-explore.md +1 -1
- package/framework/.iflow/commands/opsx-ff.md +6 -6
- package/framework/.iflow/commands/opsx-new.md +4 -4
- package/framework/.iflow/commands/opsx-onboard.md +5 -5
- package/framework/.iflow/commands/opsx-sync.md +1 -1
- package/framework/.iflow/commands/opsx-verify.md +3 -3
- package/framework/.iflow/skills/openspec-apply-change/SKILL.md +4 -4
- package/framework/.iflow/skills/openspec-archive-change/SKILL.md +4 -4
- package/framework/.iflow/skills/openspec-bulk-archive-change/SKILL.md +3 -3
- package/framework/.iflow/skills/openspec-continue-change/SKILL.md +5 -5
- package/framework/.iflow/skills/openspec-explore/SKILL.md +2 -2
- package/framework/.iflow/skills/openspec-ff-change/SKILL.md +7 -7
- package/framework/.iflow/skills/openspec-new-change/SKILL.md +5 -5
- package/framework/.iflow/skills/openspec-onboard/SKILL.md +6 -6
- package/framework/.iflow/skills/openspec-sync-specs/SKILL.md +2 -2
- package/framework/.iflow/skills/openspec-verify-change/SKILL.md +4 -4
- package/framework/.iflow/skills/performance-optimizer/SKILL.md +43 -0
- package/framework/.iflow/skills/project-constitution/SKILL.md +66 -0
- package/framework/.iflow/skills/requirement-checklist/SKILL.md +90 -0
- package/framework/.iflow/skills/spec-analysis/SKILL.md +65 -0
- package/framework/.iflow/skills/spec-clarification/SKILL.md +73 -0
- package/framework/.iflow/skills/sync-index/SKILL.md +35 -0
- package/framework/.iflow/skills/test-generator/SKILL.md +41 -0
- package/framework/.iflow/skills/vercel-react-best-practices/AGENTS.md +2934 -0
- package/framework/.iflow/skills/vercel-react-best-practices/SKILL.md +136 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/framework/.iflow/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/framework/.kilocode/skills/openspec-apply-change/SKILL.md +4 -4
- package/framework/.kilocode/skills/openspec-archive-change/SKILL.md +4 -4
- package/framework/.kilocode/skills/openspec-bulk-archive-change/SKILL.md +3 -3
- package/framework/.kilocode/skills/openspec-continue-change/SKILL.md +5 -5
- package/framework/.kilocode/skills/openspec-explore/SKILL.md +2 -2
- package/framework/.kilocode/skills/openspec-ff-change/SKILL.md +7 -7
- package/framework/.kilocode/skills/openspec-new-change/SKILL.md +5 -5
- package/framework/.kilocode/skills/openspec-onboard/SKILL.md +6 -6
- package/framework/.kilocode/skills/openspec-sync-specs/SKILL.md +2 -2
- package/framework/.kilocode/skills/openspec-verify-change/SKILL.md +4 -4
- package/framework/.kilocode/skills/performance-optimizer/SKILL.md +43 -0
- package/framework/.kilocode/skills/project-constitution/SKILL.md +66 -0
- package/framework/.kilocode/skills/requirement-checklist/SKILL.md +90 -0
- package/framework/.kilocode/skills/spec-analysis/SKILL.md +65 -0
- package/framework/.kilocode/skills/spec-clarification/SKILL.md +73 -0
- package/framework/.kilocode/skills/sync-index/SKILL.md +35 -0
- package/framework/.kilocode/skills/test-generator/SKILL.md +41 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/AGENTS.md +2934 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/SKILL.md +136 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/framework/.kilocode/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/framework/.kilocode/workflows/ac.md +261 -0
- package/framework/.kilocode/workflows/opsx-apply.md +3 -3
- package/framework/.kilocode/workflows/opsx-archive.md +3 -3
- package/framework/.kilocode/workflows/opsx-bulk-archive.md +2 -2
- package/framework/.kilocode/workflows/opsx-continue.md +4 -4
- package/framework/.kilocode/workflows/opsx-explore.md +1 -1
- package/framework/.kilocode/workflows/opsx-ff.md +6 -6
- package/framework/.kilocode/workflows/opsx-new.md +4 -4
- package/framework/.kilocode/workflows/opsx-onboard.md +5 -5
- package/framework/.kilocode/workflows/opsx-sync.md +1 -1
- package/framework/.kilocode/workflows/opsx-verify.md +3 -3
- package/framework/.opencode/command/ac.md +261 -0
- package/framework/.opencode/command/opsx-apply.md +3 -3
- package/framework/.opencode/command/opsx-archive.md +3 -3
- package/framework/.opencode/command/opsx-bulk-archive.md +2 -2
- package/framework/.opencode/command/opsx-continue.md +4 -4
- package/framework/.opencode/command/opsx-explore.md +1 -1
- package/framework/.opencode/command/opsx-ff.md +6 -6
- package/framework/.opencode/command/opsx-new.md +4 -4
- package/framework/.opencode/command/opsx-onboard.md +5 -5
- package/framework/.opencode/command/opsx-sync.md +1 -1
- package/framework/.opencode/command/opsx-verify.md +3 -3
- package/framework/.opencode/skills/openspec-apply-change/SKILL.md +5 -5
- package/framework/.opencode/skills/openspec-archive-change/SKILL.md +5 -5
- package/framework/.opencode/skills/openspec-bulk-archive-change/SKILL.md +4 -4
- package/framework/.opencode/skills/openspec-continue-change/SKILL.md +5 -5
- package/framework/.opencode/skills/openspec-explore/SKILL.md +8 -8
- package/framework/.opencode/skills/openspec-ff-change/SKILL.md +8 -8
- package/framework/.opencode/skills/openspec-new-change/SKILL.md +5 -5
- package/framework/.opencode/skills/openspec-onboard/SKILL.md +26 -26
- package/framework/.opencode/skills/openspec-sync-specs/SKILL.md +2 -2
- package/framework/.opencode/skills/openspec-verify-change/SKILL.md +4 -4
- package/framework/.opencode/skills/performance-optimizer/SKILL.md +43 -0
- package/framework/.opencode/skills/project-constitution/SKILL.md +66 -0
- package/framework/.opencode/skills/requirement-checklist/SKILL.md +90 -0
- package/framework/.opencode/skills/spec-analysis/SKILL.md +65 -0
- package/framework/.opencode/skills/spec-clarification/SKILL.md +73 -0
- package/framework/.opencode/skills/sync-index/SKILL.md +35 -0
- package/framework/.opencode/skills/test-generator/SKILL.md +41 -0
- package/framework/.opencode/skills/vercel-react-best-practices/AGENTS.md +2934 -0
- package/framework/.opencode/skills/vercel-react-best-practices/SKILL.md +136 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/framework/.opencode/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/framework/.qoder/commands/opsx/ac.md +261 -0
- package/framework/.qoder/commands/opsx/apply.md +3 -3
- package/framework/.qoder/commands/opsx/archive.md +3 -3
- package/framework/.qoder/commands/opsx/bulk-archive.md +2 -2
- package/framework/.qoder/commands/opsx/continue.md +4 -4
- package/framework/.qoder/commands/opsx/explore.md +1 -1
- package/framework/.qoder/commands/opsx/ff.md +6 -6
- package/framework/.qoder/commands/opsx/new.md +4 -4
- package/framework/.qoder/commands/opsx/onboard.md +5 -5
- package/framework/.qoder/commands/opsx/sync.md +1 -1
- package/framework/.qoder/commands/opsx/verify.md +3 -3
- package/framework/.qoder/skills/openspec-apply-change/SKILL.md +4 -4
- package/framework/.qoder/skills/openspec-archive-change/SKILL.md +4 -4
- package/framework/.qoder/skills/openspec-bulk-archive-change/SKILL.md +3 -3
- package/framework/.qoder/skills/openspec-continue-change/SKILL.md +5 -5
- package/framework/.qoder/skills/openspec-explore/SKILL.md +2 -2
- package/framework/.qoder/skills/openspec-ff-change/SKILL.md +7 -7
- package/framework/.qoder/skills/openspec-new-change/SKILL.md +5 -5
- package/framework/.qoder/skills/openspec-onboard/SKILL.md +6 -6
- package/framework/.qoder/skills/openspec-sync-specs/SKILL.md +2 -2
- package/framework/.qoder/skills/openspec-verify-change/SKILL.md +4 -4
- package/framework/.qoder/skills/performance-optimizer/SKILL.md +43 -0
- package/framework/.qoder/skills/project-constitution/SKILL.md +66 -0
- package/framework/.qoder/skills/requirement-checklist/SKILL.md +90 -0
- package/framework/.qoder/skills/spec-analysis/SKILL.md +65 -0
- package/framework/.qoder/skills/spec-clarification/SKILL.md +73 -0
- package/framework/.qoder/skills/sync-index/SKILL.md +35 -0
- package/framework/.qoder/skills/test-generator/SKILL.md +41 -0
- package/framework/.qoder/skills/vercel-react-best-practices/AGENTS.md +2934 -0
- package/framework/.qoder/skills/vercel-react-best-practices/SKILL.md +136 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/framework/.qoder/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/framework/.qwen/commands/ac.md +261 -0
- package/framework/.qwen/commands/opsx-apply.md +3 -3
- package/framework/.qwen/commands/opsx-archive.md +3 -3
- package/framework/.qwen/commands/opsx-bulk-archive.md +2 -2
- package/framework/.qwen/commands/opsx-continue.md +4 -4
- package/framework/.qwen/commands/opsx-explore.md +1 -1
- package/framework/.qwen/commands/opsx-ff.md +6 -6
- package/framework/.qwen/commands/opsx-new.md +4 -4
- package/framework/.qwen/commands/opsx-onboard.md +5 -5
- package/framework/.qwen/commands/opsx-sync.md +1 -1
- package/framework/.qwen/commands/opsx-verify.md +3 -3
- package/framework/.qwen/skills/openspec-apply-change/SKILL.md +4 -4
- package/framework/.qwen/skills/openspec-archive-change/SKILL.md +4 -4
- package/framework/.qwen/skills/openspec-bulk-archive-change/SKILL.md +3 -3
- package/framework/.qwen/skills/openspec-continue-change/SKILL.md +5 -5
- package/framework/.qwen/skills/openspec-explore/SKILL.md +2 -2
- package/framework/.qwen/skills/openspec-ff-change/SKILL.md +7 -7
- package/framework/.qwen/skills/openspec-new-change/SKILL.md +5 -5
- package/framework/.qwen/skills/openspec-onboard/SKILL.md +6 -6
- package/framework/.qwen/skills/openspec-sync-specs/SKILL.md +2 -2
- package/framework/.qwen/skills/openspec-verify-change/SKILL.md +4 -4
- package/framework/.qwen/skills/performance-optimizer/SKILL.md +43 -0
- package/framework/.qwen/skills/project-constitution/SKILL.md +66 -0
- package/framework/.qwen/skills/requirement-checklist/SKILL.md +90 -0
- package/framework/.qwen/skills/spec-analysis/SKILL.md +65 -0
- package/framework/.qwen/skills/spec-clarification/SKILL.md +73 -0
- package/framework/.qwen/skills/sync-index/SKILL.md +35 -0
- package/framework/.qwen/skills/test-generator/SKILL.md +41 -0
- package/framework/.qwen/skills/vercel-react-best-practices/AGENTS.md +2934 -0
- package/framework/.qwen/skills/vercel-react-best-practices/SKILL.md +136 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/framework/.qwen/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/framework/.roo/commands/ac.md +261 -0
- package/framework/.roo/commands/opsx-apply.md +3 -3
- package/framework/.roo/commands/opsx-archive.md +3 -3
- package/framework/.roo/commands/opsx-bulk-archive.md +2 -2
- package/framework/.roo/commands/opsx-continue.md +4 -4
- package/framework/.roo/commands/opsx-explore.md +1 -1
- package/framework/.roo/commands/opsx-ff.md +6 -6
- package/framework/.roo/commands/opsx-new.md +4 -4
- package/framework/.roo/commands/opsx-onboard.md +5 -5
- package/framework/.roo/commands/opsx-sync.md +1 -1
- package/framework/.roo/commands/opsx-verify.md +3 -3
- package/framework/.roo/skills/openspec-apply-change/SKILL.md +4 -4
- package/framework/.roo/skills/openspec-archive-change/SKILL.md +4 -4
- package/framework/.roo/skills/openspec-bulk-archive-change/SKILL.md +3 -3
- package/framework/.roo/skills/openspec-continue-change/SKILL.md +5 -5
- package/framework/.roo/skills/openspec-explore/SKILL.md +2 -2
- package/framework/.roo/skills/openspec-ff-change/SKILL.md +7 -7
- package/framework/.roo/skills/openspec-new-change/SKILL.md +5 -5
- package/framework/.roo/skills/openspec-onboard/SKILL.md +6 -6
- package/framework/.roo/skills/openspec-sync-specs/SKILL.md +2 -2
- package/framework/.roo/skills/openspec-verify-change/SKILL.md +4 -4
- package/framework/.roo/skills/performance-optimizer/SKILL.md +43 -0
- package/framework/.roo/skills/project-constitution/SKILL.md +66 -0
- package/framework/.roo/skills/requirement-checklist/SKILL.md +90 -0
- package/framework/.roo/skills/spec-analysis/SKILL.md +65 -0
- package/framework/.roo/skills/spec-clarification/SKILL.md +73 -0
- package/framework/.roo/skills/sync-index/SKILL.md +35 -0
- package/framework/.roo/skills/test-generator/SKILL.md +41 -0
- package/framework/.roo/skills/vercel-react-best-practices/AGENTS.md +2934 -0
- package/framework/.roo/skills/vercel-react-best-practices/SKILL.md +136 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/framework/.roo/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/framework/.trae/skills/openspec-apply-change/SKILL.md +4 -4
- package/framework/.trae/skills/openspec-archive-change/SKILL.md +4 -4
- package/framework/.trae/skills/openspec-bulk-archive-change/SKILL.md +3 -3
- package/framework/.trae/skills/openspec-continue-change/SKILL.md +5 -5
- package/framework/.trae/skills/openspec-explore/SKILL.md +2 -2
- package/framework/.trae/skills/openspec-ff-change/SKILL.md +7 -7
- package/framework/.trae/skills/openspec-new-change/SKILL.md +5 -5
- package/framework/.trae/skills/openspec-onboard/SKILL.md +6 -6
- package/framework/.trae/skills/openspec-sync-specs/SKILL.md +2 -2
- package/framework/.trae/skills/openspec-verify-change/SKILL.md +4 -4
- package/framework/.trae/skills/performance-optimizer/SKILL.md +43 -0
- package/framework/.trae/skills/project-constitution/SKILL.md +66 -0
- package/framework/.trae/skills/requirement-checklist/SKILL.md +90 -0
- package/framework/.trae/skills/spec-analysis/SKILL.md +65 -0
- package/framework/.trae/skills/spec-clarification/SKILL.md +73 -0
- package/framework/.trae/skills/sync-index/SKILL.md +35 -0
- package/framework/.trae/skills/test-generator/SKILL.md +41 -0
- package/framework/.trae/skills/vercel-react-best-practices/AGENTS.md +2934 -0
- package/framework/.trae/skills/vercel-react-best-practices/SKILL.md +136 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/framework/.trae/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/framework/.windsurf/skills/openspec-apply-change/SKILL.md +4 -4
- package/framework/.windsurf/skills/openspec-archive-change/SKILL.md +4 -4
- package/framework/.windsurf/skills/openspec-bulk-archive-change/SKILL.md +3 -3
- package/framework/.windsurf/skills/openspec-continue-change/SKILL.md +5 -5
- package/framework/.windsurf/skills/openspec-explore/SKILL.md +2 -2
- package/framework/.windsurf/skills/openspec-ff-change/SKILL.md +7 -7
- package/framework/.windsurf/skills/openspec-new-change/SKILL.md +5 -5
- package/framework/.windsurf/skills/openspec-onboard/SKILL.md +6 -6
- package/framework/.windsurf/skills/openspec-sync-specs/SKILL.md +2 -2
- package/framework/.windsurf/skills/openspec-verify-change/SKILL.md +4 -4
- package/framework/.windsurf/skills/performance-optimizer/SKILL.md +43 -0
- package/framework/.windsurf/skills/project-constitution/SKILL.md +66 -0
- package/framework/.windsurf/skills/requirement-checklist/SKILL.md +90 -0
- package/framework/.windsurf/skills/spec-analysis/SKILL.md +65 -0
- package/framework/.windsurf/skills/spec-clarification/SKILL.md +73 -0
- package/framework/.windsurf/skills/sync-index/SKILL.md +35 -0
- package/framework/.windsurf/skills/test-generator/SKILL.md +41 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/AGENTS.md +2934 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/SKILL.md +136 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/framework/.windsurf/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/framework/.windsurf/workflows/ac.md +261 -0
- package/framework/.windsurf/workflows/opsx-apply.md +3 -3
- package/framework/.windsurf/workflows/opsx-archive.md +3 -3
- package/framework/.windsurf/workflows/opsx-bulk-archive.md +2 -2
- package/framework/.windsurf/workflows/opsx-continue.md +4 -4
- package/framework/.windsurf/workflows/opsx-explore.md +1 -1
- package/framework/.windsurf/workflows/opsx-ff.md +6 -6
- package/framework/.windsurf/workflows/opsx-new.md +4 -4
- package/framework/.windsurf/workflows/opsx-onboard.md +5 -5
- package/framework/.windsurf/workflows/opsx-sync.md +1 -1
- package/framework/.windsurf/workflows/opsx-verify.md +3 -3
- package/framework/AGENTS.md +192 -0
- package/framework/CLAUDE.md +102 -374
- package/framework/GEMINI.md +102 -374
- package/framework/copilot-instructions.md +102 -374
- package/package.json +4 -2
- package/src/cli.js +16 -2
- package/src/commands/init.js +237 -174
- package/src/commands/spec.js +320 -0
- package/src/commands/update.js +213 -0
- package/src/config/constants.js +10 -0
- package/src/index.js +18 -2
- package/src/schemas/spec-driven/schema.yaml +47 -0
- package/src/schemas/spec-driven/templates/design.md +18 -0
- package/src/schemas/spec-driven/templates/proposal.md +16 -0
- package/src/schemas/spec-driven/templates/spec.md +15 -0
- package/src/schemas/spec-driven/templates/tasks.md +7 -0
- package/src/services/github-sync.js +235 -0
- package/src/services/installer.js +19 -9
- package/src/services/spec-engine.js +645 -0
- package/src/ui/animations.js +93 -205
- package/src/ui/banner.js +9 -144
- package/framework/.opencode/command/agents.md +0 -300
- package/framework/QWEN.md +0 -464
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Use after() for Non-Blocking Operations
|
|
3
|
+
impact: MEDIUM
|
|
4
|
+
impactDescription: faster response times
|
|
5
|
+
tags: server, async, logging, analytics, side-effects
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Use after() for Non-Blocking Operations
|
|
9
|
+
|
|
10
|
+
Use Next.js's `after()` to schedule work that should execute after a response is sent. This prevents logging, analytics, and other side effects from blocking the response.
|
|
11
|
+
|
|
12
|
+
**Incorrect (blocks response):**
|
|
13
|
+
|
|
14
|
+
```tsx
|
|
15
|
+
import { logUserAction } from '@/app/utils'
|
|
16
|
+
|
|
17
|
+
export async function POST(request: Request) {
|
|
18
|
+
// Perform mutation
|
|
19
|
+
await updateDatabase(request)
|
|
20
|
+
|
|
21
|
+
// Logging blocks the response
|
|
22
|
+
const userAgent = request.headers.get('user-agent') || 'unknown'
|
|
23
|
+
await logUserAction({ userAgent })
|
|
24
|
+
|
|
25
|
+
return new Response(JSON.stringify({ status: 'success' }), {
|
|
26
|
+
status: 200,
|
|
27
|
+
headers: { 'Content-Type': 'application/json' }
|
|
28
|
+
})
|
|
29
|
+
}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
**Correct (non-blocking):**
|
|
33
|
+
|
|
34
|
+
```tsx
|
|
35
|
+
import { after } from 'next/server'
|
|
36
|
+
import { headers, cookies } from 'next/headers'
|
|
37
|
+
import { logUserAction } from '@/app/utils'
|
|
38
|
+
|
|
39
|
+
export async function POST(request: Request) {
|
|
40
|
+
// Perform mutation
|
|
41
|
+
await updateDatabase(request)
|
|
42
|
+
|
|
43
|
+
// Log after response is sent
|
|
44
|
+
after(async () => {
|
|
45
|
+
const userAgent = (await headers()).get('user-agent') || 'unknown'
|
|
46
|
+
const sessionCookie = (await cookies()).get('session-id')?.value || 'anonymous'
|
|
47
|
+
|
|
48
|
+
logUserAction({ sessionCookie, userAgent })
|
|
49
|
+
})
|
|
50
|
+
|
|
51
|
+
return new Response(JSON.stringify({ status: 'success' }), {
|
|
52
|
+
status: 200,
|
|
53
|
+
headers: { 'Content-Type': 'application/json' }
|
|
54
|
+
})
|
|
55
|
+
}
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
The response is sent immediately while logging happens in the background.
|
|
59
|
+
|
|
60
|
+
**Common use cases:**
|
|
61
|
+
|
|
62
|
+
- Analytics tracking
|
|
63
|
+
- Audit logging
|
|
64
|
+
- Sending notifications
|
|
65
|
+
- Cache invalidation
|
|
66
|
+
- Cleanup tasks
|
|
67
|
+
|
|
68
|
+
**Important notes:**
|
|
69
|
+
|
|
70
|
+
- `after()` runs even if the response fails or redirects
|
|
71
|
+
- Works in Server Actions, Route Handlers, and Server Components
|
|
72
|
+
|
|
73
|
+
Reference: [https://nextjs.org/docs/app/api-reference/functions/after](https://nextjs.org/docs/app/api-reference/functions/after)
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Authenticate Server Actions Like API Routes
|
|
3
|
+
impact: CRITICAL
|
|
4
|
+
impactDescription: prevents unauthorized access to server mutations
|
|
5
|
+
tags: server, server-actions, authentication, security, authorization
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Authenticate Server Actions Like API Routes
|
|
9
|
+
|
|
10
|
+
**Impact: CRITICAL (prevents unauthorized access to server mutations)**
|
|
11
|
+
|
|
12
|
+
Server Actions (functions with `"use server"`) are exposed as public endpoints, just like API routes. Always verify authentication and authorization **inside** each Server Action—do not rely solely on middleware, layout guards, or page-level checks, as Server Actions can be invoked directly.
|
|
13
|
+
|
|
14
|
+
Next.js documentation explicitly states: "Treat Server Actions with the same security considerations as public-facing API endpoints, and verify if the user is allowed to perform a mutation."
|
|
15
|
+
|
|
16
|
+
**Incorrect (no authentication check):**
|
|
17
|
+
|
|
18
|
+
```typescript
|
|
19
|
+
'use server'
|
|
20
|
+
|
|
21
|
+
export async function deleteUser(userId: string) {
|
|
22
|
+
// Anyone can call this! No auth check
|
|
23
|
+
await db.user.delete({ where: { id: userId } })
|
|
24
|
+
return { success: true }
|
|
25
|
+
}
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
**Correct (authentication inside the action):**
|
|
29
|
+
|
|
30
|
+
```typescript
|
|
31
|
+
'use server'
|
|
32
|
+
|
|
33
|
+
import { verifySession } from '@/lib/auth'
|
|
34
|
+
import { unauthorized } from '@/lib/errors'
|
|
35
|
+
|
|
36
|
+
export async function deleteUser(userId: string) {
|
|
37
|
+
// Always check auth inside the action
|
|
38
|
+
const session = await verifySession()
|
|
39
|
+
|
|
40
|
+
if (!session) {
|
|
41
|
+
throw unauthorized('Must be logged in')
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// Check authorization too
|
|
45
|
+
if (session.user.role !== 'admin' && session.user.id !== userId) {
|
|
46
|
+
throw unauthorized('Cannot delete other users')
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
await db.user.delete({ where: { id: userId } })
|
|
50
|
+
return { success: true }
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**With input validation:**
|
|
55
|
+
|
|
56
|
+
```typescript
|
|
57
|
+
'use server'
|
|
58
|
+
|
|
59
|
+
import { verifySession } from '@/lib/auth'
|
|
60
|
+
import { z } from 'zod'
|
|
61
|
+
|
|
62
|
+
const updateProfileSchema = z.object({
|
|
63
|
+
userId: z.string().uuid(),
|
|
64
|
+
name: z.string().min(1).max(100),
|
|
65
|
+
email: z.string().email()
|
|
66
|
+
})
|
|
67
|
+
|
|
68
|
+
export async function updateProfile(data: unknown) {
|
|
69
|
+
// Validate input first
|
|
70
|
+
const validated = updateProfileSchema.parse(data)
|
|
71
|
+
|
|
72
|
+
// Then authenticate
|
|
73
|
+
const session = await verifySession()
|
|
74
|
+
if (!session) {
|
|
75
|
+
throw new Error('Unauthorized')
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// Then authorize
|
|
79
|
+
if (session.user.id !== validated.userId) {
|
|
80
|
+
throw new Error('Can only update own profile')
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// Finally perform the mutation
|
|
84
|
+
await db.user.update({
|
|
85
|
+
where: { id: validated.userId },
|
|
86
|
+
data: {
|
|
87
|
+
name: validated.name,
|
|
88
|
+
email: validated.email
|
|
89
|
+
}
|
|
90
|
+
})
|
|
91
|
+
|
|
92
|
+
return { success: true }
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Reference: [https://nextjs.org/docs/app/guides/authentication](https://nextjs.org/docs/app/guides/authentication)
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Cross-Request LRU Caching
|
|
3
|
+
impact: HIGH
|
|
4
|
+
impactDescription: caches across requests
|
|
5
|
+
tags: server, cache, lru, cross-request
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Cross-Request LRU Caching
|
|
9
|
+
|
|
10
|
+
`React.cache()` only works within one request. For data shared across sequential requests (user clicks button A then button B), use an LRU cache.
|
|
11
|
+
|
|
12
|
+
**Implementation:**
|
|
13
|
+
|
|
14
|
+
```typescript
|
|
15
|
+
import { LRUCache } from 'lru-cache'
|
|
16
|
+
|
|
17
|
+
const cache = new LRUCache<string, any>({
|
|
18
|
+
max: 1000,
|
|
19
|
+
ttl: 5 * 60 * 1000 // 5 minutes
|
|
20
|
+
})
|
|
21
|
+
|
|
22
|
+
export async function getUser(id: string) {
|
|
23
|
+
const cached = cache.get(id)
|
|
24
|
+
if (cached) return cached
|
|
25
|
+
|
|
26
|
+
const user = await db.user.findUnique({ where: { id } })
|
|
27
|
+
cache.set(id, user)
|
|
28
|
+
return user
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// Request 1: DB query, result cached
|
|
32
|
+
// Request 2: cache hit, no DB query
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Use when sequential user actions hit multiple endpoints needing the same data within seconds.
|
|
36
|
+
|
|
37
|
+
**With Vercel's [Fluid Compute](https://vercel.com/docs/fluid-compute):** LRU caching is especially effective because multiple concurrent requests can share the same function instance and cache. This means the cache persists across requests without needing external storage like Redis.
|
|
38
|
+
|
|
39
|
+
**In traditional serverless:** Each invocation runs in isolation, so consider Redis for cross-process caching.
|
|
40
|
+
|
|
41
|
+
Reference: [https://github.com/isaacs/node-lru-cache](https://github.com/isaacs/node-lru-cache)
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Per-Request Deduplication with React.cache()
|
|
3
|
+
impact: MEDIUM
|
|
4
|
+
impactDescription: deduplicates within request
|
|
5
|
+
tags: server, cache, react-cache, deduplication
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Per-Request Deduplication with React.cache()
|
|
9
|
+
|
|
10
|
+
Use `React.cache()` for server-side request deduplication. Authentication and database queries benefit most.
|
|
11
|
+
|
|
12
|
+
**Usage:**
|
|
13
|
+
|
|
14
|
+
```typescript
|
|
15
|
+
import { cache } from 'react'
|
|
16
|
+
|
|
17
|
+
export const getCurrentUser = cache(async () => {
|
|
18
|
+
const session = await auth()
|
|
19
|
+
if (!session?.user?.id) return null
|
|
20
|
+
return await db.user.findUnique({
|
|
21
|
+
where: { id: session.user.id }
|
|
22
|
+
})
|
|
23
|
+
})
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Within a single request, multiple calls to `getCurrentUser()` execute the query only once.
|
|
27
|
+
|
|
28
|
+
**Avoid inline objects as arguments:**
|
|
29
|
+
|
|
30
|
+
`React.cache()` uses shallow equality (`Object.is`) to determine cache hits. Inline objects create new references each call, preventing cache hits.
|
|
31
|
+
|
|
32
|
+
**Incorrect (always cache miss):**
|
|
33
|
+
|
|
34
|
+
```typescript
|
|
35
|
+
const getUser = cache(async (params: { uid: number }) => {
|
|
36
|
+
return await db.user.findUnique({ where: { id: params.uid } })
|
|
37
|
+
})
|
|
38
|
+
|
|
39
|
+
// Each call creates new object, never hits cache
|
|
40
|
+
getUser({ uid: 1 })
|
|
41
|
+
getUser({ uid: 1 }) // Cache miss, runs query again
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**Correct (cache hit):**
|
|
45
|
+
|
|
46
|
+
```typescript
|
|
47
|
+
const getUser = cache(async (uid: number) => {
|
|
48
|
+
return await db.user.findUnique({ where: { id: uid } })
|
|
49
|
+
})
|
|
50
|
+
|
|
51
|
+
// Primitive args use value equality
|
|
52
|
+
getUser(1)
|
|
53
|
+
getUser(1) // Cache hit, returns cached result
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
If you must pass objects, pass the same reference:
|
|
57
|
+
|
|
58
|
+
```typescript
|
|
59
|
+
const params = { uid: 1 }
|
|
60
|
+
getUser(params) // Query runs
|
|
61
|
+
getUser(params) // Cache hit (same reference)
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
**Next.js-Specific Note:**
|
|
65
|
+
|
|
66
|
+
In Next.js, the `fetch` API is automatically extended with request memoization. Requests with the same URL and options are automatically deduplicated within a single request, so you don't need `React.cache()` for `fetch` calls. However, `React.cache()` is still essential for other async tasks:
|
|
67
|
+
|
|
68
|
+
- Database queries (Prisma, Drizzle, etc.)
|
|
69
|
+
- Heavy computations
|
|
70
|
+
- Authentication checks
|
|
71
|
+
- File system operations
|
|
72
|
+
- Any non-fetch async work
|
|
73
|
+
|
|
74
|
+
Use `React.cache()` to deduplicate these operations across your component tree.
|
|
75
|
+
|
|
76
|
+
Reference: [React.cache documentation](https://react.dev/reference/react/cache)
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Avoid Duplicate Serialization in RSC Props
|
|
3
|
+
impact: LOW
|
|
4
|
+
impactDescription: reduces network payload by avoiding duplicate serialization
|
|
5
|
+
tags: server, rsc, serialization, props, client-components
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Avoid Duplicate Serialization in RSC Props
|
|
9
|
+
|
|
10
|
+
**Impact: LOW (reduces network payload by avoiding duplicate serialization)**
|
|
11
|
+
|
|
12
|
+
RSC→client serialization deduplicates by object reference, not value. Same reference = serialized once; new reference = serialized again. Do transformations (`.toSorted()`, `.filter()`, `.map()`) in client, not server.
|
|
13
|
+
|
|
14
|
+
**Incorrect (duplicates array):**
|
|
15
|
+
|
|
16
|
+
```tsx
|
|
17
|
+
// RSC: sends 6 strings (2 arrays × 3 items)
|
|
18
|
+
<ClientList usernames={usernames} usernamesOrdered={usernames.toSorted()} />
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**Correct (sends 3 strings):**
|
|
22
|
+
|
|
23
|
+
```tsx
|
|
24
|
+
// RSC: send once
|
|
25
|
+
<ClientList usernames={usernames} />
|
|
26
|
+
|
|
27
|
+
// Client: transform there
|
|
28
|
+
'use client'
|
|
29
|
+
const sorted = useMemo(() => [...usernames].sort(), [usernames])
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
**Nested deduplication behavior:**
|
|
33
|
+
|
|
34
|
+
Deduplication works recursively. Impact varies by data type:
|
|
35
|
+
|
|
36
|
+
- `string[]`, `number[]`, `boolean[]`: **HIGH impact** - array + all primitives fully duplicated
|
|
37
|
+
- `object[]`: **LOW impact** - array duplicated, but nested objects deduplicated by reference
|
|
38
|
+
|
|
39
|
+
```tsx
|
|
40
|
+
// string[] - duplicates everything
|
|
41
|
+
usernames={['a','b']} sorted={usernames.toSorted()} // sends 4 strings
|
|
42
|
+
|
|
43
|
+
// object[] - duplicates array structure only
|
|
44
|
+
users={[{id:1},{id:2}]} sorted={users.toSorted()} // sends 2 arrays + 2 unique objects (not 4)
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
**Operations breaking deduplication (create new references):**
|
|
48
|
+
|
|
49
|
+
- Arrays: `.toSorted()`, `.filter()`, `.map()`, `.slice()`, `[...arr]`
|
|
50
|
+
- Objects: `{...obj}`, `Object.assign()`, `structuredClone()`, `JSON.parse(JSON.stringify())`
|
|
51
|
+
|
|
52
|
+
**More examples:**
|
|
53
|
+
|
|
54
|
+
```tsx
|
|
55
|
+
// ❌ Bad
|
|
56
|
+
<C users={users} active={users.filter(u => u.active)} />
|
|
57
|
+
<C product={product} productName={product.name} />
|
|
58
|
+
|
|
59
|
+
// ✅ Good
|
|
60
|
+
<C users={users} />
|
|
61
|
+
<C product={product} />
|
|
62
|
+
// Do filtering/destructuring in client
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Exception:** Pass derived data when transformation is expensive or client doesn't need original.
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Parallel Data Fetching with Component Composition
|
|
3
|
+
impact: CRITICAL
|
|
4
|
+
impactDescription: eliminates server-side waterfalls
|
|
5
|
+
tags: server, rsc, parallel-fetching, composition
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Parallel Data Fetching with Component Composition
|
|
9
|
+
|
|
10
|
+
React Server Components execute sequentially within a tree. Restructure with composition to parallelize data fetching.
|
|
11
|
+
|
|
12
|
+
**Incorrect (Sidebar waits for Page's fetch to complete):**
|
|
13
|
+
|
|
14
|
+
```tsx
|
|
15
|
+
export default async function Page() {
|
|
16
|
+
const header = await fetchHeader()
|
|
17
|
+
return (
|
|
18
|
+
<div>
|
|
19
|
+
<div>{header}</div>
|
|
20
|
+
<Sidebar />
|
|
21
|
+
</div>
|
|
22
|
+
)
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
async function Sidebar() {
|
|
26
|
+
const items = await fetchSidebarItems()
|
|
27
|
+
return <nav>{items.map(renderItem)}</nav>
|
|
28
|
+
}
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
**Correct (both fetch simultaneously):**
|
|
32
|
+
|
|
33
|
+
```tsx
|
|
34
|
+
async function Header() {
|
|
35
|
+
const data = await fetchHeader()
|
|
36
|
+
return <div>{data}</div>
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
async function Sidebar() {
|
|
40
|
+
const items = await fetchSidebarItems()
|
|
41
|
+
return <nav>{items.map(renderItem)}</nav>
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export default function Page() {
|
|
45
|
+
return (
|
|
46
|
+
<div>
|
|
47
|
+
<Header />
|
|
48
|
+
<Sidebar />
|
|
49
|
+
</div>
|
|
50
|
+
)
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**Alternative with children prop:**
|
|
55
|
+
|
|
56
|
+
```tsx
|
|
57
|
+
async function Header() {
|
|
58
|
+
const data = await fetchHeader()
|
|
59
|
+
return <div>{data}</div>
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
async function Sidebar() {
|
|
63
|
+
const items = await fetchSidebarItems()
|
|
64
|
+
return <nav>{items.map(renderItem)}</nav>
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
function Layout({ children }: { children: ReactNode }) {
|
|
68
|
+
return (
|
|
69
|
+
<div>
|
|
70
|
+
<Header />
|
|
71
|
+
{children}
|
|
72
|
+
</div>
|
|
73
|
+
)
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export default function Page() {
|
|
77
|
+
return (
|
|
78
|
+
<Layout>
|
|
79
|
+
<Sidebar />
|
|
80
|
+
</Layout>
|
|
81
|
+
)
|
|
82
|
+
}
|
|
83
|
+
```
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Minimize Serialization at RSC Boundaries
|
|
3
|
+
impact: HIGH
|
|
4
|
+
impactDescription: reduces data transfer size
|
|
5
|
+
tags: server, rsc, serialization, props
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Minimize Serialization at RSC Boundaries
|
|
9
|
+
|
|
10
|
+
The React Server/Client boundary serializes all object properties into strings and embeds them in the HTML response and subsequent RSC requests. This serialized data directly impacts page weight and load time, so **size matters a lot**. Only pass fields that the client actually uses.
|
|
11
|
+
|
|
12
|
+
**Incorrect (serializes all 50 fields):**
|
|
13
|
+
|
|
14
|
+
```tsx
|
|
15
|
+
async function Page() {
|
|
16
|
+
const user = await fetchUser() // 50 fields
|
|
17
|
+
return <Profile user={user} />
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
'use client'
|
|
21
|
+
function Profile({ user }: { user: User }) {
|
|
22
|
+
return <div>{user.name}</div> // uses 1 field
|
|
23
|
+
}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
**Correct (serializes only 1 field):**
|
|
27
|
+
|
|
28
|
+
```tsx
|
|
29
|
+
async function Page() {
|
|
30
|
+
const user = await fetchUser()
|
|
31
|
+
return <Profile name={user.name} />
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
'use client'
|
|
35
|
+
function Profile({ name }: { name: string }) {
|
|
36
|
+
return <div>{name}</div>
|
|
37
|
+
}
|
|
38
|
+
```
|