@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,335 @@
1
+ # Feedback Command
2
+
3
+ Protokoll includes an intelligent `feedback` command that uses an agentic model to understand natural language feedback about your transcripts and take appropriate actions automatically.
4
+
5
+ ## Overview
6
+
7
+ The feedback command allows you to describe problems with a transcript in plain English, and Protokoll will:
8
+
9
+ 1. **Understand your feedback** using a reasoning model
10
+ 2. **Take corrective actions** like fixing text, adding terms/people to context, or changing project assignments
11
+ 3. **Learn for the future** by updating your context to prevent similar issues
12
+
13
+ ## Basic Usage
14
+
15
+ ```bash
16
+ protokoll feedback /path/to/transcript.md
17
+ ```
18
+
19
+ This prompts you interactively:
20
+
21
+ ```
22
+ ────────────────────────────────────────────────────────────
23
+ [Feedback for: transcript.md]
24
+ ────────────────────────────────────────────────────────────
25
+
26
+ Describe what needs to be corrected in natural language.
27
+ Examples:
28
+ - "YB should be Wibey"
29
+ - "San Jay Grouper is actually Sanjay Gupta"
30
+ - "This should be in the Quantum Readiness project"
31
+ - "What feedback can I give?" (for help)
32
+
33
+ What is your feedback?
34
+ ```
35
+
36
+ ### Non-Interactive Mode
37
+
38
+ Provide feedback directly on the command line:
39
+
40
+ ```bash
41
+ protokoll feedback /path/to/transcript.md -f "YB should be spelled Wibey"
42
+ ```
43
+
44
+ ### Preview Changes (Dry Run)
45
+
46
+ See what would happen without making changes:
47
+
48
+ ```bash
49
+ protokoll feedback /path/to/transcript.md --dry-run -v
50
+ ```
51
+
52
+ ## What You Can Do
53
+
54
+ ### 1. Fix Terms & Abbreviations
55
+
56
+ When you notice a term or abbreviation was transcribed incorrectly:
57
+
58
+ ```bash
59
+ protokoll feedback /path/to/transcript.md
60
+ # "Everywhere it says WCMP, that should be WCNP - Walmart's Native Cloud Platform"
61
+ ```
62
+
63
+ **What happens:**
64
+ 1. Replaces "WCMP" with "WCNP" throughout the transcript
65
+ 2. Adds "WCNP" to your context vocabulary with:
66
+ - The correct spelling
67
+ - The full expansion ("Walmart's Native Cloud Platform")
68
+ - Phonetic variants so it won't be misheard again
69
+
70
+ ### 2. Fix Names
71
+
72
+ When a person's name was transcribed incorrectly:
73
+
74
+ ```bash
75
+ protokoll feedback /path/to/transcript.md
76
+ # "San Jay Grouper is actually Sanjay Gupta"
77
+ ```
78
+
79
+ **What happens:**
80
+ 1. Replaces "San Jay Grouper" with "Sanjay Gupta" throughout
81
+ 2. Looks for variations like "San Jay", "Sanjay Grouper" and fixes those too
82
+ 3. Adds "Sanjay Gupta" to your people context with phonetic variants
83
+
84
+ ### 3. Change Project Assignment
85
+
86
+ When a transcript was routed to the wrong project:
87
+
88
+ ```bash
89
+ protokoll feedback /path/to/transcript.md
90
+ # "This should be in the Quantum Readiness project"
91
+ ```
92
+
93
+ **What happens:**
94
+ 1. Updates the project metadata in the transcript
95
+ 2. Moves the file to the project's configured destination
96
+ 3. Renames the file according to the project's filename rules
97
+
98
+ ### 4. Change Title
99
+
100
+ When you want a more descriptive title:
101
+
102
+ ```bash
103
+ protokoll feedback /path/to/transcript.md
104
+ # "Change the title to Q1 Planning Session"
105
+ ```
106
+
107
+ **What happens:**
108
+ 1. Updates the document heading to `# Q1 Planning Session`
109
+ 2. Renames the file to include the slugified title
110
+
111
+ ### 5. General Text Corrections
112
+
113
+ For any other text that needs fixing:
114
+
115
+ ```bash
116
+ protokoll feedback /path/to/transcript.md
117
+ # "Replace 'gonna' with 'going to' everywhere"
118
+ ```
119
+
120
+ ### 6. Get Help
121
+
122
+ If you're not sure what feedback you can give:
123
+
124
+ ```bash
125
+ protokoll feedback --help-me
126
+ ```
127
+
128
+ Or ask the system during an interactive session:
129
+
130
+ ```bash
131
+ protokoll feedback /path/to/transcript.md
132
+ # "What kinds of feedback can I give?"
133
+ ```
134
+
135
+ ## Command Options
136
+
137
+ | Option | Short | Description |
138
+ |--------|-------|-------------|
139
+ | `--feedback <text>` | `-f` | Provide feedback directly (non-interactive) |
140
+ | `--model <model>` | `-m` | Reasoning model to use (default: gpt-5.2) |
141
+ | `--dry-run` | | Show what would happen without making changes |
142
+ | `--verbose` | `-v` | Show detailed output of each action |
143
+ | `--help-me` | | Show examples of feedback you can provide |
144
+
145
+ ## How It Works
146
+
147
+ The feedback command uses an **agentic architecture** with specialized tools:
148
+
149
+ ```
150
+ ┌─────────────────┐ ┌──────────────────┐ ┌────────────────┐
151
+ │ Your Feedback │ ──▶ │ Reasoning Model │ ──▶ │ Tool Calls │
152
+ │ (plain text) │ │ (understands) │ │ (executes) │
153
+ └─────────────────┘ └──────────────────┘ └────────────────┘
154
+
155
+ ┌───────────────────────────────┘
156
+
157
+ ┌──────────────────────────────────────────────────┐
158
+ │ Available Tools: │
159
+ │ • correct_text - Replace text in transcript │
160
+ │ • add_term - Add term to context │
161
+ │ • add_person - Add person to context │
162
+ │ • change_project - Update project assignment │
163
+ │ • change_title - Update document title │
164
+ │ • provide_help - Show helpful information │
165
+ └──────────────────────────────────────────────────┘
166
+ ```
167
+
168
+ ### Tool Execution Order
169
+
170
+ For comprehensive corrections, the system typically:
171
+
172
+ 1. **First**: Makes text corrections (`correct_text`)
173
+ 2. **Then**: Adds entities to context (`add_term`, `add_person`)
174
+ 3. **Finally**: Updates metadata if needed (`change_project`, `change_title`)
175
+
176
+ ### Example: Complete Term Correction
177
+
178
+ When you say: *"WCMP should be WCNP - Walmart's Native Cloud Platform"*
179
+
180
+ The model executes:
181
+
182
+ ```
183
+ 1. correct_text(find="WCMP", replace="WCNP", replace_all=true)
184
+ → Replaced 3 occurrences
185
+
186
+ 2. add_term(term="WCNP", definition="Walmart's Native Cloud Platform",
187
+ sounds_like=["WCMP", "W C M P", "double-u see em pee"])
188
+ → Added term to context
189
+
190
+ 3. complete(summary="Fixed WCMP→WCNP (3 occurrences) and added term to vocabulary")
191
+ → Done
192
+ ```
193
+
194
+ ## Context Learning
195
+
196
+ When the feedback system adds entities to your context, they're stored in your `.protokoll` directory:
197
+
198
+ ### Terms
199
+
200
+ ```yaml
201
+ # ~/.protokoll/terms/wcnp.yaml
202
+ id: wcnp
203
+ name: WCNP
204
+ type: term
205
+ expansion: "Walmart's Native Cloud Platform"
206
+ sounds_like:
207
+ - WCMP
208
+ - W C M P
209
+ - double-u see en pee
210
+ ```
211
+
212
+ ### People
213
+
214
+ ```yaml
215
+ # ~/.protokoll/people/sanjay-gupta.yaml
216
+ id: sanjay-gupta
217
+ name: Sanjay Gupta
218
+ type: person
219
+ sounds_like:
220
+ - San Jay Grouper
221
+ - Sanjay Grouper
222
+ - San Jay
223
+ role: Engineer
224
+ company: Acme Corp
225
+ ```
226
+
227
+ ## Verbose Mode
228
+
229
+ Use `-v` or `--verbose` to see what the system is doing:
230
+
231
+ ```bash
232
+ protokoll feedback /path/to/transcript.md -f "YB should be Wibey" -v
233
+
234
+ [Processing feedback...]
235
+
236
+ [Executing: correct_text]
237
+ ✓ Replaced "YB" → "Wibey" (2x)
238
+
239
+ [Executing: add_term]
240
+ ✓ Added term: Wibey = "Correct spelling of YB"
241
+ sounds_like: YB, Y B
242
+
243
+ [Executing: complete]
244
+
245
+ ────────────────────────────────────────────────────────────
246
+ [Changes Applied]
247
+ ────────────────────────────────────────────────────────────
248
+ ✓ Replaced "YB" with "Wibey" (2 occurrences)
249
+ ✓ Added term "Wibey" to context
250
+
251
+ File updated: /path/to/transcript.md
252
+ ```
253
+
254
+ ## Use Cases
255
+
256
+ ### Fixing Common Transcription Errors
257
+
258
+ ```bash
259
+ # API pronounced letter-by-letter
260
+ protokoll feedback notes.md -f "API should be written as A-P-I"
261
+
262
+ # Acronyms
263
+ protokoll feedback notes.md -f "AWS was transcribed as 'ay double-u ess', fix it"
264
+
265
+ # Technical terms
266
+ protokoll feedback notes.md -f "Kubernetes was written as 'Cooper Netties'"
267
+ ```
268
+
269
+ ### Fixing Names
270
+
271
+ ```bash
272
+ # Full name correction
273
+ protokoll feedback notes.md -f "Priya was transcribed as 'pre a'"
274
+
275
+ # Name with title
276
+ protokoll feedback notes.md -f "Doctor Smith was written as 'Doc Tor Smith'"
277
+
278
+ # International names
279
+ protokoll feedback notes.md -f "Mikhail was transcribed as 'Me Kyle'"
280
+ ```
281
+
282
+ ### Project Reorganization
283
+
284
+ ```bash
285
+ # Simple reassignment
286
+ protokoll feedback notes.md -f "This belongs in the Q4-planning project"
287
+
288
+ # With explanation
289
+ protokoll feedback notes.md -f "This was incorrectly classified as personal, it's actually work related to the Sales project"
290
+ ```
291
+
292
+ ## Troubleshooting
293
+
294
+ ### "Text not found in transcript"
295
+
296
+ The exact text you specified doesn't exist. Try:
297
+ - Checking the exact spelling/capitalization in the transcript
298
+ - Using a shorter, more unique phrase
299
+ - Looking at the transcript preview shown when running the command
300
+
301
+ ### "Project not found"
302
+
303
+ The project ID you specified doesn't exist. List available projects:
304
+
305
+ ```bash
306
+ protokoll project list
307
+ ```
308
+
309
+ ### Changes Not Taking Effect
310
+
311
+ Make sure you're not running in `--dry-run` mode. Remove that flag to apply changes.
312
+
313
+ ### Model Not Understanding Feedback
314
+
315
+ Try being more explicit:
316
+ - Instead of: "Fix the name"
317
+ - Try: "Replace 'San Jay' with 'Sanjay' everywhere"
318
+
319
+ ## Best Practices
320
+
321
+ 1. **Be specific**: "Replace X with Y" is clearer than "fix X"
322
+
323
+ 2. **Include context**: "WCNP is Walmart's Native Cloud Platform" helps the model add useful metadata
324
+
325
+ 3. **Use --dry-run first**: Preview changes before applying them
326
+
327
+ 4. **Check with --verbose**: See exactly what actions are being taken
328
+
329
+ 5. **Review context files**: Check `~/.protokoll/` to see what was added
330
+
331
+ ## See Also
332
+
333
+ - [Context System](./context-system.md) - How context storage works
334
+ - [Transcript Actions](./action.md) - Other ways to edit transcripts
335
+ - [Context Commands](./context-commands.md) - Managing entities directly
package/guide/index.md CHANGED
@@ -13,12 +13,16 @@ Protokoll transforms audio recordings into intelligent, context-enhanced transcr
13
13
  ### Getting Started
