@mandors/cli 0.2.1 → 0.2.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/.mandor/projects/api/events.jsonl +9 -0
- package/.mandor/projects/api/features.jsonl +1 -0
- package/.mandor/projects/api/issues.jsonl +0 -0
- package/.mandor/projects/api/project.jsonl +11 -0
- package/.mandor/projects/api/schema.json +29 -0
- package/.mandor/projects/api/tasks.jsonl +2 -0
- package/.mandor/workspace.json +13 -0
- package/README.md +35 -13
- package/binaries/darwin-arm64/mandor +0 -0
- package/binaries/darwin-arm64.tar.gz +0 -0
- package/binaries/linux-arm64/mandor +0 -0
- package/binaries/linux-arm64.tar.gz +0 -0
- package/mandor +0 -0
- package/package.json +1 -1
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{"layer":"project","type":"created","id":"api","by":"BUDISANTOSO","ts":"2026-01-30T07:25:46.812207Z"}
|
|
2
|
+
{"layer":"feature","type":"created","id":"api-feature-LfrH","by":"BUDISANTOSO","ts":"2026-01-30T07:25:51.075751Z"}
|
|
3
|
+
{"layer":"task","type":"created","id":"api-feature-LfrH-task-AAd2","by":"BUDISANTOSO","ts":"2026-01-30T07:25:51.10241Z"}
|
|
4
|
+
{"layer":"task","type":"ready","id":"api-feature-LfrH-task-AAd2","by":"system","ts":"2026-01-30T07:25:51.10241Z"}
|
|
5
|
+
{"layer":"task","type":"created","id":"api-feature-LfrH-task-qvlw","by":"BUDISANTOSO","ts":"2026-01-30T07:25:51.12448Z"}
|
|
6
|
+
{"layer":"task","type":"blocked","id":"api-feature-LfrH-task-qvlw","by":"system","ts":"2026-01-30T07:25:51.12448Z"}
|
|
7
|
+
{"layer":"task","type":"updated","id":"api-feature-LfrH-task-AAd2","by":"BUDISANTOSO","ts":"2026-01-30T07:25:54.676119Z","changes":["status"]}
|
|
8
|
+
{"layer":"task","type":"ready","id":"api-feature-LfrH-task-qvlw","by":"system","ts":"2026-01-30T07:25:54.711899Z"}
|
|
9
|
+
{"layer":"task","type":"updated","id":"api-feature-LfrH-task-AAd2","by":"BUDISANTOSO","ts":"2026-01-30T07:25:54.711615Z","changes":["status","dependent_unblocked"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"api-feature-LfrH","project_id":"api","name":"Feature","goal":"Feature","priority":"P3","status":"draft","created_at":"2026-01-30T07:25:51.075751Z","updated_at":"2026-01-30T07:25:51.075751Z","created_by":"BUDISANTOSO","updated_by":"BUDISANTOSO"}
|
|
File without changes
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "api",
|
|
3
|
+
"name": "API",
|
|
4
|
+
"goal": "This is a comprehensive test project for task and issue dependency testing. The goal is to implement a complete system that demonstrates proper handling of dependencies within a single project and across multiple projects when configured. This includes task management, issue tracking, feature coordination, and comprehensive reporting capabilities. All code will follow best practices and coding standards. Documentation will be maintained throughout the development process and updated regularly as needed.",
|
|
5
|
+
"status": "initial",
|
|
6
|
+
"strict": false,
|
|
7
|
+
"created_at": "2026-01-30T07:25:46.812207Z",
|
|
8
|
+
"updated_at": "2026-01-30T07:25:46.812207Z",
|
|
9
|
+
"created_by": "BUDISANTOSO",
|
|
10
|
+
"updated_by": "BUDISANTOSO"
|
|
11
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
{"id":"api-feature-LfrH-task-AAd2","feature_id":"api-feature-LfrH","project_id":"api","name":"Task 1","goal":"Task 1","priority":"P3","status":"done","implementation_steps":["step"],"test_cases":["test"],"derivable_files":["f"],"library_needs":["none"],"created_at":"2026-01-30T07:25:51.10241Z","updated_at":"2026-01-30T07:25:54.711615Z","created_by":"BUDISANTOSO","updated_by":"BUDISANTOSO"}
|
|
2
|
+
{"id":"api-feature-LfrH-task-qvlw","feature_id":"api-feature-LfrH","project_id":"api","name":"Task 2","goal":"Task 2","priority":"P3","status":"ready","depends_on":["api-feature-LfrH-task-AAd2"],"implementation_steps":["step"],"test_cases":["test"],"derivable_files":["f"],"library_needs":["none"],"created_at":"2026-01-30T07:25:51.12448Z","updated_at":"2026-01-30T07:25:54.711899Z","created_by":"BUDISANTOSO","updated_by":"BUDISANTOSO"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "7KiL",
|
|
3
|
+
"name": "Mandor",
|
|
4
|
+
"version": "mandor.v1",
|
|
5
|
+
"schema_version": "mandor.v1",
|
|
6
|
+
"created_at": "2026-01-30T07:25:32.126001Z",
|
|
7
|
+
"last_updated_at": "2026-01-30T07:25:32.126001Z",
|
|
8
|
+
"created_by": "BUDISANTOSO",
|
|
9
|
+
"config": {
|
|
10
|
+
"default_priority": "P3",
|
|
11
|
+
"strict_mode": false
|
|
12
|
+
}
|
|
13
|
+
}
|
package/README.md
CHANGED
|
@@ -179,9 +179,10 @@ mandor project create api --name "API Service" --goal "Implement REST API"
|
|
|
179
179
|
# 3. Create feature
|
|
180
180
|
mandor feature create "User Auth" --project api --goal "Implement login/logout"
|
|
181
181
|
|
|
182
|
-
# 4.
|
|
182
|
+
# 4. Get feature ID and create task
|
|
183
|
+
FEATURE_ID=$(mandor feature list --project api --json | jq -r '.[0].id')
|
|
183
184
|
mandor task create "Password Hashing" \
|
|
184
|
-
--feature
|
|
185
|
+
--feature $FEATURE_ID \
|
|
185
186
|
--goal "Implement bcrypt hashing" \
|
|
186
187
|
--implementation-steps "Install bcrypt,Create utility,Write tests" \
|
|
187
188
|
--test-cases "Hash validation,Password comparison" \
|
|
@@ -238,6 +239,8 @@ mandor status
|
|
|
238
239
|
|
|
239
240
|
**Status flow:** `pending` → `ready` → `in_progress` → `done` (or `blocked` → `cancelled`)
|
|
240
241
|
|
|
242
|
+
**Note on `--library-needs`:** This flag is required. Provide comma-separated library names (e.g., `"bcrypt,lodash"`), or use `"none"` if the task requires no new external libraries.
|
|
243
|
+
|
|
241
244
|
### Issue
|
|
242
245
|
|
|
243
246
|
| Command | Description |
|
|
@@ -358,24 +361,43 @@ Cannot cancel entities that other entities depend on. Use `--force` to override.
|
|
|
358
361
|
mandor init "My Project"
|
|
359
362
|
mandor project create api --name "API Service" --goal "Implement API"
|
|
360
363
|
|
|
364
|
+
# Create features
|
|
361
365
|
mandor feature create "User Auth" --project api --goal "Login/logout/registration"
|
|
362
|
-
mandor feature create "Payments" --project api --goal "Stripe integration" \
|
|
363
|
-
--depends api-feature-xxx
|
|
364
366
|
|
|
365
|
-
|
|
367
|
+
# Get feature ID for creating tasks
|
|
368
|
+
AUTH_FEATURE_ID=$(mandor feature list --project api --json | jq -r '.[] | select(.name == "User Auth") | .id')
|
|
369
|
+
|
|
370
|
+
# Create tasks under the User Auth feature
|
|
366
371
|
mandor task create "Password Hashing" \
|
|
367
|
-
--feature $
|
|
368
|
-
--goal "Implement bcrypt" \
|
|
372
|
+
--feature $AUTH_FEATURE_ID \
|
|
373
|
+
--goal "Implement bcrypt hashing" \
|
|
369
374
|
--implementation-steps "Install bcrypt,Create utility,Write tests" \
|
|
370
|
-
--test-cases "Hash validation" \
|
|
375
|
+
--test-cases "Hash validation,Password comparison" \
|
|
371
376
|
--derivable-files "src/utils/password.ts" \
|
|
372
377
|
--library-needs "bcrypt"
|
|
373
378
|
|
|
374
|
-
mandor
|
|
375
|
-
--
|
|
376
|
-
--
|
|
377
|
-
--
|
|
378
|
-
--
|
|
379
|
+
mandor task create "JWT Token Management" \
|
|
380
|
+
--feature $AUTH_FEATURE_ID \
|
|
381
|
+
--goal "Implement JWT token generation and validation" \
|
|
382
|
+
--implementation-steps "Review JWT spec,Implement token generation,Add validation middleware" \
|
|
383
|
+
--test-cases "Token generation works,Token validation works,Expired tokens rejected" \
|
|
384
|
+
--derivable-files "src/utils/jwt.ts,src/middleware/auth.ts" \
|
|
385
|
+
--library-needs "jsonwebtoken"
|
|
386
|
+
|
|
387
|
+
# Task with no new external libraries
|
|
388
|
+
mandor task create "Update Login Endpoint" \
|
|
389
|
+
--feature $AUTH_FEATURE_ID \
|
|
390
|
+
--goal "Refactor existing login endpoint" \
|
|
391
|
+
--implementation-steps "Review current endpoint,Refactor logic,Update tests" \
|
|
392
|
+
--test-cases "Endpoint returns correct status,Authentication works,Errors handled" \
|
|
393
|
+
--derivable-files "src/handlers/auth.ts" \
|
|
394
|
+
--library-needs "none"
|
|
395
|
+
|
|
396
|
+
mandor issue create "Fix security vulnerability" --project api \
|
|
397
|
+
--type security --goal "Fix JWT signing vulnerability" \
|
|
398
|
+
--affected-files "src/utils/jwt.ts" \
|
|
399
|
+
--affected-tests "src/utils/jwt.test.ts" \
|
|
400
|
+
--implementation-steps "Review JWT library,Update to secure version,Verify signature"
|
|
379
401
|
|
|
380
402
|
mandor status
|
|
381
403
|
```
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/mandor
ADDED
|
Binary file
|