juno-code 1.0.49 → 1.0.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +508 -202
- package/dist/bin/cli.d.mts +1 -1
- package/dist/bin/cli.d.ts +1 -1
- package/dist/bin/cli.js +3332 -1421
- package/dist/bin/cli.js.map +1 -1
- package/dist/bin/cli.mjs +3316 -1405
- package/dist/bin/cli.mjs.map +1 -1
- package/dist/bin/feedback-collector.js.map +1 -1
- package/dist/bin/feedback-collector.mjs.map +1 -1
- package/dist/index.d.mts +56 -19
- package/dist/index.d.ts +56 -19
- package/dist/index.js +240 -36
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +240 -36
- package/dist/index.mjs.map +1 -1
- package/dist/templates/scripts/install_requirements.sh +55 -5
- package/dist/templates/scripts/kanban.sh +11 -0
- package/dist/templates/services/README.md +23 -4
- package/dist/templates/services/__pycache__/pi.cpython-313.pyc +0 -0
- package/dist/templates/services/pi.py +1933 -262
- package/dist/templates/skills/claude/kanban-workflow/SKILL.md +138 -0
- package/dist/templates/skills/claude/plan-kanban-tasks/SKILL.md +1 -1
- package/dist/templates/skills/claude/ralph-loop/scripts/kanban.sh +11 -0
- package/dist/templates/skills/claude/understand-project/SKILL.md +1 -1
- package/dist/templates/skills/codex/kanban-workflow/SKILL.md +139 -0
- package/dist/templates/skills/codex/plan-kanban-tasks/SKILL.md +32 -0
- package/dist/templates/skills/codex/ralph-loop/scripts/kanban.sh +11 -0
- package/dist/templates/skills/codex/understand-project/SKILL.md +46 -0
- package/dist/templates/skills/pi/kanban-workflow/SKILL.md +139 -0
- package/dist/templates/skills/pi/plan-kanban-tasks/SKILL.md +1 -1
- package/dist/templates/skills/pi/ralph-loop/SKILL.md +4 -0
- package/dist/templates/skills/pi/understand-project/SKILL.md +1 -1
- package/package.json +7 -5
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: kanban-workflow
|
|
3
|
+
description: Comprehensive guide for using juno-kanban task management. Covers all commands (create, list, search, get, mark, update, archive, deps, ready, order, merge), dependency management, best practices, and workflow patterns. Use when you need to interact with the kanban board.
|
|
4
|
+
argument-hint: "[command or workflow question]"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Kanban CLI Reference
|
|
8
|
+
|
|
9
|
+
All commands use `./.juno_task/scripts/kanban.sh` (wrapper around juno-kanban Python CLI).
|
|
10
|
+
|
|
11
|
+
### Core Commands
|
|
12
|
+
|
|
13
|
+
**CREATE** — Add a new task
|
|
14
|
+
```bash
|
|
15
|
+
./.juno_task/scripts/kanban.sh create "Task description here" --status backlog --tags feature,backend
|
|
16
|
+
```
|
|
17
|
+
Options: `--status` (backlog|todo|in_progress|done), `--tags` (comma/space-separated), `--blocked-by` (task IDs), `--related-tasks` (task IDs)
|
|
18
|
+
|
|
19
|
+
**LIST** — Browse tasks with summary stats
|
|
20
|
+
```bash
|
|
21
|
+
./.juno_task/scripts/kanban.sh list --limit 5 --sort asc
|
|
22
|
+
./.juno_task/scripts/kanban.sh list --status todo --sort asc
|
|
23
|
+
./.juno_task/scripts/kanban.sh list --status todo,in_progress --limit 10
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
**SEARCH** — Find tasks by criteria
|
|
27
|
+
```bash
|
|
28
|
+
./.juno_task/scripts/kanban.sh search --status todo --tag backend --limit 10
|
|
29
|
+
./.juno_task/scripts/kanban.sh search --body "OAuth" --open
|
|
30
|
+
./.juno_task/scripts/kanban.sh search --commit abc123
|
|
31
|
+
```
|
|
32
|
+
Filters: `--status`, `--tag`, `--body`, `--response`, `--commit`, `--open` (no agent_response), `--recent`, `--exclude` (exclude tags)
|
|
33
|
+
|
|
34
|
+
**GET** — Full task details (including dependency info and related task details)
|
|
35
|
+
```bash
|
|
36
|
+
./.juno_task/scripts/kanban.sh get TASK_ID
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
**MARK** — Update status with required response message
|
|
40
|
+
```bash
|
|
41
|
+
./.juno_task/scripts/kanban.sh mark in_progress --id TASK_ID --response "Starting work on this"
|
|
42
|
+
./.juno_task/scripts/kanban.sh mark done --id TASK_ID --response "Completed: implemented X, tested Y" --commit abc123def
|
|
43
|
+
./.juno_task/scripts/kanban.sh mark todo --id TASK_ID --response "Reopening: found regression"
|
|
44
|
+
```
|
|
45
|
+
Required: `--id` and `--response`. Optional: `--commit` (recommended for done).
|
|
46
|
+
|
|
47
|
+
**UPDATE** — Modify task fields
|
|
48
|
+
```bash
|
|
49
|
+
./.juno_task/scripts/kanban.sh update TASK_ID --status todo --tags backend,urgent
|
|
50
|
+
./.juno_task/scripts/kanban.sh update TASK_ID --commit abc123def
|
|
51
|
+
./.juno_task/scripts/kanban.sh update TASK_ID --response "Additional context"
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**ARCHIVE** — Soft delete (preserves data, sets status to archive)
|
|
55
|
+
```bash
|
|
56
|
+
./.juno_task/scripts/kanban.sh archive TASK_ID
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### Dependency Management
|
|
60
|
+
|
|
61
|
+
**DEPS** — View, add, or remove task dependencies
|
|
62
|
+
```bash
|
|
63
|
+
# View dependency info (blockers, dependents, priority score)
|
|
64
|
+
./.juno_task/scripts/kanban.sh deps TASK_ID
|
|
65
|
+
|
|
66
|
+
# Add blockers (TASK_ID cannot start until BLOCKER1 and BLOCKER2 are done)
|
|
67
|
+
./.juno_task/scripts/kanban.sh deps add --id TASK_ID --blocked-by BLOCKER1 BLOCKER2
|
|
68
|
+
|
|
69
|
+
# Remove a blocker
|
|
70
|
+
./.juno_task/scripts/kanban.sh deps remove --id TASK_ID --blocked-by BLOCKER1
|
|
71
|
+
```
|
|
72
|
+
Cycle detection prevents circular dependencies automatically.
|
|
73
|
+
|
|
74
|
+
**READY** — Tasks with all blockers satisfied (safe to work on)
|
|
75
|
+
```bash
|
|
76
|
+
./.juno_task/scripts/kanban.sh ready
|
|
77
|
+
./.juno_task/scripts/kanban.sh ready --tag backend --limit 5
|
|
78
|
+
```
|
|
79
|
+
Returns tasks where status is backlog/todo/in_progress AND all `blocked_by` tasks are done/archive.
|
|
80
|
+
|
|
81
|
+
**ORDER** — Topological sort of open tasks respecting dependencies
|
|
82
|
+
```bash
|
|
83
|
+
./.juno_task/scripts/kanban.sh order
|
|
84
|
+
./.juno_task/scripts/kanban.sh order --scores
|
|
85
|
+
```
|
|
86
|
+
Use for determining safe parallel execution order.
|
|
87
|
+
|
|
88
|
+
### Body Markup for Inline Dependencies
|
|
89
|
+
|
|
90
|
+
Declare dependencies and relations directly in task body text:
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
[blocked_by]TASK_ID[/blocked_by] — This task is blocked by TASK_ID
|
|
94
|
+
[blocked_by]ID1, ID2[/blocked_by] — Blocked by multiple tasks
|
|
95
|
+
[task_id]RELATED_ID[/task_id] — Reference a related task
|
|
96
|
+
[task_id]ID1 ID2[/task_id] — Multiple related tasks
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
These are parsed automatically when the task is created/updated.
|
|
100
|
+
|
|
101
|
+
### Merge (Multi-Directory Consolidation)
|
|
102
|
+
|
|
103
|
+
When tasks get scattered across subdirectories:
|
|
104
|
+
```bash
|
|
105
|
+
# Auto-discover and merge all .juno_task dirs
|
|
106
|
+
./.juno_task/scripts/kanban.sh merge --find-all --into ./.juno_task --dry-run
|
|
107
|
+
|
|
108
|
+
# Merge specific sources
|
|
109
|
+
./.juno_task/scripts/kanban.sh merge ./sub1/.juno_task ./sub2/.juno_task --into ./.juno_task
|
|
110
|
+
```
|
|
111
|
+
Strategy: `--strategy keep-newer` (default) or `--strategy keep-both`.
|
|
112
|
+
|
|
113
|
+
### Output Formats
|
|
114
|
+
|
|
115
|
+
All commands support: `-f json`, `-f ndjson` (default), `-f xml`, `-f table`
|
|
116
|
+
Add `--raw` for compact output. Add `-p` for pretty print.
|
|
117
|
+
|
|
118
|
+
### Best Practices
|
|
119
|
+
|
|
120
|
+
1. **Task sizing**: Create tasks small enough to complete in one iteration without filling the context window
|
|
121
|
+
2. **Status flow**: backlog → todo → in_progress → done (or archive for abandoned tasks)
|
|
122
|
+
3. **Always include `--response`** when using `mark` — document what you did and how you tested it
|
|
123
|
+
4. **Attach commits**: Use `--commit HASH` when marking done, then `update TASK_ID --commit HASH` to link the git history
|
|
124
|
+
5. **Use `ready`** before starting work to find unblocked tasks
|
|
125
|
+
6. **Use `order --scores`** to plan parallel execution pipelines
|
|
126
|
+
7. **Use `[blocked_by]` markup** in task body when creating tasks that depend on others
|
|
127
|
+
8. **Use `[task_id]` markup** in task body to cross-reference related tasks
|
|
128
|
+
9. **Use `get TASK_ID`** to see full task details including resolved dependency and related task info
|
|
129
|
+
10. **One task in_progress at a time** — finish or re-queue before starting the next
|
|
130
|
+
|
|
131
|
+
### Environment Variables
|
|
132
|
+
|
|
133
|
+
- `JUNO_TASK_ROOT` — Pin kanban operations to a specific project root directory
|
|
134
|
+
- `JUNO_DEBUG=true` — Show diagnostic messages
|
|
135
|
+
- `JUNO_VERBOSE=true` — Show informational messages
|
|
136
|
+
- `JUNO_KANBAN_LIST_BODY_TRUNCATE_CHARS=N` — Override list body truncation (default: 1200)
|
|
137
|
+
|
|
138
|
+
$ARGUMENTS
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: plan-kanban-tasks
|
|
3
3
|
description: Generate Product Development Requirments(PDR) and create task on kanban. Use when user explictly ask for, or ask for creating a task, planing a feature, register a task on kaban. "Generate PDR"
|
|
4
|
-
argument-hint: [Required Features] [Constraints] [Specification] [Test Criteria]
|
|
4
|
+
argument-hint: "[Required Features] [Constraints] [Specification] [Test Criteria]"
|
|
5
5
|
enable-shell-directives: true
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -190,6 +190,17 @@ fi
|
|
|
190
190
|
# Change to project root
|
|
191
191
|
cd "$PROJECT_ROOT"
|
|
192
192
|
|
|
193
|
+
# Export JUNO_TASK_ROOT so juno-kanban resolves .juno_task paths from project root,
|
|
194
|
+
# not from wherever the calling agent happens to be. Respects existing override.
|
|
195
|
+
export JUNO_TASK_ROOT="${JUNO_TASK_ROOT:-$PROJECT_ROOT}"
|
|
196
|
+
|
|
197
|
+
# Prefer local juno_kanban source when available (monorepo development).
|
|
198
|
+
# This keeps wrapper behavior aligned with working-tree changes without requiring
|
|
199
|
+
# immediate reinstall from PyPI between local iterations.
|
|
200
|
+
if [[ -d "$PROJECT_ROOT/juno_kanban/src" ]]; then
|
|
201
|
+
export PYTHONPATH="$PROJECT_ROOT/juno_kanban/src${PYTHONPATH:+:$PYTHONPATH}"
|
|
202
|
+
fi
|
|
203
|
+
|
|
193
204
|
# Arrays to store normalized arguments (declared at script level for proper handling)
|
|
194
205
|
declare -a NORMALIZED_GLOBAL_FLAGS=()
|
|
195
206
|
declare -a NORMALIZED_COMMAND_ARGS=()
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: understand-project
|
|
3
3
|
description: Understand current project and create/update specs under @.juno_task/specs/* , it allows you understand dependencies. and prepare for implementation. Use when user explicitly ask you, or when asking for understand the project, first see how it works and then do [main task] with respect to [constraints]
|
|
4
|
-
argument-hint: [Main Task] [Constraints] [Ultimate Goal]
|
|
4
|
+
argument-hint: "[Main Task] [Constraints] [Ultimate Goal]"
|
|
5
5
|
enable-shell-directives: true
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: kanban-workflow
|
|
3
|
+
description: Comprehensive guide for using juno-kanban task management. Covers all commands (create, list, search, get, mark, update, archive, deps, ready, order, merge), dependency management, best practices, and workflow patterns. Use when you need to interact with the kanban board.
|
|
4
|
+
argument-hint: "[command or workflow question]"
|
|
5
|
+
enable-shell-directives: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Kanban CLI Reference
|
|
9
|
+
|
|
10
|
+
All commands use `./.juno_task/scripts/kanban.sh` (wrapper around juno-kanban Python CLI).
|
|
11
|
+
|
|
12
|
+
### Core Commands
|
|
13
|
+
|
|
14
|
+
**CREATE** — Add a new task
|
|
15
|
+
```bash
|
|
16
|
+
./.juno_task/scripts/kanban.sh create "Task description here" --status backlog --tags feature,backend
|
|
17
|
+
```
|
|
18
|
+
Options: `--status` (backlog|todo|in_progress|done), `--tags` (comma/space-separated), `--blocked-by` (task IDs), `--related-tasks` (task IDs)
|
|
19
|
+
|
|
20
|
+
**LIST** — Browse tasks with summary stats
|
|
21
|
+
```bash
|
|
22
|
+
./.juno_task/scripts/kanban.sh list --limit 5 --sort asc
|
|
23
|
+
./.juno_task/scripts/kanban.sh list --status todo --sort asc
|
|
24
|
+
./.juno_task/scripts/kanban.sh list --status todo,in_progress --limit 10
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
**SEARCH** — Find tasks by criteria
|
|
28
|
+
```bash
|
|
29
|
+
./.juno_task/scripts/kanban.sh search --status todo --tag backend --limit 10
|
|
30
|
+
./.juno_task/scripts/kanban.sh search --body "OAuth" --open
|
|
31
|
+
./.juno_task/scripts/kanban.sh search --commit abc123
|
|
32
|
+
```
|
|
33
|
+
Filters: `--status`, `--tag`, `--body`, `--response`, `--commit`, `--open` (no agent_response), `--recent`, `--exclude` (exclude tags)
|
|
34
|
+
|
|
35
|
+
**GET** — Full task details (including dependency info and related task details)
|
|
36
|
+
```bash
|
|
37
|
+
./.juno_task/scripts/kanban.sh get TASK_ID
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**MARK** — Update status with required response message
|
|
41
|
+
```bash
|
|
42
|
+
./.juno_task/scripts/kanban.sh mark in_progress --id TASK_ID --response "Starting work on this"
|
|
43
|
+
./.juno_task/scripts/kanban.sh mark done --id TASK_ID --response "Completed: implemented X, tested Y" --commit abc123def
|
|
44
|
+
./.juno_task/scripts/kanban.sh mark todo --id TASK_ID --response "Reopening: found regression"
|
|
45
|
+
```
|
|
46
|
+
Required: `--id` and `--response`. Optional: `--commit` (recommended for done).
|
|
47
|
+
|
|
48
|
+
**UPDATE** — Modify task fields
|
|
49
|
+
```bash
|
|
50
|
+
./.juno_task/scripts/kanban.sh update TASK_ID --status todo --tags backend,urgent
|
|
51
|
+
./.juno_task/scripts/kanban.sh update TASK_ID --commit abc123def
|
|
52
|
+
./.juno_task/scripts/kanban.sh update TASK_ID --response "Additional context"
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**ARCHIVE** — Soft delete (preserves data, sets status to archive)
|
|
56
|
+
```bash
|
|
57
|
+
./.juno_task/scripts/kanban.sh archive TASK_ID
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Dependency Management
|
|
61
|
+
|
|
62
|
+
**DEPS** — View, add, or remove task dependencies
|
|
63
|
+
```bash
|
|
64
|
+
# View dependency info (blockers, dependents, priority score)
|
|
65
|
+
./.juno_task/scripts/kanban.sh deps TASK_ID
|
|
66
|
+
|
|
67
|
+
# Add blockers (TASK_ID cannot start until BLOCKER1 and BLOCKER2 are done)
|
|
68
|
+
./.juno_task/scripts/kanban.sh deps add --id TASK_ID --blocked-by BLOCKER1 BLOCKER2
|
|
69
|
+
|
|
70
|
+
# Remove a blocker
|
|
71
|
+
./.juno_task/scripts/kanban.sh deps remove --id TASK_ID --blocked-by BLOCKER1
|
|
72
|
+
```
|
|
73
|
+
Cycle detection prevents circular dependencies automatically.
|
|
74
|
+
|
|
75
|
+
**READY** — Tasks with all blockers satisfied (safe to work on)
|
|
76
|
+
```bash
|
|
77
|
+
./.juno_task/scripts/kanban.sh ready
|
|
78
|
+
./.juno_task/scripts/kanban.sh ready --tag backend --limit 5
|
|
79
|
+
```
|
|
80
|
+
Returns tasks where status is backlog/todo/in_progress AND all `blocked_by` tasks are done/archive.
|
|
81
|
+
|
|
82
|
+
**ORDER** — Topological sort of open tasks respecting dependencies
|
|
83
|
+
```bash
|
|
84
|
+
./.juno_task/scripts/kanban.sh order
|
|
85
|
+
./.juno_task/scripts/kanban.sh order --scores
|
|
86
|
+
```
|
|
87
|
+
Use for determining safe parallel execution order.
|
|
88
|
+
|
|
89
|
+
### Body Markup for Inline Dependencies
|
|
90
|
+
|
|
91
|
+
Declare dependencies and relations directly in task body text:
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
[blocked_by]TASK_ID[/blocked_by] — This task is blocked by TASK_ID
|
|
95
|
+
[blocked_by]ID1, ID2[/blocked_by] — Blocked by multiple tasks
|
|
96
|
+
[task_id]RELATED_ID[/task_id] — Reference a related task
|
|
97
|
+
[task_id]ID1 ID2[/task_id] — Multiple related tasks
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
These are parsed automatically when the task is created/updated.
|
|
101
|
+
|
|
102
|
+
### Merge (Multi-Directory Consolidation)
|
|
103
|
+
|
|
104
|
+
When tasks get scattered across subdirectories:
|
|
105
|
+
```bash
|
|
106
|
+
# Auto-discover and merge all .juno_task dirs
|
|
107
|
+
./.juno_task/scripts/kanban.sh merge --find-all --into ./.juno_task --dry-run
|
|
108
|
+
|
|
109
|
+
# Merge specific sources
|
|
110
|
+
./.juno_task/scripts/kanban.sh merge ./sub1/.juno_task ./sub2/.juno_task --into ./.juno_task
|
|
111
|
+
```
|
|
112
|
+
Strategy: `--strategy keep-newer` (default) or `--strategy keep-both`.
|
|
113
|
+
|
|
114
|
+
### Output Formats
|
|
115
|
+
|
|
116
|
+
All commands support: `-f json`, `-f ndjson` (default), `-f xml`, `-f table`
|
|
117
|
+
Add `--raw` for compact output. Add `-p` for pretty print.
|
|
118
|
+
|
|
119
|
+
### Best Practices
|
|
120
|
+
|
|
121
|
+
1. **Task sizing**: Create tasks small enough to complete in one iteration without filling the context window
|
|
122
|
+
2. **Status flow**: backlog → todo → in_progress → done (or archive for abandoned tasks)
|
|
123
|
+
3. **Always include `--response`** when using `mark` — document what you did and how you tested it
|
|
124
|
+
4. **Attach commits**: Use `--commit HASH` when marking done, then `update TASK_ID --commit HASH` to link the git history
|
|
125
|
+
5. **Use `ready`** before starting work to find unblocked tasks
|
|
126
|
+
6. **Use `order --scores`** to plan parallel execution pipelines
|
|
127
|
+
7. **Use `[blocked_by]` markup** in task body when creating tasks that depend on others
|
|
128
|
+
8. **Use `[task_id]` markup** in task body to cross-reference related tasks
|
|
129
|
+
9. **Use `get TASK_ID`** to see full task details including resolved dependency and related task info
|
|
130
|
+
10. **One task in_progress at a time** — finish or re-queue before starting the next
|
|
131
|
+
|
|
132
|
+
### Environment Variables
|
|
133
|
+
|
|
134
|
+
- `JUNO_TASK_ROOT` — Pin kanban operations to a specific project root directory
|
|
135
|
+
- `JUNO_DEBUG=true` — Show diagnostic messages
|
|
136
|
+
- `JUNO_VERBOSE=true` — Show informational messages
|
|
137
|
+
- `JUNO_KANBAN_LIST_BODY_TRUNCATE_CHARS=N` — Override list body truncation (default: 1200)
|
|
138
|
+
|
|
139
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: plan-kanban-tasks
|
|
3
|
+
description: Generate Product Development Requirments(PDR) and create task on kanban. Use when user explictly ask for, or ask for creating a task, planing a feature, register a task on kaban. "Generate PDR"
|
|
4
|
+
argument-hint: "[Required Features] [Constraints] [Specification] [Test Criteria]"
|
|
5
|
+
enable-shell-directives: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
Ultrathink for this task
|
|
9
|
+
First task is to study @.juno_task/plan.md (it may be incorrect)
|
|
10
|
+
and study what is needed to achieve the main task.
|
|
11
|
+
|
|
12
|
+
Second Task is to understand the task, create a spec for process to follow, plan to execute, scripts to create, virtual enviroment that we need, things that we need to be aware of, how to test the scripts and follow progress.
|
|
13
|
+
Think hard and plan/create spec for every step of this task
|
|
14
|
+
and for each part create a seperate .md file under @.juno_task/specs/\*
|
|
15
|
+
|
|
16
|
+
## Task 2
|
|
17
|
+
|
|
18
|
+
Update @.juno_task/plan.md with the new specs and Requirments.
|
|
19
|
+
|
|
20
|
+
## Part 3
|
|
21
|
+
|
|
22
|
+
Create PDR on kanban, kanban is available in @.juno_task/scripts/kanban.sh
|
|
23
|
+
In the task body, include requirments, success criteria, test scenarios and jobs to be done.
|
|
24
|
+
For each chunk of the required feature create a seperate task, we want tasks, small enough to be done in one iteration, without compacting context window.
|
|
25
|
+
|
|
26
|
+
### Specs
|
|
27
|
+
|
|
28
|
+
Current state of specs under @.juno_task/specs/
|
|
29
|
+
|
|
30
|
+
!`ls -lrt .juno_task/specs/`
|
|
31
|
+
|
|
32
|
+
$ARGUMENTS
|
|
@@ -190,6 +190,17 @@ fi
|
|
|
190
190
|
# Change to project root
|
|
191
191
|
cd "$PROJECT_ROOT"
|
|
192
192
|
|
|
193
|
+
# Export JUNO_TASK_ROOT so juno-kanban resolves .juno_task paths from project root,
|
|
194
|
+
# not from wherever the calling agent happens to be. Respects existing override.
|
|
195
|
+
export JUNO_TASK_ROOT="${JUNO_TASK_ROOT:-$PROJECT_ROOT}"
|
|
196
|
+
|
|
197
|
+
# Prefer local juno_kanban source when available (monorepo development).
|
|
198
|
+
# This keeps wrapper behavior aligned with working-tree changes without requiring
|
|
199
|
+
# immediate reinstall from PyPI between local iterations.
|
|
200
|
+
if [[ -d "$PROJECT_ROOT/juno_kanban/src" ]]; then
|
|
201
|
+
export PYTHONPATH="$PROJECT_ROOT/juno_kanban/src${PYTHONPATH:+:$PYTHONPATH}"
|
|
202
|
+
fi
|
|
203
|
+
|
|
193
204
|
# Arrays to store normalized arguments (declared at script level for proper handling)
|
|
194
205
|
declare -a NORMALIZED_GLOBAL_FLAGS=()
|
|
195
206
|
declare -a NORMALIZED_COMMAND_ARGS=()
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: understand-project
|
|
3
|
+
description: Understand current project and create/update specs under @.juno_task/specs/* , it allows you understand dependencies. and prepare for implementation. Use when user explicitly ask you, or when asking for understand the project, first see how it works and then do [main task] with respect to [constraints]
|
|
4
|
+
argument-hint: "[Main Task] [Constraints] [Ultimate Goal]"
|
|
5
|
+
enable-shell-directives: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Main Task
|
|
9
|
+
|
|
10
|
+
!`jq -r '.mainTask' ./.juno_task/config.json`
|
|
11
|
+
|
|
12
|
+
$1
|
|
13
|
+
|
|
14
|
+
### Task 1
|
|
15
|
+
|
|
16
|
+
Ultrathink !
|
|
17
|
+
First task is to study @.juno_task/plan.md (it may be incorrect) and is to use up to 500 subagents to study existing project
|
|
18
|
+
and study what is needed to achieve the main task.
|
|
19
|
+
From that create/update a @.juno_task/plan.md which is a bullet point list sorted in priority of the items which have yet to be implemeneted. Think extra hard.
|
|
20
|
+
Study @.juno_task/plan.md to determine starting point for research and keep it up to date with items considered complete/incomplete using subagents.
|
|
21
|
+
|
|
22
|
+
### Task 2
|
|
23
|
+
|
|
24
|
+
Second Task is to understand the task, create a spec for process to follow, plan to execute, scripts to create, virtual enviroment that we need, things that we need to be aware of, how to test the scripts and follow progress.
|
|
25
|
+
Think hard and plan/create spec for every step of this task
|
|
26
|
+
and for each part create a seperate .md file under @.juno_task/specs/\*
|
|
27
|
+
|
|
28
|
+
## ULTIMATE Goal
|
|
29
|
+
|
|
30
|
+
We want to achieve the main Task with respect to the Constraints section
|
|
31
|
+
Consider missing steps and plan. If the step is missing then author the specification at @.juno_task/specs/FILENAME.md (do NOT assume that it does not exist, search before creating). The naming of the module should be GenZ named and not conflict with another module name. If you create a new step then document the plan to implement in @.juno_task/plan.md
|
|
32
|
+
|
|
33
|
+
### @.juno_task/specs/ file format.
|
|
34
|
+
|
|
35
|
+
- github flavored markdown
|
|
36
|
+
- GenZ module names and without conflict to another module name.
|
|
37
|
+
- Start with Priority in Codebase, Example: P0-core-module.md
|
|
38
|
+
- the goal is when we run `ls` command in the specs folder we could understand what are the cornerstone of the project with one glance.
|
|
39
|
+
|
|
40
|
+
### Constraints
|
|
41
|
+
|
|
42
|
+
$1
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
$ARGUMENTS
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: kanban-workflow
|
|
3
|
+
description: Comprehensive guide for using juno-kanban task management. Covers all commands (create, list, search, get, mark, update, archive, deps, ready, order, merge), dependency management, best practices, and workflow patterns. Use when you need to interact with the kanban board.
|
|
4
|
+
argument-hint: "[command or workflow question]"
|
|
5
|
+
enable-shell-directives: true
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Kanban CLI Reference
|
|
9
|
+
|
|
10
|
+
All commands use `./.juno_task/scripts/kanban.sh` (wrapper around juno-kanban Python CLI).
|
|
11
|
+
|
|
12
|
+
### Core Commands
|
|
13
|
+
|
|
14
|
+
**CREATE** — Add a new task
|
|
15
|
+
```bash
|
|
16
|
+
./.juno_task/scripts/kanban.sh create "Task description here" --status backlog --tags feature,backend
|
|
17
|
+
```
|
|
18
|
+
Options: `--status` (backlog|todo|in_progress|done), `--tags` (comma/space-separated), `--blocked-by` (task IDs), `--related-tasks` (task IDs)
|
|
19
|
+
|
|
20
|
+
**LIST** — Browse tasks with summary stats
|
|
21
|
+
```bash
|
|
22
|
+
./.juno_task/scripts/kanban.sh list --limit 5 --sort asc
|
|
23
|
+
./.juno_task/scripts/kanban.sh list --status todo --sort asc
|
|
24
|
+
./.juno_task/scripts/kanban.sh list --status todo,in_progress --limit 10
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
**SEARCH** — Find tasks by criteria
|
|
28
|
+
```bash
|
|
29
|
+
./.juno_task/scripts/kanban.sh search --status todo --tag backend --limit 10
|
|
30
|
+
./.juno_task/scripts/kanban.sh search --body "OAuth" --open
|
|
31
|
+
./.juno_task/scripts/kanban.sh search --commit abc123
|
|
32
|
+
```
|
|
33
|
+
Filters: `--status`, `--tag`, `--body`, `--response`, `--commit`, `--open` (no agent_response), `--recent`, `--exclude` (exclude tags)
|
|
34
|
+
|
|
35
|
+
**GET** — Full task details (including dependency info and related task details)
|
|
36
|
+
```bash
|
|
37
|
+
./.juno_task/scripts/kanban.sh get TASK_ID
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**MARK** — Update status with required response message
|
|
41
|
+
```bash
|
|
42
|
+
./.juno_task/scripts/kanban.sh mark in_progress --id TASK_ID --response "Starting work on this"
|
|
43
|
+
./.juno_task/scripts/kanban.sh mark done --id TASK_ID --response "Completed: implemented X, tested Y" --commit abc123def
|
|
44
|
+
./.juno_task/scripts/kanban.sh mark todo --id TASK_ID --response "Reopening: found regression"
|
|
45
|
+
```
|
|
46
|
+
Required: `--id` and `--response`. Optional: `--commit` (recommended for done).
|
|
47
|
+
|
|
48
|
+
**UPDATE** — Modify task fields
|
|
49
|
+
```bash
|
|
50
|
+
./.juno_task/scripts/kanban.sh update TASK_ID --status todo --tags backend,urgent
|
|
51
|
+
./.juno_task/scripts/kanban.sh update TASK_ID --commit abc123def
|
|
52
|
+
./.juno_task/scripts/kanban.sh update TASK_ID --response "Additional context"
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**ARCHIVE** — Soft delete (preserves data, sets status to archive)
|
|
56
|
+
```bash
|
|
57
|
+
./.juno_task/scripts/kanban.sh archive TASK_ID
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Dependency Management
|
|
61
|
+
|
|
62
|
+
**DEPS** — View, add, or remove task dependencies
|
|
63
|
+
```bash
|
|
64
|
+
# View dependency info (blockers, dependents, priority score)
|
|
65
|
+
./.juno_task/scripts/kanban.sh deps TASK_ID
|
|
66
|
+
|
|
67
|
+
# Add blockers (TASK_ID cannot start until BLOCKER1 and BLOCKER2 are done)
|
|
68
|
+
./.juno_task/scripts/kanban.sh deps add --id TASK_ID --blocked-by BLOCKER1 BLOCKER2
|
|
69
|
+
|
|
70
|
+
# Remove a blocker
|
|
71
|
+
./.juno_task/scripts/kanban.sh deps remove --id TASK_ID --blocked-by BLOCKER1
|
|
72
|
+
```
|
|
73
|
+
Cycle detection prevents circular dependencies automatically.
|
|
74
|
+
|
|
75
|
+
**READY** — Tasks with all blockers satisfied (safe to work on)
|
|
76
|
+
```bash
|
|
77
|
+
./.juno_task/scripts/kanban.sh ready
|
|
78
|
+
./.juno_task/scripts/kanban.sh ready --tag backend --limit 5
|
|
79
|
+
```
|
|
80
|
+
Returns tasks where status is backlog/todo/in_progress AND all `blocked_by` tasks are done/archive.
|
|
81
|
+
|
|
82
|
+
**ORDER** — Topological sort of open tasks respecting dependencies
|
|
83
|
+
```bash
|
|
84
|
+
./.juno_task/scripts/kanban.sh order
|
|
85
|
+
./.juno_task/scripts/kanban.sh order --scores
|
|
86
|
+
```
|
|
87
|
+
Use for determining safe parallel execution order.
|
|
88
|
+
|
|
89
|
+
### Body Markup for Inline Dependencies
|
|
90
|
+
|
|
91
|
+
Declare dependencies and relations directly in task body text:
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
[blocked_by]TASK_ID[/blocked_by] — This task is blocked by TASK_ID
|
|
95
|
+
[blocked_by]ID1, ID2[/blocked_by] — Blocked by multiple tasks
|
|
96
|
+
[task_id]RELATED_ID[/task_id] — Reference a related task
|
|
97
|
+
[task_id]ID1 ID2[/task_id] — Multiple related tasks
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
These are parsed automatically when the task is created/updated.
|
|
101
|
+
|
|
102
|
+
### Merge (Multi-Directory Consolidation)
|
|
103
|
+
|
|
104
|
+
When tasks get scattered across subdirectories:
|
|
105
|
+
```bash
|
|
106
|
+
# Auto-discover and merge all .juno_task dirs
|
|
107
|
+
./.juno_task/scripts/kanban.sh merge --find-all --into ./.juno_task --dry-run
|
|
108
|
+
|
|
109
|
+
# Merge specific sources
|
|
110
|
+
./.juno_task/scripts/kanban.sh merge ./sub1/.juno_task ./sub2/.juno_task --into ./.juno_task
|
|
111
|
+
```
|
|
112
|
+
Strategy: `--strategy keep-newer` (default) or `--strategy keep-both`.
|
|
113
|
+
|
|
114
|
+
### Output Formats
|
|
115
|
+
|
|
116
|
+
All commands support: `-f json`, `-f ndjson` (default), `-f xml`, `-f table`
|
|
117
|
+
Add `--raw` for compact output. Add `-p` for pretty print.
|
|
118
|
+
|
|
119
|
+
### Best Practices
|
|
120
|
+
|
|
121
|
+
1. **Task sizing**: Create tasks small enough to complete in one iteration without filling the context window
|
|
122
|
+
2. **Status flow**: backlog → todo → in_progress → done (or archive for abandoned tasks)
|
|
123
|
+
3. **Always include `--response`** when using `mark` — document what you did and how you tested it
|
|
124
|
+
4. **Attach commits**: Use `--commit HASH` when marking done, then `update TASK_ID --commit HASH` to link the git history
|
|
125
|
+
5. **Use `ready`** before starting work to find unblocked tasks
|
|
126
|
+
6. **Use `order --scores`** to plan parallel execution pipelines
|
|
127
|
+
7. **Use `[blocked_by]` markup** in task body when creating tasks that depend on others
|
|
128
|
+
8. **Use `[task_id]` markup** in task body to cross-reference related tasks
|
|
129
|
+
9. **Use `get TASK_ID`** to see full task details including resolved dependency and related task info
|
|
130
|
+
10. **One task in_progress at a time** — finish or re-queue before starting the next
|
|
131
|
+
|
|
132
|
+
### Environment Variables
|
|
133
|
+
|
|
134
|
+
- `JUNO_TASK_ROOT` — Pin kanban operations to a specific project root directory
|
|
135
|
+
- `JUNO_DEBUG=true` — Show diagnostic messages
|
|
136
|
+
- `JUNO_VERBOSE=true` — Show informational messages
|
|
137
|
+
- `JUNO_KANBAN_LIST_BODY_TRUNCATE_CHARS=N` — Override list body truncation (default: 1200)
|
|
138
|
+
|
|
139
|
+
$ARGUMENTS
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: plan-kanban-tasks
|
|
3
3
|
description: Generate Product Development Requirments(PDR) and create task on kanban. Use when user explictly ask for, or ask for creating a task, planing a feature, register a task on kaban. "Generate PDR"
|
|
4
|
-
argument-hint: [Required Features] [Constraints] [Specification] [Test Criteria]
|
|
4
|
+
argument-hint: "[Required Features] [Constraints] [Specification] [Test Criteria]"
|
|
5
5
|
enable-shell-directives: true
|
|
6
6
|
---
|
|
7
7
|
|
|
@@ -37,3 +37,7 @@ description: should only get executed with explicit user request.
|
|
|
37
37
|
1012. After reveiwing Feedback, if you find an open issue, you need to update previously handled issues status as well. If user reporting a bug, that earlier on reported on the Tasks or @AGENTS.md as resolved. You should update it to reflect that the issue is not resolved.
|
|
38
38
|
it would be ok to include past reasoning and root causing to the open issue, You should mention. <PREVIOUS_AGENT_ATTEMP> Tag and describe the approach already taken, so the agent knows 1.the issue is still open,2. past approaches to resolve it, what it was, and know that it has failed.
|
|
39
39
|
Tasks , USER_FEEDBACK and @AGENTS.md should repesent truth. User Open Issue is a high level of truth. so you need to reflect it on the files.
|
|
40
|
+
|
|
41
|
+
<SPECIFIC_INSTRUCTION>
|
|
42
|
+
$ARGUMENTS
|
|
43
|
+
</SPECIFIC_INSTRUCTION>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: understand-project
|
|
3
3
|
description: Understand current project and create/update specs under @.juno_task/specs/* , it allows you understand dependencies. and prepare for implementation. Use when user explicitly ask you, or when asking for understand the project, first see how it works and then do [main task] with respect to [constraints]
|
|
4
|
-
argument-hint: [Main Task] [Constraints] [Ultimate Goal]
|
|
4
|
+
argument-hint: "[Main Task] [Constraints] [Ultimate Goal]"
|
|
5
5
|
enable-shell-directives: true
|
|
6
6
|
---
|
|
7
7
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "juno-code",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.51",
|
|
4
4
|
"description": "Ralph Wiggum meet Kanban! Ralph style execution for [Claude Code, Codex, Gemini, Cursor]. One task per iteration, automatic progress tracking, and git commits. Set it and let it run.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Ralph",
|
|
@@ -31,7 +31,8 @@
|
|
|
31
31
|
},
|
|
32
32
|
"bin": {
|
|
33
33
|
"juno-code": "./dist/bin/juno-code.sh",
|
|
34
|
-
"
|
|
34
|
+
"yy": "./dist/bin/juno-code.sh",
|
|
35
|
+
"feedback-juno-code": "./dist/bin/feedback-collector.mjs"
|
|
35
36
|
},
|
|
36
37
|
"files": [
|
|
37
38
|
"dist",
|
|
@@ -81,7 +82,7 @@
|
|
|
81
82
|
"commander": "^11.1.0",
|
|
82
83
|
"execa": "^8.0.1",
|
|
83
84
|
"fs-extra": "^11.1.1",
|
|
84
|
-
"glob": "^
|
|
85
|
+
"glob": "^13.0.6",
|
|
85
86
|
"js-yaml": "^4.1.1",
|
|
86
87
|
"semver": "^7.5.4",
|
|
87
88
|
"strip-ansi": "^7.1.2",
|
|
@@ -103,8 +104,9 @@
|
|
|
103
104
|
"eslint": "^8.55.0",
|
|
104
105
|
"eslint-config-prettier": "^9.1.0",
|
|
105
106
|
"prettier": "^3.1.1",
|
|
106
|
-
"rimraf": "^
|
|
107
|
-
"
|
|
107
|
+
"rimraf": "^6.1.3",
|
|
108
|
+
"sucrase": "^3.35.1",
|
|
109
|
+
"tsup": "^8.5.1",
|
|
108
110
|
"tsx": "^4.6.2",
|
|
109
111
|
"typescript": "^5.3.3",
|
|
110
112
|
"vitest": "^1.0.4"
|