juno-code 1.0.47 → 1.0.50

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 (60) hide show
  1. package/README.md +455 -205
  2. package/dist/bin/cli.d.mts +17 -0
  3. package/dist/bin/cli.d.ts +17 -0
  4. package/dist/bin/cli.js +6456 -17604
  5. package/dist/bin/cli.js.map +1 -1
  6. package/dist/bin/cli.mjs +6443 -17589
  7. package/dist/bin/cli.mjs.map +1 -1
  8. package/dist/bin/feedback-collector.d.mts +2 -0
  9. package/dist/bin/feedback-collector.d.ts +2 -0
  10. package/dist/bin/feedback-collector.js.map +1 -1
  11. package/dist/bin/feedback-collector.mjs.map +1 -1
  12. package/dist/index.d.mts +2133 -0
  13. package/dist/index.d.ts +2133 -0
  14. package/dist/index.js +3916 -14711
  15. package/dist/index.js.map +1 -1
  16. package/dist/index.mjs +3914 -14516
  17. package/dist/index.mjs.map +1 -1
  18. package/dist/templates/extensions/pi/juno-skill-preprocessor.ts +239 -0
  19. package/dist/templates/scripts/__pycache__/github.cpython-313.pyc +0 -0
  20. package/dist/templates/scripts/__pycache__/parallel_runner.cpython-313.pyc +0 -0
  21. package/dist/templates/scripts/__pycache__/slack_respond.cpython-313.pyc +0 -0
  22. package/dist/templates/scripts/install_requirements.sh +41 -3
  23. package/dist/templates/scripts/kanban.sh +22 -4
  24. package/dist/templates/scripts/parallel_runner.sh +2242 -0
  25. package/dist/templates/services/README.md +61 -1
  26. package/dist/templates/services/__pycache__/claude.cpython-313.pyc +0 -0
  27. package/dist/templates/services/__pycache__/codex.cpython-313.pyc +0 -0
  28. package/dist/templates/services/__pycache__/pi.cpython-313.pyc +0 -0
  29. package/dist/templates/services/claude.py +132 -33
  30. package/dist/templates/services/codex.py +179 -66
  31. package/dist/templates/services/gemini.py +117 -27
  32. package/dist/templates/services/pi.py +2796 -0
  33. package/dist/templates/skills/claude/kanban-workflow/SKILL.md +138 -0
  34. package/dist/templates/skills/claude/plan-kanban-tasks/SKILL.md +15 -8
  35. package/dist/templates/skills/claude/ralph-loop/SKILL.md +18 -22
  36. package/dist/templates/skills/claude/ralph-loop/references/first_check.md +15 -14
  37. package/dist/templates/skills/claude/ralph-loop/references/implement.md +17 -17
  38. package/dist/templates/skills/claude/ralph-loop/scripts/kanban.sh +22 -4
  39. package/dist/templates/skills/claude/understand-project/SKILL.md +15 -8
  40. package/dist/templates/skills/codex/kanban-workflow/SKILL.md +139 -0
  41. package/dist/templates/skills/codex/plan-kanban-tasks/SKILL.md +32 -0
  42. package/dist/templates/skills/codex/ralph-loop/SKILL.md +18 -22
  43. package/dist/templates/skills/codex/ralph-loop/references/first_check.md +15 -14
  44. package/dist/templates/skills/codex/ralph-loop/references/implement.md +17 -17
  45. package/dist/templates/skills/codex/ralph-loop/scripts/kanban.sh +22 -4
  46. package/dist/templates/skills/codex/understand-project/SKILL.md +46 -0
  47. package/dist/templates/skills/pi/.gitkeep +0 -0
  48. package/dist/templates/skills/pi/kanban-workflow/SKILL.md +139 -0
  49. package/dist/templates/skills/pi/plan-kanban-tasks/SKILL.md +32 -0
  50. package/dist/templates/skills/pi/ralph-loop/SKILL.md +43 -0
  51. package/dist/templates/skills/pi/ralph-loop/references/first_check.md +21 -0
  52. package/dist/templates/skills/pi/ralph-loop/references/implement.md +99 -0
  53. package/dist/templates/skills/pi/understand-project/SKILL.md +46 -0
  54. package/package.json +26 -46
  55. package/dist/templates/scripts/__pycache__/attachment_downloader.cpython-38.pyc +0 -0
  56. package/dist/templates/scripts/__pycache__/github.cpython-38.pyc +0 -0
  57. package/dist/templates/scripts/__pycache__/slack_fetch.cpython-38.pyc +0 -0
  58. package/dist/templates/scripts/__pycache__/slack_state.cpython-38.pyc +0 -0
  59. package/dist/templates/services/__pycache__/claude.cpython-38.pyc +0 -0
  60. package/dist/templates/services/__pycache__/codex.cpython-38.pyc +0 -0
