@mandors/cli 0.3.11 → 0.4.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/README.md CHANGED
@@ -1,11 +1,15 @@
1
- # Mandor - Event-Based Task Manager CLI for AI Agent Workflows
1
+ # Mandor - Deterministic Task Manager CLI for AI Agent Workflows
2
+
3
+ <p align="center">
4
+ <img src="logo.png" alt="Mandor Logo" width="600">
5
+ </p>
2
6
 
3
7
  <p align="center">
4
8
  <strong>Stop writing markdown plans. Start shipping features with deterministic task tracking.</strong>
5
9
  </p>
6
10
 
7
11
  <p align="center">
8
- <strong>Event-sourced | Dependency-aware | CLI-native | Built for AI agents</strong>
12
+ <strong>Dependency-aware | Structured storage | CLI-native | Built for AI agents</strong>
9
13
  </p>
10
14
 
11
15
  <p align="center">
@@ -27,18 +31,18 @@ Traditional workflows scatter task state across markdown files, spreadsheets, an
27
31
 
28
32
  Mandor brings **deterministic task management** to AI agent workflows:
29
33
 
30
- - **Single Source of Truth**: All state in `events.jsonl`—queryable, reproducible, auditable
34
+ - **Single Source of Truth**: All state in structured JSONL files—queryable, reproducible, auditable
31
35
  - **Automatic Dependency Resolution**: Mark tasks done → dependents auto-transition to ready
32
36
  - **Schema-Driven**: Enforce implementation steps, test cases, and library needs upfront
33
37
  - **CLI-Native**: Works in terminal, scripts, and CI/CD pipelines
34
- - **Event-Sourced**: Full audit trail of every status change
38
+ - **Dependency Tracking**: Full support for same-project and cross-project dependencies
35
39
 
36
40
  ## Overview
37
41
 
38
42
  Mandor is a CLI tool for managing tasks, features, and issues in AI agent workflows:
39
43
 
40
- - **Event-Based Architecture**: All changes logged in `events.jsonl` with immutable timestamps
41
- - **JSONL Format**: Deterministic, append-only storage for reproducibility
44
+ - **Structured Storage**: All data in JSONL format with full audit trail
45
+ - **Real-Time Status**: Query tasks/issues by status (ready, blocked, in_progress)
42
46
  - **Dependency Tracking**: Automatic status transitions when dependencies complete
43
47
  - **Cross-Platform**: Go binary for macOS, Linux, Windows (arm64 & x64)
44
48
 
@@ -46,22 +50,14 @@ Mandor is a CLI tool for managing tasks, features, and issues in AI agent workfl
46
50
 
47
51
  ## Core Concepts
48
52
 
49
- ### Entity Hierarchy
50
-
51
- ```
52
- Workspace
53
- └── Projects
54
- └── Features
55
- └── Tasks
56
- └── Issues
57
- ```
58
-
59
53
  ### Entity Types
60
54
 
61
55
  | Type | Purpose | Status Values |
62
56
  |------|---------|---------------|
63
- | **Task** | Work items within a feature | pending, ready, in_progress, done, blocked, cancelled |
57
+ | **Workspace** | Top-level container for all projects | (single instance per directory) |
58
+ | **Project** | Container for features and issues | (active/deleted) |
64
59
  | **Feature** | Logical grouping of related tasks | draft, active, done, blocked, cancelled |
60
+ | **Task** | Work items within a feature | pending, ready, in_progress, done, blocked, cancelled |
65
61
  | **Issue** | Problems, bugs, or improvement requests | open, ready, in_progress, resolved, wontfix, blocked, cancelled |
66
62
 
67
63
  ### Dependency Types
@@ -74,47 +70,43 @@ Workspace
74
70
 
75
71
  **Tasks:**
76
72
  ```
77
- pending → ready in_progress → done
78
- pending → ready → blocked → ready
79
- ready → cancelled
80
- cancelled → ready (reopen)
73
+ pending → {ready, in_progress, cancelled}
74
+ ready → {in_progress, cancelled}
75
+ in_progress{done, blocked, cancelled}
76
+ blocked{ready, cancelled}
77
+ done → (terminal)
78
+ cancelled → (terminal)
81
79
  ```
82
80
 
83
81
  **Features:**
