@mandors/cli 0.4.9 → 0.6.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.
Files changed (148) hide show
  1. package/.mandor/projects/dbg2989/events.jsonl +0 -0
  2. package/.mandor/projects/dbg2989/features.jsonl +1 -0
  3. package/.mandor/projects/dbg2989/issues.jsonl +0 -0
  4. package/.mandor/projects/dbg2989/project.jsonl +11 -0
  5. package/.mandor/projects/dbg2989/schema.json +29 -0
  6. package/.mandor/projects/dbg2989/tasks.jsonl +0 -0
  7. package/.mandor/projects/dbg3995/events.jsonl +0 -0
  8. package/.mandor/projects/dbg3995/features.jsonl +1 -0
  9. package/.mandor/projects/dbg3995/issues.jsonl +0 -0
  10. package/.mandor/projects/dbg3995/project.jsonl +11 -0
  11. package/.mandor/projects/dbg3995/schema.json +29 -0
  12. package/.mandor/projects/dbg3995/tasks.jsonl +1 -0
  13. package/.mandor/projects/dbg4038/events.jsonl +0 -0
  14. package/.mandor/projects/dbg4038/features.jsonl +0 -0
  15. package/.mandor/projects/dbg4038/issues.jsonl +0 -0
  16. package/.mandor/projects/dbg4038/project.jsonl +11 -0
  17. package/.mandor/projects/dbg4038/schema.json +29 -0
  18. package/.mandor/projects/dbg4038/tasks.jsonl +0 -0
  19. package/.mandor/projects/dbg5043/events.jsonl +0 -0
  20. package/.mandor/projects/dbg5043/features.jsonl +0 -0
  21. package/.mandor/projects/dbg5043/issues.jsonl +0 -0
  22. package/.mandor/projects/dbg5043/project.jsonl +11 -0
  23. package/.mandor/projects/dbg5043/schema.json +29 -0
  24. package/.mandor/projects/dbg5043/tasks.jsonl +0 -0
  25. package/.mandor/projects/dbg6047/events.jsonl +0 -0
  26. package/.mandor/projects/dbg6047/features.jsonl +0 -0
  27. package/.mandor/projects/dbg6047/issues.jsonl +0 -0
  28. package/.mandor/projects/dbg6047/project.jsonl +11 -0
  29. package/.mandor/projects/dbg6047/schema.json +29 -0
  30. package/.mandor/projects/dbg6047/tasks.jsonl +0 -0
  31. package/.mandor/projects/dbg982/events.jsonl +0 -0
  32. package/.mandor/projects/dbg982/features.jsonl +0 -0
  33. package/.mandor/projects/dbg982/issues.jsonl +0 -0
  34. package/.mandor/projects/dbg982/project.jsonl +11 -0
  35. package/.mandor/projects/dbg982/schema.json +29 -0
  36. package/.mandor/projects/dbg982/tasks.jsonl +0 -0
  37. package/.mandor/projects/test065/events.jsonl +0 -0
  38. package/.mandor/projects/test065/features.jsonl +2 -0
  39. package/.mandor/projects/test065/issues.jsonl +0 -0
  40. package/.mandor/projects/test065/project.jsonl +11 -0
  41. package/.mandor/projects/test065/schema.json +29 -0
  42. package/.mandor/projects/test065/tasks.jsonl +11 -0
  43. package/.mandor/projects/test086/events.jsonl +0 -0
  44. package/.mandor/projects/test086/features.jsonl +2 -0
  45. package/.mandor/projects/test086/issues.jsonl +0 -0
  46. package/.mandor/projects/test086/project.jsonl +11 -0
  47. package/.mandor/projects/test086/schema.json +29 -0
  48. package/.mandor/projects/test086/tasks.jsonl +11 -0
  49. package/.mandor/projects/test105/events.jsonl +0 -0
  50. package/.mandor/projects/test105/features.jsonl +2 -0
  51. package/.mandor/projects/test105/issues.jsonl +0 -0
  52. package/.mandor/projects/test105/project.jsonl +11 -0
  53. package/.mandor/projects/test105/schema.json +29 -0
  54. package/.mandor/projects/test105/tasks.jsonl +11 -0
  55. package/.mandor/projects/test109/events.jsonl +0 -0
  56. package/.mandor/projects/test109/features.jsonl +2 -0
  57. package/.mandor/projects/test109/issues.jsonl +0 -0
  58. package/.mandor/projects/test109/project.jsonl +11 -0
  59. package/.mandor/projects/test109/schema.json +29 -0
  60. package/.mandor/projects/test109/tasks.jsonl +11 -0
  61. package/.mandor/projects/test114/events.jsonl +0 -0
  62. package/.mandor/projects/test114/features.jsonl +2 -0
  63. package/.mandor/projects/test114/issues.jsonl +0 -0
  64. package/.mandor/projects/test114/project.jsonl +11 -0
  65. package/.mandor/projects/test114/schema.json +29 -0
  66. package/.mandor/projects/test114/tasks.jsonl +11 -0
  67. package/.mandor/projects/test136/events.jsonl +0 -0
  68. package/.mandor/projects/test136/features.jsonl +2 -0
  69. package/.mandor/projects/test136/issues.jsonl +0 -0
  70. package/.mandor/projects/test136/project.jsonl +11 -0
  71. package/.mandor/projects/test136/schema.json +29 -0
  72. package/.mandor/projects/test136/tasks.jsonl +11 -0
  73. package/.mandor/projects/test140/events.jsonl +0 -0
  74. package/.mandor/projects/test140/features.jsonl +2 -0
  75. package/.mandor/projects/test140/issues.jsonl +0 -0
  76. package/.mandor/projects/test140/project.jsonl +11 -0
  77. package/.mandor/projects/test140/schema.json +29 -0
  78. package/.mandor/projects/test140/tasks.jsonl +11 -0
  79. package/.mandor/projects/test150/events.jsonl +0 -0
  80. package/.mandor/projects/test150/features.jsonl +2 -0
  81. package/.mandor/projects/test150/issues.jsonl +0 -0
  82. package/.mandor/projects/test150/project.jsonl +11 -0
  83. package/.mandor/projects/test150/schema.json +29 -0
  84. package/.mandor/projects/test150/tasks.jsonl +11 -0
  85. package/.mandor/projects/test154/events.jsonl +0 -0
  86. package/.mandor/projects/test154/features.jsonl +2 -0
  87. package/.mandor/projects/test154/issues.jsonl +0 -0
  88. package/.mandor/projects/test154/project.jsonl +11 -0
  89. package/.mandor/projects/test154/schema.json +29 -0
  90. package/.mandor/projects/test154/tasks.jsonl +11 -0
  91. package/.mandor/projects/test858/events.jsonl +0 -0
  92. package/.mandor/projects/test858/features.jsonl +0 -0
  93. package/.mandor/projects/test858/issues.jsonl +0 -0
  94. package/.mandor/projects/test858/project.jsonl +11 -0
  95. package/.mandor/projects/test858/schema.json +29 -0
  96. package/.mandor/projects/test858/tasks.jsonl +0 -0
  97. package/.mandor/projects/test865/events.jsonl +0 -0
  98. package/.mandor/projects/test865/features.jsonl +0 -0
  99. package/.mandor/projects/test865/issues.jsonl +0 -0
  100. package/.mandor/projects/test865/project.jsonl +11 -0
  101. package/.mandor/projects/test865/schema.json +29 -0
  102. package/.mandor/projects/test865/tasks.jsonl +0 -0
  103. package/.mandor/projects/test868/events.jsonl +0 -0
  104. package/.mandor/projects/test868/features.jsonl +0 -0
  105. package/.mandor/projects/test868/issues.jsonl +0 -0
  106. package/.mandor/projects/test868/project.jsonl +11 -0
  107. package/.mandor/projects/test868/schema.json +29 -0
  108. package/.mandor/projects/test868/tasks.jsonl +0 -0
  109. package/.mandor/projects/test871/events.jsonl +0 -0
  110. package/.mandor/projects/test871/features.jsonl +0 -0
  111. package/.mandor/projects/test871/issues.jsonl +0 -0
  112. package/.mandor/projects/test871/project.jsonl +11 -0
  113. package/.mandor/projects/test871/schema.json +29 -0
  114. package/.mandor/projects/test871/tasks.jsonl +0 -0
  115. package/.mandor/projects/test878/events.jsonl +0 -0
  116. package/.mandor/projects/test878/features.jsonl +0 -0
  117. package/.mandor/projects/test878/issues.jsonl +0 -0
  118. package/.mandor/projects/test878/project.jsonl +11 -0
  119. package/.mandor/projects/test878/schema.json +29 -0
  120. package/.mandor/projects/test878/tasks.jsonl +0 -0
  121. package/.mandor/projects/test884/events.jsonl +0 -0
  122. package/.mandor/projects/test884/features.jsonl +0 -0
  123. package/.mandor/projects/test884/issues.jsonl +0 -0
  124. package/.mandor/projects/test884/project.jsonl +11 -0
  125. package/.mandor/projects/test884/schema.json +29 -0
  126. package/.mandor/projects/test884/tasks.jsonl +0 -0
  127. package/.mandor/projects/test891/events.jsonl +0 -0
  128. package/.mandor/projects/test891/features.jsonl +0 -0
  129. package/.mandor/projects/test891/issues.jsonl +0 -0
  130. package/.mandor/projects/test891/project.jsonl +11 -0
  131. package/.mandor/projects/test891/schema.json +29 -0
  132. package/.mandor/projects/test891/tasks.jsonl +0 -0
  133. package/.mandor/projects/test977/events.jsonl +0 -0
  134. package/.mandor/projects/test977/features.jsonl +2 -0
  135. package/.mandor/projects/test977/issues.jsonl +0 -0
  136. package/.mandor/projects/test977/project.jsonl +11 -0
  137. package/.mandor/projects/test977/schema.json +29 -0
  138. package/.mandor/projects/test977/tasks.jsonl +11 -0
  139. package/.mandor/session-notes.jsonl +1 -5
  140. package/.mandor/workspace.json +7 -7
  141. package/README.md +383 -469
  142. package/binaries/darwin-arm64/mandor +0 -0
  143. package/binaries/darwin-arm64.tar.gz +0 -0
  144. package/binaries/linux-arm64/mandor +0 -0
  145. package/binaries/linux-arm64.tar.gz +0 -0
  146. package/mandor +0 -0
  147. package/mandor-test +0 -0
  148. package/package.json +1 -1
