@drewpayment/mink 0.1.0 → 0.2.1

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
@@ -20,6 +20,7 @@ Mink intercepts these lifecycle events and maintains structured state so the ass
20
20
  - **Evaluate UI designs** with automated multi-viewport screenshots
21
21
  - **Advise on frameworks** with a decision tree and migration guides
22
22
  - **Build a cross-project wiki** that accumulates knowledge across all your projects
23
+ - **Capture notes from anywhere** with an AI-powered Claude Code skill that categorizes, tags, and links notes automatically
23
24
 
24
25
  ## How It Works
25
26
 
@@ -59,16 +60,25 @@ All state lives in `~/.mink/` -- nothing is stored in your project repository.
59
60
  - **Built-in Tasks** — File index rescan, action log consolidation, waste detection, learning memory reflection, and project suggestions — all on configurable schedules
60
61
 
61
62
  ### Interfaces
62
- - **CLI** — 20+ commands covering lifecycle hooks, state management, scheduling, configuration, backup/restore, and more
63
+ - **CLI** — 25+ commands covering lifecycle hooks, state management, notes/wiki, scheduling, configuration, backup/restore, and more
63
64
  - **Real-time Dashboard** — Web UI with 10 panels, SSE live updates, light/dark themes, virtual scrolling, and interactive charts
64
65
 
66
+ ### Notes & Wiki
67
+ - **Wiki Vault** — Obsidian-compatible markdown vault that accumulates knowledge across all projects
68
+ - **Note Capture** — `mink note` CLI captures notes from any directory into the vault
69
+ - **Claude Code Skill** — `/mink:note` skill uses Claude as the AI brain for intelligent categorization, tagging, and wikilink insertion
70
+ - **Daily Notes** — `mink note --daily` creates or appends to daily journal entries
71
+ - **Vault Index** — Token-efficient file index for the vault, with search and tag aggregation
72
+ - **Git Backup** — Auto-commit and push vault changes on session end
73
+ - **Templates** — 6 built-in templates (quick-capture, daily, meeting, project, area, person)
74
+
65
75
  ### Advanced
66
76
  - **Design Evaluation** — Automated multi-viewport screenshot capture with server and route detection (uses Puppeteer)
67
77
  - **Framework Advisor** — Decision tree, framework catalog, comparison matrix, and migration prompts for UI framework selection
68
78
 
69
79
  ## Current Status
70
80
 
71
- Specs 1–14 are fully implemented and tested. Remaining specs (wiki, test plan) are designed and documented in `specs/`.
81
+ Specs 1–15 are fully implemented and tested. The test plan spec (16) is designed and documented in `specs/`.
72
82
 
73
83
  | Domain | Specs | Status |
74
84
  |--------|-------|--------|
@@ -79,7 +89,7 @@ Specs 1–14 are fully implemented and tested. Remaining specs (wiki, test plan)
79
89
  | Automation | Background Scheduler | Implemented |
80
90
  | Interfaces | CLI Commands, Dashboard | Implemented |
81
91
  | Advanced | Design Evaluation, Framework Advisor | Implemented |
82
- | Wiki | Cross-Project Wiki | Designed |
92
+ | Wiki | Cross-Project Wiki & Notes | Implemented |
83
93
  | Quality | Test Plan | Designed |
84
94
 
85
95
  ## Installation
@@ -93,10 +103,10 @@ Specs 1–14 are fully implemented and tested. Remaining specs (wiki, test plan)
93
103
 
94
104
  ```bash
95
105
  # With Bun (recommended)
96
- bun add -g mink
106
+ bun add -g @drewpayment/mink
97
107
 
98
108
  # With npm
99
- npm install -g mink
109
+ npm install -g @drewpayment/mink
100
110
  ```
101
111
 
102
112
  ### Initialize in a project