@@ -2,42 +2,38 @@
2
2
  name: ralph-loop
3
3
  description: should only get executed with explicit user request.
4
4
  ---
5
- 0a. study [references/implement.md](references/implement.md).
6
5
 
7
- 0b. When you discover a syntax, logic, UI, User Flow Error or bug. Immediately update tasks.md with your findings using a subagent. When the issue is resolved, update tasks.md and remove the item using a subagent.
6
+ 0a. study [references/implement.md](references/implement.md).
8
7
 
8
+ 0b. When you discover a syntax, logic, UI, User Flow Error or bug. Immediately update tasks.md with your findings using a subagent. When the issue is resolved, update tasks.md and remove the item using a subagent.
9
9
 
10
10
  999. Important: When authoring documentation capture the why tests and the backing implementation is important.
11
11
 
12
- 9999. Important: We want single sources of truth, no migrations/adapters. If tests unrelated to your work fail then it's your job to resolve these tests as part of the increment of change.
13
-
14
- 999999. As soon as there are no build or test errors create a git tag. If there are no git tags start at 0.0.0 and increment patch by 1 for example 0.0.1 if 0.0.0 does not exist.
15
-
16
- 999999999. You may add extra logging if required to be able to debug the issues.
17
-
18
- 9999999999. ALWAYS KEEP Tasks up to date with your learnings using a subagent. Especially after wrapping up/finishing your turn.
19
-
12
+ 1000. Important: We want single sources of truth, no migrations/adapters. If tests unrelated to your work fail then it's your job to resolve these tests as part of the increment of change.
20
13
 
14
+ 1001. As soon as there are no build or test errors create a git tag. If there are no git tags start at 0.0.0 and increment patch by 1 for example 0.0.1 if 0.0.0 does not exist.
21
15
 
22
- 99999999999. When you learn something new about how to run the app or examples make sure you update @AGENTS.md using a subagent but keep it brief. For example if you run commands multiple times before learning the correct command then that file should be updated.
16
+ 1002. You may add extra logging if required to be able to debug the issues.
23
17
 
24
- 999999999999. IMPORTANT when you discover a bug resolve it using subagents even if it is unrelated to the current piece of work after documenting it in Tasks
18
+ 1003. ALWAYS KEEP Tasks up to date with your learnings using a subagent. Especially after wrapping up/finishing your turn.
25
19
 
26
- 9999999999999999999. Keep @AGENTS.md up to date with information on how to build the app and your learnings to optimize the build/test loop using a subagent.
20
+ 1004. When you learn something new about how to run the app or examples make sure you update @AGENTS.md using a subagent but keep it brief. For example if you run commands multiple times before learning the correct command then that file should be updated.
27
21
 
28
- 999999999999999999999. For any bugs you notice, it's important to resolve them or document them in Tasks to be resolved using a subagent.
22
+ 1005. IMPORTANT when you discover a bug resolve it using subagents even if it is unrelated to the current piece of work after documenting it in Tasks
29
23
 
30
- 99999999999999999999999. When authoring the missing features you may author multiple standard libraries at once using up to 1000 parallel subagents
24
+ 1006. Keep @AGENTS.md up to date with information on how to build the app and your learnings to optimize the build/test loop using a subagent.
31
25
 
32
- 99999999999999999999999999. When Tasks, AGENTS.md becomes large periodically clean out the items that are completed from the file using a subagent.
33
- Large AGENTS.md reduce the performance.
26
+ 1007. For any bugs you notice, it's important to resolve them or document them in Tasks to be resolved using a subagent.
34
27
 