package/README.md CHANGED
@@ -1,712 +1,626 @@
1
- # Mandor - Deterministic Task Manager CLI for AI Agent Workflows
1
+ # Mandor - Deterministic Task Manager for AI Agent Workflows
2
2
 
3
3
  <p align="center">
4
4
  <img src="logo.png" alt="Mandor Logo" width="600">
5
5
  </p>
6
6
 
7
7
  <p align="center">
8
- <strong>Stop writing markdown plans. Start shipping features with deterministic task tracking.</strong>
8
+ <strong>Stop writing markdown plans that go stale.</strong>
9
9
  </p>
10
10
 
11
11
  <p align="center">
12
- <strong>Dependency-aware | Structured storage | CLI-native | Built for AI agents</strong>
12
+ <strong>Deterministic task management with structured briefs, specifications, and blueprints.</strong>
13
+ </p>
14
+
15
+ <p align="center">
16
+ Gate-enforced | Dependency-aware | Structured storage | CLI-native
13
17
  </p>
14
18
 
15
19
  <p align="center">
16
- <a href="#installation">Installation</a> •
17
20
  <a href="#quick-start">Quick Start</a> •
18
21
  <a href="#why-mandor">Why Mandor</a> •
19
- <a href="#core-concepts">Core Concepts</a> •
22
+ <a href="#workflow">Workflow</a> •
20
23
  <a href="#commands">Commands</a> •
21
- <a href="#examples">Examples</a>
24
+ <a href="#best-practices">Best Practices</a>
22
25
  </p>
23
26
 
24
27
  ---
25
28
 
26
29
  ## Why Mandor
27
30
 
28
- **No More Markdown Plan Files**
29
-
30
- Traditional workflows scatter task state across markdown files, spreadsheets, and Slack messages. Dependencies are manual, status is fiction, and progress is invisible until code review.
31
+ Traditional workflows scatter task state across markdown files, spreadsheets, and Slack. Dependencies are manual, status is fiction, and context is lost between sessions.
31
32
 
32
33
  Mandor brings **deterministic task management** to AI agent workflows:
33
34
 
34
- - **Single Source of Truth**: All state in structured JSONL files—queryable, reproducible, auditable
35
- - **Automatic Dependency Resolution**: Mark tasks done dependents auto-transition to ready
36
- - **Schema-Driven**: Enforce implementation steps, test cases, and library needs upfront
35
+ - **Single Source of Truth**: Brief Spec Blueprint Feature → Task pipeline
36
+ - **Gate-Enforced Progression**: All three gates (brief read, spec read, session notes) required before starting work
37
+ - **Automatic Dependency Resolution**: Mark task done dependents auto-transition to ready
38
+ - **Cross-Feature Dependencies**: Task A (Feature 1) can depend on Task B (Feature 2) with cascading unblocking
39
+ - **Schema-Driven**: Enforce implementation steps, test cases, requirements upfront
37
40
  - **CLI-Native**: Works in terminal, scripts, and CI/CD pipelines
