@su-record/vibe 2.7.12 → 2.7.14
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/.env.example +37 -37
- package/CLAUDE.md +126 -126
- package/LICENSE +21 -21
- package/README.md +449 -580
- package/agents/architect-low.md +41 -41
- package/agents/architect-medium.md +59 -59
- package/agents/architect.md +80 -80
- package/agents/build-error-resolver.md +115 -115
- package/agents/compounder.md +261 -261
- package/agents/diagrammer.md +178 -178
- package/agents/docs/api-documenter.md +99 -99
- package/agents/docs/changelog-writer.md +93 -93
- package/agents/e2e-tester.md +294 -266
- package/agents/explorer-low.md +42 -42
- package/agents/explorer-medium.md +59 -59
- package/agents/explorer.md +48 -48
- package/agents/implementer-low.md +43 -43
- package/agents/implementer-medium.md +52 -52
- package/agents/implementer.md +54 -54
- package/agents/junior-mentor.md +141 -141
- package/agents/planning/requirements-analyst.md +84 -84
- package/agents/planning/ux-advisor.md +83 -83
- package/agents/qa/acceptance-tester.md +86 -86
- package/agents/qa/edge-case-finder.md +93 -93
- package/agents/refactor-cleaner.md +143 -143
- package/agents/research/best-practices-agent.md +199 -199
- package/agents/research/codebase-patterns-agent.md +157 -157
- package/agents/research/framework-docs-agent.md +188 -188
- package/agents/research/security-advisory-agent.md +213 -213
- package/agents/review/architecture-reviewer.md +107 -107
- package/agents/review/complexity-reviewer.md +116 -116
- package/agents/review/data-integrity-reviewer.md +88 -88
- package/agents/review/git-history-reviewer.md +103 -103
- package/agents/review/performance-reviewer.md +86 -86
- package/agents/review/python-reviewer.md +150 -150
- package/agents/review/rails-reviewer.md +139 -139
- package/agents/review/react-reviewer.md +144 -144
- package/agents/review/security-reviewer.md +80 -80
- package/agents/review/simplicity-reviewer.md +140 -140
- package/agents/review/test-coverage-reviewer.md +116 -116
- package/agents/review/typescript-reviewer.md +127 -127
- package/agents/searcher.md +54 -54
- package/agents/simplifier.md +120 -120
- package/agents/tester.md +49 -49
- package/agents/ui/ui-a11y-auditor.md +93 -93
- package/agents/ui/ui-antipattern-detector.md +94 -94
- package/agents/ui/ui-dataviz-advisor.md +69 -69
- package/agents/ui/ui-design-system-gen.md +57 -57
- package/agents/ui/ui-industry-analyzer.md +49 -49
- package/agents/ui/ui-layout-architect.md +65 -65
- package/agents/ui/ui-stack-implementer.md +68 -68
- package/agents/ui/ux-compliance-reviewer.md +81 -81
- package/agents/ui-previewer.md +258 -260
- package/commands/vibe.analyze.md +8 -0
- package/commands/vibe.review.md +10 -3
- package/commands/vibe.run.md +2078 -2022
- package/commands/vibe.spec.md +10 -10
- package/commands/vibe.spec.review.md +565 -558
- package/commands/vibe.utils.md +413 -413
- package/commands/vibe.verify.md +45 -0
- package/dist/cli/auth.d.ts.map +1 -1
- package/dist/cli/auth.js +1 -7
- package/dist/cli/auth.js.map +1 -1
- package/dist/cli/collaborator.js +52 -52
- package/dist/cli/commands/evolution.js +12 -12
- package/dist/cli/commands/info.d.ts.map +1 -1
- package/dist/cli/commands/info.js +55 -70
- package/dist/cli/commands/info.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +6 -7
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/remove.js +14 -14
- package/dist/cli/commands/sentinel.js +27 -27
- package/dist/cli/commands/setup.js +1 -1
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/skills.js +5 -5
- package/dist/cli/commands/slack.js +10 -10
- package/dist/cli/commands/telegram.js +12 -12
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli/commands/update.js +3 -4
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/detect.js +32 -32
- package/dist/cli/index.js +51 -55
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/llm/claude-commands.js +16 -16
- package/dist/cli/llm/config.js +20 -20
- package/dist/cli/llm/config.js.map +1 -1
- package/dist/cli/llm/gemini-commands.d.ts +4 -6
- package/dist/cli/llm/gemini-commands.d.ts.map +1 -1
- package/dist/cli/llm/gemini-commands.js +52 -322
- package/dist/cli/llm/gemini-commands.js.map +1 -1
- package/dist/cli/llm/gpt-commands.js +21 -21
- package/dist/cli/llm/gpt-commands.js.map +1 -1
- package/dist/cli/llm/help.js +21 -21
- package/dist/cli/postinstall/constants.js +1 -1
- package/dist/cli/postinstall/constants.js.map +1 -1
- package/dist/cli/postinstall/cursor-agents.js +32 -32
- package/dist/cli/postinstall/cursor-rules.js +83 -83
- package/dist/cli/postinstall/cursor-skills.js +743 -743
- package/dist/cli/postinstall/inline-skills.js +1 -1
- package/dist/cli/postinstall/inline-skills.js.map +1 -1
- package/dist/cli/setup/Provisioner.js +42 -42
- package/dist/cli/types.d.ts +2 -18
- package/dist/cli/types.d.ts.map +1 -1
- package/dist/cli/utils.d.ts +0 -9
- package/dist/cli/utils.d.ts.map +1 -1
- package/dist/cli/utils.js +0 -28
- package/dist/cli/utils.js.map +1 -1
- package/dist/infra/lib/DeepInit.js +24 -24
- package/dist/infra/lib/IterationTracker.js +11 -11
- package/dist/infra/lib/PythonParser.js +108 -108
- package/dist/infra/lib/ReviewRace.js +96 -96
- package/dist/infra/lib/SkillFrontmatter.js +28 -28
- package/dist/infra/lib/SkillQualityGate.js +9 -9
- package/dist/infra/lib/SkillRepository.js +159 -159
- package/dist/infra/lib/UltraQA.js +99 -99
- package/dist/infra/lib/autonomy/AuditStore.js +41 -41
- package/dist/infra/lib/autonomy/ConfirmationStore.js +30 -30
- package/dist/infra/lib/autonomy/EventOutbox.js +38 -38
- package/dist/infra/lib/autonomy/PolicyEngine.js +18 -18
- package/dist/infra/lib/autonomy/SecuritySentinel.js +1 -1
- package/dist/infra/lib/autonomy/SuggestionStore.js +33 -33
- package/dist/infra/lib/config/GlobalConfigManager.d.ts +0 -2
- package/dist/infra/lib/config/GlobalConfigManager.d.ts.map +1 -1
- package/dist/infra/lib/config/GlobalConfigManager.js +0 -27
- package/dist/infra/lib/config/GlobalConfigManager.js.map +1 -1
- package/dist/infra/lib/embedding/VectorStore.js +22 -22
- package/dist/infra/lib/evolution/AgentAnalyzer.js +10 -10
- package/dist/infra/lib/evolution/DescriptionOptimizer.js +21 -21
- package/dist/infra/lib/evolution/GenerationRegistry.js +36 -36
- package/dist/infra/lib/evolution/InsightStore.js +90 -90
- package/dist/infra/lib/evolution/RollbackManager.js +5 -5
- package/dist/infra/lib/evolution/SkillBenchmark.js +23 -23
- package/dist/infra/lib/evolution/SkillEvalRunner.js +50 -50
- package/dist/infra/lib/evolution/SkillGapDetector.js +10 -10
- package/dist/infra/lib/evolution/UsageTracker.js +28 -28
- package/dist/infra/lib/gemini/auth.d.ts +4 -16
- package/dist/infra/lib/gemini/auth.d.ts.map +1 -1
- package/dist/infra/lib/gemini/auth.js +10 -405
- package/dist/infra/lib/gemini/auth.js.map +1 -1
- package/dist/infra/lib/gemini/capabilities.d.ts +4 -8
- package/dist/infra/lib/gemini/capabilities.d.ts.map +1 -1
- package/dist/infra/lib/gemini/capabilities.js +8 -166
- package/dist/infra/lib/gemini/capabilities.js.map +1 -1
- package/dist/infra/lib/gemini/chat.d.ts +4 -13
- package/dist/infra/lib/gemini/chat.d.ts.map +1 -1
- package/dist/infra/lib/gemini/chat.js +10 -323
- package/dist/infra/lib/gemini/chat.js.map +1 -1
- package/dist/infra/lib/gemini/completion.d.ts +5 -15
- package/dist/infra/lib/gemini/completion.d.ts.map +1 -1
- package/dist/infra/lib/gemini/completion.js +6 -97
- package/dist/infra/lib/gemini/completion.js.map +1 -1
- package/dist/infra/lib/gemini/constants.d.ts +2 -31
- package/dist/infra/lib/gemini/constants.d.ts.map +1 -1
- package/dist/infra/lib/gemini/constants.js +2 -77
- package/dist/infra/lib/gemini/constants.js.map +1 -1
- package/dist/infra/lib/gemini/index.d.ts +5 -8
- package/dist/infra/lib/gemini/index.d.ts.map +1 -1
- package/dist/infra/lib/gemini/index.js +4 -7
- package/dist/infra/lib/gemini/index.js.map +1 -1
- package/dist/infra/lib/gemini/models.d.ts +3 -4
- package/dist/infra/lib/gemini/models.d.ts.map +1 -1
- package/dist/infra/lib/gemini/models.js +8 -84
- package/dist/infra/lib/gemini/models.js.map +1 -1
- package/dist/infra/lib/gemini/orchestration.js +5 -5
- package/dist/infra/lib/gemini/types.d.ts +16 -44
- package/dist/infra/lib/gemini/types.d.ts.map +1 -1
- package/dist/infra/lib/gemini/types.js +1 -1
- package/dist/infra/lib/gpt/auth.d.ts +2 -5
- package/dist/infra/lib/gpt/auth.d.ts.map +1 -1
- package/dist/infra/lib/gpt/auth.js +8 -38
- package/dist/infra/lib/gpt/auth.js.map +1 -1
- package/dist/infra/lib/gpt/chat.d.ts +3 -3
- package/dist/infra/lib/gpt/chat.d.ts.map +1 -1
- package/dist/infra/lib/gpt/chat.js +37 -53
- package/dist/infra/lib/gpt/chat.js.map +1 -1
- package/dist/infra/lib/gpt/constants.d.ts +2 -5
- package/dist/infra/lib/gpt/constants.d.ts.map +1 -1
- package/dist/infra/lib/gpt/constants.js +4 -9
- package/dist/infra/lib/gpt/constants.js.map +1 -1
- package/dist/infra/lib/gpt/embedding.d.ts +1 -1
- package/dist/infra/lib/gpt/embedding.js +3 -3
- package/dist/infra/lib/gpt/embedding.js.map +1 -1
- package/dist/infra/lib/gpt/oauth.d.ts +6 -39
- package/dist/infra/lib/gpt/oauth.d.ts.map +1 -1
- package/dist/infra/lib/gpt/oauth.js +8 -340
- package/dist/infra/lib/gpt/oauth.js.map +1 -1
- package/dist/infra/lib/gpt/orchestration.js +5 -5
- package/dist/infra/lib/gpt/orchestration.js.map +1 -1
- package/dist/infra/lib/gpt/specializations.d.ts +2 -2
- package/dist/infra/lib/gpt/specializations.js +3 -3
- package/dist/infra/lib/gpt/specializations.js.map +1 -1
- package/dist/infra/lib/gpt/types.d.ts +1 -1
- package/dist/infra/lib/gpt/types.d.ts.map +1 -1
- package/dist/infra/lib/llm/auth/AuthProfileManager.d.ts +2 -2
- package/dist/infra/lib/llm/auth/AuthProfileManager.d.ts.map +1 -1
- package/dist/infra/lib/llm/auth/AuthProfileManager.js.map +1 -1
- package/dist/infra/lib/llm/auth/AuthProfileManager.test.js +1 -1
- package/dist/infra/lib/llm/auth/AuthProfileManager.test.js.map +1 -1
- package/dist/infra/lib/llm/auth/TokenRefresher.d.ts +1 -1
- package/dist/infra/lib/llm/auth/TokenRefresher.js +1 -1
- package/dist/infra/lib/llm/auth/index.d.ts +2 -12
- package/dist/infra/lib/llm/auth/index.d.ts.map +1 -1
- package/dist/infra/lib/llm/auth/index.js +5 -63
- package/dist/infra/lib/llm/auth/index.js.map +1 -1
- package/dist/infra/lib/llm/types.d.ts +1 -1
- package/dist/infra/lib/llm/types.d.ts.map +1 -1
- package/dist/infra/lib/memory/KnowledgeGraph.js +4 -4
- package/dist/infra/lib/memory/MemorySearch.js +57 -57
- package/dist/infra/lib/memory/MemoryStorage.js +181 -181
- package/dist/infra/lib/memory/ObservationStore.js +28 -28
- package/dist/infra/lib/memory/ReflectionStore.js +30 -30
- package/dist/infra/lib/memory/SessionRAGRetriever.js +7 -7
- package/dist/infra/lib/memory/SessionRAGStore.js +225 -225
- package/dist/infra/lib/memory/SessionSummarizer.js +9 -9
- package/dist/infra/orchestrator/AgentManager.js +12 -12
- package/dist/infra/orchestrator/AgentRegistry.js +65 -65
- package/dist/infra/orchestrator/MultiLlmResearch.js +8 -8
- package/dist/infra/orchestrator/SwarmOrchestrator.test.js +16 -16
- package/dist/infra/orchestrator/parallelResearch.js +24 -24
- package/dist/tools/convention/analyzeComplexity.test.js +115 -115
- package/dist/tools/convention/validateCodeQuality.test.js +104 -104
- package/dist/tools/memory/createMemoryTimeline.js +10 -10
- package/dist/tools/memory/getMemoryGraph.js +12 -12
- package/dist/tools/memory/getSessionContext.js +9 -9
- package/dist/tools/memory/linkMemories.js +14 -14
- package/dist/tools/memory/listMemories.js +4 -4
- package/dist/tools/memory/recallMemory.js +4 -4
- package/dist/tools/memory/saveMemory.js +4 -4
- package/dist/tools/memory/searchMemoriesAdvanced.js +23 -23
- package/dist/tools/semantic/analyzeDependencyGraph.js +12 -12
- package/dist/tools/semantic/astGrep.test.js +6 -6
- package/dist/tools/spec/prdParser.test.js +171 -171
- package/dist/tools/spec/specGenerator.js +169 -169
- package/dist/tools/spec/traceabilityMatrix.js +64 -64
- package/dist/tools/spec/traceabilityMatrix.test.js +28 -28
- package/hooks/gemini-hooks.json +73 -73
- package/hooks/hooks.json +137 -137
- package/hooks/scripts/code-check.js +70 -70
- package/hooks/scripts/context-save.js +212 -212
- package/hooks/scripts/hud-status.js +291 -291
- package/hooks/scripts/keyword-detector.js +214 -214
- package/hooks/scripts/llm-orchestrate.js +475 -646
- package/hooks/scripts/post-edit.js +32 -32
- package/hooks/scripts/pre-tool-guard.js +125 -125
- package/hooks/scripts/prompt-dispatcher.js +185 -185
- package/hooks/scripts/sentinel-guard.js +104 -104
- package/hooks/scripts/session-start.js +106 -106
- package/hooks/scripts/stop-notify.js +209 -209
- package/hooks/scripts/utils.js +100 -100
- package/languages/csharp-unity.md +515 -515
- package/languages/gdscript-godot.md +470 -470
- package/languages/ruby-rails.md +489 -489
- package/languages/typescript-angular.md +433 -433
- package/languages/typescript-astro.md +416 -416
- package/languages/typescript-electron.md +406 -406
- package/languages/typescript-nestjs.md +524 -524
- package/languages/typescript-svelte.md +407 -407
- package/languages/typescript-tauri.md +365 -365
- package/package.json +121 -121
- package/skills/agents-md/SKILL.md +120 -120
- package/skills/arch-guard/SKILL.md +180 -180
- package/skills/brand-assets/SKILL.md +146 -146
- package/skills/capability-loop/SKILL.md +167 -167
- package/skills/characterization-test/SKILL.md +206 -206
- package/skills/commerce-patterns/SKILL.md +59 -59
- package/skills/commit-push-pr/SKILL.md +75 -75
- package/skills/context7-usage/SKILL.md +105 -105
- package/skills/core-capabilities/SKILL.md +48 -48
- package/skills/e2e-commerce/SKILL.md +57 -57
- package/skills/exec-plan/SKILL.md +147 -147
- package/skills/frontend-design/SKILL.md +73 -73
- package/skills/git-worktree/SKILL.md +72 -72
- package/skills/handoff/SKILL.md +109 -109
- package/skills/parallel-research/SKILL.md +87 -87
- package/skills/priority-todos/SKILL.md +63 -63
- package/skills/seo-checklist/SKILL.md +57 -57
- package/skills/techdebt/SKILL.md +122 -122
- package/skills/tool-fallback/SKILL.md +103 -103
- package/skills/typescript-advanced-types/SKILL.md +66 -65
- package/skills/ui-ux-pro-max/SKILL.md +206 -206
- package/skills/vercel-react-best-practices/SKILL.md +59 -59
- package/skills/video-production/SKILL.md +51 -51
- package/vibe/config.json +29 -29
- package/vibe/constitution.md +227 -227
- package/vibe/rules/principles/communication-guide.md +98 -98
- package/vibe/rules/principles/development-philosophy.md +52 -52
- package/vibe/rules/principles/quick-start.md +102 -102
- package/vibe/rules/quality/bdd-contract-testing.md +393 -393
- package/vibe/rules/quality/checklist.md +276 -276
- package/vibe/rules/quality/performance.md +236 -236
- package/vibe/rules/quality/testing-strategy.md +440 -440
- package/vibe/rules/standards/anti-patterns.md +541 -541
- package/vibe/rules/standards/code-structure.md +291 -291
- package/vibe/rules/standards/complexity-metrics.md +313 -313
- package/vibe/rules/standards/git-workflow.md +237 -237
- package/vibe/rules/standards/naming-conventions.md +198 -198
- package/vibe/rules/standards/security.md +305 -305
- package/vibe/rules/writing/document-style.md +74 -74
- package/vibe/setup.sh +31 -31
- package/vibe/templates/constitution-template.md +252 -252
- package/vibe/templates/contract-backend-template.md +526 -526
- package/vibe/templates/contract-frontend-template.md +599 -599
- package/vibe/templates/feature-template.md +96 -96
- package/vibe/templates/spec-template.md +221 -221
- package/vibe/ui-ux-data/charts.csv +26 -26
- package/vibe/ui-ux-data/colors.csv +97 -97
- package/vibe/ui-ux-data/icons.csv +101 -101
- package/vibe/ui-ux-data/landing.csv +31 -31
- package/vibe/ui-ux-data/products.csv +96 -96
- package/vibe/ui-ux-data/react-performance.csv +45 -45
- package/vibe/ui-ux-data/stacks/astro.csv +54 -54
- package/vibe/ui-ux-data/stacks/flutter.csv +53 -53
- package/vibe/ui-ux-data/stacks/html-tailwind.csv +56 -56
- package/vibe/ui-ux-data/stacks/jetpack-compose.csv +53 -53
- package/vibe/ui-ux-data/stacks/nextjs.csv +53 -53
- package/vibe/ui-ux-data/stacks/nuxt-ui.csv +51 -51
- package/vibe/ui-ux-data/stacks/nuxtjs.csv +59 -59
- package/vibe/ui-ux-data/stacks/react-native.csv +52 -52
- package/vibe/ui-ux-data/stacks/react.csv +54 -54
- package/vibe/ui-ux-data/stacks/shadcn.csv +61 -61
- package/vibe/ui-ux-data/stacks/svelte.csv +54 -54
- package/vibe/ui-ux-data/stacks/swiftui.csv +51 -51
- package/vibe/ui-ux-data/stacks/vue.csv +50 -50
- package/vibe/ui-ux-data/styles.csv +68 -68
- package/vibe/ui-ux-data/typography.csv +57 -57
- package/vibe/ui-ux-data/ui-reasoning.csv +101 -101
- package/vibe/ui-ux-data/ux-guidelines.csv +99 -99
- package/vibe/ui-ux-data/version.json +31 -31
- package/vibe/ui-ux-data/web-interface.csv +31 -31
- package/commands/vibe.voice.md +0 -79
|
@@ -67,38 +67,38 @@ function convertAgentToCursor(content, filename) {
|
|
|
67
67
|
const nextStepsSection = nextAgents
|
|
68
68
|
.map((a) => `- For ${a.replace('-reviewer', '')} review: "Use ${a}"`)
|
|
69
69
|
.join('\n');
|
|
70
|
-
return `---
|
|
71
|
-
name: ${name}
|
|
72
|
-
model: ${model}
|
|
73
|
-
description: ${description}
|
|
74
|
-
---
|
|
75
|
-
|
|
76
|
-
# ${title}
|
|
77
|
-
|
|
78
|
-
## When Invoked
|
|
79
|
-
|
|
80
|
-
1. Run \`git diff\` to see recent changes
|
|
81
|
-
2. Focus on modified files relevant to this review type
|
|
82
|
-
3. Begin review immediately without asking questions
|
|
83
|
-
|
|
84
|
-
## Role
|
|
85
|
-
|
|
86
|
-
${roleLines.map((r) => `- ${r}`).join('\n')}
|
|
87
|
-
|
|
88
|
-
## Checklist
|
|
89
|
-
|
|
90
|
-
${checklist}
|
|
91
|
-
|
|
92
|
-
## Output Format
|
|
93
|
-
|
|
94
|
-
${outputFormat}
|
|
95
|
-
|
|
96
|
-
## Next Steps
|
|
97
|
-
|
|
98
|
-
Review complete. Consider these follow-up actions:
|
|
99
|
-
|
|
100
|
-
${nextStepsSection}
|
|
101
|
-
- All reviews done: Ready to commit
|
|
70
|
+
return `---
|
|
71
|
+
name: ${name}
|
|
72
|
+
model: ${model}
|
|
73
|
+
description: ${description}
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
# ${title}
|
|
77
|
+
|
|
78
|
+
## When Invoked
|
|
79
|
+
|
|
80
|
+
1. Run \`git diff\` to see recent changes
|
|
81
|
+
2. Focus on modified files relevant to this review type
|
|
82
|
+
3. Begin review immediately without asking questions
|
|
83
|
+
|
|
84
|
+
## Role
|
|
85
|
+
|
|
86
|
+
${roleLines.map((r) => `- ${r}`).join('\n')}
|
|
87
|
+
|
|
88
|
+
## Checklist
|
|
89
|
+
|
|
90
|
+
${checklist}
|
|
91
|
+
|
|
92
|
+
## Output Format
|
|
93
|
+
|
|
94
|
+
${outputFormat}
|
|
95
|
+
|
|
96
|
+
## Next Steps
|
|
97
|
+
|
|
98
|
+
Review complete. Consider these follow-up actions:
|
|
99
|
+
|
|
100
|
+
${nextStepsSection}
|
|
101
|
+
- All reviews done: Ready to commit
|
|
102
102
|
`;
|
|
103
103
|
}
|
|
104
104
|
/**
|
|
@@ -21,13 +21,13 @@ function convertLanguageRuleToCursor(content, filename) {
|
|
|
21
21
|
// glob 패턴 가져오기
|
|
22
22
|
const globs = LANGUAGE_GLOBS[filename] || '**/*';
|
|
23
23
|
// .mdc frontmatter + 본문
|
|
24
|
-
return `---
|
|
25
|
-
description: ${description} - complexity limits, type safety, error handling
|
|
26
|
-
globs: "${globs}"
|
|
27
|
-
alwaysApply: false
|
|
28
|
-
---
|
|
29
|
-
|
|
30
|
-
${normalizedContent}
|
|
24
|
+
return `---
|
|
25
|
+
description: ${description} - complexity limits, type safety, error handling
|
|
26
|
+
globs: "${globs}"
|
|
27
|
+
alwaysApply: false
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
${normalizedContent}
|
|
31
31
|
`;
|
|
32
32
|
}
|
|
33
33
|
/**
|
|
@@ -104,86 +104,86 @@ export function generateCursorRules(cursorRulesDir, detectedStacks = [], languag
|
|
|
104
104
|
const commonRules = [
|
|
105
105
|
{
|
|
106
106
|
filename: 'code-quality.mdc',
|
|
107
|
-
content: `---
|
|
108
|
-
description: General code quality rules for all files
|
|
109
|
-
alwaysApply: true
|
|
110
|
-
---
|
|
111
|
-
|
|
112
|
-
# Code Quality Rules
|
|
113
|
-
|
|
114
|
-
## Core Principles
|
|
115
|
-
- **Modify only requested scope** - Don't touch unrelated code
|
|
116
|
-
- **Preserve existing style** - Follow project conventions
|
|
117
|
-
- **Keep working code** - No unnecessary refactoring
|
|
118
|
-
|
|
119
|
-
## Forbidden Patterns
|
|
120
|
-
- No \`console.log\` in production code (remove after debugging)
|
|
121
|
-
- No hardcoded strings/numbers → Extract to constants
|
|
122
|
-
- No commented-out code in commits
|
|
123
|
-
- No incomplete code without TODO marker
|
|
124
|
-
|
|
125
|
-
## Naming Conventions
|
|
126
|
-
- Variables/functions: camelCase
|
|
127
|
-
- Classes/types: PascalCase
|
|
128
|
-
- Constants: UPPER_SNAKE_CASE
|
|
129
|
-
- Files: kebab-case or PascalCase (match project style)
|
|
130
|
-
|
|
131
|
-
## Function Design
|
|
132
|
-
- Single responsibility per function
|
|
133
|
-
- Max 5 parameters (use object for more)
|
|
134
|
-
- Descriptive names (verb + noun)
|
|
135
|
-
- Document non-obvious behavior
|
|
136
|
-
|
|
137
|
-
## Complexity Limits
|
|
138
|
-
| Metric | Limit |
|
|
139
|
-
|--------|-------|
|
|
140
|
-
| Function length | ≤30 lines (recommended), ≤50 lines (max) |
|
|
141
|
-
| Nesting depth | ≤3 levels |
|
|
142
|
-
| Parameters | ≤5 |
|
|
143
|
-
| Cyclomatic complexity | ≤10 |
|
|
144
|
-
|
|
145
|
-
## Dependency Management
|
|
146
|
-
- Avoid circular dependencies
|
|
147
|
-
- Keep loose coupling (depend on interfaces)
|
|
148
|
-
- High cohesion (group related functions)
|
|
107
|
+
content: `---
|
|
108
|
+
description: General code quality rules for all files
|
|
109
|
+
alwaysApply: true
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
# Code Quality Rules
|
|
113
|
+
|
|
114
|
+
## Core Principles
|
|
115
|
+
- **Modify only requested scope** - Don't touch unrelated code
|
|
116
|
+
- **Preserve existing style** - Follow project conventions
|
|
117
|
+
- **Keep working code** - No unnecessary refactoring
|
|
118
|
+
|
|
119
|
+
## Forbidden Patterns
|
|
120
|
+
- No \`console.log\` in production code (remove after debugging)
|
|
121
|
+
- No hardcoded strings/numbers → Extract to constants
|
|
122
|
+
- No commented-out code in commits
|
|
123
|
+
- No incomplete code without TODO marker
|
|
124
|
+
|
|
125
|
+
## Naming Conventions
|
|
126
|
+
- Variables/functions: camelCase
|
|
127
|
+
- Classes/types: PascalCase
|
|
128
|
+
- Constants: UPPER_SNAKE_CASE
|
|
129
|
+
- Files: kebab-case or PascalCase (match project style)
|
|
130
|
+
|
|
131
|
+
## Function Design
|
|
132
|
+
- Single responsibility per function
|
|
133
|
+
- Max 5 parameters (use object for more)
|
|
134
|
+
- Descriptive names (verb + noun)
|
|
135
|
+
- Document non-obvious behavior
|
|
136
|
+
|
|
137
|
+
## Complexity Limits
|
|
138
|
+
| Metric | Limit |
|
|
139
|
+
|--------|-------|
|
|
140
|
+
| Function length | ≤30 lines (recommended), ≤50 lines (max) |
|
|
141
|
+
| Nesting depth | ≤3 levels |
|
|
142
|
+
| Parameters | ≤5 |
|
|
143
|
+
| Cyclomatic complexity | ≤10 |
|
|
144
|
+
|
|
145
|
+
## Dependency Management
|
|
146
|
+
- Avoid circular dependencies
|
|
147
|
+
- Keep loose coupling (depend on interfaces)
|
|
148
|
+
- High cohesion (group related functions)
|
|
149
149
|
`,
|
|
150
150
|
},
|
|
151
151
|
{
|
|
152
152
|
filename: 'security-checklist.mdc',
|
|
153
|
-
content: `---
|
|
154
|
-
description: Security checklist for code changes
|
|
155
|
-
globs: "**/*.ts,**/*.tsx,**/*.js,**/*.jsx,**/*.py,**/*.go,**/*.rs,**/*.java,**/*.kt,**/*.swift"
|
|
156
|
-
alwaysApply: false
|
|
157
|
-
---
|
|
158
|
-
|
|
159
|
-
# Security Checklist
|
|
160
|
-
|
|
161
|
-
## Input Validation
|
|
162
|
-
- [ ] Validate all user inputs
|
|
163
|
-
- [ ] Sanitize data before database queries
|
|
164
|
-
- [ ] Use parameterized queries (prevent SQL injection)
|
|
165
|
-
|
|
166
|
-
## Authentication
|
|
167
|
-
- [ ] Secure password handling (never store plain text)
|
|
168
|
-
- [ ] Session management is secure
|
|
169
|
-
- [ ] Tokens have appropriate expiry
|
|
170
|
-
|
|
171
|
-
## Data Protection
|
|
172
|
-
- [ ] Sensitive data is encrypted
|
|
173
|
-
- [ ] API keys not committed to code
|
|
174
|
-
- [ ] Error messages don't leak sensitive info
|
|
175
|
-
|
|
176
|
-
## OWASP Top 10 Awareness
|
|
177
|
-
- Injection (SQL, XSS, Command)
|
|
178
|
-
- Broken authentication
|
|
179
|
-
- Sensitive data exposure
|
|
180
|
-
- XML external entities (XXE)
|
|
181
|
-
- Broken access control
|
|
182
|
-
- Security misconfiguration
|
|
183
|
-
- Cross-site scripting (XSS)
|
|
184
|
-
- Insecure deserialization
|
|
185
|
-
- Using components with known vulnerabilities
|
|
186
|
-
- Insufficient logging & monitoring
|
|
153
|
+
content: `---
|
|
154
|
+
description: Security checklist for code changes
|
|
155
|
+
globs: "**/*.ts,**/*.tsx,**/*.js,**/*.jsx,**/*.py,**/*.go,**/*.rs,**/*.java,**/*.kt,**/*.swift"
|
|
156
|
+
alwaysApply: false
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
# Security Checklist
|
|
160
|
+
|
|
161
|
+
## Input Validation
|
|
162
|
+
- [ ] Validate all user inputs
|
|
163
|
+
- [ ] Sanitize data before database queries
|
|
164
|
+
- [ ] Use parameterized queries (prevent SQL injection)
|
|
165
|
+
|
|
166
|
+
## Authentication
|
|
167
|
+
- [ ] Secure password handling (never store plain text)
|
|
168
|
+
- [ ] Session management is secure
|
|
169
|
+
- [ ] Tokens have appropriate expiry
|
|
170
|
+
|
|
171
|
+
## Data Protection
|
|
172
|
+
- [ ] Sensitive data is encrypted
|
|
173
|
+
- [ ] API keys not committed to code
|
|
174
|
+
- [ ] Error messages don't leak sensitive info
|
|
175
|
+
|
|
176
|
+
## OWASP Top 10 Awareness
|
|
177
|
+
- Injection (SQL, XSS, Command)
|
|
178
|
+
- Broken authentication
|
|
179
|
+
- Sensitive data exposure
|
|
180
|
+
- XML external entities (XXE)
|
|
181
|
+
- Broken access control
|
|
182
|
+
- Security misconfiguration
|
|
183
|
+
- Cross-site scripting (XSS)
|
|
184
|
+
- Insecure deserialization
|
|
185
|
+
- Using components with known vulnerabilities
|
|
186
|
+
- Insufficient logging & monitoring
|
|
187
187
|
`,
|
|
188
188
|
},
|
|
189
189
|
];
|