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.
Files changed (33) hide show
  1. package/README.md +508 -202
  2. package/dist/bin/cli.d.mts +1 -1
  3. package/dist/bin/cli.d.ts +1 -1
  4. package/dist/bin/cli.js +3332 -1421
  5. package/dist/bin/cli.js.map +1 -1
  6. package/dist/bin/cli.mjs +3316 -1405
  7. package/dist/bin/cli.mjs.map +1 -1
  8. package/dist/bin/feedback-collector.js.map +1 -1
  9. package/dist/bin/feedback-collector.mjs.map +1 -1
  10. package/dist/index.d.mts +56 -19
  11. package/dist/index.d.ts +56 -19
  12. package/dist/index.js +240 -36
  13. package/dist/index.js.map +1 -1
  14. package/dist/index.mjs +240 -36
  15. package/dist/index.mjs.map +1 -1
  16. package/dist/templates/scripts/install_requirements.sh +55 -5
  17. package/dist/templates/scripts/kanban.sh +11 -0
  18. package/dist/templates/services/README.md +23 -4
  19. package/dist/templates/services/__pycache__/pi.cpython-313.pyc +0 -0
  20. package/dist/templates/services/pi.py +1933 -262
  21. package/dist/templates/skills/claude/kanban-workflow/SKILL.md +138 -0
  22. package/dist/templates/skills/claude/plan-kanban-tasks/SKILL.md +1 -1
  23. package/dist/templates/skills/claude/ralph-loop/scripts/kanban.sh +11 -0
  24. package/dist/templates/skills/claude/understand-project/SKILL.md +1 -1
  25. package/dist/templates/skills/codex/kanban-workflow/SKILL.md +139 -0
  26. package/dist/templates/skills/codex/plan-kanban-tasks/SKILL.md +32 -0
  27. package/dist/templates/skills/codex/ralph-loop/scripts/kanban.sh +11 -0
  28. package/dist/templates/skills/codex/understand-project/SKILL.md +46 -0
  29. package/dist/templates/skills/pi/kanban-workflow/SKILL.md +139 -0
  30. package/dist/templates/skills/pi/plan-kanban-tasks/SKILL.md +1 -1
  31. package/dist/templates/skills/pi/ralph-loop/SKILL.md +4 -0
  32. package/dist/templates/skills/pi/understand-project/SKILL.md +1 -1
  33. 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.49",
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
- "juno-collect-feedback": "./dist/bin/feedback-collector.mjs"
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": "^10.4.5",
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": "^5.0.5",
107
- "tsup": "^8.0.1",
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"