84
82
  ```
85
- draft → active done
86
- draft → blocked (dependency not done)
87
- draft → cancelled
88
- cancelleddraft (reopen)
83
+ draft → {active, blocked, cancelled}
84
+ active{done, blocked, cancelled}
85
+ blocked{draft, active, done, cancelled}
86
+ done{cancelled}
87
+ cancelled → {draft}
89
88
  ```
90
89
 
91
90
  **Issues:**
92
91
  ```
93
- open → ready in_progress resolved
94
- open → ready → in_progress wontfix
95
- openready blocked → ready
96
- resolved → ready (reopen)
97
- wontfixready (reopen)
98
- opencancelled
99
- cancelled → open (reopen)
92
+ open → {ready, in_progress, blocked, resolved, wontfix, cancelled}
93
+ ready → {in_progress, blocked, resolved, wontfix, cancelled}
94
+ in_progress{blocked, resolved, wontfix, cancelled}
95
+ blocked{ready, resolved, wontfix, cancelled}
96
+ resolved(terminal, can reopen to any status)
97
+ wontfix(terminal, can reopen to any status)
98
+ cancelled → (terminal, can reopen to any status)
100
99
  ```
101
100
 
102
101
  ---
103
102
 
104
103
  ## Installation
105
104
 
106
- ### Build from Source
105
+ ### Install with curl
107
106
 
108
107
  ```bash
109
- git clone https://github.com/sanxzy/mandor.git
110
- cd mandor
111
- go build -o ./mandor ./cmd/mandor
112
- ```
113
-
114
- ### Use from Binaries
115
-
116
- ```bash
117
- ./mandor --help
108
+ curl -fsSL https://raw.githubusercontent.com/sanxzy/mandor/main/scripts/install.sh | sh
109
+ mandor --help
118
110
  ```
119
111
 
120
112
  ### Install from npm
@@ -153,7 +145,7 @@ mandor feature create "Authentication" --project api \
153
145
 
154
146
  ```bash
155
147
  # Create first task (no dependencies)
156
- mandor task create "JWT Parser" --feature api-feature-xxx \
148
+ mandor task create api-feature-xxx "JWT Parser" \
157
149
  --goal "Parse and validate JWT tokens in incoming requests with expiry and signature verification" \
158
150
  --implementation-steps "Setup crypto library|Add token validation|Handle expiry|Return errors" \
159
151
  --test-cases "Valid token accepted|Expired token rejected|Invalid signature rejected" \
@@ -162,7 +154,7 @@ mandor task create "JWT Parser" --feature api-feature-xxx \
162
154
  --priority P1
163
155
 
164
156
  # Create dependent task (depends on JWT Parser)
165
- mandor task create "Login Endpoint" --feature api-feature-xxx \
157
+ mandor task create api-feature-xxx "Login Endpoint" \
166
158
  --goal "Accept user credentials and return JWT token with refresh token flow" \
167
159
  --implementation-steps "Setup endpoint|Validate credentials|Generate JWT|Return tokens" \
168
160
  --test-cases "Valid creds return token|Invalid creds rejected|Tokens properly formatted" \
@@ -175,25 +167,22 @@ mandor task create "Login Endpoint" --feature api-feature-xxx \
175
167
  ### 5. View Task Progress
176
168
 
177
169
  ```bash
178
- # See all tasks in feature
179
- mandor task list --feature api-feature-xxx
170
+ # See all tasks in feature with visualization
171
+ mandor track feature api-feature-xxx
180
172
 
181
- # See tasks ready to work on
182
- mandor task ready --feature api-feature-xxx
183
-
184
- # See blocked/waiting tasks
185
- mandor task blocked --feature api-feature-xxx
173
+ # Get task details
174
+ mandor task detail <task-id>
186
175
  ```
187
176
 
188
177
  ### 6. Mark Tasks Complete
189
178
 
190
179
  ```bash
191
- # Get task ID from list
180
+ # Get task ID from track output
192
181
  mandor task update <task-id> --status in_progress
193
182
  mandor task update <task-id> --status done
194
183
 
195
184
  # Dependent tasks auto-transition to "ready"
