pm-todos 2026.6.2 → 2026.6.3

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/CHANGELOG.md CHANGED
@@ -1,6 +1,21 @@
1
1
  # Changelog
2
2
 
3
- ## 2026.6.2 - 2026-06-02
3
+ ## 2026.6.3 - 2026-06-02
4
+
5
+ ### Added
6
+
7
+ - Deepen pm-todos: todo.txt + GH task-list + validate + grouping + full field round-trip ([pm-todos-vqr8](https://github.com/unbraind/pm-todos/blob/main/.agents/pm/features/pm-todos-vqr8.toon))
8
+
9
+ ### Other
10
+
11
+ - Full field round-trip in markdown \(type/priority/tags/deadline/status/assignee\) ([pm-todos-i8qd](https://github.com/unbraind/pm-todos/blob/main/.agents/pm/tasks/pm-todos-i8qd.toon))
12
+ - --group-by status\|sprint\|type sectioning on export ([pm-todos-oqcd](https://github.com/unbraind/pm-todos/blob/main/.agents/pm/tasks/pm-todos-oqcd.toon))
13
+ - todos validate <file\> command ([pm-todos-q1v5](https://github.com/unbraind/pm-todos/blob/main/.agents/pm/tasks/pm-todos-q1v5.toon))
14
+ - GitHub-flavored task-list export \(--format tasklist\) ([pm-todos-hiry](https://github.com/unbraind/pm-todos/blob/main/.agents/pm/tasks/pm-todos-hiry.toon))
15
+ - todo.txt format import + export \(--format todotxt\) ([pm-todos-1q04](https://github.com/unbraind/pm-todos/blob/main/.agents/pm/tasks/pm-todos-1q04.toon))
16
+ - Decision: priority-letter<-\>number mapping ([pm-todos-c710](https://github.com/unbraind/pm-todos/blob/main/.agents/pm/tasks/pm-todos-c710.toon))
17
+
18
+ ## 2026.06.02 - 2026-06-02
4
19
 
5
20
  ### Added
6
21
 
package/README.md CHANGED
@@ -6,6 +6,8 @@ Import markdown checkboxes (`- [ ]` and `- [x]`) as pm items and export pm items
6
6
 
7
7
  The parser understands **nested/indented sub-tasks**, **section headers** (`## …` mapped to tags), **priority markers** (`(p1)` and `!`/`!!`/`!!!`), and can import **multiple files at once** via a `--glob` pattern.
8
8
 
9
+ In addition to markdown, pm-todos round-trips the de-facto [**todo.txt**](https://github.com/todotxt/todo.txt) format and exports **GitHub-flavored task lists**, can **group** exports into sections by status/sprint/type, and can **validate** a TODO file without importing it.
10
+
9
11
  ---
10
12
 
11
13
  ## Installation
@@ -44,6 +46,7 @@ pm todos import backlog.md --type Task --priority 2
44
46
  pm todos import --glob 'docs/**/*.md'
45
47
  pm todos import TODO.md --section Backlog
46
48
  pm todos import TODO.md --closed-as canceled
49
+ pm todos import todo.txt --format todotxt
47
50
  ```
48
51
 
49
52
  **Flags**
@@ -51,6 +54,7 @@ pm todos import TODO.md --closed-as canceled
51
54
  | Flag | Type | Description |
52
55
  |---|---|---|
53
56
  | `--dry-run` | boolean | Preview without writing |
57
+ | `--format <fmt>` | string | Source format: `markdown` (default) or `todotxt` |
54
58
  | `--type <type>` | string | Item type (default: Task) |
55
59
  | `--priority <n>` | number | Priority (0–4); overrides markers inferred from the text |
56
60
  | `--tags <tags>` | string | Comma-separated tags applied to every item |
@@ -66,15 +70,27 @@ pm todos import TODO.md --closed-as canceled
66
70
  - **Section headers**: the nearest preceding `## Heading` is slugged (e.g. `## In Progress` → `in-progress`) and added as a tag, unless `--no-section-tags` is given.
67
71
  - **Priority markers**: `(p0)`…`(p4)` set an explicit priority; trailing/leading `!`, `!!`, `!!!` map to priority `2`, `1`, `0`. Markers are stripped from the item title. An explicit `--priority` flag always wins.
68
72
 
73
+ #### todo.txt format (`--format todotxt`)
74
+
75
+ With `--format todotxt`, lines are parsed as [todo.txt](https://github.com/todotxt/todo.txt):
76
+
77
+ - `x` at the start marks completion → status `closed` (an optional completion date is recognised and skipped).
78
+ - `(A)`…`(Z)` priority letter → pm numeric priority (`(A)`→`0`, …, `(E)`→`4`; letters past `E` clamp to `4`). An explicit `--priority` flag still wins.
79
+ - `+project` and `@context` tokens → tags (pm folds tags to lowercase).
80
+ - `due:YYYY-MM-DD` → the item deadline. Other `key:value` pairs are ignored on import.
81
+
69
82
  ### `pm todos export`
70
83
 
71
- Export pm items as a markdown TODO list.
84
+ Export pm items as a markdown TODO list, a todo.txt file, or a GitHub-flavored task list.
72
85
 
73
86
  ```bash
74
87
  pm todos export
75
88
  pm todos export --output TODO.md
76
89
  pm todos export --status open --output backlog.md
77
90
  pm todos export --type Task
91
+ pm todos export --format todotxt --output todo.txt
92
+ pm todos export --format tasklist --group-by sprint
93
+ pm todos export --group-by type
78
94
  ```
79
95
 
80
96
  **Flags**
@@ -82,9 +98,40 @@ pm todos export --type Task
82
98
  | Flag | Type | Description |
83
99
  |---|---|---|
84
100
  | `--output <file>` | string | Write to file instead of stdout |
101
+ | `--format <fmt>` | string | Output format: `markdown` (default), `todotxt`, or `tasklist` (GitHub task list) |
102
+ | `--group-by <field>` | string | Section markdown/tasklist output by `status` (default), `sprint`, or `type` |
85
103
  | `--status <status>` | string | Filter by status |
86
104
  | `--type <type>` | string | Filter by item type |
87
105
 
106
+ The default `markdown` export (no `--group-by`, or `--group-by status`) is unchanged: a
107
+ `# TODO` document with `## Open` / `## Done` sections. `--group-by sprint`/`type` emits a
108
+ `## <value>` section per group. The `todotxt` exporter maps priority→letter, tags→`+project`,
109
+ and deadline→`due:`. The `tasklist` exporter emits `- [ ]` / `- [x]` items grouped under
110
+ `## <heading>` sections, each carrying a `<!-- pm-id -->` comment for round-trips.
111
+
112
+ ### `pm todos validate <file>`
113
+
114
+ Parse a TODO file and report problems **without importing**. Exits non-zero when structural
115
+ errors (malformed `due:` dates, out-of-range priorities) are found, so it is safe to gate CI on.
116
+
117
+ ```bash
118
+ pm todos validate TODO.md
119
+ pm todos validate todo.txt --format todotxt
120
+ pm todos validate TODO.md --json
121
+ ```
122
+
123
+ **Flags**
124
+
125
+ | Flag | Type | Description |
126
+ |---|---|---|
127
+ | `--format <fmt>` | string | File format: `markdown` (default) or `todotxt` |
128
+ | `--json` | boolean | Return a JSON report (with the full `issues` array) on stdout |
129
+
130
+ Errors (e.g. an invalid `due:` date, a `(p9)` marker out of the `0–4` range) cause a non-zero
131
+ exit; warnings (empty task text, a checkbox-looking line that doesn't parse) do not. A
132
+ human-readable summary is always written to stderr; under `--json` the structured report is
133
+ returned on stdout for valid files.
134
+
88
135
  ---
89
136
 
90
137
  ## Native import/export pipeline
@@ -109,8 +156,10 @@ export` routes above and can also be driven programmatically:
109
156
  }
110
157
  ```
111
158
 
112
- The `todos` exporter accepts `output`, `status` and `type` options and emits the
113
- same grouped (`## Open` / `## Done`) markdown produced by `pm todos export`.
159
+ The `todos` exporter accepts `output`, `status`, `type`, `format` and `group-by`
160
+ options and emits the same output produced by `pm todos export` (default markdown,
161
+ or `todotxt` / `tasklist`). The `todos` importer additionally accepts `format`
162
+ (`markdown` | `todotxt`).
114
163
 
115
164
  ### Legacy importer: `todos-import`
116
165
 
package/dist/index.d.ts CHANGED
@@ -1,3 +1,121 @@
1
+ interface PmItem {
2
+ id: string;
3
+ title: string;
4
+ status: string;
5
+ type?: string;
6
+ priority?: number;
7
+ tags?: string[];
8
+ deadline?: string;
9
+ assignee?: string;
10
+ sprint?: string;
11
+ created_at?: string;
12
+ updated_at?: string;
13
+ }
14
+ /**
15
+ * A parsed todo.txt line. `raw` is the original line; the structured fields are
16
+ * the de-facto todo.txt grammar:
17
+ * - leading `x ` marks completion
18
+ * - `(A)`..`(Z)` is a priority letter
19
+ * - `+project` and `@context` are tags (collected into `projects`/`contexts`)
20
+ * - `key:value` pairs (notably `due:YYYY-MM-DD`) are extra metadata
21
+ * - everything else is the description text
22
+ */
23
+ interface TodoTxtItem {
24
+ done: boolean;
25
+ /** Priority letter A..Z (uppercase) or undefined. */
26
+ priorityLetter?: string;
27
+ /** Free-text description with projects/contexts/key:value tokens removed. */
28
+ text: string;
29
+ projects: string[];
30
+ contexts: string[];
31
+ /** `due:` value if present (raw, un-validated date string). */
32
+ due?: string;
33
+ /** All other `key:value` pairs preserved verbatim. */
34
+ kv: Record<string, string>;
35
+ /** Completion date (`x 2026-01-02 …`), preserved if present. */
36
+ completionDate?: string;
37
+ /** Creation date, preserved if present. */
38
+ creationDate?: string;
39
+ }
40
+ /**
41
+ * Map a todo.txt priority letter to a pm numeric priority.
42
+ * todo.txt: `(A)` is highest. pm: `0` is highest.
43
+ * `(A)`→0, `(B)`→1, … `(E)`→4. Letters beyond E (F..Z) clamp to 4 (lowest).
44
+ * Returns undefined for an absent/invalid letter.
45
+ */
46
+ export declare function priorityLetterToPm(letter: string | undefined): number | undefined;
47
+ /**
48
+ * Map a pm numeric priority to a todo.txt priority letter.
49
+ * `0`→`A`, `1`→`B`, … `4`→`E`. Out-of-range values clamp into A..E.
50
+ * Returns undefined when priority is undefined.
51
+ */
52
+ export declare function pmPriorityToLetter(priority: number | undefined): string | undefined;
53
+ /**
54
+ * Parse a single todo.txt line into a structured item. Returns null for blank
55
+ * lines (which carry no task).
56
+ */
57
+ export declare function parseTodoTxtLine(line: string): TodoTxtItem | null;
58
+ /**
59
+ * Parse a whole todo.txt document into structured items (blank lines skipped).
60
+ */
61
+ export declare function parseTodoTxt(content: string): TodoTxtItem[];
62
+ /**
63
+ * Serialize a single pm item to a todo.txt line. `+project`/`@context` are
64
+ * derived from tags (todo.txt has no separate notion), `due:` from deadline.
65
+ */
66
+ export declare function serializeTodoTxtLine(item: PmItem): string;
67
+ /**
68
+ * Serialize pm items to a todo.txt document (one line per item, trailing NL).
69
+ */
70
+ export declare function serializeTodoTxt(items: PmItem[]): string;
71
+ /** A markdown group: a heading and the items beneath it. */
72
+ interface ItemGroup {
73
+ heading: string;
74
+ items: PmItem[];
75
+ }
76
+ /**
77
+ * Group pm items for sectioned export. `status` (default) splits into Open
78
+ * (open/in_progress/blocked/draft) and Done (closed/canceled), matching the
79
+ * historical markdown layout. `sprint`/`type` group by that field value
80
+ * (items missing the field land in an "(unassigned)" group, sorted last).
81
+ */
82
+ export declare function groupItems(items: PmItem[], groupBy: string): ItemGroup[];
83
+ /**
84
+ * Render pm items as a GitHub-flavored task list grouped into `## <heading>`
85
+ * sections. Closed/canceled items become `- [x]`, everything else `- [ ]`.
86
+ * A trailing `<!-- id -->` comment preserves the pm id for round-trips.
87
+ */
88
+ export declare function renderTaskList(items: PmItem[], groupBy: string): string;
89
+ interface ValidationIssue {
90
+ line: number;
91
+ severity: "error" | "warning";
92
+ message: string;
93
+ text: string;
94
+ }
95
+ /**
96
+ * Validate a todo file (markdown or todo.txt) and return structured issues.
97
+ * - errors (structural): bad date in `due:`, priority letter out of A..Z
98
+ * - warnings: lines that look like tasks but don't parse, empty titles
99
+ * `format` selects the grammar; `markdown` validates checkbox lines, `todotxt`
100
+ * validates todo.txt lines.
101
+ */
102
+ export declare function validateTodoFile(content: string, format: "markdown" | "todotxt"): {
103
+ issues: ValidationIssue[];
104
+ taskCount: number;
105
+ };
106
+ /**
107
+ * Render the default-markdown TODO export. Kept byte-identical to the original
108
+ * (the `# TODO` header, export-timestamp comment, `## Open`/`## Done` sections,
109
+ * and the `[type]` annotation on open items) so existing behaviour is stable.
110
+ * This is the path used when no `--group-by` (or `--group-by status`) is set.
111
+ */
112
+ export declare function renderDefaultMarkdown(items: PmItem[], nowIso: string): string;
113
+ /**
114
+ * Render grouped markdown for `--group-by sprint|type` (or an explicit
115
+ * `--group-by status`). Each group is a `## <heading>` section of checkboxes
116
+ * carrying the pm id comment for round-trips.
117
+ */
118
+ export declare function renderGroupedMarkdown(items: PmItem[], groupBy: string, nowIso: string): string;
1
119
  declare const _default: {
2
120
  name: string;
3
121
  version: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;kBAmcgB,GAAG;;AAJnB,wBA2QG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -61,6 +61,50 @@ function readStringOption(options, ...keys) {
61
61
  }
62
62
  return undefined;
63
63
  }
64
+ /**
65
+ * Read and validate the import `--format` option (markdown | todotxt).
66
+ * Defaults to markdown (current behaviour). Throws a USAGE CommandError on an
67
+ * unrecognised value so typos fail loudly instead of silently importing nothing.
68
+ */
69
+ function readImportFormat(options) {
70
+ const raw = readStringOption(options, "format");
71
+ if (raw === undefined)
72
+ return "markdown";
73
+ const v = raw.toLowerCase();
74
+ if (v === "markdown" || v === "md")
75
+ return "markdown";
76
+ if (v === "todotxt" || v === "todo.txt")
77
+ return "todotxt";
78
+ throw new CommandError(`Unknown --format '${raw}' (expected markdown|todotxt)`, EXIT_CODE.USAGE);
79
+ }
80
+ /**
81
+ * Read and validate the export `--format` option (markdown | todotxt | tasklist).
82
+ */
83
+ function readExportFormat(options) {
84
+ const raw = readStringOption(options, "format");
85
+ if (raw === undefined)
86
+ return "markdown";
87
+ const v = raw.toLowerCase();
88
+ if (v === "markdown" || v === "md")
89
+ return "markdown";
90
+ if (v === "todotxt" || v === "todo.txt")
91
+ return "todotxt";
92
+ if (v === "tasklist" || v === "task-list" || v === "gfm")
93
+ return "tasklist";
94
+ throw new CommandError(`Unknown --format '${raw}' (expected markdown|todotxt|tasklist)`, EXIT_CODE.USAGE);
95
+ }
96
+ /**
97
+ * Read and validate the `--group-by` option (status | sprint | type).
98
+ */
99
+ function readGroupBy(options) {
100
+ const raw = readStringOption(options, "group-by", "groupBy");
101
+ if (raw === undefined)
102
+ return undefined;
103
+ const v = raw.toLowerCase();
104
+ if (v === "status" || v === "sprint" || v === "type")
105
+ return v;
106
+ throw new CommandError(`Unknown --group-by '${raw}' (expected status|sprint|type)`, EXIT_CODE.USAGE);
107
+ }
64
108
  /**
65
109
  * Strip priority markers from a TODO's text and return the inferred priority.
66
110
  *
@@ -149,6 +193,280 @@ function mapStatusToPm(checked, closedAs) {
149
193
  function mapPmStatusToChecked(status) {
150
194
  return status === "closed" || status === "canceled";
151
195
  }
196
+ const DATE_RE = /^\d{4}-\d{2}-\d{2}$/;
197
+ /**
198
+ * True when `s` is a real ISO calendar date `YYYY-MM-DD` (right shape AND a
199
+ * valid month/day, e.g. rejects `2026-13-99`). Used by validation; the looser
200
+ * `DATE_RE` is fine for serialization where pm already produced the date.
201
+ */
202
+ function isValidIsoDate(s) {
203
+ if (!DATE_RE.test(s))
204
+ return false;
205
+ const [y, m, d] = s.split("-").map((n) => parseInt(n, 10));
206
+ if (m < 1 || m > 12 || d < 1 || d > 31)
207
+ return false;
208
+ const dt = new Date(Date.UTC(y, m - 1, d));
209
+ return dt.getUTCFullYear() === y && dt.getUTCMonth() === m - 1 && dt.getUTCDate() === d;
210
+ }
211
+ /**
212
+ * Map a todo.txt priority letter to a pm numeric priority.
213
+ * todo.txt: `(A)` is highest. pm: `0` is highest.
214
+ * `(A)`→0, `(B)`→1, … `(E)`→4. Letters beyond E (F..Z) clamp to 4 (lowest).
215
+ * Returns undefined for an absent/invalid letter.
216
+ */
217
+ export function priorityLetterToPm(letter) {
218
+ if (!letter)
219
+ return undefined;
220
+ const code = letter.toUpperCase().charCodeAt(0);
221
+ if (code < 65 || code > 90)
222
+ return undefined; // not A..Z
223
+ return Math.min(4, code - 65);
224
+ }
225
+ /**
226
+ * Map a pm numeric priority to a todo.txt priority letter.
227
+ * `0`→`A`, `1`→`B`, … `4`→`E`. Out-of-range values clamp into A..E.
228
+ * Returns undefined when priority is undefined.
229
+ */
230
+ export function pmPriorityToLetter(priority) {
231
+ if (priority === undefined || priority === null || Number.isNaN(priority))
232
+ return undefined;
233
+ const clamped = Math.max(0, Math.min(4, Math.trunc(priority)));
234
+ return String.fromCharCode(65 + clamped);
235
+ }
236
+ /**
237
+ * Parse a single todo.txt line into a structured item. Returns null for blank
238
+ * lines (which carry no task).
239
+ */
240
+ export function parseTodoTxtLine(line) {
241
+ let rest = line.trim();
242
+ if (rest === "")
243
+ return null;
244
+ let done = false;
245
+ let completionDate;
246
+ // Completed task: leading `x ` then an optional completion date.
247
+ const doneMatch = /^x\s+(.*)$/.exec(rest);
248
+ if (doneMatch) {
249
+ done = true;
250
+ rest = doneMatch[1].trim();
251
+ const dateMatch = /^(\d{4}-\d{2}-\d{2})\s+(.*)$/.exec(rest);
252
+ if (dateMatch) {
253
+ completionDate = dateMatch[1];
254
+ rest = dateMatch[2].trim();
255
+ }
256
+ }
257
+ let priorityLetter;
258
+ const prioMatch = /^\(([A-Z])\)\s+(.*)$/.exec(rest);
259
+ if (prioMatch) {
260
+ priorityLetter = prioMatch[1];
261
+ rest = prioMatch[2].trim();
262
+ }
263
+ // Optional creation date (a leading bare date after the priority).
264
+ let creationDate;
265
+ const createMatch = /^(\d{4}-\d{2}-\d{2})\s+(.*)$/.exec(rest);
266
+ if (createMatch) {
267
+ creationDate = createMatch[1];
268
+ rest = createMatch[2].trim();
269
+ }
270
+ const projects = [];
271
+ const contexts = [];
272
+ const kv = {};
273
+ let due;
274
+ const words = rest.split(/\s+/);
275
+ const textWords = [];
276
+ for (const w of words) {
277
+ if (w.length > 1 && w[0] === "+") {
278
+ projects.push(w.slice(1));
279
+ }
280
+ else if (w.length > 1 && w[0] === "@") {
281
+ contexts.push(w.slice(1));
282
+ }
283
+ else if (/^[^\s:]+:[^\s:]+$/.test(w)) {
284
+ const idx = w.indexOf(":");
285
+ const key = w.slice(0, idx);
286
+ const val = w.slice(idx + 1);
287
+ if (key === "due")
288
+ due = val;
289
+ else
290
+ kv[key] = val;
291
+ }
292
+ else {
293
+ textWords.push(w);
294
+ }
295
+ }
296
+ return {
297
+ done,
298
+ priorityLetter,
299
+ text: textWords.join(" ").trim(),
300
+ projects,
301
+ contexts,
302
+ due,
303
+ kv,
304
+ completionDate,
305
+ creationDate,
306
+ };
307
+ }
308
+ /**
309
+ * Parse a whole todo.txt document into structured items (blank lines skipped).
310
+ */
311
+ export function parseTodoTxt(content) {
312
+ const out = [];
313
+ for (const line of content.split("\n")) {
314
+ const item = parseTodoTxtLine(line);
315
+ if (item)
316
+ out.push(item);
317
+ }
318
+ return out;
319
+ }
320
+ /**
321
+ * Serialize a single pm item to a todo.txt line. `+project`/`@context` are
322
+ * derived from tags (todo.txt has no separate notion), `due:` from deadline.
323
+ */
324
+ export function serializeTodoTxtLine(item) {
325
+ const parts = [];
326
+ const done = mapPmStatusToChecked(item.status);
327
+ if (done)
328
+ parts.push("x");
329
+ const letter = pmPriorityToLetter(item.priority);
330
+ if (letter && !done)
331
+ parts.push(`(${letter})`);
332
+ parts.push(item.title);
333
+ for (const tag of item.tags ?? []) {
334
+ parts.push(`+${tag}`);
335
+ }
336
+ if (item.deadline) {
337
+ const date = item.deadline.slice(0, 10);
338
+ if (DATE_RE.test(date))
339
+ parts.push(`due:${date}`);
340
+ }
341
+ return parts.join(" ");
342
+ }
343
+ /**
344
+ * Serialize pm items to a todo.txt document (one line per item, trailing NL).
345
+ */
346
+ export function serializeTodoTxt(items) {
347
+ if (items.length === 0)
348
+ return "";
349
+ return items.map(serializeTodoTxtLine).join("\n") + "\n";
350
+ }
351
+ /**
352
+ * Group pm items for sectioned export. `status` (default) splits into Open
353
+ * (open/in_progress/blocked/draft) and Done (closed/canceled), matching the
354
+ * historical markdown layout. `sprint`/`type` group by that field value
355
+ * (items missing the field land in an "(unassigned)" group, sorted last).
356
+ */
357
+ export function groupItems(items, groupBy) {
358
+ if (groupBy === "status") {
359
+ const open = items.filter((i) => i.status === "open" || i.status === "in_progress" || i.status === "blocked" || i.status === "draft");
360
+ const done = items.filter((i) => i.status === "closed" || i.status === "canceled");
361
+ const groups = [];
362
+ if (open.length)
363
+ groups.push({ heading: "Open", items: open });
364
+ if (done.length)
365
+ groups.push({ heading: "Done", items: done });
366
+ return groups;
367
+ }
368
+ const key = (i) => {
369
+ const v = i[groupBy];
370
+ return v === undefined || v === null || v === "" ? "(unassigned)" : String(v);
371
+ };
372
+ const buckets = new Map();
373
+ for (const item of items) {
374
+ const k = key(item);
375
+ if (!buckets.has(k))
376
+ buckets.set(k, []);
377
+ buckets.get(k).push(item);
378
+ }
379
+ const headings = [...buckets.keys()].sort((a, b) => {
380
+ if (a === "(unassigned)")
381
+ return 1;
382
+ if (b === "(unassigned)")
383
+ return -1;
384
+ return a.localeCompare(b);
385
+ });
386
+ return headings.map((h) => ({ heading: h, items: buckets.get(h) }));
387
+ }
388
+ /**
389
+ * Render pm items as a GitHub-flavored task list grouped into `## <heading>`
390
+ * sections. Closed/canceled items become `- [x]`, everything else `- [ ]`.
391
+ * A trailing `<!-- id -->` comment preserves the pm id for round-trips.
392
+ */
393
+ export function renderTaskList(items, groupBy) {
394
+ const groups = groupItems(items, groupBy);
395
+ const lines = [];
396
+ for (const group of groups) {
397
+ lines.push(`## ${group.heading}`, "");
398
+ for (const item of group.items) {
399
+ const check = mapPmStatusToChecked(item.status) ? "x" : " ";
400
+ lines.push(`- [${check}] ${item.title} <!-- ${item.id} -->`);
401
+ }
402
+ lines.push("");
403
+ }
404
+ return lines.join("\n").trimEnd() + "\n";
405
+ }
406
+ /**
407
+ * Validate a todo file (markdown or todo.txt) and return structured issues.
408
+ * - errors (structural): bad date in `due:`, priority letter out of A..Z
409
+ * - warnings: lines that look like tasks but don't parse, empty titles
410
+ * `format` selects the grammar; `markdown` validates checkbox lines, `todotxt`
411
+ * validates todo.txt lines.
412
+ */
413
+ export function validateTodoFile(content, format) {
414
+ const issues = [];
415
+ let taskCount = 0;
416
+ const lines = content.split("\n");
417
+ if (format === "todotxt") {
418
+ for (let i = 0; i < lines.length; i++) {
419
+ const raw = lines[i];
420
+ if (raw.trim() === "")
421
+ continue;
422
+ const item = parseTodoTxtLine(raw);
423
+ if (!item)
424
+ continue;
425
+ taskCount++;
426
+ if (item.due !== undefined && !isValidIsoDate(item.due)) {
427
+ issues.push({ line: i + 1, severity: "error", message: `Invalid due date '${item.due}' (expected YYYY-MM-DD)`, text: raw.trim() });
428
+ }
429
+ if (item.priorityLetter !== undefined && !/^[A-Z]$/.test(item.priorityLetter)) {
430
+ issues.push({ line: i + 1, severity: "error", message: `Invalid priority '${item.priorityLetter}' (expected A-Z)`, text: raw.trim() });
431
+ }
432
+ if (item.text === "") {
433
+ issues.push({ line: i + 1, severity: "warning", message: "Task has no description text", text: raw.trim() });
434
+ }
435
+ }
436
+ return { issues, taskCount };
437
+ }
438
+ // markdown
439
+ let sawAnyTask = false;
440
+ for (let i = 0; i < lines.length; i++) {
441
+ const raw = lines[i];
442
+ const match = TODO_RE.exec(raw);
443
+ if (match) {
444
+ sawAnyTask = true;
445
+ taskCount++;
446
+ const { text } = extractPriority(match[3].trim());
447
+ if (text === "") {
448
+ issues.push({ line: i + 1, severity: "warning", message: "Checkbox has no text", text: raw.trim() });
449
+ }
450
+ // The parser only honours `(p0)`..`(p4)`; a `(pN)` with N>4 is therefore
451
+ // silently treated as literal text. Surface it as an error so the typo
452
+ // isn't lost on import.
453
+ const badP = /\(p(\d+)\)/i.exec(match[3]);
454
+ if (badP && parseInt(badP[1], 10) > 4) {
455
+ issues.push({ line: i + 1, severity: "error", message: `Priority marker (p${badP[1]}) out of range (0-4)`, text: raw.trim() });
456
+ }
457
+ continue;
458
+ }
459
+ // A line that looks like a checkbox but has a malformed marker, e.g. `- [y]`
460
+ // or `- []`, is flagged so typos surface before import.
461
+ if (/^\s*[-*+]\s*\[[^ xX]?\]?/.test(raw) && !match) {
462
+ issues.push({ line: i + 1, severity: "warning", message: "Line resembles a checkbox but did not parse (check the `[ ]`/`[x]` marker)", text: raw.trim() });
463
+ }
464
+ }
465
+ if (!sawAnyTask && issues.length === 0) {
466
+ issues.push({ line: 0, severity: "warning", message: "No checkbox tasks found in file", text: "" });
467
+ }
468
+ return { issues, taskCount };
469
+ }
152
470
  // ---------------------------------------------------------------------------
153
471
  // File discovery (glob)
154
472
  // ---------------------------------------------------------------------------
@@ -225,6 +543,43 @@ function resolveGlob(pattern, cwd) {
225
543
  walk(cwd, 0);
226
544
  return out.sort();
227
545
  }
546
+ /**
547
+ * Read+parse one file into normalized todos for either supported format. For
548
+ * todo.txt, `+project`/`@context` become tags and `due:` becomes the deadline.
549
+ */
550
+ function parseFileToNormalized(md, file, format) {
551
+ if (format === "todotxt") {
552
+ const lines = md.split("\n");
553
+ const out = [];
554
+ for (let i = 0; i < lines.length; i++) {
555
+ const item = parseTodoTxtLine(lines[i]);
556
+ if (!item)
557
+ continue;
558
+ const tags = [...item.projects, ...item.contexts];
559
+ out.push({
560
+ checked: item.done,
561
+ text: item.text,
562
+ priority: priorityLetterToPm(item.priorityLetter),
563
+ tags,
564
+ deadline: item.due,
565
+ indent: 0,
566
+ lineNumber: i + 1,
567
+ file,
568
+ });
569
+ }
570
+ return out;
571
+ }
572
+ return parseMarkdownTodos(md, file).map((t) => ({
573
+ checked: t.checked,
574
+ text: t.text,
575
+ priority: t.priority,
576
+ tags: [],
577
+ section: t.section,
578
+ indent: t.indent,
579
+ lineNumber: t.lineNumber,
580
+ file: t.file,
581
+ }));
582
+ }
228
583
  /**
229
584
  * Read, parse and (unless dry-run) create pm items for every TODO found across
230
585
  * the given files. Single code path shared by the command and the importer.
@@ -243,11 +598,18 @@ function runTodoImport(opts) {
243
598
  const exitCode = /ENOENT|no such file/i.test(msg) ? EXIT_CODE.NOT_FOUND : EXIT_CODE.GENERIC_FAILURE;
244
599
  throw new CommandError(`Failed to read file ${file}: ${msg}`, exitCode);
245
600
  }
246
- let todos = parseMarkdownTodos(md, file);
247
- if (opts.section)
248
- todos = filterBySection(todos, opts.section);
601
+ let todos = parseFileToNormalized(md, file, opts.format);
602
+ if (opts.section && opts.format === "markdown") {
603
+ const want = opts.section.trim().toLowerCase();
604
+ todos = todos.filter((t) => (t.section ?? "").toLowerCase() === want);
605
+ }
249
606
  for (const todo of todos) {
250
607
  const tags = [...opts.extraTags];
608
+ // Per-item tags (todo.txt +project/@context) carry through.
609
+ for (const t of todo.tags) {
610
+ if (t && !tags.includes(t))
611
+ tags.push(t);
612
+ }
251
613
  if (opts.sectionTags && todo.section) {
252
614
  const tag = sectionToTag(todo.section);
253
615
  if (tag && !tags.includes(tag))
@@ -267,6 +629,7 @@ function runTodoImport(opts) {
267
629
  status,
268
630
  priority,
269
631
  tags,
632
+ deadline: todo.deadline,
270
633
  section: todo.section,
271
634
  indent: todo.indent,
272
635
  file: todo.file,
@@ -274,7 +637,8 @@ function runTodoImport(opts) {
274
637
  });
275
638
  console.error(` [dry-run] ${todo.checked ? "[x]" : "[ ]"} ${" ".repeat(Math.floor(todo.indent / 2))}${todo.text}` +
276
639
  (tags.length ? ` (tags: ${tags.join(",")})` : "") +
277
- (priority !== undefined ? ` (p${priority})` : ""));
640
+ (priority !== undefined ? ` (p${priority})` : "") +
641
+ (todo.deadline ? ` (due: ${todo.deadline})` : ""));
278
642
  imported++;
279
643
  continue;
280
644
  }
@@ -291,6 +655,8 @@ function runTodoImport(opts) {
291
655
  spawnArgs.push("--priority", priority);
292
656
  if (tags.length > 0)
293
657
  spawnArgs.push("--tags", tags.join(","));
658
+ if (todo.deadline)
659
+ spawnArgs.push("--deadline", todo.deadline);
294
660
  const result = spawnSync("pm", spawnArgs, { encoding: "utf-8" });
295
661
  if (result.status !== 0) {
296
662
  throw new Error(result.stderr || "pm create failed");
@@ -306,7 +672,8 @@ function runTodoImport(opts) {
306
672
  }
307
673
  return { imported, skipped, previews: opts.dryRun ? previews : undefined };
308
674
  }
309
- function buildTodoMarkdown(opts) {
675
+ /** Fetch + filter pm items via `pm list-all --json`. */
676
+ function fetchPmItems(opts) {
310
677
  const result = spawnSync("pm", ["--path", opts.pmRoot, "list-all", "--json"], { encoding: "utf-8" });
311
678
  if (result.status !== 0) {
312
679
  throw new CommandError(result.stderr || "pm list-all failed");
@@ -316,13 +683,19 @@ function buildTodoMarkdown(opts) {
316
683
  items = items.filter((i) => i.status === opts.statusFilter);
317
684
  if (opts.typeFilter)
318
685
  items = items.filter((i) => i.type === opts.typeFilter);
319
- if (items.length === 0) {
320
- return { markdown: "", count: 0 };
321
- }
686
+ return items;
687
+ }
688
+ /**
689
+ * Render the default-markdown TODO export. Kept byte-identical to the original
690
+ * (the `# TODO` header, export-timestamp comment, `## Open`/`## Done` sections,
691
+ * and the `[type]` annotation on open items) so existing behaviour is stable.
692
+ * This is the path used when no `--group-by` (or `--group-by status`) is set.
693
+ */
694
+ export function renderDefaultMarkdown(items, nowIso) {
322
695
  const lines = [
323
696
  "# TODO",
324
697
  "",
325
- `<!-- Exported from pm-cli on ${new Date().toISOString()} -->`,
698
+ `<!-- Exported from pm-cli on ${nowIso} -->`,
326
699
  "",
327
700
  ];
328
701
  const openItems = items.filter((i) => i.status === "open" || i.status === "in_progress" || i.status === "blocked" || i.status === "draft");
@@ -343,14 +716,58 @@ function buildTodoMarkdown(opts) {
343
716
  }
344
717
  lines.push("");
345
718
  }
346
- return { markdown: lines.join("\n"), count: items.length };
719
+ return lines.join("\n");
720
+ }
721
+ /**
722
+ * Render grouped markdown for `--group-by sprint|type` (or an explicit
723
+ * `--group-by status`). Each group is a `## <heading>` section of checkboxes
724
+ * carrying the pm id comment for round-trips.
725
+ */
726
+ export function renderGroupedMarkdown(items, groupBy, nowIso) {
727
+ const lines = [
728
+ "# TODO",
729
+ "",
730
+ `<!-- Exported from pm-cli on ${nowIso} -->`,
731
+ "",
732
+ ];
733
+ for (const group of groupItems(items, groupBy)) {
734
+ lines.push(`## ${group.heading}`, "");
735
+ for (const item of group.items) {
736
+ const check = mapPmStatusToChecked(item.status) ? "x" : " ";
737
+ lines.push(`- [${check}] ${item.title} <!-- ${item.id} -->`);
738
+ }
739
+ lines.push("");
740
+ }
741
+ return lines.join("\n");
742
+ }
743
+ /**
744
+ * Build export output for any supported format. Returns `count: 0` (empty
745
+ * string) when there are no items, matching the original contract.
746
+ */
747
+ function buildTodoMarkdown(opts) {
748
+ const items = fetchPmItems(opts);
749
+ if (items.length === 0)
750
+ return { markdown: "", count: 0 };
751
+ const format = opts.format ?? "markdown";
752
+ const groupBy = opts.groupBy;
753
+ if (format === "todotxt") {
754
+ return { markdown: serializeTodoTxt(items), count: items.length };
755
+ }
756
+ if (format === "tasklist") {
757
+ return { markdown: renderTaskList(items, groupBy ?? "status"), count: items.length };
758
+ }
759
+ // markdown
760
+ if (groupBy && groupBy !== "status") {
761
+ return { markdown: renderGroupedMarkdown(items, groupBy, new Date().toISOString()), count: items.length };
762
+ }
763
+ return { markdown: renderDefaultMarkdown(items, new Date().toISOString()), count: items.length };
347
764
  }
348
765
  // ---------------------------------------------------------------------------
349
766
  // Extension
350
767
  // ---------------------------------------------------------------------------
351
768
  export default defineExtension({
352
769
  name: "pm-todos",
353
- version: "2026.6.2",
770
+ version: "2026.6.3",
354
771
  activate(api) {
355
772
  // -----------------------------------------------------------------------
356
773
  // Command: pm todos import <file>
@@ -369,9 +786,11 @@ export default defineExtension({
369
786
  "pm todos import --glob 'docs/**/*.md'",
370
787
  "pm todos import TODO.md --section Backlog",
371
788
  "pm todos import TODO.md --closed-as canceled",
789
+ "pm todos import todo.txt --format todotxt",
372
790
  ],
373
791
  flags: [
374
792
  { long: "--dry-run", description: "Preview without writing" },
793
+ { long: "--format", value_name: "fmt", description: "Source format: markdown (default) | todotxt" },
375
794
  { long: "--type", value_name: "type", description: "Item type for imported items (default: Task)" },
376
795
  { long: "--priority", value_name: "n", description: "Priority for imported items (0-4); overrides inferred markers" },
377
796
  { long: "--tags", value_name: "tags", description: "Comma-separated tags to apply to all items" },
@@ -382,6 +801,7 @@ export default defineExtension({
382
801
  ],
383
802
  async run(ctx) {
384
803
  const dryRun = readBoolOption(ctx.options, "dry-run", "dryRun");
804
+ const format = readImportFormat(ctx.options);
385
805
  const itemType = ctx.options["type"] || "Task";
386
806
  const priority = ctx.options["priority"];
387
807
  const tagsOpt = ctx.options["tags"];
@@ -416,6 +836,7 @@ export default defineExtension({
416
836
  sectionTags,
417
837
  dryRun,
418
838
  pmRoot: ctx.pm_root,
839
+ format,
419
840
  });
420
841
  if (imported === 0 && skipped === 0) {
421
842
  console.error("No TODO items found.");
@@ -434,7 +855,7 @@ export default defineExtension({
434
855
  // -----------------------------------------------------------------------
435
856
  api.registerCommand({
436
857
  name: "todos export",
437
- description: "Export pm items as a markdown TODO list. " +
858
+ description: "Export pm items as a markdown TODO list, todo.txt, or GitHub task list. " +
438
859
  "Open items become - [ ], closed/canceled items become - [x].",
439
860
  intent: "export pm items to markdown TODO format",
440
861
  examples: [
@@ -442,19 +863,28 @@ export default defineExtension({
442
863
  "pm todos export --output TODO.md",
443
864
  "pm todos export --status open --output backlog.md",
444
865
  "pm todos export --type Task",
866
+ "pm todos export --format todotxt --output todo.txt",
867
+ "pm todos export --format tasklist --group-by sprint",
868
+ "pm todos export --group-by type",
445
869
  ],
446
870
  flags: [
447
- { long: "--output", value_name: "file", description: "Write markdown to file (default: stdout)" },
871
+ { long: "--output", value_name: "file", description: "Write output to file (default: stdout)" },
872
+ { long: "--format", value_name: "fmt", description: "Output format: markdown (default) | todotxt | tasklist" },
873
+ { long: "--group-by", value_name: "field", description: "Section markdown/tasklist by status (default) | sprint | type" },
448
874
  { long: "--status", value_name: "status", description: "Filter by status" },
449
875
  { long: "--type", value_name: "type", description: "Filter by item type" },
450
876
  ],
451
877
  async run(ctx) {
452
878
  const outputPath = ctx.options["output"];
879
+ const format = readExportFormat(ctx.options);
880
+ const groupBy = readGroupBy(ctx.options);
453
881
  console.error("Fetching pm items…");
454
882
  const { markdown, count } = buildTodoMarkdown({
455
883
  statusFilter: ctx.options["status"],
456
884
  typeFilter: ctx.options["type"],
457
885
  pmRoot: ctx.pm_root,
886
+ format,
887
+ groupBy,
458
888
  });
459
889
  if (count === 0) {
460
890
  console.error("No items found.");
@@ -471,6 +901,62 @@ export default defineExtension({
471
901
  },
472
902
  });
473
903
  // -----------------------------------------------------------------------
904
+ // Command: pm todos validate <file>
905
+ // -----------------------------------------------------------------------
906
+ api.registerCommand({
907
+ name: "todos validate",
908
+ description: "Parse a TODO file and report problems (unparseable checkbox lines, " +
909
+ "out-of-range priorities, malformed due dates) WITHOUT importing. " +
910
+ "Exits non-zero when structural errors are found.",
911
+ intent: "validate a markdown or todo.txt TODO file without importing",
912
+ examples: [
913
+ "pm todos validate TODO.md",
914
+ "pm todos validate todo.txt --format todotxt",
915
+ "pm todos validate TODO.md --json",
916
+ ],
917
+ flags: [
918
+ { long: "--format", value_name: "fmt", description: "File format: markdown (default) | todotxt" },
919
+ { long: "--json", description: "Emit a JSON report" },
920
+ ],
921
+ async run(ctx) {
922
+ const format = readImportFormat(ctx.options);
923
+ const asJson = readBoolOption(ctx.options, "json");
924
+ const filePath = ctx.args[0];
925
+ if (!filePath) {
926
+ throw new CommandError("Usage: pm todos validate <file> [--format markdown|todotxt] [--json]", EXIT_CODE.USAGE);
927
+ }
928
+ let content;
929
+ try {
930
+ content = readFileSync(resolve(filePath), "utf-8");
931
+ }
932
+ catch (err) {
933
+ const msg = err instanceof Error ? err.message : String(err);
934
+ const exitCode = /ENOENT|no such file/i.test(msg) ? EXIT_CODE.NOT_FOUND : EXIT_CODE.GENERIC_FAILURE;
935
+ throw new CommandError(`Failed to read file ${filePath}: ${msg}`, exitCode);
936
+ }
937
+ const { issues, taskCount } = validateTodoFile(content, format);
938
+ const errors = issues.filter((i) => i.severity === "error");
939
+ const warnings = issues.filter((i) => i.severity === "warning");
940
+ // Always echo a human-readable summary to stderr (stderr survives a
941
+ // throw, unlike stdout, so this stays visible even when we exit non-zero
942
+ // on structural errors). Under --json the full report — including the
943
+ // structured `issues` array — is returned and rendered by the runtime as
944
+ // JSON on stdout; for the error case the non-zero exit + this stderr
945
+ // summary signal invalidity (the runtime discards a throwing handler's
946
+ // stdout, so we deliberately do not duplicate JSON there).
947
+ for (const issue of issues) {
948
+ const where = issue.line > 0 ? `line ${issue.line}` : "file";
949
+ console.error(` [${issue.severity}] ${where}: ${issue.message}` + (issue.text ? ` >> ${issue.text}` : ""));
950
+ }
951
+ console.error(`Validated ${taskCount} task(s): ${errors.length} error(s), ${warnings.length} warning(s).`);
952
+ if (errors.length > 0) {
953
+ throw new CommandError(`${errors.length} structural error(s) found in ${filePath}`, EXIT_CODE.GENERIC_FAILURE);
954
+ }
955
+ const report = { file: resolve(filePath), format, taskCount, errors: errors.length, warnings: warnings.length };
956
+ return asJson ? { ...report, issues } : report;
957
+ },
958
+ });
959
+ // -----------------------------------------------------------------------
474
960
  // Importer: todos (native `pm import todos` pipeline)
475
961
  //
476
962
  // Driven by options (config-driven import). Accepts the same knobs as the
@@ -512,6 +998,7 @@ export default defineExtension({
512
998
  const extraTags = (readStringOption(ctx.options, "tags") ?? "")
513
999
  .split(",").map((t) => t.trim()).filter(Boolean);
514
1000
  const sectionTags = ctx.options["sectionTags"] !== false && ctx.options["section-tags"] !== false;
1001
+ const format = readImportFormat(ctx.options);
515
1002
  const { imported, skipped, previews } = runTodoImport({
516
1003
  files,
517
1004
  itemType,
@@ -522,6 +1009,7 @@ export default defineExtension({
522
1009
  sectionTags,
523
1010
  dryRun,
524
1011
  pmRoot: ctx.pm_root,
1012
+ format,
525
1013
  });
526
1014
  if (imported === 0 && skipped === 0) {
527
1015
  console.error("No TODO items found.");
@@ -546,6 +1034,8 @@ export default defineExtension({
546
1034
  statusFilter: readStringOption(ctx.options, "status"),
547
1035
  typeFilter: readStringOption(ctx.options, "type"),
548
1036
  pmRoot: ctx.pm_root,
1037
+ format: readExportFormat(ctx.options),
1038
+ groupBy: readGroupBy(ctx.options),
549
1039
  });
550
1040
  if (count === 0) {
551
1041
  console.error("todos: no items found.");
@@ -580,6 +1070,7 @@ export default defineExtension({
580
1070
  sectionTags: false,
581
1071
  dryRun: false,
582
1072
  pmRoot: ctx.pm_root,
1073
+ format: readImportFormat(ctx.options),
583
1074
  });
584
1075
  console.error(`todos-import: done — imported ${imported}, skipped ${skipped}.`);
585
1076
  });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
package/manifest.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pm-todos",
3
- "version": "2026.6.2",
3
+ "version": "2026.6.3",
4
4
  "description": "Markdown TODO round-trip. Import markdown checkboxes as pm items and export pm items back to markdown TODO lists.",
5
5
  "author": "@unbraind",
6
6
  "entry": "./dist/index.js",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pm-todos",
3
- "version": "2026.6.2",
3
+ "version": "2026.6.3",
4
4
  "description": "Markdown TODO round-trip extension for pm-cli",
5
5
  "repository": {
6
6
  "type": "git",
@@ -34,12 +34,12 @@
34
34
  "release:check": "npm run typecheck && npm run build && npm run audit:prod && npm run pack:dry-run && npm run changelog:check"
35
35
  },
36
36
  "peerDependencies": {
37
- "@unbrained/pm-cli": ">=2026.5.29"
37
+ "@unbrained/pm-cli": ">=2026.5.31"
38
38
  },
39
39
  "devDependencies": {
40
40
  "@types/node": "^25.9.1",
41
41
  "@unbrained/pm-cli": "^2026.5.31",
42
- "pm-changelog": "^2026.5.29-2",
42
+ "pm-changelog": "^2026.6.2",
43
43
  "typescript": "^6.0.3"
44
44
  },
45
45
  "keywords": [