38
- - **Dependency Tracking**: Full support for same-project and cross-project dependencies
39
-
40
- ## Overview
41
-
42
- Mandor is a CLI tool for managing tasks, features, and issues in AI agent workflows:
43
-
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)
46
- - **Dependency Tracking**: Automatic status transitions when dependencies complete
47
- - **Cross-Platform**: Go binary for macOS, Linux, Windows (arm64 & x64)
48
41
 
49
42
  ---
50
43
 
44
+ ## Alternatives
51
45
 
52
- ## Core Concepts
53
-
54
- ### Entity Types
55
-
56
- | Type | Purpose | Status Values |
57
- |------|---------|---------------|
58
- | **Workspace** | Top-level container for all projects | (single instance per directory) |
59
- | **Project** | Container for features and issues | (active/deleted) |
60
- | **Feature** | Logical grouping of related tasks | draft, active, done, blocked, cancelled |
61
- | **Task** | Work items within a feature | pending, ready, in_progress, done, blocked, cancelled |
62
- | **Issue** | Problems, bugs, or improvement requests | open, ready, in_progress, resolved, wontfix, blocked, cancelled |
63
-
64
- ### Dependency Types
46
+ Mandor is one approach to deterministic task management. Other tools exist in this space:
65
47
 
66
- - **Task Dependencies**: One task can depend on multiple tasks
67
- - **Feature Dependencies**: Features can depend on other features
68
- - **Issue Dependencies**: Issues can depend on other issues
48
+ - **Beads**: Git-backed issue tracker focusing on rapid iteration with minimal overhead
49
+ - GitHub: https://github.com/steveyegge/beads
69
50
 
70
- ### Status Transitions
71
-
72
- **Tasks:**
73
- ```
74
- pending → {ready, in_progress, cancelled}
75
- ready → {in_progress, cancelled}
76
- in_progress → {done, blocked, cancelled}
77
- blocked → {ready, cancelled}
78
- done → (terminal)
79
- cancelled → (terminal)
80
- ```
81
-
82
- **Features:**
83
- ```
84
- draft → {active, blocked, cancelled}
85
- active → {done, blocked, cancelled}
86
- blocked → {draft, active, done, cancelled}
87
- done → {cancelled}
88
- cancelled → {draft}
89
- ```
90
-
91
- **Issues:**
92
- ```
93
- open → {ready, in_progress, blocked, resolved, wontfix, cancelled}
94
- ready → {in_progress, blocked, resolved, wontfix, cancelled}
95
- in_progress → {blocked, resolved, wontfix, cancelled}
96
- blocked → {ready, resolved, wontfix, cancelled}
97
- resolved → (terminal, can reopen to any status)
98
- wontfix → (terminal, can reopen to any status)
99
- cancelled → (terminal, can reopen to any status)
100
- ```
51
+ - **OpenSpec**: Fluid, iterative specs with AI tool integration (Claude Code, Cursor, Copilot)
52
+ - GitHub: https://github.com/Fission-AI/OpenSpec
101
53
 
102
54
  ---
103
55
 
104
-
105
56
  ## Installation
106
57
 
107
- ### Install with curl
58
+ ### Build from Source
108
59
 
109
60
  ```bash
110
- curl -fsSL https://raw.githubusercontent.com/sanxzy/mandor/main/scripts/install.sh | sh
111
- mandor --help
61
+ cd Mandor
62
+ go build -o mandor ./cmd/mandor
63
+ ./mandor --help
112
64
  ```
113
65
 
114
- ### Install from npm
66
+ ### Install to PATH
115
67
 
116
68
  ```bash
117
- npm install -g @mandors/cli
69
+ go build -o ~/.local/bin/mandor ./cmd/mandor
70
+ export PATH="$HOME/.local/bin:$PATH"
118
71
  mandor --help
119
72
  ```
120
73
 
121
74
  ---
122
75
 
123
-
124
76
  ## Quick Start
125
77
 
126
78
  ### 1. Initialize Workspace
127
79
 
128
80
  ```bash
129
- mandor init "My Project"
81
+ mandor init -y
130
82
  ```
131
83
 
132
- ### 2. Create a Project
84
+ ### 2. Create Project
133
85
 
134
86
  ```bash
135
- mandor project create api --name "API Development" \
136
- --goal "Build REST API service with authentication and endpoints"
87
+ mandor project create api --name "API Service" \
88
+ --goal "REST API with JWT authentication, user management, and data endpoints"
137
89
  ```
138
90
 
139
- ### 3. Create a Feature
91
+ ### 3. Create Brief (Project Intent & Capabilities)
140
92
 
141
93
  ```bash
142
- mandor feature create "Authentication" --project api \
143
- --goal "Implement JWT-based authentication with login and refresh flows for secure API access" \
144
- --scope backend
94
+ mandor brief create -p api \
95
+ --name "JWT Authentication" \
96
+ --why "Need secure, stateless authentication for API endpoints" \
97
+ --capabilities "jwt-auth:JWT login flow|refresh:Token refresh endpoint" \
98
+ --tech-stack "golang,jwt,redis"
145
99
  ```
146
100
 
147
- ### 4. Create Tasks with Dependencies
148
-
149
- ```bash
150
- # Create first task (no dependencies)
151
- mandor task create api-feature-xxxx "JWT Parser" \
152
- --goal "Parse and validate JWT tokens in incoming requests with expiry and signature verification" \
153
- --implementation-steps "Setup crypto library|Add token validation|Handle expiry|Return errors" \
154
- --test-cases "Valid token accepted|Expired token rejected|Invalid signature rejected" \
155
- --library-needs "golang-jwt" \
156
- --priority P1
157
-
158
- # Create dependent task (depends on JWT Parser)
159
- mandor task create api-feature-xxxx "Login Endpoint" \
160
- --goal "Accept user credentials and return JWT token with refresh token flow" \
161
- --implementation-steps "Setup endpoint|Validate credentials|Generate JWT|Return tokens" \
162
- --test-cases "Valid creds return token|Invalid creds rejected|Tokens properly formatted" \
163
- --depends-on api-feature-xxxx-task-xxxx \
164
- --priority P1
165
- ```
101
+ Creates: `jwt-auth` (brief ID)
166
102
 
167
- ### 5. View Task Progress
103
+ ### 4. Create Spec (Requirements with IAE Scenarios)
168
104
 
169
105
  ```bash
170
- # See all tasks in feature with visualization
171
- mandor track feature api-feature-xxxx
172
-
173
- # Get task details
174
- mandor task detail <task-id>
106
+ mandor spec create -p api \
107
+ --capability jwt-auth \
108
+ --summary "JWT authentication specification" \
109
+ --requirements "Setup:Enable login:Import JWT lib|Validate:Verify token:Parse JWT|Refresh:Update token:Issue new JWT"
175
110
  ```
176
111
 