196
- mandor task ready --feature api-feature-xxx # Now shows "Login Endpoint" as ready
185
+ mandor track feature api-feature-xxx # Now shows "Login Endpoint" as ready
197
186
  ```
198
187
 
199
188
  ---
@@ -207,10 +196,7 @@ mandor task ready --feature api-feature-xxx # Now shows "Login Endpoint" as rea
207
196
  mandor init [--workspace-name <name>] [-y]
208
197
 
209
198
  # View workspace and project status
210
- mandor status [--project <id>] [--summary] [--json]
211
-
212
- # Display feature summary grouped by priority
213
- mandor summary [--project <id>]
199
+ mandor status [--project <id>] [--json]
214
200
 
215
201
  # Manage configuration
216
202
  mandor config get <key>
@@ -219,13 +205,35 @@ mandor config list
219
205
  mandor config reset <key>
220
206
 
221
207
  # Display all commands and best practices
222
- mandor populate [--markdown|--json]
208
+ mandor populate
223
209
 
224
210
  # Show version
225
211
  mandor version
226
212
 
227
213
  # Generate shell completions
228
214
  mandor completion [bash|zsh|fish]
215
+
216
+ # AI-assisted documentation
217
+ mandor ai --help
218
+ ```
219
+
220
+ ### Track Commands
221
+
222
+ ```bash
223
+ # Track workspace status
224
+ mandor track
225
+
226
+ # Track project status
227
+ mandor track project <project-id>
228
+
229
+ # Track feature with tasks
230
+ mandor track feature <feature-id> [--verbose]
231
+
232
+ # Track specific task
233
+ mandor track task <task-id>
234
+
235
+ # Track issue
236
+ mandor track issue <issue-id>
229
237
  ```
230
238
 
231
239
  ### Project Commands
@@ -234,67 +242,44 @@ mandor completion [bash|zsh|fish]
234
242
  # Create a project
235
243
  mandor project create <id> --name <name> --goal <goal> [OPTIONS]
236
244
 
237
- # List projects
238
- mandor project list [--json]
239
-
240
245
  # Show project details
241
246
  mandor project detail <project-id>
242
247
 
243
248
  # Update project
244
- mandor project update <project-id> --name <name> [--goal <goal>]
245
-
246
- # Delete project (soft delete)
247
- mandor project delete <project-id> [--hard]
248
-
249
- # Reopen a soft-deleted project
250
- mandor project reopen <project-id>
249
+ mandor project update <project-id> [--name <name>] [--goal <goal>] [--status <status>]
251
250
  ```
252
251
 
253
252
  ### Feature Commands
254
253
 
255
254
  ```bash
256
255
  # Create a feature
257
- mandor feature create <name> --project <id> --goal <goal> [--scope <scope>] [--priority <priority>] [--depends <ids>]
256
+ mandor feature create <name> --project <id> --goal <goal> [--scope <scope>] [--priority <priority>]
258
257
 
259
258
  # List features
260
- mandor feature list --project <id> [--json] [--include-deleted]
259
+ mandor feature list --project <id>
261
260
 
262
261
  # Show feature details
263
262
  mandor feature detail <feature-id> --project <id>
264
263
 
265
264
  # Update feature
266
265
  mandor feature update <feature-id> --project <id> [--name <text>] [--goal <goal>] [--scope <scope>] [--priority <priority>] [--status <status>] [--depends <ids>] [--cancel --reason <text>] [--reopen] [--dry-run]
267
-
268
- # List features by status filter
269
- mandor feature list --project <id> [--status <status>]
270
266
  ```
271
267
 
272
268
  ### Task Commands
273
269
 
274
270
  ```bash
275
271
  # Create a task
276
- mandor task create <name> --feature <id> --goal <goal> \
272
+ mandor task create <feature-id> <name> --goal <goal> \
277
273
  --implementation-steps <steps> --test-cases <cases> \
278
274
  --derivable-files <files> --library-needs <libs> \
279
- [--priority <priority>] [--depends-on <ids>] [-y]
280
-
281
- # List tasks in a feature
282
- mandor task list --feature <id> [--status <status>] [--priority <priority>] [--json] [--include-deleted] [--sort <field>] [--order <asc|desc>]
283
-
284
- # Show ready tasks
285
- mandor task ready --feature <id> [--priority <priority>] [--json]
286
-
287
- # Show blocked tasks
288
- mandor task blocked --feature <id> [--priority <priority>] [--json]
275
+ [--priority <priority>] [--depends-on <ids>]
289
276
 
290
277
  # Show task details
291
278
  mandor task detail <task-id>
292
279
 
293
280
  # Update task
294
281
  mandor task update <task-id> [--name <text>] [--goal <goal>] [--priority <priority>] \
