prelude-context 1.6.0 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +63 -4
- package/dist/bin/prelude.js +2 -0
- package/dist/bin/prelude.js.map +1 -1
- package/dist/src/commands/export.d.ts.map +1 -1
- package/dist/src/commands/export.js +5 -3
- package/dist/src/commands/export.js.map +1 -1
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/init.js +151 -0
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/update.js +70 -8
- package/dist/src/commands/update.js.map +1 -1
- package/dist/src/commands/validate.d.ts +3 -0
- package/dist/src/commands/validate.d.ts.map +1 -0
- package/dist/src/commands/validate.js +203 -0
- package/dist/src/commands/validate.js.map +1 -0
- package/dist/src/constants.d.ts +1 -1
- package/dist/src/constants.d.ts.map +1 -1
- package/dist/src/constants.js +4 -1
- package/dist/src/constants.js.map +1 -1
- package/dist/src/core/claude-md-parser.d.ts +33 -0
- package/dist/src/core/claude-md-parser.d.ts.map +1 -0
- package/dist/src/core/claude-md-parser.js +410 -0
- package/dist/src/core/claude-md-parser.js.map +1 -0
- package/dist/src/core/exporter.d.ts +2 -1
- package/dist/src/core/exporter.d.ts.map +1 -1
- package/dist/src/core/exporter.js +159 -1
- package/dist/src/core/exporter.js.map +1 -1
- package/dist/src/core/infer.d.ts.map +1 -1
- package/dist/src/core/infer.js +403 -21
- package/dist/src/core/infer.js.map +1 -1
- package/dist/src/core/merger.d.ts.map +1 -1
- package/dist/src/core/merger.js +76 -9
- package/dist/src/core/merger.js.map +1 -1
- package/dist/src/core/source-scanner.d.ts.map +1 -1
- package/dist/src/core/source-scanner.js +58 -1
- package/dist/src/core/source-scanner.js.map +1 -1
- package/dist/src/utils/fs.d.ts.map +1 -1
- package/dist/src/utils/fs.js +2 -1
- package/dist/src/utils/fs.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -111,12 +111,44 @@ Analyzes your codebase and creates a `.context/` directory with:
|
|
|
111
111
|
|
|
112
112
|
All files follow the [Prelude specification](https://github.com/adjective-rob/prelude/blob/main/spec.md) and include JSON Schema validation.
|
|
113
113
|
|
|
114
|
+
**Bootstrap from an existing CLAUDE.md:**
|
|
115
|
+
```bash
|
|
116
|
+
prelude init --from-claude-md # Uses ./CLAUDE.md
|
|
117
|
+
prelude init --from-claude-md docs/AI.md # Custom path
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Prelude parses your CLAUDE.md to extract project info, stack details, architecture, and constraints — then merges that with inference results. Your manual context gets preserved and structured.
|
|
121
|
+
|
|
114
122
|
### `prelude export`
|
|
115
123
|
Generates a markdown document optimized for LLMs:
|
|
116
124
|
- Combines all context into a single, focused document
|
|
117
125
|
- Automatically copied to clipboard
|
|
118
126
|
- Perfect for starting new AI conversations
|
|
119
127
|
|
|
128
|
+
**Export formats:**
|
|
129
|
+
```bash
|
|
130
|
+
prelude export # Default markdown export
|
|
131
|
+
prelude export --format claude-md # Generate a CLAUDE.md file
|
|
132
|
+
prelude export --format cursorrules # Generate a .cursorrules file
|
|
133
|
+
prelude export --format json # Structured JSON export
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
The `claude-md` format generates a clean CLAUDE.md from your `.context/` data — Prelude becomes the source of truth that outputs to whatever format your AI tool expects.
|
|
137
|
+
|
|
138
|
+
### `prelude validate`
|
|
139
|
+
Validates all `.context/` files against their JSON schemas:
|
|
140
|
+
```bash
|
|
141
|
+
prelude validate
|
|
142
|
+
# project.json — valid
|
|
143
|
+
# stack.json — valid
|
|
144
|
+
# architecture.json — valid
|
|
145
|
+
# constraints.json — valid
|
|
146
|
+
# decisions.json — valid
|
|
147
|
+
# All 5 file(s) passed validation.
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Useful for CI pipelines to catch schema drift after manual edits. Exits with code 1 if any file fails.
|
|
151
|
+
|
|
120
152
|
### `prelude update`
|
|
121
153
|
Re-analyzes your codebase and intelligently updates context:
|
|
122
154
|
```bash
|
|
@@ -247,6 +279,30 @@ prelude mcp-config --root /path/to/project # Specify project root
|
|
|
247
279
|
|
|
248
280
|
---
|
|
249
281
|
|
|
282
|
+
## GitHub Action
|
|
283
|
+
|
|
284
|
+
Prelude ships with a GitHub Action to automatically keep `.context/` files up to date:
|
|
285
|
+
|
|
286
|
+
```yaml
|
|
287
|
+
# .github/workflows/prelude.yml
|
|
288
|
+
name: Update Context
|
|
289
|
+
on:
|
|
290
|
+
push:
|
|
291
|
+
branches: [main]
|
|
292
|
+
paths: [package.json, pyproject.toml, Cargo.toml, go.mod, "src/**"]
|
|
293
|
+
|
|
294
|
+
jobs:
|
|
295
|
+
update:
|
|
296
|
+
runs-on: ubuntu-latest
|
|
297
|
+
steps:
|
|
298
|
+
- uses: actions/checkout@v4
|
|
299
|
+
- uses: adjective-rob/prelude@main
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
The action runs `prelude update` and opens a PR if `.context/` files changed. See [action.yml](./action.yml) for configuration options.
|
|
303
|
+
|
|
304
|
+
---
|
|
305
|
+
|
|
250
306
|
## Use Cases
|
|
251
307
|
|
|
252
308
|
### 🎯 Starting New Conversations
|
|
@@ -429,7 +485,7 @@ Yes! The export format is optimized for Claude, ChatGPT, Gemini, and any text-ba
|
|
|
429
485
|
Prelude's inference is smart but not perfect. Just edit the `.context/` files directly - they're human-readable JSON.
|
|
430
486
|
|
|
431
487
|
### Does this work with non-JavaScript projects?
|
|
432
|
-
Yes!
|
|
488
|
+
Yes! Prelude has full inference support for **JavaScript/TypeScript**, **Python**, **Rust**, and **Go** — including dependency parsing, framework detection, testing tools, and conventions. The format itself is language-agnostic.
|
|
433
489
|
|
|
434
490
|
---
|
|
435
491
|
|
|
@@ -438,11 +494,14 @@ Yes! While the CLI is built with Node.js, the Prelude format works with any lang
|
|
|
438
494
|
- [x] Smart context updates with manual edit preservation
|
|
439
495
|
- [x] Scoped context query engine (`prelude query`)
|
|
440
496
|
- [x] MCP server for AI tool integration (`prelude serve`)
|
|
441
|
-
- [
|
|
497
|
+
- [x] Full inference for Python (pyproject.toml, requirements.txt)
|
|
498
|
+
- [x] Full inference for Rust (Cargo.toml) and Go (go.mod)
|
|
499
|
+
- [x] CLAUDE.md / .cursorrules export (`prelude export --format claude-md`)
|
|
500
|
+
- [x] Bootstrap from CLAUDE.md (`prelude init --from-claude-md`)
|
|
501
|
+
- [x] Schema validation command (`prelude validate`)
|
|
502
|
+
- [x] GitHub Action for automated updates
|
|
442
503
|
- [ ] VS Code extension for inline context
|
|
443
|
-
- [ ] GitHub Action for automated updates
|
|
444
504
|
- [ ] Plugin system for custom inference
|
|
445
|
-
- [ ] CLI validation command
|
|
446
505
|
- [ ] Context diff tool
|
|
447
506
|
- [ ] Temporal brain layer (learned heuristics from AI tool usage)
|
|
448
507
|
|
package/dist/bin/prelude.js
CHANGED
|
@@ -28,6 +28,7 @@ import { registerQueryCommand } from '../src/commands/query.js';
|
|
|
28
28
|
import { registerCompactCommand } from '../src/commands/compact.js';
|
|
29
29
|
import { registerServeCommand } from '../src/commands/serve.js';
|
|
30
30
|
import { registerMcpConfigCommand } from '../src/commands/mcp-config.js';
|
|
31
|
+
import { registerValidateCommand } from '../src/commands/validate.js';
|
|
31
32
|
import { update } from '../src/commands/update.js';
|
|
32
33
|
// Register all commands
|
|
33
34
|
registerInitCommand(cli);
|
|
@@ -39,6 +40,7 @@ registerQueryCommand(cli);
|
|
|
39
40
|
registerCompactCommand(cli);
|
|
40
41
|
registerServeCommand(cli);
|
|
41
42
|
registerMcpConfigCommand(cli);
|
|
43
|
+
registerValidateCommand(cli);
|
|
42
44
|
// Register update command
|
|
43
45
|
cli
|
|
44
46
|
.command('update', 'Update context by re-analyzing the codebase')
|
package/dist/bin/prelude.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prelude.js","sourceRoot":"","sources":["../../bin/prelude.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,0DAA0D;AAC1D,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,+DAA+D;AAC/D,IAAI,WAAgB,CAAC;AACrB,IAAI,CAAC;IACH,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AACzF,CAAC;AAAC,MAAM,CAAC;IACP,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;AAE3B,GAAG;KACA,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;KAC5B,IAAI,EAAE,CAAC;AAEV,kBAAkB;AAClB,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAEnD,wBAAwB;AACxB,mBAAmB,CAAC,GAAG,CAAC,CAAC;AACzB,qBAAqB,CAAC,GAAG,CAAC,CAAC;AAC3B,oBAAoB,CAAC,GAAG,CAAC,CAAC;AAC1B,uBAAuB,CAAC,GAAG,CAAC,CAAC;AAC7B,oBAAoB,CAAC,GAAG,CAAC,CAAC;AAC1B,oBAAoB,CAAC,GAAG,CAAC,CAAC;AAC1B,sBAAsB,CAAC,GAAG,CAAC,CAAC;AAC5B,oBAAoB,CAAC,GAAG,CAAC,CAAC;AAC1B,wBAAwB,CAAC,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"prelude.js","sourceRoot":"","sources":["../../bin/prelude.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,0DAA0D;AAC1D,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,+DAA+D;AAC/D,IAAI,WAAgB,CAAC;AACrB,IAAI,CAAC;IACH,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AACzF,CAAC;AAAC,MAAM,CAAC;IACP,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;AAE3B,GAAG;KACA,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC;KAC5B,IAAI,EAAE,CAAC;AAEV,kBAAkB;AAClB,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AAEnD,wBAAwB;AACxB,mBAAmB,CAAC,GAAG,CAAC,CAAC;AACzB,qBAAqB,CAAC,GAAG,CAAC,CAAC;AAC3B,oBAAoB,CAAC,GAAG,CAAC,CAAC;AAC1B,uBAAuB,CAAC,GAAG,CAAC,CAAC;AAC7B,oBAAoB,CAAC,GAAG,CAAC,CAAC;AAC1B,oBAAoB,CAAC,GAAG,CAAC,CAAC;AAC1B,sBAAsB,CAAC,GAAG,CAAC,CAAC;AAC5B,oBAAoB,CAAC,GAAG,CAAC,CAAC;AAC1B,wBAAwB,CAAC,GAAG,CAAC,CAAC;AAC9B,uBAAuB,CAAC,GAAG,CAAC,CAAC;AAE7B,0BAA0B;AAC1B,GAAG;KACA,OAAO,CAAC,QAAQ,EAAE,6CAA6C,CAAC;KAChE,MAAM,CAAC,SAAS,EAAE,+BAA+B,CAAC;KAClD,MAAM,CAAC,WAAW,EAAE,yCAAyC,CAAC;KAC9D,MAAM,CAAC,eAAe,EAAE,wBAAwB,CAAC;KACjD,MAAM,CAAC,UAAU,EAAE,gBAAgB,CAAC;KACpC,MAAM,CAAC,MAAM,CAAC,CAAC;AAElB,gBAAgB;AAChB,GAAG,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../src/commands/export.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AA0E/B,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,GAAG,
|
|
1
|
+
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../src/commands/export.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AA0E/B,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,GAAG,QAkF7C"}
|
|
@@ -72,7 +72,7 @@ async function copyToClipboard(text) {
|
|
|
72
72
|
export function registerExportCommand(cli) {
|
|
73
73
|
cli
|
|
74
74
|
.command('export [dir]', 'Generate LLM-optimized export')
|
|
75
|
-
.option('--format <format>', 'Output format
|
|
75
|
+
.option('--format <format>', 'Output format: md, json, claude-md, cursorrules', { default: 'md' })
|
|
76
76
|
.option('--no-copy', 'Skip copying to clipboard')
|
|
77
77
|
.option('--print', 'Print to stdout after export')
|
|
78
78
|
.action(async (dir = process.cwd(), options) => {
|
|
@@ -87,8 +87,10 @@ export function registerExportCommand(cli) {
|
|
|
87
87
|
process.exit(1);
|
|
88
88
|
}
|
|
89
89
|
logger.export('Exporting context...');
|
|
90
|
-
const
|
|
91
|
-
const
|
|
90
|
+
const validFormats = ['md', 'json', 'claude-md', 'cursorrules'];
|
|
91
|
+
const format = validFormats.includes(options.format) ? options.format : 'md';
|
|
92
|
+
const formatLabel = format === 'claude-md' ? 'CLAUDE.md' : format === 'cursorrules' ? '.cursorrules' : format.toUpperCase();
|
|
93
|
+
const spin = spinner(`Generating ${formatLabel} export...`);
|
|
92
94
|
try {
|
|
93
95
|
const exportPath = await saveExport(rootDir, format);
|
|
94
96
|
spin.stop();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../../src/commands/export.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../../src/commands/export.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAe/B,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,GAAG,QA6H3C"}
|
|
@@ -3,10 +3,12 @@ import { ensureDir, writeJSON, writeMarkdown, fileExists } from '../utils/fs.js'
|
|
|
3
3
|
import { logger, spinner } from '../utils/log.js';
|
|
4
4
|
import { CONTEXT_DIR, CONTEXT_FILES } from '../constants.js';
|
|
5
5
|
import { inferProjectMetadata, inferStack, inferArchitecture, inferConstraints } from '../core/infer.js';
|
|
6
|
+
import { parseClaudeMd } from '../core/claude-md-parser.js';
|
|
6
7
|
export function registerInitCommand(cli) {
|
|
7
8
|
cli
|
|
8
9
|
.command('init [dir]', 'Initialize .context/ directory with inferred metadata')
|
|
9
10
|
.option('--force', 'Overwrite existing .context/ directory')
|
|
11
|
+
.option('--from-claude-md [path]', 'Bootstrap from a CLAUDE.md file')
|
|
10
12
|
.action(async (dir = process.cwd(), options) => {
|
|
11
13
|
const rootDir = dir;
|
|
12
14
|
// If PRELUDE_ROOT is set, use it as base for context storage.
|
|
@@ -27,10 +29,34 @@ export function registerInitCommand(cli) {
|
|
|
27
29
|
const spin = spinner('Creating .context/ directory...');
|
|
28
30
|
await ensureDir(contextDir);
|
|
29
31
|
spin.stop('✓ Created .context/ directory');
|
|
32
|
+
// Parse CLAUDE.md if requested
|
|
33
|
+
let claudeData;
|
|
34
|
+
if (options.fromClaudeMd !== undefined) {
|
|
35
|
+
const claudeMdPath = typeof options.fromClaudeMd === 'string'
|
|
36
|
+
? join(rootDir, options.fromClaudeMd)
|
|
37
|
+
: join(rootDir, 'CLAUDE.md');
|
|
38
|
+
if (await fileExists(claudeMdPath)) {
|
|
39
|
+
const claudeSpin = spinner(`Parsing ${typeof options.fromClaudeMd === 'string' ? options.fromClaudeMd : 'CLAUDE.md'}...`);
|
|
40
|
+
try {
|
|
41
|
+
claudeData = await parseClaudeMd(claudeMdPath);
|
|
42
|
+
claudeSpin.stop('✓ Parsed CLAUDE.md');
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
claudeSpin.stop();
|
|
46
|
+
logger.error(`Failed to parse CLAUDE.md: ${error}`);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
logger.error(`CLAUDE.md not found at ${claudeMdPath}`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
30
53
|
// Infer and write project metadata
|
|
31
54
|
const projectSpin = spinner('Analyzing project metadata...');
|
|
32
55
|
try {
|
|
33
56
|
const project = await inferProjectMetadata(rootDir);
|
|
57
|
+
if (claudeData) {
|
|
58
|
+
mergeProjectData(project, claudeData);
|
|
59
|
+
}
|
|
34
60
|
await writeJSON(join(contextDir, CONTEXT_FILES.PROJECT), project);
|
|
35
61
|
projectSpin.stop('✓ Generated project.json');
|
|
36
62
|
}
|
|
@@ -42,6 +68,9 @@ export function registerInitCommand(cli) {
|
|
|
42
68
|
const stackSpin = spinner('Detecting technology stack...');
|
|
43
69
|
try {
|
|
44
70
|
const stack = await inferStack(rootDir);
|
|
71
|
+
if (claudeData) {
|
|
72
|
+
mergeStackData(stack, claudeData);
|
|
73
|
+
}
|
|
45
74
|
await writeJSON(join(contextDir, CONTEXT_FILES.STACK), stack);
|
|
46
75
|
stackSpin.stop('✓ Generated stack.json');
|
|
47
76
|
}
|
|
@@ -53,6 +82,9 @@ export function registerInitCommand(cli) {
|
|
|
53
82
|
const archSpin = spinner('Mapping architecture...');
|
|
54
83
|
try {
|
|
55
84
|
const architecture = await inferArchitecture(rootDir);
|
|
85
|
+
if (claudeData) {
|
|
86
|
+
mergeArchitectureData(architecture, claudeData);
|
|
87
|
+
}
|
|
56
88
|
await writeJSON(join(contextDir, CONTEXT_FILES.ARCHITECTURE), architecture);
|
|
57
89
|
archSpin.stop('✓ Generated architecture.json');
|
|
58
90
|
}
|
|
@@ -64,6 +96,9 @@ export function registerInitCommand(cli) {
|
|
|
64
96
|
const constraintsSpin = spinner('Inferring constraints...');
|
|
65
97
|
try {
|
|
66
98
|
const constraints = await inferConstraints(rootDir);
|
|
99
|
+
if (claudeData) {
|
|
100
|
+
mergeConstraintsData(constraints, claudeData);
|
|
101
|
+
}
|
|
67
102
|
await writeJSON(join(contextDir, CONTEXT_FILES.CONSTRAINTS), constraints);
|
|
68
103
|
constraintsSpin.stop('✓ Generated constraints.json');
|
|
69
104
|
}
|
|
@@ -78,10 +113,126 @@ export function registerInitCommand(cli) {
|
|
|
78
113
|
await writeMarkdown(join(contextDir, CONTEXT_FILES.CHANGELOG), '# Changelog\n\n');
|
|
79
114
|
logger.success('✓ Created changelog.md');
|
|
80
115
|
logger.success('🎉 Prelude context initialized successfully!');
|
|
116
|
+
if (claudeData) {
|
|
117
|
+
logger.info(' (enriched with CLAUDE.md data)');
|
|
118
|
+
}
|
|
81
119
|
logger.info('\nNext steps:');
|
|
82
120
|
logger.info(' • Run `prelude export` to generate LLM-optimized context');
|
|
83
121
|
logger.info(' • Run `prelude watch` to track changes');
|
|
84
122
|
logger.info(' • Run `prelude decision "Title"` to log a decision');
|
|
85
123
|
});
|
|
86
124
|
}
|
|
125
|
+
/**
|
|
126
|
+
* Merge CLAUDE.md data into inferred project metadata.
|
|
127
|
+
* CLAUDE.md values take priority for non-empty fields.
|
|
128
|
+
*/
|
|
129
|
+
function mergeProjectData(project, claudeData) {
|
|
130
|
+
if (claudeData.projectName) {
|
|
131
|
+
project.name = claudeData.projectName;
|
|
132
|
+
}
|
|
133
|
+
if (claudeData.description) {
|
|
134
|
+
project.description = claudeData.description;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
function mergeStackData(stack, claudeData) {
|
|
138
|
+
if (!claudeData.stack)
|
|
139
|
+
return;
|
|
140
|
+
if (claudeData.stack.language) {
|
|
141
|
+
stack.language = claudeData.stack.language;
|
|
142
|
+
}
|
|
143
|
+
if (claudeData.stack.frameworks?.length) {
|
|
144
|
+
// Use CLAUDE.md frameworks if inference found none, otherwise merge
|
|
145
|
+
if (!stack.frameworks?.length) {
|
|
146
|
+
stack.frameworks = claudeData.stack.frameworks;
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
const existing = new Set(stack.frameworks.map(f => f.toLowerCase()));
|
|
150
|
+
for (const fw of claudeData.stack.frameworks) {
|
|
151
|
+
if (!existing.has(fw.toLowerCase())) {
|
|
152
|
+
stack.frameworks.push(fw);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
if (claudeData.stack.database && !stack.database) {
|
|
158
|
+
stack.database = claudeData.stack.database;
|
|
159
|
+
}
|
|
160
|
+
if (claudeData.stack.testing) {
|
|
161
|
+
if (!stack.testingFrameworks?.length) {
|
|
162
|
+
stack.testingFrameworks = [claudeData.stack.testing];
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
function mergeArchitectureData(architecture, claudeData) {
|
|
167
|
+
if (!claudeData.architecture)
|
|
168
|
+
return;
|
|
169
|
+
if (claudeData.architecture.type) {
|
|
170
|
+
const validTypes = ['monolith', 'monorepo', 'microservices', 'library', 'cli', 'fullstack', 'backend', 'frontend'];
|
|
171
|
+
const normalized = claudeData.architecture.type.toLowerCase();
|
|
172
|
+
if (validTypes.includes(normalized)) {
|
|
173
|
+
architecture.type = normalized;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
if (claudeData.architecture.patterns?.length) {
|
|
177
|
+
if (!architecture.patterns?.length) {
|
|
178
|
+
architecture.patterns = claudeData.architecture.patterns;
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
const existing = new Set(architecture.patterns.map(p => p.toLowerCase()));
|
|
182
|
+
for (const p of claudeData.architecture.patterns) {
|
|
183
|
+
if (!existing.has(p.toLowerCase())) {
|
|
184
|
+
architecture.patterns.push(p);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
if (claudeData.architecture.directories?.length) {
|
|
190
|
+
// Merge directories: CLAUDE.md directories get their purpose filled in
|
|
191
|
+
const existingPaths = new Set(architecture.directories.map(d => d.path));
|
|
192
|
+
for (const dir of claudeData.architecture.directories) {
|
|
193
|
+
const existing = architecture.directories.find(d => d.path === dir.path || d.path.endsWith('/' + dir.path) || dir.path.endsWith('/' + d.path));
|
|
194
|
+
if (existing && dir.purpose && !existing.purpose) {
|
|
195
|
+
existing.purpose = dir.purpose;
|
|
196
|
+
}
|
|
197
|
+
else if (!existingPaths.has(dir.path)) {
|
|
198
|
+
architecture.directories.push(dir);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
if (claudeData.conventions?.length) {
|
|
203
|
+
if (!architecture.conventions?.length) {
|
|
204
|
+
architecture.conventions = claudeData.conventions;
|
|
205
|
+
}
|
|
206
|
+
else {
|
|
207
|
+
architecture.conventions = [...architecture.conventions, ...claudeData.conventions];
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
if (claudeData.commands?.length) {
|
|
211
|
+
// Store commands as entry points if none detected
|
|
212
|
+
if (!architecture.entryPoints?.length) {
|
|
213
|
+
architecture.entryPoints = claudeData.commands
|
|
214
|
+
.filter(c => c.description)
|
|
215
|
+
.slice(0, 10)
|
|
216
|
+
.map(c => ({ file: c.name, purpose: c.description }));
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
function mergeConstraintsData(constraints, claudeData) {
|
|
221
|
+
if (claudeData.constraints?.mustUse?.length) {
|
|
222
|
+
if (!constraints.mustUse?.length) {
|
|
223
|
+
constraints.mustUse = claudeData.constraints.mustUse;
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
constraints.mustUse = [...constraints.mustUse, ...claudeData.constraints.mustUse];
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
if (claudeData.constraints?.mustNotUse?.length) {
|
|
230
|
+
if (!constraints.mustNotUse?.length) {
|
|
231
|
+
constraints.mustNotUse = claudeData.constraints.mustNotUse;
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
constraints.mustNotUse = [...constraints.mustNotUse, ...claudeData.constraints.mustNotUse];
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
87
238
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjF,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EACL,oBAAoB,EACpB,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -107,25 +107,87 @@ export async function update(options = {}) {
|
|
|
107
107
|
}
|
|
108
108
|
}
|
|
109
109
|
/**
|
|
110
|
-
* Force update -
|
|
110
|
+
* Force update - re-infers everything but preserves existing fields that
|
|
111
|
+
* inference can't produce. Inferred fields always win; existing fields
|
|
112
|
+
* are kept only when the inference engine returned nothing for them.
|
|
111
113
|
*/
|
|
112
114
|
async function forceUpdate(contextDir, inferred, options) {
|
|
113
115
|
if (options.dryRun) {
|
|
114
|
-
logger.info('🔍 Force mode would overwrite all context files');
|
|
115
|
-
logger.info('(decisions.json
|
|
116
|
+
logger.info('🔍 Force mode would overwrite all inferred context files');
|
|
117
|
+
logger.info('(decisions.json, changelog.md, and hand-curated fields preserved)');
|
|
116
118
|
return;
|
|
117
119
|
}
|
|
118
|
-
//
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
120
|
+
// Read existing context so we can merge
|
|
121
|
+
const existing = {
|
|
122
|
+
project: await safeReadJSON(join(contextDir, 'project.json')),
|
|
123
|
+
stack: await safeReadJSON(join(contextDir, 'stack.json')),
|
|
124
|
+
architecture: await safeReadJSON(join(contextDir, 'architecture.json')),
|
|
125
|
+
constraints: await safeReadJSON(join(contextDir, 'constraints.json')),
|
|
126
|
+
};
|
|
127
|
+
// Merge: inferred values win, but existing fields are preserved when
|
|
128
|
+
// inference returned undefined/null/empty for them.
|
|
129
|
+
const mergedProject = mergePreserving(existing.project, inferred.project);
|
|
130
|
+
const mergedStack = mergePreserving(existing.stack, inferred.stack);
|
|
131
|
+
const mergedArch = mergePreserving(existing.architecture, inferred.architecture);
|
|
132
|
+
const mergedConstraints = mergePreserving(existing.constraints, inferred.constraints);
|
|
133
|
+
await writeJSON(join(contextDir, 'project.json'), mergedProject);
|
|
134
|
+
await writeJSON(join(contextDir, 'stack.json'), mergedStack);
|
|
135
|
+
await writeJSON(join(contextDir, 'architecture.json'), mergedArch);
|
|
136
|
+
await writeJSON(join(contextDir, 'constraints.json'), mergedConstraints);
|
|
123
137
|
// Preserve decisions and changelog (they're already on disk)
|
|
124
138
|
if (!options.silent) {
|
|
125
139
|
logger.success('✅ Force update complete');
|
|
126
140
|
logger.info('ℹ️ All context files overwritten (except decisions.json and changelog.md)');
|
|
127
141
|
}
|
|
128
142
|
}
|
|
143
|
+
/**
|
|
144
|
+
* Safely read JSON, returning empty object if file doesn't exist or is invalid.
|
|
145
|
+
*/
|
|
146
|
+
async function safeReadJSON(path) {
|
|
147
|
+
try {
|
|
148
|
+
return await readJSON(path);
|
|
149
|
+
}
|
|
150
|
+
catch {
|
|
151
|
+
return {};
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Merge inferred data over existing, preserving existing fields that
|
|
156
|
+
* inference returned empty/undefined for.
|
|
157
|
+
*
|
|
158
|
+
* Rule: inferred non-empty values always win. Existing values are kept
|
|
159
|
+
* only when the inferred value is undefined, null, empty string, empty
|
|
160
|
+
* array, or empty object.
|
|
161
|
+
*/
|
|
162
|
+
function mergePreserving(existing, inferred) {
|
|
163
|
+
if (!existing || typeof existing !== 'object')
|
|
164
|
+
return inferred;
|
|
165
|
+
if (!inferred || typeof inferred !== 'object')
|
|
166
|
+
return existing;
|
|
167
|
+
const merged = { ...existing };
|
|
168
|
+
// Overlay all inferred fields
|
|
169
|
+
for (const key of Object.keys(inferred)) {
|
|
170
|
+
const val = inferred[key];
|
|
171
|
+
if (val === undefined || val === null)
|
|
172
|
+
continue;
|
|
173
|
+
// Empty array — keep existing if it has content
|
|
174
|
+
if (Array.isArray(val) && val.length === 0) {
|
|
175
|
+
if (Array.isArray(existing[key]) && existing[key].length > 0)
|
|
176
|
+
continue;
|
|
177
|
+
}
|
|
178
|
+
// Empty object — keep existing if it has content
|
|
179
|
+
if (typeof val === 'object' && !Array.isArray(val) && Object.keys(val).length === 0) {
|
|
180
|
+
if (typeof existing[key] === 'object' && existing[key] !== null &&
|
|
181
|
+
!Array.isArray(existing[key]) && Object.keys(existing[key]).length > 0)
|
|
182
|
+
continue;
|
|
183
|
+
}
|
|
184
|
+
// Empty string — keep existing if it has content
|
|
185
|
+
if (val === '' && existing[key] && typeof existing[key] === 'string' && existing[key].length > 0)
|
|
186
|
+
continue;
|
|
187
|
+
merged[key] = val;
|
|
188
|
+
}
|
|
189
|
+
return merged;
|
|
190
|
+
}
|
|
129
191
|
/**
|
|
130
192
|
* Display changes in a readable format
|
|
131
193
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/update.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/update.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/commands/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAmJ/B,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,GAAG,QA2F/C"}
|