@mandors/cli 0.3.0 → 0.3.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.
Files changed (190) hide show
  1. package/.mandor/projects/cancel-reopen/events.jsonl +18 -0
  2. package/.mandor/projects/cancel-reopen/features.jsonl +3 -0
  3. package/.mandor/projects/cancel-reopen/issues.jsonl +1 -0
  4. package/.mandor/projects/cancel-reopen/project.jsonl +11 -0
  5. package/.mandor/projects/cancel-reopen/tasks.jsonl +2 -0
  6. package/.mandor/projects/config-test/events.jsonl +4 -0
  7. package/.mandor/projects/config-test/features.jsonl +1 -0
  8. package/.mandor/projects/config-test/project.jsonl +11 -0
  9. package/.mandor/projects/config-test/schema.json +29 -0
  10. package/.mandor/projects/config-test/tasks.jsonl +1 -0
  11. package/.mandor/projects/cross-dep-1/events.jsonl +6 -0
  12. package/.mandor/projects/cross-dep-1/features.jsonl +1 -0
  13. package/.mandor/projects/cross-dep-1/issues.jsonl +0 -0
  14. package/.mandor/projects/cross-dep-1/project.jsonl +11 -0
  15. package/.mandor/projects/cross-dep-1/schema.json +29 -0
  16. package/.mandor/projects/cross-dep-1/tasks.jsonl +1 -0
  17. package/.mandor/projects/cross-dep-2/events.jsonl +5 -0
  18. package/.mandor/projects/cross-dep-2/features.jsonl +1 -0
  19. package/.mandor/projects/cross-dep-2/issues.jsonl +0 -0
  20. package/.mandor/projects/cross-dep-2/project.jsonl +11 -0
  21. package/.mandor/projects/cross-dep-2/schema.json +29 -0
  22. package/.mandor/projects/cross-dep-2/tasks.jsonl +1 -0
  23. package/.mandor/projects/cycle-test/events.jsonl +8 -0
  24. package/.mandor/projects/cycle-test/features.jsonl +1 -0
  25. package/.mandor/projects/cycle-test/issues.jsonl +0 -0
  26. package/.mandor/projects/cycle-test/project.jsonl +11 -0
  27. package/.mandor/projects/cycle-test/schema.json +29 -0
  28. package/.mandor/projects/cycle-test/tasks.jsonl +3 -0
  29. package/.mandor/projects/cycle-test-2/events.jsonl +4 -0
  30. package/.mandor/projects/cycle-test-2/features.jsonl +1 -0
  31. package/.mandor/projects/cycle-test-2/issues.jsonl +0 -0
  32. package/.mandor/projects/cycle-test-2/project.jsonl +11 -0
  33. package/.mandor/projects/cycle-test-2/schema.json +29 -0
  34. package/.mandor/projects/cycle-test-2/tasks.jsonl +1 -0
  35. package/.mandor/projects/deep-chain/events.jsonl +8 -0
  36. package/.mandor/projects/deep-chain/features.jsonl +1 -0
  37. package/.mandor/projects/deep-chain/issues.jsonl +0 -0
  38. package/.mandor/projects/deep-chain/project.jsonl +11 -0
  39. package/.mandor/projects/deep-chain/schema.json +29 -0
  40. package/.mandor/projects/deep-chain/tasks.jsonl +3 -0
  41. package/.mandor/projects/feature-chain/events.jsonl +12 -0
  42. package/.mandor/projects/feature-chain/features.jsonl +3 -0
  43. package/.mandor/projects/feature-chain/issues.jsonl +0 -0
  44. package/.mandor/projects/feature-chain/project.jsonl +11 -0
  45. package/.mandor/projects/feature-chain/schema.json +29 -0
  46. package/.mandor/projects/feature-chain/tasks.jsonl +1 -0
  47. package/.mandor/projects/feature-lock/events.jsonl +5 -0
  48. package/.mandor/projects/feature-lock/features.jsonl +1 -0
  49. package/.mandor/projects/feature-lock/issues.jsonl +0 -0
  50. package/.mandor/projects/feature-lock/project.jsonl +11 -0
  51. package/.mandor/projects/feature-lock/schema.json +29 -0
  52. package/.mandor/projects/feature-lock/tasks.jsonl +1 -0
  53. package/.mandor/projects/issue-state/events.jsonl +7 -0
  54. package/.mandor/projects/issue-state/features.jsonl +0 -0
  55. package/.mandor/projects/issue-state/issues.jsonl +2 -0
  56. package/.mandor/projects/issue-state/project.jsonl +11 -0
  57. package/.mandor/projects/issue-state/schema.json +29 -0
  58. package/.mandor/projects/issue-state/tasks.jsonl +0 -0
  59. package/.mandor/projects/issue-types/events.jsonl +19 -0
  60. package/.mandor/projects/issue-types/features.jsonl +0 -0
  61. package/.mandor/projects/issue-types/issues.jsonl +6 -0
  62. package/.mandor/projects/issue-types/project.jsonl +11 -0
  63. package/.mandor/projects/issue-types/schema.json +29 -0
  64. package/.mandor/projects/issue-types/tasks.jsonl +0 -0
  65. package/.mandor/projects/multi-chain-1/events.jsonl +6 -0
  66. package/.mandor/projects/multi-chain-1/features.jsonl +1 -0
  67. package/.mandor/projects/multi-chain-1/issues.jsonl +0 -0
  68. package/.mandor/projects/multi-chain-1/project.jsonl +11 -0
  69. package/.mandor/projects/multi-chain-1/schema.json +29 -0
  70. package/.mandor/projects/multi-chain-1/tasks.jsonl +1 -0
  71. package/.mandor/projects/multi-chain-2/events.jsonl +7 -0
  72. package/.mandor/projects/multi-chain-2/features.jsonl +1 -0
  73. package/.mandor/projects/multi-chain-2/issues.jsonl +0 -0
  74. package/.mandor/projects/multi-chain-2/project.jsonl +11 -0
  75. package/.mandor/projects/multi-chain-2/schema.json +29 -0
  76. package/.mandor/projects/multi-chain-2/tasks.jsonl +1 -0
  77. package/.mandor/projects/multi-chain-3/events.jsonl +7 -0
  78. package/.mandor/projects/multi-chain-3/features.jsonl +1 -0
  79. package/.mandor/projects/multi-chain-3/issues.jsonl +0 -0
  80. package/.mandor/projects/multi-chain-3/project.jsonl +11 -0
  81. package/.mandor/projects/multi-chain-3/schema.json +29 -0
  82. package/.mandor/projects/multi-chain-3/tasks.jsonl +1 -0
  83. package/.mandor/projects/priority-filter/events.jsonl +10 -0
  84. package/.mandor/projects/priority-filter/features.jsonl +1 -0
  85. package/.mandor/projects/priority-filter/issues.jsonl +0 -0
  86. package/.mandor/projects/priority-filter/project.jsonl +11 -0
  87. package/.mandor/projects/priority-filter/schema.json +29 -0
  88. package/.mandor/projects/priority-filter/tasks.jsonl +4 -0
  89. package/.mandor/projects/priority-test/events.jsonl +4 -0
  90. package/.mandor/projects/priority-test/features.jsonl +1 -0
  91. package/.mandor/projects/priority-test/issues.jsonl +0 -0
  92. package/.mandor/projects/priority-test/project.jsonl +11 -0
  93. package/.mandor/projects/priority-test/schema.json +29 -0
  94. package/.mandor/projects/priority-test/tasks.jsonl +1 -0
  95. package/.mandor/projects/same-only-1/events.jsonl +4 -0
  96. package/.mandor/projects/same-only-1/features.jsonl +1 -0
  97. package/.mandor/projects/same-only-1/issues.jsonl +0 -0
  98. package/.mandor/projects/same-only-1/project.jsonl +11 -0
  99. package/.mandor/projects/same-only-1/schema.json +29 -0
  100. package/.mandor/projects/same-only-1/tasks.jsonl +1 -0
  101. package/.mandor/projects/same-only-2/events.jsonl +2 -0
  102. package/.mandor/projects/same-only-2/features.jsonl +1 -0
  103. package/.mandor/projects/same-only-2/issues.jsonl +0 -0
  104. package/.mandor/projects/same-only-2/project.jsonl +11 -0
  105. package/.mandor/projects/same-only-2/schema.json +29 -0
  106. package/.mandor/projects/same-only-2/tasks.jsonl +0 -0
  107. package/.mandor/projects/scope-constraint/events.jsonl +4 -0
  108. package/.mandor/projects/scope-constraint/features.jsonl +3 -0
  109. package/.mandor/projects/scope-constraint/issues.jsonl +0 -0
  110. package/.mandor/projects/scope-constraint/project.jsonl +11 -0
  111. package/.mandor/projects/scope-constraint/schema.json +29 -0
  112. package/.mandor/projects/scope-constraint/tasks.jsonl +0 -0
  113. package/.mandor/projects/scope-test/events.jsonl +2 -0
  114. package/.mandor/projects/scope-test/features.jsonl +1 -0
  115. package/.mandor/projects/scope-test/issues.jsonl +0 -0
  116. package/.mandor/projects/scope-test/project.jsonl +11 -0
  117. package/.mandor/projects/scope-test/schema.json +29 -0
  118. package/.mandor/projects/scope-test/tasks.jsonl +0 -0
  119. package/.mandor/projects/soft-delete-test/events.jsonl +14 -0
  120. package/.mandor/projects/soft-delete-test/features.jsonl +2 -0
  121. package/.mandor/projects/soft-delete-test/issues.jsonl +0 -0
  122. package/.mandor/projects/soft-delete-test/project.jsonl +11 -0
  123. package/.mandor/projects/soft-delete-test/schema.json +29 -0
  124. package/.mandor/projects/soft-delete-test/tasks.jsonl +4 -0
  125. package/.mandor/projects/status-flow/events.jsonl +29 -0
  126. package/.mandor/projects/status-flow/features.jsonl +3 -0
  127. package/.mandor/projects/status-flow/issues.jsonl +1 -0
  128. package/.mandor/projects/status-flow/project.jsonl +11 -0
  129. package/.mandor/projects/status-flow/schema.json +29 -0
  130. package/.mandor/projects/status-flow/tasks.jsonl +5 -0
  131. package/.mandor/projects/task-field-test/events.jsonl +8 -0
  132. package/.mandor/projects/task-field-test/features.jsonl +1 -0
  133. package/.mandor/projects/task-field-test/issues.jsonl +0 -0
  134. package/.mandor/projects/task-field-test/project.jsonl +11 -0
  135. package/.mandor/projects/task-field-test/schema.json +29 -0
  136. package/.mandor/projects/task-field-test/tasks.jsonl +3 -0
  137. package/.mandor/projects/test-diamond/events.jsonl +21 -0
  138. package/.mandor/projects/test-diamond/features.jsonl +1 -0
  139. package/.mandor/projects/test-diamond/issues.jsonl +0 -0
  140. package/.mandor/projects/test-diamond/project.jsonl +11 -0
  141. package/.mandor/projects/test-diamond/schema.json +29 -0
  142. package/.mandor/projects/test-diamond/tasks.jsonl +4 -0
  143. package/.mandor/projects/test-fanin/events.jsonl +17 -0
  144. package/.mandor/projects/test-fanin/features.jsonl +1 -0
  145. package/.mandor/projects/test-fanin/issues.jsonl +0 -0
  146. package/.mandor/projects/test-fanin/project.jsonl +11 -0
  147. package/.mandor/projects/test-fanin/schema.json +29 -0
  148. package/.mandor/projects/test-fanin/tasks.jsonl +4 -0
  149. package/.mandor/projects/test-fanout/events.jsonl +18 -0
  150. package/.mandor/projects/test-fanout/features.jsonl +1 -0
  151. package/.mandor/projects/test-fanout/issues.jsonl +0 -0
  152. package/.mandor/projects/test-fanout/project.jsonl +11 -0
  153. package/.mandor/projects/test-fanout/schema.json +29 -0
  154. package/.mandor/projects/test-fanout/tasks.jsonl +5 -0
  155. package/.mandor/projects/test-linear/events.jsonl +21 -0
  156. package/.mandor/projects/test-linear/features.jsonl +1 -0
  157. package/.mandor/projects/test-linear/issues.jsonl +0 -0
  158. package/.mandor/projects/test-linear/project.jsonl +11 -0
  159. package/.mandor/projects/test-linear/schema.json +29 -0
  160. package/.mandor/projects/test-linear/tasks.jsonl +4 -0
  161. package/.mandor/workspace.json +6 -6
  162. package/README.md +591 -267
  163. package/binaries/darwin-arm64/mandor +0 -0
  164. package/binaries/darwin-arm64.tar.gz +0 -0
  165. package/{mandor → binaries/darwin-x64/mandor} +0 -0
  166. package/binaries/darwin-x64.tar.gz +0 -0
  167. package/binaries/linux-arm64/mandor +0 -0
  168. package/binaries/linux-arm64.tar.gz +0 -0
  169. package/binaries/linux-x64/mandor +0 -0
  170. package/binaries/linux-x64.tar.gz +0 -0
  171. package/binaries/mandor +0 -0
  172. package/binaries/win32-arm64/mandor.exe +0 -0
  173. package/binaries/win32-arm64.tar.gz +0 -0
  174. package/binaries/win32-x64/mandor.exe +0 -0
  175. package/binaries/win32-x64.tar.gz +0 -0
  176. package/package.json +1 -1
  177. package/testscen11/.mandor/projects/proj11/events.jsonl +38 -0
  178. package/testscen11/.mandor/projects/proj11/features.jsonl +3 -0
  179. package/testscen11/.mandor/projects/proj11/issues.jsonl +1 -0
  180. package/testscen11/.mandor/projects/proj11/project.jsonl +11 -0
  181. package/testscen11/.mandor/projects/proj11/schema.json +29 -0
  182. package/testscen11/.mandor/projects/proj11/tasks.jsonl +6 -0
  183. package/testscen11/.mandor/workspace.json +13 -0
  184. package/testscen12/.mandor/workspace.json +13 -0
  185. package/.mandor/projects/api/events.jsonl +0 -9
  186. package/.mandor/projects/api/features.jsonl +0 -1
  187. package/.mandor/projects/api/project.jsonl +0 -11
  188. package/.mandor/projects/api/tasks.jsonl +0 -2
  189. /package/.mandor/projects/{api → cancel-reopen}/schema.json +0 -0
  190. /package/.mandor/projects/{api → config-test}/issues.jsonl +0 -0
