vibe-governor 1.3.1 → 1.3.2
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 +1 -1
- package/bin/vibe-governor.cjs +1 -1
- package/package.json +1 -1
- package/README.tr.md +0 -117
package/README.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
[](https://www.npmjs.com/package/vibe-governor)
|
|
4
4
|
[](https://github.com/SafakSahinn/vibe-governor/blob/main/LICENSE)
|
|
5
5
|
|
|
6
|
-
**English** · [Türkçe](https://github.com/SafakSahinn/vibe-governor/blob/main/
|
|
6
|
+
**English** · [Türkçe](https://github.com/SafakSahinn/vibe-governor/blob/main/BENIOKU.md)
|
|
7
7
|
|
|
8
8
|
Guardrails for AI-assisted ("vibe coding") projects, both software and hardware (Verilog/VHDL).
|
|
9
9
|
Vibe Governor installs one shared rule set for all your AI coding assistants, a **Memory Bank** that
|
package/bin/vibe-governor.cjs
CHANGED
|
@@ -991,7 +991,7 @@ ${body(v,s)}`}],PLATFORM_FILES=Object.fromEntries(RULE_FILES.map(d=>[d.platform,
|
|
|
991
991
|
- **Technical Debts & Known Bugs:**
|
|
992
992
|
- [ ] Finalize end-to-end integration test suites.
|
|
993
993
|
`]]}function buildMemoryBankFiles(data,vars,safety){return(data.locale==="tr"?trFiles(data,vars,safety):enFiles(data,vars,safety)).map(([name,content])=>({path:`.memory_bank/${name}`,name,content,language:"markdown",category:"memory_bank"}))}function contentHash(text){let normalized=text.replace(/\r\n/g,`
|
|
994
|
-
`),a=2166136261,b=1523705862;for(let i=0;i<normalized.length;i++){let c=normalized.charCodeAt(i);a=Math.imul(a^c,16777619)>>>0,b=Math.imul(b^c,16777619)>>>0,b=(b^b>>>13)>>>0}return a.toString(16).padStart(8,"0")+b.toString(16).padStart(8,"0")}var VERSION="1.3.
|
|
994
|
+
`),a=2166136261,b=1523705862;for(let i=0;i<normalized.length;i++){let c=normalized.charCodeAt(i);a=Math.imul(a^c,16777619)>>>0,b=Math.imul(b^c,16777619)>>>0,b=(b^b>>>13)>>>0}return a.toString(16).padStart(8,"0")+b.toString(16).padStart(8,"0")}var VERSION="1.3.2";function buildTemplateVars(data){let maxLines=data.constraints.maxLines||800,rules=getEnabledRules(data);return{MAX_LINES:String(maxLines),MAX_LINES_THRESHOLD:String(Math.max(100,maxLines-100)),DOC_SCORE:String(data.constraints.docScoreThreshold||8),LOCALE:data.locale,ENABLED_RULES:JSON.stringify(rules),ENABLED_RULES_DOC:rules.length>0?rules.join(", "):"(none)"}}function applyTemplate(template,vars){return template.replace(/\{\{([A-Z_]+)\}\}/g,(match,key)=>key in vars?vars[key]:match)}function generateProjectFiles(data){let vars=buildTemplateVars(data),fill=t=>applyTemplate(t,vars),safetySummary=getSafetySummary(data),files=[];files.push({path:"AI_GUIDELINES.md",name:"AI_GUIDELINES.md",content:fill(buildGuidelinesTemplate(data)),language:"markdown",category:"guidelines"}),files.push(...buildIdeRuleFiles(data,vars,safetySummary)),files.push(...buildMemoryBankFiles(data,vars,safetySummary));let a=data.automation;return a.includeCheckGuidelines&&files.push({path:"scripts/check_guidelines.py",name:"check_guidelines.py",content:fill(TEMPLATE_CHECK_GUIDELINES_PY),language:"python",category:"scripts"}),a.includePreCommitHook&&files.push({path:"scripts/pre-commit-hook.sh",name:"pre-commit-hook.sh",content:buildPreCommitHook(data.locale),language:"shell",category:"scripts"}),(a.includeCheckGuidelines||a.includePreCommitHook)&&files.push({path:".gitattributes",name:".gitattributes",content:`*.sh text eol=lf
|
|
995
995
|
*.py text eol=lf
|
|
996
996
|
*.yml text eol=lf
|
|
997
997
|
`,language:"plaintext",category:"config"}),a.includeGitHubCI&&files.push({path:".github/workflows/ai-guidelines-ci.yml",name:"ai-guidelines-ci.yml",content:TEMPLATE_GITHUB_CI,language:"yaml",category:"ci"}),a.includeAuditPrompt&&files.push({path:"AUDIT_PROMPT.md",name:"AUDIT_PROMPT.md",content:fill(buildAuditPrompt(data.locale)),language:"markdown",category:"guidelines"}),a.includeGitignore&&files.push({path:".gitignore",name:".gitignore",content:buildGitignore(data.locale),language:"plaintext",category:"config"}),files.push(buildConfigFile(data,files)),files}var CONFIG_FILE="vibe-governor.json";function isUserOwnedPath(path2){return path2.startsWith(".memory_bank/")||path2===".gitignore"||path2===CONFIG_FILE}function buildConfigFile(data,files,hashOverrides={}){let managedFiles={};for(let f of files)isUserOwnedPath(f.path)||(managedFiles[f.path]=contentHash(f.content));Object.assign(managedFiles,hashOverrides);let doc={$comment:"Vibe Governor project config. Change settings with `npx vibe-governor update` or load this file in the web wizard.",formatVersion:1,generator:`vibe-governor@${VERSION}`,config:data,managedFiles};return{path:CONFIG_FILE,name:CONFIG_FILE,content:JSON.stringify(doc,null,2)+`
|
package/package.json
CHANGED
package/README.tr.md
DELETED
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
# 🛡️ Vibe Governor Web Sihirbazı
|
|
2
|
-
|
|
3
|
-
[English](README.md) · **Türkçe**
|
|
4
|
-
|
|
5
|
-
**Vibe Governor**, yapay zeka destekli (vibe coding) büyük ölçekli yazılım ve donanım (HDL: Verilog/VHDL) projelerinde hafıza kaybını, 800 satır kuralı ihlallerini ve spagetti kod sapmalarını engelleyen modern bir web sihirbazı ve otomasyon platformudur.
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## 🚀 Özellikler & 5 Adımlı Akış
|
|
10
|
-
|
|
11
|
-
1. **Adım 1: Dil ve Target AI Platform Seçimi**
|
|
12
|
-
- Arayüz dili (sağ üst TR/EN) ve üretilen dosyaların dili ayrı ayrı seçilir
|
|
13
|
-
- Çoklu AI Asistan Desteği: AGENTS.md standardı, Claude Code, Gemini CLI, Google Antigravity, Cursor, Windsurf/Devin, Cline, GitHub Copilot
|
|
14
|
-
- Diller: C, C++, C#, Java, JavaScript, TypeScript, Python, Go, Rust, Kotlin, Swift, PHP ve HDL (Verilog, VHDL)
|
|
15
|
-
|
|
16
|
-
2. **Adım 2: Mimari ve Kısıtlar Yapılandırması**
|
|
17
|
-
- Ayarlanabilir Dosya Satır Tavanı (Varsayılan 800 satır)
|
|
18
|
-
- Dokümantasyon Kalite Barajı (Varsayılan 8/10)
|
|
19
|
-
- Dile Özel Güvenlik Anahtarları (23 anahtar): C güvensiz fonksiyonlar ve malloc NULL kontrolü, C++ ham işaretçi, C# dynamic/async void, Java istisna/loglama, JavaScript var/==, TypeScript any, Python tip ipuçları/global, Go hata kontrolü, Rust unsafe/clone, Kotlin !!/GlobalScope, Swift zorla açma, PHP strict_types/eval/hazırlanmış SQL, HDL atama, latch ve VHDL duyarlılık listesi
|
|
20
|
-
|
|
21
|
-
3. **Adım 3: Memory Bank Formu (6 Çekirdek Dosya)**
|
|
22
|
-
- `projectbrief.md`: Proje Vizyonu ve Çekirdek Hedefler
|
|
23
|
-
- `productContext.md`: Çözülen Problem ve Kullanıcı Deneyimi
|
|
24
|
-
- `systemPatterns.md`: Mimari Desenler, Modül Hiyerarşisi, Veri Akışı
|
|
25
|
-
- `techContext.md`: Teknolojiler, Bağımlılıklar, Derleme Komutları
|
|
26
|
-
- `activeContext.md`: Mevcut Odak, Son Yapılanlar, Sıradaki Adımlar
|
|
27
|
-
- `progress.md`: Çalışan Modüller, Tamamlanış Oranı, Teknik Borçlar
|
|
28
|
-
- Tek tıkla hazır örneklerle doldurma (`Pre-fill`)
|
|
29
|
-
|
|
30
|
-
4. **Adım 4: Otomasyon ve Denetçi Betikleri**
|
|
31
|
-
- `scripts/check_guidelines.py`: Statik kod boyutu ve yasaklı anahtar kelime denetçisi
|
|
32
|
-
- `scripts/pre-commit-hook.sh`: Git pre-commit engelleyici kanca
|
|
33
|
-
- `.github/workflows/ai-guidelines-ci.yml`: GitHub Actions CI/CD otomasyonu
|
|
34
|
-
- `AUDIT_PROMPT.md`: Frontier modeller (Opus/Sonnet/GPT-4o) için teknik borç tarama talimatı
|
|
35
|
-
- `.gitignore`: Memory bank korumalı git konfigürasyonu
|
|
36
|
-
|
|
37
|
-
5. **Adım 5: Ön İzleme ve Dışa Aktarma Hub'ı**
|
|
38
|
-
- İnteraktif Dosya Ağacı (Tree View) ve Arama/Filtreleme
|
|
39
|
-
- Satır numaralı, syntax-aware Kod Ön İzleme, Tekil Dosya İndirme ve Kopyalama
|
|
40
|
-
- **Proje Paketini İndir (.ZIP):** Tarayıcı tarafında JSZip ile eksiksiz klasör yapılı `.zip` paketi
|
|
41
|
-
- **Tek Satır CLI Komutu Üretimi**
|
|
42
|
-
|
|
43
|
-
---
|
|
44
|
-
|
|
45
|
-
## 📖 Uygulama İçi Rehber
|
|
46
|
-
|
|
47
|
-
Sağ üstteki **Rehber / Guide** butonu; uygulamanın ne yaptığını, ne işe yaradığını, 5 adımın nasıl çalıştığını, üretilen dosyaları, kurulumu, günlük akışı, denetçi kurallarını ve SSS’yi iki dilde anlatır.
|
|
48
|
-
|
|
49
|
-
## ⌨️ CLI (Tek Satır Kurulum)
|
|
50
|
-
|
|
51
|
-
Sihirbazın 5. adımındaki komut, tüm seçimleri `--preset` ile taşır ve aynı dosyaları doğrudan proje klasörüne yazar (Node.js 18+):
|
|
52
|
-
|
|
53
|
-
```bash
|
|
54
|
-
npx -y vibe-governor init --preset=<sihirbazdan kopyalanan değer>
|
|
55
|
-
# veya preset olmadan:
|
|
56
|
-
npx -y vibe-governor init --name=my-app --languages=Rust,Verilog --lang=en
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
- `--languages` verilmezse diller projedeki dosyalardan algılanır (`npx vibe-governor detect` ile görebilirsiniz).
|
|
60
|
-
- Mevcut dosyalar korunur (`--force` ile üzerine yazılır), `--dry-run` sadece listeler.
|
|
61
|
-
- Tüm seçimler `vibe-governor.json` dosyasına kaydedilir. Sonradan değiştirmek için:
|
|
62
|
-
`npx -y vibe-governor update --max-lines=600 --enable=tsNoAny --disable=includeGitHubCI`
|
|
63
|
-
Elle düzenlenmiş dosyalar korunur (yeni sürüm `<dosya>.vibe-new` olarak yazılır), Memory Bank'e dokunulmaz, seçimden çıkan araçların değiştirilmemiş dosyaları kaldırılır.
|
|
64
|
-
- Sihirbazdaki **Yapılandırma Yükle** düğmesi bir projenin `vibe-governor.json` dosyasını forma geri yükler.
|
|
65
|
-
|
|
66
|
-
### Mevcut projeler, istisnalar ve Memory Bank uyarısı
|
|
67
|
-
|
|
68
|
-
- `python3 scripts/check_guidelines.py --update-baseline` mevcut ihlalleri `.vibe-baseline.json`'a alır; sonra yalnızca yeni ihlaller commit'i engeller.
|
|
69
|
-
- Satır içi istisna: `// vibe-ignore: ts_any`, bir alt satır için `vibe-ignore-next-line`, tüm dosya için ilk 10 satırda `vibe-ignore-file: line_limit`. Her bulgunun sonunda kural kimliği yazar.
|
|
70
|
-
- Pre-commit kancası `--staged` ile yalnızca commit'e giren dosyaların hazırlanmış içeriğini denetler; kod değişip `.memory_bank/` güncellenmediyse uyarır.
|
|
71
|
-
|
|
72
|
-
### Araç dosyaları (güncel resmi biçimler)
|
|
73
|
-
|
|
74
|
-
AGENTS.md · CLAUDE.md · GEMINI.md · `.agents/rules/` (Antigravity) · `.cursor/rules/*.mdc` · `.windsurf/rules/` · `.clinerules/` · `.github/copilot-instructions.md`
|
|
75
|
-
- Klasörde git deposu varsa `.git/hooks/pre-commit` otomatik kurulur (`--no-hook` ile kapatılır).
|
|
76
|
-
- GitHub sürümü de çalışır: `npx -y github:SafakSahinn/vibe-governor init ...`
|
|
77
|
-
|
|
78
|
-
## 🧱 Mimari
|
|
79
|
-
|
|
80
|
-
- `src/lib/schema.ts` — Zod şeması (React Hook Form doğrulaması + CLI preset doğrulaması)
|
|
81
|
-
- `src/lib/rules.ts` — seçili dil × güvenlik anahtarı → aktif kural listesi
|
|
82
|
-
- `src/lib/templates/` — `AI_GUIDELINES.md`, IDE kural dosyaları, Memory Bank, `check_guidelines.py`, kanca/CI/denetim/.gitignore şablonları
|
|
83
|
-
- `src/lib/templateEngine.ts` — `{{PLACEHOLDER}}` motoru ve dosya üretimi
|
|
84
|
-
- `cli/index.ts` → `bin/vibe-governor.cjs` (esbuild ile tek dosya, bağımlılıksız)
|
|
85
|
-
- `src/components/ui/` — shadcn/ui bileşenleri (Button, Switch, Dialog; Radix tabanlı, `components.json` ile `npx shadcn add` uyumlu)
|
|
86
|
-
- Yığın: Next.js 16 (statik export), React 19, Tailwind CSS 3, React Hook Form + Zod 4, Monaco Editor, Framer Motion
|
|
87
|
-
|
|
88
|
-
## 🧪 Test
|
|
89
|
-
|
|
90
|
-
```bash
|
|
91
|
-
npm test # CLI'yı derler; üretilen paketi ve Python denetçisini iyi/kötü örneklerle, ardından arayüzü (Vitest + Testing Library) test eder
|
|
92
|
-
npm run test:ui # yalnızca arayüz testleri
|
|
93
|
-
npm run lint # ESLint (eslint-config-next)
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
`cli/` veya `src/lib/` değiştiğinde `npm run build:cli` ile `bin/vibe-governor.cjs` yeniden üretilip commit'lenmelidir (npx GitHub'dan bu dosyayı çalıştırır).
|
|
97
|
-
|
|
98
|
-
## 💻 Çalıştırma Talimatları
|
|
99
|
-
|
|
100
|
-
Geliştirme sunucusunu başlatmak için:
|
|
101
|
-
|
|
102
|
-
```bash
|
|
103
|
-
npm run dev
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
Ardından tarayıcınızdan `http://localhost:3000` adresine gidin.
|
|
107
|
-
|
|
108
|
-
Üretim derlemesi için:
|
|
109
|
-
|
|
110
|
-
```bash
|
|
111
|
-
npm run build
|
|
112
|
-
npm run start
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
## 📄 Lisans
|
|
116
|
-
|
|
117
|
-
[MIT](LICENSE) © 2026 SafakSahinn
|