ac-framework 1.6.0 → 1.8.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/README.md +299 -185
- package/bin/postinstall.js +8 -1
- package/framework/.agent/skills/acfm-memory/SKILL.md +312 -0
- package/framework/.agent/skills/acfm-spec-workflow/SKILL.md +269 -0
- package/framework/.agent/skills/brainstorming/SKILL.md +266 -38
- package/framework/.agent/skills/ci-deploy/SKILL.md +501 -0
- package/framework/.agent/skills/code-review/SKILL.md +250 -0
- package/framework/.agent/skills/context-synthesizer/SKILL.md +322 -0
- package/framework/.agent/skills/documentation/SKILL.md +441 -0
- package/framework/.agent/skills/microtask-decomposition/SKILL.md +368 -0
- package/framework/.agent/skills/openspec-apply-change/SKILL.md +23 -7
- package/framework/.agent/skills/openspec-archive-change/SKILL.md +22 -6
- package/framework/.agent/skills/openspec-bulk-archive-change/SKILL.md +25 -9
- package/framework/.agent/skills/openspec-continue-change/SKILL.md +20 -4
- package/framework/.agent/skills/openspec-explore/SKILL.md +17 -1
- package/framework/.agent/skills/openspec-ff-change/SKILL.md +21 -5
- package/framework/.agent/skills/openspec-new-change/SKILL.md +23 -7
- package/framework/.agent/skills/openspec-sync-specs/SKILL.md +20 -4
- package/framework/.agent/skills/openspec-verify-change/SKILL.md +24 -8
- package/framework/.agent/skills/research-retrieval/SKILL.md +357 -0
- package/framework/.agent/skills/testing-qa/SKILL.md +249 -0
- package/framework/.agent/workflows/ac-lite.md +192 -0
- package/framework/.agent/workflows/ac.md +402 -177
- package/framework/.amazonq/prompts/ac-lite.md +192 -0
- package/framework/.amazonq/prompts/ac.md +402 -177
- package/framework/.amazonq/skills/acfm-memory/SKILL.md +312 -0
- package/framework/.amazonq/skills/acfm-spec-workflow/SKILL.md +269 -0
- package/framework/.amazonq/skills/brainstorming/SKILL.md +266 -38
- package/framework/.amazonq/skills/ci-deploy/SKILL.md +501 -0
- package/framework/.amazonq/skills/code-review/SKILL.md +250 -0
- package/framework/.amazonq/skills/context-synthesizer/SKILL.md +322 -0
- package/framework/.amazonq/skills/documentation/SKILL.md +441 -0
- package/framework/.amazonq/skills/microtask-decomposition/SKILL.md +368 -0
- package/framework/.amazonq/skills/openspec-apply-change/SKILL.md +23 -7
- package/framework/.amazonq/skills/openspec-archive-change/SKILL.md +22 -6
- package/framework/.amazonq/skills/openspec-bulk-archive-change/SKILL.md +25 -9
- package/framework/.amazonq/skills/openspec-continue-change/SKILL.md +20 -4
- package/framework/.amazonq/skills/openspec-explore/SKILL.md +17 -1
- package/framework/.amazonq/skills/openspec-ff-change/SKILL.md +21 -5
- package/framework/.amazonq/skills/openspec-new-change/SKILL.md +23 -7
- package/framework/.amazonq/skills/openspec-sync-specs/SKILL.md +20 -4
- package/framework/.amazonq/skills/openspec-verify-change/SKILL.md +24 -8
- package/framework/.amazonq/skills/research-retrieval/SKILL.md +357 -0
- package/framework/.amazonq/skills/testing-qa/SKILL.md +249 -0
- package/framework/.antigravity/skills/acfm-memory/SKILL.md +312 -0
- package/framework/.antigravity/skills/acfm-spec-workflow/SKILL.md +269 -0
- package/framework/.antigravity/skills/api-design-principles/SKILL.md +528 -0
- package/framework/.antigravity/skills/api-design-principles/assets/api-design-checklist.md +155 -0
- package/framework/.antigravity/skills/api-design-principles/assets/rest-api-template.py +182 -0
- package/framework/.antigravity/skills/api-design-principles/references/graphql-schema-design.md +583 -0
- package/framework/.antigravity/skills/api-design-principles/references/rest-best-practices.md +408 -0
- package/framework/.antigravity/skills/brainstorming/SKILL.md +282 -0
- package/framework/.antigravity/skills/changelog-generator/SKILL.md +104 -0
- package/framework/.antigravity/skills/ci-deploy/SKILL.md +501 -0
- package/framework/.antigravity/skills/code-maintainability/SKILL.md +1108 -0
- package/framework/.antigravity/skills/code-review/SKILL.md +250 -0
- package/framework/.antigravity/skills/context-synthesizer/SKILL.md +322 -0
- package/framework/.antigravity/skills/documentation/SKILL.md +441 -0
- package/framework/.antigravity/skills/error-handling-patterns/SKILL.md +641 -0
- package/framework/.antigravity/skills/interface-design/SKILL.md +310 -0
- package/framework/.antigravity/skills/interface-design/references/example.md +86 -0
- package/framework/.antigravity/skills/interface-design/references/principles.md +235 -0
- package/framework/.antigravity/skills/interface-design/references/validation.md +48 -0
- package/framework/.antigravity/skills/microtask-decomposition/SKILL.md +368 -0
- package/framework/.antigravity/skills/openspec-apply-change/SKILL.md +172 -0
- package/framework/.antigravity/skills/openspec-archive-change/SKILL.md +130 -0
- package/framework/.antigravity/skills/openspec-bulk-archive-change/SKILL.md +262 -0
- package/framework/.antigravity/skills/openspec-continue-change/SKILL.md +134 -0
- package/framework/.antigravity/skills/openspec-explore/SKILL.md +306 -0
- package/framework/.antigravity/skills/openspec-ff-change/SKILL.md +117 -0
- package/framework/.antigravity/skills/openspec-new-change/SKILL.md +90 -0
- package/framework/.antigravity/skills/openspec-onboard/SKILL.md +529 -0
- package/framework/.antigravity/skills/openspec-sync-specs/SKILL.md +154 -0
- package/framework/.antigravity/skills/openspec-verify-change/SKILL.md +184 -0
- package/framework/.antigravity/skills/performance-optimizer/SKILL.md +43 -0
- package/framework/.antigravity/skills/project-constitution/SKILL.md +66 -0
- package/framework/.antigravity/skills/project-index/SKILL.md +234 -0
- package/framework/.antigravity/skills/project-index/scripts/scan_codebase.py +47 -0
- package/framework/.antigravity/skills/project-index/templates/agent-template.md +18 -0
- package/framework/.antigravity/skills/project-index/templates/skill-template.md +20 -0
- package/framework/.antigravity/skills/requirement-checklist/SKILL.md +90 -0
- package/framework/.antigravity/skills/research-retrieval/SKILL.md +357 -0
- package/framework/.antigravity/skills/secure-coding-cybersecurity/SKILL.md +793 -0
- package/framework/.antigravity/skills/secure-coding-cybersecurity/references/ai_coding_pitfalls.md +44 -0
- package/framework/.antigravity/skills/secure-coding-cybersecurity/references/owasp_top_10_2025.md +28 -0
- package/framework/.antigravity/skills/secure-coding-cybersecurity/references/secure_coding_examples.md +102 -0
- package/framework/.antigravity/skills/secure-coding-cybersecurity/scripts/security_audit.py +46 -0
- package/framework/.antigravity/skills/skill-writer/SKILL.md +385 -0
- package/framework/.antigravity/skills/spec-analysis/SKILL.md +65 -0
- package/framework/.antigravity/skills/spec-clarification/SKILL.md +73 -0
- package/framework/.antigravity/skills/sync-index/SKILL.md +35 -0
- package/framework/.antigravity/skills/systematic-debugging/SKILL.md +296 -0
- package/framework/.antigravity/skills/test-generator/SKILL.md +41 -0
- package/framework/.antigravity/skills/testing-qa/SKILL.md +249 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/AGENTS.md +2934 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/SKILL.md +136 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/framework/.antigravity/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/framework/.antigravity/workflows/ac-lite.md +192 -0
- package/framework/.antigravity/workflows/ac.md +486 -0
- package/framework/.augment/commands/ac-lite.md +192 -0
- package/framework/.augment/commands/ac.md +402 -177
- package/framework/.augment/skills/acfm-memory/SKILL.md +312 -0
- package/framework/.augment/skills/acfm-spec-workflow/SKILL.md +269 -0
- package/framework/.augment/skills/brainstorming/SKILL.md +266 -38
- package/framework/.augment/skills/ci-deploy/SKILL.md +501 -0
- package/framework/.augment/skills/code-review/SKILL.md +250 -0
- package/framework/.augment/skills/context-synthesizer/SKILL.md +322 -0
- package/framework/.augment/skills/documentation/SKILL.md +441 -0
- package/framework/.augment/skills/microtask-decomposition/SKILL.md +368 -0
- package/framework/.augment/skills/openspec-apply-change/SKILL.md +23 -7
- package/framework/.augment/skills/openspec-archive-change/SKILL.md +22 -6
- package/framework/.augment/skills/openspec-bulk-archive-change/SKILL.md +25 -9
- package/framework/.augment/skills/openspec-continue-change/SKILL.md +20 -4
- package/framework/.augment/skills/openspec-explore/SKILL.md +17 -1
- package/framework/.augment/skills/openspec-ff-change/SKILL.md +21 -5
- package/framework/.augment/skills/openspec-new-change/SKILL.md +23 -7
- package/framework/.augment/skills/openspec-sync-specs/SKILL.md +20 -4
- package/framework/.augment/skills/openspec-verify-change/SKILL.md +24 -8
- package/framework/.augment/skills/research-retrieval/SKILL.md +357 -0
- package/framework/.augment/skills/testing-qa/SKILL.md +249 -0
- package/framework/.claude/commands/opsx/ac-lite.md +192 -0
- package/framework/.claude/commands/opsx/ac.md +402 -177
- package/framework/.claude/skills/acfm-memory/SKILL.md +312 -0
- package/framework/.claude/skills/acfm-spec-workflow/SKILL.md +269 -0
- package/framework/.claude/skills/brainstorming/SKILL.md +266 -38
- package/framework/.claude/skills/ci-deploy/SKILL.md +501 -0
- package/framework/.claude/skills/code-review/SKILL.md +250 -0
- package/framework/.claude/skills/context-synthesizer/SKILL.md +322 -0
- package/framework/.claude/skills/documentation/SKILL.md +441 -0
- package/framework/.claude/skills/microtask-decomposition/SKILL.md +368 -0
- package/framework/.claude/skills/openspec-apply-change/SKILL.md +23 -7
- package/framework/.claude/skills/openspec-archive-change/SKILL.md +22 -6
- package/framework/.claude/skills/openspec-bulk-archive-change/SKILL.md +25 -9
- package/framework/.claude/skills/openspec-continue-change/SKILL.md +20 -4
- package/framework/.claude/skills/openspec-explore/SKILL.md +17 -1
- package/framework/.claude/skills/openspec-ff-change/SKILL.md +21 -5
- package/framework/.claude/skills/openspec-new-change/SKILL.md +23 -7
- package/framework/.claude/skills/openspec-sync-specs/SKILL.md +20 -4
- package/framework/.claude/skills/openspec-verify-change/SKILL.md +24 -8
- package/framework/.claude/skills/research-retrieval/SKILL.md +357 -0
- package/framework/.claude/skills/testing-qa/SKILL.md +249 -0
- package/framework/.cline/commands/opsx/ac-lite.md +192 -0
- package/framework/.cline/commands/opsx/ac.md +486 -0
- package/framework/.cline/skills/acfm-memory/SKILL.md +312 -0
- package/framework/.cline/skills/acfm-spec-workflow/SKILL.md +269 -0
- package/framework/.cline/skills/brainstorming/SKILL.md +266 -38
- package/framework/.cline/skills/ci-deploy/SKILL.md +501 -0
- package/framework/.cline/skills/code-review/SKILL.md +250 -0
- package/framework/.cline/skills/context-synthesizer/SKILL.md +322 -0
- package/framework/.cline/skills/documentation/SKILL.md +441 -0
- package/framework/.cline/skills/microtask-decomposition/SKILL.md +368 -0
- package/framework/.cline/skills/openspec-apply-change/SKILL.md +23 -7
- package/framework/.cline/skills/openspec-archive-change/SKILL.md +22 -6
- package/framework/.cline/skills/openspec-bulk-archive-change/SKILL.md +25 -9
- package/framework/.cline/skills/openspec-continue-change/SKILL.md +20 -4
- package/framework/.cline/skills/openspec-explore/SKILL.md +17 -1
- package/framework/.cline/skills/openspec-ff-change/SKILL.md +21 -5
- package/framework/.cline/skills/openspec-new-change/SKILL.md +23 -7
- package/framework/.cline/skills/openspec-sync-specs/SKILL.md +20 -4
- package/framework/.cline/skills/openspec-verify-change/SKILL.md +24 -8
- package/framework/.cline/skills/research-retrieval/SKILL.md +357 -0
- package/framework/.cline/skills/testing-qa/SKILL.md +249 -0
- package/framework/.clinerules/skills/acfm-memory/SKILL.md +312 -0
- package/framework/.clinerules/skills/acfm-spec-workflow/SKILL.md +269 -0
- package/framework/.clinerules/skills/brainstorming/SKILL.md +266 -38
- package/framework/.clinerules/skills/ci-deploy/SKILL.md +501 -0
- package/framework/.clinerules/skills/code-review/SKILL.md +250 -0
- package/framework/.clinerules/skills/context-synthesizer/SKILL.md +322 -0
- package/framework/.clinerules/skills/documentation/SKILL.md +441 -0
- package/framework/.clinerules/skills/microtask-decomposition/SKILL.md +368 -0
- package/framework/.clinerules/skills/openspec-apply-change/SKILL.md +23 -7
- package/framework/.clinerules/skills/openspec-archive-change/SKILL.md +22 -6
- package/framework/.clinerules/skills/openspec-bulk-archive-change/SKILL.md +25 -9
- package/framework/.clinerules/skills/openspec-continue-change/SKILL.md +20 -4
- package/framework/.clinerules/skills/openspec-explore/SKILL.md +17 -1
- package/framework/.clinerules/skills/openspec-ff-change/SKILL.md +21 -5
- package/framework/.clinerules/skills/openspec-new-change/SKILL.md +23 -7
- package/framework/.clinerules/skills/openspec-sync-specs/SKILL.md +20 -4
- package/framework/.clinerules/skills/openspec-verify-change/SKILL.md +24 -8
- package/framework/.clinerules/skills/research-retrieval/SKILL.md +357 -0
- package/framework/.clinerules/skills/testing-qa/SKILL.md +249 -0
- package/framework/.clinerules/workflows/ac-lite.md +192 -0
- package/framework/.clinerules/workflows/ac.md +402 -177
- package/framework/.codebuddy/commands/opsx/ac-lite.md +192 -0
- package/framework/.codebuddy/commands/opsx/ac.md +402 -177
- package/framework/.codebuddy/skills/acfm-memory/SKILL.md +312 -0
- package/framework/.codebuddy/skills/acfm-spec-workflow/SKILL.md +269 -0
- package/framework/.codebuddy/skills/brainstorming/SKILL.md +266 -38
- package/framework/.codebuddy/skills/ci-deploy/SKILL.md +501 -0
- package/framework/.codebuddy/skills/code-review/SKILL.md +250 -0
- package/framework/.codebuddy/skills/context-synthesizer/SKILL.md +322 -0
- package/framework/.codebuddy/skills/documentation/SKILL.md +441 -0
- package/framework/.codebuddy/skills/microtask-decomposition/SKILL.md +368 -0
- package/framework/.codebuddy/skills/openspec-apply-change/SKILL.md +23 -7
- package/framework/.codebuddy/skills/openspec-archive-change/SKILL.md +22 -6
- package/framework/.codebuddy/skills/openspec-bulk-archive-change/SKILL.md +25 -9
- package/framework/.codebuddy/skills/openspec-continue-change/SKILL.md +20 -4
- package/framework/.codebuddy/skills/openspec-explore/SKILL.md +17 -1
- package/framework/.codebuddy/skills/openspec-ff-change/SKILL.md +21 -5
- package/framework/.codebuddy/skills/openspec-new-change/SKILL.md +23 -7
- package/framework/.codebuddy/skills/openspec-sync-specs/SKILL.md +20 -4
- package/framework/.codebuddy/skills/openspec-verify-change/SKILL.md +24 -8
- package/framework/.codebuddy/skills/research-retrieval/SKILL.md +357 -0
- package/framework/.codebuddy/skills/testing-qa/SKILL.md +249 -0
- package/framework/.codex/skills/acfm-memory/SKILL.md +312 -0
- package/framework/.codex/skills/acfm-spec-workflow/SKILL.md +269 -0
- package/framework/.codex/skills/brainstorming/SKILL.md +266 -38
- package/framework/.codex/skills/ci-deploy/SKILL.md +501 -0
- package/framework/.codex/skills/code-review/SKILL.md +250 -0
- package/framework/.codex/skills/context-synthesizer/SKILL.md +322 -0
- package/framework/.codex/skills/documentation/SKILL.md +441 -0
- package/framework/.codex/skills/main-skill/SKILL.md +455 -0
- package/framework/.codex/skills/microtask-decomposition/SKILL.md +368 -0
- package/framework/.codex/skills/openspec-apply-change/SKILL.md +23 -7
- package/framework/.codex/skills/openspec-archive-change/SKILL.md +22 -6
- package/framework/.codex/skills/openspec-bulk-archive-change/SKILL.md +25 -9
- package/framework/.codex/skills/openspec-continue-change/SKILL.md +20 -4
- package/framework/.codex/skills/openspec-explore/SKILL.md +17 -1
- package/framework/.codex/skills/openspec-ff-change/SKILL.md +21 -5
- package/framework/.codex/skills/openspec-new-change/SKILL.md +23 -7
- package/framework/.codex/skills/openspec-sync-specs/SKILL.md +20 -4
- package/framework/.codex/skills/openspec-verify-change/SKILL.md +24 -8
- package/framework/.codex/skills/research-retrieval/SKILL.md +357 -0
- package/framework/.codex/skills/testing-qa/SKILL.md +249 -0
- package/framework/.continue/prompts/ac-lite.md +192 -0
- package/framework/.continue/prompts/ac.md +486 -0
- package/framework/.continue/skills/acfm-memory/SKILL.md +312 -0
- package/framework/.continue/skills/acfm-spec-workflow/SKILL.md +269 -0
- package/framework/.continue/skills/brainstorming/SKILL.md +266 -38
- package/framework/.continue/skills/ci-deploy/SKILL.md +501 -0
- package/framework/.continue/skills/code-review/SKILL.md +250 -0
- package/framework/.continue/skills/context-synthesizer/SKILL.md +322 -0
- package/framework/.continue/skills/documentation/SKILL.md +441 -0
- package/framework/.continue/skills/microtask-decomposition/SKILL.md +368 -0
- package/framework/.continue/skills/openspec-apply-change/SKILL.md +23 -7
- package/framework/.continue/skills/openspec-archive-change/SKILL.md +22 -6
- package/framework/.continue/skills/openspec-bulk-archive-change/SKILL.md +25 -9
- package/framework/.continue/skills/openspec-continue-change/SKILL.md +20 -4
- package/framework/.continue/skills/openspec-explore/SKILL.md +17 -1
- package/framework/.continue/skills/openspec-ff-change/SKILL.md +21 -5
- package/framework/.continue/skills/openspec-new-change/SKILL.md +23 -7
- package/framework/.continue/skills/openspec-sync-specs/SKILL.md +20 -4
- package/framework/.continue/skills/openspec-verify-change/SKILL.md +24 -8
- package/framework/.continue/skills/research-retrieval/SKILL.md +357 -0
- package/framework/.continue/skills/testing-qa/SKILL.md +249 -0
- package/framework/.cospec/openspec/commands/ac-lite.md +192 -0
- package/framework/.cospec/openspec/commands/ac.md +402 -177
- package/framework/.cospec/skills/acfm-memory/SKILL.md +312 -0
- package/framework/.cospec/skills/acfm-spec-workflow/SKILL.md +269 -0
- package/framework/.cospec/skills/brainstorming/SKILL.md +266 -38
- package/framework/.cospec/skills/ci-deploy/SKILL.md +501 -0
- package/framework/.cospec/skills/code-review/SKILL.md +250 -0
- package/framework/.cospec/skills/context-synthesizer/SKILL.md +322 -0
- package/framework/.cospec/skills/documentation/SKILL.md +441 -0
- package/framework/.cospec/skills/microtask-decomposition/SKILL.md +368 -0
- package/framework/.cospec/skills/openspec-apply-change/SKILL.md +23 -7
- package/framework/.cospec/skills/openspec-archive-change/SKILL.md +22 -6
- package/framework/.cospec/skills/openspec-bulk-archive-change/SKILL.md +25 -9
- package/framework/.cospec/skills/openspec-continue-change/SKILL.md +20 -4
- package/framework/.cospec/skills/openspec-explore/SKILL.md +17 -1
- package/framework/.cospec/skills/openspec-ff-change/SKILL.md +21 -5
- package/framework/.cospec/skills/openspec-new-change/SKILL.md +23 -7
- package/framework/.cospec/skills/openspec-sync-specs/SKILL.md +20 -4
- package/framework/.cospec/skills/openspec-verify-change/SKILL.md +24 -8
- package/framework/.cospec/skills/research-retrieval/SKILL.md +357 -0
- package/framework/.cospec/skills/testing-qa/SKILL.md +249 -0
- package/framework/.crush/commands/opsx/ac-lite.md +192 -0
- package/framework/.crush/commands/opsx/ac.md +402 -177
- package/framework/.crush/skills/acfm-memory/SKILL.md +312 -0
- package/framework/.crush/skills/acfm-spec-workflow/SKILL.md +269 -0
- package/framework/.crush/skills/brainstorming/SKILL.md +266 -38
- package/framework/.crush/skills/ci-deploy/SKILL.md +501 -0
- package/framework/.crush/skills/code-review/SKILL.md +250 -0
- package/framework/.crush/skills/context-synthesizer/SKILL.md +322 -0
- package/framework/.crush/skills/documentation/SKILL.md +441 -0
- package/framework/.crush/skills/microtask-decomposition/SKILL.md +368 -0
- package/framework/.crush/skills/openspec-apply-change/SKILL.md +23 -7
- package/framework/.crush/skills/openspec-archive-change/SKILL.md +22 -6
- package/framework/.crush/skills/openspec-bulk-archive-change/SKILL.md +25 -9
- package/framework/.crush/skills/openspec-continue-change/SKILL.md +20 -4
- package/framework/.crush/skills/openspec-explore/SKILL.md +17 -1
- package/framework/.crush/skills/openspec-ff-change/SKILL.md +21 -5
- package/framework/.crush/skills/openspec-new-change/SKILL.md +23 -7
- package/framework/.crush/skills/openspec-sync-specs/SKILL.md +20 -4
- package/framework/.crush/skills/openspec-verify-change/SKILL.md +24 -8
- package/framework/.crush/skills/research-retrieval/SKILL.md +357 -0
- package/framework/.crush/skills/testing-qa/SKILL.md +249 -0
- package/framework/.cursor/commands/ac-lite.md +192 -0
- package/framework/.cursor/commands/ac.md +402 -177
- package/framework/.cursor/skills/acfm-memory/SKILL.md +312 -0
- package/framework/.cursor/skills/acfm-spec-workflow/SKILL.md +269 -0
- package/framework/.cursor/skills/brainstorming/SKILL.md +266 -38
- package/framework/.cursor/skills/ci-deploy/SKILL.md +501 -0
- package/framework/.cursor/skills/code-review/SKILL.md +250 -0
- package/framework/.cursor/skills/context-synthesizer/SKILL.md +322 -0
- package/framework/.cursor/skills/documentation/SKILL.md +441 -0
- package/framework/.cursor/skills/microtask-decomposition/SKILL.md +368 -0
- package/framework/.cursor/skills/openspec-apply-change/SKILL.md +23 -7
- package/framework/.cursor/skills/openspec-archive-change/SKILL.md +22 -6
- package/framework/.cursor/skills/openspec-bulk-archive-change/SKILL.md +25 -9
- package/framework/.cursor/skills/openspec-continue-change/SKILL.md +20 -4
- package/framework/.cursor/skills/openspec-explore/SKILL.md +17 -1
- package/framework/.cursor/skills/openspec-ff-change/SKILL.md +21 -5
- package/framework/.cursor/skills/openspec-new-change/SKILL.md +23 -7
- package/framework/.cursor/skills/openspec-sync-specs/SKILL.md +20 -4
- package/framework/.cursor/skills/openspec-verify-change/SKILL.md +24 -8
- package/framework/.cursor/skills/research-retrieval/SKILL.md +357 -0
- package/framework/.cursor/skills/testing-qa/SKILL.md +249 -0
- package/framework/.factory/commands/ac-lite.md +192 -0
- package/framework/.factory/commands/ac.md +402 -177
- package/framework/.factory/skills/acfm-memory/SKILL.md +312 -0
- package/framework/.factory/skills/acfm-spec-workflow/SKILL.md +269 -0
- package/framework/.factory/skills/brainstorming/SKILL.md +266 -38
- package/framework/.factory/skills/ci-deploy/SKILL.md +501 -0
- package/framework/.factory/skills/code-review/SKILL.md +250 -0
- package/framework/.factory/skills/context-synthesizer/SKILL.md +322 -0
- package/framework/.factory/skills/documentation/SKILL.md +441 -0
- package/framework/.factory/skills/microtask-decomposition/SKILL.md +368 -0
- package/framework/.factory/skills/openspec-apply-change/SKILL.md +23 -7
- package/framework/.factory/skills/openspec-archive-change/SKILL.md +22 -6
- package/framework/.factory/skills/openspec-bulk-archive-change/SKILL.md +25 -9
- package/framework/.factory/skills/openspec-continue-change/SKILL.md +20 -4
- package/framework/.factory/skills/openspec-explore/SKILL.md +17 -1
- package/framework/.factory/skills/openspec-ff-change/SKILL.md +21 -5
- package/framework/.factory/skills/openspec-new-change/SKILL.md +23 -7
- package/framework/.factory/skills/openspec-sync-specs/SKILL.md +20 -4
- package/framework/.factory/skills/openspec-verify-change/SKILL.md +24 -8
- package/framework/.factory/skills/research-retrieval/SKILL.md +357 -0
- package/framework/.factory/skills/testing-qa/SKILL.md +249 -0
- package/framework/.gemini/commands/opsx/ac-lite.md +192 -0
- package/framework/.gemini/commands/opsx/ac.md +486 -0
- package/framework/.gemini/skills/acfm-memory/SKILL.md +312 -0
- package/framework/.gemini/skills/acfm-spec-workflow/SKILL.md +269 -0
- package/framework/.gemini/skills/brainstorming/SKILL.md +266 -38
- package/framework/.gemini/skills/ci-deploy/SKILL.md +501 -0
- package/framework/.gemini/skills/code-review/SKILL.md +250 -0
- package/framework/.gemini/skills/context-synthesizer/SKILL.md +322 -0
- package/framework/.gemini/skills/documentation/SKILL.md +441 -0
- package/framework/.gemini/skills/microtask-decomposition/SKILL.md +368 -0
- package/framework/.gemini/skills/openspec-apply-change/SKILL.md +23 -7
- package/framework/.gemini/skills/openspec-archive-change/SKILL.md +22 -6
- package/framework/.gemini/skills/openspec-bulk-archive-change/SKILL.md +25 -9
- package/framework/.gemini/skills/openspec-continue-change/SKILL.md +20 -4
- package/framework/.gemini/skills/openspec-explore/SKILL.md +17 -1
- package/framework/.gemini/skills/openspec-ff-change/SKILL.md +21 -5
- package/framework/.gemini/skills/openspec-new-change/SKILL.md +23 -7
- package/framework/.gemini/skills/openspec-sync-specs/SKILL.md +20 -4
- package/framework/.gemini/skills/openspec-verify-change/SKILL.md +24 -8
- package/framework/.gemini/skills/research-retrieval/SKILL.md +357 -0
- package/framework/.gemini/skills/testing-qa/SKILL.md +249 -0
- package/framework/.github/prompts/ac-lite.md +192 -0
- package/framework/.github/prompts/ac.md +486 -0
- package/framework/.github/skills/acfm-memory/SKILL.md +312 -0
- package/framework/.github/skills/acfm-spec-workflow/SKILL.md +269 -0
- package/framework/.github/skills/brainstorming/SKILL.md +266 -38
- package/framework/.github/skills/ci-deploy/SKILL.md +501 -0
- package/framework/.github/skills/code-review/SKILL.md +250 -0
- package/framework/.github/skills/context-synthesizer/SKILL.md +322 -0
- package/framework/.github/skills/documentation/SKILL.md +441 -0
- package/framework/.github/skills/microtask-decomposition/SKILL.md +368 -0
- package/framework/.github/skills/openspec-apply-change/SKILL.md +23 -7
- package/framework/.github/skills/openspec-archive-change/SKILL.md +22 -6
- package/framework/.github/skills/openspec-bulk-archive-change/SKILL.md +25 -9
- package/framework/.github/skills/openspec-continue-change/SKILL.md +20 -4
- package/framework/.github/skills/openspec-explore/SKILL.md +17 -1
- package/framework/.github/skills/openspec-ff-change/SKILL.md +21 -5
- package/framework/.github/skills/openspec-new-change/SKILL.md +23 -7
- package/framework/.github/skills/openspec-sync-specs/SKILL.md +20 -4
- package/framework/.github/skills/openspec-verify-change/SKILL.md +24 -8
- package/framework/.github/skills/research-retrieval/SKILL.md +357 -0
- package/framework/.github/skills/testing-qa/SKILL.md +249 -0
- package/framework/.iflow/commands/ac-lite.md +192 -0
- package/framework/.iflow/commands/ac.md +402 -177
- package/framework/.iflow/skills/acfm-memory/SKILL.md +312 -0
- package/framework/.iflow/skills/acfm-spec-workflow/SKILL.md +269 -0
- package/framework/.iflow/skills/brainstorming/SKILL.md +266 -38
- package/framework/.iflow/skills/ci-deploy/SKILL.md +501 -0
- package/framework/.iflow/skills/code-review/SKILL.md +250 -0
- package/framework/.iflow/skills/context-synthesizer/SKILL.md +322 -0
- package/framework/.iflow/skills/documentation/SKILL.md +441 -0
- package/framework/.iflow/skills/microtask-decomposition/SKILL.md +368 -0
- package/framework/.iflow/skills/openspec-apply-change/SKILL.md +23 -7
- package/framework/.iflow/skills/openspec-archive-change/SKILL.md +22 -6
- package/framework/.iflow/skills/openspec-bulk-archive-change/SKILL.md +25 -9
- package/framework/.iflow/skills/openspec-continue-change/SKILL.md +20 -4
- package/framework/.iflow/skills/openspec-explore/SKILL.md +17 -1
- package/framework/.iflow/skills/openspec-ff-change/SKILL.md +21 -5
- package/framework/.iflow/skills/openspec-new-change/SKILL.md +23 -7
- package/framework/.iflow/skills/openspec-sync-specs/SKILL.md +20 -4
- package/framework/.iflow/skills/openspec-verify-change/SKILL.md +24 -8
- package/framework/.iflow/skills/research-retrieval/SKILL.md +357 -0
- package/framework/.iflow/skills/testing-qa/SKILL.md +249 -0
- package/framework/.kilocode/skills/acfm-memory/SKILL.md +312 -0
- package/framework/.kilocode/skills/acfm-spec-workflow/SKILL.md +269 -0
- package/framework/.kilocode/skills/brainstorming/SKILL.md +266 -38
- package/framework/.kilocode/skills/ci-deploy/SKILL.md +501 -0
- package/framework/.kilocode/skills/code-review/SKILL.md +250 -0
- package/framework/.kilocode/skills/context-synthesizer/SKILL.md +322 -0
- package/framework/.kilocode/skills/documentation/SKILL.md +441 -0
- package/framework/.kilocode/skills/microtask-decomposition/SKILL.md +368 -0
- package/framework/.kilocode/skills/openspec-apply-change/SKILL.md +23 -7
- package/framework/.kilocode/skills/openspec-archive-change/SKILL.md +22 -6
- package/framework/.kilocode/skills/openspec-bulk-archive-change/SKILL.md +25 -9
- package/framework/.kilocode/skills/openspec-continue-change/SKILL.md +20 -4
- package/framework/.kilocode/skills/openspec-explore/SKILL.md +17 -1
- package/framework/.kilocode/skills/openspec-ff-change/SKILL.md +21 -5
- package/framework/.kilocode/skills/openspec-new-change/SKILL.md +23 -7
- package/framework/.kilocode/skills/openspec-sync-specs/SKILL.md +20 -4
- package/framework/.kilocode/skills/openspec-verify-change/SKILL.md +24 -8
- package/framework/.kilocode/skills/research-retrieval/SKILL.md +357 -0
- package/framework/.kilocode/skills/testing-qa/SKILL.md +249 -0
- package/framework/.kilocode/workflows/ac-lite.md +192 -0
- package/framework/.kilocode/workflows/ac.md +402 -177
- package/framework/.kimi/skills/acfm-memory/SKILL.md +312 -0
- package/framework/.kimi/skills/acfm-spec-workflow/SKILL.md +269 -0
- package/framework/.kimi/skills/api-design-principles/SKILL.md +528 -0
- package/framework/.kimi/skills/api-design-principles/assets/api-design-checklist.md +155 -0
- package/framework/.kimi/skills/api-design-principles/assets/rest-api-template.py +182 -0
- package/framework/.kimi/skills/api-design-principles/references/graphql-schema-design.md +583 -0
- package/framework/.kimi/skills/api-design-principles/references/rest-best-practices.md +408 -0
- package/framework/.kimi/skills/brainstorming/SKILL.md +282 -0
- package/framework/.kimi/skills/changelog-generator/SKILL.md +104 -0
- package/framework/.kimi/skills/ci-deploy/SKILL.md +501 -0
- package/framework/.kimi/skills/code-maintainability/SKILL.md +1108 -0
- package/framework/.kimi/skills/code-review/SKILL.md +250 -0
- package/framework/.kimi/skills/context-synthesizer/SKILL.md +322 -0
- package/framework/.kimi/skills/documentation/SKILL.md +441 -0
- package/framework/.kimi/skills/error-handling-patterns/SKILL.md +641 -0
- package/framework/.kimi/skills/interface-design/SKILL.md +310 -0
- package/framework/.kimi/skills/interface-design/references/example.md +86 -0
- package/framework/.kimi/skills/interface-design/references/principles.md +235 -0
- package/framework/.kimi/skills/interface-design/references/validation.md +48 -0
- package/framework/.kimi/skills/microtask-decomposition/SKILL.md +368 -0
- package/framework/.kimi/skills/openspec-apply-change/SKILL.md +172 -0
- package/framework/.kimi/skills/openspec-archive-change/SKILL.md +130 -0
- package/framework/.kimi/skills/openspec-bulk-archive-change/SKILL.md +262 -0
- package/framework/.kimi/skills/openspec-continue-change/SKILL.md +134 -0
- package/framework/.kimi/skills/openspec-explore/SKILL.md +306 -0
- package/framework/.kimi/skills/openspec-ff-change/SKILL.md +117 -0
- package/framework/.kimi/skills/openspec-new-change/SKILL.md +90 -0
- package/framework/.kimi/skills/openspec-onboard/SKILL.md +529 -0
- package/framework/.kimi/skills/openspec-sync-specs/SKILL.md +154 -0
- package/framework/.kimi/skills/openspec-verify-change/SKILL.md +184 -0
- package/framework/.kimi/skills/performance-optimizer/SKILL.md +43 -0
- package/framework/.kimi/skills/project-constitution/SKILL.md +66 -0
- package/framework/.kimi/skills/project-index/SKILL.md +234 -0
- package/framework/.kimi/skills/project-index/scripts/scan_codebase.py +47 -0
- package/framework/.kimi/skills/project-index/templates/agent-template.md +18 -0
- package/framework/.kimi/skills/project-index/templates/skill-template.md +20 -0
- package/framework/.kimi/skills/requirement-checklist/SKILL.md +90 -0
- package/framework/.kimi/skills/research-retrieval/SKILL.md +357 -0
- package/framework/.kimi/skills/secure-coding-cybersecurity/SKILL.md +793 -0
- package/framework/.kimi/skills/secure-coding-cybersecurity/references/ai_coding_pitfalls.md +44 -0
- package/framework/.kimi/skills/secure-coding-cybersecurity/references/owasp_top_10_2025.md +28 -0
- package/framework/.kimi/skills/secure-coding-cybersecurity/references/secure_coding_examples.md +102 -0
- package/framework/.kimi/skills/secure-coding-cybersecurity/scripts/security_audit.py +46 -0
- package/framework/.kimi/skills/skill-writer/SKILL.md +385 -0
- package/framework/.kimi/skills/spec-analysis/SKILL.md +65 -0
- package/framework/.kimi/skills/spec-clarification/SKILL.md +73 -0
- package/framework/.kimi/skills/sync-index/SKILL.md +35 -0
- package/framework/.kimi/skills/systematic-debugging/SKILL.md +296 -0
- package/framework/.kimi/skills/test-generator/SKILL.md +41 -0
- package/framework/.kimi/skills/testing-qa/SKILL.md +249 -0
- package/framework/.kimi/skills/vercel-react-best-practices/AGENTS.md +2934 -0
- package/framework/.kimi/skills/vercel-react-best-practices/SKILL.md +136 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/advanced-event-handler-refs.md +55 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/advanced-init-once.md +42 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/advanced-use-latest.md +39 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/async-api-routes.md +38 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/async-defer-await.md +80 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/async-dependencies.md +51 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/async-parallel.md +28 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/async-suspense-boundaries.md +99 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/bundle-barrel-imports.md +59 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/bundle-conditional.md +31 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/bundle-defer-third-party.md +49 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/bundle-dynamic-imports.md +35 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/bundle-preload.md +50 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/client-event-listeners.md +74 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/client-localstorage-schema.md +71 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/client-passive-event-listeners.md +48 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/client-swr-dedup.md +56 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/js-batch-dom-css.md +107 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/js-cache-function-results.md +80 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/js-cache-property-access.md +28 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/js-cache-storage.md +70 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/js-combine-iterations.md +32 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/js-early-exit.md +50 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/js-hoist-regexp.md +45 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/js-index-maps.md +37 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/js-length-check-first.md +49 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/js-min-max-loop.md +82 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/js-set-map-lookups.md +24 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/js-tosorted-immutable.md +57 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/rendering-activity.md +26 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/rendering-animate-svg-wrapper.md +47 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/rendering-conditional-render.md +40 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/rendering-content-visibility.md +38 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/rendering-hoist-jsx.md +46 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/rendering-hydration-no-flicker.md +82 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/rendering-hydration-suppress-warning.md +30 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/rendering-svg-precision.md +28 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/rendering-usetransition-loading.md +75 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/rerender-defer-reads.md +39 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/rerender-dependencies.md +45 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/rerender-derived-state-no-effect.md +40 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/rerender-derived-state.md +29 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/rerender-functional-setstate.md +74 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/rerender-lazy-state-init.md +58 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/rerender-memo-with-default-value.md +38 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/rerender-memo.md +44 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/rerender-move-effect-to-event.md +45 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/rerender-simple-expression-in-memo.md +35 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/rerender-transitions.md +40 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/rerender-use-ref-transient-values.md +73 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/server-after-nonblocking.md +73 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/server-auth-actions.md +96 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/server-cache-lru.md +41 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/server-cache-react.md +76 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/server-dedup-props.md +65 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/server-parallel-fetching.md +83 -0
- package/framework/.kimi/skills/vercel-react-best-practices/rules/server-serialization.md +38 -0
- package/framework/.kimi/workflows/ac-lite.md +192 -0
- package/framework/.kimi/workflows/ac.md +486 -0
- package/framework/.kimi/workflows/opsx-apply.md +149 -0
- package/framework/.kimi/workflows/opsx-archive.md +154 -0
- package/framework/.kimi/workflows/opsx-bulk-archive.md +239 -0
- package/framework/.kimi/workflows/opsx-continue.md +111 -0
- package/framework/.kimi/workflows/opsx-explore.md +171 -0
- package/framework/.kimi/workflows/opsx-ff.md +91 -0
- package/framework/.kimi/workflows/opsx-new.md +66 -0
- package/framework/.kimi/workflows/opsx-onboard.md +522 -0
- package/framework/.kimi/workflows/opsx-sync.md +131 -0
- package/framework/.kimi/workflows/opsx-verify.md +161 -0
- package/framework/.opencode/command/ac-lite.md +192 -0
- package/framework/.opencode/command/ac.md +402 -177
- package/framework/.opencode/skills/acfm-memory/SKILL.md +312 -0
- package/framework/.opencode/skills/acfm-spec-workflow/SKILL.md +269 -0
- package/framework/.opencode/skills/brainstorming/SKILL.md +266 -38
- package/framework/.opencode/skills/ci-deploy/SKILL.md +501 -0
- package/framework/.opencode/skills/code-review/SKILL.md +250 -0
- package/framework/.opencode/skills/context-synthesizer/SKILL.md +322 -0
- package/framework/.opencode/skills/documentation/SKILL.md +441 -0
- package/framework/.opencode/skills/microtask-decomposition/SKILL.md +368 -0
- package/framework/.opencode/skills/openspec-apply-change/SKILL.md +23 -7
- package/framework/.opencode/skills/openspec-archive-change/SKILL.md +22 -6
- package/framework/.opencode/skills/openspec-bulk-archive-change/SKILL.md +25 -9
- package/framework/.opencode/skills/openspec-continue-change/SKILL.md +20 -4
- package/framework/.opencode/skills/openspec-explore/SKILL.md +17 -1
- package/framework/.opencode/skills/openspec-ff-change/SKILL.md +21 -5
- package/framework/.opencode/skills/openspec-new-change/SKILL.md +23 -7
- package/framework/.opencode/skills/openspec-sync-specs/SKILL.md +20 -4
- package/framework/.opencode/skills/openspec-verify-change/SKILL.md +24 -8
- package/framework/.opencode/skills/research-retrieval/SKILL.md +357 -0
- package/framework/.opencode/skills/testing-qa/SKILL.md +249 -0
- package/framework/.qoder/commands/opsx/ac-lite.md +192 -0
- package/framework/.qoder/commands/opsx/ac.md +402 -177
- package/framework/.qoder/skills/acfm-memory/SKILL.md +312 -0
- package/framework/.qoder/skills/acfm-spec-workflow/SKILL.md +269 -0
- package/framework/.qoder/skills/brainstorming/SKILL.md +266 -38
- package/framework/.qoder/skills/ci-deploy/SKILL.md +501 -0
- package/framework/.qoder/skills/code-review/SKILL.md +250 -0
- package/framework/.qoder/skills/context-synthesizer/SKILL.md +322 -0
- package/framework/.qoder/skills/documentation/SKILL.md +441 -0
- package/framework/.qoder/skills/microtask-decomposition/SKILL.md +368 -0
- package/framework/.qoder/skills/openspec-apply-change/SKILL.md +23 -7
- package/framework/.qoder/skills/openspec-archive-change/SKILL.md +22 -6
- package/framework/.qoder/skills/openspec-bulk-archive-change/SKILL.md +25 -9
- package/framework/.qoder/skills/openspec-continue-change/SKILL.md +20 -4
- package/framework/.qoder/skills/openspec-explore/SKILL.md +17 -1
- package/framework/.qoder/skills/openspec-ff-change/SKILL.md +21 -5
- package/framework/.qoder/skills/openspec-new-change/SKILL.md +23 -7
- package/framework/.qoder/skills/openspec-sync-specs/SKILL.md +20 -4
- package/framework/.qoder/skills/openspec-verify-change/SKILL.md +24 -8
- package/framework/.qoder/skills/research-retrieval/SKILL.md +357 -0
- package/framework/.qoder/skills/testing-qa/SKILL.md +249 -0
- package/framework/.qwen/commands/ac-lite.md +192 -0
- package/framework/.qwen/commands/ac.md +402 -177
- package/framework/.qwen/skills/acfm-memory/SKILL.md +312 -0
- package/framework/.qwen/skills/acfm-spec-workflow/SKILL.md +269 -0
- package/framework/.qwen/skills/brainstorming/SKILL.md +266 -38
- package/framework/.qwen/skills/ci-deploy/SKILL.md +501 -0
- package/framework/.qwen/skills/code-review/SKILL.md +250 -0
- package/framework/.qwen/skills/context-synthesizer/SKILL.md +322 -0
- package/framework/.qwen/skills/documentation/SKILL.md +441 -0
- package/framework/.qwen/skills/microtask-decomposition/SKILL.md +368 -0
- package/framework/.qwen/skills/openspec-apply-change/SKILL.md +23 -7
- package/framework/.qwen/skills/openspec-archive-change/SKILL.md +22 -6
- package/framework/.qwen/skills/openspec-bulk-archive-change/SKILL.md +25 -9
- package/framework/.qwen/skills/openspec-continue-change/SKILL.md +20 -4
- package/framework/.qwen/skills/openspec-explore/SKILL.md +17 -1
- package/framework/.qwen/skills/openspec-ff-change/SKILL.md +21 -5
- package/framework/.qwen/skills/openspec-new-change/SKILL.md +23 -7
- package/framework/.qwen/skills/openspec-sync-specs/SKILL.md +20 -4
- package/framework/.qwen/skills/openspec-verify-change/SKILL.md +24 -8
- package/framework/.qwen/skills/research-retrieval/SKILL.md +357 -0
- package/framework/.qwen/skills/testing-qa/SKILL.md +249 -0
- package/framework/.roo/commands/ac-lite.md +192 -0
- package/framework/.roo/commands/ac.md +402 -177
- package/framework/.roo/skills/acfm-memory/SKILL.md +312 -0
- package/framework/.roo/skills/acfm-spec-workflow/SKILL.md +269 -0
- package/framework/.roo/skills/brainstorming/SKILL.md +266 -38
- package/framework/.roo/skills/ci-deploy/SKILL.md +501 -0
- package/framework/.roo/skills/code-review/SKILL.md +250 -0
- package/framework/.roo/skills/context-synthesizer/SKILL.md +322 -0
- package/framework/.roo/skills/documentation/SKILL.md +441 -0
- package/framework/.roo/skills/microtask-decomposition/SKILL.md +368 -0
- package/framework/.roo/skills/openspec-apply-change/SKILL.md +23 -7
- package/framework/.roo/skills/openspec-archive-change/SKILL.md +22 -6
- package/framework/.roo/skills/openspec-bulk-archive-change/SKILL.md +25 -9
- package/framework/.roo/skills/openspec-continue-change/SKILL.md +20 -4
- package/framework/.roo/skills/openspec-explore/SKILL.md +17 -1
- package/framework/.roo/skills/openspec-ff-change/SKILL.md +21 -5
- package/framework/.roo/skills/openspec-new-change/SKILL.md +23 -7
- package/framework/.roo/skills/openspec-sync-specs/SKILL.md +20 -4
- package/framework/.roo/skills/openspec-verify-change/SKILL.md +24 -8
- package/framework/.roo/skills/research-retrieval/SKILL.md +357 -0
- package/framework/.roo/skills/testing-qa/SKILL.md +249 -0
- package/framework/.trae/skills/acfm-memory/SKILL.md +312 -0
- package/framework/.trae/skills/acfm-spec-workflow/SKILL.md +269 -0
- package/framework/.trae/skills/brainstorming/SKILL.md +266 -38
- package/framework/.trae/skills/ci-deploy/SKILL.md +501 -0
- package/framework/.trae/skills/code-review/SKILL.md +250 -0
- package/framework/.trae/skills/context-synthesizer/SKILL.md +322 -0
- package/framework/.trae/skills/documentation/SKILL.md +441 -0
- package/framework/.trae/skills/main-skill/SKILL.md +455 -0
- package/framework/.trae/skills/microtask-decomposition/SKILL.md +368 -0
- package/framework/.trae/skills/openspec-apply-change/SKILL.md +23 -7
- package/framework/.trae/skills/openspec-archive-change/SKILL.md +22 -6
- package/framework/.trae/skills/openspec-bulk-archive-change/SKILL.md +25 -9
- package/framework/.trae/skills/openspec-continue-change/SKILL.md +20 -4
- package/framework/.trae/skills/openspec-explore/SKILL.md +17 -1
- package/framework/.trae/skills/openspec-ff-change/SKILL.md +21 -5
- package/framework/.trae/skills/openspec-new-change/SKILL.md +23 -7
- package/framework/.trae/skills/openspec-sync-specs/SKILL.md +20 -4
- package/framework/.trae/skills/openspec-verify-change/SKILL.md +24 -8
- package/framework/.trae/skills/research-retrieval/SKILL.md +357 -0
- package/framework/.trae/skills/testing-qa/SKILL.md +249 -0
- package/framework/.windsurf/skills/acfm-memory/SKILL.md +312 -0
- package/framework/.windsurf/skills/acfm-spec-workflow/SKILL.md +269 -0
- package/framework/.windsurf/skills/brainstorming/SKILL.md +266 -38
- package/framework/.windsurf/skills/ci-deploy/SKILL.md +501 -0
- package/framework/.windsurf/skills/code-review/SKILL.md +250 -0
- package/framework/.windsurf/skills/context-synthesizer/SKILL.md +322 -0
- package/framework/.windsurf/skills/documentation/SKILL.md +441 -0
- package/framework/.windsurf/skills/microtask-decomposition/SKILL.md +368 -0
- package/framework/.windsurf/skills/openspec-apply-change/SKILL.md +23 -7
- package/framework/.windsurf/skills/openspec-archive-change/SKILL.md +22 -6
- package/framework/.windsurf/skills/openspec-bulk-archive-change/SKILL.md +25 -9
- package/framework/.windsurf/skills/openspec-continue-change/SKILL.md +20 -4
- package/framework/.windsurf/skills/openspec-explore/SKILL.md +17 -1
- package/framework/.windsurf/skills/openspec-ff-change/SKILL.md +21 -5
- package/framework/.windsurf/skills/openspec-new-change/SKILL.md +23 -7
- package/framework/.windsurf/skills/openspec-sync-specs/SKILL.md +20 -4
- package/framework/.windsurf/skills/openspec-verify-change/SKILL.md +24 -8
- package/framework/.windsurf/skills/research-retrieval/SKILL.md +357 -0
- package/framework/.windsurf/skills/testing-qa/SKILL.md +249 -0
- package/framework/.windsurf/workflows/ac-lite.md +192 -0
- package/framework/.windsurf/workflows/ac.md +402 -177
- package/framework/AGENTS.md +428 -135
- package/framework/CLAUDE.md +428 -135
- package/framework/GEMINI.md +428 -135
- package/framework/copilot-instructions.md +429 -136
- package/package.json +2 -1
- package/src/cli.js +2 -0
- package/src/commands/init.js +10 -12
- package/src/commands/memory.js +772 -0
- package/src/commands/spec.js +40 -8
- package/src/config/constants.js +10 -2
- package/src/config/ide-mapping.js +1 -0
- package/src/index.js +46 -0
- package/src/memory/autosave.js +382 -0
- package/src/memory/database.js +178 -0
- package/src/memory/engine.js +727 -0
- package/src/memory/index.js +62 -0
- package/src/memory/utils.js +128 -0
- package/src/services/spec-engine.js +170 -26
- package/src/ui/animations.js +82 -0
|
@@ -0,0 +1,408 @@
|
|
|
1
|
+
# REST API Best Practices
|
|
2
|
+
|
|
3
|
+
## URL Structure
|
|
4
|
+
|
|
5
|
+
### Resource Naming
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
# Good - Plural nouns
|
|
9
|
+
GET /api/users
|
|
10
|
+
GET /api/orders
|
|
11
|
+
GET /api/products
|
|
12
|
+
|
|
13
|
+
# Bad - Verbs or mixed conventions
|
|
14
|
+
GET /api/getUser
|
|
15
|
+
GET /api/user (inconsistent singular)
|
|
16
|
+
POST /api/createOrder
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### Nested Resources
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
# Shallow nesting (preferred)
|
|
23
|
+
GET /api/users/{id}/orders
|
|
24
|
+
GET /api/orders/{id}
|
|
25
|
+
|
|
26
|
+
# Deep nesting (avoid)
|
|
27
|
+
GET /api/users/{id}/orders/{orderId}/items/{itemId}/reviews
|
|
28
|
+
# Better:
|
|
29
|
+
GET /api/order-items/{id}/reviews
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## HTTP Methods and Status Codes
|
|
33
|
+
|
|
34
|
+
### GET - Retrieve Resources
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
GET /api/users → 200 OK (with list)
|
|
38
|
+
GET /api/users/{id} → 200 OK or 404 Not Found
|
|
39
|
+
GET /api/users?page=2 → 200 OK (paginated)
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### POST - Create Resources
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
POST /api/users
|
|
46
|
+
Body: {"name": "John", "email": "john@example.com"}
|
|
47
|
+
→ 201 Created
|
|
48
|
+
Location: /api/users/123
|
|
49
|
+
Body: {"id": "123", "name": "John", ...}
|
|
50
|
+
|
|
51
|
+
POST /api/users (validation error)
|
|
52
|
+
→ 422 Unprocessable Entity
|
|
53
|
+
Body: {"errors": [...]}
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### PUT - Replace Resources
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
PUT /api/users/{id}
|
|
60
|
+
Body: {complete user object}
|
|
61
|
+
→ 200 OK (updated)
|
|
62
|
+
→ 404 Not Found (doesn't exist)
|
|
63
|
+
|
|
64
|
+
# Must include ALL fields
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### PATCH - Partial Update
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
PATCH /api/users/{id}
|
|
71
|
+
Body: {"name": "Jane"} (only changed fields)
|
|
72
|
+
→ 200 OK
|
|
73
|
+
→ 404 Not Found
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### DELETE - Remove Resources
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
DELETE /api/users/{id}
|
|
80
|
+
→ 204 No Content (deleted)
|
|
81
|
+
→ 404 Not Found
|
|
82
|
+
→ 409 Conflict (can't delete due to references)
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Filtering, Sorting, and Searching
|
|
86
|
+
|
|
87
|
+
### Query Parameters
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
# Filtering
|
|
91
|
+
GET /api/users?status=active
|
|
92
|
+
GET /api/users?role=admin&status=active
|
|
93
|
+
|
|
94
|
+
# Sorting
|
|
95
|
+
GET /api/users?sort=created_at
|
|
96
|
+
GET /api/users?sort=-created_at (descending)
|
|
97
|
+
GET /api/users?sort=name,created_at
|
|
98
|
+
|
|
99
|
+
# Searching
|
|
100
|
+
GET /api/users?search=john
|
|
101
|
+
GET /api/users?q=john
|
|
102
|
+
|
|
103
|
+
# Field selection (sparse fieldsets)
|
|
104
|
+
GET /api/users?fields=id,name,email
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## Pagination Patterns
|
|
108
|
+
|
|
109
|
+
### Offset-Based Pagination
|
|
110
|
+
|
|
111
|
+
```python
|
|
112
|
+
GET /api/users?page=2&page_size=20
|
|
113
|
+
|
|
114
|
+
Response:
|
|
115
|
+
{
|
|
116
|
+
"items": [...],
|
|
117
|
+
"page": 2,
|
|
118
|
+
"page_size": 20,
|
|
119
|
+
"total": 150,
|
|
120
|
+
"pages": 8
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Cursor-Based Pagination (for large datasets)
|
|
125
|
+
|
|
126
|
+
```python
|
|
127
|
+
GET /api/users?limit=20&cursor=eyJpZCI6MTIzfQ
|
|
128
|
+
|
|
129
|
+
Response:
|
|
130
|
+
{
|
|
131
|
+
"items": [...],
|
|
132
|
+
"next_cursor": "eyJpZCI6MTQzfQ",
|
|
133
|
+
"has_more": true
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Link Header Pagination (RESTful)
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
GET /api/users?page=2
|
|
141
|
+
|
|
142
|
+
Response Headers:
|
|
143
|
+
Link: <https://api.example.com/users?page=3>; rel="next",
|
|
144
|
+
<https://api.example.com/users?page=1>; rel="prev",
|
|
145
|
+
<https://api.example.com/users?page=1>; rel="first",
|
|
146
|
+
<https://api.example.com/users?page=8>; rel="last"
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## Versioning Strategies
|
|
150
|
+
|
|
151
|
+
### URL Versioning (Recommended)
|
|
152
|
+
|
|
153
|
+
```
|
|
154
|
+
/api/v1/users
|
|
155
|
+
/api/v2/users
|
|
156
|
+
|
|
157
|
+
Pros: Clear, easy to route
|
|
158
|
+
Cons: Multiple URLs for same resource
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### Header Versioning
|
|
162
|
+
|
|
163
|
+
```
|
|
164
|
+
GET /api/users
|
|
165
|
+
Accept: application/vnd.api+json; version=2
|
|
166
|
+
|
|
167
|
+
Pros: Clean URLs
|
|
168
|
+
Cons: Less visible, harder to test
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### Query Parameter
|
|
172
|
+
|
|
173
|
+
```
|
|
174
|
+
GET /api/users?version=2
|
|
175
|
+
|
|
176
|
+
Pros: Easy to test
|
|
177
|
+
Cons: Optional parameter can be forgotten
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## Rate Limiting
|
|
181
|
+
|
|
182
|
+
### Headers
|
|
183
|
+
|
|
184
|
+
```
|
|
185
|
+
X-RateLimit-Limit: 1000
|
|
186
|
+
X-RateLimit-Remaining: 742
|
|
187
|
+
X-RateLimit-Reset: 1640000000
|
|
188
|
+
|
|
189
|
+
Response when limited:
|
|
190
|
+
429 Too Many Requests
|
|
191
|
+
Retry-After: 3600
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### Implementation Pattern
|
|
195
|
+
|
|
196
|
+
```python
|
|
197
|
+
from fastapi import HTTPException, Request
|
|
198
|
+
from datetime import datetime, timedelta
|
|
199
|
+
|
|
200
|
+
class RateLimiter:
|
|
201
|
+
def __init__(self, calls: int, period: int):
|
|
202
|
+
self.calls = calls
|
|
203
|
+
self.period = period
|
|
204
|
+
self.cache = {}
|
|
205
|
+
|
|
206
|
+
def check(self, key: str) -> bool:
|
|
207
|
+
now = datetime.now()
|
|
208
|
+
if key not in self.cache:
|
|
209
|
+
self.cache[key] = []
|
|
210
|
+
|
|
211
|
+
# Remove old requests
|
|
212
|
+
self.cache[key] = [
|
|
213
|
+
ts for ts in self.cache[key]
|
|
214
|
+
if now - ts < timedelta(seconds=self.period)
|
|
215
|
+
]
|
|
216
|
+
|
|
217
|
+
if len(self.cache[key]) >= self.calls:
|
|
218
|
+
return False
|
|
219
|
+
|
|
220
|
+
self.cache[key].append(now)
|
|
221
|
+
return True
|
|
222
|
+
|
|
223
|
+
limiter = RateLimiter(calls=100, period=60)
|
|
224
|
+
|
|
225
|
+
@app.get("/api/users")
|
|
226
|
+
async def get_users(request: Request):
|
|
227
|
+
if not limiter.check(request.client.host):
|
|
228
|
+
raise HTTPException(
|
|
229
|
+
status_code=429,
|
|
230
|
+
headers={"Retry-After": "60"}
|
|
231
|
+
)
|
|
232
|
+
return {"users": [...]}
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
## Authentication and Authorization
|
|
236
|
+
|
|
237
|
+
### Bearer Token
|
|
238
|
+
|
|
239
|
+
```
|
|
240
|
+
Authorization: Bearer eyJhbGciOiJIUzI1NiIs...
|
|
241
|
+
|
|
242
|
+
401 Unauthorized - Missing/invalid token
|
|
243
|
+
403 Forbidden - Valid token, insufficient permissions
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
### API Keys
|
|
247
|
+
|
|
248
|
+
```
|
|
249
|
+
X-API-Key: your-api-key-here
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
## Error Response Format
|
|
253
|
+
|
|
254
|
+
### Consistent Structure
|
|
255
|
+
|
|
256
|
+
```json
|
|
257
|
+
{
|
|
258
|
+
"error": {
|
|
259
|
+
"code": "VALIDATION_ERROR",
|
|
260
|
+
"message": "Request validation failed",
|
|
261
|
+
"details": [
|
|
262
|
+
{
|
|
263
|
+
"field": "email",
|
|
264
|
+
"message": "Invalid email format",
|
|
265
|
+
"value": "not-an-email"
|
|
266
|
+
}
|
|
267
|
+
],
|
|
268
|
+
"timestamp": "2025-10-16T12:00:00Z",
|
|
269
|
+
"path": "/api/users"
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
### Status Code Guidelines
|
|
275
|
+
|
|
276
|
+
- `200 OK`: Successful GET, PATCH, PUT
|
|
277
|
+
- `201 Created`: Successful POST
|
|
278
|
+
- `204 No Content`: Successful DELETE
|
|
279
|
+
- `400 Bad Request`: Malformed request
|
|
280
|
+
- `401 Unauthorized`: Authentication required
|
|
281
|
+
- `403 Forbidden`: Authenticated but not authorized
|
|
282
|
+
- `404 Not Found`: Resource doesn't exist
|
|
283
|
+
- `409 Conflict`: State conflict (duplicate email, etc.)
|
|
284
|
+
- `422 Unprocessable Entity`: Validation errors
|
|
285
|
+
- `429 Too Many Requests`: Rate limited
|
|
286
|
+
- `500 Internal Server Error`: Server error
|
|
287
|
+
- `503 Service Unavailable`: Temporary downtime
|
|
288
|
+
|
|
289
|
+
## Caching
|
|
290
|
+
|
|
291
|
+
### Cache Headers
|
|
292
|
+
|
|
293
|
+
```
|
|
294
|
+
# Client caching
|
|
295
|
+
Cache-Control: public, max-age=3600
|
|
296
|
+
|
|
297
|
+
# No caching
|
|
298
|
+
Cache-Control: no-cache, no-store, must-revalidate
|
|
299
|
+
|
|
300
|
+
# Conditional requests
|
|
301
|
+
ETag: "33a64df551425fcc55e4d42a148795d9f25f89d4"
|
|
302
|
+
If-None-Match: "33a64df551425fcc55e4d42a148795d9f25f89d4"
|
|
303
|
+
→ 304 Not Modified
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
## Bulk Operations
|
|
307
|
+
|
|
308
|
+
### Batch Endpoints
|
|
309
|
+
|
|
310
|
+
```python
|
|
311
|
+
POST /api/users/batch
|
|
312
|
+
{
|
|
313
|
+
"items": [
|
|
314
|
+
{"name": "User1", "email": "user1@example.com"},
|
|
315
|
+
{"name": "User2", "email": "user2@example.com"}
|
|
316
|
+
]
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
Response:
|
|
320
|
+
{
|
|
321
|
+
"results": [
|
|
322
|
+
{"id": "1", "status": "created"},
|
|
323
|
+
{"id": null, "status": "failed", "error": "Email already exists"}
|
|
324
|
+
]
|
|
325
|
+
}
|
|
326
|
+
```
|
|
327
|
+
|
|
328
|
+
## Idempotency
|
|
329
|
+
|
|
330
|
+
### Idempotency Keys
|
|
331
|
+
|
|
332
|
+
```
|
|
333
|
+
POST /api/orders
|
|
334
|
+
Idempotency-Key: unique-key-123
|
|
335
|
+
|
|
336
|
+
If duplicate request:
|
|
337
|
+
→ 200 OK (return cached response)
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
## CORS Configuration
|
|
341
|
+
|
|
342
|
+
```python
|
|
343
|
+
from fastapi.middleware.cors import CORSMiddleware
|
|
344
|
+
|
|
345
|
+
app.add_middleware(
|
|
346
|
+
CORSMiddleware,
|
|
347
|
+
allow_origins=["https://example.com"],
|
|
348
|
+
allow_credentials=True,
|
|
349
|
+
allow_methods=["*"],
|
|
350
|
+
allow_headers=["*"],
|
|
351
|
+
)
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
## Documentation with OpenAPI
|
|
355
|
+
|
|
356
|
+
```python
|
|
357
|
+
from fastapi import FastAPI
|
|
358
|
+
|
|
359
|
+
app = FastAPI(
|
|
360
|
+
title="My API",
|
|
361
|
+
description="API for managing users",
|
|
362
|
+
version="1.0.0",
|
|
363
|
+
docs_url="/docs",
|
|
364
|
+
redoc_url="/redoc"
|
|
365
|
+
)
|
|
366
|
+
|
|
367
|
+
@app.get(
|
|
368
|
+
"/api/users/{user_id}",
|
|
369
|
+
summary="Get user by ID",
|
|
370
|
+
response_description="User details",
|
|
371
|
+
tags=["Users"]
|
|
372
|
+
)
|
|
373
|
+
async def get_user(
|
|
374
|
+
user_id: str = Path(..., description="The user ID")
|
|
375
|
+
):
|
|
376
|
+
"""
|
|
377
|
+
Retrieve user by ID.
|
|
378
|
+
|
|
379
|
+
Returns full user profile including:
|
|
380
|
+
- Basic information
|
|
381
|
+
- Contact details
|
|
382
|
+
- Account status
|
|
383
|
+
"""
|
|
384
|
+
pass
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
## Health and Monitoring Endpoints
|
|
388
|
+
|
|
389
|
+
```python
|
|
390
|
+
@app.get("/health")
|
|
391
|
+
async def health_check():
|
|
392
|
+
return {
|
|
393
|
+
"status": "healthy",
|
|
394
|
+
"version": "1.0.0",
|
|
395
|
+
"timestamp": datetime.now().isoformat()
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
@app.get("/health/detailed")
|
|
399
|
+
async def detailed_health():
|
|
400
|
+
return {
|
|
401
|
+
"status": "healthy",
|
|
402
|
+
"checks": {
|
|
403
|
+
"database": await check_database(),
|
|
404
|
+
"redis": await check_redis(),
|
|
405
|
+
"external_api": await check_external_api()
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
```
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: brainstorming
|
|
3
|
+
description: Generates comprehensive questions about decisions before implementing. Explores requirements, constraints, success criteria, edge cases, and hidden assumptions in a SINGLE comprehensive prompt. Use when starting any significant work to surface unknowns early.
|
|
4
|
+
license: MIT
|
|
5
|
+
metadata:
|
|
6
|
+
author: AC Framework
|
|
7
|
+
version: "2.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Brainstorming - Comprehensive Question Generation
|
|
11
|
+
|
|
12
|
+
Surface unknowns, challenge assumptions, and explore the problem space BEFORE committing to a solution.
|
|
13
|
+
|
|
14
|
+
## When to Use This Skill
|
|
15
|
+
|
|
16
|
+
Use this skill when:
|
|
17
|
+
- Starting a new project or major feature
|
|
18
|
+
- Facing ambiguous requirements
|
|
19
|
+
- Need to explore multiple approaches
|
|
20
|
+
- Want to identify risks early
|
|
21
|
+
- Before creating any OpenSpec change
|
|
22
|
+
|
|
23
|
+
**CRITICAL: This skill generates ALL questions in ONE prompt, not sequentially.**
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Instructions
|
|
28
|
+
|
|
29
|
+
### Step 1: Analyze the Context
|
|
30
|
+
|
|
31
|
+
Read and understand:
|
|
32
|
+
1. The user's stated goal/requirement
|
|
33
|
+
2. Any existing project context from `project-index`
|
|
34
|
+
3. Constraints mentioned or implied
|
|
35
|
+
4. Success criteria (explicit or assumed)
|
|
36
|
+
|
|
37
|
+
### Step 2: Generate Comprehensive Brainstorming Questions
|
|
38
|
+
|
|
39
|
+
**⚠️ IMPORTANT: Generate ALL questions in a SINGLE comprehensive prompt.**
|
|
40
|
+
|
|
41
|
+
Do NOT ask questions one by one. Instead, present a complete brainstorming document with ALL relevant questions organized by category.
|
|
42
|
+
|
|
43
|
+
Structure your response as:
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
## 🧠 Brainstorming Analysis: [Feature/Project Name]
|
|
47
|
+
|
|
48
|
+
### Context Summary
|
|
49
|
+
[Brief summary of what you're building and why]
|
|
50
|
+
|
|
51
|
+
### Category 1: Requirements & Scope
|
|
52
|
+
Questions to clarify WHAT we're building:
|
|
53
|
+
- Q1: [Specific question about requirements]
|
|
54
|
+
- Q2: [Question about scope boundaries]
|
|
55
|
+
- Q3: [Question about feature completeness]
|
|
56
|
+
- ...
|
|
57
|
+
|
|
58
|
+
### Category 2: Constraints & Limitations
|
|
59
|
+
Questions about boundaries and restrictions:
|
|
60
|
+
- Q1: [Technical constraint question]
|
|
61
|
+
- Q2: [Time/budget constraint question]
|
|
62
|
+
- Q3: [Regulatory/compliance question]
|
|
63
|
+
- ...
|
|
64
|
+
|
|
65
|
+
### Category 3: User Experience & Interface
|
|
66
|
+
Questions about HOW users will interact:
|
|
67
|
+
- Q1: [User flow question]
|
|
68
|
+
- Q2: [Accessibility concern]
|
|
69
|
+
- Q3: [Error handling UX question]
|
|
70
|
+
- ...
|
|
71
|
+
|
|
72
|
+
### Category 4: Technical Architecture
|
|
73
|
+
Questions about implementation approach:
|
|
74
|
+
- Q1: [Technology stack question]
|
|
75
|
+
- Q2: [Integration point question]
|
|
76
|
+
- Q3: [Scalability concern]
|
|
77
|
+
- Q4: [Data model question]
|
|
78
|
+
- ...
|
|
79
|
+
|
|
80
|
+
### Category 5: Edge Cases & Failure Modes
|
|
81
|
+
Questions about what could go wrong:
|
|
82
|
+
- Q1: [Edge case scenario question]
|
|
83
|
+
- Q2: [Failure recovery question]
|
|
84
|
+
- Q3: [Security vulnerability question]
|
|
85
|
+
- Q4: [Performance degradation scenario]
|
|
86
|
+
- ...
|
|
87
|
+
|
|
88
|
+
### Category 6: Success Criteria & Metrics
|
|
89
|
+
Questions about how we measure success:
|
|
90
|
+
- Q1: [Success metric question]
|
|
91
|
+
- Q2: [Quality threshold question]
|
|
92
|
+
- Q3: [User adoption question]
|
|
93
|
+
- ...
|
|
94
|
+
|
|
95
|
+
### Category 7: Dependencies & Blockers
|
|
96
|
+
Questions about external factors:
|
|
97
|
+
- Q1: [Third-party dependency question]
|
|
98
|
+
- Q2: [Team/resource dependency]
|
|
99
|
+
- Q3: [Upstream/downstream system question]
|
|
100
|
+
- ...
|
|
101
|
+
|
|
102
|
+
### Category 8: Alternative Approaches
|
|
103
|
+
Questions exploring different solutions:
|
|
104
|
+
- Q1: [Alternative technology question]
|
|
105
|
+
- Q2: [Simpler approach question]
|
|
106
|
+
- Q3: [Trade-off analysis question]
|
|
107
|
+
- ...
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## 🎯 Next Steps
|
|
112
|
+
|
|
113
|
+
Please answer the questions above. Once clarified, we can proceed to:
|
|
114
|
+
1. `openspec-new-change` - Create structured change
|
|
115
|
+
2. `openspec-ff-change` - Fast-forward to implementation
|
|
116
|
+
3. Continue brainstorming if needed
|
|
117
|
+
|
|
118
|
+
**Your answers will shape the entire implementation approach.**
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Step 3: Wait for Comprehensive Answers
|
|
122
|
+
|
|
123
|
+
After presenting ALL questions:
|
|
124
|
+
- Wait for the user to answer them (may be partial or complete)
|
|
125
|
+
- Ask follow-up questions ONLY if answers reveal new unknowns
|
|
126
|
+
- Do NOT re-ask questions already answered
|
|
127
|
+
|
|
128
|
+
### Step 4: Synthesize Insights
|
|
129
|
+
|
|
130
|
+
Once you have answers:
|
|
131
|
+
1. Summarize key decisions made
|
|
132
|
+
2. Identify any remaining ambiguities
|
|
133
|
+
3. Document assumptions being made
|
|
134
|
+
4. Suggest the best path forward
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## Question Categories Reference
|
|
139
|
+
|
|
140
|
+
Always consider questions from these categories:
|
|
141
|
+
|
|
142
|
+
**1. Requirements & Scope**
|
|
143
|
+
- What exactly needs to be built?
|
|
144
|
+
- What is explicitly OUT of scope?
|
|
145
|
+
- Are there different user types with different needs?
|
|
146
|
+
- What is the minimum viable version?
|
|
147
|
+
|
|
148
|
+
**2. Constraints & Limitations**
|
|
149
|
+
- Technical stack constraints?
|
|
150
|
+
- Time/deadline constraints?
|
|
151
|
+
- Budget/resource constraints?
|
|
152
|
+
- Regulatory/compliance requirements?
|
|
153
|
+
- Legacy system constraints?
|
|
154
|
+
|
|
155
|
+
**3. User Experience**
|
|
156
|
+
- Who are the users?
|
|
157
|
+
- What is their technical sophistication?
|
|
158
|
+
- What devices/platforms will they use?
|
|
159
|
+
- Accessibility requirements?
|
|
160
|
+
- Localization needs?
|
|
161
|
+
|
|
162
|
+
**4. Technical Architecture**
|
|
163
|
+
- Integration points with existing systems?
|
|
164
|
+
- Data storage requirements?
|
|
165
|
+
- Scalability expectations?
|
|
166
|
+
- Security requirements?
|
|
167
|
+
- Performance requirements (latency, throughput)?
|
|
168
|
+
|
|
169
|
+
**5. Edge Cases & Failure Modes**
|
|
170
|
+
- What happens when [X] fails?
|
|
171
|
+
- How does the system handle invalid input?
|
|
172
|
+
- What about concurrent access?
|
|
173
|
+
- What's the behavior at scale limits?
|
|
174
|
+
- Disaster recovery needs?
|
|
175
|
+
|
|
176
|
+
**6. Success Metrics**
|
|
177
|
+
- How do we know this is working?
|
|
178
|
+
- What are the KPIs?
|
|
179
|
+
- User satisfaction measures?
|
|
180
|
+
- Technical performance thresholds?
|
|
181
|
+
|
|
182
|
+
**7. Dependencies**
|
|
183
|
+
- External APIs or services needed?
|
|
184
|
+
- Other team dependencies?
|
|
185
|
+
- Infrastructure requirements?
|
|
186
|
+
- Third-party licenses or approvals?
|
|
187
|
+
|
|
188
|
+
**8. Alternatives**
|
|
189
|
+
- What simpler approaches exist?
|
|
190
|
+
- What are the trade-offs?
|
|
191
|
+
- Buy vs build decisions?
|
|
192
|
+
- Short-term vs long-term considerations?
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## Example Output
|
|
197
|
+
|
|
198
|
+
**User says:** "Build a user authentication system"
|
|
199
|
+
|
|
200
|
+
**Your brainstorming (SINGLE PROMPT):**
|
|
201
|
+
|
|
202
|
+
```
|
|
203
|
+
## 🧠 Brainstorming Analysis: User Authentication System
|
|
204
|
+
|
|
205
|
+
### Context Summary
|
|
206
|
+
Building an auth system for user login/signup. Critical security component affecting all users.
|
|
207
|
+
|
|
208
|
+
### Category 1: Requirements & Scope
|
|
209
|
+
- Q1: What authentication methods? (email/password, OAuth, SSO, magic links, 2FA?)
|
|
210
|
+
- Q2: Do users need profiles, or just auth?
|
|
211
|
+
- Q3: Session duration? Remember me feature?
|
|
212
|
+
- Q4: Account recovery options?
|
|
213
|
+
- Q5: Admin/moderator roles needed?
|
|
214
|
+
|
|
215
|
+
### Category 2: Constraints & Limitations
|
|
216
|
+
- Q6: Any compliance requirements? (GDPR, HIPAA, SOC2)
|
|
217
|
+
- Q7: Password complexity requirements?
|
|
218
|
+
- Q8: Rate limiting needs for brute force protection?
|
|
219
|
+
|
|
220
|
+
### Category 3: User Experience
|
|
221
|
+
- Q9: Login/signup flow preference? (modal, separate page, inline)
|
|
222
|
+
- Q10: Error message style? (specific vs generic for security)
|
|
223
|
+
- Q11: Email verification required before access?
|
|
224
|
+
|
|
225
|
+
### Category 4: Technical Architecture
|
|
226
|
+
- Q12: JWT vs session cookies vs other?
|
|
227
|
+
- Q13: Database for user storage?
|
|
228
|
+
- Q14: Password hashing algorithm? (bcrypt, Argon2)
|
|
229
|
+
- Q15: Token refresh strategy?
|
|
230
|
+
|
|
231
|
+
### Category 5: Edge Cases & Failure Modes
|
|
232
|
+
- Q16: What if email provider is down during signup?
|
|
233
|
+
- Q17: Handle concurrent login attempts from different devices?
|
|
234
|
+
- Q18: Account lockout after failed attempts?
|
|
235
|
+
- Q19: Session invalidation on password change?
|
|
236
|
+
|
|
237
|
+
### Category 6: Success Criteria
|
|
238
|
+
- Q20: Login success rate target?
|
|
239
|
+
- Q21: Maximum acceptable login latency?
|
|
240
|
+
- Q22: Security audit requirements?
|
|
241
|
+
|
|
242
|
+
### Category 7: Dependencies
|
|
243
|
+
- Q23: Email service provider? (SendGrid, AWS SES, etc.)
|
|
244
|
+
- Q24: Existing user database to migrate?
|
|
245
|
+
- Q25: Frontend framework constraints?
|
|
246
|
+
|
|
247
|
+
### Category 8: Alternative Approaches
|
|
248
|
+
- Q26: Use Auth0/Firebase Auth instead of building?
|
|
249
|
+
- Q27: Start with simple email/pass, add OAuth later?
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
---
|
|
253
|
+
|
|
254
|
+
## Guardrails
|
|
255
|
+
|
|
256
|
+
- **ALWAYS ask ALL questions in ONE prompt** - Never sequential
|
|
257
|
+
- **Be thorough** - Better to ask too much than miss critical context
|
|
258
|
+
- **Organize clearly** - Categories help the user answer systematically
|
|
259
|
+
- **Wait for answers** - Don't proceed until user responds
|
|
260
|
+
- **Synthesize** - After answers, provide clear summary and recommendation
|
|
261
|
+
- **No implementation** - This is thinking only, no code yet
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
## Integration with OpenSpec
|
|
266
|
+
|
|
267
|
+
After brainstorming is complete:
|
|
268
|
+
|
|
269
|
+
1. Summarize decisions made
|
|
270
|
+
2. Recommend next step:
|
|
271
|
+
- `openspec-new-change` for structured approach
|
|
272
|
+
- `openspec-ff-change` if ready to fast-forward
|
|
273
|
+
3. Include brainstorming insights in the change proposal
|
|
274
|
+
|
|
275
|
+
---
|
|
276
|
+
|
|
277
|
+
## Requirements
|
|
278
|
+
|
|
279
|
+
- Understanding of the problem domain
|
|
280
|
+
- Ability to think systematically about edge cases
|
|
281
|
+
- Familiarity with common software architecture patterns
|
|
282
|
+
- Knowledge of security, performance, and UX best practices
|