295
- [--implementation-steps <steps>] [--test-cases <cases>] [--derivable-files <files>] \
296
- [--library-needs <libs>] [--status <status>] [--depends <ids>] [--depends-add <ids>] \
297
- [--depends-remove <ids>] [--cancel --reason <text>] [--reopen] [--dry-run] [--force]
282
+ [--status <status>] [--depends-add <ids>] [--depends-remove <ids>] [--cancel --reason <text>] [--dry-run]
298
283
  ```
299
284
 
300
285
  ### Issue Commands
@@ -303,36 +288,21 @@ mandor task update <task-id> [--name <text>] [--goal <goal>] [--priority <priori
303
288
  # Create an issue
304
289
  mandor issue create <name> --project <id> --type <type> --goal <goal> \
305
290
  --affected-files <files> --affected-tests <tests> \
306
- --implementation-steps <steps> \
307
- [--priority <priority>] [--depends-on <ids>] [--library-needs <libs>] [-y]
308
-
309
- # List issues in project
310
- mandor issue list [--project <id>] [--type <type>] [--status <status>] [--priority <priority>] [--json] [--sort <field>] [--order <asc|desc>] [--verbose]
311
-
312
- # Show ready issues
313
- mandor issue ready [--project <id>] [--type <type>] [--priority <priority>] [--json]
314
-
315
- # Show blocked issues
316
- mandor issue blocked [--project <id>] [--type <type>] [--priority <priority>] [--json]
291
+ --implementation-steps <steps> [--priority <priority>] [--depends-on <ids>] [--library-needs <libs>]
317
292
 
318
293
  # Show issue details
319
- mandor issue detail <issue-id> [--project <id>]
294
+ mandor issue detail <issue-id> --project <id>
320
295
 
321
296
  # Update issue
322
- mandor issue update <issue-id> [--project <id>] [--name <text>] [--goal <goal>] [--type <type>] [--priority <priority>] \
323
- [--status <status>] [--reason <text>] [--depends-on <ids>] [--depends-add <ids>] [--depends-remove <ids>] \
324
- [--affected-files <files>] [--affected-tests <tests>] [--implementation-steps <steps>] [--library-needs <libs>] \
325
- [--start] [--resolve] [--wontfix] [--reopen] [--cancel] [--force] [--dry-run]
297
+ mandor issue update <issue-id> [--name <text>] [--goal <goal>] [--priority <priority>] \
298
+ [--type <type>] [--status <status>] [--start] [--resolve] [--wontfix] [--reason <text>] [--cancel --reason <text>] [--dry-run]
326
299
  ```
327
300
 
328
301
  ### AI Commands
329
302
 
330
303
  ```bash
331
- # Generate AGENTS.md for multi-agent coordination
332
- mandor ai agents
333
-
334
- # Generate CLAUDE.md for the project
335
- mandor ai claude
304
+ # AI-assisted documentation generation
305
+ mandor ai --help
336
306
  ```
337
307
 
338
308
  ---
@@ -360,7 +330,7 @@ mandor feature create "Authentication" --project api \
360
330
  --scope backend
361
331
 
362
332
  # Create tasks with explicit dependencies
363
- mandor task create "JWT Parser" --feature auth-feature-id \
333
+ mandor task create auth-feature-id "JWT Parser" \
364
334
  --goal "Validate JWT tokens..." \
365
335
  --implementation-steps "Step 1|Step 2" \
366
336
  --test-cases "Test invalid tokens|Test expired" \
@@ -368,21 +338,21 @@ mandor task create "JWT Parser" --feature auth-feature-id \
368
338
  --library-needs "jsonwebtoken" \
369
339
  --priority P1
370
340
 
371
- mandor task create "Login Endpoint" --feature auth-feature-id \
341
+ mandor task create auth-feature-id "Login Endpoint" \
372
342
  --goal "Accept credentials and return JWT..." \
373
343
  --depends-on jwt-parser-task-id \
374
344
  --priority P1
375
345
 
376
346
  # Real-time progress queries