177
- ### 6. Mark Tasks Complete
112
+ Creates: `jwt-auth-spec` (spec ID with auto-generated requirement IDs: req-0001, req-0002, etc.)
178
113
 
179
- ```bash
180
- # Get task ID from track output
181
- mandor task update <task-id> --status in_progress
182
- mandor task update <task-id> --status done
114
+ ### 5. Create Blueprint (Technical Architecture)
183
115
 
184
- # Dependent tasks auto-transition to "ready"
185
- mandor track feature api-feature-xxxx # Now shows "Login Endpoint" as ready
116
+ ```bash
117
+ mandor blueprint create -p api \
118
+ --brief jwt-auth \
119
+ --problem "Secure API authentication without server-side session state" \
120
+ --decisions "Use JWT for stateless auth|HTTP-only cookies for token storage|Refresh tokens on expiry" \
121
+ --goals-in-scope "Authentication,Authorization,Token refresh"
186
122
  ```
187
123
 
188
- ---
189
-
124
+ Creates: `api-blueprint` (blueprint ID)
190
125
 
191
- ## Commands Reference
192
-
193
- ### Workspace Commands
126
+ ### 6. Create Feature (from Spec)
194
127
 
195
128
  ```bash
196
- # Initialize a new workspace
197
- mandor init [--workspace-name <name>] [-y]
198
-
199
- # View workspace and project status
200
- mandor status [--project <id>] [--summary] [--json]
201
-
202
- # Manage configuration
203
- mandor config get <key>
204
- mandor config set <key> <value>
205
- mandor config list
206
- mandor config reset <key>
207
-
208
- # Display all commands and best practices
209
- mandor populate
129
+ mandor feature create "JWT Authentication" -p api \
130
+ --capability jwt-auth \
131
+ --spec-id jwt-auth-spec \
132
+ --scope backend \
133
+ -g "Implement JWT-based authentication with login flow, token validation, and refresh mechanism"
134
+ ```
210
135
 
211
- # Show version
212
- mandor version
136
+ Creates: `jwt-tokens` (feature ID, one-to-one mapping to spec-id)
213
137
 
214
- # Generate shell completions
215
- mandor completion [bash|zsh|fish]
138
+ ### 7. Create Tasks (with IAE Scenarios)
216
139
 
217
- # AI-assisted documentation
218
- mandor ai --help
140
+ ```bash
141
+ # Task 1: Setup JWT Library
142
+ mandor task create jwt-tokens "Setup JWT Library" \
143
+ --spec-id jwt-auth-spec \
144
+ --iae-scenarios "req-0001:scenario-0001|req-0001:scenario-0002" \
145
+ -g "Configure golang-jwt library with crypto setup and validation" \
146
+ --implementation-steps "Import library|Configure settings|Add crypto|Add validation" \
147
+ --test-cases "JWT creates|JWT validates|JWT signature verifies" \
148
+ --library-needs "golang-jwt"
219
149
  ```
220
150
 
221
- ### Track Commands
151
+ Creates: `jwt-tokens-task-a7K2` (status=ready, all gates=false)
222
152
 
223
153
  ```bash
224
- # Track workspace status
225
- mandor track
226
-
227
- # Track project status
228
- mandor track project <project-id>
154
+ # Task 2: Token Validation (depends on Task 1)
155
+ mandor task create jwt-tokens "Token Validation Middleware" \
156
+ --spec-id jwt-auth-spec \
157
+ --iae-scenarios "req-0002:scenario-0001" \
158
+ --depends-on jwt-tokens-task-a7K2 \
159
+ -g "Implement middleware to validate JWT tokens on all protected endpoints" \
160
+ --implementation-steps "Create middleware|Extract token|Validate|Return errors" \
161
+ --test-cases "Valid passes|Expired rejects|Invalid rejects"
162
+ ```
229
163
 
230
- # Track feature with tasks
231
- mandor track feature <feature-id> [--verbose]
164
+ Creates: `jwt-tokens-task-b3M8` (status=blocked, waiting for task-a7K2)
232
165
 
233
- # Track specific task
234
- mandor track task <task-id>
166
+ ### 8. Track Progress
235
167
 
236
- # Track issue
237
- mandor track issue <issue-id>
168
+ ```bash
169
+ # See feature with all tasks
170
+ mandor track feature jwt-tokens
238
171
  ```
239
172
 
240
- ### Session Commands
241
-
242
- ```bash
243
- # Add a progress note (AI agents use this to track work)
244
- mandor session note "Completed v0.4.4 release and testing"
173
+ Output shows:
174
+ - Task 1: status=ready, gates=false
175
+ - Task 2: status=blocked (waiting for Task 1)
245
176
 
246
- # Read recent session notes (last 50 entries by default)
247
- mandor session note --read
177
+ ### 9. Set Gates & Start Work
248
178
 
249
- # Read more notes with offset
250
- mandor session note --read --offset 100
251
- ```
179
+ ```bash
180
+ # Read brief, spec, and session notes first
181
+ # Then set gates for Task 1:
182
+ mandor task set-gate jwt-tokens-task-a7K2 --is-read-brief
183
+ mandor task set-gate jwt-tokens-task-a7K2 --is-read-spec
184
+ mandor task set-gate jwt-tokens-task-a7K2 --is-read-session-notes
252
185
 
253
- ### Project Commands
186
+ # Transition to in_progress (requires all gates=true)
187
+ mandor task update jwt-tokens-task-a7K2 --status in_progress
254
188
 
255
- ```bash
256
- # Create a project
257
- mandor project create <id> --name <name> --goal <goal> [OPTIONS]
189
+ # Work on implementation...
258
190
 
259
- # Show project details
260
- mandor project detail <project-id>
191
+ # Mark complete
192
+ mandor task update jwt-tokens-task-a7K2 --status done
261
193
 
262
- # Update project
263
- mandor project update <project-id> [--name <name>] [--goal <goal>] [--status <status>]
194
+ # Task 2 automatically transitions: blocked → ready
195
+ mandor track feature jwt-tokens # Now shows Task 2 as ready
264
196
  ```
265
197
 
266
- ### Feature Commands
198
+ ### 10. Repeat for Task 2
267
199
 
268
200
  ```bash
269
- # Create a feature
270
- mandor feature create <name> --project <id> --goal <goal> [--scope <scope>] [--priority <priority>]
271
-
272
- # List features
273
- mandor feature list --project <id>
274
-
275
- # Show feature details
276
- mandor feature detail <feature-id> --project <id>
201
+ # Set gates for Task 2
202
+ mandor task set-gate jwt-tokens-task-b3M8 --is-read-brief
203
+ mandor task set-gate jwt-tokens-task-b3M8 --is-read-spec
204
+ mandor task set-gate jwt-tokens-task-b3M8 --is-read-session-notes
277
205
 
278
- # Update feature
279
- 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]
206
+ # Start work
207
+ mandor task update jwt-tokens-task-b3M8 --status in_progress
280
208
  ```