@@ -0,0 +1,18 @@
1
+ {"layer":"project","type":"created","id":"cancel-reopen","by":"BUDISANTOSO","ts":"2026-02-01T06:18:58.476029Z"}
2
+ {"layer":"feature","type":"created","id":"cancel-reopen-feature-9Bap","by":"BUDISANTOSO","ts":"2026-02-01T06:19:05.501014Z"}
3
+ {"layer":"task","type":"created","id":"cancel-reopen-feature-9Bap-task-SpQf","by":"BUDISANTOSO","ts":"2026-02-01T06:19:16.471629Z"}
4
+ {"layer":"task","type":"ready","id":"cancel-reopen-feature-9Bap-task-SpQf","by":"system","ts":"2026-02-01T06:19:16.471629Z"}
5
+ {"layer":"task","type":"updated","id":"cancel-reopen-feature-9Bap-task-SpQf","by":"BUDISANTOSO","ts":"2026-02-01T06:19:22.287782Z","changes":["status","reason"]}
6
+ {"layer":"task","type":"updated","id":"cancel-reopen-feature-9Bap-task-SpQf","by":"BUDISANTOSO","ts":"2026-02-01T06:19:52.920282Z","changes":["status","reason"]}
7
+ {"layer":"feature","type":"created","id":"cancel-reopen-feature-ULuX","by":"BUDISANTOSO","ts":"2026-02-01T06:20:39.433895Z"}
8
+ {"layer":"feature","type":"updated","id":"cancel-reopen-feature-9Bap","by":"BUDISANTOSO","ts":"2026-02-01T06:20:39.458043Z","changes":["status","reason"]}
9
+ {"layer":"feature","type":"updated","id":"cancel-reopen-feature-9Bap","by":"BUDISANTOSO","ts":"2026-02-01T06:20:50.402674Z","changes":["status","reason"]}
10
+ {"layer":"issue","type":"created","id":"cancel-reopen-issue-3hsI","by":"BUDISANTOSO","ts":"2026-02-01T06:21:30.165719Z"}
11
+ {"layer":"issue","type":"ready","id":"cancel-reopen-issue-3hsI","by":"system","ts":"2026-02-01T06:21:30.165719Z"}
12
+ {"layer":"issue","type":"updated","id":"cancel-reopen-issue-3hsI","by":"BUDISANTOSO","ts":"2026-02-01T06:21:46.34384Z","changes":["status","reason"]}
13
+ {"layer":"issue","type":"updated","id":"cancel-reopen-issue-3hsI","by":"BUDISANTOSO","ts":"2026-02-01T06:21:52.591014Z","changes":["status","reason"]}
14
+ {"layer":"feature","type":"created","id":"cancel-reopen-feature-EQdV","by":"BUDISANTOSO","ts":"2026-02-01T06:22:21.064924Z"}
15
+ {"layer":"feature","type":"updated","id":"cancel-reopen-feature-ULuX","by":"BUDISANTOSO","ts":"2026-02-01T06:22:21.088657Z","changes":["status","reason"]}
16
+ {"layer":"feature","type":"updated","id":"cancel-reopen-feature-ULuX","by":"BUDISANTOSO","ts":"2026-02-01T06:23:04.239506Z","changes":["status","reason"]}
17
+ {"layer":"task","type":"created","id":"cancel-reopen-feature-ULuX-task-UKsr","by":"BUDISANTOSO","ts":"2026-02-01T06:23:10.206644Z"}
18
+ {"layer":"task","type":"ready","id":"cancel-reopen-feature-ULuX-task-UKsr","by":"system","ts":"2026-02-01T06:23:10.206644Z"}
@@ -0,0 +1,3 @@
1
+ {"id":"cancel-reopen-feature-9Bap","project_id":"cancel-reopen","name":"Feature-cancel","goal":"Feature for cancel test","priority":"P3","status":"draft","created_at":"2026-02-01T06:19:05.501014Z","updated_at":"2026-02-01T06:20:50.402674Z","created_by":"BUDISANTOSO","updated_by":"BUDISANTOSO"}
2
+ {"id":"cancel-reopen-feature-EQdV","project_id":"cancel-reopen","name":"F2","goal":"Feature to test task blocking","priority":"P3","status":"draft","created_at":"2026-02-01T06:22:21.064924Z","updated_at":"2026-02-01T06:22:21.064924Z","created_by":"BUDISANTOSO","updated_by":"BUDISANTOSO"}
3
+ {"id":"cancel-reopen-feature-ULuX","project_id":"cancel-reopen","name":"F1","goal":"Feature to cancel and reopen","priority":"P3","status":"draft","created_at":"2026-02-01T06:20:39.433895Z","updated_at":"2026-02-01T06:23:04.239506Z","created_by":"BUDISANTOSO","updated_by":"BUDISANTOSO"}
@@ -0,0 +1 @@
1
+ {"id":"cancel-reopen-issue-3hsI","project_id":"cancel-reopen","name":"I1","goal":"Issue to cancel and reopen. Problem: None. Impact: None. Acceptance: None.","issue_type":"bug","priority":"P3","status":"ready","affected_files":["file.js"],"affected_tests":["test.js"],"implementation_steps":["step1"],"created_at":"2026-02-01T06:21:30.165719Z","last_updated_at":"2026-02-01T06:21:52.591014Z","created_by":"BUDISANTOSO","last_updated_by":"BUDISANTOSO"}
@@ -0,0 +1,11 @@
1
+ {
2
+ "id": "cancel-reopen",
3
+ "name": "Cancel Reopen Test",
4
+ "goal": "Testing cancel and reopen workflows",
5
+ "status": "initial",
6
+ "strict": false,
7
+ "created_at": "2026-02-01T06:18:58.476029Z",
8
+ "updated_at": "2026-02-01T06:18:58.476029Z",
9
+ "created_by": "BUDISANTOSO",
10
+ "updated_by": "BUDISANTOSO"
11
+ }
@@ -0,0 +1,2 @@
1
+ {"id":"cancel-reopen-feature-9Bap-task-SpQf","feature_id":"cancel-reopen-feature-9Bap","project_id":"cancel-reopen","name":"T1","goal":"Task to cancel and reopen","priority":"P3","status":"ready","implementation_steps":["none"],"test_cases":["none"],"derivable_files":["none"],"library_needs":["none"],"created_at":"2026-02-01T06:19:16.471629Z","updated_at":"2026-02-01T06:19:52.920282Z","created_by":"BUDISANTOSO","updated_by":"BUDISANTOSO"}
2
+ {"id":"cancel-reopen-feature-ULuX-task-UKsr","feature_id":"cancel-reopen-feature-ULuX","project_id":"cancel-reopen","name":"T2","goal":"Task in reopened feature","priority":"P3","status":"ready","implementation_steps":["none"],"test_cases":["none"],"derivable_files":["none"],"library_needs":["none"],"created_at":"2026-02-01T06:23:10.206644Z","updated_at":"2026-02-01T06:23:10.206644Z","created_by":"BUDISANTOSO","updated_by":"BUDISANTOSO"}
@@ -0,0 +1,4 @@
1
+ {"layer":"project","type":"created","id":"config-test","by":"BUDISANTOSO","ts":"2026-02-01T06:33:33.983943Z"}
2
+ {"layer":"feature","type":"created","id":"config-test-feature-ge8m","by":"BUDISANTOSO","ts":"2026-02-01T06:33:33.998684Z"}
3
+ {"layer":"task","type":"created","id":"config-test-feature-ge8m-task-qkIx","by":"BUDISANTOSO","ts":"2026-02-01T06:33:41.142682Z"}
4
+ {"layer":"task","type":"ready","id":"config-test-feature-ge8m-task-qkIx","by":"system","ts":"2026-02-01T06:33:41.142682Z"}
@@ -0,0 +1 @@
1
+ {"id":"config-test-feature-ge8m","project_id":"config-test","name":"F-config","goal":"Feature for config test","priority":"P1","status":"draft","created_at":"2026-02-01T06:33:33.998684Z","updated_at":"2026-02-01T06:33:33.998684Z","created_by":"BUDISANTOSO","updated_by":"BUDISANTOSO"}
@@ -0,0 +1,11 @@
1
+ {
2
+ "id": "config-test",
3
+ "name": "Config Test",
4
+ "goal": "Testing config behavior",
5
+ "status": "initial",
6
+ "strict": false,
7
+ "created_at": "2026-02-01T06:33:33.983943Z",
8
+ "updated_at": "2026-02-01T06:33:33.983943Z",
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 @@
1
+ {"id":"config-test-feature-ge8m-task-qkIx","feature_id":"config-test-feature-ge8m","project_id":"config-test","name":"T-config","goal":"Task for config test","priority":"P1","status":"ready","implementation_steps":["none"],"test_cases":["none"],"derivable_files":["none"],"library_needs":["none"],"created_at":"2026-02-01T06:33:41.142682Z","updated_at":"2026-02-01T06:33:41.142682Z","created_by":"BUDISANTOSO","updated_by":"BUDISANTOSO"}
@@ -0,0 +1,6 @@
1
+ {"layer":"project","type":"created","id":"cross-dep-1","by":"BUDISANTOSO","ts":"2026-02-01T06:02:24.621538Z"}
2
+ {"layer":"feature","type":"created","id":"cross-dep-1-feature-djVD","by":"BUDISANTOSO","ts":"2026-02-01T06:02:40.278804Z"}
3
+ {"layer":"task","type":"created","id":"cross-dep-1-feature-djVD-task-shds","by":"BUDISANTOSO","ts":"2026-02-01T06:02:47.539145Z"}
4
+ {"layer":"task","type":"ready","id":"cross-dep-1-feature-djVD-task-shds","by":"system","ts":"2026-02-01T06:02:47.539145Z"}
5
+ {"layer":"task","type":"updated","id":"cross-dep-1-feature-djVD-task-shds","by":"BUDISANTOSO","ts":"2026-02-01T06:03:09.603528Z","changes":["status"]}
6
+ {"layer":"task","type":"updated","id":"cross-dep-1-feature-djVD-task-shds","by":"BUDISANTOSO","ts":"2026-02-01T06:03:09.628328Z","changes":["status","dependent_unblocked"]}
@@ -0,0 +1 @@
1
+ {"id":"cross-dep-1-feature-djVD","project_id":"cross-dep-1","name":"f1","goal":"Feature in project 1","priority":"P3","status":"draft","created_at":"2026-02-01T06:02:40.278804Z","updated_at":"2026-02-01T06:02:40.278804Z","created_by":"BUDISANTOSO","updated_by":"BUDISANTOSO"}
File without changes
@@ -0,0 +1,11 @@
1
+ {
2
+ "id": "cross-dep-1",
3
+ "name": "Cross Dep 1",
4
+ "goal": "First project for cross-project dependency test",
5
+ "status": "initial",
6
+ "strict": false,
7
+ "created_at": "2026-02-01T06:02:24.621538Z",
8
+ "updated_at": "2026-02-01T06:02:24.621538Z",
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 @@
1
+ {"id":"cross-dep-1-feature-djVD-task-shds","feature_id":"cross-dep-1-feature-djVD","project_id":"cross-dep-1","name":"T1","goal":"Task in project 1","priority":"P3","status":"done","implementation_steps":["none"],"test_cases":["none"],"derivable_files":["none"],"library_needs":["none"],"created_at":"2026-02-01T06:02:47.539145Z","updated_at":"2026-02-01T06:03:09.628328Z","created_by":"BUDISANTOSO","updated_by":"BUDISANTOSO"}
@@ -0,0 +1,5 @@
1
+ {"layer":"project","type":"created","id":"cross-dep-2","by":"BUDISANTOSO","ts":"2026-02-01T06:02:35.153298Z"}
2
+ {"layer":"feature","type":"created","id":"cross-dep-2-feature-DJAM","by":"BUDISANTOSO","ts":"2026-02-01T06:02:52.886176Z"}
3
+ {"layer":"task","type":"created","id":"cross-dep-2-feature-DJAM-task-XxbV","by":"BUDISANTOSO","ts":"2026-02-01T06:02:59.075906Z"}
4
+ {"layer":"task","type":"blocked","id":"cross-dep-2-feature-DJAM-task-XxbV","by":"system","ts":"2026-02-01T06:02:59.075906Z"}
5
+ {"layer":"task","type":"ready","id":"cross-dep-2-feature-DJAM-task-XxbV","by":"system","ts":"2026-02-01T06:03:09.628533Z"}
@@ -0,0 +1 @@
1
+ {"id":"cross-dep-2-feature-DJAM","project_id":"cross-dep-2","name":"f2","goal":"Feature in project 2","priority":"P3","status":"draft","created_at":"2026-02-01T06:02:52.886176Z","updated_at":"2026-02-01T06:02:52.886176Z","created_by":"BUDISANTOSO","updated_by":"BUDISANTOSO"}
File without changes
@@ -0,0 +1,11 @@
1
+ {
2
+ "id": "cross-dep-2",
3
+ "name": "Cross Dep 2",
4
+ "goal": "Second project for cross-project dependency test",
5
+ "status": "initial",
6
+ "strict": false,
7
+ "created_at": "2026-02-01T06:02:35.153298Z",
8
+ "updated_at": "2026-02-01T06:02:35.153298Z",
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": "cross_project_allowed",
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 @@
1
+ {"id":"cross-dep-2-feature-DJAM-task-XxbV","feature_id":"cross-dep-2-feature-DJAM","project_id":"cross-dep-2","name":"T2","goal":"Task in project 2 depends on T1","priority":"P3","status":"ready","depends_on":["cross-dep-1-feature-djVD-task-shds"],"implementation_steps":["none"],"test_cases":["none"],"derivable_files":["none"],"library_needs":["none"],"created_at":"2026-02-01T06:02:59.075906Z","updated_at":"2026-02-01T06:03:09.628533Z","created_by":"BUDISANTOSO","updated_by":"BUDISANTOSO"}
@@ -0,0 +1,8 @@
1
+ {"layer":"project","type":"created","id":"cycle-test","by":"BUDISANTOSO","ts":"2026-02-01T06:27:23.737011Z"}
2
+ {"layer":"feature","type":"created","id":"cycle-test-feature-q2vK","by":"BUDISANTOSO","ts":"2026-02-01T06:27:30.203712Z"}
3
+ {"layer":"task","type":"created","id":"cycle-test-feature-q2vK-task-oqen","by":"BUDISANTOSO","ts":"2026-02-01T06:27:36.627825Z"}
4
+ {"layer":"task","type":"ready","id":"cycle-test-feature-q2vK-task-oqen","by":"system","ts":"2026-02-01T06:27:36.627825Z"}
5
+ {"layer":"task","type":"created","id":"cycle-test-feature-q2vK-task-cxEd","by":"BUDISANTOSO","ts":"2026-02-01T06:28:19.420861Z"}
6
+ {"layer":"task","type":"blocked","id":"cycle-test-feature-q2vK-task-cxEd","by":"system","ts":"2026-02-01T06:28:19.420861Z"}
7
+ {"layer":"task","type":"created","id":"cycle-test-feature-q2vK-task-t02s","by":"BUDISANTOSO","ts":"2026-02-01T06:28:43.827689Z"}
8
+ {"layer":"task","type":"blocked","id":"cycle-test-feature-q2vK-task-t02s","by":"system","ts":"2026-02-01T06:28:43.827689Z"}
@@ -0,0 +1 @@
1
+ {"id":"cycle-test-feature-q2vK","project_id":"cycle-test","name":"F-cycle","goal":"Feature for cycle test","priority":"P3","status":"draft","created_at":"2026-02-01T06:27:30.203712Z","updated_at":"2026-02-01T06:27:30.203712Z","created_by":"BUDISANTOSO","updated_by":"BUDISANTOSO"}
File without changes
@@ -0,0 +1,11 @@
1
+ {
2
+ "id": "cycle-test",
3
+ "name": "Cycle Test",
4
+ "goal": "Testing circular dependency prevention",
5
+ "status": "initial",
6
+ "strict": false,
7
+ "created_at": "2026-02-01T06:27:23.737011Z",
8
+ "updated_at": "2026-02-01T06:27:23.737011Z",
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,3 @@
1
+ {"id":"cycle-test-feature-q2vK-task-oqen","feature_id":"cycle-test-feature-q2vK","project_id":"cycle-test","name":"T1","goal":"Task 1","priority":"P3","status":"ready","implementation_steps":["none"],"test_cases":["none"],"derivable_files":["none"],"library_needs":["none"],"created_at":"2026-02-01T06:27:36.627825Z","updated_at":"2026-02-01T06:27:36.627825Z","created_by":"BUDISANTOSO","updated_by":"BUDISANTOSO"}
2
+ {"id":"cycle-test-feature-q2vK-task-cxEd","feature_id":"cycle-test-feature-q2vK","project_id":"cycle-test","name":"T2","goal":"Task 2","priority":"P3","status":"blocked","depends_on":["cycle-test-feature-q2vK-task-oqen"],"implementation_steps":["none"],"test_cases":["none"],"derivable_files":["none"],"library_needs":["none"],"created_at":"2026-02-01T06:28:19.420861Z","updated_at":"2026-02-01T06:28:19.420861Z","created_by":"BUDISANTOSO","updated_by":"BUDISANTOSO"}
3
+ {"id":"cycle-test-feature-q2vK-task-t02s","feature_id":"cycle-test-feature-q2vK","project_id":"cycle-test","name":"T3","goal":"Task 3","priority":"P3","status":"blocked","depends_on":["cycle-test-feature-q2vK-task-cxEd"],"implementation_steps":["none"],"test_cases":["none"],"derivable_files":["none"],"library_needs":["none"],"created_at":"2026-02-01T06:28:43.827689Z","updated_at":"2026-02-01T06:28:43.827689Z","created_by":"BUDISANTOSO","updated_by":"BUDISANTOSO"}
@@ -0,0 +1,4 @@
1
+ {"layer":"project","type":"created","id":"cycle-test-2","by":"BUDISANTOSO","ts":"2026-02-01T06:29:09.602932Z"}
2
+ {"layer":"feature","type":"created","id":"cycle-test-2-feature-GypP","by":"BUDISANTOSO","ts":"2026-02-01T06:29:16.447605Z"}
3
+ {"layer":"task","type":"created","id":"cycle-test-2-feature-GypP-task-ujzL","by":"BUDISANTOSO","ts":"2026-02-01T06:29:23.665401Z"}
4
+ {"layer":"task","type":"blocked","id":"cycle-test-2-feature-GypP-task-ujzL","by":"system","ts":"2026-02-01T06:29:23.665401Z"}
@@ -0,0 +1 @@
1
+ {"id":"cycle-test-2-feature-GypP","project_id":"cycle-test-2","name":"F2","goal":"Feature in project 2","priority":"P3","status":"draft","created_at":"2026-02-01T06:29:16.447605Z","updated_at":"2026-02-01T06:29:16.447605Z","created_by":"BUDISANTOSO","updated_by":"BUDISANTOSO"}
File without changes
@@ -0,0 +1,11 @@
1
+ {
2
+ "id": "cycle-test-2",
3
+ "name": "Cycle Test 2",
4
+ "goal": "Testing cross-project cycle",
5
+ "status": "initial",
6
+ "strict": false,
7
+ "created_at": "2026-02-01T06:29:09.602932Z",
8
+ "updated_at": "2026-02-01T06:29:09.602932Z",
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": "cross_project_allowed",
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 @@
1
+ {"id":"cycle-test-2-feature-GypP-task-ujzL","feature_id":"cycle-test-2-feature-GypP","project_id":"cycle-test-2","name":"T4","goal":"Task 4","priority":"P3","status":"blocked","depends_on":["cycle-test-feature-q2vK-task-oqen"],"implementation_steps":["none"],"test_cases":["none"],"derivable_files":["none"],"library_needs":["none"],"created_at":"2026-02-01T06:29:23.665401Z","updated_at":"2026-02-01T06:29:23.665401Z","created_by":"BUDISANTOSO","updated_by":"BUDISANTOSO"}
@@ -0,0 +1,8 @@
1
+ {"layer":"project","type":"created","id":"deep-chain","by":"BUDISANTOSO","ts":"2026-02-01T06:34:31.927977Z"}
2
+ {"layer":"feature","type":"created","id":"deep-chain-feature-wWVS","by":"BUDISANTOSO","ts":"2026-02-01T06:34:31.943671Z"}
3
+ {"layer":"task","type":"created","id":"deep-chain-feature-wWVS-task-pcKP","by":"BUDISANTOSO","ts":"2026-02-01T06:34:45.731891Z"}
4
+ {"layer":"task","type":"ready","id":"deep-chain-feature-wWVS-task-pcKP","by":"system","ts":"2026-02-01T06:34:45.731891Z"}
5
+ {"layer":"task","type":"created","id":"deep-chain-feature-wWVS-task-k3b2","by":"BUDISANTOSO","ts":"2026-02-01T06:34:57.698128Z"}
6
+ {"layer":"task","type":"blocked","id":"deep-chain-feature-wWVS-task-k3b2","by":"system","ts":"2026-02-01T06:34:57.698128Z"}
7
+ {"layer":"task","type":"created","id":"deep-chain-feature-wWVS-task-1fss","by":"BUDISANTOSO","ts":"2026-02-01T06:35:15.606288Z"}
8
+ {"layer":"task","type":"blocked","id":"deep-chain-feature-wWVS-task-1fss","by":"system","ts":"2026-02-01T06:35:15.606288Z"}
@@ -0,0 +1 @@
1
+ {"id":"deep-chain-feature-wWVS","project_id":"deep-chain","name":"F-deep","goal":"Feature for deep chain","priority":"P1","status":"draft","created_at":"2026-02-01T06:34:31.943671Z","updated_at":"2026-02-01T06:34:31.943671Z","created_by":"BUDISANTOSO","updated_by":"BUDISANTOSO"}
File without changes
@@ -0,0 +1,11 @@
1
+ {
2
+ "id": "deep-chain",
3
+ "name": "Deep Chain",
4
+ "goal": "Testing deep chains",
5
+ "status": "initial",
6
+ "strict": false,
7
+ "created_at": "2026-02-01T06:34:31.927977Z",
8
+ "updated_at": "2026-02-01T06:34:31.927977Z",
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,3 @@
1
+ {"id":"deep-chain-feature-wWVS-task-pcKP","feature_id":"deep-chain-feature-wWVS","project_id":"deep-chain","name":"T1","goal":"Task 1","priority":"P1","status":"ready","implementation_steps":["none"],"test_cases":["none"],"derivable_files":["none"],"library_needs":["none"],"created_at":"2026-02-01T06:34:45.731891Z","updated_at":"2026-02-01T06:34:45.731891Z","created_by":"BUDISANTOSO","updated_by":"BUDISANTOSO"}
2
+ {"id":"deep-chain-feature-wWVS-task-k3b2","feature_id":"deep-chain-feature-wWVS","project_id":"deep-chain","name":"T2","goal":"Task 2","priority":"P1","status":"blocked","depends_on":["deep-chain-feature-wWVS-task-pcKP"],"implementation_steps":["none"],"test_cases":["none"],"derivable_files":["none"],"library_needs":["none"],"created_at":"2026-02-01T06:34:57.698128Z","updated_at":"2026-02-01T06:34:57.698128Z","created_by":"BUDISANTOSO","updated_by":"BUDISANTOSO"}
3
+ {"id":"deep-chain-feature-wWVS-task-1fss","feature_id":"deep-chain-feature-wWVS","project_id":"deep-chain","name":"T3","goal":"Task 3","priority":"P1","status":"blocked","depends_on":["deep-chain-feature-wWVS-task-k3b2"],"implementation_steps":["none"],"test_cases":["none"],"derivable_files":["none"],"library_needs":["none"],"created_at":"2026-02-01T06:35:15.606288Z","updated_at":"2026-02-01T06:35:15.606288Z","created_by":"BUDISANTOSO","updated_by":"BUDISANTOSO"}
@@ -0,0 +1,12 @@
1
+ {"layer":"project","type":"created","id":"feature-chain","by":"BUDISANTOSO","ts":"2026-02-01T06:07:40.486084Z"}
2
+ {"layer":"feature","type":"created","id":"feature-chain-feature-YG76","by":"BUDISANTOSO","ts":"2026-02-01T06:07:45.941435Z"}
3
+ {"layer":"feature","type":"created","id":"feature-chain-feature-17va","by":"BUDISANTOSO","ts":"2026-02-01T06:07:51.844548Z"}
4
+ {"layer":"feature","type":"created","id":"feature-chain-feature-QTrQ","by":"BUDISANTOSO","ts":"2026-02-01T06:07:57.214925Z"}
5
+ {"layer":"feature","type":"updated","id":"feature-chain-feature-YG76","by":"BUDISANTOSO","ts":"2026-02-01T06:08:14.053791Z","changes":["status"]}
6
+ {"layer":"feature","type":"updated","id":"feature-chain-feature-YG76","by":"BUDISANTOSO","ts":"2026-02-01T06:08:14.076903Z","changes":["status"]}
7
+ {"layer":"feature","type":"unblocked","id":"feature-chain-feature-17va","by":"system","ts":"2026-02-01T06:08:14.077156Z"}
8
+ {"layer":"task","type":"created","id":"feature-chain-feature-17va-task-L6MT","by":"BUDISANTOSO","ts":"2026-02-01T06:08:24.544458Z"}
9
+ {"layer":"task","type":"ready","id":"feature-chain-feature-17va-task-L6MT","by":"system","ts":"2026-02-01T06:08:24.544458Z"}
10
+ {"layer":"feature","type":"updated","id":"feature-chain-feature-17va","by":"BUDISANTOSO","ts":"2026-02-01T06:08:30.183256Z","changes":["status"]}
11
+ {"layer":"feature","type":"updated","id":"feature-chain-feature-17va","by":"BUDISANTOSO","ts":"2026-02-01T06:08:30.207921Z","changes":["status"]}
12
+ {"layer":"feature","type":"unblocked","id":"feature-chain-feature-QTrQ","by":"system","ts":"2026-02-01T06:08:30.208169Z"}
@@ -0,0 +1,3 @@
1
+ {"id":"feature-chain-feature-QTrQ","project_id":"feature-chain","name":"F3","goal":"Feature 3 (depends on F2)","priority":"P3","status":"draft","depends_on":["feature-chain-feature-17va"],"created_at":"2026-02-01T06:07:57.214925Z","updated_at":"2026-02-01T06:08:30.208169Z","created_by":"BUDISANTOSO","updated_by":"BUDISANTOSO"}
2
+ {"id":"feature-chain-feature-YG76","project_id":"feature-chain","name":"F1","goal":"Feature 1 (no deps)","priority":"P3","status":"done","created_at":"2026-02-01T06:07:45.941435Z","updated_at":"2026-02-01T06:08:14.076903Z","created_by":"BUDISANTOSO","updated_by":"BUDISANTOSO"}
3
+ {"id":"feature-chain-feature-17va","project_id":"feature-chain","name":"F2","goal":"Feature 2 (depends on F1)","priority":"P3","status":"done","depends_on":["feature-chain-feature-YG76"],"created_at":"2026-02-01T06:07:51.844548Z","updated_at":"2026-02-01T06:08:30.207921Z","created_by":"BUDISANTOSO","updated_by":"BUDISANTOSO"}
File without changes
@@ -0,0 +1,11 @@
1
+ {
2
+ "id": "feature-chain",
3
+ "name": "Feature Chain",
4
+ "goal": "Testing feature dependency chain",
5
+ "status": "initial",
6
+ "strict": false,
7
+ "created_at": "2026-02-01T06:07:40.486084Z",
8
+ "updated_at": "2026-02-01T06:07:40.486084Z",
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 @@
1
+ {"id":"feature-chain-feature-17va-task-L6MT","feature_id":"feature-chain-feature-17va","project_id":"feature-chain","name":"Task in F2","goal":"Task in unblocked feature","priority":"P3","status":"ready","implementation_steps":["none"],"test_cases":["none"],"derivable_files":["none"],"library_needs":["none"],"created_at":"2026-02-01T06:08:24.544458Z","updated_at":"2026-02-01T06:08:24.544458Z","created_by":"BUDISANTOSO","updated_by":"BUDISANTOSO"}
@@ -0,0 +1,5 @@
1
+ {"layer":"project","type":"created","id":"feature-lock","by":"BUDISANTOSO","ts":"2026-02-01T06:06:38.662462Z"}
2
+ {"layer":"feature","type":"created","id":"feature-lock-feature-eZ4w","by":"BUDISANTOSO","ts":"2026-02-01T06:06:43.877053Z"}
3
+ {"layer":"task","type":"created","id":"feature-lock-feature-eZ4w-task-b23t","by":"BUDISANTOSO","ts":"2026-02-01T06:06:53.065836Z"}
4
+ {"layer":"task","type":"ready","id":"feature-lock-feature-eZ4w-task-b23t","by":"system","ts":"2026-02-01T06:06:53.065836Z"}
5
+ {"layer":"feature","type":"updated","id":"feature-lock-feature-eZ4w","by":"BUDISANTOSO","ts":"2026-02-01T06:07:07.701377Z","changes":["status","reason"]}
@@ -0,0 +1 @@
1
+ {"id":"feature-lock-feature-eZ4w","project_id":"feature-lock","name":"f1","goal":"Feature to test task blocking","priority":"P3","status":"cancelled","reason":"Testing task blocking","created_at":"2026-02-01T06:06:43.877053Z","updated_at":"2026-02-01T06:07:07.701377Z","created_by":"BUDISANTOSO","updated_by":"BUDISANTOSO"}
File without changes
@@ -0,0 +1,11 @@
1
+ {
2
+ "id": "feature-lock",
3
+ "name": "Feature Lock",
4
+ "goal": "Testing feature status blocks task creation",
5
+ "status": "initial",
6
+ "strict": false,
7
+ "created_at": "2026-02-01T06:06:38.662462Z",
8
+ "updated_at": "2026-02-01T06:06:38.662462Z",
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 @@
1
+ {"id":"feature-lock-feature-eZ4w-task-b23t","feature_id":"feature-lock-feature-eZ4w","project_id":"feature-lock","name":"T1","goal":"Task in draft feature","priority":"P3","status":"ready","implementation_steps":["none"],"test_cases":["none"],"derivable_files":["none"],"library_needs":["none"],"created_at":"2026-02-01T06:06:53.065836Z","updated_at":"2026-02-01T06:06:53.065836Z","created_by":"BUDISANTOSO","updated_by":"BUDISANTOSO"}
@@ -0,0 +1,7 @@
1
+ {"layer":"project","type":"created","id":"issue-state","by":"BUDISANTOSO","ts":"2026-02-01T06:09:16.32913Z"}
2
+ {"layer":"issue","type":"created","id":"issue-state-issue-ay4p","by":"BUDISANTOSO","ts":"2026-02-01T06:09:27.593796Z"}
3
+ {"layer":"issue","type":"ready","id":"issue-state-issue-ay4p","by":"system","ts":"2026-02-01T06:09:27.593796Z"}
4
+ {"layer":"issue","type":"created","id":"issue-state-issue-FBYu","by":"BUDISANTOSO","ts":"2026-02-01T06:09:33.009864Z"}
5
+ {"layer":"issue","type":"blocked","id":"issue-state-issue-FBYu","by":"system","ts":"2026-02-01T06:09:33.009864Z"}
6
+ {"layer":"issue","type":"ready","id":"issue-state-issue-FBYu","by":"system","ts":"2026-02-01T06:09:51.997984Z"}
7
+ {"layer":"issue","type":"updated","id":"issue-state-issue-ay4p","by":"BUDISANTOSO","ts":"2026-02-01T06:09:51.997699Z","changes":["status","dependent_unblocked"]}
File without changes
@@ -0,0 +1,2 @@
1
+ {"id":"issue-state-issue-FBYu","project_id":"issue-state","name":"I2","goal":"Second issue depending on I1. Problem: None. Impact: None. Acceptance: None.","issue_type":"bug","priority":"P3","status":"ready","depends_on":["issue-state-issue-ay4p"],"affected_files":["file2.js"],"affected_tests":["test2.js"],"implementation_steps":["step1"],"created_at":"2026-02-01T06:09:33.009864Z","last_updated_at":"2026-02-01T06:09:51.997984Z","created_by":"BUDISANTOSO","last_updated_by":"BUDISANTOSO"}
2
+ {"id":"issue-state-issue-ay4p","project_id":"issue-state","name":"I1","goal":"First issue with no dependencies. Problem: None. Impact: None. Acceptance: None.","issue_type":"bug","priority":"P3","status":"resolved","affected_files":["file1.js"],"affected_tests":["test1.js"],"implementation_steps":["step1"],"created_at":"2026-02-01T06:09:27.593796Z","last_updated_at":"2026-02-01T06:09:51.997699Z","created_by":"BUDISANTOSO","last_updated_by":"BUDISANTOSO"}
@@ -0,0 +1,11 @@
1
+ {
2
+ "id": "issue-state",
3
+ "name": "Issue State",
4
+ "goal": "Testing issue status based on dependencies",
5
+ "status": "initial",
6
+ "strict": false,
7
+ "created_at": "2026-02-01T06:09:16.32913Z",
8
+ "updated_at": "2026-02-01T06:09:16.32913Z",
9
+ "created_by": "BUDISANTOSO",
10
+ "updated_by": "BUDISANTOSO"
11
+ }