28
+ 1008. When authoring the missing features you may author multiple standard libraries at once using up to 1000 parallel subagents
35
29
 
30
+ 1009. When Tasks, AGENTS.md becomes large periodically clean out the items that are completed from the file using a subagent.
31
+ Large AGENTS.md reduce the performance.
36
32
 
37
- 9999999999999999999999999999. DO NOT IMPLEMENT PLACEHOLDER OR SIMPLE IMPLEMENTATIONS. WE WANT FULL IMPLEMENTATIONS. DO IT OR I WILL YELL AT YOU
33
+ 1010. DO NOT IMPLEMENT PLACEHOLDER OR SIMPLE IMPLEMENTATIONS. WE WANT FULL IMPLEMENTATIONS. DO IT OR I WILL YELL AT YOU
38
34
 
39
- 9999999999999999999999999999999. SUPER IMPORTANT DO NOT IGNORE. DO NOT PLACE STATUS REPORT UPDATES INTO @AGENTS.md
35
+ 1011. SUPER IMPORTANT DO NOT IGNORE. DO NOT PLACE STATUS REPORT UPDATES INTO @AGENTS.md
40
36
 
41
- 99999999999999999999999999999999. 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.
42
- 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.
43
- 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.
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
+ 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
+ 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.
@@ -3,18 +3,19 @@
3
3
  Perform these check once, to make sure about the git logic. There is no need to keep running this on every execution.
4
4
 
5
5
  **Detection & Creation Logic**:
6
- - Check if the following command succeeds to determine if the repository is a git repo (create/verify .gitignore if so):
7
6
 
8
- ```sh
9
- git rev-parse --git-dir 2>/dev/null
10
- ```
11
- - Check if Dockerfile* exists or Docker in plan.md → create/verify .dockerignore
12
- - Check if .eslintrc* or eslint.config.* exists → create/verify .eslintignore
13
- - Check if .prettierrc* exists → create/verify .prettierignore
14
- - Check if .npmrc or package.json exists → create/verify .npmignore (if publishing)
15
- - Check if terraform files (*.tf) exist → create/verify .terraformignore
16
- - Check if .helmignore needed (helm charts present) → create/verify .helmignore
17
-
18
- **If ignore file already exists**: Verify it contains essential patterns, append missing critical patterns only
19
- **If ignore file missing**: Create with full pattern set for detected technology
20
-
7
+ - Check if the following command succeeds to determine if the repository is a git repo (create/verify .gitignore if so):
8
+
9
+ ```sh
10
+ git rev-parse --git-dir 2>/dev/null
11
+ ```
12
+
13
+ - Check if Dockerfile\* exists or Docker in plan.md → create/verify .dockerignore
14
+ - Check if .eslintrc* or eslint.config.* exists → create/verify .eslintignore
15
+ - Check if .prettierrc\* exists → create/verify .prettierignore
16
+ - Check if .npmrc or package.json exists → create/verify .npmignore (if publishing)
17
+ - Check if terraform files (\*.tf) exist create/verify .terraformignore
18
+ - Check if .helmignore needed (helm charts present) create/verify .helmignore
19
+
20
+ **If ignore file already exists**: Verify it contains essential patterns, append missing critical patterns only
21
+ **If ignore file missing**: Create with full pattern set for detected technology
@@ -3,6 +3,7 @@ description: Study kanban.sh and Execute the implementation plan by processing a
3
3
  ---
4
4
 
5
5
  ## User Input
6
+
6
7
  ```text
7
8
  A.
8
9
  **ALWAYS check remaing tasks and user feedbacks. Integrate it into the plan,
@@ -40,27 +41,28 @@ it would be ok to include past reasoning and root causing to the open issue, You
40
41
 
41
42
  C. Using parallel subagents. You may use up to 500 parallel subagents for all operations but only 1 subagent for build/tests.
42
43
 
43
- D. Choose the most important 1 things, ( Based on Open Issue and Also Tasks ), Think hard about what is the most important Task.
44
+ D. Choose the most important 1 things, ( Based on Open Issue and Also Tasks ), Think hard about what is the most important Task.
44
45
 
45
46
  E. update status of most important task on ./juno_task/scripts/kanban.sh.
46
47
  (if the task is not on ./juno_task/scripts/kanban.sh, create it ! Kanban is our source of truth)
47
48
  `./juno_task/scripts/kanban.sh mark in_progress --ID {Task_ID}`
48
49
 
49
50
 
50
- F. Implement the most important 1 thing following the outline.
51
+ F. Implement the most important 1 thing following the outline.
51
52
 
52
53
  ```
