task-summary-extractor 8.1.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/QUICK_START.md ADDED
@@ -0,0 +1,272 @@
1
+ # Quick Start Guide
2
+
3
+ > From zero to your first analysis in **under 5 minutes**.
4
+ >
5
+ > For the full feature list, CLI reference, and configuration → [README.md](README.md)
6
+
7
+ ---
8
+
9
+ ## Step 1: Install prerequisites
10
+
11
+ You need three things on your machine:
12
+
13
+ ### Node.js (≥ 18)
14
+
15
+ Check: `node --version`
16
+
17
+ If not installed → [nodejs.org](https://nodejs.org/) (LTS recommended)
18
+
19
+ ### ffmpeg
20
+
21
+ Check: `ffmpeg -version`
22
+
23
+ If not installed:
24
+ - **Windows**: [Download from gyan.dev](https://www.gyan.dev/ffmpeg/builds/) → extract → add the `bin` folder to your PATH
25
+ - **Mac**: `brew install ffmpeg`
26
+ - **Linux**: `sudo apt install ffmpeg`
27
+
28
+ > **How to add to PATH on Windows:**
29
+ > 1. Extract ffmpeg to `C:\ffmpeg`
30
+ > 2. Search "Environment Variables" in Start
31
+ > 3. Edit `Path` → Add `C:\ffmpeg\bin`
32
+ > 4. Restart your terminal
33
+
34
+ ### Gemini API Key (free)
35
+
36
+ 1. Go to [Google AI Studio](https://aistudio.google.com/apikey)
37
+ 2. Sign in with your Google account
38
+ 3. Click "Create API key"
39
+ 4. Copy the key — you'll paste it in Step 2
40
+
41
+ ---
42
+
43
+ ## Step 2: Install the tool
44
+
45
+ **Option A — npm global install (recommended):**
46
+
47
+ ```bash
48
+ npm install -g task-summary-extractor
49
+ ```
50
+
51
+ That's it. `taskex` is now available system-wide.
52
+
53
+ Save your API key globally (one time):
54
+
55
+ ```bash
56
+ taskex config
57
+ ```
58
+
59
+ This saves to `~/.taskexrc` — works across all projects.
60
+
61
+ **Option B — Clone the repo (development):**
62
+
63
+ ```bash
64
+ git clone https://github.com/youssefadel94/task-summary-extractor.git
65
+ cd task-summary-extractor
66
+ node setup.js
67
+ ```
68
+
69
+ The setup script will:
70
+
71
+ 1. ✅ Check Node.js, ffmpeg, and git are installed
72
+ 2. ✅ Run `npm install` (installs dependencies)
73
+ 3. ✅ Create a `.env` file and ask for your Gemini API key
74
+ 4. ✅ Set up `.gitignore` so your recordings and keys stay local
75
+ 5. ✅ Create a sample folder to test with
76
+ 6. ✅ Validate the pipeline loads correctly
77
+
78
+ **Just follow the prompts.** If anything fails, it tells you exactly what to fix.
79
+
80
+ > Already set up? Run `node setup.js --check` to validate your environment.
81
+
82
+ ---
83
+
84
+ ## Step 3: Prepare your recording
85
+
86
+ Create a folder and put your video in it:
87
+
88
+ ```
89
+ my-meeting/
90
+ ├── Meeting Recording.mp4 ← Your video file (required)
91
+ └── Meeting Recording.vtt ← Subtitles (optional, but highly recommended)
92
+ ```
93
+
94
+ **That's the minimum.** You can optionally add more context:
95
+
96
+ ```
97
+ my-meeting/
98
+ ├── Meeting Recording.mp4
99
+ ├── Meeting Recording.vtt
100
+ ├── agenda.md ← Meeting agenda
101
+ ├── .tasks/ ← Context folder (gets priority)
102
+ │ ├── code-map.md ← What each module does
103
+ │ └── current-sprint.md ← What the team is working on
104
+ └── specs/
105
+ └── requirements.md ← Relevant specs
106
+ ```
107
+
108
+ The tool **automatically scans all subfolders** for documents. Use whatever structure fits your workflow.
109
+
110
+ **Supported files:**
111
+ - Video: `.mp4`, `.mkv`, `.webm`, `.avi`, `.mov`
112
+ - Docs: `.vtt`, `.srt`, `.txt`, `.md`, `.csv`, `.pdf`
113
+
114
+ ---
115
+
116
+ ## Step 4: Run it
117
+
118
+ ### Option A: Interactive (easiest)
119
+
120
+ ```bash
121
+ taskex
122
+ ```
123
+
124
+ The tool will:
125
+ 1. Show available folders — pick one
126
+ 2. Ask for your name
127
+ 3. Show available Gemini models — pick one (or press Enter for default)
128
+ 4. Run the full analysis pipeline
129
+
130
+ ### Option B: Specify everything upfront
131
+
132
+ ```bash
133
+ taskex --name "Your Name" "my-meeting"
134
+ ```
135
+
136
+ ### Option C: Pass API key directly (no .env)
137
+
138
+ ```bash
139
+ taskex --gemini-key "AIza..." --name "Your Name" "my-meeting"
140
+ ```
141
+
142
+ ### Option D: Skip Firebase (local only)
143
+
144
+ If you don't have Firebase set up, add `--skip-upload`:
145
+
146
+ ```bash
147
+ taskex --name "Your Name" --skip-upload "my-meeting"
148
+ ```
149
+
150
+ ### What happens
151
+
152
+ The pipeline will:
153
+ 1. **Compress** the video (~30s)
154
+ 2. **Segment** it into ≤5 min chunks
155
+ 3. **Upload** segments to Firebase Storage (if configured)
156
+ 4. **Analyze** each segment with Gemini AI — uses Firebase Storage URL directly when available (skips separate Gemini upload)
157
+ 5. **Quality check** — retry weak segments automatically (reuses file reference — no re-upload)
158
+ 6. **Compile** results across all segments
159
+ 7. **Output** `results.md` + `results.json`
160
+
161
+ > **Tip:** Use `--force-upload` to re-upload files that already exist in Storage. Use `--no-storage-url` to bypass Storage URL optimization and force Gemini File API uploads.
162
+
163
+ This takes **~2-5 minutes** depending on video length.
164
+
165
+ ---
166
+
167
+ ## Step 5: View your results
168
+
169
+ ```
170
+ my-meeting/runs/{timestamp}/
171
+ ├── results.md ← Open this! Your task document
172
+ ├── results.json ← Full pipeline data (JSON)
173
+ └── compilation.json ← All extracted items (JSON)
174
+ ```
175
+
176
+ **Open `results.md`** — it contains:
177
+ - Your personal task list (items assigned to you, TODOs, blockers)
178
+ - All tickets discussed with status, assignees, and confidence scores
179
+ - Change requests with file-level detail
180
+ - Action items with owners and deadlines
181
+ - Blockers and scope changes
182
+ - Confidence badges (🟢 HIGH, 🟡 MEDIUM, 🔴 LOW) on every item
183
+
184
+ ---
185
+
186
+ ## Try Dynamic Mode (no video needed)
187
+
188
+ Generate documents from a folder of docs:
189
+
190
+ ```bash
191
+ taskex --dynamic --request "Explain this codebase for new developers" "my-project"
192
+ ```
193
+
194
+ Output:
195
+
196
+ ```
197
+ my-project/runs/{timestamp}/
198
+ ├── INDEX.md ← Open this — document index
199
+ ├── dm-01-overview.md
200
+ ├── dm-02-guide.md
201
+ ├── dm-03-analysis.md
202
+ └── dynamic-run.json
203
+ ```
204
+
205
+ ---
206
+
207
+ ## Common Commands
208
+
209
+ | What You Want | Command |
210
+ |---------------|---------|
211
+ | **Interactive mode** | `taskex` |
212
+ | **Analyze a meeting** | `taskex --name "Jane" "my-meeting"` |
213
+ | **Save API key globally** | `taskex config` |
214
+ | **Pass API key inline** | `taskex --gemini-key "AIza..." "my-meeting"` |
215
+ | **Pick a specific model** | `taskex --model gemini-2.5-pro "my-meeting"` |
216
+ | **Run without Firebase** | `taskex --skip-upload "my-meeting"` |
217
+ | **Resume interrupted run** | `taskex --resume "my-meeting"` |
218
+ | **Force re-analysis** | `taskex --reanalyze "my-meeting"` |
219
+ | **Re-upload to Storage** | `taskex --force-upload "my-meeting"` |
220
+ | **Force Gemini File API** | `taskex --no-storage-url "my-meeting"` |
221
+ | **Preview without running** | `taskex --dry-run "my-meeting"` |
222
+ | **Deep dive docs** | `taskex --deep-dive "my-meeting"` |
223
+ | **Generate docs (no video)** | `taskex --dynamic "my-project"` |
224
+ | **Track progress via git** | `taskex --update-progress --repo "C:\project" "my-meeting"` |
225
+
226
+ > **Tip:** If the call folder isn't already a git repo, `--update-progress` auto-initializes one for baseline tracking.
227
+ | **Debug mode** | `taskex --log-level debug "my-meeting"` |
228
+
229
+ > Full CLI reference with all flags → [README.md — CLI Flags](README.md#cli-flags)
230
+
231
+ ---
232
+
233
+ ## Troubleshooting
234
+
235
+ | Problem | Fix |
236
+ |---------|-----|
237
+ | `ffmpeg not found` | [Download](https://www.gyan.dev/ffmpeg/builds/) → add `bin` folder to PATH → restart terminal |
238
+ | `GEMINI_API_KEY not set` | Run `taskex config` to save globally, or edit `.env` → paste from [AI Studio](https://aistudio.google.com/apikey) |
239
+ | `Cannot find module` | Run `npm install` |
240
+ | `ECONNREFUSED` | Check internet — Gemini API needs network access |
241
+ | Videos are slow | Normal — about 30-60 seconds per 5-minute segment |
242
+ | JSON parse warnings | Expected — the parser has 5 fallback strategies, usually self-corrects |
243
+ | Something broke | Run `node setup.js --check` to validate your setup |
244
+
245
+ ---
246
+
247
+ ## Updating the Tool
248
+
249
+ **npm global install:**
250
+
251
+ ```bash
252
+ npm update -g task-summary-extractor
253
+ ```
254
+
255
+ **Git clone:**
256
+
257
+ ```bash
258
+ git checkout main
259
+ git pull
260
+ ```
261
+
262
+ Your recordings, `.env`, logs — everything local is `.gitignore`d and safe.
263
+
264
+ ---
265
+
266
+ ## Next Steps
267
+
268
+ | What | Where |
269
+ |------|-------|
270
+ | Full feature list, all CLI flags, configuration | [README.md](README.md) |
271
+ | How the pipeline works internally | [ARCHITECTURE.md](ARCHITECTURE.md) |
272
+ | Module map, line counts, roadmap | [EXPLORATION.md](EXPLORATION.md) |