project-roadmap-tracking 0.2.1 → 0.2.6
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 +17 -12
- package/dist/commands/show.d.ts +1 -0
- package/dist/commands/show.js +11 -0
- package/dist/repositories/config.repository.js +2 -2
- package/dist/services/display.service.d.ts +10 -1
- package/dist/services/display.service.js +28 -0
- package/oclif.manifest.json +8 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -49,6 +49,9 @@ prt list -p high
|
|
|
49
49
|
# Show task details
|
|
50
50
|
prt show F-001
|
|
51
51
|
|
|
52
|
+
# Show task details with dependencies
|
|
53
|
+
prt show F-001 -d
|
|
54
|
+
|
|
52
55
|
# Update task status
|
|
53
56
|
prt update F-001 --status=in-progress
|
|
54
57
|
|
|
@@ -137,6 +140,7 @@ IDs are auto-generated sequentially per task type.
|
|
|
137
140
|
* [Add a new feature](#add-a-new-feature)
|
|
138
141
|
* [List all high-priority tasks](#list-all-high-priority-tasks)
|
|
139
142
|
* [Show task details](#show-task-details)
|
|
143
|
+
* [Show task details with dependencies](#show-task-details-with-dependencies)
|
|
140
144
|
* [Update task status](#update-task-status)
|
|
141
145
|
* [Complete a task](#complete-a-task)
|
|
142
146
|
* [Validate roadmap integrity](#validate-roadmap-integrity)
|
|
@@ -166,7 +170,7 @@ $ npm install -g project-roadmap-tracking
|
|
|
166
170
|
$ prt COMMAND
|
|
167
171
|
running command...
|
|
168
172
|
$ prt (--version)
|
|
169
|
-
project-roadmap-tracking/0.2.
|
|
173
|
+
project-roadmap-tracking/0.2.6 linux-x64 node-v25.4.0
|
|
170
174
|
$ prt --help [COMMAND]
|
|
171
175
|
USAGE
|
|
172
176
|
$ prt COMMAND
|
|
@@ -228,7 +232,7 @@ EXAMPLES
|
|
|
228
232
|
$ prt add
|
|
229
233
|
```
|
|
230
234
|
|
|
231
|
-
_See code: [src/commands/add.ts](https://github.com/ZacharyEggert/project-roadmap-tracking/blob/v0.2.
|
|
235
|
+
_See code: [src/commands/add.ts](https://github.com/ZacharyEggert/project-roadmap-tracking/blob/v0.2.6/src/commands/add.ts)_
|
|
232
236
|
|
|
233
237
|
## `prt complete TASKID`
|
|
234
238
|
|
|
@@ -253,7 +257,7 @@ EXAMPLES
|
|
|
253
257
|
$ prt complete F-001 --tests
|
|
254
258
|
```
|
|
255
259
|
|
|
256
|
-
_See code: [src/commands/complete.ts](https://github.com/ZacharyEggert/project-roadmap-tracking/blob/v0.2.
|
|
260
|
+
_See code: [src/commands/complete.ts](https://github.com/ZacharyEggert/project-roadmap-tracking/blob/v0.2.6/src/commands/complete.ts)_
|
|
257
261
|
|
|
258
262
|
## `prt help [COMMAND]`
|
|
259
263
|
|
|
@@ -300,7 +304,7 @@ EXAMPLES
|
|
|
300
304
|
$ prt init [path/to/directory]
|
|
301
305
|
```
|
|
302
306
|
|
|
303
|
-
_See code: [src/commands/init.ts](https://github.com/ZacharyEggert/project-roadmap-tracking/blob/v0.2.
|
|
307
|
+
_See code: [src/commands/init.ts](https://github.com/ZacharyEggert/project-roadmap-tracking/blob/v0.2.6/src/commands/init.ts)_
|
|
304
308
|
|
|
305
309
|
## `prt list`
|
|
306
310
|
|
|
@@ -329,7 +333,7 @@ EXAMPLES
|
|
|
329
333
|
$ prt list -p=h --incomplete --sort=createdAt
|
|
330
334
|
```
|
|
331
335
|
|
|
332
|
-
_See code: [src/commands/list.ts](https://github.com/ZacharyEggert/project-roadmap-tracking/blob/v0.2.
|
|
336
|
+
_See code: [src/commands/list.ts](https://github.com/ZacharyEggert/project-roadmap-tracking/blob/v0.2.6/src/commands/list.ts)_
|
|
333
337
|
|
|
334
338
|
## `prt pass-test TASKID`
|
|
335
339
|
|
|
@@ -353,7 +357,7 @@ EXAMPLES
|
|
|
353
357
|
$ prt pass-test F-001
|
|
354
358
|
```
|
|
355
359
|
|
|
356
|
-
_See code: [src/commands/pass-test.ts](https://github.com/ZacharyEggert/project-roadmap-tracking/blob/v0.2.
|
|
360
|
+
_See code: [src/commands/pass-test.ts](https://github.com/ZacharyEggert/project-roadmap-tracking/blob/v0.2.6/src/commands/pass-test.ts)_
|
|
357
361
|
|
|
358
362
|
## `prt plugins`
|
|
359
363
|
|
|
@@ -651,14 +655,15 @@ show details of a specific task in the project roadmap
|
|
|
651
655
|
|
|
652
656
|
```
|
|
653
657
|
USAGE
|
|
654
|
-
$ prt show TASK [--no-repo] [-v]
|
|
658
|
+
$ prt show TASK [--no-repo] [-d] [-v]
|
|
655
659
|
|
|
656
660
|
ARGUMENTS
|
|
657
661
|
TASK task ID to show
|
|
658
662
|
|
|
659
663
|
FLAGS
|
|
660
|
-
-
|
|
661
|
-
|
|
664
|
+
-d, --show-dependencies show task dependencies
|
|
665
|
+
-v, --verbose show detailed error information including stack traces
|
|
666
|
+
--no-repo use legacy direct file I/O instead of repository pattern
|
|
662
667
|
|
|
663
668
|
DESCRIPTION
|
|
664
669
|
show details of a specific task in the project roadmap
|
|
@@ -667,7 +672,7 @@ EXAMPLES
|
|
|
667
672
|
$ prt show F-001
|
|
668
673
|
```
|
|
669
674
|
|
|
670
|
-
_See code: [src/commands/show.ts](https://github.com/ZacharyEggert/project-roadmap-tracking/blob/v0.2.
|
|
675
|
+
_See code: [src/commands/show.ts](https://github.com/ZacharyEggert/project-roadmap-tracking/blob/v0.2.6/src/commands/show.ts)_
|
|
671
676
|
|
|
672
677
|
## `prt update TASKID`
|
|
673
678
|
|
|
@@ -703,7 +708,7 @@ EXAMPLES
|
|
|
703
708
|
$ prt update F-002 --deps="F-001" --clear-notes
|
|
704
709
|
```
|
|
705
710
|
|
|
706
|
-
_See code: [src/commands/update.ts](https://github.com/ZacharyEggert/project-roadmap-tracking/blob/v0.2.
|
|
711
|
+
_See code: [src/commands/update.ts](https://github.com/ZacharyEggert/project-roadmap-tracking/blob/v0.2.6/src/commands/update.ts)_
|
|
707
712
|
|
|
708
713
|
## `prt validate`
|
|
709
714
|
|
|
@@ -724,7 +729,7 @@ EXAMPLES
|
|
|
724
729
|
$ prt validate
|
|
725
730
|
```
|
|
726
731
|
|
|
727
|
-
_See code: [src/commands/validate.ts](https://github.com/ZacharyEggert/project-roadmap-tracking/blob/v0.2.
|
|
732
|
+
_See code: [src/commands/validate.ts](https://github.com/ZacharyEggert/project-roadmap-tracking/blob/v0.2.6/src/commands/validate.ts)_
|
|
728
733
|
<!-- commandsstop -->
|
|
729
734
|
|
|
730
735
|
## Development
|
package/dist/commands/show.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export default class Show extends Command {
|
|
|
7
7
|
static examples: string[];
|
|
8
8
|
static flags: {
|
|
9
9
|
'no-repo': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
10
|
+
'show-dependencies': import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
10
11
|
verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
11
12
|
};
|
|
12
13
|
run(): Promise<void>;
|
package/dist/commands/show.js
CHANGED
|
@@ -16,6 +16,11 @@ export default class Show extends Command {
|
|
|
16
16
|
default: false,
|
|
17
17
|
description: 'use legacy direct file I/O instead of repository pattern',
|
|
18
18
|
}),
|
|
19
|
+
'show-dependencies': Flags.boolean({
|
|
20
|
+
char: 'd',
|
|
21
|
+
default: false,
|
|
22
|
+
description: 'show task dependencies',
|
|
23
|
+
}),
|
|
19
24
|
// flag with no value (-f, --force)
|
|
20
25
|
// force: Flags.boolean({char: 'f'}),
|
|
21
26
|
// flag with a value (-n, --name=VALUE)
|
|
@@ -43,6 +48,12 @@ export default class Show extends Command {
|
|
|
43
48
|
for (const line of lines) {
|
|
44
49
|
console.log(line);
|
|
45
50
|
}
|
|
51
|
+
if (flags['show-dependencies'] && task) {
|
|
52
|
+
const dependencyLines = displayService.formatTaskDependencies(task, roadmap);
|
|
53
|
+
for (const line of dependencyLines) {
|
|
54
|
+
console.log(line);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
46
57
|
}
|
|
47
58
|
catch (error) {
|
|
48
59
|
const exitCode = errorHandlerService.handleError(error);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import Ajv from 'ajv';
|
|
1
|
+
import { Ajv } from 'ajv';
|
|
2
2
|
import { readFile, stat } from 'node:fs/promises';
|
|
3
3
|
import { homedir } from 'node:os';
|
|
4
4
|
import { join } from 'node:path';
|
|
@@ -237,7 +237,7 @@ export class ConfigRepository {
|
|
|
237
237
|
]);
|
|
238
238
|
}
|
|
239
239
|
const errorDetails = this.validateSchema.errors.map((err) => ({
|
|
240
|
-
field: err.
|
|
240
|
+
field: err.instancePath || 'config',
|
|
241
241
|
message: err.message || 'Unknown error',
|
|
242
242
|
type: 'structure',
|
|
243
243
|
}));
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PRIORITY, STATUS, Task } from '../util/types.js';
|
|
1
|
+
import { PRIORITY, Roadmap, STATUS, Task } from '../util/types.js';
|
|
2
2
|
import { RoadmapStats } from './roadmap.service.js';
|
|
3
3
|
import { DependencyValidationError } from './task-dependency.service.js';
|
|
4
4
|
/**
|
|
@@ -80,6 +80,15 @@ export declare class DisplayService {
|
|
|
80
80
|
* ```
|
|
81
81
|
*/
|
|
82
82
|
formatStatusText(status: STATUS): string;
|
|
83
|
+
/**
|
|
84
|
+
* Formats the dependencies of a task for display.
|
|
85
|
+
*
|
|
86
|
+
*
|
|
87
|
+
* @param task - the task whose dependencies are to be formatted
|
|
88
|
+
* @param roadmap - the roadmap containing all tasks
|
|
89
|
+
* @returns Array of formatted dependency lines
|
|
90
|
+
*/
|
|
91
|
+
formatTaskDependencies(task: Task, roadmap: Roadmap): string[];
|
|
83
92
|
/**
|
|
84
93
|
* Formats complete task details for show command.
|
|
85
94
|
* Returns an array of lines to be output.
|
|
@@ -124,6 +124,34 @@ export class DisplayService {
|
|
|
124
124
|
.map((word) => word.charAt(0).toUpperCase() + word.slice(1))
|
|
125
125
|
.join(' ');
|
|
126
126
|
}
|
|
127
|
+
/**
|
|
128
|
+
* Formats the dependencies of a task for display.
|
|
129
|
+
*
|
|
130
|
+
*
|
|
131
|
+
* @param task - the task whose dependencies are to be formatted
|
|
132
|
+
* @param roadmap - the roadmap containing all tasks
|
|
133
|
+
* @returns Array of formatted dependency lines
|
|
134
|
+
*/
|
|
135
|
+
formatTaskDependencies(task, roadmap) {
|
|
136
|
+
const lines = [];
|
|
137
|
+
lines.push(`\nDependencies for Task: ${task.id}\n`);
|
|
138
|
+
if (task['depends-on'].length === 0) {
|
|
139
|
+
lines.push('This task has no dependencies.\n');
|
|
140
|
+
return lines;
|
|
141
|
+
}
|
|
142
|
+
for (const depId of task['depends-on']) {
|
|
143
|
+
const depTask = roadmap.tasks.find((t) => t.id === depId);
|
|
144
|
+
if (depTask) {
|
|
145
|
+
const statusSymbol = this.formatStatusSymbol(depTask.status);
|
|
146
|
+
const priorityLabel = this.formatPriorityLabel(depTask.priority);
|
|
147
|
+
lines.push(` ${statusSymbol} [${priorityLabel}] [${depTask.id}] ${depTask.title}`, ` Details: ${depTask.details}\n`);
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
lines.push(`❌ [Unknown Task] [${depId}] (Task not found in roadmap)`);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
return lines;
|
|
154
|
+
}
|
|
127
155
|
/**
|
|
128
156
|
* Formats complete task details for show command.
|
|
129
157
|
* Returns an array of lines to be output.
|
package/oclif.manifest.json
CHANGED
|
@@ -379,6 +379,13 @@
|
|
|
379
379
|
"allowNo": false,
|
|
380
380
|
"type": "boolean"
|
|
381
381
|
},
|
|
382
|
+
"show-dependencies": {
|
|
383
|
+
"char": "d",
|
|
384
|
+
"description": "show task dependencies",
|
|
385
|
+
"name": "show-dependencies",
|
|
386
|
+
"allowNo": false,
|
|
387
|
+
"type": "boolean"
|
|
388
|
+
},
|
|
382
389
|
"verbose": {
|
|
383
390
|
"char": "v",
|
|
384
391
|
"description": "show detailed error information including stack traces",
|
|
@@ -545,5 +552,5 @@
|
|
|
545
552
|
]
|
|
546
553
|
}
|
|
547
554
|
},
|
|
548
|
-
"version": "0.2.
|
|
555
|
+
"version": "0.2.6"
|
|
549
556
|
}
|