377
- mandor task ready --feature auth-feature-id # See what's available now
378
- mandor task blocked --feature auth-feature-id # See what's waiting
347
+ mandor track feature auth-feature-id # See all tasks and status
348
+ mandor track task jwt-parser-task-id # See specific task details
379
349
  ```
380
350
 
381
351
  **Benefits:**
382
352
  - No file sync required
383
353
  - Dependencies auto-validated
384
354
  - Blocking tasks auto-detected
385
- - Reproducible state (`events.jsonl`)
355
+ - Structured JSONL storage
386
356
  - Queryable via CLI or JSON
387
357
  - Works in CI/CD pipelines
388
358
 
@@ -395,11 +365,11 @@ mandor status
395
365
  # Check a specific project
396
366
  mandor status --project api
397
367
 
398
- # View feature dependencies
399
- mandor feature list --project api
368
+ # View feature dependencies and progress
369
+ mandor track project api
400
370
 
401
371
  # Create tasks with dependencies
402
- mandor task create "Step 2" --feature feature-id \
372
+ mandor task create feature-id "Step 2" \
403
373
  --goal "..." \
404
374
  --implementation-steps "..." \
405
375
  --test-cases "..." \
@@ -407,14 +377,14 @@ mandor task create "Step 2" --feature feature-id \
407
377
  --library-needs "..." \
408
378
  --depends-on task-id-1|task-id-2
409
379
 
410
- # See what's blocking progress
411
- mandor task blocked --feature feature-id
380
+ # See all feature tasks with status
381
+ mandor track feature feature-id
412
382
 
413
383
  # Mark as done (auto-unblocks dependents)
414
384
  mandor task update task-id --status done
415
385
 
416
- # Dependents auto-transition to ready
417
- mandor task ready --feature feature-id
386
+ # Verify dependents auto-transitioned to ready
387
+ mandor track feature feature-id
418
388
  ```
419
389
 
420
390
  ### Issue Tracking
@@ -430,16 +400,10 @@ mandor issue create "Fix memory leak in auth" \
430
400
  --affected-tests "src/handlers/auth_test.go" \
431
401
  --implementation-steps "Identify leak|Add cleanup|Test|Verify"
432
402
 
433
- # List open issues
434
- mandor issue list --project api --status open
435
-
436
- # Filter by type and priority
437
- mandor issue list --project api --type bug --priority P0
438
-
439
- # See ready issues
440
- mandor issue ready --project api --type bug
403
+ # View issue details
404
+ mandor issue detail issue-id --project api
441
405
 
442
- # Start working
406
+ # Start working on an issue
443
407
  mandor issue update issue-id --start
444
408
 
445
409
  # Mark as resolved
@@ -447,6 +411,9 @@ mandor issue update issue-id --resolve
447
411
 
448
412
  # Mark as won't fix with reason
449
413
  mandor issue update issue-id --wontfix --reason "Working as intended"
414
+
415
+ # See project issues with track
416
+ mandor track project api
450
417
  ```
451
418
 
452
419
  ### Configuration
@@ -592,16 +559,14 @@ mandor status
592
559
  # Project summary
593
560
  mandor status --project api
594
561
 
595
- # Feature priorities
596
- mandor summary --project api
562
+ # See feature progress
563
+ mandor track project api
597
564
 
598
- # See ready work
599
- mandor task ready --feature feature-id
600
- mandor issue ready --project api
565
+ # See feature tasks
566
+ mandor track feature feature-id
601
567
 
602
- # See blockers
603
- mandor task blocked --feature feature-id
604
- mandor issue blocked --project api
568
+ # See task details
569
+ mandor track task task-id
605
570
  ```
606
571
 
607
572
  ---
@@ -621,7 +586,7 @@ export PATH="$HOME/.local/bin:$PATH"
621
586
  Check the project ID and ensure you're in the correct workspace:
622
587
 
623
588
  ```bash
624
- mandor project list
589
+ mandor status
625
590
  ```
626
591
 
627
592
  ### "Entity not found"
@@ -629,8 +594,8 @@ mandor project list
629
594
  Verify the entity ID exists:
630
595
 
631
596
  ```bash
632
- mandor task list --feature <feature-id>
633
- mandor issue list --project <project-id>
597
+ mandor track feature <feature-id>
598
+ mandor track project <project-id>
634
599
  ```
635
600
 
636
601
  ### "Cross-project dependency detected"
@@ -683,10 +648,9 @@ mandor feature update <id> --project <pid> --reopen
683
648
  └── projects/
684
649
  └── <project-id>/
685
650
  ├── project.json # Project metadata
686
- ├── features.jsonl # Feature event log
687
- ├── tasks.jsonl # Task event log
688
- ├── issues.jsonl # Issue event log
689
- └── events.jsonl # All events
651
+ ├── features.jsonl # Feature records
652
+ ├── tasks.jsonl # Task records
653
+ └── issues.jsonl # Issue records
690
654
  ```
691
655
 
692
656
  ---
Binary file
Binary file
Binary file
Binary file
@@ -28,7 +28,7 @@ async function getLatestVersion(prerelease = false) {
28
28
  const url = `https://api.github.com/repos/${REPO}/releases`;
