@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.
- package/.cursor/rules/definition-of-done.md +1 -0
- package/.cursor/rules/no-emoticons.md +26 -12
- package/README.md +483 -69
- package/dist/agentic/executor.js +473 -41
- package/dist/agentic/executor.js.map +1 -1
- package/dist/agentic/index.js.map +1 -1
- package/dist/agentic/tools/lookup-person.js +123 -4
- package/dist/agentic/tools/lookup-person.js.map +1 -1
- package/dist/agentic/tools/lookup-project.js +139 -22
- package/dist/agentic/tools/lookup-project.js.map +1 -1
- package/dist/agentic/tools/route-note.js +5 -1
- package/dist/agentic/tools/route-note.js.map +1 -1
- package/dist/arguments.js +6 -3
- package/dist/arguments.js.map +1 -1
- package/dist/cli/action.js +704 -0
- package/dist/cli/action.js.map +1 -0
- package/dist/cli/config.js +482 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/context.js +466 -0
- package/dist/cli/context.js.map +1 -0
- package/dist/cli/feedback.js +858 -0
- package/dist/cli/feedback.js.map +1 -0
- package/dist/cli/index.js +103 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/install.js +572 -0
- package/dist/cli/install.js.map +1 -0
- package/dist/cli/transcript.js +199 -0
- package/dist/cli/transcript.js.map +1 -0
- package/dist/constants.js +12 -5
- package/dist/constants.js.map +1 -1
- package/dist/context/discovery.js +1 -1
- package/dist/context/discovery.js.map +1 -1
- package/dist/context/index.js +25 -1
- package/dist/context/index.js.map +1 -1
- package/dist/context/storage.js +57 -4
- package/dist/context/storage.js.map +1 -1
- package/dist/interactive/handler.js +310 -9
- package/dist/interactive/handler.js.map +1 -1
- package/dist/main.js +11 -1
- package/dist/main.js.map +1 -1
- package/dist/output/index.js.map +1 -1
- package/dist/output/manager.js +47 -2
- package/dist/output/manager.js.map +1 -1
- package/dist/phases/complete.js +38 -3
- package/dist/phases/complete.js.map +1 -1
- package/dist/phases/locate.js +1 -1
- package/dist/phases/locate.js.map +1 -1
- package/dist/pipeline/orchestrator.js +104 -31
- package/dist/pipeline/orchestrator.js.map +1 -1
- package/dist/protokoll.js +68 -2
- package/dist/protokoll.js.map +1 -1
- package/dist/reasoning/client.js +83 -0
- package/dist/reasoning/client.js.map +1 -1
- package/dist/reasoning/index.js +1 -0
- package/dist/reasoning/index.js.map +1 -1
- package/dist/routing/router.js +2 -2
- package/dist/routing/router.js.map +1 -1
- package/dist/util/media.js +1 -1
- package/dist/util/media.js.map +1 -1
- package/dist/util/metadata.js.map +1 -1
- package/dist/util/sound.js +116 -0
- package/dist/util/sound.js.map +1 -0
- package/dist/util/storage.js +3 -3
- package/dist/util/storage.js.map +1 -1
- package/docs/duplicate-question-prevention.md +117 -0
- package/docs/examples.md +152 -0
- package/docs/interactive-context-example.md +92 -0
- package/docs/package-lock.json +6 -0
- package/docs/package.json +3 -1
- package/eslint.config.mjs +1 -1
- package/guide/action.md +375 -0
- package/guide/config.md +207 -0
- package/guide/configuration.md +82 -67
- package/guide/context-commands.md +574 -0
- package/guide/context-system.md +20 -7
- package/guide/development.md +106 -4
- package/guide/feedback.md +335 -0
- package/guide/index.md +100 -4
- package/guide/interactive.md +15 -14
- package/guide/quickstart.md +21 -7
- package/guide/reasoning.md +18 -4
- package/guide/routing.md +192 -97
- package/package.json +2 -3
- package/scripts/copy-assets.mjs +47 -0
- package/scripts/coverage-priority.mjs +323 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/vite.config.ts +6 -13
- 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
|
package/guide/context-system.md
CHANGED
|
@@ -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
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
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
|
|
package/guide/development.md
CHANGED
|
@@ -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.
|
|
242
|
-
5.
|
|
243
|
-
6.
|
|
244
|
-
7.
|
|
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
|
|