claude-task-tracker 1.0.10 → 1.0.11

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
@@ -7,6 +7,7 @@ A CLI task tracker with dependency management designed to extend memory for agen
7
7
  - **Task Dependencies**: Blocking dependencies that prevent task execution until completed
8
8
  - **Soft References**: Non-blocking references between related tasks
9
9
  - **Task Overviews**: Context summaries filled on completion for dependent tasks to reference
10
+ - **Plan File References**: Link tasks to external plan files with detailed implementation notes
10
11
  - **Ready Task Detection**: `next` command finds tasks ready to work on (open + all blockers completed)
11
12
  - **Multiple Output Formats**: Default, JSON, and compact (token-efficient for LLMs)
12
13
  - **Claude Code Integration**: Auto-generates `CLAUDE.md` with usage instructions on init
@@ -47,6 +48,9 @@ ctt add "Design API schema" -d "Define REST endpoints"
47
48
  ctt add "Implement auth" --blocked-by t1
48
49
  ctt add "Write tests" --blocked-by t2 --ref t1
49
50
 
51
+ # Add a task with a plan file
52
+ ctt add "Refactor database" -p .tasks/plans/db-refactor.md
53
+
50
54
  # Get next ready task
51
55
  ctt next
52
56
  # Output: t1 - Design API schema
@@ -66,7 +70,7 @@ ctt context t2
66
70
  | Command | Description |
67
71
  |---------|-------------|
68
72
  | `ctt init` | Initialize `.tasks/tasks.json` in current directory |
69
- | `ctt add <title>` | Add task (`-d` description, `-b` blockedBy, `-r` refs) |
73
+ | `ctt add <title>` | Add task (`-d` description, `-b` blockedBy, `-r` refs, `-p` planFile) |
70
74
  | `ctt list` | List all tasks (`-s` filter by status) |
71
75
  | `ctt show <id>` | Show task details |
72
76
  | `ctt next` | Get next ready task (open + all blockers completed) |
@@ -78,6 +82,7 @@ ctt context t2
78
82
  | `ctt unref <id> --to <id>` | Remove soft reference |
79
83
  | `ctt context <id>` | Show task + all dependency overviews |
80
84
  | `ctt overview <id> <text>` | Update task overview |
85
+ | `ctt plan <id> <path>` | Set or update plan file reference |
81
86
  | `ctt delete <id>` | Delete a task |
82
87
  | `ctt cleanup` | Remove old completed tasks (`-d` days, default 7, `--dry-run`) |
83
88
 
@@ -126,6 +131,7 @@ ctt --compact context t3
126
131
  - `<t1,t2` = blocked by t1 and t2
127
132
  - `~t1` = references t1
128
133
  - `>text` = overview
134
+ - `@path` = plan file reference
129
135
 
130
136
  ## Task States
131
137
 
package/dist/index.js CHANGED
@@ -20,6 +20,7 @@ function createTask(id, title, options = {}) {
20
20
  blockedBy: options.blockedBy ?? [],
21
21
  references: options.references ?? [],
22
22
  overview: void 0,
23
+ planFile: options.planFile,
23
24
  createdAt: now,
24
25
  updatedAt: now
25
26
  };