14
14
  - [**Quick Start**](./quickstart.md): Get Protokoll working in 5 minutes
15
15
  - [**Configuration**](./configuration.md): All configuration options
16
+ - [**Config Command**](./config.md): Interactive configuration editor
16
17
 
17
18
  ### Understanding Protokoll
18
19
  - [**Architecture**](./architecture.md): System design and data flow
19
20
  - [**Context System**](./context-system.md): How context storage works
21
+ - [**Context Commands**](./context-commands.md): CLI for managing entities
20
22
  - [**Routing**](./routing.md): Intelligent note routing
21
23
  - [**Reasoning**](./reasoning.md): Reasoning model integration
24
+ - [**Transcript Actions**](./action.md): Post-processing commands (combine, etc.)
25
+ - [**Feedback**](./feedback.md): Intelligent feedback for corrections
22
26
 
23
27
  ### Development
24
28
  - [**Development**](./development.md): Building and testing
@@ -29,11 +33,11 @@ Protokoll transforms audio recordings into intelligent, context-enhanced transcr
29
33
  ### Essential Commands
30
34
 
31
35
  ```bash
32
- # Basic transcription (self-reflection enabled by default)
36
+ # Basic transcription (interactive and self-reflection enabled by default)
33
37
  protokoll --input-directory ./recordings
34
38
 
35
- # Interactive mode for learning
36
- protokoll --input-directory ./recordings --interactive
39
+ # Disable interactive mode (for automation/cron)
40
+ protokoll --input-directory ./recordings --batch
37
41
 
38
42
  # Disable self-reflection
39
43
  protokoll --input-directory ./recordings --no-self-reflection
@@ -42,6 +46,97 @@ protokoll --input-directory ./recordings --no-self-reflection
42
46
  protokoll --input-directory ./recordings --debug --verbose
43
47
  ```