@@ -133,6 +143,159 @@ cat ~/.mink/projects/*/session.json
133
143
 
134
144
  You should see a fresh session state with a unique ID, timestamp, and zeroed counters.
135
145
 
146
+ ## Notes & Wiki
147
+
148
+ Mink includes a notes and wiki system that builds a portable, Obsidian-compatible knowledge base across all your projects. Notes can be captured from any directory and are automatically organized into a structured vault.
149
+
150
+ ### Set up the vault
151
+
152
+ ```bash
153
+ # Create a new vault (default: ~/.mink/wiki/)
154
+ mink wiki init
155
+
156
+ # Or point to an existing Obsidian vault / notes directory
157
+ mink wiki init ~/dev/notes
158
+ ```
159
+
160
+ This creates the vault structure, seeds templates, and builds a file index. If you point to an existing directory, Mink scans and indexes all markdown files without modifying them.
161
+
162
+ ### Capture notes
163
+
164
+ The `mink note` command captures notes from any directory into your vault:
165
+
166
+ ```bash
167
+ # Quick capture — lands in inbox/
168
+ mink note "API rate limiting needs investigation"
169
+
170
+ # Structured note with title and body
171
+ mink note --title "JWT Cookie Pattern" --body "Use httpOnly cookies for token storage..."
172
+
173
+ # Link to the current Mink project
174
+ mink note --project my-api "Retry logic needs exponential backoff"
175
+
176
+ # Daily journal
177
+ mink note --daily "Had a breakthrough on the caching layer"
178
+ mink note --daily # Create today's daily note (empty template)
179
+
180
+ # From a template
181
+ mink note --template meeting --title "Sprint Planning 2026-04-12"
182
+
183
+ # With explicit category and tags
184
+ mink note --category resources --tags "auth,security" --title "OAuth2 Flow Reference"
185
+
186
+ # Ingest an existing file into the vault
187
+ mink note --file ./scratch-notes.md --category resources
188
+ ```
189
+
190
+ ### Use the Claude Code skill
191
+
192
+ The `/mink:note` skill is the recommended way to capture notes. It uses Claude as the AI brain to automatically determine category, tags, title, and wikilinks.
193
+
194
+ ```bash
195
+ # Install the skill globally
196
+ mink skill install
197
+ ```
198
+
199
+ Then in any Claude Code session:
200
+
201
+ ```
202
+ /mink:note I had a meeting with Sarah about the CMS migration timeline.
203
+ She wants to target Q3 for the cutover.
204
+ ```
205
+
206
+ Claude will analyze the content, check existing notes for related topics and people, and run `mink note` with the right flags — placing the note in the correct category with tags and `[[wikilinks]]` to related notes.
207
+
208
+ ### Browse and search
209
+
210
+ ```bash
211
+ # List recent notes
212
+ mink note list --recent 10
213
+
214
+ # Filter by category or tag
215
+ mink note list --category projects
216
+ mink note list --tag meeting
217
+
218
+ # Full-text search
219
+ mink note search "authentication"
220
+ ```
221
+
222
+ ### Vault structure
223
+
224
+ ```
225
+ vault-root/
226
+ _index.md # Master index (auto-maintained)
227
+ inbox/ # Quick captures land here
228
+ projects/ # Project-linked notes + Mink-generated wiki pages
229
+ my-api/
230
+ overview.md # Auto-created on mink init
231
+ sessions/ # Daily session summaries
232
+ *.md # Your project notes
233
+ areas/ # Ongoing responsibilities
234
+ daily/ # Daily notes (areas/daily/2026-04-12.md)
235
+ resources/ # Reference material
236
+ archives/ # Completed/inactive
237
+ templates/ # Note templates
238
+ patterns/ # Cross-project patterns
239
+ ```
240
+
241
+ ### Obsidian compatibility
242
+
243
+ The vault is a standard markdown directory fully compatible with Obsidian:
244
+
245
+ - **Wikilinks** — `[[Note Title]]` syntax for internal links
246
+ - **YAML frontmatter** — `created`, `updated`, `tags`, `category` fields
247
+ - **Graph view** — Wikilinks render as connections in Obsidian's knowledge graph
248
+ - **Templates** — Compatible with Obsidian's Templater plugin (`{{variable}}` syntax)
249
+
250
+ Open the vault directory as an Obsidian vault and everything works out of the box.
251
+
252
+ ### Git backup
253
+
254
+ Enable automatic git backup to sync your vault across machines:
255
+
256
+ ```bash
257
+ # Enable git backup
258
+ mink config wiki.git-backup true
259
+
260
+ # Set the remote (default: origin)
261
+ mink config wiki.git-remote origin
262
+ ```
263
+
264
+ When enabled, Mink auto-commits and pushes vault changes at the end of each session. Pushes are best-effort with a 10-second timeout — if the push fails, the local commit is preserved and will be included in the next push.
265
+
266
+ ### Hook integration
267
+
268
+ When the wiki is enabled, Mink hooks automatically:
269
+
270
+ - **On session start** — Report inbox count if notes need categorization
271
+ - **On session end** — Write a session summary to `projects/{slug}/sessions/{date}.md`
272
+ - **On `mink init`** — Create a project overview page in the vault
273
+
274
+ ### Configuration
275
+
276
+ ```bash
277
+ # View all wiki/notes settings
278
+ mink config
279
+
280
+ # Set vault location
281
+ mink config wiki.path ~/my-notes
282
+
283
+ # Disable the wiki feature
284
+ mink config wiki.enabled false
285
+
286
+ # Set default category for CLI captures (default: inbox)
287
+ mink config notes.default-category inbox
288
+ ```
289
+
290
+ | Setting | Default | Env Override | Description |
291
+ |---------|---------|-------------|-------------|
292
+ | `wiki.path` | `~/.mink/wiki/` | `MINK_WIKI_PATH` | Vault directory |
293
+ | `wiki.enabled` | `true` | `MINK_WIKI_ENABLED` | Toggle wiki feature |
294
+ | `wiki.sync-mode` | `immediate` | `MINK_WIKI_SYNC_MODE` | Update timing |
295
+ | `wiki.git-backup` | `false` | `MINK_WIKI_GIT_BACKUP` | Auto-commit and push |
296
+ | `wiki.git-remote` | `origin` | `MINK_WIKI_GIT_REMOTE` | Git remote for push |
297
+ | `notes.default-category` | `inbox` | `MINK_NOTES_DEFAULT_CATEGORY` | Default note category |
298
+
136
299
  ## Architecture
137
300
 
138
301
  ### State Directory
@@ -207,7 +370,7 @@ bun test tests/unit/session.test.ts
207
370
  ```
208
371
  mink/
209
372
  ├── src/
210
- │ ├── cli.ts # Entry point, command routing (20+ commands)
373
+ │ ├── cli.ts # Entry point, command routing (25+ commands)
211
374
  │ ├── commands/ # CLI command implementations
212
375
  │ │ ├── init.ts # mink init — runtime detection, hook wiring
213
376
  │ │ ├── session-start.ts # Hook: create fresh session state
@@ -216,6 +379,9 @@ mink/
216
379
  │ │ ├── post-read.ts # Hook: post-read tracking
217
380
  │ │ ├── pre-write.ts # Hook: write enforcement
218
381
  │ │ ├── post-write.ts # Hook: post-write tracking
382
+ │ │ ├── wiki.ts # Wiki vault management (init, status, rebuild, organize)
383
+ │ │ ├── note.ts # Note capture, list, and search
384
+ │ │ ├── skill.ts # Claude Code skill installer
219
385
  │ │ ├── status.ts # Project health display
220
386
  │ │ ├── scan.ts # Force full file index rescan
221
387
  │ │ ├── config.ts # Global configuration management
@@ -250,15 +416,22 @@ mink/
250
416
  │ │ ├── dashboard-api.ts # Dashboard REST API + SSE
251
417
  │ │ ├── design-eval/ # Screenshot capture, route/server detection
252
418
  │ │ ├── framework-advisor/ # Catalog, decision tree, migration prompts
419
+ │ │ ├── vault.ts # Wiki vault path resolution and structure
420
+ │ │ ├── vault-templates.ts # Note template management
421
+ │ │ ├── note-writer.ts # Note creation, frontmatter, daily notes
422
+ │ │ ├── note-linker.ts # Wikilink extraction, insertion, backlinks
423
+ │ │ ├── note-index.ts # Vault file index with search
253
424
  │ │ └── ... # Global config, backup, reflection, etc.
254
425
  │ ├── dashboard/ # Embedded dashboard UI (HTML/CSS/JS generation)
255
426
  │ │ ├── get-dashboard-html.ts # Main HTML assembly
256
427
  │ │ ├── panel-*.ts # 10 panel implementations
257
428
  │ │ ├── css-*.ts # Base styles and themes
258
429
  │ │ └── js-*.ts # Charts, SSE, virtual scroll, search
430
+ │ ├── skills/ # Claude Code skill files
431
+ │ │ └── mink-note.md # /mink:note skill for intelligent note capture
259
432
  │ └── types/ # TypeScript interfaces
260
433
  ├── tests/
261
- │ ├── unit/ # 35+ unit test files
434
+ │ ├── unit/ # 40+ unit test files
262
435
  │ └── integration/ # 15+ integration test files
263
436
  ├── specs/ # Feature specifications (technology-agnostic)
264
437
  └── docs/ # Design docs and implementation plans
@@ -310,6 +483,16 @@ bun src/cli.ts status
310
483
 
311
484
  # Run a waste detection scan
312
485
  bun src/cli.ts detect-waste
486
+
487
+ # Set up the wiki vault and capture notes
488
+ bun src/cli.ts wiki init
489
+ bun src/cli.ts note "Testing the notes feature"
490
+ bun src/cli.ts note --daily "Today I worked on mink"
491
+ bun src/cli.ts note list --recent 5
492
+ bun src/cli.ts note search "testing"
493
+
494
+ # Install the Claude Code skill
495
+ bun src/cli.ts skill install
313
496
  ```
314
497
 
315
498
  ### Adding a new spec implementation
@@ -339,7 +522,7 @@ Each spec follows this workflow:
339
522
  | 12 | [Dashboard](./specs/12-dashboard.md) | Interface | Implemented |
340
523
  | 13 | [Design Evaluation](./specs/13-design-evaluation.md) | Advanced | Implemented |
341
524
  | 14 | [Framework Advisor](./specs/14-framework-advisor.md) | Advanced | Implemented |
342
- | 15 | [Cross-Project Wiki](./specs/15-cross-project-wiki.md) | Wiki | Designed |
525
+ | 15 | [Cross-Project Wiki](./specs/15-cross-project-wiki.md) | Wiki | Implemented |
343
526
  | 16 | [Test Plan](./specs/16-test-plan.md) | Quality | Designed |
344
527
 
345
528
  ## License