281
209
 
282
- ### Task Commands
210
+ ---
283
211
 
284
- ```bash
285
- # Create a task
286
- mandor task create <feature_id> <name> --goal <goal> \
287
- --implementation-steps <steps> --test-cases <cases> \
288
- --derivable-files <files> --library-needs <libs> \
289
- [--priority <priority>] [--depends-on <ids>]
212
+ ## Workflow
290
213
 
291
- # Show task details
292
- mandor task detail <task-id>
214
+ ### Complete Pipeline
293
215
 
294
- # Update task
295
- mandor task update <task-id> [--name <text>] [--goal <goal>] [--priority <priority>] \
296
- [--status <status>] [--depends-add <ids>] [--depends-remove <ids>] [--cancel --reason <text>] [--dry-run]
216
+ ```
217
+ 1. Brief (Intent & Capabilities)
218
+
219
+ 2. Spec (Requirements & IAE Scenarios)
220
+
221
+ 3. Blueprint (Architecture Decisions)
222
+
223
+ 4. Feature (Spec Mapping)
224
+
225
+ 5. Task (Work Items with IAE References)
297
226
  ```
298
227
 
299
- ### Issue Commands
228
+ ### Gate Enforcement
300
229
 
301
- ```bash
302
- # Create an issue
303
- mandor issue create <name> --project <id> --type <type> --goal <goal> \
304
- --affected-files <files> --affected-tests <tests> \
305
- --implementation-steps <steps> [--priority <priority>] [--depends-on <ids>] [--library-needs <libs>]
230
+ Every task has three read gates:
231
+ - **IsReadBrief**: Have you read the Brief?
232
+ - **IsReadSpec**: Have you read the Spec?
233
+ - **IsReadSessionNotes**: Have you read session notes?
306
234
 
307
- # Show issue details
308
- mandor issue detail <issue-id> --project <id>
235
+ **All three gates MUST be true before ready → in_progress transition.**
309
236
 
310
- # Update issue
311
- mandor issue update <issue-id> [--name <text>] [--goal <goal>] [--priority <priority>] \
312
- [--type <type>] [--status <status>] [--start] [--resolve] [--wontfix] [--reason <text>] [--cancel --reason <text>] [--dry-run]
313
- ```
237
+ Gates are NOT required for:
238
+ - ready cancelled
239
+ - in_progress done
240
+ - blocked → ready (auto-transition)
314
241
 
315
- ### AI Commands
242
+ ### Dependency Auto-Resolution
316
243
 
317
- ```bash
318
- # AI-assisted documentation generation
319
- mandor ai agents
320
- mandor ai claude
321
- ```
244
+ Tasks with `--depends-on`:
245
+ - Auto-assigned `status=blocked` on creation
246
+ - Stay blocked until ALL dependencies are `done`
247
+ - Auto-transition `blocked → ready` when dependencies complete
248
+ - Works cross-feature (Task A in Feature 1 depends on Task B in Feature 2)
249
+ - Cascading: Task A done → unblocks Task B → Task B done → unblocks Task C
322
250
 
323
251
  ---
324
252
 
253
+ ## Commands
325
254
 
326
- ## Common Workflows
327
-
328
- ### Replace This (Markdown Plan Files)
255
+ ### Essential Three Commands
329
256
 
330
- ```markdown
331
- # PLAN.md
332
- ## Phase 1: Authentication
333
- - [ ] JWT parser (depends on cryptography)
334
- - [ ] Login endpoint (depends on JWT parser)
335
- - [ ] Refresh token (depends on JWT parser)
257
+ #### 1. mandor populate
258
+ View all available commands and usage instructions.
336
259
 
337
- Status: Last updated 3 days ago (probably stale!)
260
+ ```bash
261
+ mandor populate # Full reference
262
+ mandor populate | grep "brief" # Find relevant sections
338
263
  ```
339
264
 
340
- ### With This (Mandor)
265
+ #### 2. mandor track
266
+ Check status of workspace, projects, features, tasks, issues.
341
267
 
342
268
  ```bash
343
- # Create structured plan
344
- mandor feature create "Authentication" --project api \
345
- --goal "Implement JWT and login endpoints" \
346
- --scope backend
347
-
348
- # Create tasks with explicit dependencies
349
- mandor task create api-feature-xxxx "JWT Parser" \
350
- --goal "Validate JWT tokens..." \
351
- --implementation-steps "Step 1|Step 2" \
352
- --test-cases "Test invalid tokens|Test expired" \
353
- --library-needs "jsonwebtoken" \
354
- --priority P1
355
-
356
- mandor task create api-feature-xxxx "Login Endpoint" \
357
- --goal "Accept credentials and return JWT..." \
358
- --depends-on api-feature-xxxx-task-xxxx \
359
- --priority P1
360
-
361
- # Real-time progress queries
362
- mandor track feature api-feature-xxxx # See all tasks and status
363
- mandor track task api-feature-xxxx-task-xxxx # See specific task details
269
+ mandor track # Workspace overview
270
+ mandor track project <project-id> # Project features
271
+ mandor track feature <feature-id> # Feature with tasks
272
+ mandor track task <task-id> # Task with gate status
273
+ mandor track task <task-id> --json # Machine-readable
364
274
  ```
365
275
 
366
- **Benefits:**
367
- - No file sync required
368
- - Dependencies auto-validated
369
- - Blocking tasks auto-detected
370
- - Structured JSONL storage
371
- - Queryable via CLI or JSON
372
- - Works in CI/CD pipelines
373
-
374
- ### Dependency Management
276
+ #### 3. mandor session note
277
+ Record and read session progress (for AI agents).
375
278
 
376
279
  ```bash
377
- # View all projects and their status
378
- mandor status
280
+ mandor session note "Completed Task 1 and dependencies"
281
+ mandor session note --read # Show last 50 notes
282
+ mandor session note --read --offset 100 # Show more notes
283
+ ```
379
284
 
380
- # Check a specific project
381
- mandor status --project api
285
+ ### Full Command Reference
382
286
 
383
- # View feature dependencies and progress
384
- mandor track project api
287
+ **For complete command documentation, run:**
385
288
 
386
- # Create tasks with dependencies
387
- mandor task create api-feature-xxxx "Task" \
388
- --goal "..." \
389
- --implementation-steps "..." \
390
- --test-cases "..." \
391
- --library-needs "..." \
392
- --depends-on api-feature-xxxx-task-xxxx
289
+ ```bash
290
+ mandor populate # Shows all commands with examples
291
+ mandor -h # Shows available commands
292
+ mandor <cmd> -h # Shows specific command help
293
+ ```
393
294
 
394
- # See all feature tasks with status
395
- mandor track feature api-feature-xxxx
295
+ ### Quick Command List
396
296
 