@@ -135,6 +136,9 @@ function formatTaskDetail(task, store) {
135
136
  if (task.overview) {
136
137
  lines.push(`Overview: ${task.overview}`);
137
138
  }
139
+ if (task.planFile) {
140
+ lines.push(`Plan file: ${task.planFile}`);
141
+ }
138
142
  lines.push(`Created: ${task.createdAt}`);
139
143
  lines.push(`Updated: ${task.updatedAt}`);
140
144
  return lines.join("\n");
@@ -197,6 +201,9 @@ function formatTaskCompact(task) {
197
201
  if (task.overview) {
198
202
  parts.push(`>${task.overview}`);
199
203
  }
204
+ if (task.planFile) {
205
+ parts.push(`@${task.planFile}`);
206
+ }
200
207
  return parts.join(" ");
201
208
  }
202
209
  function formatTasksCompact(tasks) {
@@ -253,6 +260,7 @@ This project uses \`ctt\` (Claude Task Tracker) for task management with depende
253
260
  - \`ctt add "title" -d "description"\` - Add task with detailed description
254
261
  - \`ctt add "title" -b <blocker-id>\` - Add task blocked by another
255
262
  - \`ctt add "title" -r <ref-id>\` - Add task with a reference to another
263
+ - \`ctt add "title" -p <path>\` - Add task with a plan file reference
256
264
  - \`ctt list\` - List all tasks
257
265
  - \`ctt list -s <status>\` - List tasks by status (open, progress, completed)
258
266
  - \`ctt show <id>\` - Show task details
@@ -266,6 +274,7 @@ This project uses \`ctt\` (Claude Task Tracker) for task management with depende
266
274
  - \`ctt ref <id> --to <ref-id>\` - Add soft reference to another task
267
275
  - \`ctt unref <id> --to <ref-id>\` - Remove soft reference
268
276
  - \`ctt overview <id> "text"\` - Set or update task overview
277
+ - \`ctt plan <id> <path>\` - Set or update plan file reference
269
278
  - \`ctt delete <id>\` - Delete a task
270
279
  - \`ctt cleanup\` - Remove completed tasks older than 7 days
271
280
  - \`ctt cleanup -d <days>\` - Remove completed tasks older than N days
@@ -279,6 +288,9 @@ ctt add "Implement user authentication" -d "Add JWT-based auth with login/logout
279
288
 
280
289
  # Add a task blocked by another with description
281
290
  ctt add "Add password reset" -d "Email-based password reset flow" -b t1
291
+
292
+ # Add a task with a plan file containing detailed implementation notes
293
+ ctt add "Refactor database layer" -p .tasks/plans/db-refactor.md
282
294
  \`\`\`
283
295
 
284
296
  ### Compact Format
@@ -286,6 +298,7 @@ ctt add "Add password reset" -d "Email-based password reset flow" -b t1
286
298
  - \`<t1,t2\` = blocked by tasks
287
299
  - \`~t1\` = references task
288
300
  - \`>text\` = overview
301
+ - \`@path\` = plan file reference
289
302
  `;
290
303
  function setupClaudeMd(cwd = process.cwd()) {
291
304
  const claudeMdPath = join2(cwd, "CLAUDE.md");
@@ -318,7 +331,7 @@ program.command("init").description("Initialize task store and setup CLAUDE.md")
318
331
  process.exit(1);
319
332
  }
320
333
  });
321
- program.command("add <title>").description("Add a new task").option("-d, --description <desc>", "Task description").option("-b, --blocked-by <ids>", "Comma-separated IDs of blocking tasks").option("-r, --ref <ids>", "Comma-separated IDs of referenced tasks").action((title, options) => {
334
+ program.command("add <title>").description("Add a new task").option("-d, --description <desc>", "Task description").option("-b, --blocked-by <ids>", "Comma-separated IDs of blocking tasks").option("-r, --ref <ids>", "Comma-separated IDs of referenced tasks").option("-p, --plan-file <path>", "Path to plan file with detailed planning notes").action((title, options) => {
322
335
  try {
323
336
  const store = loadStore();
324
337
  const blockedBy = options.blockedBy ? options.blockedBy.split(",").map((s) => s.trim()) : [];
@@ -332,7 +345,8 @@ program.command("add <title>").description("Add a new task").option("-d, --descr
332
345
  const task = addTask(store, title, {
333
346
  description: options.description,
334
347
  blockedBy,
335
- references
348
+ references,
349
+ planFile: options.planFile
336
350
  });
337
351
  saveStore(store);
338
352
  const fmt = getOutputFormat();
@@ -625,6 +639,26 @@ program.command("overview <id> <text>").description("Set or update task overview
625
639
  process.exit(1);
626
640
  }
627
641
  });
642
+ program.command("plan <id> <path>").description("Set or update plan file reference for a task").action((id, path) => {
643
+ try {
644
+ const store = loadStore();
645
+ const task = getTask(store, id);
646
+ if (!task) {
647
+ console.error(`Task ${id} not found.`);
648
+ process.exit(1);
649
+ }
650
+ updateTask(store, id, { planFile: path });
651
+ saveStore(store);
652
+ if (program.opts().json) {
653
+ console.log(formatTaskJson(getTask(store, id)));
654
+ } else {
655
+ console.log(`Updated plan file for ${id}: ${path}`);
656
+ }
657
+ } catch (err) {
658
+ console.error(err.message);
659
+ process.exit(1);
660
+ }
661
+ });
628
662
  program.command("context <id>").description("Show task with all dependency overviews for quick context lookup").action((id) => {
629
663
  try {
630
664
  const store = loadStore();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-task-tracker",
3
- "version": "1.0.10",
3
+ "version": "1.0.11",
4
4
  "description": "CLI task tracker with dependency management for agentic code workflows",
5
5
  "type": "module",
6
6
  "bin": {