@redaksjon/protokoll 0.0.11 → 0.0.13

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.
Files changed (88) hide show
  1. package/.cursor/rules/definition-of-done.md +1 -0
  2. package/.cursor/rules/no-emoticons.md +26 -12
  3. package/README.md +483 -69
  4. package/dist/agentic/executor.js +473 -41
  5. package/dist/agentic/executor.js.map +1 -1
  6. package/dist/agentic/index.js.map +1 -1
  7. package/dist/agentic/tools/lookup-person.js +123 -4
  8. package/dist/agentic/tools/lookup-person.js.map +1 -1
  9. package/dist/agentic/tools/lookup-project.js +139 -22
  10. package/dist/agentic/tools/lookup-project.js.map +1 -1
  11. package/dist/agentic/tools/route-note.js +5 -1
  12. package/dist/agentic/tools/route-note.js.map +1 -1
  13. package/dist/arguments.js +6 -3
  14. package/dist/arguments.js.map +1 -1
  15. package/dist/cli/action.js +704 -0
  16. package/dist/cli/action.js.map +1 -0
  17. package/dist/cli/config.js +482 -0
  18. package/dist/cli/config.js.map +1 -0
  19. package/dist/cli/context.js +466 -0
  20. package/dist/cli/context.js.map +1 -0
  21. package/dist/cli/feedback.js +858 -0
  22. package/dist/cli/feedback.js.map +1 -0
  23. package/dist/cli/index.js +103 -0
  24. package/dist/cli/index.js.map +1 -0
  25. package/dist/cli/install.js +572 -0
  26. package/dist/cli/install.js.map +1 -0
  27. package/dist/cli/transcript.js +199 -0
  28. package/dist/cli/transcript.js.map +1 -0
  29. package/dist/constants.js +12 -5
  30. package/dist/constants.js.map +1 -1
  31. package/dist/context/discovery.js +1 -1
  32. package/dist/context/discovery.js.map +1 -1
  33. package/dist/context/index.js +25 -1
  34. package/dist/context/index.js.map +1 -1
  35. package/dist/context/storage.js +57 -4
  36. package/dist/context/storage.js.map +1 -1
  37. package/dist/interactive/handler.js +310 -9
  38. package/dist/interactive/handler.js.map +1 -1
  39. package/dist/main.js +11 -1
  40. package/dist/main.js.map +1 -1
  41. package/dist/output/index.js.map +1 -1
  42. package/dist/output/manager.js +47 -2
  43. package/dist/output/manager.js.map +1 -1
  44. package/dist/phases/complete.js +38 -3
  45. package/dist/phases/complete.js.map +1 -1
  46. package/dist/phases/locate.js +1 -1
  47. package/dist/phases/locate.js.map +1 -1
  48. package/dist/pipeline/orchestrator.js +104 -31
  49. package/dist/pipeline/orchestrator.js.map +1 -1
  50. package/dist/protokoll.js +68 -2
  51. package/dist/protokoll.js.map +1 -1
  52. package/dist/reasoning/client.js +83 -0
  53. package/dist/reasoning/client.js.map +1 -1
  54. package/dist/reasoning/index.js +1 -0
  55. package/dist/reasoning/index.js.map +1 -1
  56. package/dist/routing/router.js +2 -2
  57. package/dist/routing/router.js.map +1 -1
  58. package/dist/util/media.js +1 -1
  59. package/dist/util/media.js.map +1 -1
  60. package/dist/util/metadata.js.map +1 -1
  61. package/dist/util/sound.js +116 -0
  62. package/dist/util/sound.js.map +1 -0
  63. package/dist/util/storage.js +3 -3
  64. package/dist/util/storage.js.map +1 -1
  65. package/docs/duplicate-question-prevention.md +117 -0
  66. package/docs/examples.md +152 -0
  67. package/docs/interactive-context-example.md +92 -0
  68. package/docs/package-lock.json +6 -0
  69. package/docs/package.json +3 -1
  70. package/eslint.config.mjs +1 -1
  71. package/guide/action.md +375 -0
  72. package/guide/config.md +207 -0
  73. package/guide/configuration.md +82 -67
  74. package/guide/context-commands.md +574 -0
  75. package/guide/context-system.md +20 -7
  76. package/guide/development.md +106 -4
  77. package/guide/feedback.md +335 -0
  78. package/guide/index.md +100 -4
  79. package/guide/interactive.md +15 -14
  80. package/guide/quickstart.md +21 -7
  81. package/guide/reasoning.md +18 -4
  82. package/guide/routing.md +192 -97
  83. package/package.json +2 -3
  84. package/scripts/copy-assets.mjs +47 -0
  85. package/scripts/coverage-priority.mjs +323 -0
  86. package/tsconfig.tsbuildinfo +1 -1
  87. package/vite.config.ts +6 -13
  88. package/vitest.config.ts +5 -1