44
48
 
49
+ ### Configuration Commands
50
+
51
+ ```bash
52
+ # Interactive configuration editor
53
+ protokoll config
54
+
55
+ # List all settings
56
+ protokoll config --list
57
+
58
+ # View a specific setting
59
+ protokoll config model
60
+
61
+ # Set a specific value
62
+ protokoll config model gpt-4o-mini
63
+ protokoll config debug true
64
+ protokoll config outputDirectory ~/my-notes
65
+ ```
66
+
67
+ ### Context Management Commands
68
+
69
+ ```bash
70
+ # List entities
71
+ protokoll project list
72
+ protokoll person list
73
+ protokoll term list
74
+ protokoll company list
75
+ protokoll ignored list
76
+
77
+ # Show entity details
78
+ protokoll project show <id>
79
+ protokoll person show <id>
80
+
81
+ # Add new entities (interactive)
82
+ protokoll project add
83
+ protokoll person add
84
+ protokoll term add
85
+ protokoll company add
86
+ protokoll ignored add
87
+
88
+ # Delete entities
89
+ protokoll project delete <id>
90
+ protokoll person delete <id> --force
91
+
92
+ # Context overview
93
+ protokoll context status
94
+ protokoll context search <query>
95
+ ```
96
+
97
+ ### Transcript Actions
98
+
99
+ ```bash
100
+ # Edit a single transcript - change title
101
+ protokoll action --title "Time to Celebrate" /path/to/transcript.md
102
+
103
+ # Edit a single transcript - change project
104
+ protokoll action --project client-alpha /path/to/transcript.md
105
+
106
+ # Combine multiple transcripts (source files are auto-deleted)
107
+ protokoll action --title "Full Meeting Notes" --combine "/path/to/file1.md
108
+ /path/to/file2.md
109
+ /path/to/file3.md"
110
+
111
+ # Combine and change project
112
+ protokoll action --title "Sprint Planning" --project my-project --combine "/path/to/files..."
113
+
114
+ # Preview without making changes
115
+ protokoll action --title "New Title" /path/to/file.md --dry-run --verbose
116
+ ```
117
+
118
+ ### Feedback
119
+
120
+ ```bash
121
+ # Provide feedback interactively
122
+ protokoll feedback /path/to/transcript.md
123
+
124
+ # Provide feedback directly
125
+ protokoll feedback /path/to/transcript.md -f "YB should be Wibey"
126
+
127
+ # Fix a name and add to context
128
+ protokoll feedback /path/to/transcript.md -f "San Jay Grouper is actually Sanjay Gupta"
129
+
130
+ # Change project assignment
131
+ protokoll feedback /path/to/transcript.md -f "This should be in the Quantum Readiness project"
132
+
133
+ # Preview changes
134
+ protokoll feedback /path/to/transcript.md -f "WCMP should be WCNP" --dry-run -v
135
+
136
+ # Get help on feedback options
137
+ protokoll feedback --help-me
138
+ ```
139
+
45
140
  ### Key Directories