397
- # Mark as done (auto-unblocks dependents)
398
- mandor task update api-feature-xxxx-task-xxxx --status done
297
+ | Category | Commands |
298
+ |----------|----------|
299
+ | **Workspace** | `init`, `config` |
300
+ | **Project** | `create`, `detail`, `update`, `delete`, `reopen` |
301
+ | **Brief** | `create`, `read`, `update`, `delete`, `validate` |
302
+ | **Spec** | `create`, `detail`, `update`, `delete`, `validate` |
303
+ | **Blueprint** | `create`, `detail`, `update`, `delete`, `validate` |
304
+ | **Feature** | `create`, `detail`, `update`, `delete` |
305
+ | **Task** | `create`, `detail`, `set-gate`, `read-gates`, `update` |
306
+ | **Issue** | `create`, `detail`, `update` |
307
+ | **Track** | `track` (workspace\|project\|feature\|task\|issue) |
308
+ | **Session** | `session note` |
399
309
 
400
- # Verify dependents auto-transitioned to ready
401
- mandor track feature api-feature-xxxx
402
- ```
310
+ ---
403
311
 
404
- ### Issue Tracking
312
+ ## Best Practices
405
313
 
406
- ```bash
407
- # Create a bug issue
408
- mandor issue create "Memory leak in auth handler" \
409
- --project api \
410
- --type bug \
411
- --priority P0 \
412
- --goal "Goroutine not cleaned up in token refresh handler..." \
413
- --affected-files "src/handlers/auth.go|src/middleware/auth.go" \
414
- --affected-tests "src/handlers/auth_test.go" \
415
- --implementation-steps "Identify|Fix|Add tests|Verify" \
416
- --library-needs "none"
314
+ ### 1. Follow the Complete Workflow
417
315
 
418
- # View issue details
419
- mandor issue detail api-issue-abc123
316
+ Brief Spec → Blueprint → Feature → Task
420
317
 
421
- # Start working on an issue
422
- mandor issue update api-issue-abc123 --start
318
+ Don't skip steps. Each phase builds context for the next.
423
319
 
424
- # Mark as resolved
425
- mandor issue update api-issue-abc123 --resolve
320
+ ### 2. Write Comprehensive Briefs
426
321
 
427
- # Mark as won't fix with reason
428
- mandor issue update api-issue-abc123 --wontfix --reason "Working as intended"
322
+ Include:
323
+ - Clear problem statement and motivation
324
+ - Well-defined capabilities with descriptions
325
+ - Technical stack that will be used
326
+ - Affected systems and dependencies
429
327
 
430
- # See project issues with track
431
- mandor track project api
328
+ ```bash
329
+ mandor brief create -p api \
330
+ --name "Authentication" \
331
+ --why "Secure stateless API authentication" \
332
+ --capabilities "login:User login|tokens:Token management" \
333
+ --tech-stack "golang,jwt,postgres"
432
334
  ```
433
335
 
434
- ### Configuration
336
+ ### 3. Detailed Specs with IAE Scenarios
337
+
338
+ Create specs with Intent-Action-Expectation scenarios:
435
339
 
436
340
  ```bash
437
- # Set default priority
438
- mandor config set default_priority P2
341
+ mandor spec create -p api \
342
+ --capability login \
343
+ --summary "Login specification" \
344
+ --requirements "Login:User enters creds:Check password|Token:Generate JWT:Return token|Refresh:Extend session:Issue new token"
345
+ ```
439
346
 
440
- # Enable strict mode
441
- mandor config set strict_mode true
347
+ Specs become reference documents for tasks and gates.
442
348
 
443
- # View all configuration
444
- mandor config list
349
+ ### 4. Link Tasks to Spec Requirements
445
350
 
446
- # Get specific value
447
- mandor config get default_priority
351
+ Tasks reference specific requirement-scenario pairs:
448
352
 
449
- # Reset to default
450
- mandor config reset default_priority
353
+ ```bash
354
+ mandor task create feature-id "Implement Login" \
355
+ --spec-id spec-id \
356
+ --iae-scenarios "req-0001:scenario-0001|req-0002:scenario-0001"
451
357
  ```
452
358
 
453
- ---
454
-
359
+ Traces implementation back to requirements.
455
360
 
456
- ## Best Practices
361
+ ### 5. Gate Enforcement Discipline
457
362
 
458
- ### 1. Use Meaningful IDs
363
+ Always follow the gate workflow:
459
364
 
460
- Project and feature IDs should be:
461
- - Short but descriptive
462
- - Lowercase with hyphens
463
- - Consistent naming convention
365
+ 1. Read Brief thoroughly
366
+ 2. Read Spec with requirements
367
+ 3. Read session notes from previous work
368
+ 4. Set all three gates
369
+ 5. Transition to in_progress
370
+ 6. Implement
371
+ 7. Mark done (auto-unblocks dependents)
464
372
 
465
373
  ```bash
466
- # Good
467
- mandor project create user-auth
468
- mandor feature create jwt-tokens
374
+ # Check task status
375
+ mandor track task <task-id>
376
+
377
+ # Set gates
378
+ mandor task set-gate <task-id> --is-read-brief
379
+ mandor task set-gate <task-id> --is-read-spec
380
+ mandor task set-gate <task-id> --is-read-session-notes
469
381
 
470
- # Avoid
471
- mandor project create p1
472
- mandor feature create f123
382
+ # Start work
383
+ mandor task update <task-id> --status in_progress
473
384
  ```
474
385
 
475
- ### 2. Write Clear Goals (min char requirement enforced)
386
+ ### 6. Dependency Management
476
387
 
477
- Goals should include:
478
- - What is being built/fixed
479
- - Why it matters
480
- - Technical requirements
481
- - Acceptance criteria
388
+ Create dependent tasks with clear relationships:
482
389
 
483
390
  ```bash
484
- # Good
485
- --goal "Implement JWT-based authentication with login and refresh flows for secure API access"
391
+ # Task A (no dependencies)
392
+ mandor task create feature-id "Task A" \
393
+ --spec-id spec-id \
394
+ --iae-scenarios "req-0001:scenario-0001" \
395
+ -g "..." \
396
+ --implementation-steps "s1|s2" \
397
+ --test-cases "t1|t2"
486
398
 
487
- # Avoid
488
- --goal "Add authentication"
399
+ # Task B (depends on Task A)
400
+ mandor task create feature-id "Task B" \
401
+ --spec-id spec-id \
402
+ --iae-scenarios "req-0002:scenario-0001" \
403
+ --depends-on <task-a-id> \
404
+ -g "..." \
405
+ --implementation-steps "s1|s2" \
406
+ --test-cases "t1|t2"
489
407
  ```
490
408
 
491
- ### 3. Use Scopes for Features
409
+ Task B auto-blocks until Task A is done.
492
410
 