@@ -0,0 +1,574 @@
1
+ # Context Management Commands
2
+
3
+ Protokoll provides a complete CLI for managing context entities directly from the command line. These commands let you list, view, add, and delete people, projects, terms, companies, and ignored terms without manually editing YAML files.
4
+
5
+ ## Overview
6
+
7
+ Context management uses subcommands:
8
+
9
+ ```bash
10
+ protokoll <entity-type> <action> [options]
11
+ ```
12
+
13
+ ### Entity Types
14
+
15
+ | Command | Description |
16
+ |---------|-------------|
17
+ | `project` | Manage projects (routing destinations) |
18
+ | `person` | Manage people (name recognition) |
19
+ | `term` | Manage technical terms |
20
+ | `company` | Manage companies |
21
+ | `ignored` | Manage ignored terms (won't prompt for these) |
22
+ | `context` | Overall context system management |
23
+
24
+ ### Actions
25
+
26
+ Each entity type supports the same actions:
27
+
28
+ | Action | Description |
29
+ |--------|-------------|
30
+ | `list` | List all entities of this type |
31
+ | `show <id>` | Show full details for an entity |
32
+ | `add` | Interactively add a new entity |
33
+ | `delete <id>` | Delete an entity |
34
+
35
+ ## Project Commands
36
+
37
+ Projects define routing destinations and classification rules.
38
+
39
+ ### List Projects
40
+
41
+ ```bash
42
+ protokoll project list
43
+ ```
44
+
45
+ Output:
46
+ ```
47
+ Projects (3):
48
+
49
+ quarterly-planning Quarterly Planning -> ~/work/planning/notes
50
+ personal Personal Notes -> ~/notes [inactive]
51
+ work Work Notes -> ~/work/notes
52
+ ```
53
+
54
+ With verbose output:
55
+ ```bash
56
+ protokoll project list --verbose
57
+ ```
58
+
59
+ Shows full YAML for each project.
60
+
61
+ ### Show Project Details
62
+
63
+ ```bash
64
+ protokoll project show quarterly-planning
65
+ ```
66
+
67
+ Output:
68
+ ```
69
+ Project: Quarterly Planning
70
+
71
+ id: quarterly-planning
72
+ name: Quarterly Planning
73
+ type: project
74
+ classification:
75
+ context_type: work
76
+ explicit_phrases:
77
+ - quarterly planning
78
+ - Q1 planning
79
+ topics:
80
+ - roadmap
81
+ - budget
82
+ routing:
83
+ destination: ~/work/planning/notes
84
+ structure: month
85
+ filename_options:
86
+ - date
87
+ - time
88
+ - subject
89
+ active: true
90
+
91
+ File: /Users/you/.protokoll/projects/quarterly-planning.yaml
92
+ ```
93
+
94
+ ### Add a Project
95
+
96
+ ```bash
97
+ protokoll project add
98
+ ```
99
+
100
+ Interactive prompts:
101
+ ```
102
+ [Add New Project]
103
+
104
+ Project name: Client Alpha
105
+ ID (Enter for "client-alpha"):
106
+ Output destination path: ~/clients/alpha/notes
107
+ Directory structure (none/year/month/day, Enter for month): month
108
+ Context type (work/personal/mixed, Enter for work): work
109
+ Trigger phrases (comma-separated): client alpha, alpha project, working on alpha
110
+ Topic keywords (comma-separated, Enter to skip): client engagement, consulting
111
+ Description (Enter to skip): Primary client project for Q1
112
+
113
+ Project "Client Alpha" saved successfully.
114
+ ```
115
+
116
+ ### Delete a Project
117
+
118
+ ```bash
119
+ protokoll project delete client-alpha
120
+ ```
121
+
122
+ With confirmation:
123
+ ```
124
+ About to delete project: Client Alpha (client-alpha)
125
+ Are you sure? (y/N): y
126
+ Project "client-alpha" deleted.
127
+ ```
128
+
129
+ Skip confirmation:
130
+ ```bash
131
+ protokoll project delete client-alpha --force
132
+ ```
133
+
134
+ ## Person Commands
135
+
136
+ People are used for name recognition and correction in transcripts.
137
+
138
+ ### List People
139
+
140
+ ```bash
141
+ protokoll person list
142
+ ```
143
+
144
+ Output:
145
+ ```
146
+ People (5):
147
+
148
+ john-smith John Smith (acme-corp) - Engineering Lead
149
+ priya-sharma Priya Sharma (acme-corp) - Product Manager
150
+ sarah-chen Sarah Chen - Designer
151
+ ```
152
+
153
+ ### Show Person Details
154
+
155
+ ```bash
156
+ protokoll person show priya-sharma
157
+ ```
158
+
159
+ Output:
160
+ ```
161
+ Person: Priya Sharma
162
+
163
+ id: priya-sharma
164
+ name: Priya Sharma
165
+ type: person
166
+ firstName: Priya
167
+ lastName: Sharma
168
+ company: acme-corp
169
+ role: Product Manager
170
+ sounds_like:
171
+ - pre a
172
+ - pria
173
+ - preeya
174
+ context: Colleague from product team
175
+
176
+ File: /Users/you/.protokoll/people/priya-sharma.yaml
177
+ ```
178
+
179
+ ### Add a Person
180
+
181
+ ```bash
182
+ protokoll person add
183
+ ```
184
+
185
+ Interactive prompts:
186
+ ```
187
+ [Add New Person]
188
+
189
+ Full name: John Smith
190
+ ID (Enter for "john-smith"):
191
+ First name (Enter to skip): John
192
+ Last name (Enter to skip): Smith
193
+ Company ID (Enter to skip): acme-corp
194
+ Role (Enter to skip): Engineering Lead
195
+ Sounds like (comma-separated, Enter to skip): john, jon smith, john s
196
+ Context notes (Enter to skip): Team lead for backend services
197
+
198
+ Person "John Smith" saved successfully.
199
+ ```
200
+
201
+ ### Delete a Person
202
+
203
+ ```bash
204
+ protokoll person delete john-smith
205
+ ```
206
+
207
+ ```bash
208
+ protokoll person delete john-smith --force
209
+ ```
210
+
211
+ ## Term Commands
212
+
213
+ Terms define technical vocabulary and their phonetic variants.
214
+
215
+ ### List Terms
216
+
217
+ ```bash
218
+ protokoll term list
219
+ ```
220
+
221
+ Output:
222
+ ```
223
+ Terms (4):
224
+
225
+ graphql GraphQL (GraphQL Query Language)
226
+ kubernetes Kubernetes (Container orchestration platform)
227
+ react React (JavaScript UI library)
228
+ ```
229
+
230
+ ### Show Term Details
231
+
232
+ ```bash
233
+ protokoll term show kubernetes
234
+ ```
235
+
236
+ Output:
237
+ ```
238
+ Term: Kubernetes
239
+
240
+ id: kubernetes
241
+ name: Kubernetes
242
+ type: term
243
+ expansion: Container orchestration platform
244
+ domain: engineering
245
+ sounds_like:
246
+ - kube
247
+ - k8s
248
+ - cube er net ease
249
+ - kuber netties
250
+ projects:
251
+ - infrastructure
252
+
253
+ File: /Users/you/.protokoll/terms/kubernetes.yaml
254
+ ```
255
+
256
+ ### Add a Term
257
+
258
+ ```bash
259
+ protokoll term add
260
+ ```
261
+
262
+ Interactive prompts:
263
+ ```
264
+ [Add New Term]
265
+
266
+ Term: GraphQL
267
+ ID (Enter for "graphql"):
268
+ Expansion (if acronym, Enter to skip): GraphQL Query Language
269
+ Domain (e.g., engineering, finance, Enter to skip): engineering
270
+ Sounds like (comma-separated, Enter to skip): graph ql, graph q l, graphical
271
+ Associated project IDs (comma-separated, Enter to skip): api-project
272
+
273
+ Term "GraphQL" saved successfully.
274
+ ```
275
+
276
+ ### Delete a Term
277
+
278
+ ```bash
279
+ protokoll term delete graphql
280
+ ```
281
+
282
+ ## Company Commands
283
+
284
+ Companies are used for organization recognition and can be linked to people.
285
+
286
+ ### List Companies
287
+
288
+ ```bash
289
+ protokoll company list
290
+ ```
291
+
292
+ Output:
293
+ ```
294
+ Companies (3):
295
+
296
+ acme-corp Acme Corporation [Manufacturing]
297
+ techstart TechStart Inc [Technology]
298
+ globalbank Global Bank [Finance]
299
+ ```
300
+
301
+ ### Show Company Details
302
+
303
+ ```bash
304
+ protokoll company show acme-corp
305
+ ```
306
+
307
+ Output:
308
+ ```
309
+ Company: Acme Corporation
310
+
311
+ id: acme-corp
312
+ name: Acme Corporation
313
+ type: company
314
+ fullName: Acme Corporation Ltd.
315
+ industry: Manufacturing
316
+ sounds_like:
317
+ - acme
318
+ - acme corp
319
+ - a c m e
320
+
321
+ File: /Users/you/.protokoll/companies/acme-corp.yaml
322
+ ```
323
+
324
+ ### Add a Company
325
+
326
+ ```bash
327
+ protokoll company add
328
+ ```
329
+
330
+ Interactive prompts:
331
+ ```
332
+ [Add New Company]
333
+
334
+ Company name: TechStart Inc
335
+ ID (Enter for "techstart-inc"): techstart
336
+ Full legal name (Enter to skip): TechStart Incorporated
337
+ Industry (Enter to skip): Technology
338
+ Sounds like (comma-separated, Enter to skip): tech start, techstart
339
+
340
+ Company "TechStart Inc" saved successfully.
341
+ ```
342
+
343
+ ### Delete a Company
344
+
345
+ ```bash
346
+ protokoll company delete techstart
347
+ ```
348
+
349
+ ## Ignored Terms Commands
350
+
351
+ Ignored terms are words or phrases that Protokoll won't ask about during interactive mode. Use this to suppress prompts for common words or terms you don't want to add as context.
352
+
353
+ ### List Ignored Terms
354
+
355
+ ```bash
356
+ protokoll ignored list
357
+ ```
358
+
359
+ Output:
360
+ ```
361
+ Ignored terms (3):
362
+
363
+ um um [ignored 2026-01-12]
364
+ like like [ignored 2026-01-10]
365
+ basically basically [ignored 2026-01-08]
366
+ ```
367
+
368
+ ### Show Ignored Term Details
369
+
370
+ ```bash
371
+ protokoll ignored show um
372
+ ```
373
+
374
+ Output:
375
+ ```
376
+ Ignored: um
377
+
378
+ id: um
379
+ name: um
380
+ type: ignored
381
+ ignoredAt: 2026-01-12T10:30:00.000Z
382
+ reason: Filler word, not meaningful
383
+
384
+ File: /Users/you/.protokoll/ignored/um.yaml
385
+ ```
386
+
387
+ ### Add an Ignored Term
388
+
389
+ ```bash
390
+ protokoll ignored add
391
+ ```
392
+
393
+ Interactive prompts:
394
+ ```
395
+ [Add Ignored Term]
396
+
397
+ Term to ignore: um
398
+ Reason for ignoring (Enter to skip): Filler word, not meaningful
399
+
400
+ "um" added to ignore list.
401
+ ```
402
+
403
+ ### Delete from Ignore List
404
+
405
+ ```bash
406
+ protokoll ignored delete um
407
+ ```
408
+
409
+ This removes the term from the ignore list, so Protokoll may prompt about it again.
410
+
411
+ ## Context Overview Commands
412
+
413
+ The `context` command provides system-wide context management.
414
+
415
+ ### Context Status
416
+
417
+ See the overall status of your context system:
418
+
419
+ ```bash
420
+ protokoll context status
421
+ ```
422
+
423
+ Output:
424
+ ```
425
+ [Context System Status]
426
+
427
+ Discovered context directories:
428
+ → /Users/you/.protokoll (level 0)
429
+ /Users/you/work/.protokoll (level 1)
430
+
431
+ Loaded entities:
432
+ Projects: 5
433
+ People: 12
434
+ Terms: 8
435
+ Companies: 3
436
+ Ignored: 15
437
+ ```
438
+
439
+ The arrow (→) indicates the primary context directory.
440
+
441
+ ### Search Across All Entities
442
+
443
+ Search for entities by name or content:
444
+
445
+ ```bash
446
+ protokoll context search "acme"
447
+ ```
448
+
449
+ Output:
450
+ ```
451
+ Results for "acme" (4):
452
+
453
+ [company] acme-corp Acme Corporation [Manufacturing]
454
+ [person] john-smith John Smith (acme-corp) - Engineering Lead
455
+ [person] priya-sharma Priya Sharma (acme-corp) - Product Manager
456
+ [project] acme-project Acme Project -> ~/clients/acme/notes
457
+ ```
458
+
459
+ ## Command Options
460
+
461
+ ### Global Options
462
+
463
+ These options work with all entity commands:
464
+
465
+ | Option | Description |
466
+ |--------|-------------|
467
+ | `-v, --verbose` | Show full details (for `list` command) |
468
+ | `-f, --force` | Skip confirmation prompts (for `delete` command) |
469
+
470
+ ### Examples
471
+
472
+ ```bash
473
+ # List all projects with full details
474
+ protokoll project list --verbose
475
+
476
+ # Delete without confirmation
477
+ protokoll person delete john-smith --force
478
+
479
+ # Search for anything related to "kubernetes"
480
+ protokoll context search kubernetes
481
+ ```
482
+
483
+ ## Workflow Examples
484
+
485
+ ### Setting Up a New Project
486
+
487
+ ```bash
488
+ # 1. Add the project
489
+ protokoll project add
490
+
491
+ # 2. Add people associated with the project
492
+ protokoll person add
493
+
494
+ # 3. Add technical terms for the domain
495
+ protokoll term add
496
+
497
+ # 4. Verify everything is loaded
498
+ protokoll context status
499
+ ```
500
+
501
+ ### Cleaning Up Context
502
+
503
+ ```bash
504
+ # Find everything related to an old client
505
+ protokoll context search "old-client"
506
+
507
+ # Delete the entities
508
+ protokoll project delete old-client-project --force
509
+ protokoll person delete old-client-contact --force
510
+ protokoll company delete old-client-corp --force
511
+ ```
512
+
513
+ ### Managing Ignored Terms
514
+
515
+ ```bash
516
+ # List what's currently ignored
517
+ protokoll ignored list
518
+
519
+ # Remove something from ignore list (to start prompting again)
520
+ protokoll ignored delete some-term
521
+
522
+ # Add a term you're tired of being asked about
523
+ protokoll ignored add
524
+ ```
525
+
526
+ ## Requirements
527
+
528
+ Context commands require a `.protokoll` directory to exist. If you haven't set up context yet:
529
+
530
+ ```bash
531
+ # Initialize configuration
532
+ protokoll --init-config
533
+
534
+ # Or create manually
535
+ mkdir -p ~/.protokoll/{people,projects,companies,terms,ignored}
536
+ ```
537
+
538
+ ## File Locations
539
+
540
+ Entities are stored as YAML files:
541
+
542
+ ```
543
+ ~/.protokoll/
544
+ ├── people/
545
+ │ └── *.yaml
546
+ ├── projects/
547
+ │ └── *.yaml
548
+ ├── companies/
549
+ │ └── *.yaml
550
+ ├── terms/
551
+ │ └── *.yaml
552
+ └── ignored/
553
+ └── *.yaml
554
+ ```
555
+
556
+ Each entity command's `show` action displays the file path, making it easy to find and manually edit files if needed.
557
+
558
+ ## Tips
559
+
560
+ 1. **Use meaningful IDs**: IDs are auto-generated from names but can be customized. Use `john-smith` not `person1`.
561
+
562
+ 2. **Add sounds_like variants**: The more phonetic variants you add, the better transcription correction works.
563
+
564
+ 3. **Link people to companies**: Setting a company ID on a person helps with context during transcription.
565
+
566
+ 4. **Use the search command**: Before adding new entities, search to see if similar ones exist.
567
+
568
+ 5. **Review ignored terms periodically**: You might want to un-ignore terms after adding them as proper context.
569
+
570
+ ## See Also
571
+
572
+ - [Transcript Actions](./action.md) - Edit transcripts to change their project or title after creation
573
+ - [Routing](./routing.md) - How project routing works
574
+ - [Context System](./context-system.md) - How context storage works
@@ -50,13 +50,26 @@ context: "Colleague from engineering team"
50
50
  # ~/.protokoll/projects/quarterly-planning.yaml
51
51
  id: quarterly-planning
52
52
  name: Quarterly Planning
53
- category: work
54
- destination: "~/work/planning/notes"
55
- structure: "month"
56
- triggers:
57
- - "quarterly planning"
58
- - "Q1 planning"
59
- - "Q2 planning"
53
+ type: project
54
+
55
+ classification:
56
+ context_type: work
57
+ explicit_phrases:
58
+ - "quarterly planning"
59
+ - "Q1 planning"
60
+ - "Q2 planning"
61
+ topics:
62
+ - "roadmap"
63
+ - "budget"
64
+
65
+ routing:
66
+ destination: "~/work/planning/notes"
67
+ structure: "month"
68
+ filename_options:
69
+ - date
70
+ - time
71
+ - subject
72
+
60
73
  active: true
61
74
  ```
62
75
 
@@ -238,10 +238,112 @@ npm run lint:fix
238
238
  1. Update version in `package.json`
239
239
  2. Run tests: `npm test`
240
240
  3. Build: `npm run build`
241
- 4. Commit: `git commit -m "Release vX.Y.Z"`
242
- 5. Tag: `git tag vX.Y.Z`
243
- 6. Push: `git push && git push --tags`
244
- 7. Publish: `npm publish`
241
+ 4. **Verify documentation** (see checklist below)
242
+ 5. Commit: `git commit -m "Release vX.Y.Z"`
243
+ 6. Tag: `git tag vX.Y.Z`
244
+ 7. Push: `git push && git push --tags`
245
+ 8. Publish: `npm publish`
246
+
247
+ ## Pre-Release Documentation Checklist
248
+
249
+ Before every release, verify documentation accuracy:
250
+
251
+ ### 1. Configuration Options
252
+
253
+ Check that documented config options match the actual implementation:
254
+
255
+ ```bash
256
+ # Compare documented options with code
257
+ grep -E "^\s+\w+:" guide/configuration.md # Documented options
258
+ grep -E "z\.\w+\(\)" src/protokoll.ts # Schema fields
259
+ grep -E "option\('--" src/arguments.ts # CLI options
260
+ ```
261
+
262
+ **Key files to cross-reference:**
263
+ - `guide/configuration.md` ↔ `src/protokoll.ts` (ConfigSchema)
264
+ - `guide/configuration.md` ↔ `src/constants.ts` (PROTOKOLL_DEFAULTS)
265
+ - `guide/configuration.md` ↔ `src/arguments.ts` (CLI options)
266
+
267
+ ### 2. Default Values
268
+
269
+ Verify documented defaults match code:
270
+
271
+ | Check | Source File | Documentation |
272
+ |-------|-------------|---------------|
273
+ | Interactive default | `src/constants.ts` (DEFAULT_INTERACTIVE) | `guide/configuration.md`, `guide/index.md` |
274
+ | Self-reflection default | `src/constants.ts` (DEFAULT_SELF_REFLECTION) | `guide/configuration.md`, `guide/reasoning.md` |
275
+ | Reasoning level default | `src/constants.ts` (DEFAULT_REASONING_LEVEL) | `guide/configuration.md`, `guide/reasoning.md`, `guide/quickstart.md`, `guide/index.md` |
276
+ | Model defaults | `src/constants.ts` (DEFAULT_MODEL, DEFAULT_TRANSCRIPTION_MODEL) | All guide files |
277
+ | Output structure | `src/constants.ts` (DEFAULT_OUTPUT_STRUCTURE) | `guide/configuration.md`, `guide/routing.md` |
278
+
279
+ ### 3. Config Structure
280
+
281
+ Ensure config examples use flat properties (not nested):
282
+
283
+ **Correct:**
284
+ ```yaml
285
+ outputDirectory: "~/notes"
286
+ outputStructure: "month"
287
+ interactive: true
288
+ selfReflection: true
289
+ ```
290
+
291
+ **Incorrect (legacy/aspirational):**
292
+ ```yaml
293
+ routing:
294
+ default:
295
+ path: "~/notes"
296
+ features:
297
+ interactive: true
298
+ ```
299
+
300
+ ### 4. Project Schema
301
+
302
+ Verify project file examples match `src/context/types.ts`:
303
+
304
+ - Uses `classification.explicit_phrases` (not `triggers`)
305
+ - Uses `routing.destination` (not top-level `destination`)
306
+ - Uses `routing.structure` and `routing.filename_options`
307
+ - Includes `type: project`
308
+
309
+ ### 5. CLI Flags
310
+
311
+ Verify documented CLI flags exist in `src/arguments.ts`:
312
+
313
+ | Flag | Should Exist | Notes |
314
+ |------|--------------|-------|
315
+ | `--batch` | Yes | Disables interactive mode |
316
+ | `--interactive` | **No** | Interactive is default, use --batch to disable |
317
+ | `--self-reflection` | Yes | |
318
+ | `--no-self-reflection` | Yes | |
319
+ | `--silent` | Yes | |
320
+
321
+ ### 6. Files to Review
322
+
323
+ Before release, scan these files for accuracy:
324
+
325
+ - [ ] `guide/configuration.md` - Main config reference
326
+ - [ ] `guide/quickstart.md` - Config examples, CLI examples
327
+ - [ ] `guide/interactive.md` - Interactive mode behavior
328
+ - [ ] `guide/routing.md` - Project file format
329
+ - [ ] `guide/context-system.md` - Entity schemas
330
+ - [ ] `guide/index.md` - Default values table
331
+ - [ ] `README.md` - All examples and CLI options
332
+
333
+ ### 7. Automated Checks (Future)
334
+
335
+ Consider adding:
336
+
337
+ ```bash
338
+ # Script to validate documentation accuracy
339
+ npm run docs:validate
340
+ ```
341
+
342
+ This could:
343
+ - Parse config examples from markdown
344
+ - Validate against Zod schema
345
+ - Check CLI flags exist
346
+ - Verify default values match constants
245
347
 
246
348
  ## Debugging
247
349