@govindchaudhary/vibekit 0.1.2 → 0.1.4
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 +47 -158
- package/dist/cli.js +17 -8
- package/dist/commands/init.js +48 -1
- package/dist/commands/sync.js +25 -13
- package/package.json +1 -1
- package/templates/AGENTS.md.template +18 -0
package/README.md
CHANGED
|
@@ -43,7 +43,12 @@ Vibe coding — letting an AI assistant drive most of the code while you steer
|
|
|
43
43
|
npx @govindchaudhary/vibekit init
|
|
44
44
|
```
|
|
45
45
|
|
|
46
|
-
Answer **
|
|
46
|
+
Answer **two short questions** and Vibekit is ready:
|
|
47
|
+
|
|
48
|
+
1. **"What's this project mostly?"** — Dev / Data Engineering / Both / Skip → picks your principle packs
|
|
49
|
+
2. **"Which AI tool(s) do you use?"** — GitHub Copilot / Claude Code / Windsurf / Cursor (multi-select) → creates *only* the mirror files those tools need
|
|
50
|
+
|
|
51
|
+
That's it. Four context files are created in your current directory:
|
|
47
52
|
|
|
48
53
|
| File | Purpose | Read by AI? |
|
|
49
54
|
|---|---|---|
|
|
@@ -52,7 +57,9 @@ Answer **one question** ("What's this project mostly?") and Vibekit creates four
|
|
|
52
57
|
| `DECISIONS.md` | Architecture decisions not to re-debate | ✅ Yes — automatically |
|
|
53
58
|
| `principles-catalog.md` | Human menu of available packs | ❌ No — docs only |
|
|
54
59
|
|
|
55
|
-
|
|
60
|
+
Plus the tool-specific mirror file(s) you selected (see [Tool integration](#tool-integration-no-clutter) below).
|
|
61
|
+
|
|
62
|
+
Then fill in the `Project Stack` and `Conventions` sections of `AGENTS.md` once. Every AI session from that point forward has full, accurate context.
|
|
56
63
|
|
|
57
64
|
---
|
|
58
65
|
|
|
@@ -179,18 +186,43 @@ See [`principles-catalog.md`](./principles-catalog.md) for the full pack menu an
|
|
|
179
186
|
|
|
180
187
|
---
|
|
181
188
|
|
|
189
|
+
## Tool integration (no clutter)
|
|
190
|
+
|
|
191
|
+
Different AI assistants look for different filenames. `AGENTS.md` is the modern standard, but some tools still need their own filename:
|
|
192
|
+
|
|
193
|
+
| Tool | Reads `AGENTS.md` natively? | Needs mirror file |
|
|
194
|
+
|---|---|---|
|
|
195
|
+
| **Cursor** | ✅ Yes | none |
|
|
196
|
+
| **GitHub Copilot** | ⚠️ Setting-dependent — use mirror to be safe | `.github/copilot-instructions.md` |
|
|
197
|
+
| **Claude Code** | ⚠️ Partial | `CLAUDE.md` |
|
|
198
|
+
| **Windsurf** | ❌ No | `.windsurfrules` |
|
|
199
|
+
|
|
200
|
+
**`vibekit init` only creates the mirror files for tools you actually use** — no orphan files in your repo. The default is GitHub Copilot (most common VS Code setup).
|
|
201
|
+
|
|
202
|
+
**Add a tool later:**
|
|
203
|
+
```bash
|
|
204
|
+
vibekit sync --claude # add Claude Code support
|
|
205
|
+
vibekit sync --windsurf # add Windsurf support
|
|
206
|
+
vibekit sync --copilot --claude # add multiple at once
|
|
207
|
+
vibekit sync # add all three (legacy default)
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
182
212
|
## CLI reference
|
|
183
213
|
|
|
184
214
|
| Command | What it does |
|
|
185
215
|
|---|---|
|
|
186
|
-
| `vibekit init` | Scaffold
|
|
216
|
+
| `vibekit init` | Scaffold the 4 context files + auto-create mirror files for the AI tools you pick. Runs once per project. |
|
|
187
217
|
| `vibekit log "<message>"` | Append a dated entry to `CHANGELOG.md` (newest on top, ISO date). |
|
|
188
218
|
| `vibekit prune` | Remove `[DONE]` changelog entries, keeping the 5 most recent resolved ones. |
|
|
189
219
|
| `vibekit packs add <name>` | Insert a pack block into `AGENTS.md` and update the active packs line. |
|
|
190
220
|
| `vibekit packs remove <name>` | Remove a pack block from `AGENTS.md`. |
|
|
191
|
-
| `vibekit sync` | Mirror `AGENTS.md`
|
|
221
|
+
| `vibekit sync [--copilot] [--claude] [--windsurf]` | Mirror `AGENTS.md` to the chosen tool files. With no flags, mirrors to all three. |
|
|
192
222
|
|
|
193
|
-
> **
|
|
223
|
+
> **Install vs init — they're different.**
|
|
224
|
+
> `npm install -g @govindchaudhary/vibekit` installs the CLI on your machine (one time per computer).
|
|
225
|
+
> `vibekit init` sets up the context files in a project (one time per project). You need both.
|
|
194
226
|
|
|
195
227
|
---
|
|
196
228
|
|
|
@@ -227,8 +259,12 @@ Drops the 4 files into any existing repo without touching your code.
|
|
|
227
259
|
## Recommended workflow
|
|
228
260
|
|
|
229
261
|
```bash
|
|
230
|
-
#
|
|
231
|
-
|
|
262
|
+
# One time per machine
|
|
263
|
+
npm install -g @govindchaudhary/vibekit
|
|
264
|
+
|
|
265
|
+
# Day 1 of a new project — initialize (auto-creates mirror files for your tools)
|
|
266
|
+
cd my-project
|
|
267
|
+
vibekit init
|
|
232
268
|
# → fill in AGENTS.md: Project Stack + Conventions sections
|
|
233
269
|
|
|
234
270
|
# Add security if your project has auth/APIs/user data
|
|
@@ -238,14 +274,12 @@ vibekit packs add security
|
|
|
238
274
|
vibekit log "Added rate limiting to /api/auth — middleware/rateLimit.ts"
|
|
239
275
|
vibekit log "Switched from JWT to httpOnly session cookies — security decision"
|
|
240
276
|
|
|
241
|
-
# When a change is complete, mark it
|
|
242
|
-
#
|
|
243
|
-
|
|
244
|
-
# Periodically keep the changelog lean
|
|
277
|
+
# When a change is complete, mark it [DONE] in CHANGELOG.md by hand,
|
|
278
|
+
# then keep the file lean:
|
|
245
279
|
vibekit prune
|
|
246
280
|
|
|
247
|
-
#
|
|
248
|
-
vibekit sync
|
|
281
|
+
# Add a new AI tool later
|
|
282
|
+
vibekit sync --claude
|
|
249
283
|
```
|
|
250
284
|
|
|
251
285
|
---
|
|
@@ -267,148 +301,3 @@ Please keep pack principles **specific, verifiable, and actionable** — not vag
|
|
|
267
301
|
|
|
268
302
|
[MIT](./LICENSE) © 2026 Vibekit contributors
|
|
269
303
|
|
|
270
|
-
|
|
271
|
-
**Vibe code without losing the plot.** Vibekit keeps fast, AI-driven "vibe
|
|
272
|
-
coding" accurate by giving your assistant lean, *verifiable* context — a
|
|
273
|
-
lightweight alternative to heavyweight Spec-Driven Development (SDD). Instead of
|
|
274
|
-
generating a spec/plan/tasks document set for every feature, Vibekit maintains
|
|
275
|
-
**3 persistent markdown files** that any AI coding assistant — Copilot, Claude,
|
|
276
|
-
Cursor, Windsurf — reads automatically. No per-feature ceremony, no token bloat,
|
|
277
|
-
and a working setup in **under 2 minutes**. It's tool-agnostic by design: the
|
|
278
|
-
canonical file is `AGENTS.md`, and everything else mirrors from it.
|
|
279
|
-
|
|
280
|
-
> **Motto:** *vibe fast, stay grounded.* The `AGENTS.md` Verify-before-trust
|
|
281
|
-
> rule means the AI treats notes as hints and the current code as ground truth.
|
|
282
|
-
|
|
283
|
-
---
|
|
284
|
-
|
|
285
|
-
## Quickstart
|
|
286
|
-
|
|
287
|
-
```bash
|
|
288
|
-
npx @govindchaudhary/vibekit init
|
|
289
|
-
```
|
|
290
|
-
|
|
291
|
-
Answer one question ("What's this project mostly?") and you're done — under two
|
|
292
|
-
minutes to a working setup. Vibekit creates four files in your current
|
|
293
|
-
directory:
|
|
294
|
-
|
|
295
|
-
| File | Purpose |
|
|
296
|
-
| --- | --- |
|
|
297
|
-
| `AGENTS.md` | Stable context + coding principles (the file AI actually reads) |
|
|
298
|
-
| `CHANGELOG.md` | Rolling log of recent changes |
|
|
299
|
-
| `DECISIONS.md` | Architecture decisions worth not re-litigating |
|
|
300
|
-
| `principles-catalog.md` | Human reference menu — **never loaded by AI** |
|
|
301
|
-
|
|
302
|
-
---
|
|
303
|
-
|
|
304
|
-
## Two ways to adopt it
|
|
305
|
-
|
|
306
|
-
**(a) Use this template (zero install).** Click **"Use this template"** at the
|
|
307
|
-
top of this GitHub repo to clone the structure into a fresh repository. Good for
|
|
308
|
-
brand-new projects.
|
|
309
|
-
|
|
310
|
-
**(b) npx CLI (add to an existing repo).** Run `npx @govindchaudhary/vibekit init` inside any
|
|
311
|
-
existing project to drop the files in without touching the rest of your code.
|
|
312
|
-
|
|
313
|
-
---
|
|
314
|
-
|
|
315
|
-
## Vibekit vs. typical SDD tools
|
|
316
|
-
|
|
317
|
-
| | Vibekit | Typical SDD tool (Spec-Kit, BMAD) |
|
|
318
|
-
| --- | --- | --- |
|
|
319
|
-
| Setup time | < 2 minutes | 15–60 minutes |
|
|
320
|
-
| Files per feature | 0 (3 persistent files total) | 3+ (spec, plan, tasks) per feature |
|
|
321
|
-
| Token overhead | Low — one stable context file | High — large generated specs reloaded |
|
|
322
|
-
| Best when | Solo devs / small teams wanting fast AI context | Large teams needing formal, auditable specs for complex features |
|
|
323
|
-
|
|
324
|
-
Use a full SDD framework when you genuinely need formal, reviewable
|
|
325
|
-
specifications per feature. Reach for Vibekit when you just want your AI
|
|
326
|
-
assistant to have accurate, lightweight context without the overhead.
|
|
327
|
-
|
|
328
|
-
---
|
|
329
|
-
|
|
330
|
-
## The 3 files
|
|
331
|
-
|
|
332
|
-
### `AGENTS.md` — stable context
|
|
333
|
-
The one file AI tools read by default. It holds your active principle packs, a
|
|
334
|
-
**Verify-before-trust** safeguard, your project stack, and your conventions.
|
|
335
|
-
Keep it accurate; it's the source of durable context.
|
|
336
|
-
|
|
337
|
-
### `CHANGELOG.md` — rolling log
|
|
338
|
-
Newest entry first. Each entry has an exact ISO date, what changed and why, and
|
|
339
|
-
the files/functions touched. Mark resolved entries `[DONE]`; `vibekit prune`
|
|
340
|
-
trims old resolved entries so the file stays small (~10 active entries max).
|
|
341
|
-
|
|
342
|
-
### `DECISIONS.md` — architecture decisions
|
|
343
|
-
Only record choices a future session would otherwise guess wrong or re-debate —
|
|
344
|
-
architecture and library choices, not routine bug fixes.
|
|
345
|
-
|
|
346
|
-
> **Verify-before-trust:** CHANGELOG and DECISIONS are *hints, not ground truth*.
|
|
347
|
-
> Before relying on an entry, confirm the referenced code still matches. If it
|
|
348
|
-
> doesn't, the current code wins.
|
|
349
|
-
|
|
350
|
-
---
|
|
351
|
-
|
|
352
|
-
## How packs work
|
|
353
|
-
|
|
354
|
-
A **pack** is a small, reusable block of coding principles wrapped in markers:
|
|
355
|
-
|
|
356
|
-
```markdown
|
|
357
|
-
<!-- pack:dev:start -->
|
|
358
|
-
### SOLID Principles
|
|
359
|
-
- ...
|
|
360
|
-
<!-- pack:dev:end -->
|
|
361
|
-
```
|
|
362
|
-
|
|
363
|
-
Built-in packs:
|
|
364
|
-
|
|
365
|
-
- **`core`** — always included (SRP, DRY, KISS, fail fast)
|
|
366
|
-
- **`dev`** — SOLID principles for application development
|
|
367
|
-
- **`data-eng`** — idempotency, schema validation, ETL separation, immutable raw data, reproducibility
|
|
368
|
-
|
|
369
|
-
Manage packs at any time:
|
|
370
|
-
|
|
371
|
-
```bash
|
|
372
|
-
vibekit packs add data-eng
|
|
373
|
-
vibekit packs remove dev
|
|
374
|
-
```
|
|
375
|
-
|
|
376
|
-
### Add a custom pack
|
|
377
|
-
|
|
378
|
-
1. Create `packs/<name>.md`, e.g. `packs/security.md`.
|
|
379
|
-
2. Wrap the content in markers whose name matches the file:
|
|
380
|
-
|
|
381
|
-
```markdown
|
|
382
|
-
<!-- pack:security:start -->
|
|
383
|
-
### Security Principles
|
|
384
|
-
- Least privilege: grant the minimum access required
|
|
385
|
-
- Never trust client input: validate at every boundary
|
|
386
|
-
<!-- pack:security:end -->
|
|
387
|
-
```
|
|
388
|
-
|
|
389
|
-
3. Activate it: `vibekit packs add security`.
|
|
390
|
-
|
|
391
|
-
See [`principles-catalog.md`](./principles-catalog.md) for the full menu.
|
|
392
|
-
|
|
393
|
-
---
|
|
394
|
-
|
|
395
|
-
## Commands
|
|
396
|
-
|
|
397
|
-
| Command | What it does |
|
|
398
|
-
| --- | --- |
|
|
399
|
-
| `vibekit init` | Scaffold the 4 files (asks one question). |
|
|
400
|
-
| `vibekit log "<message>"` | Append a dated changelog entry (newest on top). |
|
|
401
|
-
| `vibekit prune` | Remove `[DONE]` entries except the 5 most recent. |
|
|
402
|
-
| `vibekit packs add <name>` | Insert a pack block into `AGENTS.md`. |
|
|
403
|
-
| `vibekit packs remove <name>` | Remove a pack block from `AGENTS.md`. |
|
|
404
|
-
| `vibekit sync` | Mirror `AGENTS.md` to `CLAUDE.md`, `.windsurfrules`, `.github/copilot-instructions.md`. |
|
|
405
|
-
|
|
406
|
-
> **About `sync`:** most modern tools (Copilot, Cursor, Windsurf) now read
|
|
407
|
-
> `AGENTS.md` natively. `sync` is a fallback for tools/older setups that don't
|
|
408
|
-
> yet, or for teams who want the explicit native filename present.
|
|
409
|
-
|
|
410
|
-
---
|
|
411
|
-
|
|
412
|
-
## License
|
|
413
|
-
|
|
414
|
-
[MIT](./LICENSE)
|
package/dist/cli.js
CHANGED
|
@@ -13,7 +13,7 @@ program
|
|
|
13
13
|
.description('Lean, AI-tool-agnostic project context: 3 persistent markdown files ' +
|
|
14
14
|
'(AGENTS.md, CHANGELOG.md, DECISIONS.md) that keep vibe coding accurate, ' +
|
|
15
15
|
'instead of heavyweight SDD specs.')
|
|
16
|
-
.version('0.1.
|
|
16
|
+
.version('0.1.4');
|
|
17
17
|
program
|
|
18
18
|
.command('init')
|
|
19
19
|
.description('Scaffold AGENTS.md, CHANGELOG.md, DECISIONS.md, and principles-catalog.md in the current directory.')
|
|
@@ -52,13 +52,22 @@ packs
|
|
|
52
52
|
});
|
|
53
53
|
program
|
|
54
54
|
.command('sync')
|
|
55
|
-
.description('Mirror AGENTS.md to
|
|
56
|
-
'.
|
|
57
|
-
'Windsurf)
|
|
58
|
-
'
|
|
59
|
-
'
|
|
60
|
-
.
|
|
61
|
-
(
|
|
55
|
+
.description('Mirror AGENTS.md to tool-specific files. Use flags to pick which tools ' +
|
|
56
|
+
'(e.g. --copilot --claude). With no flags, syncs to all three (Copilot, ' +
|
|
57
|
+
'Claude, Windsurf). `vibekit init` runs sync automatically for the ' +
|
|
58
|
+
'tools you picked, so this is mainly for adding a new tool later.')
|
|
59
|
+
.option('--copilot', 'mirror to .github/copilot-instructions.md')
|
|
60
|
+
.option('--claude', 'mirror to CLAUDE.md')
|
|
61
|
+
.option('--windsurf', 'mirror to .windsurfrules')
|
|
62
|
+
.action((opts) => {
|
|
63
|
+
const picked = [];
|
|
64
|
+
if (opts.copilot)
|
|
65
|
+
picked.push('copilot');
|
|
66
|
+
if (opts.claude)
|
|
67
|
+
picked.push('claude');
|
|
68
|
+
if (opts.windsurf)
|
|
69
|
+
picked.push('windsurf');
|
|
70
|
+
(0, sync_1.syncCommand)(picked.length > 0 ? picked : sync_1.ALL_TOOLS);
|
|
62
71
|
});
|
|
63
72
|
async function main() {
|
|
64
73
|
try {
|
package/dist/commands/init.js
CHANGED
|
@@ -41,6 +41,7 @@ const path = __importStar(require("path"));
|
|
|
41
41
|
const prompts_1 = __importDefault(require("prompts"));
|
|
42
42
|
const fileio_1 = require("../utils/fileio");
|
|
43
43
|
const markers_1 = require("../utils/markers");
|
|
44
|
+
const sync_1 = require("./sync");
|
|
44
45
|
const KIND_TO_PACKS = {
|
|
45
46
|
dev: ['core', 'dev'],
|
|
46
47
|
data: ['core', 'data-eng'],
|
|
@@ -77,6 +78,41 @@ async function initCommand() {
|
|
|
77
78
|
// Handle abort (Ctrl+C) gracefully.
|
|
78
79
|
const selected = kind ?? 'skip';
|
|
79
80
|
const packs = KIND_TO_PACKS[selected];
|
|
81
|
+
// Ask which AI tool(s) the user runs. Only those will get mirror files.
|
|
82
|
+
// GitHub Copilot is the default selection because it's the most common
|
|
83
|
+
// VS Code setup and Copilot doesn't read AGENTS.md natively yet.
|
|
84
|
+
const { tools } = await (0, prompts_1.default)({
|
|
85
|
+
type: 'multiselect',
|
|
86
|
+
name: 'tools',
|
|
87
|
+
message: 'Which AI tool(s) do you use? (space to toggle, enter to confirm)',
|
|
88
|
+
instructions: false,
|
|
89
|
+
choices: [
|
|
90
|
+
{
|
|
91
|
+
title: 'GitHub Copilot',
|
|
92
|
+
value: 'copilot',
|
|
93
|
+
selected: true,
|
|
94
|
+
description: 'creates .github/copilot-instructions.md',
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
title: 'Claude Code',
|
|
98
|
+
value: 'claude',
|
|
99
|
+
description: 'creates CLAUDE.md',
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
title: 'Windsurf',
|
|
103
|
+
value: 'windsurf',
|
|
104
|
+
description: 'creates .windsurfrules',
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
title: 'Cursor / other (reads AGENTS.md natively)',
|
|
108
|
+
value: 'none',
|
|
109
|
+
description: 'no extra file needed',
|
|
110
|
+
},
|
|
111
|
+
],
|
|
112
|
+
});
|
|
113
|
+
const selectedTools = Array.isArray(tools)
|
|
114
|
+
? tools.filter((t) => sync_1.ALL_TOOLS.includes(t))
|
|
115
|
+
: [];
|
|
80
116
|
// Build AGENTS.md from the template.
|
|
81
117
|
let agents = (0, fileio_1.readFile)((0, fileio_1.assetPath)('templates', 'AGENTS.md.template'));
|
|
82
118
|
if (selected === 'skip') {
|
|
@@ -104,9 +140,20 @@ async function initCommand() {
|
|
|
104
140
|
console.log(' - CHANGELOG.md (rolling log of recent changes)');
|
|
105
141
|
console.log(' - DECISIONS.md (architecture decisions worth keeping)');
|
|
106
142
|
console.log(' - principles-catalog.md (reference only — never loaded by AI)');
|
|
143
|
+
// Auto-sync to the tool files the user picked so they don't have to
|
|
144
|
+
// remember to run `vibekit sync` separately.
|
|
145
|
+
if (selectedTools.length > 0) {
|
|
146
|
+
console.log('');
|
|
147
|
+
(0, sync_1.syncCommand)(selectedTools);
|
|
148
|
+
}
|
|
107
149
|
console.log('');
|
|
108
150
|
console.log("What's next:");
|
|
109
151
|
console.log(' 1. Fill in the Project Stack & Conventions sections of AGENTS.md.');
|
|
110
152
|
console.log(' 2. Record changes with: vibekit log "what you changed"');
|
|
111
|
-
|
|
153
|
+
if (selectedTools.length === 0) {
|
|
154
|
+
console.log(' 3. (Optional) mirror AGENTS.md for older tools: vibekit sync');
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
console.log(' 3. Add more tools later with: vibekit sync --claude (or --windsurf, --copilot)');
|
|
158
|
+
}
|
|
112
159
|
}
|
package/dist/commands/sync.js
CHANGED
|
@@ -33,31 +33,43 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.ALL_TOOLS = void 0;
|
|
36
37
|
exports.syncCommand = syncCommand;
|
|
37
38
|
const path = __importStar(require("path"));
|
|
38
39
|
const fileio_1 = require("../utils/fileio");
|
|
40
|
+
exports.ALL_TOOLS = ['copilot', 'claude', 'windsurf'];
|
|
41
|
+
const TOOL_FILES = {
|
|
42
|
+
copilot: '.github/copilot-instructions.md',
|
|
43
|
+
claude: 'CLAUDE.md',
|
|
44
|
+
windsurf: '.windsurfrules',
|
|
45
|
+
};
|
|
46
|
+
const TOOL_LABELS = {
|
|
47
|
+
copilot: 'GitHub Copilot',
|
|
48
|
+
claude: 'Claude Code',
|
|
49
|
+
windsurf: 'Windsurf',
|
|
50
|
+
};
|
|
39
51
|
/**
|
|
40
52
|
* Mirror AGENTS.md to the filenames used by tools that don't yet read
|
|
41
|
-
* AGENTS.md natively.
|
|
53
|
+
* AGENTS.md natively. If no tools are specified, syncs to all three
|
|
54
|
+
* (legacy behavior, preserved for backwards compatibility).
|
|
42
55
|
*/
|
|
43
|
-
function syncCommand() {
|
|
56
|
+
function syncCommand(tools = exports.ALL_TOOLS) {
|
|
44
57
|
const cwd = process.cwd();
|
|
45
58
|
const agentsPath = path.join(cwd, 'AGENTS.md');
|
|
46
59
|
if (!(0, fileio_1.exists)(agentsPath)) {
|
|
47
60
|
throw new Error('AGENTS.md not found. Run `vibekit init` first.');
|
|
48
61
|
}
|
|
62
|
+
if (tools.length === 0) {
|
|
63
|
+
console.log('No tools selected — nothing to sync.');
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
49
66
|
const content = (0, fileio_1.readFile)(agentsPath);
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
path.join(cwd,
|
|
54
|
-
|
|
55
|
-
(0, fileio_1.ensureDir)(path.join(cwd, '.github'));
|
|
56
|
-
for (const target of targets) {
|
|
67
|
+
console.log('Synced AGENTS.md to:');
|
|
68
|
+
for (const tool of tools) {
|
|
69
|
+
const relPath = TOOL_FILES[tool];
|
|
70
|
+
const target = path.join(cwd, relPath);
|
|
71
|
+
(0, fileio_1.ensureDir)(path.dirname(target));
|
|
57
72
|
(0, fileio_1.writeFile)(target, content);
|
|
73
|
+
console.log(` - ${relPath} (${TOOL_LABELS[tool]})`);
|
|
58
74
|
}
|
|
59
|
-
console.log('Synced AGENTS.md to:');
|
|
60
|
-
console.log(' - CLAUDE.md');
|
|
61
|
-
console.log(' - .windsurfrules');
|
|
62
|
-
console.log(' - .github/copilot-instructions.md');
|
|
63
75
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@govindchaudhary/vibekit",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "Make vibe coding accurate: 3 persistent markdown files (AGENTS.md, CHANGELOG.md, DECISIONS.md) that give any AI coding assistant lean, verifiable context — a lightweight alternative to heavyweight Spec-Driven Development.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"vibe-coding",
|
|
@@ -11,6 +11,24 @@ Treat CHANGELOG.md and DECISIONS.md as hints, not ground truth. Before relying
|
|
|
11
11
|
on an entry, confirm the referenced file/function still matches what's described.
|
|
12
12
|
If it doesn't, the current code is the source of truth — not the note.
|
|
13
13
|
|
|
14
|
+
### For AI assistants — automation rules
|
|
15
|
+
When you make changes in this repo, you are responsible for keeping these context
|
|
16
|
+
files accurate. Do not wait to be asked. Run these terminal commands yourself:
|
|
17
|
+
|
|
18
|
+
- After completing any meaningful code change, run:
|
|
19
|
+
`vibekit log "<one-line summary of what changed and why>"`
|
|
20
|
+
Be specific. Include the file or function touched. Skip trivial edits (typos, formatting).
|
|
21
|
+
- When you finish a feature or fix that was previously logged, edit that CHANGELOG.md
|
|
22
|
+
line to insert ` [DONE]` right after the date — e.g. `### 2026-06-28 [DONE] — ...`
|
|
23
|
+
- If CHANGELOG.md has more than 8 active (non-[DONE]) entries, run: `vibekit prune`
|
|
24
|
+
- If you add code that touches auth, encryption, secrets, user input, or DB queries
|
|
25
|
+
and the `security` pack is not already active, run: `vibekit packs add security`
|
|
26
|
+
- If you make a non-obvious architectural choice (library swap, pattern change,
|
|
27
|
+
schema decision), append a short entry to DECISIONS.md with the date, the
|
|
28
|
+
decision, and one sentence of rationale.
|
|
29
|
+
- Never invent file paths, function names, or API shapes. Read the file first
|
|
30
|
+
to verify before referencing it in a log or decision entry.
|
|
31
|
+
|
|
14
32
|
{{PACK_BLOCKS_INSERTED_HERE}}
|
|
15
33
|
|
|
16
34
|
### Project Stack
|