devdaily-ai 0.3.0 → 0.5.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 CHANGED
@@ -4,659 +4,876 @@
4
4
 
5
5
  **Your AI-powered developer memory**
6
6
 
7
- Auto-generate standup notes, PR descriptions, and weekly summaries from your git history.
7
+ Auto-generate standup notes, PR descriptions, weekly summaries and never lose context when switching tasks.
8
8
 
9
9
  [![NPM Version](https://img.shields.io/npm/v/devdaily-ai)](https://www.npmjs.com/package/devdaily-ai)
10
10
  [![Node Version](https://img.shields.io/node/v/devdaily-ai)](https://nodejs.org)
11
+ [![Tests](https://img.shields.io/badge/tests-654%20passing-brightgreen)](#testing)
11
12
  [![License](https://img.shields.io/npm/l/devdaily-ai)](LICENSE)
12
13
  [![GitHub Stars](https://img.shields.io/github/stars/hempun10/devdaily)](https://github.com/hempun10/devdaily)
13
14
 
14
- [Installation](#installation) [Quick Start](#quick-start) [Commands](#commands) [Examples](#examples) [Contributing](docs/CONTRIBUTING.md)
15
+ [Installation](#installation) · [Quick Start](#quick-start) · [Commands](#commands) · [Configuration](#configuration) · [Contributing](docs/CONTRIBUTING.md)
15
16
 
16
17
  </div>
17
18
 
18
19
  ---
19
20
 
20
- ## Why DevDaily AI?
21
+ ## Why DevDaily?
21
22
 
22
- As developers, we spend too much time on repetitive tasks:
23
+ Developers lose hours every week to low-value repetitive work:
23
24
 
24
25
  - ⏱️ Writing standup notes every morning
25
26
  - 📝 Crafting PR descriptions from scratch
26
- - 📊 Summarizing weekly accomplishments
27
- - 🔍 Remembering what we were working on last week
27
+ - 📊 Compiling weekly accomplishments for managers
28
+ - 🧠 Trying to remember what you were doing before a context switch
28
29
 
29
- **DevDaily AI solves this.** It analyzes your git history and uses GitHub Copilot CLI to generate professional summaries in seconds.
30
+ **DevDaily fixes all of this.** It analyzes your git history, tracks your work automatically, and uses GitHub Copilot CLI to generate professional summaries in seconds.
31
+
32
+ ### What makes it different
33
+
34
+ Most dev tools generate text from commits. DevDaily goes further: it builds a **persistent local memory** of your work. Every standup you run, every PR you generate, every branch you switch — DevDaily silently records a snapshot. That means:
35
+
36
+ - `devdaily context` can tell you exactly where you left off, even days later
37
+ - `devdaily recall auth` finds every time you touched authentication code
38
+ - `devdaily week` produces accurate summaries even if you forgot to commit on some days
39
+ - Cross-project summaries work across all your repositories
40
+
41
+ No cloud. No telemetry. Everything stays in `~/.config/devdaily/journal/`.
42
+
43
+ ---
30
44
 
31
45
  ## Features
32
46
 
33
- | Feature | Description |
34
- | ---------------------------- | -------------------------------------------------------------------- |
35
- | **🚀 Standup Generator** | Generate daily standup notes from recent commits in 30 seconds |
36
- | **📄 Smart PR Descriptions** | Auto-generate PR titles and descriptions with commitlint integration |
37
- | **📅 Weekly Summaries** | Track your impact and accomplishments over time |
38
- | **🎫 GitHub Issues Context** | Fetches linked issues for richer, context-aware AI summaries |
39
- | **🖥️ Interactive Dashboard** | Beautiful TUI with keyboard navigation and real-time stats |
40
- | **🩺 Doctor Command** | Diagnose and auto-fix setup issues with `devdaily doctor --fix` |
41
- | **⚙️ Customizable Config** | Per-project and global configuration with themes |
42
- | **⌨️ Shell Integration** | `dd` alias, tab completions for bash/zsh/fish |
43
- | **🔄 Interactive Workflow** | Preview, edit, and create PRs with interactive menus |
44
- | **📋 Auto-Copy** | All outputs copied to clipboard automatically |
45
- | **🎨 Professional Output** | Clean terminal UI with ASCII art and beautiful formatting |
46
- | **🔧 Multi-Format** | Export to Markdown, Slack, JSON, or plain text |
47
+ | Feature | Description |
48
+ | ------------------------------ | ------------------------------------------------------------------------------------ |
49
+ | **🚀 Standup Generator** | Generate daily standup notes from commits, PRs, and tickets in 30 seconds |
50
+ | **📄 Smart PR Descriptions** | Auto-generate titles and descriptions with template support and commitlint |
51
+ | **📅 Weekly Summaries** | Cross-project weekly summaries with date ranges, journal enrichment, and JSON export |
52
+ | **📸 Work Snapshots** | Capture rich snapshots of your repo state — branches, commits, PRs, tickets, diffs |
53
+ | **🧠 Persistent Memory** | Local work journal that remembers everything across sessions and days |
54
+ | **🔄 Context Recovery** | `devdaily context` — fight context-switching amnesia, resume where you left off |
55
+ | **🔍 Work Search** | `devdaily recall` search your history by keyword, file, tag, or date range |
56
+ | **⚡ Auto-Snapshots** | Snapshots happen invisibly when you run commands or commit code — zero friction |
57
+ | **🪝 Git Hooks** | Opt-in `post-commit` and `post-checkout` hooks for automatic capture |
58
+ | **🎫 PM Integration** | GitHub Issues, Jira, Linear, and Notion support for ticket context |
59
+ | **🖥️ Interactive Dashboard** | Beautiful TUI with keyboard navigation and real-time stats |
60
+ | **🩺 Doctor Command** | Diagnose and auto-fix setup issues |
61
+ | **🔔 Notifications** | Send standups to Slack or Discord via webhooks |
62
+ | **🔀 Interactive PR Workflow** | Preview, edit, select labels/reviewers/assignees, then create PRs |
63
+ | **📋 Auto-Copy** | All outputs copied to clipboard automatically |
64
+ | **🎨 Professional Output** | Clean terminal UI with theming, ASCII art, and multi-format export |
65
+
66
+ ---
47
67
 
48
68
  ## Installation
49
69
 
50
- **Prerequisites:**
70
+ ### Prerequisites
51
71
 
52
- - Node.js >= 18.0.0
53
- - Git repository
54
- - GitHub CLI with Copilot extension
72
+ - **Node.js** >= 18.0.0
73
+ - **Git** (any recent version)
74
+ - **GitHub CLI** with Copilot extension (for AI features)
55
75
 
56
- ### Quick Install (Recommended)
76
+ ### Quick Install
57
77
 
58
78
  ```bash
59
79
  # Install DevDaily
60
80
  npm install -g devdaily-ai
61
81
 
62
- # Run doctor to check/fix prerequisites
82
+ # Check prerequisites and auto-fix issues
63
83
  devdaily doctor --fix
64
84
 
65
- # Set up shell alias and completions
85
+ # Interactive setup aliases, completions, PM integration, git hooks
66
86
  devdaily init
67
87
  ```
68
88
 
69
- That's it! Now you can use `dd` as a shortcut anywhere.
70
-
71
- ### Manual Setup
72
-
73
- If you prefer to set up manually:
74
-
75
- #### 1. Install GitHub CLI (if not already installed)
89
+ After setup, use `dd` as a shortcut anywhere:
76
90
 
77
91
  ```bash
78
- # macOS
79
- brew install gh
80
-
81
- # Windows
82
- winget install --id GitHub.cli
83
-
84
- # Linux
85
- sudo apt install gh # Debian/Ubuntu
86
- sudo dnf install gh # Fedora/RHEL
92
+ dd standup # Generate standup
93
+ dd pr # Generate PR description
94
+ dd week # Weekly summary
95
+ dd context # Resume where you left off
87
96
  ```
88
97
 
89
- Or visit [cli.github.com](https://cli.github.com) for other installation methods.
98
+ ### GitHub Copilot CLI Setup
90
99
 
91
- #### 2. Install GitHub Copilot CLI Extension
100
+ DevDaily uses GitHub Copilot CLI for AI-powered text generation. If you don't have it:
92
101
 
93
102
  ```bash
94
- gh extension install github/gh-copilot
95
- gh auth login
96
- ```
103
+ # Install GitHub CLI
104
+ brew install gh # macOS
105
+ # winget install GitHub.cli # Windows
106
+ # sudo apt install gh # Debian/Ubuntu
97
107
 
98
- #### 3. Install DevDaily AI
108
+ # Authenticate
109
+ gh auth login
99
110
 
100
- ```bash
101
- npm install -g devdaily-ai
111
+ # Install Copilot extension
112
+ gh extension install github/gh-copilot
102
113
  ```
103
114
 
104
- ### Verify Installation
105
-
106
- ```bash
107
- # Check everything is set up correctly
108
- devdaily doctor
115
+ Run `devdaily doctor` at any time to verify your setup.
109
116
 
110
- # Or manually check version
111
- devdaily --version
112
- devdaily --help
113
- ```
117
+ ---
114
118
 
115
119
  ## Quick Start
116
120
 
117
- Navigate to any git repository and run:
118
-
119
121
  ```bash
120
- # First time setup (sets up 'dd' alias and shell completions)
121
- devdaily init
122
+ # Navigate to any git repository
123
+ cd your-project
122
124
 
123
- # Generate standup notes
124
- devdaily standup # or: dd s
125
+ # Generate today's standup
126
+ devdaily standup
125
127
 
126
- # Generate PR description
127
- devdaily pr # or: dd p
128
+ # Generate a PR description for your current branch
129
+ devdaily pr
128
130
 
129
- # Get weekly summary
130
- devdaily week # or: dd w
131
+ # Get this week's summary
132
+ devdaily week
133
+
134
+ # Recover context after a break
135
+ devdaily context
136
+
137
+ # Search your work history
138
+ devdaily recall "authentication"
131
139
 
132
- # Open interactive dashboard
133
- devdaily dash # or: dd d
140
+ # Take a manual snapshot with a note
141
+ devdaily snapshot --note "Finished auth refactor"
134
142
  ```
135
143
 
136
- All outputs are automatically copied to your clipboard! 📋
144
+ ---
137
145
 
138
146
  ## Commands
139
147
 
140
- ### `devdaily standup`
148
+ ### Core Commands
141
149
 
142
- Generate daily standup notes from your recent commits.
150
+ | Command | Aliases | Description |
151
+ | ------------------- | ------------------ | ------------------------------------------------------------ |
152
+ | `devdaily standup` | `s`, `su`, `daily` | Generate standup notes from recent commits, PRs, and tickets |
153
+ | `devdaily pr` | `p`, `pull` | Generate PR description from current branch |
154
+ | `devdaily week` | `w`, `weekly` | Generate weekly work summary |
155
+ | `devdaily context` | `ctx`, `resume` | Recover what you were working on |
156
+ | `devdaily recall` | `search`, `find` | Search your work history |
157
+ | `devdaily snapshot` | `snap`, `save` | Manually capture a work snapshot |
143
158
 
144
- ```bash
145
- # Yesterday's work (default)
146
- devdaily standup
159
+ ### Setup & Utility
147
160
 
148
- # Last 3 days
149
- devdaily standup --days=3
161
+ | Command | Aliases | Description |
162
+ | ------------------ | ---------------- | ----------------------------------- |
163
+ | `devdaily init` | — | Interactive setup wizard |
164
+ | `devdaily config` | `cfg` | Manage configuration |
165
+ | `devdaily doctor` | `check`, `setup` | Diagnose and fix prerequisites |
166
+ | `devdaily connect` | `pm`, `link` | Test project management connections |
167
+ | `devdaily dash` | `d`, `dashboard` | Interactive TUI dashboard |
150
168
 
151
- # Last week
152
- devdaily standup --days=7
169
+ ---
153
170
 
154
- # Output in Slack format
155
- devdaily standup --format=slack
171
+ ### `devdaily standup`
156
172
 
157
- # Plain text format
158
- devdaily standup --format=plain
173
+ Generate daily standup notes from your recent commits, PRs, and tickets.
159
174
 
160
- # Don't copy to clipboard
161
- devdaily standup --no-copy
175
+ ```bash
176
+ devdaily standup # Yesterday's work (default)
177
+ devdaily standup --days=3 # Last 3 days
178
+ devdaily standup --format=slack # Slack-formatted output
179
+ devdaily standup --context # Show detailed work analysis
180
+ devdaily standup --raw-context # Output raw context (no AI)
181
+ devdaily standup --send # Send to Slack/Discord
182
+ devdaily standup --no-journal # Skip auto-snapshot side-effect
162
183
  ```
163
184
 
164
- **Options:**
185
+ | Option | Description |
186
+ | ---------------------- | --------------------------------------------------- |
187
+ | `-d, --days <n>` | Number of days to look back (default: 1) |
188
+ | `-f, --format <type>` | Output format: `markdown`, `slack`, `plain`, `json` |
189
+ | `-a, --author <email>` | Filter by author email |
190
+ | `-t, --ticket <id...>` | Include specific ticket IDs for context |
191
+ | `--tone <type>` | Output tone: `engineering`, `mixed`, `business` |
192
+ | `--context` | Show detailed work context analysis |
193
+ | `--raw-context` | Output raw context block (no AI generation) |
194
+ | `--preview` | Show context and confirm before generating |
195
+ | `--send` | Send to all configured notification channels |
196
+ | `--slack` | Send to Slack |
197
+ | `--discord` | Send to Discord |
198
+ | `--no-tickets` | Skip fetching ticket context |
199
+ | `--no-prs` | Skip fetching PR context |
200
+ | `--no-copy` | Don't copy to clipboard |
201
+ | `--no-journal` | Skip auto-saving a snapshot |
202
+ | `--debug` | Show full prompt and context |
165
203
 
166
- - `--days, -d <number>` - Number of days to analyze (default: 1)
167
- - `--format, -f <format>` - Output format: markdown, slack, plain (default: markdown)
168
- - `--no-copy` - Don't copy to clipboard
204
+ ---
169
205
 
170
206
  ### `devdaily pr`
171
207
 
172
- Generate comprehensive PR descriptions with smart title generation.
208
+ Generate comprehensive PR descriptions with smart title generation, template support, and interactive workflows.
173
209
 
174
210
  ```bash
175
- # Generate PR description (interactive)
176
- devdaily pr
177
-
178
- # Create PR immediately
179
- devdaily pr --create
180
-
181
- # Create draft PR
182
- devdaily pr --draft
183
-
184
- # Compare to develop branch
185
- devdaily pr --base=develop
186
-
187
- # Don't copy to clipboard
188
- devdaily pr --no-copy
211
+ devdaily pr # Generate and preview
212
+ devdaily pr --create # Create PR on GitHub immediately
213
+ devdaily pr --draft # Create as draft PR
214
+ devdaily pr --base=develop # Compare against develop branch
215
+ devdaily pr --interactive # Select labels, reviewers, assignees
216
+ devdaily pr --ticket PROJ-123 # Include specific ticket context
217
+ devdaily pr --no-journal # Skip auto-snapshot
189
218
  ```
190
219
 
191
- **Options:**
220
+ | Option | Description |
221
+ | --------------------- | ------------------------------------------------- |
222
+ | `-b, --base <branch>` | Base branch to compare against |
223
+ | `-c, --create` | Create PR on GitHub |
224
+ | `-d, --draft` | Create as draft PR |
225
+ | `-t, --ticket <id>` | Include specific ticket/issue for context |
226
+ | `-i, --interactive` | Interactive mode for labels, reviewers, assignees |
227
+ | `-p, --preview` | Show preview before creating |
228
+ | `--no-tickets` | Skip fetching ticket context |
229
+ | `--no-template` | Ignore PR template |
230
+ | `--no-diff` | Skip diff context in AI prompt |
231
+ | `--no-prompt-file` | Ignore `.devdaily-pr-prompt.md` |
232
+ | `--no-copy` | Don't copy to clipboard |
233
+ | `--no-journal` | Skip auto-saving a snapshot |
234
+ | `--debug` | Show prompts and raw AI input |
235
+
236
+ **Smart features:**
237
+
238
+ - Auto-detects `.github/PULL_REQUEST_TEMPLATE.md` and fills sections
239
+ - Generates conventional commit titles (`feat:`, `fix:`, etc.)
240
+ - Extracts ticket/issue numbers from branch names and commits
241
+ - Supports custom prompt files (`.devdaily-pr-prompt.md`) for team conventions
192
242
 
193
- - `--base, -b <branch>` - Base branch to compare against (default: main)
194
- - `--create, -c` - Create PR on GitHub immediately
195
- - `--draft, -d` - Create PR as draft
196
- - `--no-copy` - Don't copy to clipboard
197
-
198
- **Interactive Menu:**
199
- When you run `devdaily pr` without flags, you get an interactive menu:
200
-
201
- - 👁️ Preview in terminal
202
- - 📋 Copy to clipboard
203
- - 🚀 Create PR on GitHub
204
- - 📝 Create draft PR
205
- - ❌ Cancel
206
-
207
- **Smart Features:**
208
-
209
- - Automatically generates PR title from conventional commits
210
- - Extracts issue numbers (e.g., "Closes #123")
211
- - Categorizes PR type (feature, bugfix, breaking change)
212
- - Parses commitlint messages for better titles
243
+ ---
213
244
 
214
245
  ### `devdaily week`
215
246
 
216
- Generate weekly summary of your accomplishments.
247
+ Generate weekly summaries with cross-project support and journal enrichment.
217
248
 
218
249
  ```bash
219
- # Current week (default)
220
- devdaily week
221
-
222
- # Last week
223
- devdaily week --last
224
-
225
- # Custom start date
226
- devdaily week --start="2026-02-01"
227
-
228
- # Don't copy to clipboard
229
- devdaily week --no-copy
250
+ devdaily week # Current week
251
+ devdaily week --last # Last week
252
+ devdaily week --from 2025-01-06 --to 2025-01-10 # Custom range
253
+ devdaily week --weeks-ago 2 # Two weeks ago
254
+ devdaily week --all-projects # Cross-project summary from journal
255
+ devdaily week --json # Output stats as JSON
256
+ devdaily week --save # Save summary to journal
230
257
  ```
231
258
 
232
- **Options:**
259
+ | Option | Description |
260
+ | --------------------- | --------------------------------------- |
261
+ | `-l, --last` | Show last week |
262
+ | `-s, --start <date>` | Custom start date (YYYY-MM-DD) |
263
+ | `--from <date>` | Start date for custom range |
264
+ | `--to <date>` | End date for custom range |
265
+ | `-w, --weeks-ago <n>` | Number of weeks back |
266
+ | `--all-projects` | Cross-project summary from journal data |
267
+ | `-p, --project <id>` | Filter by project identifier |
268
+ | `--save` | Save generated summary to journal |
269
+ | `--json` | Output stats as JSON (no AI) |
270
+ | `--raw-context` | Output raw context (no AI) |
271
+ | `--no-tickets` | Skip ticket fetching |
272
+ | `--no-prs` | Skip PR fetching |
273
+ | `--no-journal` | Skip journal data enrichment |
274
+ | `--no-auto-snapshot` | Skip auto-saving a snapshot |
275
+ | `--no-copy` | Don't copy to clipboard |
276
+ | `--debug` | Show full prompt |
233
277
 
234
- - `--last, -l` - Show last week instead of current week
235
- - `--start, -s <date>` - Custom start date (YYYY-MM-DD)
236
- - `--no-copy` - Don't copy to clipboard
278
+ ---
237
279
 
238
280
  ### `devdaily context`
239
281
 
240
- Recover work context from past commits (coming soon).
282
+ Recover what you were working on fight context-switching amnesia.
241
283
 
242
284
  ```bash
243
- devdaily context --days=7
285
+ devdaily context # Last 7 days of context
286
+ devdaily context --days=14 # Last 14 days
287
+ devdaily context --date 2025-01-10 # Specific date
288
+ devdaily context --ai # AI-powered "where did I leave off?" summary
289
+ devdaily context --all-projects # Context across all tracked projects
290
+ devdaily context --branches # Detailed active branch status
244
291
  ```
245
292
 
246
- ### `devdaily dash`
247
-
248
- Open the interactive dashboard with keyboard navigation.
293
+ | Option | Description |
294
+ | -------------------- | ---------------------------------------- |
295
+ | `-d, --days <n>` | Number of days to look back (default: 7) |
296
+ | `-p, --project <id>` | Filter by project |
297
+ | `--all-projects` | Show context across all tracked projects |
298
+ | `--date <date>` | Show context for a specific date |
299
+ | `--from <date>` | Start date for range |
300
+ | `--to <date>` | End date for range |
301
+ | `--ai` | Generate an AI-powered summary |
302
+ | `--branches` | Show detailed active branch status |
303
+ | `--raw` | Output raw context data |
304
+ | `--no-copy` | Don't copy to clipboard |
305
+ | `--debug` | Show debug output |
249
306
 
250
- ```bash
251
- # Open dashboard
252
- devdaily dash
307
+ ---
253
308
 
254
- # Short alias
255
- dd d
256
- ```
309
+ ### `devdaily recall`
257
310
 
258
- **Keyboard Shortcuts:**
311
+ Search your work history — "when did I last work on X?"
259
312
 
260
- - `s` - Generate standup
261
- - `p` - Generate PR description
262
- - `w` - Generate weekly summary
263
- - `c` - Open configuration
264
- - `r` - Refresh data
265
- - `q` - Quit
313
+ ```bash
314
+ devdaily recall "authentication" # Search by keyword
315
+ devdaily recall --file src/auth.ts # Find when a file was changed
316
+ devdaily recall --tag feature # Filter by tag
317
+ devdaily recall "login" --ai # AI summary of search results
318
+ devdaily recall --from 2025-01-01 --to 2025-01-31 # Date range
319
+ devdaily recall "PROJ-123" # Search by ticket ID
320
+ ```
266
321
 
267
- ### `devdaily init`
322
+ | Option | Description |
323
+ | --------------------- | -------------------------------- |
324
+ | `-p, --project <id>` | Filter by project |
325
+ | `--from <date>` | Start date (YYYY-MM-DD) |
326
+ | `--to <date>` | End date (YYYY-MM-DD) |
327
+ | `-d, --days <n>` | Search last N days (default: 90) |
328
+ | `-t, --tag <tags...>` | Filter by tags |
329
+ | `-f, --file <path>` | Search for a specific file path |
330
+ | `-l, --limit <n>` | Max results (default: 10) |
331
+ | `--ai` | AI-powered summary of results |
332
+ | `--json` | Output as JSON |
333
+ | `--no-copy` | Don't copy to clipboard |
334
+ | `--debug` | Show debug output |
268
335
 
269
- Set up DevDaily with shell aliases and completions.
336
+ ---
270
337
 
271
- ```bash
272
- # Interactive setup
273
- devdaily init
338
+ ### `devdaily snapshot`
274
339
 
275
- # Global setup (for all projects)
276
- devdaily init --global
340
+ Manually capture a snapshot of your current work state.
277
341
 
278
- # Only set up alias
279
- devdaily init --alias
342
+ > **Note:** You rarely need to run this manually. Snapshots are taken automatically when you run `standup`, `pr`, or `week`, and optionally on every commit/checkout via git hooks. Use this command when you want to attach a note, tag, or force a snapshot at a specific moment.
280
343
 
281
- # Only set up completions
282
- devdaily init --completions
344
+ ```bash
345
+ devdaily snapshot # Take a full snapshot
346
+ devdaily snapshot --light # Quick snapshot (no PRs/tickets)
347
+ devdaily snapshot --note "Finished auth refactor"
348
+ devdaily snapshot --tag milestone release
349
+ devdaily snapshot --list # List recent snapshots (7 days)
350
+ devdaily snapshot --list 30 # List last 30 days
351
+ devdaily snapshot --stats # Show journal storage stats
352
+ devdaily snapshot --prune 90 # Remove entries older than 90 days
283
353
  ```
284
354
 
285
- **Sets up:**
355
+ | Option | Description |
356
+ | --------------------- | ----------------------------------------- |
357
+ | `-d, --date <date>` | Snapshot date (YYYY-MM-DD) |
358
+ | `-p, --project <id>` | Override project identifier |
359
+ | `-n, --note <text>` | Attach a note |
360
+ | `-t, --tag <tags...>` | Add custom tags |
361
+ | `--light` | Quick mode — commits and branch info only |
362
+ | `--list [days]` | List recent snapshots |
363
+ | `--stats` | Show journal storage stats |
364
+ | `--prune <days>` | Remove entries older than N days |
365
+ | `--no-prs` | Skip PR data |
366
+ | `--no-tickets` | Skip ticket data |
367
+ | `--no-branches` | Skip branch listing |
368
+ | `--debug` | Show debug output |
286
369
 
287
- - Shell alias: `dd` → `devdaily`
288
- - Tab completions for bash/zsh/fish
289
- - Configuration file
370
+ ---
290
371
 
291
- ### `devdaily config`
372
+ ### `devdaily init`
292
373
 
293
- Manage DevDaily configuration.
374
+ Interactive setup wizard for aliases, completions, config, PM integration, and git hooks.
294
375
 
295
376
  ```bash
296
- # Interactive config editor
297
- devdaily config
298
-
299
- # Open config in your editor
300
- devdaily config --edit
377
+ devdaily init # Interactive setup
378
+ devdaily init --global # Global setup
379
+ devdaily init --git-hooks # Install auto-snapshot git hooks
380
+ devdaily init --remove-hooks # Remove devdaily git hooks
381
+ devdaily init --alias # Only set up shell alias
382
+ devdaily init --completions # Only set up tab completions
383
+ devdaily init --pm # Only set up PM integration
384
+ devdaily init --notifications # Only set up Slack/Discord
385
+ ```
301
386
 
302
- # Show current config
303
- devdaily config --show
387
+ **Git hooks** (opt-in):
304
388
 
305
- # Show config file path
306
- devdaily config --path
389
+ - `post-commit` Automatically snapshots after each commit
390
+ - `post-checkout` — Automatically snapshots when switching branches
391
+ - Runs in background, never slows down git
392
+ - POSIX-compatible, safe with existing hooks (appends, doesn't overwrite)
393
+ - Remove cleanly with `devdaily init --remove-hooks`
307
394
 
308
- # Reset to defaults
309
- devdaily config --reset
310
- ```
395
+ ---
311
396
 
312
397
  ### `devdaily doctor`
313
398
 
314
399
  Check system requirements and diagnose issues.
315
400
 
316
401
  ```bash
317
- # Check all prerequisites
318
- devdaily doctor
402
+ devdaily doctor # Check all prerequisites
403
+ devdaily doctor --fix # Attempt automatic fixes
404
+ ```
319
405
 
320
- # Attempt automatic fixes
321
- devdaily doctor --fix
406
+ **Checks:** Node.js version, Git, GitHub CLI, authentication, Copilot extension.
407
+
408
+ ---
409
+
410
+ ### `devdaily config`
411
+
412
+ Manage configuration.
322
413
 
323
- # Short alias
324
- devdaily check
414
+ ```bash
415
+ devdaily config # Interactive editor
416
+ devdaily config --show # Show current config
417
+ devdaily config --edit # Open in $EDITOR
418
+ devdaily config --path # Show config file path
419
+ devdaily config --reset # Reset to defaults
325
420
  ```
326
421
 
327
- **Checks:**
422
+ ---
328
423
 
329
- - Node.js version (>= 18)
330
- - ✅ Git installed
331
- - ✅ GitHub CLI installed
332
- - ✅ GitHub authentication
333
- - ✅ Copilot extension installed
424
+ ### `devdaily connect`
334
425
 
335
- **Auto-fix capabilities:**
426
+ Test project management connections.
336
427
 
337
- - Interactive GitHub authentication
338
- - Copilot extension installation
428
+ ```bash
429
+ devdaily connect # Test current PM integration
430
+ devdaily connect --test # Run connection test
431
+ ```
339
432
 
340
- ## GitHub Issues Integration
433
+ ---
341
434
 
342
- DevDaily automatically fetches GitHub issue context to provide **richer, more meaningful summaries**. When your commits reference issues (e.g., `fix #123`), DevDaily:
435
+ ## How Auto-Snapshots Work
343
436
 
344
- 1. Fetches the issue title and description
345
- 2. Categorizes it (bug, feature, docs, etc.)
346
- 3. Includes the context in AI prompts for better summaries
437
+ DevDaily captures your work state **automatically** at natural moments — you never have to think about it.
347
438
 
348
- **Benefits:**
439
+ ### When snapshots happen
349
440
 
350
- - PR descriptions explain the _why_ (business value), not just the _what_
351
- - Weekly summaries highlight impact by referencing completed issues
352
- - Standup notes include context about what you were working on
441
+ | Trigger | How | What's captured |
442
+ | ------------------- | ----------------- | --------------------------------------------- |
443
+ | `devdaily standup` | Side-effect | Light snapshot (commits, branch) |
444
+ | `devdaily pr` | Side-effect | Light snapshot + PR context |
445
+ | `devdaily week` | Side-effect | Light snapshot |
446
+ | `git commit` | Git hook (opt-in) | Light snapshot |
447
+ | `git checkout` | Git hook (opt-in) | Light snapshot + branch note |
448
+ | `devdaily snapshot` | Manual | Full snapshot (PRs, tickets, branches, diffs) |
353
449
 
354
- **Usage:**
450
+ ### Disabling auto-snapshots
355
451
 
356
452
  ```bash
357
- # Normal usage (issues fetched automatically)
358
- devdaily standup
453
+ # Per-command: skip with a flag
454
+ devdaily standup --no-journal
455
+ devdaily pr --no-journal
359
456
 
360
- # Skip issue fetching (faster, offline)
361
- devdaily standup --no-issues
362
- devdaily pr --no-issues
363
- devdaily week --no-issues
457
+ # Globally: disable in config
458
+ # .devdaily.json
459
+ {
460
+ "journal": {
461
+ "autoSnapshot": false
462
+ }
463
+ }
364
464
  ```
365
465
 
466
+ ### What's stored
467
+
468
+ Snapshots are saved locally to `~/.config/devdaily/journal/` as JSON files organized by date. Each snapshot records:
469
+
470
+ - Current branch and active local branches
471
+ - Today's commits with files changed
472
+ - Recent commits for context
473
+ - Open and recently merged PRs
474
+ - Extracted ticket/issue references
475
+ - Work category breakdown (frontend, backend, infra, etc.)
476
+ - Diff stats and top changed files
477
+ - Optional notes and tags
478
+
479
+ No data is uploaded anywhere. The journal is yours.
480
+
481
+ ---
482
+
366
483
  ## Configuration
367
484
 
368
- DevDaily supports both global and per-project configuration.
485
+ DevDaily supports global and per-project configuration.
369
486
 
370
- ### Config File Locations
487
+ ### Config file locations
371
488
 
372
- - **Global:** `~/.config/devdaily/config.json`
373
- - **Local:** `.devdailyrc` in your project root
489
+ | Scope | Path |
490
+ | ----------- | ----------------------------------------------------- |
491
+ | **Global** | `~/.config/devdaily/config.json` |
492
+ | **Local** | `.devdaily.json` in project root |
493
+ | **Secrets** | `.devdaily.secrets.json` (auto-added to `.gitignore`) |
374
494
 
375
- ### Example Configuration
495
+ Local config overrides global config.
496
+
497
+ ### Example configuration
376
498
 
377
499
  ```json
378
500
  {
501
+ "$schema": "https://raw.githubusercontent.com/hempun10/devdaily/main/schemas/devdaily.schema.json",
379
502
  "version": 1,
503
+
380
504
  "theme": {
381
505
  "primary": "cyan",
382
506
  "accent": "magenta"
383
507
  },
384
- "ascii": true,
385
- "compactMode": false,
508
+
386
509
  "output": {
387
510
  "format": "markdown",
388
511
  "copyToClipboard": true,
389
512
  "showStats": true
390
513
  },
391
- "projectManagement": {
392
- "tool": "github",
393
- "ticketPrefix": "PROJ"
514
+
515
+ "git": {
516
+ "defaultBranch": "main",
517
+ "excludePatterns": ["merge commit", "Merge branch"]
394
518
  },
519
+
395
520
  "standup": {
396
- "defaultDays": 1
521
+ "defaultDays": 1,
522
+ "groupBy": "ticket",
523
+ "includeTicketLinks": true,
524
+ "sections": ["completed", "in-progress", "blockers"]
397
525
  },
526
+
398
527
  "pr": {
399
- "defaultBase": "main"
528
+ "defaultBase": "main",
529
+ "includeDiff": true,
530
+ "maxDiffLines": 200,
531
+ "titleFormat": "conventional",
532
+ "includeTicketInTitle": true,
533
+ "autoLabels": true
400
534
  },
401
- "week": {
402
- "startDay": "monday"
403
- }
404
- }
405
- ```
406
535
 
407
- ### Project Management Integration
536
+ "week": {
537
+ "startDay": "monday",
538
+ "includeWeekends": false
539
+ },
408
540
 
409
- DevDaily supports multiple project management tools for richer context:
541
+ "journal": {
542
+ "autoSnapshot": true,
543
+ "gitHooks": false,
544
+ "hooks": {
545
+ "postCommit": true,
546
+ "postCheckout": true
547
+ },
548
+ "quiet": true
549
+ },
410
550
 
411
- ```json
412
- {
413
551
  "projectManagement": {
414
- // Tool: "github" | "jira" | "linear" | "notion" | "none"
415
- "tool": "jira",
416
-
417
- // Ticket prefix for extraction from branches/commits
418
- "ticketPrefix": "PROJ",
419
-
420
- // Jira settings
421
- "jira": {
422
- "baseUrl": "https://yourcompany.atlassian.net",
423
- "projectKey": "PROJ"
424
- },
552
+ "tool": "github",
553
+ "ticketPrefix": "PROJ"
554
+ },
425
555
 
426
- // Linear settings
427
- "linear": {
428
- "teamKey": "ENG"
556
+ "notifications": {
557
+ "slack": {
558
+ "enabled": false
429
559
  },
430
-
431
- // Notion settings
432
- "notion": {
433
- "databaseId": "your-database-id"
560
+ "discord": {
561
+ "enabled": false
434
562
  }
435
563
  }
436
564
  }
437
565
  ```
438
566
 
439
- **Environment Variables for Authentication:**
440
-
441
- ```bash
442
- # Jira
443
- export JIRA_BASE_URL="https://yourcompany.atlassian.net"
444
- export JIRA_EMAIL="you@company.com"
445
- export JIRA_API_TOKEN="your-api-token"
446
-
447
- # Linear
448
- export LINEAR_API_KEY="lin_api_xxx"
449
-
450
- # Notion
451
- export NOTION_API_KEY="secret_xxx"
452
- export NOTION_DATABASE_ID="xxx"
453
- ```
567
+ ### Project management integration
454
568
 
455
- **Ticket Extraction:**
569
+ DevDaily supports multiple PM tools for richer context in AI summaries:
456
570
 
457
- DevDaily automatically extracts ticket IDs from:
571
+ | Tool | Config | Auth |
572
+ | ----------------- | ------------------ | ----------------------------------------------- |
573
+ | **GitHub Issues** | `"tool": "github"` | GitHub CLI (`gh auth login`) |
574
+ | **Jira** | `"tool": "jira"` | `JIRA_API_TOKEN`, `JIRA_EMAIL`, `JIRA_BASE_URL` |
575
+ | **Linear** | `"tool": "linear"` | `LINEAR_API_KEY` |
576
+ | **Notion** | `"tool": "notion"` | `NOTION_API_KEY`, `NOTION_DATABASE_ID` |
458
577
 
459
- 1. **Branch names**: `feature/PROJ-123-description`, `PROJ-123/fix-bug`
460
- 2. **Commit messages**: `fix: resolve issue PROJ-123`
461
- 3. **Manual input**: `devdaily pr --ticket PROJ-123`
578
+ Set up interactively with `devdaily init --pm` or `devdaily connect`.
462
579
 
463
- ## Examples
580
+ **Ticket extraction** — DevDaily automatically finds ticket IDs from:
464
581
 
465
- See the [`examples/`](examples/) directory for detailed output samples:
582
+ 1. Branch names: `feature/PROJ-123-description`
583
+ 2. Commit messages: `fix: resolve issue PROJ-123`
584
+ 3. PR titles and bodies
585
+ 4. Manual input: `--ticket PROJ-123`
466
586
 
467
- - [Standup Output](examples/standup-output.md)
468
- - [PR Description Output](examples/pr-output.md)
469
- - [Weekly Summary Output](examples/week-output.md)
587
+ ### Custom PR prompt file
470
588
 
471
- ## How It Works
589
+ Create `.devdaily-pr-prompt.md` in your repo root to customize how AI generates PR descriptions (like `CLAUDE.md` but for PRs). DevDaily searches for this file automatically. Generate a starter with `devdaily init`.
472
590
 
473
- 1. **Analyzes Git History** - Uses `simple-git` to parse commits, diffs, and file changes
474
- 2. **Extracts Context** - Parses conventional commits, issue numbers, and PR types
475
- 3. **AI Summarization** - Leverages GitHub Copilot CLI to generate human-readable summaries
476
- 4. **Professional Output** - Formats with clean terminal UI (chalk, boxen, ora)
477
- 5. **Auto-Copy** - Copies results to clipboard for immediate use
591
+ ---
478
592
 
479
- ## Configuration
593
+ ## Privacy & Security
480
594
 
481
- DevDaily AI works out of the box with sensible defaults. No configuration file needed!
595
+ - **All data stays local.** The work journal is stored in `~/.config/devdaily/journal/` on your machine.
596
+ - **No telemetry.** DevDaily does not phone home.
597
+ - **AI context is minimal.** Only commit messages, branch names, and diff summaries are sent to GitHub Copilot CLI. Full file contents are never shared.
598
+ - **Secrets are separate.** API tokens are stored in `.devdaily.secrets.json`, which is auto-added to `.gitignore`.
599
+ - **Opt-in features.** Git hooks, notifications, and PM integrations are all opt-in.
482
600
 
483
- All settings can be controlled via command-line flags.
601
+ ---
484
602
 
485
603
  ## Development
486
604
 
487
- Want to contribute? See our [Contributing Guide](docs/CONTRIBUTING.md).
605
+ ### Prerequisites
488
606
 
489
607
  ```bash
490
- # Clone the repository
491
608
  git clone https://github.com/hempun10/devdaily.git
492
609
  cd devdaily
493
-
494
- # Install dependencies
495
610
  npm install
611
+ ```
496
612
 
497
- # Run in development mode
498
- npm run dev
499
-
500
- # Run tests
501
- npm test
502
-
503
- # Run tests in watch mode
504
- npm test -- --watch
505
-
506
- # Type checking
507
- npm run typecheck
508
-
509
- # Lint code
510
- npm run lint
511
- npm run lint:fix
512
-
513
- # Format code
514
- npm run format
613
+ ### Common tasks
515
614
 
516
- # Build for production
517
- npm run build
615
+ ```bash
616
+ npm run dev # Run in development mode (tsx watch)
617
+ npm run build # Production build (tsup)
618
+ npm test # Run all tests (vitest)
619
+ npm run test:watch # Tests in watch mode
620
+ npm run test:coverage # Tests with coverage
621
+ npm run typecheck # TypeScript type checking
622
+ npm run lint # ESLint
623
+ npm run lint:fix # ESLint with auto-fix
624
+ npm run format # Prettier formatting
625
+ npm run format:check # Check formatting
518
626
  ```
519
627
 
520
- ### Project Structure
628
+ ### Project structure
521
629
 
522
630
  ```
523
- devdaily-ai/
631
+ devdaily/
524
632
  ├── src/
525
- │ ├── commands/ # CLI command implementations
526
- ├── standup.ts # Standup generator
527
- │ │ ├── pr.ts # PR description generator
528
- │ │ ├── week.ts # Weekly summary
529
- │ │ ├── dash.ts # Interactive dashboard
530
- │ │ ├── init.ts # Shell setup (aliases, completions)
531
- │ │ ├── config.ts # Configuration management
532
- │ │ └── context.ts # Context recovery (coming soon)
533
- │ ├── core/ # Core business logic
534
- │ │ ├── git-analyzer.ts # Git operations
535
- │ │ └── copilot.ts # Copilot CLI integration
536
- │ ├── ui/ # Terminal UI system
537
- │ │ ├── renderer.ts # Main UI rendering functions
538
- ├── colors.ts # Theme-aware color system
539
- │ │ ├── ascii.ts # ASCII art and symbols
540
- │ │ ├── help.ts # Beautiful help screens
541
- │ │ ├── dashboard.ts # Interactive TUI dashboard
542
- │ │ └── keyboard.ts # Keyboard input handling
543
- │ ├── config/ # Configuration system
544
- │ │ ├── schema.ts # Zod config schema
545
- │ │ └── index.ts # Config manager
546
- │ ├── utils/ # Utilities
547
- │ │ ├── helpers.ts # Date, clipboard utilities
548
- │ │ └── commitlint.ts # Commit parser
549
- │ ├── types/ # TypeScript type definitions
550
- └── index.ts # CLI entry point
551
- ├── tests/ # Test files
552
- ├── docs/ # Documentation
553
- ├── examples/ # Usage examples
554
- └── dist/ # Build output
633
+ │ ├── index.ts # CLI entry point
634
+ │ ├── commands/ # CLI command implementations
635
+ │ │ ├── standup.ts # Standup generator
636
+ │ │ ├── pr.ts # PR description generator
637
+ │ │ ├── week.ts # Weekly summary
638
+ │ │ ├── context.ts # Context recovery ("where did I leave off?")
639
+ │ │ ├── recall.ts # Work history search
640
+ │ │ ├── snapshot.ts # Manual snapshot capture
641
+ ├── dash.ts # Interactive TUI dashboard
642
+ │ │ ├── init.ts # Setup wizard
643
+ │ │ ├── config.ts # Configuration management
644
+ ├── doctor.ts # Prerequisite checker
645
+ │ │ └── connect.ts # PM connection tester
646
+ │ ├── core/ # Core business logic
647
+ │ │ ├── git-analyzer.ts # Git operations (commits, branches, diffs)
648
+ │ │ ├── copilot.ts # GitHub Copilot CLI integration
649
+ │ │ ├── context-analyzer.ts # Work context extraction & categorization
650
+ │ │ ├── standup-context.ts # Rich standup context builder
651
+ ├── snapshot-builder.ts # Repo state capture → WorkSnapshot
652
+ │ │ ├── work-journal.ts # Persistent local storage layer
653
+ │ │ ├── auto-snapshot.ts # Side-effect snapshots & git hook utilities
654
+ ├── project-management.ts # PM tool abstraction (Jira, Linear, Notion, GitHub)
655
+ │ │ ├── pm-errors.ts # PM error handling & diagnostics
656
+ │ │ ├── github.ts # GitHub API client
657
+ ├── github-repo.ts # GitHub repo metadata & PR creation
658
+ │ ├── pr-template.ts # PR template detection & parsing
659
+ │ │ ├── pr-prompt.ts # Custom PR prompt file support
660
+ │ │ └── notifications.ts # Slack/Discord webhook integration
661
+ ├── config/ # Configuration system
662
+ │ │ ├── schema.ts # Zod schema (type-safe config)
663
+ │ │ └── index.ts # Config manager (global + local + secrets)
664
+ │ ├── ui/ # Terminal UI system
665
+ │ │ ├── renderer.ts # Main UI rendering (boxes, sections, stats)
666
+ │ │ ├── colors.ts # Theme-aware color system
667
+ │ │ ├── ascii.ts # ASCII art and symbols
668
+ │ │ ├── help.ts # Help screen rendering
669
+ │ │ ├── dashboard.ts # Interactive TUI dashboard
670
+ │ │ ├── keyboard.ts # Keyboard input handling
671
+ │ │ └── index.ts # UI re-exports
672
+ │ ├── utils/ # Shared utilities
673
+ │ │ ├── helpers.ts # Date, clipboard, formatting helpers
674
+ │ │ ├── commitlint.ts # Conventional commit parsing
675
+ │ │ └── ui.ts # UI utility helpers
676
+ │ └── types/ # TypeScript type definitions
677
+ │ └── index.ts
678
+ ├── tests/ # Test suite (654 tests)
679
+ │ ├── auto-snapshot.test.ts # Auto-snapshot, hooks, side-effects (74 tests)
680
+ │ ├── work-journal.test.ts # Work journal & snapshot builder (123 tests)
681
+ │ ├── project-management.test.ts # PM integrations (130 tests)
682
+ │ ├── pr-creation.test.ts # PR creation & workflows (123 tests)
683
+ │ ├── standup-context.test.ts # Standup context building (70 tests)
684
+ │ ├── copilot.test.ts # Copilot CLI integration (38 tests)
685
+ │ ├── pr-prompt.test.ts # PR prompt file handling (26 tests)
686
+ │ ├── pr-template.test.ts # PR template parsing (25 tests)
687
+ │ ├── context-analyzer.test.ts # Context analysis (22 tests)
688
+ │ ├── git-analyzer.test.ts # Git operations (15 tests)
689
+ │ ├── commitlint.test.ts # Commit parsing (6 tests)
690
+ │ └── ui.test.ts # UI rendering (2 tests)
691
+ ├── docs/ # Documentation
692
+ │ ├── CONTRIBUTING.md
693
+ │ ├── TESTING.md
694
+ │ ├── PUBLISHING.md
695
+ │ ├── PROJECT_SETUP.md
696
+ │ ├── DEV_TOOLING_SETUP.md
697
+ │ ├── QUICK_REFERENCE.md
698
+ │ └── reports/
699
+ ├── schemas/ # JSON schemas
700
+ │ └── devdaily.schema.json # Config schema for IDE autocomplete
701
+ ├── examples/ # Example outputs
702
+ │ ├── standup-output.md
703
+ │ ├── pr-output.md
704
+ │ └── week-output.md
705
+ ├── scripts/ # Dev/test scripts
706
+ │ ├── setup-test-repo.sh
707
+ │ ├── setup-test-commits.sh
708
+ │ └── create-linear-issues.py
709
+ ├── .github/
710
+ │ ├── workflows/
711
+ │ │ ├── ci.yml # CI — lint, typecheck, test (Node 18/20/22)
712
+ │ │ └── publish.yml # NPM publish on GitHub release
713
+ │ └── PULL_REQUEST_TEMPLATE.md
714
+ ├── package.json
715
+ ├── tsconfig.json
716
+ ├── tsup.config.ts # Build config
717
+ ├── vitest.config.ts # Test config
718
+ ├── eslint.config.js # Lint config
719
+ ├── commitlint.config.cjs # Commit message linting
720
+ ├── CHANGELOG.md
721
+ └── LICENSE
555
722
  ```
556
723
 
557
- ## Tech Stack
724
+ ### Tech stack
725
+
726
+ | Layer | Technology |
727
+ | ----------------------- | ----------------------------- |
728
+ | **Language** | TypeScript (strict mode) |
729
+ | **CLI framework** | Commander.js |
730
+ | **Git operations** | simple-git |
731
+ | **AI integration** | GitHub Copilot CLI via execa |
732
+ | **Interactive prompts** | Inquirer.js |
733
+ | **Terminal UI** | chalk, picocolors, boxen, ora |
734
+ | **Clipboard** | clipboardy |
735
+ | **Config validation** | Zod |
736
+ | **Testing** | Vitest |
737
+ | **Build** | tsup (ESM output) |
738
+ | **Linting** | ESLint + Prettier |
739
+ | **Commit linting** | commitlint + Husky |
558
740
 
559
- - **TypeScript** - Type-safe development
560
- - **Commander.js** - CLI framework
561
- - **simple-git** - Git operations
562
- - **execa** - Subprocess execution for Copilot CLI
563
- - **inquirer** - Interactive prompts
564
- - **chalk** - Terminal styling
565
- - **boxen** - Terminal boxes
566
- - **ora** - Loading spinners
567
- - **clipboardy** - Clipboard operations
741
+ ---
568
742
 
569
- ## FAQ
743
+ ## Testing
570
744
 
571
- **Q: Does this work offline?**
572
- A: No, DevDaily AI requires GitHub Copilot CLI which needs an internet connection for AI summaries.
745
+ DevDaily has a comprehensive test suite with **654 tests across 12 test files**.
573
746
 
574
- **Q: What git hosting providers are supported?**
575
- A: DevDaily AI works with any git repository. GitHub CLI is only needed for creating PRs.
747
+ ```bash
748
+ # Run all tests
749
+ npm test
576
750
 
577
- **Q: Is my code sent to GitHub?**
578
- A: Only commit messages and diffs are sent to GitHub Copilot CLI for summarization. Full file contents are not shared.
751
+ # Run specific test file
752
+ npx vitest run tests/auto-snapshot.test.ts
579
753
 
580
- **Q: Can I customize the output format?**
581
- A: Yes! Use `--format` flag for standup command. PR and weekly commands support markdown by default.
754
+ # Watch mode
755
+ npm run test:watch
582
756
 
583
- **Q: Does it work with monorepos?**
584
- A: Yes! DevDaily AI analyzes the entire git history of your current directory.
757
+ # With coverage
758
+ npm run test:coverage
759
+ ```
585
760
 
586
- **Q: What about conventional commits?**
587
- A: DevDaily AI parses conventional commits automatically and uses them for smart PR title generation.
761
+ ### Test coverage by module
762
+
763
+ | Module | Tests | Coverage Area |
764
+ | -------------------- | ----- | ------------------------------------------------------ |
765
+ | `project-management` | 130 | Jira, Linear, Notion, GitHub Issues integration |
766
+ | `pr-creation` | 123 | PR generation, templates, interactive workflows |
767
+ | `work-journal` | 123 | Persistent storage, search, cross-project, merge logic |
768
+ | `auto-snapshot` | 74 | Side-effect snapshots, git hooks, install/remove |
769
+ | `standup-context` | 70 | Context building, formatting, enrichment |
770
+ | `copilot` | 38 | Copilot CLI integration, retries, error handling |
771
+ | `pr-prompt` | 26 | Custom prompt file loading and merging |
772
+ | `pr-template` | 25 | Template detection and section parsing |
773
+ | `context-analyzer` | 22 | Ticket extraction, work categorization |
774
+ | `git-analyzer` | 15 | Git operations, branch detection |
775
+ | `commitlint` | 6 | Conventional commit parsing |
776
+ | `ui` | 2 | UI rendering |
588
777
 
589
- ## Troubleshooting
778
+ ---
590
779
 
591
- ### Command not found: devdaily
780
+ ## FAQ
592
781
 
593
- Make sure you installed globally:
782
+ **Q: Does this work offline?**
783
+ A: Git analysis, snapshots, journal, and context recovery work offline. AI text generation requires GitHub Copilot CLI (internet connection). Use `--raw-context` to get structured data without AI.
594
784
 
595
- ```bash
596
- npm install -g devdaily-ai
597
- ```
785
+ **Q: What git hosting providers are supported?**
786
+ A: DevDaily works with any git repository. PR creation requires GitHub CLI. Ticket integration supports GitHub, Jira, Linear, and Notion.
598
787
 
599
- ### GitHub Copilot CLI not found
788
+ **Q: Is my code sent to external services?**
789
+ A: Only commit messages and diff summaries are sent to GitHub Copilot CLI. Full file contents are never shared. The work journal stays entirely local.
600
790
 
601
- Install the Copilot extension:
791
+ **Q: Can I use this with monorepos?**
792
+ A: Yes. DevDaily analyzes the git history of your current directory. Use `--project` to track multiple sub-projects, and `--all-projects` for cross-project summaries.
602
793
 
603
- ```bash
604
- gh extension install github/gh-copilot
605
- ```
794
+ **Q: What about conventional commits?**
795
+ A: DevDaily parses conventional commits automatically. PR titles are generated with proper `feat:`, `fix:`, `chore:` prefixes. Work is categorized by type.
606
796
 
607
- ### Not in a git repository
797
+ **Q: How do I clean up old journal data?**
798
+ A: Run `devdaily snapshot --prune 90` to remove entries older than 90 days. Use `devdaily snapshot --stats` to see storage usage.
608
799
 
609
- DevDaily AI only works inside git repositories. Run:
800
+ **Q: Can I disable the auto-snapshot behavior?**
801
+ A: Yes. Set `"journal": { "autoSnapshot": false }` in your config, or pass `--no-journal` to individual commands.
610
802
 
611
- ```bash
612
- git init # Initialize a new repo
613
- # or
614
- cd /path/to/your/git/repo
615
- ```
803
+ ---
804
+
805
+ ## Troubleshooting
616
806
 
617
- ### No commits found
807
+ ### Common issues
618
808
 
619
- Make sure you have commits in your repository:
809
+ | Problem | Solution |
810
+ | ------------------------------ | ------------------------------------------------------------------------ |
811
+ | `command not found: devdaily` | `npm install -g devdaily-ai` |
812
+ | `GitHub Copilot CLI not found` | `gh extension install github/gh-copilot` |
813
+ | `Not a git repository` | Run inside a git repo, or use `--all-projects` for journal-only commands |
814
+ | `No commits found` | Make sure you have commits: `git log --oneline` |
815
+ | PM tickets not appearing | Run `devdaily connect --test` to diagnose |
816
+
817
+ ### Diagnostics
620
818
 
621
819
  ```bash
622
- git log # Check commit history
820
+ # Full system check
821
+ devdaily doctor
822
+
823
+ # Auto-fix what's possible
824
+ devdaily doctor --fix
825
+
826
+ # Debug any command
827
+ devdaily standup --debug
828
+ devdaily pr --debug
623
829
  ```
624
830
 
625
- For more help, see our [documentation](docs/) or [open an issue](https://github.com/hempun10/devdaily/issues).
831
+ ---
626
832
 
627
833
  ## Roadmap
628
834
 
629
- - [ ] Support for Ollama (local AI models)
630
- - [ ] Analytics and tracking dashboard
631
- - [ ] Context recovery with AI-powered reminders
632
- - [ ] PR template detection and auto-fill
633
- - [ ] Integration with Jira/Linear/Asana
634
- - [ ] Team collaboration features
835
+ - [x] Standup, PR, and weekly summary generation
836
+ - [x] GitHub Issues, Jira, Linear, Notion integration
837
+ - [x] PR template detection and auto-fill
838
+ - [x] Interactive PR workflow (labels, reviewers, assignees)
839
+ - [x] Persistent work journal and snapshots
840
+ - [x] Context recovery (`devdaily context`)
841
+ - [x] Work history search (`devdaily recall`)
842
+ - [x] Automatic side-effect snapshots
843
+ - [x] Git hooks for post-commit and post-checkout
844
+ - [x] Cross-project weekly summaries
845
+ - [x] Custom PR prompt files (`.devdaily-pr-prompt.md`)
846
+ - [ ] Support for Ollama / local AI models
635
847
  - [ ] VS Code extension
848
+ - [ ] Team collaboration features
849
+ - [ ] Analytics and impact tracking dashboard
850
+ - [ ] Scheduled auto-standup (cron / launchd)
851
+
852
+ ---
636
853
 
637
854
  ## Contributing
638
855
 
639
856
  We welcome contributions! See [CONTRIBUTING.md](docs/CONTRIBUTING.md) for guidelines.
640
857
 
641
- ## License
642
-
643
- MIT © [Hem Pun](https://github.com/hempun10)
644
-
645
- ## Acknowledgments
858
+ ```bash
859
+ git clone https://github.com/hempun10/devdaily.git
860
+ cd devdaily
861
+ npm install
862
+ npm test # Make sure everything passes
863
+ npm run dev # Start developing
864
+ ```
646
865
 
647
- Built for the [GitHub Copilot CLI Challenge](https://dev.to/devteam/join-the-github-copilot-cli-challenge-win-github-universe-tickets-copilot-pro-subscriptions-and-50af).
866
+ ---
648
867
 
649
- Special thanks to:
868
+ ## License
650
869
 
651
- - GitHub Copilot CLI team
652
- - terminal.shop for UI inspiration
653
- - The awesome TypeScript community
870
+ MIT © [Hem Pun](https://github.com/hempun10)
654
871
 
655
872
  ---
656
873
 
657
874
  <div align="center">
658
875
 
659
- **[⬆ back to top](#devdaily-ai)**
876
+ **[⬆ Back to top](#devdaily-ai)**
660
877
 
661
878
  Made with ❤️ by developers, for developers
662
879