devdaily-ai 0.4.0 → 0.6.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
@@ -2,662 +2,550 @@
2
2
 
3
3
  # DevDaily AI
4
4
 
5
- **Your AI-powered developer memory**
5
+ **Your AI-powered developer memory.**
6
6
 
7
7
  Auto-generate standup notes, PR descriptions, and weekly summaries from your git history.
8
8
 
9
- [![NPM Version](https://img.shields.io/npm/v/devdaily-ai)](https://www.npmjs.com/package/devdaily-ai)
9
+ [![npm version](https://img.shields.io/npm/v/devdaily-ai)](https://www.npmjs.com/package/devdaily-ai)
10
+ [![CI](https://github.com/hempun10/devdaily/actions/workflows/ci.yml/badge.svg)](https://github.com/hempun10/devdaily/actions/workflows/ci.yml)
10
11
  [![Node Version](https://img.shields.io/node/v/devdaily-ai)](https://nodejs.org)
11
- [![License](https://img.shields.io/npm/l/devdaily-ai)](LICENSE)
12
- [![GitHub Stars](https://img.shields.io/github/stars/hempun10/devdaily)](https://github.com/hempun10/devdaily)
12
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
13
13
 
14
- [Installation](#installation) [Quick Start](#quick-start) [Commands](#commands) [Examples](#examples) [Contributing](docs/CONTRIBUTING.md)
14
+ [Installation](#installation) · [Quick Start](#quick-start) · [Commands](#commands) · [Configuration](#configuration) · [Contributing](CONTRIBUTING.md)
15
15
 
16
16
  </div>
17
17
 
18
18
  ---
19
19
 
20
- ## Why DevDaily AI?
20
+ ## Why DevDaily?
21
21
 
22
- As developers, we spend too much time on repetitive tasks:
22
+ Developers lose hours every week writing standup notes, crafting PR descriptions, compiling weekly reports, and trying to remember what they were doing before a context switch.
23
23
 
24
- - ⏱️ Writing standup notes every morning
25
- - 📝 Crafting PR descriptions from scratch
26
- - 📊 Summarizing weekly accomplishments
27
- - 🔍 Remembering what we were working on last week
24
+ DevDaily analyzes your git history, tracks your work automatically, and uses GitHub Copilot CLI to generate professional summaries — in seconds.
28
25
 
29
- **DevDaily AI solves this.** It analyzes your git history and uses GitHub Copilot CLI to generate professional summaries in seconds.
26
+ **Key differentiator:** DevDaily 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:
27
+
28
+ - `devdaily context` tells you exactly where you left off, even days later
29
+ - `devdaily recall auth` finds every time you touched authentication code
30
+ - `devdaily week` produces accurate summaries from your local journal
31
+ - Cross-project summaries work across all your repositories
32
+
33
+ No cloud. No telemetry. Everything stays in `~/.config/devdaily/journal/`.
34
+
35
+ ---
30
36
 
31
37
  ## Features
32
38
 
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 |
39
+ | Feature | Description |
40
+ | --------------------- | ------------------------------------------------------------------ |
41
+ | **Standup Generator** | Generate daily standup notes from commits, PRs, and tickets |
42
+ | **PR Descriptions** | Auto-generate titles and bodies with template + commitlint support |
43
+ | **Weekly Summaries** | Compile weekly accomplishments with stats and AI analysis |
44
+ | **Context Recovery** | Recover where you left off after a context switch |
45
+ | **Work Search** | Search your work history by keyword, file, tag, or date |
46
+ | **Auto-Snapshots** | Silent work tracking as a side-effect of commands you already run |
47
+ | **Git Hooks** | Opt-in `post-commit` and `post-checkout` hooks for extra coverage |
48
+ | **PM Integration** | GitHub Issues, Jira, and Linear ticket linking |
49
+ | **Notifications** | Send standups to Slack or Discord via webhooks |
50
+ | **Output Formats** | Markdown, Slack, plain text, and JSON output |
51
+
52
+ ---
47
53
 
48
54
  ## Installation
49
55
 
50
- **Prerequisites:**
56
+ ### Prerequisites
51
57
 
52
- - Node.js >= 18.0.0
53
- - Git repository
54
- - GitHub CLI with Copilot extension
58
+ - [Node.js](https://nodejs.org) >= 18.0.0
59
+ - [Git](https://git-scm.com)
60
+ - [GitHub CLI](https://cli.github.com) (`gh`)
61
+ - [GitHub Copilot CLI extension](https://github.com/github/gh-copilot) (`gh extension install github/gh-copilot`)
55
62
 
56
- ### Quick Install (Recommended)
63
+ ### Install
57
64
 
58
65
  ```bash
59
- # Install DevDaily
60
66
  npm install -g devdaily-ai
61
-
62
- # Run doctor to check/fix prerequisites
63
- devdaily doctor --fix
64
-
65
- # Set up shell alias and completions
66
- devdaily init
67
67
  ```
68
68
 
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)
69
+ ### Verify
76
70
 
77
71
  ```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
72
+ devdaily --version
73
+ devdaily doctor # Check all prerequisites
87
74
  ```
88
75
 
89
- Or visit [cli.github.com](https://cli.github.com) for other installation methods.
76
+ ### GitHub Copilot CLI Setup
90
77
 
91
- #### 2. Install GitHub Copilot CLI Extension
78
+ DevDaily uses GitHub Copilot CLI for AI-powered text generation. Set it up once:
92
79
 
93
80
  ```bash
94
- gh extension install github/gh-copilot
95
81
  gh auth login
82
+ gh extension install github/gh-copilot
83
+ gh copilot --version # Verify it works
96
84
  ```
97
85
 
98
- #### 3. Install DevDaily AI
99
-
100
- ```bash
101
- npm install -g devdaily-ai
102
- ```
103
-
104
- ### Verify Installation
105
-
106
- ```bash
107
- # Check everything is set up correctly
108
- devdaily doctor
109
-
110
- # Or manually check version
111
- devdaily --version
112
- devdaily --help
113
- ```
86
+ ---
114
87
 
115
88
  ## Quick Start
116
89
 
117
- Navigate to any git repository and run:
118
-
119
90
  ```bash
120
- # First time setup (sets up 'dd' alias and shell completions)
91
+ # Set up aliases and shell completions
121
92
  devdaily init
122
93
 
123
- # Generate standup notes
124
- devdaily standup # or: dd s
125
-
126
- # Generate PR description
127
- devdaily pr # or: dd p
128
-
129
- # Get weekly summary
130
- devdaily week # or: dd w
131
-
132
- # Open interactive dashboard
133
- devdaily dash # or: dd d
134
- ```
135
-
136
- All outputs are automatically copied to your clipboard! 📋
137
-
138
- ## Commands
139
-
140
- ### `devdaily standup`
141
-
142
- Generate daily standup notes from your recent commits.
143
-
144
- ```bash
145
- # Yesterday's work (default)
94
+ # Generate today's standup
146
95
  devdaily standup
147
96
 
148
- # Last 3 days
149
- devdaily standup --days=3
150
-
151
- # Last week
152
- devdaily standup --days=7
97
+ # Generate a PR description
98
+ devdaily pr
153
99
 
154
- # Output in Slack format
155
- devdaily standup --format=slack
100
+ # See your weekly summary
101
+ devdaily week
156
102
 
157
- # Plain text format
158
- devdaily standup --format=plain
103
+ # Recover context after a break
104
+ devdaily context
159
105
 
160
- # Don't copy to clipboard
161
- devdaily standup --no-copy
106
+ # Search your work history
107
+ devdaily recall "auth refactor"
162
108
  ```
163
109
 
164
- **Options:**
165
-
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
169
-
170
- ### `devdaily pr`
171
-
172
- Generate comprehensive PR descriptions with smart title generation.
110
+ With the `dd` alias (installed via `devdaily init`):
173
111
 
174
112
  ```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
113
+ dd s # standup
114
+ dd pr # PR description
115
+ dd w # weekly summary
116
+ dd ctx # context recovery
189
117
  ```
190
118
 
191
- **Options:**
192
-
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
119
+ ---
197
120
 
198
- **Interactive Menu:**
199
- When you run `devdaily pr` without flags, you get an interactive menu:
121
+ ## Commands
200
122
 
201
- - 👁️ Preview in terminal
202
- - 📋 Copy to clipboard
203
- - 🚀 Create PR on GitHub
204
- - 📝 Create draft PR
205
- - ❌ Cancel
123
+ ### Core
206
124
 
207
- **Smart Features:**
125
+ | Command | Aliases | Description |
126
+ | ---------- | ------------------ | ------------------------------------------- |
127
+ | `standup` | `s`, `su`, `daily` | Generate standup notes from recent commits |
128
+ | `pr` | `p`, `pull` | Generate PR description from current branch |
129
+ | `week` | `w`, `weekly` | Generate weekly work summary |
130
+ | `context` | `ctx`, `resume` | Recover what you were working on |
131
+ | `recall` | `search`, `find` | Search your work history |
132
+ | `snapshot` | `snap`, `save` | Manually capture a work snapshot |
208
133
 
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
134
+ ### Setup & Utility
213
135
 
214
- ### `devdaily week`
136
+ | Command | Aliases | Description |
137
+ | --------- | ---------------- | ------------------------------------------------- |
138
+ | `init` | — | Set up aliases, completions, hooks, notifications |
139
+ | `config` | `cfg` | View and edit configuration |
140
+ | `doctor` | `check`, `setup` | Check system requirements |
141
+ | `connect` | `pm`, `link` | Configure project management integration |
142
+ | `dash` | `d`, `dashboard` | Open interactive dashboard |
215
143
 
216
- Generate weekly summary of your accomplishments.
144
+ ### `devdaily standup`
217
145
 
218
146
  ```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
147
+ devdaily standup # Yesterday's work
148
+ devdaily standup --days 3 # Last 3 days
149
+ devdaily standup --format plain # Plain text (no markdown)
150
+ devdaily standup --format slack # Slack-ready format
151
+ devdaily standup --format json # Structured JSON
152
+ devdaily standup --ticket PROJ-123 # Include specific ticket context
153
+ devdaily standup --tone business # Business-friendly tone
154
+ devdaily standup --send # Send to Slack + Discord
155
+ devdaily standup --slack # Send to Slack only
156
+ devdaily standup --test-webhook # Test webhook configuration
157
+ devdaily standup --context # Show detailed work analysis
158
+ devdaily standup --raw-context # Output raw context (no AI)
159
+ devdaily standup --no-copy # Don't copy to clipboard
160
+ devdaily standup --debug # Show full prompt and response
230
161
  ```
231
162
 
232
- **Options:**
233
-
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
237
-
238
- ### `devdaily context`
239
-
240
- Recover work context from past commits (coming soon).
163
+ ### `devdaily pr`
241
164
 
242
165
  ```bash
243
- devdaily context --days=7
166
+ devdaily pr # Generate + interactive menu
167
+ devdaily pr --create # Create PR on GitHub
168
+ devdaily pr --draft # Create as draft PR
169
+ devdaily pr --base develop # Compare against develop
170
+ devdaily pr --ticket PROJ-456 # Include ticket context
171
+ devdaily pr --interactive # Select labels, reviewers, assignees
172
+ devdaily pr --debug # Show AI prompt
244
173
  ```
245
174
 
246
- ### `devdaily dash`
247
-
248
- Open the interactive dashboard with keyboard navigation.
175
+ ### `devdaily week`
249
176
 
250
177
  ```bash
251
- # Open dashboard
252
- devdaily dash
253
-
254
- # Short alias
255
- dd d
178
+ devdaily week # Current week
179
+ devdaily week --last # Last week
180
+ devdaily week --weeks-ago 2 # Two weeks ago
181
+ devdaily week --from 2025-01-01 --to 2025-01-07
182
+ devdaily week --all-projects # Cross-project summary
183
+ devdaily week --save # Save summary to journal
184
+ devdaily week --json # Machine-readable stats
256
185
  ```
257
186
 
258
- **Keyboard Shortcuts:**
259
-
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
266
-
267
- ### `devdaily init`
268
-
269
- Set up DevDaily with shell aliases and completions.
187
+ ### `devdaily context`
270
188
 
271
189
  ```bash
272
- # Interactive setup
273
- devdaily init
274
-
275
- # Global setup (for all projects)
276
- devdaily init --global
277
-
278
- # Only set up alias
279
- devdaily init --alias
280
-
281
- # Only set up completions
282
- devdaily init --completions
190
+ devdaily context # Where did I leave off?
191
+ devdaily context --ai # AI-powered summary
192
+ devdaily context --days 14 # Look back further
193
+ devdaily context --all-projects # All projects
194
+ devdaily context --branches # Show active branch details
283
195
  ```
284
196
 
285
- **Sets up:**
286
-
287
- - Shell alias: `dd` → `devdaily`
288
- - Tab completions for bash/zsh/fish
289
- - Configuration file
290
-
291
- ### `devdaily config`
292
-
293
- Manage DevDaily configuration.
197
+ ### `devdaily recall`
294
198
 
295
199
  ```bash
296
- # Interactive config editor
297
- devdaily config
298
-
299
- # Open config in your editor
300
- devdaily config --edit
301
-
302
- # Show current config
303
- devdaily config --show
304
-
305
- # Show config file path
306
- devdaily config --path
307
-
308
- # Reset to defaults
309
- devdaily config --reset
200
+ devdaily recall "auth" # Search for "auth" in history
201
+ devdaily recall --file src/auth.ts # When was this file changed?
202
+ devdaily recall --tag feature # Find snapshots tagged "feature"
203
+ devdaily recall --from 2025-01-01 # Search within date range
204
+ devdaily recall --ai # AI summary of results
310
205
  ```
311
206
 
312
- ### `devdaily doctor`
313
-
314
- Check system requirements and diagnose issues.
207
+ ### `devdaily snapshot`
315
208
 
316
209
  ```bash
317
- # Check all prerequisites
318
- devdaily doctor
319
-
320
- # Attempt automatic fixes
321
- devdaily doctor --fix
322
-
323
- # Short alias
324
- devdaily check
210
+ devdaily snapshot # Capture a full snapshot
211
+ devdaily snapshot --light # Quick capture (no PR/ticket fetch)
212
+ devdaily snapshot --note "before refactor"
213
+ devdaily snapshot --tag release # Tag the snapshot
214
+ devdaily snapshot --list # Browse recent snapshots
215
+ devdaily snapshot --stats # Journal storage stats
216
+ devdaily snapshot --prune 90 # Remove entries older than 90 days
325
217
  ```
326
218
 
327
- **Checks:**
219
+ ### `devdaily init`
328
220
 
329
- - ✅ Node.js version (>= 18)
330
- - Git installed
331
- - GitHub CLI installed
332
- - GitHub authentication
333
- - Copilot extension installed
221
+ ```bash
222
+ devdaily init # Interactive setup wizard
223
+ devdaily init --global # Global setup
224
+ devdaily init --alias # Set up dd alias only
225
+ devdaily init --completions # Shell completions only
226
+ devdaily init --notifications # Slack/Discord webhook setup
227
+ devdaily init --git-hooks # Install auto-snapshot hooks
228
+ devdaily init --remove-hooks # Remove auto-snapshot hooks
229
+ ```
334
230
 
335
- **Auto-fix capabilities:**
231
+ ---
336
232
 
337
- - Interactive GitHub authentication
338
- - Copilot extension installation
233
+ ## Auto-Snapshots
339
234
 
340
- ## GitHub Issues Integration
235
+ DevDaily captures lightweight work snapshots automatically so you never lose context:
341
236
 
342
- DevDaily automatically fetches GitHub issue context to provide **richer, more meaningful summaries**. When your commits reference issues (e.g., `fix #123`), DevDaily:
237
+ **When snapshots happen:**
343
238
 
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
239
+ - After running `devdaily standup`, `pr`, or `week` (side-effect)
240
+ - On `git commit` and `git checkout` (opt-in via `devdaily init --git-hooks`)
241
+ - Manually via `devdaily snapshot`
347
242
 
348
- **Benefits:**
243
+ **What's stored:**
349
244
 
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
245
+ - Current branch and active branches
246
+ - Today's commits (messages, files changed)
247
+ - Diff stats (insertions, deletions, files)
248
+ - Work categories (frontend, backend, infra, etc.)
249
+ - Optional notes and tags
353
250
 
354
- **Usage:**
251
+ **Disabling:**
355
252
 
356
253
  ```bash
357
- # Normal usage (issues fetched automatically)
358
- devdaily standup
254
+ # Per-command
255
+ devdaily standup --no-journal
256
+ devdaily week --no-auto-snapshot
359
257
 
360
- # Skip issue fetching (faster, offline)
361
- devdaily standup --no-tickets
362
- devdaily pr --no-tickets
363
- devdaily week --no-tickets
258
+ # Globally
259
+ # Set journal.autoSnapshot to false in .devdaily.json
364
260
  ```
365
261
 
262
+ ---
263
+
366
264
  ## Configuration
367
265
 
368
- DevDaily supports both global and per-project configuration.
266
+ DevDaily uses a JSON config file with optional JSON Schema support for IDE autocomplete.
267
+
268
+ ### Config file locations
369
269
 
370
- ### Config File Locations
270
+ | Scope | Path |
271
+ | ------------------- | ------------------------------------------------------------- |
272
+ | Local (per-project) | `.devdaily.json` |
273
+ | Global | `~/.config/devdaily/config.json` |
274
+ | Secrets | `~/.config/devdaily/secrets.json` or `.devdaily.secrets.json` |
371
275
 
372
- - **Global:** `~/.config/devdaily/config.json`
373
- - **Local:** `.devdailyrc` in your project root
276
+ Local config overrides global config. Secrets are stored separately and should never be committed.
374
277
 
375
- ### Example Configuration
278
+ ### Example
376
279
 
377
280
  ```json
378
281
  {
379
- "version": 1,
380
- "theme": {
381
- "primary": "cyan",
382
- "accent": "magenta"
383
- },
384
- "ascii": true,
385
- "compactMode": false,
282
+ "$schema": "https://raw.githubusercontent.com/hempun10/devdaily/main/schemas/devdaily.schema.json",
283
+
386
284
  "output": {
387
285
  "format": "markdown",
388
286
  "copyToClipboard": true,
389
287
  "showStats": true
390
288
  },
391
- "projectManagement": {
392
- "tool": "github",
393
- "ticketPrefix": "PROJ"
289
+
290
+ "git": {
291
+ "defaultBranch": "main",
292
+ "excludePatterns": ["merge commit", "Merge branch"]
394
293
  },
294
+
395
295
  "standup": {
396
- "defaultDays": 1
296
+ "defaultDays": 1,
297
+ "sections": ["completed", "in-progress", "blockers"],
298
+ "includeTicketLinks": true
397
299
  },
300
+
398
301
  "pr": {
399
- "defaultBase": "main"
302
+ "defaultBase": "main",
303
+ "includeDiff": true,
304
+ "maxDiffLines": 200,
305
+ "titleFormat": "conventional",
306
+ "autoLabels": true
400
307
  },
401
- "week": {
402
- "startDay": "monday"
403
- }
404
- }
405
- ```
406
308
 
407
- ### Project Management Integration
408
-
409
- DevDaily supports multiple project management tools for richer context:
309
+ "journal": {
310
+ "autoSnapshot": true,
311
+ "gitHooks": false,
312
+ "quiet": true
313
+ },
410
314
 
411
- ```json
412
- {
413
315
  "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
- },
425
-
426
- // Linear settings
427
- "linear": {
428
- "teamKey": "ENG"
429
- },
430
-
431
- // Notion settings
432
- "notion": {
433
- "databaseId": "your-database-id"
434
- }
316
+ "tool": "github",
317
+ "ticketPrefix": "PROJ"
318
+ },
319
+
320
+ "notifications": {
321
+ "slack": { "enabled": false },
322
+ "discord": { "enabled": false }
435
323
  }
436
324
  }
437
325
  ```
438
326
 
439
- **Environment Variables for Authentication:**
327
+ ### Project management integration
440
328
 
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"
329
+ DevDaily extracts ticket IDs from branch names and commit messages, then fetches metadata from your PM tool:
449
330
 
450
- # Notion
451
- export NOTION_API_KEY="secret_xxx"
452
- export NOTION_DATABASE_ID="xxx"
331
+ ```bash
332
+ devdaily connect # Interactive setup
333
+ devdaily connect --tool jira # Configure Jira
334
+ devdaily connect --tool linear # Configure Linear
453
335
  ```
454
336
 
455
- **Ticket Extraction:**
337
+ Supported tools: **GitHub Issues** (default, uses `gh` CLI), **Jira** (REST API v3), **Linear** (GraphQL API).
456
338
 
457
- DevDaily automatically extracts ticket IDs from:
339
+ ### Custom PR prompt file
458
340
 
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`
341
+ Create a `.devdaily-pr-prompt.md` file in your repo to customize how PR descriptions are generated:
462
342
 
463
- ## Examples
343
+ ```markdown
344
+ ## PR Description Guidelines
464
345
 
465
- See the [`examples/`](examples/) directory for detailed output samples:
466
-
467
- - [Standup Output](examples/standup-output.md)
468
- - [PR Description Output](examples/pr-output.md)
469
- - [Weekly Summary Output](examples/week-output.md)
346
+ - Use present tense ("Add feature" not "Added feature")
347
+ - Reference ticket numbers
348
+ - Include a testing section
349
+ - Keep descriptions concise
350
+ ```
470
351
 
471
- ## How It Works
352
+ Search order: `.devdaily-pr-prompt.md` → `.github/devdaily-pr-prompt.md` → `docs/devdaily-pr-prompt.md`
472
353
 
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
354
+ ---
478
355
 
479
- ## Configuration
356
+ ## Privacy & Security
480
357
 
481
- DevDaily AI works out of the box with sensible defaults. No configuration file needed!
358
+ - **All data stays local.** Journal entries are stored in `~/.config/devdaily/journal/` nothing is sent to any server.
359
+ - **Secrets are stored separately** in `.devdaily.secrets.json` (auto-added to `.gitignore`) or `~/.config/devdaily/secrets.json`.
360
+ - **Git hooks are opt-in** and POSIX-compatible. They append to existing hooks instead of overwriting.
361
+ - **AI generation** uses GitHub Copilot CLI, which processes your prompts through GitHub's infrastructure under your existing Copilot agreement.
482
362
 
483
- All settings can be controlled via command-line flags.
363
+ ---
484
364
 
485
365
  ## Development
486
366
 
487
- Want to contribute? See our [Contributing Guide](docs/CONTRIBUTING.md).
367
+ ### Prerequisites
368
+
369
+ - Node.js >= 18
370
+ - npm >= 9
371
+ - Git
372
+
373
+ ### Setup
488
374
 
489
375
  ```bash
490
- # Clone the repository
491
376
  git clone https://github.com/hempun10/devdaily.git
492
377
  cd devdaily
493
-
494
- # Install dependencies
495
378
  npm install
379
+ ```
496
380
 
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
381
+ ### Common tasks
515
382
 
516
- # Build for production
517
- npm run build
383
+ ```bash
384
+ npm run dev # Watch mode (auto-rebuild)
385
+ npm run build # Production build (tsup)
386
+ npm run typecheck # TypeScript type checking
387
+ npm run lint # ESLint
388
+ npm run lint:fix # ESLint with auto-fix
389
+ npm run format # Prettier format
390
+ npm run format:check # Prettier check
391
+ npm test # Run all tests (vitest)
392
+ npm run test:watch # Tests in watch mode
393
+ npm run test:coverage # Tests with coverage report
518
394
  ```
519
395
 
520
- ### Project Structure
396
+ ### Project structure
521
397
 
522
398
  ```
523
- devdaily-ai/
399
+ devdaily/
524
400
  ├── 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
401
+ │ ├── commands/ # CLI command handlers
402
+ │ │ ├── standup.ts # Standup generation
403
+ │ │ ├── pr.ts # PR description generation
404
+ │ │ ├── week.ts # Weekly summary
405
+ │ │ ├── context.ts # Context recovery
406
+ │ │ ├── recall.ts # Work history search
407
+ │ │ ├── snapshot.ts # Manual snapshot capture
408
+ │ │ ├── init.ts # Setup wizard
409
+ ├── config.ts # Configuration management
410
+ │ │ ├── doctor.ts # System diagnostics
411
+ │ │ ├── connect.ts # PM tool connection
412
+ │ └── dash.ts # Interactive dashboard
413
+ │ ├── core/ # Business logic
414
+ │ │ ├── git-analyzer.ts # Git operations (simple-git)
415
+ │ │ ├── copilot.ts # GitHub Copilot CLI integration
416
+ │ │ ├── standup-context.ts # Rich context builder for standups
417
+ │ │ ├── context-analyzer.ts # Work pattern analysis
418
+ │ │ ├── snapshot-builder.ts # Snapshot creation
419
+ ├── work-journal.ts # Persistent local storage
420
+ │ │ ├── auto-snapshot.ts # Side-effect & hook snapshots
421
+ │ │ ├── notifications.ts # Slack/Discord webhooks
422
+ ├── project-management.ts # Jira/Linear/GitHub Issues
423
+ │ │ ├── pr-template.ts # PR template detection
424
+ │ │ ├── pr-prompt.ts # Custom prompt file loader
425
+ ├── github.ts # GitHub API helpers
426
+ └── github-repo.ts # Repo metadata
427
+ ├── config/ # Configuration loading & schema
428
+ ├── ui/ # Terminal UI (colors, ASCII, help)
429
+ ├── utils/ # Helpers (clipboard, formatting, commitlint)
430
+ │ ├── types/ # TypeScript type definitions
431
+ │ └── index.ts # CLI entry point
432
+ ├── tests/ # Vitest test suites
433
+ ├── schemas/ # JSON Schema for config validation
434
+ ├── examples/ # Example command outputs
435
+ ├── docs/ # Additional documentation
436
+ └── .github/ # CI workflows and templates
555
437
  ```
556
438
 
557
- ## Tech Stack
558
-
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
568
-
569
- ## FAQ
439
+ ### Tech stack
440
+
441
+ | Category | Technology |
442
+ | ------------------ | ---------------------------- |
443
+ | Language | TypeScript 5.7 (strict mode) |
444
+ | Runtime | Node.js 18+ (ESM) |
445
+ | CLI framework | Commander.js 12 |
446
+ | Git operations | simple-git |
447
+ | AI generation | GitHub Copilot CLI |
448
+ | Terminal UI | chalk, boxen, ora, inquirer |
449
+ | Build | tsup |
450
+ | Testing | Vitest |
451
+ | Linting | ESLint + Prettier |
452
+ | Commit conventions | commitlint + Husky |
570
453
 
571
- **Q: Does this work offline?**
572
- A: No, DevDaily AI requires GitHub Copilot CLI which needs an internet connection for AI summaries.
573
-
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.
576
-
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.
579
-
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.
454
+ ---
582
455
 
583
- **Q: Does it work with monorepos?**
584
- A: Yes! DevDaily AI analyzes the entire git history of your current directory.
456
+ ## Testing
585
457
 
586
- **Q: What about conventional commits?**
587
- A: DevDaily AI parses conventional commits automatically and uses them for smart PR title generation.
458
+ ```bash
459
+ npm test # Run all tests
460
+ npm run test:watch # Watch mode
461
+ npm run test:coverage # With coverage report
462
+ ```
588
463
 
589
- ## Troubleshooting
464
+ ### Test coverage
465
+
466
+ | Module | Tests | Description |
467
+ | -------------------- | ------- | ---------------------------------------- |
468
+ | `auto-snapshot` | 74 | Side-effect snapshots, hooks, config |
469
+ | `work-journal` | 123 | Persistent storage, search, aggregation |
470
+ | `project-management` | 130 | Jira, Linear, GitHub Issues integration |
471
+ | `standup-context` | 70 | Context building, formatting |
472
+ | `notifications` | 70 | Slack/Discord webhooks, output formatter |
473
+ | `pr-creation` | 123 | PR generation pipeline |
474
+ | `copilot` | 38 | AI prompt building |
475
+ | `pr-prompt` | 26 | Custom prompt file loading |
476
+ | `pr-template` | 25 | Template detection and parsing |
477
+ | `context-analyzer` | 22 | Work pattern analysis |
478
+ | `git-analyzer` | 15 | Git operations |
479
+ | `commitlint` | 6 | Conventional commit parsing |
480
+ | `ui` | 2 | UI rendering |
481
+ | **Total** | **724** | |
590
482
 
591
- ### Command not found: devdaily
483
+ ---
592
484
 
593
- Make sure you installed globally:
485
+ ## FAQ
594
486
 
595
- ```bash
596
- npm install -g devdaily-ai
597
- ```
487
+ **Q: Does DevDaily send my code anywhere?**
488
+ No. DevDaily reads your local git history and sends a text prompt to GitHub Copilot CLI. Your source code is not uploaded. Journal data stays on your machine.
598
489
 
599
- ### GitHub Copilot CLI not found
490
+ **Q: Can I use DevDaily without GitHub Copilot?**
491
+ Currently, GitHub Copilot CLI is required for AI-powered generation. You can use `--raw-context` to get the structured context block without AI processing, and pipe it to any LLM of your choice.
600
492
 
601
- Install the Copilot extension:
493
+ **Q: Does it work with monorepos?**
494
+ Yes. DevDaily analyzes the git history of whatever repository you're currently in. Multi-project support via the journal lets you aggregate across repos.
602
495
 
603
- ```bash
604
- gh extension install github/gh-copilot
605
- ```
496
+ **Q: How do I uninstall the git hooks?**
497
+ Run `devdaily init --remove-hooks`. This cleanly removes only the DevDaily lines from your hook files.
606
498
 
607
- ### Not in a git repository
499
+ ---
608
500
 
609
- DevDaily AI only works inside git repositories. Run:
501
+ ## Troubleshooting
610
502
 
611
- ```bash
612
- git init # Initialize a new repo
613
- # or
614
- cd /path/to/your/git/repo
615
- ```
503
+ ### Common issues
616
504
 
617
- ### No commits found
505
+ | Problem | Solution |
506
+ | ------------------------------ | ---------------------------------------------------- |
507
+ | `GitHub Copilot CLI not found` | Run `gh extension install github/gh-copilot` |
508
+ | `Not a git repository` | Navigate to a git repo before running commands |
509
+ | `No commits found` | Try increasing `--days` or check `--author` filter |
510
+ | Clipboard not working | Install `xclip` (Linux) or check permissions (macOS) |
511
+ | Webhook test fails | Run `devdaily init --notifications` to reconfigure |
618
512
 
619
- Make sure you have commits in your repository:
513
+ ### Diagnostics
620
514
 
621
515
  ```bash
622
- git log # Check commit history
516
+ devdaily doctor # Check all prerequisites
517
+ devdaily doctor --fix # Attempt automatic fixes
518
+ devdaily config --path # Show config file location
623
519
  ```
624
520
 
625
- For more help, see our [documentation](docs/) or [open an issue](https://github.com/hempun10/devdaily/issues).
521
+ ---
626
522
 
627
523
  ## Roadmap
628
524
 
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
635
- - [ ] VS Code extension
636
-
637
- ## Contributing
525
+ - [ ] Plugin system for custom output formats and integrations
526
+ - [ ] Background agent for periodic auto-snapshots
527
+ - [ ] Dashboard visualization of work patterns
528
+ - [ ] Notion integration for ticket tracking
529
+ - [ ] Team-level aggregated summaries
530
+ - [ ] Ollama/local LLM support as Copilot alternative
638
531
 
639
- We welcome contributions! See [CONTRIBUTING.md](docs/CONTRIBUTING.md) for guidelines.
640
-
641
- ## License
642
-
643
- MIT © [Hem Pun](https://github.com/hempun10)
532
+ ---
644
533
 
645
- ## Acknowledgments
534
+ ## Contributing
646
535
 
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).
536
+ Contributions are welcome! Please read the [Contributing Guide](CONTRIBUTING.md) before submitting a pull request.
648
537
 
649
- Special thanks to:
538
+ ```bash
539
+ git clone https://github.com/hempun10/devdaily.git
540
+ cd devdaily
541
+ npm install
542
+ npm test
543
+ ```
650
544
 
651
- - GitHub Copilot CLI team
652
- - terminal.shop for UI inspiration
653
- - The awesome TypeScript community
545
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for the full development workflow, coding standards, and pull request process.
654
546
 
655
547
  ---
656
548
 
657
- <div align="center">
658
-
659
- **[⬆ back to top](#devdaily-ai)**
660
-
661
- Made with ❤️ by developers, for developers
549
+ ## License
662
550
 
663
- </div>
551
+ [MIT](LICENSE) © [Hem Pun](https://github.com/hempun10)