46
141
 
47
142
  ```
@@ -84,8 +179,9 @@ If you're an AI helping someone use Protokoll:
84
179
  | Setting | Default Value |
85
180
  |---------|---------------|
86
181
  | Reasoning Model | `gpt-5.2` |
182
+ | Reasoning Level | `medium` |
87
183
  | Transcription Model | `whisper-1` |
88
184
  | Self-Reflection | `true` (enabled) |
89
- | Interactive Mode | `false` (disabled) |
185
+ | Interactive Mode | `true` (enabled, use `--batch` to disable) |
90
186
  | Output Structure | `month` |
91
187
 
@@ -11,20 +11,21 @@ When enabled, Protokoll will:
11
11
  3. Offer to remember new entities
12
12
  4. Request routing clarification
13
13
 
14
- **Note**: Interactive mode is disabled by default. Use `--interactive` to enable it.
14
+ **Note**: Interactive mode is **enabled by default**. Use `--batch` to disable it for automation.
15
15
 
16
- ## Enabling Interactive Mode
16
+ ## Disabling Interactive Mode
17
+
18
+ For automation or cron jobs, disable interactive prompts:
17
19
 
18
20
  ```bash
19
- protokoll --interactive --input-directory ./recordings
21
+ protokoll --batch --input-directory ./recordings
20
22
  ```
21
23
 
22
24
  Or in config:
23
25
 
24
26
  ```yaml
