@su-record/vibe 2.7.16 → 2.7.18
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 +153 -134
- package/LICENSE +21 -21
- package/README.md +449 -449
- 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 -294
- 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 -258
- package/commands/vibe.analyze.md +379 -379
- package/commands/vibe.review.md +607 -607
- package/commands/vibe.run.md +2124 -2124
- package/commands/vibe.spec.md +1195 -1195
- package/commands/vibe.spec.review.md +569 -569
- package/commands/vibe.utils.md +413 -413
- package/commands/vibe.verify.md +484 -484
- package/dist/cli/collaborator.js +52 -52
- package/dist/cli/commands/evolution.js +12 -12
- package/dist/cli/commands/info.js +51 -51
- package/dist/cli/commands/init.js +5 -5
- package/dist/cli/commands/remove.js +14 -14
- package/dist/cli/commands/sentinel.js +27 -27
- 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/upgrade.d.ts +3 -3
- package/dist/cli/commands/upgrade.d.ts.map +1 -1
- package/dist/cli/commands/upgrade.js +24 -3
- package/dist/cli/commands/upgrade.js.map +1 -1
- package/dist/cli/detect.js +32 -32
- package/dist/cli/index.js +51 -51
- package/dist/cli/llm/claude-commands.js +16 -16
- package/dist/cli/llm/config.js +18 -18
- package/dist/cli/llm/gemini-commands.js +16 -16
- package/dist/cli/llm/gpt-commands.js +19 -19
- package/dist/cli/llm/help.js +21 -21
- 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/setup/Provisioner.js +42 -42
- 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/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/orchestration.js +5 -5
- package/dist/infra/lib/gpt/orchestration.js +4 -4
- 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/lib/telemetry/SkillTelemetry.d.ts +52 -0
- package/dist/infra/lib/telemetry/SkillTelemetry.d.ts.map +1 -0
- package/dist/infra/lib/telemetry/SkillTelemetry.js +117 -0
- package/dist/infra/lib/telemetry/SkillTelemetry.js.map +1 -0
- package/dist/infra/lib/telemetry/SkillTelemetry.test.d.ts +2 -0
- package/dist/infra/lib/telemetry/SkillTelemetry.test.d.ts.map +1 -0
- package/dist/infra/lib/telemetry/SkillTelemetry.test.js +91 -0
- package/dist/infra/lib/telemetry/SkillTelemetry.test.js.map +1 -0
- 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/test-helpers/index.d.ts +36 -0
- package/dist/test-helpers/index.d.ts.map +1 -0
- package/dist/test-helpers/index.js +85 -0
- package/dist/test-helpers/index.js.map +1 -0
- package/dist/test-helpers/index.test.d.ts +2 -0
- package/dist/test-helpers/index.test.d.ts.map +1 -0
- package/dist/test-helpers/index.test.js +92 -0
- package/dist/test-helpers/index.test.js.map +1 -0
- 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 +77 -77
- 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 -475
- 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 +123 -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 +63 -63
- package/skills/commit-push-pr/SKILL.md +75 -75
- package/skills/context7-usage/SKILL.md +105 -105
- package/skills/core-capabilities/SKILL.md +13 -13
- package/skills/e2e-commerce/SKILL.md +61 -61
- package/skills/exec-plan/SKILL.md +147 -147
- package/skills/frontend-design/SKILL.md +12 -12
- 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 -66
- package/skills/ui-ux-pro-max/SKILL.md +221 -221
- 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/dist/cli/collaborator.js
CHANGED
|
@@ -56,64 +56,64 @@ export function setupCollaboratorAutoInstall(projectRoot) {
|
|
|
56
56
|
fs.mkdirSync(coreDir, { recursive: true });
|
|
57
57
|
}
|
|
58
58
|
if (!fs.existsSync(setupShPath)) {
|
|
59
|
-
const setupScript = `#!/bin/bash
|
|
60
|
-
# Core collaborator auto-install script
|
|
61
|
-
# Usage: ./.claude/vibe/setup.sh
|
|
62
|
-
|
|
63
|
-
set -e
|
|
64
|
-
|
|
65
|
-
echo "🔧 Checking Core installation..."
|
|
66
|
-
|
|
67
|
-
# Check npm/npx
|
|
68
|
-
if ! command -v npx &> /dev/null; then
|
|
69
|
-
echo "❌ Node.js/npm is not installed."
|
|
70
|
-
echo " Please install from https://nodejs.org"
|
|
71
|
-
exit 1
|
|
72
|
-
fi
|
|
73
|
-
|
|
74
|
-
# Check core installation and update
|
|
75
|
-
if command -v vibe &> /dev/null; then
|
|
76
|
-
echo "✅ Core is already installed."
|
|
77
|
-
vibe update --silent
|
|
78
|
-
echo "✅ Core updated!"
|
|
79
|
-
else
|
|
80
|
-
echo "📦 Installing Core..."
|
|
81
|
-
npm install -g @su-record/vibe
|
|
82
|
-
vibe update --silent
|
|
83
|
-
echo "✅ Core installed and configured!"
|
|
84
|
-
fi
|
|
85
|
-
|
|
86
|
-
echo ""
|
|
87
|
-
echo "Get started with:"
|
|
88
|
-
echo " /vibe.spec \\"feature\\" Create SPEC"
|
|
89
|
-
echo " /vibe.run \\"feature\\" Implement"
|
|
59
|
+
const setupScript = `#!/bin/bash
|
|
60
|
+
# Core collaborator auto-install script
|
|
61
|
+
# Usage: ./.claude/vibe/setup.sh
|
|
62
|
+
|
|
63
|
+
set -e
|
|
64
|
+
|
|
65
|
+
echo "🔧 Checking Core installation..."
|
|
66
|
+
|
|
67
|
+
# Check npm/npx
|
|
68
|
+
if ! command -v npx &> /dev/null; then
|
|
69
|
+
echo "❌ Node.js/npm is not installed."
|
|
70
|
+
echo " Please install from https://nodejs.org"
|
|
71
|
+
exit 1
|
|
72
|
+
fi
|
|
73
|
+
|
|
74
|
+
# Check core installation and update
|
|
75
|
+
if command -v vibe &> /dev/null; then
|
|
76
|
+
echo "✅ Core is already installed."
|
|
77
|
+
vibe update --silent
|
|
78
|
+
echo "✅ Core updated!"
|
|
79
|
+
else
|
|
80
|
+
echo "📦 Installing Core..."
|
|
81
|
+
npm install -g @su-record/vibe
|
|
82
|
+
vibe update --silent
|
|
83
|
+
echo "✅ Core installed and configured!"
|
|
84
|
+
fi
|
|
85
|
+
|
|
86
|
+
echo ""
|
|
87
|
+
echo "Get started with:"
|
|
88
|
+
echo " /vibe.spec \\"feature\\" Create SPEC"
|
|
89
|
+
echo " /vibe.run \\"feature\\" Implement"
|
|
90
90
|
`;
|
|
91
91
|
fs.writeFileSync(setupShPath, setupScript);
|
|
92
92
|
fs.chmodSync(setupShPath, '755');
|
|
93
93
|
}
|
|
94
94
|
// 3. README.md에 협업자 안내 추가
|
|
95
95
|
const readmePath = path.join(projectRoot, 'README.md');
|
|
96
|
-
const coreSetupSection = `
|
|
97
|
-
## Core Setup (AI Coding)
|
|
98
|
-
|
|
99
|
-
This project uses [VIBE](https://github.com/su-record/vibe) AI coding framework.
|
|
100
|
-
|
|
101
|
-
### Collaborator Install
|
|
102
|
-
|
|
103
|
-
\`\`\`bash
|
|
104
|
-
# Global install (recommended)
|
|
105
|
-
npm install -g @su-record/vibe
|
|
106
|
-
vibe update
|
|
107
|
-
|
|
108
|
-
# Or use vibe init to setup
|
|
109
|
-
vibe init
|
|
110
|
-
\`\`\`
|
|
111
|
-
|
|
112
|
-
### Usage
|
|
113
|
-
|
|
114
|
-
Use slash commands in Claude Code:
|
|
115
|
-
- \`/vibe.spec "feature"\` - Create SPEC document
|
|
116
|
-
- \`/vibe.run "feature"\` - Execute implementation
|
|
96
|
+
const coreSetupSection = `
|
|
97
|
+
## Core Setup (AI Coding)
|
|
98
|
+
|
|
99
|
+
This project uses [VIBE](https://github.com/su-record/vibe) AI coding framework.
|
|
100
|
+
|
|
101
|
+
### Collaborator Install
|
|
102
|
+
|
|
103
|
+
\`\`\`bash
|
|
104
|
+
# Global install (recommended)
|
|
105
|
+
npm install -g @su-record/vibe
|
|
106
|
+
vibe update
|
|
107
|
+
|
|
108
|
+
# Or use vibe init to setup
|
|
109
|
+
vibe init
|
|
110
|
+
\`\`\`
|
|
111
|
+
|
|
112
|
+
### Usage
|
|
113
|
+
|
|
114
|
+
Use slash commands in Claude Code:
|
|
115
|
+
- \`/vibe.spec "feature"\` - Create SPEC document
|
|
116
|
+
- \`/vibe.run "feature"\` - Execute implementation
|
|
117
117
|
`;
|
|
118
118
|
if (fs.existsSync(readmePath)) {
|
|
119
119
|
const readme = fs.readFileSync(readmePath, 'utf-8');
|
|
@@ -193,18 +193,18 @@ export function evolutionGaps() {
|
|
|
193
193
|
}
|
|
194
194
|
}
|
|
195
195
|
export function evolutionHelp() {
|
|
196
|
-
console.log(`
|
|
197
|
-
Evolution Commands:
|
|
198
|
-
vibe evolution status Show overall status
|
|
199
|
-
vibe evolution list List all generations
|
|
200
|
-
vibe evolution approve <id> Approve draft → testing
|
|
201
|
-
vibe evolution reject <id> Reject draft
|
|
202
|
-
vibe evolution disable <id> Disable a generation
|
|
203
|
-
vibe evolution rollback <id> Rollback to previous version
|
|
204
|
-
vibe evolution disable-all Emergency disable all
|
|
205
|
-
vibe evolution run Manual evolution cycle
|
|
206
|
-
vibe evolution insights Show confirmed insights
|
|
207
|
-
vibe evolution gaps Show detected skill gaps
|
|
196
|
+
console.log(`
|
|
197
|
+
Evolution Commands:
|
|
198
|
+
vibe evolution status Show overall status
|
|
199
|
+
vibe evolution list List all generations
|
|
200
|
+
vibe evolution approve <id> Approve draft → testing
|
|
201
|
+
vibe evolution reject <id> Reject draft
|
|
202
|
+
vibe evolution disable <id> Disable a generation
|
|
203
|
+
vibe evolution rollback <id> Rollback to previous version
|
|
204
|
+
vibe evolution disable-all Emergency disable all
|
|
205
|
+
vibe evolution run Manual evolution cycle
|
|
206
|
+
vibe evolution insights Show confirmed insights
|
|
207
|
+
vibe evolution gaps Show detected skill gaps
|
|
208
208
|
`);
|
|
209
209
|
}
|
|
210
210
|
//# sourceMappingURL=evolution.js.map
|
|
@@ -10,41 +10,41 @@ import { detectCodexCli, detectGeminiCli } from '../utils/cli-detector.js';
|
|
|
10
10
|
* 도움말 표시
|
|
11
11
|
*/
|
|
12
12
|
export function showHelp() {
|
|
13
|
-
console.log(`
|
|
14
|
-
VIBE - Personalized AI Agent (Claude Code exclusive)
|
|
15
|
-
|
|
16
|
-
Commands:
|
|
17
|
-
vibe setup 셋업 위자드 (인증, 채널, 설정 한번에)
|
|
18
|
-
vibe init [project] 프로젝트 초기화
|
|
19
|
-
vibe update 설정 업데이트
|
|
20
|
-
vibe upgrade 최신 버전으로 업그레이드
|
|
21
|
-
vibe remove 프로젝트에서 제거
|
|
22
|
-
vibe status 전체 상태 확인
|
|
23
|
-
|
|
24
|
-
LLM:
|
|
25
|
-
vibe claude <cmd> Claude (key, status, logout)
|
|
26
|
-
vibe gpt <cmd> GPT (auth, key, status, logout)
|
|
27
|
-
vibe gemini <cmd> Gemini (auth, key, status, logout)
|
|
28
|
-
vibe env import [path] .env → ~/.vibe/config.json 가져오기
|
|
29
|
-
|
|
30
|
-
Skills:
|
|
31
|
-
vibe skills add <pkg> Install skill from skills.sh
|
|
32
|
-
|
|
33
|
-
Channels:
|
|
34
|
-
vibe telegram <cmd> Telegram (setup, chat, status)
|
|
35
|
-
vibe slack <cmd> Slack (setup, channel, status)
|
|
36
|
-
|
|
37
|
-
Slash Commands (Claude Code):
|
|
38
|
-
/vibe.spec "feature" SPEC 작성 + 리서치
|
|
39
|
-
/vibe.run "feature" 구현 실행
|
|
40
|
-
/vibe.verify "feature" BDD 검증
|
|
41
|
-
/vibe.review 병렬 코드 리뷰 (13+ agents)
|
|
42
|
-
/vibe.reason "problem" 체계적 추론
|
|
43
|
-
/vibe.analyze 프로젝트 분석
|
|
44
|
-
/vibe.trace "feature" 요구사항 추적 매트릭스
|
|
45
|
-
/vibe.utils 유틸리티 (--e2e, --diagram, --continue)
|
|
46
|
-
|
|
47
|
-
Docs: https://github.com/su-record/vibe
|
|
13
|
+
console.log(`
|
|
14
|
+
VIBE - Personalized AI Agent (Claude Code exclusive)
|
|
15
|
+
|
|
16
|
+
Commands:
|
|
17
|
+
vibe setup 셋업 위자드 (인증, 채널, 설정 한번에)
|
|
18
|
+
vibe init [project] 프로젝트 초기화
|
|
19
|
+
vibe update 설정 업데이트
|
|
20
|
+
vibe upgrade 최신 버전으로 업그레이드
|
|
21
|
+
vibe remove 프로젝트에서 제거
|
|
22
|
+
vibe status 전체 상태 확인
|
|
23
|
+
|
|
24
|
+
LLM:
|
|
25
|
+
vibe claude <cmd> Claude (key, status, logout)
|
|
26
|
+
vibe gpt <cmd> GPT (auth, key, status, logout)
|
|
27
|
+
vibe gemini <cmd> Gemini (auth, key, status, logout)
|
|
28
|
+
vibe env import [path] .env → ~/.vibe/config.json 가져오기
|
|
29
|
+
|
|
30
|
+
Skills:
|
|
31
|
+
vibe skills add <pkg> Install skill from skills.sh
|
|
32
|
+
|
|
33
|
+
Channels:
|
|
34
|
+
vibe telegram <cmd> Telegram (setup, chat, status)
|
|
35
|
+
vibe slack <cmd> Slack (setup, channel, status)
|
|
36
|
+
|
|
37
|
+
Slash Commands (Claude Code):
|
|
38
|
+
/vibe.spec "feature" SPEC 작성 + 리서치
|
|
39
|
+
/vibe.run "feature" 구현 실행
|
|
40
|
+
/vibe.verify "feature" BDD 검증
|
|
41
|
+
/vibe.review 병렬 코드 리뷰 (13+ agents)
|
|
42
|
+
/vibe.reason "problem" 체계적 추론
|
|
43
|
+
/vibe.analyze 프로젝트 분석
|
|
44
|
+
/vibe.trace "feature" 요구사항 추적 매트릭스
|
|
45
|
+
/vibe.utils 유틸리티 (--e2e, --diagram, --continue)
|
|
46
|
+
|
|
47
|
+
Docs: https://github.com/su-record/vibe
|
|
48
48
|
`);
|
|
49
49
|
}
|
|
50
50
|
/**
|
|
@@ -100,22 +100,22 @@ export function showStatus() {
|
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
102
|
catch { /* DB not available */ }
|
|
103
|
-
console.log(`
|
|
104
|
-
VIBE Status (v${packageJson.version})
|
|
105
|
-
|
|
106
|
-
Project: ${projectStatus}
|
|
107
|
-
${isCoreProject ? `Language: ${config.language || 'ko'}` : ''}
|
|
108
|
-
|
|
109
|
-
LLM:
|
|
110
|
-
Claude ${claudeStatusText}
|
|
111
|
-
GPT ${gptStatusText}
|
|
112
|
-
Gemini ${geminiStatusText}
|
|
113
|
-
|
|
114
|
-
Agent:
|
|
115
|
-
Autonomy ${autonomyMode} mode
|
|
116
|
-
Sentinel ${sentinelOn ? 'ON' : 'OFF'}
|
|
117
|
-
Proactive ${proactiveOn ? 'ON' : 'OFF'}
|
|
118
|
-
${dbStats}
|
|
103
|
+
console.log(`
|
|
104
|
+
VIBE Status (v${packageJson.version})
|
|
105
|
+
|
|
106
|
+
Project: ${projectStatus}
|
|
107
|
+
${isCoreProject ? `Language: ${config.language || 'ko'}` : ''}
|
|
108
|
+
|
|
109
|
+
LLM:
|
|
110
|
+
Claude ${claudeStatusText}
|
|
111
|
+
GPT ${gptStatusText}
|
|
112
|
+
Gemini ${geminiStatusText}
|
|
113
|
+
|
|
114
|
+
Agent:
|
|
115
|
+
Autonomy ${autonomyMode} mode
|
|
116
|
+
Sentinel ${sentinelOn ? 'ON' : 'OFF'}
|
|
117
|
+
Proactive ${proactiveOn ? 'ON' : 'OFF'}
|
|
118
|
+
${dbStats}
|
|
119
119
|
`);
|
|
120
120
|
}
|
|
121
121
|
/**
|
|
@@ -264,11 +264,11 @@ export async function init(projectName) {
|
|
|
264
264
|
const packageJson = getPackageJson();
|
|
265
265
|
const authStatus = getLLMAuthStatus();
|
|
266
266
|
const claudeStatus = getClaudeCodeStatus(true);
|
|
267
|
-
log(`✅ vibe initialized (v${packageJson.version})
|
|
268
|
-
${formatLLMStatus(claudeStatus)}
|
|
269
|
-
📦 Context7 plugin (recommended): /plugin install context7
|
|
270
|
-
|
|
271
|
-
Next: ${isNewProject ? `cd ${projectName} && ` : ''}/vibe.spec "feature"
|
|
267
|
+
log(`✅ vibe initialized (v${packageJson.version})
|
|
268
|
+
${formatLLMStatus(claudeStatus)}
|
|
269
|
+
📦 Context7 plugin (recommended): /plugin install context7
|
|
270
|
+
|
|
271
|
+
Next: ${isNewProject ? `cd ${projectName} && ` : ''}/vibe.spec "feature"
|
|
272
272
|
`);
|
|
273
273
|
}
|
|
274
274
|
catch (error) {
|
|
@@ -123,20 +123,20 @@ export function remove() {
|
|
|
123
123
|
console.log(` ✅ Cursor rules template removed (${removedRules})\n`);
|
|
124
124
|
}
|
|
125
125
|
}
|
|
126
|
-
console.log(`
|
|
127
|
-
✅ vibe removed!
|
|
128
|
-
|
|
129
|
-
Removed:
|
|
130
|
-
- MCP server (context7)
|
|
131
|
-
- .claude/vibe/ folder
|
|
132
|
-
- Slash commands (7)
|
|
133
|
-
- Subagents (5)
|
|
134
|
-
- Hooks settings
|
|
135
|
-
- Cursor agents (12)
|
|
136
|
-
- Cursor skills (7)
|
|
137
|
-
- Cursor rules template (5)
|
|
138
|
-
|
|
139
|
-
To reinstall: vibe init
|
|
126
|
+
console.log(`
|
|
127
|
+
✅ vibe removed!
|
|
128
|
+
|
|
129
|
+
Removed:
|
|
130
|
+
- MCP server (context7)
|
|
131
|
+
- .claude/vibe/ folder
|
|
132
|
+
- Slash commands (7)
|
|
133
|
+
- Subagents (5)
|
|
134
|
+
- Hooks settings
|
|
135
|
+
- Cursor agents (12)
|
|
136
|
+
- Cursor skills (7)
|
|
137
|
+
- Cursor rules template (5)
|
|
138
|
+
|
|
139
|
+
To reinstall: vibe init
|
|
140
140
|
`);
|
|
141
141
|
}
|
|
142
142
|
//# sourceMappingURL=remove.js.map
|
|
@@ -65,17 +65,17 @@ export function sentinelStatus() {
|
|
|
65
65
|
catch {
|
|
66
66
|
// Table may not exist
|
|
67
67
|
}
|
|
68
|
-
console.log(`
|
|
69
|
-
Security Sentinel Status
|
|
70
|
-
========================
|
|
71
|
-
Policies: ${policyCount} active
|
|
72
|
-
Confirmations: ${pendingConfirmations} pending
|
|
73
|
-
Suggestions: ${pendingSuggestions} pending
|
|
74
|
-
|
|
75
|
-
Last 24h:
|
|
76
|
-
Total actions: ${totalActions}
|
|
77
|
-
Allowed: ${allowedActions}
|
|
78
|
-
Blocked: ${blockedActions}
|
|
68
|
+
console.log(`
|
|
69
|
+
Security Sentinel Status
|
|
70
|
+
========================
|
|
71
|
+
Policies: ${policyCount} active
|
|
72
|
+
Confirmations: ${pendingConfirmations} pending
|
|
73
|
+
Suggestions: ${pendingSuggestions} pending
|
|
74
|
+
|
|
75
|
+
Last 24h:
|
|
76
|
+
Total actions: ${totalActions}
|
|
77
|
+
Allowed: ${allowedActions}
|
|
78
|
+
Blocked: ${blockedActions}
|
|
79
79
|
`);
|
|
80
80
|
}
|
|
81
81
|
export function sentinelAudit(type, risk, days, deadLetter, retryId, discardId) {
|
|
@@ -301,22 +301,22 @@ export function sentinelSuggestions(action, id) {
|
|
|
301
301
|
}
|
|
302
302
|
}
|
|
303
303
|
export function sentinelHelp() {
|
|
304
|
-
console.log(`
|
|
305
|
-
Sentinel Commands:
|
|
306
|
-
vibe sentinel status Show sentinel status
|
|
307
|
-
vibe sentinel audit [--type X] [--risk Y] [--days N]
|
|
308
|
-
Query audit log
|
|
309
|
-
vibe sentinel audit --dead-letter List dead letter events
|
|
310
|
-
vibe sentinel audit --retry <id> Retry dead letter event
|
|
311
|
-
vibe sentinel audit --discard <id> Discard dead letter event
|
|
312
|
-
vibe sentinel approve <id> Approve confirmation
|
|
313
|
-
vibe sentinel reject <id> Reject confirmation
|
|
314
|
-
vibe sentinel policy list List policies
|
|
315
|
-
vibe sentinel policy enable <name> Enable policy
|
|
316
|
-
vibe sentinel policy disable <name> Disable policy
|
|
317
|
-
vibe sentinel suggestions List pending suggestions
|
|
318
|
-
vibe sentinel suggestions accept <id> Accept suggestion
|
|
319
|
-
vibe sentinel suggestions dismiss <id> Dismiss suggestion
|
|
304
|
+
console.log(`
|
|
305
|
+
Sentinel Commands:
|
|
306
|
+
vibe sentinel status Show sentinel status
|
|
307
|
+
vibe sentinel audit [--type X] [--risk Y] [--days N]
|
|
308
|
+
Query audit log
|
|
309
|
+
vibe sentinel audit --dead-letter List dead letter events
|
|
310
|
+
vibe sentinel audit --retry <id> Retry dead letter event
|
|
311
|
+
vibe sentinel audit --discard <id> Discard dead letter event
|
|
312
|
+
vibe sentinel approve <id> Approve confirmation
|
|
313
|
+
vibe sentinel reject <id> Reject confirmation
|
|
314
|
+
vibe sentinel policy list List policies
|
|
315
|
+
vibe sentinel policy enable <name> Enable policy
|
|
316
|
+
vibe sentinel policy disable <name> Disable policy
|
|
317
|
+
vibe sentinel suggestions List pending suggestions
|
|
318
|
+
vibe sentinel suggestions accept <id> Accept suggestion
|
|
319
|
+
vibe sentinel suggestions dismiss <id> Dismiss suggestion
|
|
320
320
|
`);
|
|
321
321
|
}
|
|
322
322
|
//# sourceMappingURL=sentinel.js.map
|
|
@@ -11,11 +11,11 @@ import { resolveExternalSkills } from '../postinstall/constants.js';
|
|
|
11
11
|
*/
|
|
12
12
|
export function skillsAdd(target) {
|
|
13
13
|
if (!target) {
|
|
14
|
-
console.log(`
|
|
15
|
-
Usage: vibe skills add <owner/repo>
|
|
16
|
-
|
|
17
|
-
Install skills from skills.sh ecosystem.
|
|
18
|
-
Example: vibe skills add vercel-labs/skills
|
|
14
|
+
console.log(`
|
|
15
|
+
Usage: vibe skills add <owner/repo>
|
|
16
|
+
|
|
17
|
+
Install skills from skills.sh ecosystem.
|
|
18
|
+
Example: vibe skills add vercel-labs/skills
|
|
19
19
|
`);
|
|
20
20
|
return;
|
|
21
21
|
}
|
|
@@ -67,16 +67,16 @@ export function slackStatus() {
|
|
|
67
67
|
console.log(`Allowed channels: ${channelIds.length > 0 ? channelIds.join(', ') : 'none'}`);
|
|
68
68
|
}
|
|
69
69
|
export function slackHelp() {
|
|
70
|
-
console.log(`
|
|
71
|
-
Vibe Slack Commands:
|
|
72
|
-
vibe slack setup <bot-token> <app-token> Set Slack tokens
|
|
73
|
-
vibe slack channel <id> Add allowed channel ID
|
|
74
|
-
vibe slack status Show configuration
|
|
75
|
-
vibe slack help Show this help
|
|
76
|
-
|
|
77
|
-
Get tokens from https://api.slack.com/apps
|
|
78
|
-
Bot Token: OAuth & Permissions > Bot User OAuth Token (xoxb-)
|
|
79
|
-
App Token: Basic Information > App-Level Tokens (xapp-)
|
|
70
|
+
console.log(`
|
|
71
|
+
Vibe Slack Commands:
|
|
72
|
+
vibe slack setup <bot-token> <app-token> Set Slack tokens
|
|
73
|
+
vibe slack channel <id> Add allowed channel ID
|
|
74
|
+
vibe slack status Show configuration
|
|
75
|
+
vibe slack help Show this help
|
|
76
|
+
|
|
77
|
+
Get tokens from https://api.slack.com/apps
|
|
78
|
+
Bot Token: OAuth & Permissions > Bot User OAuth Token (xoxb-)
|
|
79
|
+
App Token: Basic Information > App-Level Tokens (xapp-)
|
|
80
80
|
`);
|
|
81
81
|
}
|
|
82
82
|
//# sourceMappingURL=slack.js.map
|
|
@@ -218,18 +218,18 @@ export function telegramStop() {
|
|
|
218
218
|
}, 500);
|
|
219
219
|
}
|
|
220
220
|
export function telegramHelp() {
|
|
221
|
-
console.log(`
|
|
222
|
-
Vibe Telegram Commands:
|
|
223
|
-
vibe telegram setup <token> Set bot token
|
|
224
|
-
vibe telegram chat <id> Add allowed chat ID
|
|
225
|
-
vibe telegram status Show configuration
|
|
226
|
-
vibe telegram help Show this help
|
|
227
|
-
|
|
228
|
-
Start/Stop:
|
|
229
|
-
vibe start Start daemon + all interfaces
|
|
230
|
-
vibe interface enable telegram Enable telegram only
|
|
231
|
-
|
|
232
|
-
Get a bot token from @BotFather on Telegram.
|
|
221
|
+
console.log(`
|
|
222
|
+
Vibe Telegram Commands:
|
|
223
|
+
vibe telegram setup <token> Set bot token
|
|
224
|
+
vibe telegram chat <id> Add allowed chat ID
|
|
225
|
+
vibe telegram status Show configuration
|
|
226
|
+
vibe telegram help Show this help
|
|
227
|
+
|
|
228
|
+
Start/Stop:
|
|
229
|
+
vibe start Start daemon + all interfaces
|
|
230
|
+
vibe interface enable telegram Enable telegram only
|
|
231
|
+
|
|
232
|
+
Get a bot token from @BotFather on Telegram.
|
|
233
233
|
`);
|
|
234
234
|
}
|
|
235
235
|
//# sourceMappingURL=telegram.js.map
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { CliOptions } from '../types.js';
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
7
|
-
* npm install -g
|
|
6
|
+
* Upgrade global package to latest version
|
|
7
|
+
* npm install -g → postinstall handles global config
|
|
8
8
|
*/
|
|
9
|
-
export declare function upgrade(
|
|
9
|
+
export declare function upgrade(_options?: CliOptions): void;
|
|
10
10
|
//# sourceMappingURL=upgrade.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAsBzC;;;GAGG;AACH,wBAAgB,OAAO,CAAC,QAAQ,GAAE,UAA8B,GAAG,IAAI,CAiBtE"}
|
|
@@ -2,15 +2,36 @@
|
|
|
2
2
|
* upgrade 명령어 — 전역 패키지 최신 버전으로 업그레이드
|
|
3
3
|
*/
|
|
4
4
|
import { execSync } from 'child_process';
|
|
5
|
+
import { readdirSync, rmSync } from 'fs';
|
|
6
|
+
import { join } from 'path';
|
|
5
7
|
import { log, getPackageJson } from '../utils.js';
|
|
6
8
|
import { formatLLMStatus } from '../auth.js';
|
|
7
9
|
/**
|
|
8
|
-
*
|
|
9
|
-
* npm install -g 실행 → postinstall이 전역 설정 자동 처리
|
|
10
|
+
* Remove stale npm temp directories that cause ENOTEMPTY errors
|
|
10
11
|
*/
|
|
11
|
-
|
|
12
|
+
function cleanStaleTempDirs() {
|
|
13
|
+
try {
|
|
14
|
+
const parentDir = execSync('npm root -g', { encoding: 'utf-8' }).trim();
|
|
15
|
+
const scopeDir = join(parentDir, '@su-record');
|
|
16
|
+
const entries = readdirSync(scopeDir, { withFileTypes: true });
|
|
17
|
+
for (const entry of entries) {
|
|
18
|
+
if (entry.isDirectory() && entry.name.startsWith('.vibe-')) {
|
|
19
|
+
rmSync(join(scopeDir, entry.name), { recursive: true, force: true });
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
// Scope dir may not exist yet — ignore
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Upgrade global package to latest version
|
|
29
|
+
* npm install -g → postinstall handles global config
|
|
30
|
+
*/
|
|
31
|
+
export function upgrade(_options = { silent: false }) {
|
|
12
32
|
try {
|
|
13
33
|
log('⬆️ Upgrading to latest version...\n');
|
|
34
|
+
cleanStaleTempDirs();
|
|
14
35
|
execSync('npm install -g @su-record/vibe@latest', {
|
|
15
36
|
stdio: 'pipe',
|
|
16
37
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../src/cli/commands/upgrade.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C;;GAEG;AACH,SAAS,kBAAkB;IACzB,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACxE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,WAAW,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3D,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,uCAAuC;IACzC,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,WAAuB,EAAE,MAAM,EAAE,KAAK,EAAE;IAC9D,IAAI,CAAC;QACH,GAAG,CAAC,qCAAqC,CAAC,CAAC;QAE3C,kBAAkB,EAAE,CAAC;QAErB,QAAQ,CAAC,uCAAuC,EAAE;YAChD,KAAK,EAAE,MAAM;SACd,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;QACrC,GAAG,CAAC,uBAAuB,WAAW,CAAC,OAAO,QAAQ,eAAe,EAAE,IAAI,CAAC,CAAC;IAC/E,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
package/dist/cli/detect.js
CHANGED
|
@@ -539,45 +539,45 @@ export function getLanguageRulesForStacks(stacks) {
|
|
|
539
539
|
* 언어별 CLAUDE.md 규칙
|
|
540
540
|
*/
|
|
541
541
|
export const LANGUAGE_RULES = {
|
|
542
|
-
typescript: `### TypeScript Rules
|
|
543
|
-
- No \`any\` type → use \`unknown\` + type guards
|
|
544
|
-
- No \`as any\` casting → define proper interfaces
|
|
545
|
-
- No \`@ts-ignore\` → fix type issues at root
|
|
542
|
+
typescript: `### TypeScript Rules
|
|
543
|
+
- No \`any\` type → use \`unknown\` + type guards
|
|
544
|
+
- No \`as any\` casting → define proper interfaces
|
|
545
|
+
- No \`@ts-ignore\` → fix type issues at root
|
|
546
546
|
- Explicit return types on all functions`,
|
|
547
|
-
python: `### Python Rules
|
|
548
|
-
- Type hints required (parameters, return values)
|
|
549
|
-
- No \`# type: ignore\` → fix type issues at root
|
|
550
|
-
- Prefer f-strings (over format())
|
|
547
|
+
python: `### Python Rules
|
|
548
|
+
- Type hints required (parameters, return values)
|
|
549
|
+
- No \`# type: ignore\` → fix type issues at root
|
|
550
|
+
- Prefer f-strings (over format())
|
|
551
551
|
- Use list comprehensions appropriately`,
|
|
552
|
-
go: `### Go Rules
|
|
553
|
-
- Handle errors immediately (if err != nil)
|
|
554
|
-
- Explicit error wrapping (fmt.Errorf with %w)
|
|
555
|
-
- Define interfaces at point of use
|
|
552
|
+
go: `### Go Rules
|
|
553
|
+
- Handle errors immediately (if err != nil)
|
|
554
|
+
- Explicit error wrapping (fmt.Errorf with %w)
|
|
555
|
+
- Define interfaces at point of use
|
|
556
556
|
- Prevent goroutine leaks (use context)`,
|
|
557
|
-
rust: `### Rust Rules
|
|
558
|
-
- No unwrap()/expect() in production → handle Result/Option
|
|
559
|
-
- Minimize unsafe blocks
|
|
560
|
-
- Define explicit error types
|
|
557
|
+
rust: `### Rust Rules
|
|
558
|
+
- No unwrap()/expect() in production → handle Result/Option
|
|
559
|
+
- Minimize unsafe blocks
|
|
560
|
+
- Define explicit error types
|
|
561
561
|
- Document ownership/lifetime clearly`,
|
|
562
|
-
java: `### Java Rules
|
|
563
|
-
- Use Optional (instead of null)
|
|
564
|
-
- Prefer immutable objects (final fields)
|
|
565
|
-
- Handle checked exceptions properly
|
|
562
|
+
java: `### Java Rules
|
|
563
|
+
- Use Optional (instead of null)
|
|
564
|
+
- Prefer immutable objects (final fields)
|
|
565
|
+
- Handle checked exceptions properly
|
|
566
566
|
- Utilize Stream API`,
|
|
567
|
-
kotlin: `### Kotlin Rules
|
|
568
|
-
- Explicit nullable types (?)
|
|
569
|
-
- No !! operator → use safe call (?.)
|
|
570
|
-
- Use data classes actively
|
|
567
|
+
kotlin: `### Kotlin Rules
|
|
568
|
+
- Explicit nullable types (?)
|
|
569
|
+
- No !! operator → use safe call (?.)
|
|
570
|
+
- Use data classes actively
|
|
571
571
|
- Implement utilities as extension functions`,
|
|
572
|
-
dart: `### Dart Rules
|
|
573
|
-
- Follow null safety (use ? and ! properly)
|
|
574
|
-
- Avoid late keyword abuse
|
|
575
|
-
- Use const constructors
|
|
572
|
+
dart: `### Dart Rules
|
|
573
|
+
- Follow null safety (use ? and ! properly)
|
|
574
|
+
- Avoid late keyword abuse
|
|
575
|
+
- Use const constructors
|
|
576
576
|
- Use async/await for async code`,
|
|
577
|
-
swift: `### Swift Rules
|
|
578
|
-
- No force unwrapping → use guard let / if let
|
|
579
|
-
- Prefer protocol-oriented programming
|
|
580
|
-
- Prefer value types (struct)
|
|
577
|
+
swift: `### Swift Rules
|
|
578
|
+
- No force unwrapping → use guard let / if let
|
|
579
|
+
- Prefer protocol-oriented programming
|
|
580
|
+
- Prefer value types (struct)
|
|
581
581
|
- Watch memory management with @escaping closures`
|
|
582
582
|
};
|
|
583
583
|
/**
|