53
54
 
54
55
  You **MUST** consider the user input before proceeding (if not empty).
55
56
 
56
57
  ## Outline
57
-
58
+
58
59
  . Execute implementation following the task plan:
59
- - **Phase-by-phase execution**: Complete each phase before moving to the next
60
- - **Respect dependencies**: Run sequential tasks in order, parallel tasks [P] can run together
61
- - **Follow TDD approach**: Execute test tasks before their corresponding implementation tasks
62
- - **File-based coordination**: Tasks affecting the same files must run sequentially
63
- - **Validation checkpoints**: Verify each phase completion before proceeding
60
+
61
+ - **Phase-by-phase execution**: Complete each phase before moving to the next
62
+ - **Respect dependencies**: Run sequential tasks in order, parallel tasks [P] can run together
63
+ - **Follow TDD approach**: Execute test tasks before their corresponding implementation tasks
64
+ - **File-based coordination**: Tasks affecting the same files must run sequentially
65
+ - **Validation checkpoints**: Verify each phase completion before proceeding
64
66
 
65
67
  7. Implementation execution rules:
66
68
  - **Setup first**: Initialize project structure, dependencies, configuration
@@ -77,8 +79,8 @@ You **MUST** consider the user input before proceeding (if not empty).
77
79
  - Suggest next steps if implementation cannot proceed
78
80
  - **IMPORTANT** For completed tasks, make sure to mark the task off as [X] in the tasks file.
79
81
  - **IMPORTANT** Keep ./juno_task/scripts/kanban.sh up-to-date
80
- When the issue is resolved always update ./juno_task/scripts/kanban.sh
81
- `./juno_task/scripts/kanban.sh --status {status} --ID {task_id} --response "{key actions you take, and how you did test it}"`
82
+ When the issue is resolved always update ./juno_task/scripts/kanban.sh
83
+ `./juno_task/scripts/kanban.sh --status {status} --ID {task_id} --response "{key actions you take, and how you did test it}"`
82
84
 
83
85
  9. Completion validation:
84
86
  - Verify all required tasks are completed
@@ -87,13 +89,11 @@ You **MUST** consider the user input before proceeding (if not empty).
87
89
  - Confirm the implementation follows the technical plan
88
90
  - Report final status with summary of completed work
89
91
  - When the issue is resolved always update ./juno_task/scripts/kanban.sh
90
- `./juno_task/scripts/kanban.sh --mark done --ID {task_id} --response "{key actions you take, and how you did test it}"`
92
+ `./juno_task/scripts/kanban.sh --mark done --ID {task_id} --response "{key actions you take, and how you did test it}"`
91
93
 
92
94
  10. Git
93
95
 