29
29
 
30
30
  return new Promise((resolve, reject) => {
31
- https.get(url, { headers: { 'User-Agent': 'Mandor-CLI' } }, (res) => {
31
+ https.get(url, { headers: { 'User-Agent': 'binaries/mandor' } }, (res) => {
32
32
  let data = '';
33
33
  res.on('data', chunk => data += chunk);
34
34
  res.on('end', () => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mandors/cli",
3
- "version": "0.3.11",
3
+ "version": "0.4.0",
4
4
  "description": "Event-based task manager CLI for AI agent workflows",
5
5
  "main": "npm/lib/index.js",
6
6
  "bin": {
@@ -1,20 +0,0 @@
1
- {"layer":"project","type":"created","id":"test-proj","by":"BUDISANTOSO","ts":"2026-02-02T10:28:51.466422Z"}
2
- {"layer":"feature","type":"created","id":"test-proj-feature-qgFb","by":"BUDISANTOSO","ts":"2026-02-02T10:28:59.0611Z"}
3
- {"layer":"task","type":"created","id":"test-proj-feature-qgFb-task-9fse","by":"BUDISANTOSO","ts":"2026-02-02T10:29:14.29734Z"}
4
- {"layer":"task","type":"ready","id":"test-proj-feature-qgFb-task-9fse","by":"system","ts":"2026-02-02T10:29:14.29734Z"}
5
- {"layer":"task","type":"created","id":"test-proj-feature-qgFb-task-u4Sb","by":"BUDISANTOSO","ts":"2026-02-02T10:29:16.665464Z"}
6
- {"layer":"task","type":"ready","id":"test-proj-feature-qgFb-task-u4Sb","by":"system","ts":"2026-02-02T10:29:16.665464Z"}
7
- {"layer":"task","type":"created","id":"test-proj-feature-qgFb-task-CPT4","by":"BUDISANTOSO","ts":"2026-02-02T10:29:19.350275Z"}
8
- {"layer":"task","type":"ready","id":"test-proj-feature-qgFb-task-CPT4","by":"system","ts":"2026-02-02T10:29:19.350275Z"}
9
- {"layer":"task","type":"updated","id":"test-proj-feature-qgFb-task-9fse","by":"BUDISANTOSO","ts":"2026-02-02T10:29:29.806828Z","changes":["status"]}
10
- {"layer":"task","type":"updated","id":"test-proj-feature-qgFb-task-u4Sb","by":"BUDISANTOSO","ts":"2026-02-02T10:29:33.953761Z","changes":["status"]}
11
- {"layer":"task","type":"updated","id":"test-proj-feature-qgFb-task-CPT4","by":"BUDISANTOSO","ts":"2026-02-02T10:29:38.227724Z","changes":["status"]}
12
- {"layer":"task","type":"updated","id":"test-proj-feature-qgFb-task-CPT4","by":"BUDISANTOSO","ts":"2026-02-02T10:29:38.249316Z","changes":["status"]}
13
- {"layer":"issue","type":"created","id":"test-proj-issue-Kj2y","by":"BUDISANTOSO","ts":"2026-02-02T10:29:50.229194Z"}
14
- {"layer":"issue","type":"ready","id":"test-proj-issue-Kj2y","by":"system","ts":"2026-02-02T10:29:50.229194Z"}
15
- {"layer":"issue","type":"created","id":"test-proj-issue-NDVP","by":"BUDISANTOSO","ts":"2026-02-02T10:29:52.962947Z"}
16
- {"layer":"issue","type":"ready","id":"test-proj-issue-NDVP","by":"system","ts":"2026-02-02T10:29:52.962947Z"}
17
- {"layer":"issue","type":"created","id":"test-proj-issue-39iV","by":"BUDISANTOSO","ts":"2026-02-02T10:29:56.23988Z"}
18
- {"layer":"issue","type":"ready","id":"test-proj-issue-39iV","by":"system","ts":"2026-02-02T10:29:56.23988Z"}
19
- {"layer":"issue","type":"updated","id":"test-proj-issue-Kj2y","by":"BUDISANTOSO","ts":"2026-02-02T10:30:01.070387Z","changes":["status"]}
20
- {"layer":"issue","type":"updated","id":"test-proj-issue-NDVP","by":"BUDISANTOSO","ts":"2026-02-02T10:30:01.082771Z","changes":["status"]}
@@ -1 +0,0 @@
1
- {"id":"test-proj-feature-qgFb","project_id":"test-proj","name":"Test Feature","goal":"A test feature for testing tasks and issues in development environment with proper workflow","priority":"P3","status":"draft","created_at":"2026-02-02T10:28:59.0611Z","updated_at":"2026-02-02T10:28:59.0611Z","created_by":"BUDISANTOSO","updated_by":"BUDISANTOSO"}
@@ -1,3 +0,0 @@
1
- {"id":"test-proj-issue-39iV","project_id":"test-proj","name":"Issue Security 1","goal":"Security issue in test feature that needs immediate attention and comprehensive security testing","issue_type":"security","priority":"P1","status":"ready","affected_files":["file3.go"],"affected_tests":["test3.go"],"implementation_steps":["Security step 1"],"created_at":"2026-02-02T10:29:56.23988Z","last_updated_at":"2026-02-02T10:29:56.23988Z","created_by":"BUDISANTOSO","last_updated_by":"BUDISANTOSO"}
2
- {"id":"test-proj-issue-Kj2y","project_id":"test-proj","name":"Issue Bug 1","goal":"Bug in the test feature that needs fixing with proper analysis and solution steps for comprehensive testing","issue_type":"bug","priority":"P0","status":"in_progress","affected_files":["file1.go"],"affected_tests":["test1.go"],"implementation_steps":["Fix step 1","Fix step 2"],"created_at":"2026-02-02T10:29:50.229194Z","last_updated_at":"2026-02-02T10:30:01.070387Z","created_by":"BUDISANTOSO","last_updated_by":"BUDISANTOSO"}
3
- {"id":"test-proj-issue-NDVP","project_id":"test-proj","name":"Issue Improvement 1","goal":"Improve performance of the test feature with optimization strategies and benchmarking approaches for comprehensive testing","issue_type":"improvement","priority":"P2","status":"resolved","affected_files":["file2.go"],"affected_tests":["test2.go"],"implementation_steps":["Optimize step 1","Optimize step 2"],"created_at":"2026-02-02T10:29:52.962947Z","last_updated_at":"2026-02-02T10:30:01.082771Z","created_by":"BUDISANTOSO","last_updated_by":"BUDISANTOSO"}
@@ -1,11 +0,0 @@
1
- {
2
- "id": "test-proj",
3
- "name": "Test Project",
4
- "goal": "A test project for CLI testing",
5
- "status": "initial",
6
- "strict": false,
7
- "created_at": "2026-02-02T10:28:51.466422Z",
8
- "updated_at": "2026-02-02T10:28:51.466422Z",
9
- "created_by": "BUDISANTOSO",
10
- "updated_by": "BUDISANTOSO"
11
- }
@@ -1,29 +0,0 @@
1
- {
2
- "version": "mandor.v1",
3
- "$schema": "https://json-schema.org/draft/2020-12/schema",
4
- "rules": {
5
- "task": {
6
- "dependency": "same_project_only",
7
- "cycle": "disallowed"
8
- },
9
- "feature": {
10
- "dependency": "cross_project_allowed",
11
- "cycle": "disallowed"
12
- },
13
- "issue": {
14
- "dependency": "same_project_only",
15
- "cycle": "disallowed"
16
- },
17
- "priority": {
18
- "levels": [
19
- "P0",
20
- "P1",
21
- "P2",
22
- "P3",
23
- "P4",
24
- "P5"
25
- ],
26
- "default": "P3"
27
- }
28
- }
29
- }
@@ -1,3 +0,0 @@
1
- {"id":"test-proj-feature-qgFb-task-9fse","feature_id":"test-proj-feature-qgFb","project_id":"test-proj","name":"Task 1","goal":"This is a comprehensive test task for testing the task summary command implementation in the CLI. The task involves comprehensive testing of all the features that were recently implemented. It should cover multiple scenarios including ready tasks, in-progress tasks, blocked tasks, pending tasks, and completed tasks. The implementation should handle all edge cases and error scenarios properly.\n\nThis task includes detailed testing of the markdown table output format to ensure proper alignment and formatting of all columns. The testing should verify that task IDs, names, priorities, and statuses are displayed correctly. It should also test filtering by priority levels and ensure that the output is properly sorted by creation date within each status group.\n\nThe task requires implementation of comprehensive error handling for invalid feature IDs and proper workspace initialization checks. The testing should cover scenarios where features don't exist, tasks don't exist, and various filter combinations. All error messages should be clear and helpful to the user.\n\nThe implementation should also include documentation and examples of how to use the new commands. This includes examples for each command type and explanation of the output format. The documentation should be clear and easy to follow for new users.","priority":"P3","status":"in_progress","implementation_steps":["Step 1","Step 2"],"test_cases":["Test 1","Test 2"],"derivable_files":["file1.go","file2.go"],"library_needs":["none"],"created_at":"2026-02-02T10:29:14.29734Z","updated_at":"2026-02-02T10:29:29.806828Z","created_by":"BUDISANTOSO","updated_by":"BUDISANTOSO"}
2
- {"id":"test-proj-feature-qgFb-task-u4Sb","feature_id":"test-proj-feature-qgFb","project_id":"test-proj","name":"Task 2","goal":"This is a comprehensive test task for testing the task summary command implementation in the CLI. The task involves comprehensive testing of all the features that were recently implemented. It should cover multiple scenarios including ready tasks, in-progress tasks, blocked tasks, pending tasks, and completed tasks. The implementation should handle all edge cases and error scenarios properly.\n\nThis task includes detailed testing of the markdown table output format to ensure proper alignment and formatting of all columns. The testing should verify that task IDs, names, priorities, and statuses are displayed correctly. It should also test filtering by priority levels and ensure that the output is properly sorted by creation date within each status group.\n\nThe task requires implementation of comprehensive error handling for invalid feature IDs and proper workspace initialization checks. The testing should cover scenarios where features don't exist, tasks don't exist, and various filter combinations. All error messages should be clear and helpful to the user.\n\nThe implementation should also include documentation and examples of how to use the new commands. This includes examples for each command type and explanation of the output format. The documentation should be clear and easy to follow for new users.","priority":"P0","status":"in_progress","implementation_steps":["Step 1","Step 2"],"test_cases":["Test 1","Test 2"],"derivable_files":["file1.go","file2.go"],"library_needs":["none"],"created_at":"2026-02-02T10:29:16.665464Z","updated_at":"2026-02-02T10:29:33.953761Z","created_by":"BUDISANTOSO","updated_by":"BUDISANTOSO"}
3
- {"id":"test-proj-feature-qgFb-task-CPT4","feature_id":"test-proj-feature-qgFb","project_id":"test-proj","name":"Task 3","goal":"This is a comprehensive test task for testing the task summary command implementation in the CLI. The task involves comprehensive testing of all the features that were recently implemented. It should cover multiple scenarios including ready tasks, in-progress tasks, blocked tasks, pending tasks, and completed tasks. The implementation should handle all edge cases and error scenarios properly.\n\nThis task includes detailed testing of the markdown table output format to ensure proper alignment and formatting of all columns. The testing should verify that task IDs, names, priorities, and statuses are displayed correctly. It should also test filtering by priority levels and ensure that the output is properly sorted by creation date within each status group.\n\nThe task requires implementation of comprehensive error handling for invalid feature IDs and proper workspace initialization checks. The testing should cover scenarios where features don't exist, tasks don't exist, and various filter combinations. All error messages should be clear and helpful to the user.\n\nThe implementation should also include documentation and examples of how to use the new commands. This includes examples for each command type and explanation of the output format. The documentation should be clear and easy to follow for new users.","priority":"P2","status":"done","implementation_steps":["Step 1","Step 2"],"test_cases":["Test 1","Test 2"],"derivable_files":["file1.go","file2.go"],"library_needs":["none"],"created_at":"2026-02-02T10:29:19.350275Z","updated_at":"2026-02-02T10:29:38.249316Z","created_by":"BUDISANTOSO","updated_by":"BUDISANTOSO"}
@@ -1,13 +0,0 @@
1
- {
2
- "id": "bPTh",
3
- "name": "Mandor",
4
- "version": "mandor.v1",
5
- "schema_version": "mandor.v1",
6
- "created_at": "2026-02-02T10:28:47.490328Z",
7
- "last_updated_at": "2026-02-02T10:28:47.490328Z",
8
- "created_by": "BUDISANTOSO",
9
- "config": {
10
- "default_priority": "P3",
11
- "strict_mode": false
12
- }
13
- }
package/bin/mandor DELETED
Binary file
package/mandor-cli DELETED
Binary file
package/mandor-test DELETED
Binary file