sticky-note-cli 2.6.15 → 2.7.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 +119 -4
- package/bin/cli.js +590 -0
- package/bin/mcp-server.js +788 -0
- package/package.json +3 -2
- package/templates/CLAUDE.md +37 -16
- package/templates/copilot-instructions.md +69 -35
- package/templates/environment/manifest.json +37 -0
- package/templates/hooks/inject-context.js +41 -22
- package/templates/hooks/pre-tool-use.js +4 -56
- package/templates/hooks/session-end.js +3 -3
- package/templates/hooks/session-start.js +341 -25
- package/templates/hooks.json +12 -12
- package/templates/settings.json +7 -7
package/README.md
CHANGED
|
@@ -30,8 +30,12 @@
|
|
|
30
30
|
|
|
31
31
|
## The Problem
|
|
32
32
|
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
When multiple developers on a team use AI coding assistants, each assistant operates in its own bubble. Your agent doesn't know that your teammate's agent just spent 45 minutes debugging token rotation in the same file you're about to refactor. It doesn't know what they tried and abandoned. It doesn't know they're stuck.
|
|
34
|
+
|
|
35
|
+
The result: duplicated effort, conflicting changes, and context that evaporates the moment a session ends.
|
|
36
|
+
|
|
37
|
+
There are plenty of agent-to-agent orchestration frameworks out there, but that's not how most teams actually work. We work with other people — people who also happen to use agents. We needed a way for those agents to share context without changing how anyone works.
|
|
38
|
+
|
|
35
39
|
So we built Sticky Note.
|
|
36
40
|
|
|
37
41
|
## The Solution
|
|
@@ -42,9 +46,18 @@ their next session by relevance.
|
|
|
42
46
|
|
|
43
47
|
---
|
|
44
48
|
|
|
45
|
-
## What's New in V2.
|
|
49
|
+
## What's New in V2.7
|
|
46
50
|
|
|
47
|
-
- **
|
|
51
|
+
- **Team Environment Sync**: Share your complete AI dev environment through git. Skills, agents, commands, MCP servers, and permissions auto-provision when teammates start a session — zero manual setup
|
|
52
|
+
- **`bootstrap` command**: Interactive secrets provisioning for MCP servers that need credentials. Generates `.env.example` for the team
|
|
53
|
+
- **`env` commands**: `env status` shows provisioning state, `env add-server` adds MCP servers interactively
|
|
54
|
+
- **Dual-target provisioning**: Skills deployed to both Claude Code plugins and Copilot CLI extensions automatically
|
|
55
|
+
|
|
56
|
+
### What's New in V2.6
|
|
57
|
+
|
|
58
|
+
- **MCP server**: 8-tool MCP server for reliable AI-to-sticky-note communication. Auto-registers in `.mcp.json` on first session. Works with Claude Code, Copilot CLI, and any MCP-compatible client
|
|
59
|
+
- **Styled overlap banners**: Overlap warnings now use structured box-drawing format with 🔴/🟡 status indicators, ANSI-colored stderr output
|
|
60
|
+
- **Overlap detection**: Warns when you're working on files another teammate has open/stuck threads on. Three delivery channels: MCP tool, injected context, and preToolUse deny
|
|
48
61
|
- **File claiming**: `npx sticky-note-cli claim src/auth.ts "refactoring auth flow"` — declare intent to work on files
|
|
49
62
|
- **Auto-close Copilot CLI threads**: Threads from Copilot CLI sessions auto-close after configurable inactivity (default 24h), since Copilot CLI has no session-end signal
|
|
50
63
|
- **PID-keyed session isolation**: Concurrent Copilot CLI sessions get independent overlap dedup via `COPILOT_LOADER_PID`
|
|
@@ -335,6 +348,11 @@ npx sticky-note-cli gc # Tombstone expired threads
|
|
|
335
348
|
npx sticky-note-cli reset # Wipe all threads (--force, --keep-audit)
|
|
336
349
|
npx sticky-note-cli get-line-attribution # File→thread attribution with line ranges (V2.5)
|
|
337
350
|
npx sticky-note-cli checkpoint # Set work-topic checkpoint for attribution (V2.5)
|
|
351
|
+
npx sticky-note-cli sync # Commit .sticky-note/ changes (--push to also push)
|
|
352
|
+
npx sticky-note-cli bootstrap # Provision MCP servers that need secrets
|
|
353
|
+
npx sticky-note-cli env status # Show environment provisioning status
|
|
354
|
+
npx sticky-note-cli env add-server # Add MCP server to team environment
|
|
355
|
+
npx sticky-note mcp-server # Launch MCP server (stdio JSON-RPC)
|
|
338
356
|
npx sticky-note-cli --version # Show version
|
|
339
357
|
npx sticky-note-cli --help # Show help
|
|
340
358
|
```
|
|
@@ -396,6 +414,103 @@ Edit `.sticky-note/sticky-note-config.json`:
|
|
|
396
414
|
|
|
397
415
|
All tools call the same JavaScript hooks and share the same data files.
|
|
398
416
|
|
|
417
|
+
> **Third-party tools** (Cursor, Windsurf, Zed, Cline) can use the MCP server
|
|
418
|
+
> for full thread access without hooks. See below.
|
|
419
|
+
|
|
420
|
+
---
|
|
421
|
+
|
|
422
|
+
## MCP Server
|
|
423
|
+
|
|
424
|
+
Sticky Note includes an MCP server that gives AI tools direct access to
|
|
425
|
+
thread data, overlap detection, and environment status via standard
|
|
426
|
+
[Model Context Protocol](https://modelcontextprotocol.io/).
|
|
427
|
+
|
|
428
|
+
### Auto-registration
|
|
429
|
+
|
|
430
|
+
The session-start hook automatically registers the MCP server in `.mcp.json`
|
|
431
|
+
on the first session. No manual setup needed — it's available from the second
|
|
432
|
+
session onward.
|
|
433
|
+
|
|
434
|
+
### Manual registration
|
|
435
|
+
|
|
436
|
+
Add to `.mcp.json` at your project root:
|
|
437
|
+
|
|
438
|
+
```json
|
|
439
|
+
{
|
|
440
|
+
"mcpServers": {
|
|
441
|
+
"sticky-note": {
|
|
442
|
+
"type": "stdio",
|
|
443
|
+
"command": "npx",
|
|
444
|
+
"args": ["-y", "-p", "sticky-note-cli", "sticky-note", "mcp-server"]
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
```
|
|
449
|
+
|
|
450
|
+
### Tools
|
|
451
|
+
|
|
452
|
+
| Tool | Description |
|
|
453
|
+
|------|-------------|
|
|
454
|
+
| `get_session_context(id)` | Full thread payload by ID |
|
|
455
|
+
| `get_stuck_threads()` | All stuck threads with failed approaches |
|
|
456
|
+
| `search_threads(query)` | Keyword search across threads |
|
|
457
|
+
| `get_audit_trail(file, user, since, ...)` | Query per-user audit logs |
|
|
458
|
+
| `get_presence()` | Active developers and their files |
|
|
459
|
+
| `check_overlaps(files)` | Detect file conflicts before editing |
|
|
460
|
+
| `get_environment_status()` | Environment sync status (provisioned vs missing) |
|
|
461
|
+
| `get_thread_context_for_files(files)` | Thread attribution for files |
|
|
462
|
+
|
|
463
|
+
### Why MCP?
|
|
464
|
+
|
|
465
|
+
Hook output goes to the AI model's context window — the AI decides whether
|
|
466
|
+
to surface it. MCP tool responses are part of the AI's active reasoning,
|
|
467
|
+
so the data always gets processed. This makes the MCP server the most
|
|
468
|
+
reliable channel for overlap warnings and environment notifications.
|
|
469
|
+
|
|
470
|
+
---
|
|
471
|
+
|
|
472
|
+
## Team Environment Sync
|
|
473
|
+
|
|
474
|
+
Share your complete AI development environment with the team — MCP servers,
|
|
475
|
+
skills, agents, commands, and permissions — through git, with zero manual setup.
|
|
476
|
+
|
|
477
|
+
### How it works
|
|
478
|
+
|
|
479
|
+
```
|
|
480
|
+
Team lead: npx sticky-note init → commits hooks + environment/
|
|
481
|
+
Teammate: git pull && start session → hook auto-provisions everything
|
|
482
|
+
```
|
|
483
|
+
|
|
484
|
+
The session-start hook is the provisioning engine. It copies skills to
|
|
485
|
+
plugin directories, writes MCP servers to `.mcp.json`, and merges
|
|
486
|
+
permissions — all automatically when a teammate starts their AI session.
|
|
487
|
+
|
|
488
|
+
### Directory structure
|
|
489
|
+
|
|
490
|
+
```
|
|
491
|
+
.sticky-note/environment/
|
|
492
|
+
├── manifest.json # MCP servers, permissions, env vars
|
|
493
|
+
├── skills/ # Team skill definitions (.md files)
|
|
494
|
+
├── agents/ # Team agent definitions (.md files)
|
|
495
|
+
└── commands/ # Team command definitions (.md files)
|
|
496
|
+
```
|
|
497
|
+
|
|
498
|
+
### Adding team resources
|
|
499
|
+
|
|
500
|
+
**Skills/agents/commands:** Drop a `.md` file into the appropriate directory.
|
|
501
|
+
It auto-provisions on next session and auto-commits with your next commit.
|
|
502
|
+
|
|
503
|
+
**MCP servers:** `npx sticky-note env add-server` or edit `manifest.json`.
|
|
504
|
+
|
|
505
|
+
### Secrets handling
|
|
506
|
+
|
|
507
|
+
MCP servers that need secrets (e.g., `${GITHUB_TOKEN}`) are skipped by
|
|
508
|
+
auto-provisioning. Run `npx sticky-note bootstrap` to provide credentials
|
|
509
|
+
interactively — they're saved to `.env` (gitignored), never committed.
|
|
510
|
+
|
|
511
|
+
The MCP server's `get_environment_status()` tool tells the AI what's missing
|
|
512
|
+
so it can prompt the user.
|
|
513
|
+
|
|
399
514
|
---
|
|
400
515
|
|
|
401
516
|
## Concurrent Usage & Merge Strategy
|