493
- Organize by scope:
494
- - `frontend`, `backend`, `fullstack`
495
- - `cli`, `desktop`, `android`, `flutter`, `react-native`, `ios`, `swift`
411
+ ### 7. Configuration for Your Team
412
+
413
+ Set defaults early, rarely change:
496
414
 
497
415
  ```bash
498
- mandor feature create "Login UI" --project api --scope frontend
499
- mandor feature create "Login API" --project api --scope backend
416
+ mandor config set default_priority P2
417
+ mandor config set strict_mode true
418
+ mandor config set goal.lengths.task 500
500
419
  ```
501
420
 
502
- ### 4. Keep Dependencies Shallow
421
+ ### 8. Document Status Changes
503
422
 
504
- Deep dependency chains (>5 levels) are hard to manage. Consider breaking into smaller features.
423
+ Always explain why you're cancelling or changing status:
505
424
 
506
425
  ```bash
507
- # Good: tasks depend on other tasks in same feature
508
- mandor task create api-feature-xxxx "Task B" \
509
- --goal "..." \
510
- --implementation-steps "..." \
511
- --test-cases "..." \
512
- --depends-on api-feature-xxxx-task-xxxx
513
-
514
- # Consider splitting if: task chains exceed 5 levels
426
+ mandor task update <task-id> --status cancelled \
427
+ --reason "Superseded by feature X"
515
428
  ```
516
429
 
517
- ### 5. Use Issues for Bugs, Tasks for Features
518
-
519
- - **Tasks**: Feature work, implementation, refactoring
520
- - **Issues**: Bugs, improvements, technical debt, security, performance
430
+ ### 9. Use Pipe Separators for Lists
521
431
 
522
432
  ```bash
523
- # Feature work
524
- mandor task create api-feature-xxxx "Add OAuth2" \
525
- --goal "..." \
526
- --implementation-steps "..." \
527
- --test-cases "..." \
528
- --library-needs "oauth2-lib"
529
-
530
- # Bug fix
531
- mandor issue create "Fix auth timeout" --project api --type bug
433
+ --implementation-steps "Step 1|Step 2|Step 3"
434
+ --test-cases "Test 1|Test 2|Test 3"
435
+ --iae-scenarios "req-0001:scenario-0001|req-0002:scenario-0001"
436
+ --depends-on "task-1|task-2|task-3"
532
437
  ```
533
438
 
534
- ### 6. Document Cancellation Reasons
439
+ ### 10. Track Regularly Before Starting
535
440
 
536
- Always provide clear reasons when cancelling:
441
+ Always check status first:
537
442
 
538
443
  ```bash
539
- mandor task update api-feature-xxxx-task-xxxx --cancel --reason "Superseded by feature X"
540
- mandor feature update api-feature-xxxx --project api --cancel --reason "Sticking with JWT, OAuth2 adds too much complexity"
444
+ mandor track feature <feature-id> # See all task states
445
+ mandor track task <task-id> # Check gate status and dependencies
541
446
  ```
542
447
 
543
- ### 7. Use Pipe Separators For Lists
448
+ ### 11. AI Agent Session Management
544
449
 
545
- For flags accepting multiple values, use pipe separators:
450
+ Log your progress between sessions:
546
451
 
547
452
  ```bash
548
- # Implementation steps
549
- --implementation-steps "Step 1|Step 2|Step 3"
550
-
551
- # Test cases
552
- --test-cases "Case 1|Case 2|Case 3"
453
+ # End of session
454
+ mandor session note "Completed task setup and testing, next: validation middleware"
553
455
 
554
- # Dependencies
555
- --depends-on task-1|task-2|task-3
456
+ # Start of session
457
+ mandor session note --read # See what was done
556
458
  ```
557
459
 
558
- ### 8. Use --dry-run Before Major Changes
460
+ ---
559
461
 
560
- Before making significant updates, preview with `--dry-run`:
462
+ ## Status Transitions
561
463
 
562
- ```bash
563
- mandor task update api-feature-xxxx-task-xxxx --status done --dry-run
564
- mandor feature update api-feature-xxxx --project api --cancel --reason "..." --dry-run
565
- ```
464
+ ### Task Lifecycle
566
465
 
567
- ### 9. Dependency Auto-Resolution
466
+ ```
467
+ New (with depends-on) New (no depends)
468
+ ↓ ↓
469
+ blocked ready
470
+ ↓ ↓
471
+ └──────→ ready ←──────┐ │
472
+ ↓ ↑ │ │
473
+ in_progress │ │ │
474
+ ↓ │ │ │
475
+ done ├──cancelled│──────┤
476
+ │ │ │
477
+ └──────────┴───────┘
478
+ ```
568
479
 
569
- - Mark task done → dependents auto-transition to ready
570
- - Mark issue resolved dependents auto-transition to ready
571
- - Manual block must manually unblock
480
+ **Rules:**
481
+ - New task without `--depends-on`: status=ready, all gates=false
482
+ - New task with `--depends-on`: status=blocked
483
+ - blocked → ready: auto-transition when dependencies done
484
+ - ready → in_progress: requires all three gates=true
485
+ - ready → cancelled: allowed without gates
486
+ - in_progress → done: allowed without gates
487
+ - done: immutable, no transitions out
488
+ - Error messages show which gates are unmet
572
489
 
573
- ### 10. Configure Early, Rarely Change
490
+ ---
574
491
 
575
- Configure workspace defaults at the start:
492
+ ## File Structure
576
493
 
577
- ```bash
578
- mandor init "Project Name"
579
- mandor config set default_priority P2
580
- mandor config set strict_mode true
494
+ ```
495
+ .mandor/
496
+ ├── workspace.json # Workspace metadata
497
+ ├── config.json # Configuration
498
+ ├── session-notes.jsonl # AI session progress (NDJSON)
499
+ └── projects/
500
+ └── <project-id>/
501
+ ├── project.json
502
+ ├── briefs/
503
+ │ └── <brief-id>.md # Brief document
504
+ ├── specs/
505
+ │ └── <spec-id>.md # Spec with requirements
506
+ ├── blueprints.jsonl # Blueprint records
507
+ ├── features.jsonl # Feature records
508
+ ├── tasks.jsonl # Task records
509
+ └── issues.jsonl # Issue records
581
510
  ```
582
511
 
583
- ### 11. Review Status Regularly
584
-
585
- ```bash
586
- # Workspace overview
587
- mandor status
588
-
589
- # Project summary
590
- mandor status --project api
512
+ ---
591
513
 
592
- # See feature progress
593
- mandor track project api
514
+ ## Configuration
594
515
 