25
27
  # ~/.protokoll/config.yaml
26
- features:
27
- interactive: true
28
+ interactive: false
28
29
  ```
29
30
 
30
31
  ## Clarification Types
@@ -93,15 +94,15 @@ All clarifications are recorded in the session file:
93
94
  }
94
95
  ```
95
96
 
96
- ## Non-Interactive Mode (Default)
97
+ ## Non-Interactive Mode (Batch)
97
98
 
98
- By default, Protokoll runs without prompts:
99
+ For automation, run without prompts using `--batch`:
99
100
 
100
101
  ```bash
101
- protokoll --input-directory ./recordings
102
+ protokoll --batch --input-directory ./recordings
102
103
  ```
103
104
 
104
- In non-interactive mode:
105
+ In non-interactive (batch) mode:
105
106
  - Uses suggestions when available
106
107
  - Skips unknown entities
107
108
  - Uses default routing
@@ -109,7 +110,7 @@ In non-interactive mode:
109
110
 
110
111
  ## First-Run Onboarding
111
112
 
112
- On first run with `--interactive` and no existing config:
113
+ On first run with interactive mode (the default) and no existing config:
113
114
 
114
115
  ```
115
116
  Welcome to Protokoll!
@@ -182,14 +183,14 @@ type ClarificationType =
182
183
 
183
184
  ### No Prompts Appearing
184
185
 
185
- 1. Check `--interactive` flag is set
186
- 2. Verify terminal supports prompts
187
- 3. Check if running in a non-TTY environment
186
+ 1. Check `--batch` flag is NOT set
187
+ 2. Check config doesn't have `interactive: false`
188
+ 3. Verify terminal supports prompts (TTY environment required)
188
189
 
189
190
  ### Too Many Prompts
190
191
 
191
192
  1. Add more context entries
192
- 2. Run without `--interactive` for known content
193
+ 2. Run with `--batch` for known content
193
194
  3. Add sounds_like mappings
194
195
 
195
196
  ### Prompts Timing Out
@@ -43,10 +43,8 @@ mkdir -p ~/.protokoll
43
43
  ```yaml
44
44
  # ~/.protokoll/config.yaml
45
45
  model: "gpt-5.2"
46
- routing:
47
- default:
48
- path: "~/notes"
49
- structure: "month"
46
+ outputDirectory: "~/notes"
47
+ outputStructure: "month"
50
48
  ```
51
49
 
52
50
  ## First Transcription
@@ -59,12 +57,24 @@ protokoll --input-directory ~/recordings
59
57
  # Self-reflection report is generated by default
60
58
  ```
