claude-kan 1.0.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/LICENSE +21 -0
- package/README.md +136 -0
- package/dist/cli/index.d.ts +11 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +70 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/init.d.ts +5 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +206 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli.d.ts +6 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +299 -0
- package/dist/cli.js.map +1 -0
- package/dist/core/card.d.ts +29 -0
- package/dist/core/card.d.ts.map +1 -0
- package/dist/core/card.js +188 -0
- package/dist/core/card.js.map +1 -0
- package/dist/core/conflict.d.ts +13 -0
- package/dist/core/conflict.d.ts.map +1 -0
- package/dist/core/conflict.js +85 -0
- package/dist/core/conflict.js.map +1 -0
- package/dist/core/kanban.d.ts +22 -0
- package/dist/core/kanban.d.ts.map +1 -0
- package/dist/core/kanban.js +53 -0
- package/dist/core/kanban.js.map +1 -0
- package/dist/core/session.d.ts +21 -0
- package/dist/core/session.d.ts.map +1 -0
- package/dist/core/session.js +115 -0
- package/dist/core/session.js.map +1 -0
- package/dist/core/types.d.ts +50 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/core/types.js +6 -0
- package/dist/core/types.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -0
- package/dist/skills/kanboard.d.ts +8 -0
- package/dist/skills/kanboard.d.ts.map +1 -0
- package/dist/skills/kanboard.js +118 -0
- package/dist/skills/kanboard.js.map +1 -0
- package/dist/skills/kanboardfull.d.ts +7 -0
- package/dist/skills/kanboardfull.d.ts.map +1 -0
- package/dist/skills/kanboardfull.js +137 -0
- package/dist/skills/kanboardfull.js.map +1 -0
- package/dist/skills/kanboardweb.d.ts +11 -0
- package/dist/skills/kanboardweb.d.ts.map +1 -0
- package/dist/skills/kanboardweb.js +489 -0
- package/dist/skills/kanboardweb.js.map +1 -0
- package/dist/skills/kancard.d.ts +10 -0
- package/dist/skills/kancard.d.ts.map +1 -0
- package/dist/skills/kancard.js +169 -0
- package/dist/skills/kancard.js.map +1 -0
- package/dist/skills/kancreate.d.ts +6 -0
- package/dist/skills/kancreate.d.ts.map +1 -0
- package/dist/skills/kancreate.js +60 -0
- package/dist/skills/kancreate.js.map +1 -0
- package/dist/skills/kandoctor.d.ts +17 -0
- package/dist/skills/kandoctor.d.ts.map +1 -0
- package/dist/skills/kandoctor.js +401 -0
- package/dist/skills/kandoctor.js.map +1 -0
- package/dist/skills/kanhelp.d.ts +7 -0
- package/dist/skills/kanhelp.d.ts.map +1 -0
- package/dist/skills/kanhelp.js +194 -0
- package/dist/skills/kanhelp.js.map +1 -0
- package/dist/skills/kanprune.d.ts +11 -0
- package/dist/skills/kanprune.d.ts.map +1 -0
- package/dist/skills/kanprune.js +131 -0
- package/dist/skills/kanprune.js.map +1 -0
- package/dist/skills/kansync.d.ts +7 -0
- package/dist/skills/kansync.d.ts.map +1 -0
- package/dist/skills/kansync.js +41 -0
- package/dist/skills/kansync.js.map +1 -0
- package/dist/skills/kanupdate.d.ts +6 -0
- package/dist/skills/kanupdate.d.ts.map +1 -0
- package/dist/skills/kanupdate.js +74 -0
- package/dist/skills/kanupdate.js.map +1 -0
- package/dist/skills/session-debug.d.ts +6 -0
- package/dist/skills/session-debug.d.ts.map +1 -0
- package/dist/skills/session-debug.js +124 -0
- package/dist/skills/session-debug.js.map +1 -0
- package/dist/templates/skill-templates/kanboard/SKILL.md +26 -0
- package/dist/templates/skill-templates/kanboardfull/SKILL.md +28 -0
- package/dist/templates/skill-templates/kanboardweb/SKILL.md +137 -0
- package/dist/templates/skill-templates/kancard/SKILL.md +70 -0
- package/dist/templates/skill-templates/kancreate/SKILL.md +45 -0
- package/dist/templates/skill-templates/kandoctor/SKILL.md +58 -0
- package/dist/templates/skill-templates/kanhelp/SKILL.md +34 -0
- package/dist/templates/skill-templates/kanprune/SKILL.md +102 -0
- package/dist/templates/skill-templates/kansync/SKILL.md +21 -0
- package/dist/templates/skill-templates/kanupdate/SKILL.md +44 -0
- package/dist/templates/skill-templates/session-debug/SKILL.md +25 -0
- package/package.json +50 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 claude-kan Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# claude-kan
|
|
2
|
+
|
|
3
|
+
> Persistent file-based Kanban system for Claude Code with 10+ skills for seamless task management
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/claude-kan)
|
|
6
|
+
[](https://opensource.org/licenses/MIT)
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## đ Purpose
|
|
11
|
+
|
|
12
|
+
**claude-kan** is a standalone, file-based Kanban system designed specifically for Claude Code users who want persistent task management across coding sessions.
|
|
13
|
+
|
|
14
|
+
### Why This Exists
|
|
15
|
+
|
|
16
|
+
When working with Claude Code, tasks and context disappear between sessions. claude-kan solves this by:
|
|
17
|
+
|
|
18
|
+
1. **Persistent Storage** - Tasks stored as markdown files in `docs/tasks/` organized by status and session
|
|
19
|
+
2. **Session Tracking** - Auto-detects Claude Code session IDs to organize work chronologically
|
|
20
|
+
3. **Zero Configuration** - Works out of the box with any project (Next.js, React, Node.js, etc.)
|
|
21
|
+
4. **Rich Tooling** - 10+ skills for creating, updating, viewing, and managing tasks
|
|
22
|
+
5. **Visual Options** - Terminal board, full board, and HTML web view
|
|
23
|
+
6. **Git-Friendly** - Markdown files integrate naturally with version control
|
|
24
|
+
|
|
25
|
+
### Core Features
|
|
26
|
+
|
|
27
|
+
- â
**10+ Skills**: `/kanboard`, `/kancreate`, `/kanupdate`, `/kancard`, `/kanprune`, `/kanboardweb`, etc.
|
|
28
|
+
- â
**File-Based**: No database required - just markdown files
|
|
29
|
+
- â
**Session-Aware**: Automatically tracks Claude Code sessions
|
|
30
|
+
- â
**Multiple Views**: Terminal (compact/full) and HTML web views
|
|
31
|
+
- â
**Cross-Project**: Install in any JavaScript/TypeScript project
|
|
32
|
+
- â
**Offline-First**: Works without internet connection
|
|
33
|
+
- â
**Git Integration**: Track task history with your code changes
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## đ Quick Start (For Users)
|
|
38
|
+
|
|
39
|
+
### Installation
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
# Install in your project
|
|
43
|
+
npx claude-kan init
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
This creates:
|
|
47
|
+
- `.claude/skills/` - Skill definitions for Claude Code
|
|
48
|
+
- `.kanhelper/` - Compiled system code
|
|
49
|
+
- `docs/tasks/` - Task storage with folders for each status
|
|
50
|
+
|
|
51
|
+
### Natural Language Workflow (Recommended)
|
|
52
|
+
|
|
53
|
+
Use natural prompts with Claude, and Claude can run the right kanban skill for you:
|
|
54
|
+
|
|
55
|
+
- "Create a card for implementing OAuth login" â `/kancreate "Implement OAuth login" Add OAuth flow support`
|
|
56
|
+
- "Move task 3 to in progress" â `/kanupdate 3 in_progress`
|
|
57
|
+
- "Show me the board" â `/kanboard`
|
|
58
|
+
- "Show all columns" â `/kanboardfull`
|
|
59
|
+
- "Open the web board" â `/kanboardweb`
|
|
60
|
+
- "Show card 3" â `/kancard 3`
|
|
61
|
+
|
|
62
|
+
### Quick Command Reference
|
|
63
|
+
|
|
64
|
+
**Creating & Managing Cards**
|
|
65
|
+
- `/kancreate "subject" description` - Create new task + card
|
|
66
|
+
- `/kanupdate {taskId} {status}` - Update card status
|
|
67
|
+
- `/kancard {query}` - View individual card details
|
|
68
|
+
|
|
69
|
+
**Viewing Your Board**
|
|
70
|
+
- `/kanboard` - Compact board view (active columns)
|
|
71
|
+
- `/kanboardfull` - Full board view (all columns)
|
|
72
|
+
- `/kanboardweb` - HTML board that opens in browser
|
|
73
|
+
|
|
74
|
+
**Maintenance**
|
|
75
|
+
- `/kansync` - Manually sync task state
|
|
76
|
+
- `/kandoctor` - Run system health check
|
|
77
|
+
- `/kanprune` - Delete all cards in `deleted` status
|
|
78
|
+
|
|
79
|
+
**Status Options**
|
|
80
|
+
- `pending` - Tasks waiting to start
|
|
81
|
+
- `in_progress` - Active work
|
|
82
|
+
- `completed` - Finished tasks
|
|
83
|
+
- `parkinglot` - Deferred or blocked
|
|
84
|
+
- `deleted` - Deleted tasks
|
|
85
|
+
|
|
86
|
+
Cards are stored as git-committable markdown files in `docs/tasks/{status}/{session-id}/`.
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## đźď¸ Screenshot
|
|
91
|
+
|
|
92
|
+

|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## â ď¸ Limitations
|
|
97
|
+
|
|
98
|
+
- `Task*` hooks in Claude Code currently do not auto-sync with cards, so some updates are manual.
|
|
99
|
+
- `/kanboardweb` generates static HTML and requires regeneration for fresh data.
|
|
100
|
+
- Session detection can fall back to `unknown` if Claude's session metadata cannot be detected.
|
|
101
|
+
- Designed for individual workflow; it is not a multi-user collaborative board.
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## đ Documentation
|
|
106
|
+
|
|
107
|
+
- Install with `npx claude-kan init`.
|
|
108
|
+
- Run `/kanhelp` to see all available skills.
|
|
109
|
+
- Run `/kandoctor` to validate your setup.
|
|
110
|
+
- Task files live in `docs/tasks/` in your project.
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## đ License
|
|
115
|
+
|
|
116
|
+
MIT License - See [LICENSE](LICENSE) file for details.
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## đ Links
|
|
121
|
+
|
|
122
|
+
- **npm Package**: https://www.npmjs.com/package/claude-kan
|
|
123
|
+
- **GitHub Repository**: https://github.com/sudiptosen/claude-kan
|
|
124
|
+
- **Issue Tracker**: https://github.com/sudiptosen/claude-kan/issues
|
|
125
|
+
- **Claude Code**: https://claude.ai/code
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## đŹ Support
|
|
130
|
+
|
|
131
|
+
- **Issues**: [GitHub Issues](https://github.com/sudiptosen/claude-kan/issues)
|
|
132
|
+
- **Discussions**: [GitHub Discussions](https://github.com/sudiptosen/claude-kan/discussions)
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
**Built with â¤ď¸ for Claude Code users who want persistent task management**
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* claude-kan CLI entry point
|
|
4
|
+
*
|
|
5
|
+
* Usage:
|
|
6
|
+
* npx claude-kan init # Install in current project
|
|
7
|
+
* npx claude-kan --help # Show help
|
|
8
|
+
* npx claude-kan --version # Show version
|
|
9
|
+
*/
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* claude-kan CLI entry point
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* npx claude-kan init # Install in current project
|
|
8
|
+
* npx claude-kan --help # Show help
|
|
9
|
+
* npx claude-kan --version # Show version
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
const init_1 = require("./init");
|
|
13
|
+
async function main() {
|
|
14
|
+
const args = process.argv.slice(2);
|
|
15
|
+
const command = args[0];
|
|
16
|
+
if (!command || command === '--help' || command === '-h') {
|
|
17
|
+
showHelp();
|
|
18
|
+
process.exit(0);
|
|
19
|
+
}
|
|
20
|
+
if (command === '--version' || command === '-v') {
|
|
21
|
+
showVersion();
|
|
22
|
+
process.exit(0);
|
|
23
|
+
}
|
|
24
|
+
if (command === 'init') {
|
|
25
|
+
const options = {
|
|
26
|
+
skipGitignore: args.includes('--skip-gitignore')
|
|
27
|
+
};
|
|
28
|
+
try {
|
|
29
|
+
await (0, init_1.install)(options);
|
|
30
|
+
process.exit(0);
|
|
31
|
+
}
|
|
32
|
+
catch (error) {
|
|
33
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
34
|
+
console.error('â Installation failed:', message);
|
|
35
|
+
process.exit(1);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
console.error(`Unknown command: ${command}`);
|
|
40
|
+
showHelp();
|
|
41
|
+
process.exit(1);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
function showHelp() {
|
|
45
|
+
console.log(`
|
|
46
|
+
claude-kan - Persistent Kanban system for Claude Code
|
|
47
|
+
|
|
48
|
+
Usage:
|
|
49
|
+
npx claude-kan init Install Kanban system in current project
|
|
50
|
+
npx claude-kan init --skip-gitignore Skip .gitignore updates
|
|
51
|
+
npx claude-kan --help Show this help message
|
|
52
|
+
npx claude-kan --version Show version
|
|
53
|
+
|
|
54
|
+
After installation, use these skills in Claude Code:
|
|
55
|
+
/kanboard View Kanban board
|
|
56
|
+
/kancreate Create new card
|
|
57
|
+
/kanupdate Update card status
|
|
58
|
+
/kancard View card details
|
|
59
|
+
/kanhelp Show all commands
|
|
60
|
+
/kandoctor Run health check
|
|
61
|
+
|
|
62
|
+
Documentation: https://github.com/yourusername/claude-kan
|
|
63
|
+
`);
|
|
64
|
+
}
|
|
65
|
+
function showVersion() {
|
|
66
|
+
const packageJson = require('../../package.json');
|
|
67
|
+
console.log(`claude-kan v${packageJson.version}`);
|
|
68
|
+
}
|
|
69
|
+
main();
|
|
70
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;AACA;;;;;;;GAOG;;AAEH,iCAAiC;AAEjC,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAExB,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACzD,QAAQ,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,OAAO,KAAK,WAAW,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QAChD,WAAW,EAAE,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QACvB,MAAM,OAAO,GAAG;YACd,aAAa,EAAE,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC;SACjD,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,IAAA,cAAO,EAAC,OAAO,CAAC,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,OAAO,CAAC,CAAC;YACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;QAC7C,QAAQ,EAAE,CAAC;QACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,QAAQ;IACf,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;GAkBX,CAAC,CAAC;AACL,CAAC;AAED,SAAS,WAAW;IAClB,MAAM,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,eAAe,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;AACpD,CAAC;AAED,IAAI,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,cAAc;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,wBAAsB,OAAO,CAAC,OAAO,GAAE,cAAmB,iBAiCzD"}
|
package/dist/cli/init.js
ADDED
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.install = install;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const child_process_1 = require("child_process");
|
|
10
|
+
async function install(options = {}) {
|
|
11
|
+
const targetDir = process.cwd();
|
|
12
|
+
console.log('\nđŚ Installing claude-kan...\n');
|
|
13
|
+
try {
|
|
14
|
+
// 1. Create directory structure
|
|
15
|
+
createDirectories(targetDir);
|
|
16
|
+
// 2. Copy skill templates
|
|
17
|
+
copySkillTemplates(targetDir);
|
|
18
|
+
// 3. Copy compiled code
|
|
19
|
+
copyCompiledCode(targetDir);
|
|
20
|
+
// 4. Create initial task files
|
|
21
|
+
createTaskFiles(targetDir);
|
|
22
|
+
// 5. Update .gitignore
|
|
23
|
+
if (!options.skipGitignore) {
|
|
24
|
+
updateGitignore(targetDir);
|
|
25
|
+
}
|
|
26
|
+
// 6. Run health check
|
|
27
|
+
const healthPassed = runHealthCheck(targetDir);
|
|
28
|
+
// 7. Show success message
|
|
29
|
+
displaySuccessMessage(healthPassed);
|
|
30
|
+
}
|
|
31
|
+
catch (error) {
|
|
32
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
33
|
+
throw new Error(`Installation failed: ${message}`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function createDirectories(targetDir) {
|
|
37
|
+
console.log('đ Creating directories...');
|
|
38
|
+
const dirs = [
|
|
39
|
+
'.claude/skills',
|
|
40
|
+
'.kanhelper/dist',
|
|
41
|
+
'docs/tasks/pending',
|
|
42
|
+
'docs/tasks/in_progress',
|
|
43
|
+
'docs/tasks/completed',
|
|
44
|
+
'docs/tasks/parkinglot',
|
|
45
|
+
'docs/tasks/deleted'
|
|
46
|
+
];
|
|
47
|
+
for (const dir of dirs) {
|
|
48
|
+
const fullPath = path_1.default.join(targetDir, dir);
|
|
49
|
+
if (!fs_1.default.existsSync(fullPath)) {
|
|
50
|
+
fs_1.default.mkdirSync(fullPath, { recursive: true });
|
|
51
|
+
console.log(` â ${dir}`);
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
console.log(` - ${dir} (already exists)`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
function copySkillTemplates(targetDir) {
|
|
59
|
+
console.log('\nđ Installing skills...');
|
|
60
|
+
// Get the path to skill templates in the installed package
|
|
61
|
+
const packageRoot = path_1.default.resolve(__dirname, '../..');
|
|
62
|
+
const templatesDir = path_1.default.join(packageRoot, 'dist', 'templates', 'skill-templates');
|
|
63
|
+
if (!fs_1.default.existsSync(templatesDir)) {
|
|
64
|
+
throw new Error(`Skill templates not found at: ${templatesDir}`);
|
|
65
|
+
}
|
|
66
|
+
const skills = fs_1.default.readdirSync(templatesDir);
|
|
67
|
+
for (const skill of skills) {
|
|
68
|
+
const srcPath = path_1.default.join(templatesDir, skill);
|
|
69
|
+
const destPath = path_1.default.join(targetDir, '.claude', 'skills', skill);
|
|
70
|
+
if (fs_1.default.statSync(srcPath).isDirectory()) {
|
|
71
|
+
copyRecursive(srcPath, destPath);
|
|
72
|
+
console.log(` â ${skill}`);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
function copyCompiledCode(targetDir) {
|
|
77
|
+
console.log('\nâď¸ Installing Kanban system...');
|
|
78
|
+
// Copy dist folder
|
|
79
|
+
const packageRoot = path_1.default.resolve(__dirname, '../..');
|
|
80
|
+
const distSrc = path_1.default.join(packageRoot, 'dist');
|
|
81
|
+
const distDest = path_1.default.join(targetDir, '.kanhelper', 'dist');
|
|
82
|
+
if (fs_1.default.existsSync(distDest)) {
|
|
83
|
+
fs_1.default.rmSync(distDest, { recursive: true });
|
|
84
|
+
}
|
|
85
|
+
copyRecursive(distSrc, distDest);
|
|
86
|
+
console.log(' â Compiled code');
|
|
87
|
+
// Copy package.json
|
|
88
|
+
const pkgSrc = path_1.default.join(packageRoot, 'package.json');
|
|
89
|
+
const pkgDest = path_1.default.join(targetDir, '.kanhelper', 'package.json');
|
|
90
|
+
fs_1.default.copyFileSync(pkgSrc, pkgDest);
|
|
91
|
+
console.log(' â package.json');
|
|
92
|
+
}
|
|
93
|
+
function createTaskFiles(targetDir) {
|
|
94
|
+
console.log('\nđ Creating task files...');
|
|
95
|
+
const todoPath = path_1.default.join(targetDir, 'docs', 'tasks', 'todo.md');
|
|
96
|
+
if (!fs_1.default.existsSync(todoPath)) {
|
|
97
|
+
const todoContent = `# Task Tracker
|
|
98
|
+
|
|
99
|
+
## Current Tasks
|
|
100
|
+
|
|
101
|
+
*Use /kancreate to add tasks*
|
|
102
|
+
|
|
103
|
+
## Completed
|
|
104
|
+
|
|
105
|
+
*Completed tasks move to docs/tasks/completed/*
|
|
106
|
+
`;
|
|
107
|
+
fs_1.default.writeFileSync(todoPath, todoContent);
|
|
108
|
+
console.log(' â todo.md');
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
console.log(' - todo.md (already exists)');
|
|
112
|
+
}
|
|
113
|
+
const lessonsPath = path_1.default.join(targetDir, 'docs', 'tasks', 'lessons.md');
|
|
114
|
+
if (!fs_1.default.existsSync(lessonsPath)) {
|
|
115
|
+
const lessonsContent = `# Lessons Learned
|
|
116
|
+
|
|
117
|
+
## Session Notes
|
|
118
|
+
|
|
119
|
+
*Document key learnings and decisions here*
|
|
120
|
+
`;
|
|
121
|
+
fs_1.default.writeFileSync(lessonsPath, lessonsContent);
|
|
122
|
+
console.log(' â lessons.md');
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
console.log(' - lessons.md (already exists)');
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
function updateGitignore(targetDir) {
|
|
129
|
+
console.log('\nđ§ Updating .gitignore...');
|
|
130
|
+
const gitignorePath = path_1.default.join(targetDir, '.gitignore');
|
|
131
|
+
let gitignoreContent = '';
|
|
132
|
+
if (fs_1.default.existsSync(gitignorePath)) {
|
|
133
|
+
gitignoreContent = fs_1.default.readFileSync(gitignorePath, 'utf-8');
|
|
134
|
+
}
|
|
135
|
+
const kanbanEntries = [
|
|
136
|
+
'# Claude Kanban',
|
|
137
|
+
'.kanhelper/node_modules/',
|
|
138
|
+
'.kanhelper/dist/',
|
|
139
|
+
'docs/tasks/kb.html'
|
|
140
|
+
];
|
|
141
|
+
const hasKanbanEntries = kanbanEntries.some(entry => gitignoreContent.includes(entry));
|
|
142
|
+
if (!hasKanbanEntries) {
|
|
143
|
+
const newContent = gitignoreContent.trim() + '\n\n' + kanbanEntries.join('\n') + '\n';
|
|
144
|
+
fs_1.default.writeFileSync(gitignorePath, newContent);
|
|
145
|
+
console.log(' â Added Kanban entries');
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
console.log(' - Kanban entries already present');
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
function runHealthCheck(targetDir) {
|
|
152
|
+
console.log('\nđĽ Running health check...\n');
|
|
153
|
+
try {
|
|
154
|
+
const healthScript = path_1.default.join(targetDir, '.kanhelper', 'dist', 'skills', 'kandoctor.js');
|
|
155
|
+
if (!fs_1.default.existsSync(healthScript)) {
|
|
156
|
+
console.log(' â ď¸ Health check script not found');
|
|
157
|
+
return false;
|
|
158
|
+
}
|
|
159
|
+
(0, child_process_1.execSync)(`node "${healthScript}"`, {
|
|
160
|
+
cwd: targetDir,
|
|
161
|
+
stdio: 'inherit'
|
|
162
|
+
});
|
|
163
|
+
return true;
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
console.log(' â ď¸ Health check failed');
|
|
167
|
+
return false;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
function displaySuccessMessage(healthPassed) {
|
|
171
|
+
console.log('\n' + '='.repeat(60));
|
|
172
|
+
console.log('â
Installation complete!');
|
|
173
|
+
console.log('='.repeat(60));
|
|
174
|
+
if (healthPassed) {
|
|
175
|
+
console.log('\n⨠All systems operational!');
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
console.log('\nâ ď¸ Some checks failed. Review output above.');
|
|
179
|
+
}
|
|
180
|
+
console.log('\nđ Next steps:');
|
|
181
|
+
console.log(' 1. Type /kanhelp in Claude Code to see all commands');
|
|
182
|
+
console.log(' 2. Type /kanboard to view your Kanban board');
|
|
183
|
+
console.log(' 3. Type /kancreate to create your first task');
|
|
184
|
+
console.log('\nđĄ Tip: Use /kandoctor anytime to check system health\n');
|
|
185
|
+
}
|
|
186
|
+
function copyRecursive(src, dest) {
|
|
187
|
+
if (!fs_1.default.existsSync(src)) {
|
|
188
|
+
throw new Error(`Source path does not exist: ${src}`);
|
|
189
|
+
}
|
|
190
|
+
const stat = fs_1.default.statSync(src);
|
|
191
|
+
if (stat.isDirectory()) {
|
|
192
|
+
if (!fs_1.default.existsSync(dest)) {
|
|
193
|
+
fs_1.default.mkdirSync(dest, { recursive: true });
|
|
194
|
+
}
|
|
195
|
+
const files = fs_1.default.readdirSync(src);
|
|
196
|
+
for (const file of files) {
|
|
197
|
+
const srcPath = path_1.default.join(src, file);
|
|
198
|
+
const destPath = path_1.default.join(dest, file);
|
|
199
|
+
copyRecursive(srcPath, destPath);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
fs_1.default.copyFileSync(src, dest);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/cli/init.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;GAEG"}
|