595
- # See feature tasks
596
- mandor track feature api-feature-xxxx
516
+ | Key | Type | Default | Description |
517
+ |-----|------|---------|-------------|
518
+ | `default_priority` | string | P3 | Default priority for new entities (P0-P5) |
519
+ | `strict_mode` | boolean | false | Enable strict validation |
520
+ | `goal.lengths.project` | integer | 500 | Min chars for project goal |
521
+ | `goal.lengths.feature` | integer | 300 | Min chars for feature goal |
522
+ | `goal.lengths.task` | integer | 500 | Min chars for task goal |
523
+ | `goal.lengths.issue` | integer | 200 | Min chars for issue goal |
597
524
 
598
- # See task details
599
- mandor track task api-feature-xxxx-task-xxxx
525
+ ```bash
526
+ mandor config list # Show all
527
+ mandor config get default_priority # Get one
528
+ mandor config set default_priority P2 # Set one
529
+ mandor config reset default_priority # Reset to default
600
530
  ```
601
531
 
602
532
  ---
603
533
 
604
-
605
534
  ## Troubleshooting
606
535
 
607
- ### "Command not found"
536
+ ### Gate Transition Error
608
537
 
609
- Ensure mandor is in your PATH:
538
+ **Error:** "Cannot transition to in_progress: gates not set"
610
539
 
611
- ```bash
612
- export PATH="$HOME/.local/bin:$PATH"
613
- ```
614
-
615
- ### "Project not found"
616
-
617
- Check the project ID and ensure you're in the correct workspace:
540
+ **Solution:** Set all three gates before transitioning
618
541
 
619
542
  ```bash
620
- mandor status
621
- ```
622
-
623
- ### "Entity not found"
543
+ mandor track task <task-id> # Check which gates are false
624
544
 
625
- Verify the entity ID exists:
545
+ mandor task set-gate <task-id> --is-read-brief
546
+ mandor task set-gate <task-id> --is-read-spec
547
+ mandor task set-gate <task-id> --is-read-session-notes
626
548
 
627
- ```bash
628
- mandor track feature <feature-id>
629
- mandor track project <project-id>
549
+ mandor task update <task-id> --status in_progress
630
550
  ```
631
551
 
632
- ### "Cross-project dependency detected"
552
+ ### Task Blocked by Dependencies
553
+
554
+ **Error:** "Task is blocked by dependencies"
633
555
 
634
- The project doesn't allow cross-project dependencies:
556
+ **Solution:** Complete all blocking tasks first
635
557
 
636
558
  ```bash
637
- # Check project config
638
- mandor project detail <project-id>
559
+ mandor track task <task-id> # See which tasks are blocking
639
560
 
640
- # Create new project with cross-project enabled
641
- mandor project create <id> --name "..." --goal "..." --task-dep cross_project_allowed
561
+ # Complete each blocking task
562
+ mandor task update <blocking-task-id> --status done
563
+
564
+ # Dependent task auto-transitions to ready
565
+ mandor track task <task-id>
642
566
  ```
643
567
 
644
- ### "Invalid status transition"
568
+ ### Feature Not Found
569
+
570
+ **Error:** "Feature not found" or "Entity not found"
645
571
 
646
- The transition isn't allowed by the state machine:
572
+ **Solution:** Verify ID and check workspace
647
573
 
648
574
  ```bash
649
- # Tasks: pending ready in_progress → done
650
- # Features: draft active done
651
- # Issues: open → ready → in_progress → resolved
575
+ mandor track project <project-id> # List all features
576
+ mandor track feature <feature-id> # Check if exists
652
577
  ```
653
578
 
654
- ### "Cannot create task for cancelled feature"
579
+ ---
580
+
581
+ ## Development
655
582
 
656
- Reopen the feature first:
583
+ ### Build
657
584
 
658
585
  ```bash
659
- mandor feature update <feature-id> --project <project-id> --reopen
586
+ cd Mandor
587
+ go build -o mandor ./cmd/mandor
660
588
  ```
661
589
 
662
- ---
590
+ ### Run Tests
663
591
 
592
+ ```bash
593
+ go test ./...
594
+ ```
664
595
 
665
- ## Configuration Keys
596
+ ### View All Commands
666
597
 
667
- | Key | Type | Default | Description |
668
- |-----|------|---------|-------------|
669
- | `default_priority` | string | P3 | Default priority for new entities (P0-P5) |
670
- | `strict_mode` | boolean | false | Enable strict dependency validation |
671
- | `goal.lengths.project` | integer | 500 | Min chars for project goal |
672
- | `goal.lengths.feature` | integer | 300 | Min chars for feature goal |
673
- | `goal.lengths.task` | integer | 500 | Min chars for task goal |
674
- | `goal.lengths.issue` | integer | 200 | Min chars for issue goal |
598
+ ```bash
599
+ ./mandor --help
600
+ ./mandor populate # Full reference with examples
601
+ ```
675
602
 
676
603
  ---
677
604
 
605
+ ## Key Features
678
606
 
679
- ## File Structure
680
-
681
- ```
682
- .mandor/
683
- ├── workspace.json # Workspace metadata
684
- ├── config.json # Workspace configuration
685
- ├── session-notes.jsonl # AI agent session progress notes (NDJSON)
686
- └── projects/
687
- └── <project-id>/
688
- ├── project.json # Project metadata
689
- ├── features.jsonl # Feature records
690
- ├── tasks.jsonl # Task records
691
- └── issues.jsonl # Issue records
692
- ```
693
-
694
- **Session Notes Format (session-notes.jsonl):**
695
- ```json
696
- {"timestamp":"2026-02-04T12:45:00Z","note":"Completed v0.4.4 release and testing"}
697
- {"timestamp":"2026-02-04T14:20:00Z","note":"Started performance optimization - blocked on benchmarks"}
698
- ```
607
+ **Structured Workflow**: Brief → Spec → Blueprint → Feature → Task
608
+ ✓ **Gate Enforcement**: Three read gates required before starting work
609
+ ✓ **Dependency Tracking**: Auto-blocking and auto-unblocking with cascading
610
+ ✓ **Cross-Feature Dependencies**: Tasks can depend across feature boundaries
611
+ **Session Tracking**: Session notes for AI agent progress
612
+ **CLI-Native**: Terminal, scripts, CI/CD pipelines
613
+ **Deterministic**: Single source of truth in JSONL files
614
+ **Auditable**: Full change history
699
615
 
700
616
  ---
701
617
 
702
-
703
618
  ## Support
704
619
 
705
- - Issues: https://github.com/sanxzy/mandor/issues
706
- - Documentation: `/docs` directory
707
- - Repository: https://github.com/sanxzy/mandor
620
+ - **Documentation**: Run `mandor populate` for complete command reference
621
+ - **Help**: `mandor <command> --help` for any command
622
+ - **Repository**: https://github.com/budisantoso/mandor
708
623
 
709
624
  ---
710
625
 
711
-
712
626
  **Built for AI Agent Workflows**