61
59
 
60
+ When processing multiple files, you'll see progress indicators:
61
+
62
+ ```
63
+ Found 11 file(s) to process in ~/recordings
64
+ [1/11] Starting: ~/recordings/meeting.m4a
65
+ [1/11] Transcribing audio...
66
+ [1/11] Enhancing with gpt-5.2...
67
+ [1/11] Output: ~/notes/2026/01/260115-meeting.md (7.3s total)
68
+ [2/11] Starting: ~/recordings/quick-thought.m4a
69
+ ...
70
+ ```
71
+
62
72
  ## Interactive Mode
63
73
 
64
- Learn names and projects as you go:
74
+ Interactive mode is **enabled by default**. Protokoll will ask questions to learn names and projects as you go:
65
75
 
66
76
  ```bash
67
- protokoll --input-directory ~/recordings --interactive
77
+ protokoll --input-directory ~/recordings
68
78
  ```
69
79
 
70
80
  Protokoll will ask:
@@ -111,6 +121,9 @@ protokoll --input-directory ~/recordings --debug
111
121
  # Disable self-reflection (enabled by default)
112
122
  protokoll --input-directory ~/recordings --no-self-reflection
113
123
 
124
+ # Disable interactive mode (for automation/cron jobs)
125
+ protokoll --input-directory ~/recordings --batch
126
+
114
127
  # Dry run (show what would happen)
115
128
  protokoll --input-directory ~/recordings --dry-run
116
129
 
@@ -124,8 +137,9 @@ protokoll --input-directory ~/recordings --model claude-3-5-sonnet
124
137
  |--------|---------|
125
138
  | `--model` | `gpt-5.2` |
126
139
  | `--transcription-model` | `whisper-1` |
140
+ | `--reasoning-level` | `medium` |
127
141
  | `--self-reflection` | `true` (enabled) |
128
- | `--interactive` | `false` (disabled) |
142
+ | Interactive mode | `true` (enabled, use `--batch` to disable) |
129
143
  | Output structure | `month` |
130
144
  | Filename options | `date`, `time`, `subject` |
131
145
 
@@ -45,14 +45,27 @@ The reasoning system:
45
45
  ```yaml
46
46
  # ~/.protokoll/config.yaml
47
47
  model: "gpt-5.2"
48
+ reasoningLevel: "medium" # low, medium, or high
48
49
  ```
49
50
 
50
51
  Or via command line:
51
52
 
52
53
  ```bash
53
- protokoll --model claude-3-5-sonnet --input-directory ./recordings
54
+ protokoll --model claude-3-5-sonnet --reasoning-level medium --input-directory ./recordings
54
55
  ```
55
56
 
57
+ ## Reasoning Levels
58
+
59
+ For models that support the `reasoning_effort` parameter (gpt-5.1, gpt-5.2, o1, o1-mini, o3, o3-mini), you can control how much reasoning effort the model expends:
60
+
61
+ | Level | Description | Best For |
62
+ |-------|-------------|----------|
63
+ | `low` | Quick processing, minimal reasoning | Simple transcripts with few corrections needed |
64
+ | `medium` | **Default** - Balanced reasoning | Standard transcription with context lookup |
65
+ | `high` | Maximum reasoning effort | Unusual or highly technical content |
66
+
67
+ The default is `medium` because transcript enhancement benefits from balanced reasoning: looking up names, correcting spellings, and categorizing content requires moderate context analysis. Use `low` for simple transcripts with few corrections needed, or `high` for complex technical content.
68
+
56
69
  ## Reasoning Strategies
57
70
 
58
71
  ### Simple
@@ -175,9 +188,10 @@ interface ReasoningResponse {
175
188
 
176
189
  ### Slow Processing
177
190
 
178
- 1. Use faster model: `--model gpt-4o-mini`
179
- 2. Check self-reflection for bottlenecks
180
- 3. Add more context to reduce iterations
191
+ 1. Use lower reasoning level: `--reasoning-level low`
192
+ 2. Use faster model: `--model gpt-4o-mini`
193
+ 3. Check self-reflection for bottlenecks
194
+ 4. Add more context to reduce iterations
181
195
 
182
196
  ### Poor Quality
183
197