94
- When the tests pass update ./juno_task/scripts/kanban.sh, then add changed code with "git add -A" via bash then do a "git commit" with a message that describes the changes you made to the code. After the commit do a "git push" to push the changes to the remote repository.
95
- Use commit message as a backlog of what has achieved. So later on we would know exactly what we achieved in each commit.
96
- Update the task in ./juno_task/scripts/kanban.sh with the commit hash so later on we could map each task to a specific git commit
97
- `./juno_task/scripts/kanban.sh update {task_id} --commit {commit_hash}`
98
-
99
-
96
+ When the tests pass update ./juno_task/scripts/kanban.sh, then add changed code with "git add -A" via bash then do a "git commit" with a message that describes the changes you made to the code. After the commit do a "git push" to push the changes to the remote repository.
97
+ Use commit message as a backlog of what has achieved. So later on we would know exactly what we achieved in each commit.
98
+ Update the task in ./juno_task/scripts/kanban.sh with the commit hash so later on we could map each task to a specific git commit
99
+ `./juno_task/scripts/kanban.sh update {task_id} --commit {commit_hash}`
@@ -170,12 +170,30 @@ ensure_python_environment() {
170
170
  # Get the directory where this script is located
171
171
  SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
172
172
 
173
- # Navigate to project root (parent of scripts directory)
174
- PROJECT_ROOT="$( cd "$SCRIPT_DIR/../../../.." && pwd )"
173
+ # Auto-discover project root by walking up the directory tree looking for .juno_task/
174
+ # This makes kanban.sh work from any installation depth (e.g. .juno_task/scripts/,
175
+ # .claude/skills/ralph-loop/scripts/, etc.) without a hardcoded relative path.
176
+ PROJECT_ROOT=""
177
+ _dir="$SCRIPT_DIR"
178
+ while [[ "$_dir" != "/" ]]; do
179
+ if [[ -d "$_dir/.juno_task" ]]; then
180
+ PROJECT_ROOT="$_dir"
181
+ break
182
+ fi
183
+ _dir="$( cd "$_dir/.." && pwd )"
184
+ done
185
+ if [[ -z "$PROJECT_ROOT" ]]; then
186
+ echo "ERROR: Could not find project root (no .juno_task/ directory found above $SCRIPT_DIR)" >&2
187
+ exit 1
188
+ fi
175
189
 
176
190
  # Change to project root
177
191
  cd "$PROJECT_ROOT"
178
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
+
179
197
  # Arrays to store normalized arguments (declared at script level for proper handling)
180
198
  declare -a NORMALIZED_GLOBAL_FLAGS=()
181
199
  declare -a NORMALIZED_COMMAND_ARGS=()
@@ -192,7 +210,7 @@ normalize_arguments() {
192
210
  local found_command=false
193
211
 
194
212
  # Known subcommands
195
- local commands="create search get show update archive mark list merge"
213
+ local commands="create search get show update archive mark list merge ready deps order"
196
214
 
197
215
  while [[ $# -gt 0 ]]; do
198
216
  case $1 in
@@ -207,7 +225,7 @@ normalize_arguments() {
207
225
  fi
208
226
  ;;
209
227
  # Global flags that don't take a value
210
- -p|--pretty|--raw|-v|--verbose|-h|--help|--version)
228
+ -p|--pretty|--raw|-v|--verbose|--version)
211
229
  NORMALIZED_GLOBAL_FLAGS+=("$1")
212
230
  shift
213
231
  ;;
@@ -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
File without changes
@@ -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
@@ -0,0 +1,43 @@
1
+ ---
2
+ name: ralph-loop
3
+ description: should only get executed with explicit user request.
4
+ ---
5
+
6
+ 0a. study [references/implement.md](references/implement.md).
7
+
8
+ 0b. When you discover a syntax, logic, UI, User Flow Error or bug. Immediately update tasks.md with your findings using a subagent. When the issue is resolved, update tasks.md and remove the item using a subagent.
9
+
10
+ 999. Important: When authoring documentation capture the why tests and the backing implementation is important.
11
+
12
+ 1000. Important: We want single sources of truth, no migrations/adapters. If tests unrelated to your work fail then it's your job to resolve these tests as part of the increment of change.
13
+
14
+ 1001. As soon as there are no build or test errors create a git tag. If there are no git tags start at 0.0.0 and increment patch by 1 for example 0.0.1 if 0.0.0 does not exist.
15
+
16
+ 1002. You may add extra logging if required to be able to debug the issues.
17
+
18
+ 1003. ALWAYS KEEP Tasks up to date with your learnings using a subagent. Especially after wrapping up/finishing your turn.
19
+
20
+ 1004. When you learn something new about how to run the app or examples make sure you update @AGENTS.md using a subagent but keep it brief. For example if you run commands multiple times before learning the correct command then that file should be updated.
21
+
22
+ 1005. IMPORTANT when you discover a bug resolve it using subagents even if it is unrelated to the current piece of work after documenting it in Tasks
23
+
24
+ 1006. Keep @AGENTS.md up to date with information on how to build the app and your learnings to optimize the build/test loop using a subagent.
25
+
26
+ 1007. For any bugs you notice, it's important to resolve them or document them in Tasks to be resolved using a subagent.
27
+
28
+ 1008. When authoring the missing features you may author multiple standard libraries at once using up to 1000 parallel subagents
29
+
30
+ 1009. When Tasks, AGENTS.md becomes large periodically clean out the items that are completed from the file using a subagent.
31
+ Large AGENTS.md reduce the performance.
32
+
33
+ 1010. DO NOT IMPLEMENT PLACEHOLDER OR SIMPLE IMPLEMENTATIONS. WE WANT FULL IMPLEMENTATIONS. DO IT OR I WILL YELL AT YOU
34
+
35
+ 1011. SUPER IMPORTANT DO NOT IGNORE. DO NOT PLACE STATUS REPORT UPDATES INTO @AGENTS.md
36
+
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
+ 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
+ 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>
@@ -0,0 +1,21 @@
1
+ ### Check once
2
+
3
+ Perform these check once, to make sure about the git logic. There is no need to keep running this on every execution.
4
+
5
+ **Detection & Creation Logic**:
6
+
7
+ - Check if the following command succeeds to determine if the repository is a git repo (create/verify .gitignore if so):
8
+
9
+ ```sh
10
+ git rev-parse --git-dir 2>/dev/null
11
+ ```
12
+
13
+ - Check if Dockerfile\* exists or Docker in plan.md → create/verify .dockerignore
14
+ - Check if .eslintrc* or eslint.config.* exists → create/verify .eslintignore
15
+ - Check if .prettierrc\* exists → create/verify .prettierignore
16
+ - Check if .npmrc or package.json exists → create/verify .npmignore (if publishing)
17
+ - Check if terraform files (\*.tf) exist → create/verify .terraformignore
18
+ - Check if .helmignore needed (helm charts present) → create/verify .helmignore
19
+
20
+ **If ignore file already exists**: Verify it contains essential patterns, append missing critical patterns only
21
+ **If ignore file missing**: Create with full pattern set for detected technology
@@ -0,0 +1,99 @@
1
+ ---
2
+ description: Study kanban.sh and Execute the implementation plan by processing and executing all tasks defined in ./juno_task/tasks.md, update ./juno_task/tasks.md with the tasks on kanban
3
+ ---
4
+
5
+ ## User Input
6
+
7
+ ```text
8
+ A.
9
+ **ALWAYS check remaing tasks and user feedbacks. Integrate it into the plan,
10
+ this is the primary mechanism for user input and for you to track your progress.
11
+ `./juno_task/scripts/kanban.sh list --limit 5`
12
+ return the most recent 5 Tasks and their status and potential agent response to them.
13
+
14
+ **Important** ./juno_task/scripts/kanban.sh has already installed in your enviroment and you can execute it in your bash.
15
+
16
+ A-1.
17
+ read @.juno_task/USER_FEEDBACK.md user feedback on your current execution will be writeen here. And will guide you. If user wants to talk to you while you are working , he will write into this file. first think you do is to read it file.
18
+
19
+ B.
20
+ Based on Items in **./juno_task/scripts/kanban.sh** reflect on @.juno_task/plan.md and keep it up-to-date.
21
+ 0g. Entities and their status in **./juno_task/scripts/kanban.sh** has higher priority and level of truth than other parts of the app.
22
+ If you see user report a bug that you earlier marked as resolved, you need to investigate the issue again.
23
+ ./juno_task/scripts/kanban.sh items has the higher level of truth. Always
24
+
25
+ 0e. Status in ./juno_task/scripts/kanban.sh could be backlog, todo, in_progress, done.
26
+ in_progress, todo, backlog. That is the priority of tasks in general sense, unless you find something with 10X magnitute of importance, or if you do it first it make other tasks easier or unnecessary.
27
+
28
+
29
+ 0f. After reviwing 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 feedback/plan or AGENTS.md as resolved. You should update it to reflect that the issue is not resolved.
30
+ `./juno_task/scripts/kanban.sh mark todo --ID {Task_ID}`
31
+
32
+ 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
33
+ 1.the issue is still open,
34
+ 2. past approaches to resolve it, what it was, and know that it has failed.
35
+ `./juno_task/scripts/kanban.sh mark todo --ID {Task_ID} --response "<PREVIOUS_AGENT_ATTEMP>{what happend before ...}<PREVIOUS_AGENT_ATTEMP>" `
36
+
37
+ **Note** updating response will REPLACE response. So you need to include everything important from the past as well you can check the content of a task with
38
+ `./juno_task/scripts/kanban.sh get {TASK_ID}`
39
+
40
+
41
+
42
+ C. Using parallel subagents. You may use up to 500 parallel subagents for all operations but only 1 subagent for build/tests.
43
+
44
+ D. Choose the most important 1 things, ( Based on Open Issue and Also Tasks ), Think hard about what is the most important Task.
45
+
46
+ E. update status of most important task on ./juno_task/scripts/kanban.sh.
47
+ (if the task is not on ./juno_task/scripts/kanban.sh, create it ! Kanban is our source of truth)
48
+ `./juno_task/scripts/kanban.sh mark in_progress --ID {Task_ID}`
49
+
50
+
51
+ F. Implement the most important 1 thing following the outline.
52
+
53
+ ```
54
+
55
+ You **MUST** consider the user input before proceeding (if not empty).
56
+
57
+ ## Outline
58
+
59
+ . Execute implementation following the task plan:
60
+
61
+ - **Phase-by-phase execution**: Complete each phase before moving to the next
62
+ - **Respect dependencies**: Run sequential tasks in order, parallel tasks [P] can run together
63
+ - **Follow TDD approach**: Execute test tasks before their corresponding implementation tasks
64
+ - **File-based coordination**: Tasks affecting the same files must run sequentially
65
+ - **Validation checkpoints**: Verify each phase completion before proceeding
66
+
67
+ 7. Implementation execution rules:
68
+ - **Setup first**: Initialize project structure, dependencies, configuration
69
+ - **Tests before code**: If you need to write tests for contracts, entities, and integration scenarios
70
+ - **Core development**: Implement models, services, CLI commands, endpoints
71
+ - **Integration work**: Database connections, middleware, logging, external services
72
+ - **Polish and validation**: Unit tests, performance optimization, documentation
73
+
74
+ 8. Progress tracking and error handling:
75
+ - Report progress after each completed task
76
+ - Halt execution if any non-parallel task fails
77
+ - For parallel tasks [P], continue with successful tasks, report failed ones
78
+ - Provide clear error messages with context for debugging
79
+ - Suggest next steps if implementation cannot proceed
80
+ - **IMPORTANT** For completed tasks, make sure to mark the task off as [X] in the tasks file.
81
+ - **IMPORTANT** Keep ./juno_task/scripts/kanban.sh up-to-date
82
+ When the issue is resolved always update ./juno_task/scripts/kanban.sh
83
+ `./juno_task/scripts/kanban.sh --status {status} --ID {task_id} --response "{key actions you take, and how you did test it}"`
84
+
85
+ 9. Completion validation:
86
+ - Verify all required tasks are completed
87
+ - Check that implemented features match the original specification
88
+ - Validate that tests pass and coverage meets requirements
89
+ - Confirm the implementation follows the technical plan
90
+ - Report final status with summary of completed work
91
+ - When the issue is resolved always update ./juno_task/scripts/kanban.sh
92
+ `./juno_task/scripts/kanban.sh --mark done --ID {task_id} --response "{key actions you take, and how you did test it}"`
93
+
94
+ 10. Git
95
+
96
+ When the tests pass update ./juno_task/scripts/kanban.sh, then add changed code with "git add -A" via bash then do a "git commit" with a message that describes the changes you made to the code. After the commit do a "git push" to push the changes to the remote repository.
97
+ Use commit message as a backlog of what has achieved. So later on we would know exactly what we achieved in each commit.
98
+ Update the task in ./juno_task/scripts/kanban.sh with the commit hash so later on we could map each task to a specific git commit
99
+ `./juno_task/scripts/kanban.sh update {task_id} --commit {commit_hash}`