juno-code 1.0.46 → 1.0.49
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 +44 -8
- package/dist/bin/cli.d.mts +17 -0
- package/dist/bin/cli.d.ts +17 -0
- package/dist/bin/cli.js +5601 -17505
- package/dist/bin/cli.js.map +1 -1
- package/dist/bin/cli.mjs +5640 -17542
- package/dist/bin/cli.mjs.map +1 -1
- package/dist/bin/feedback-collector.d.mts +2 -0
- package/dist/bin/feedback-collector.d.ts +2 -0
- package/dist/bin/feedback-collector.js.map +1 -1
- package/dist/bin/feedback-collector.mjs.map +1 -1
- package/dist/index.d.mts +2107 -0
- package/dist/index.d.ts +2107 -0
- package/dist/index.js +3760 -14728
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +3761 -14536
- package/dist/index.mjs.map +1 -1
- package/dist/templates/extensions/pi/juno-skill-preprocessor.ts +239 -0
- package/dist/templates/scripts/__pycache__/github.cpython-313.pyc +0 -0
- package/dist/templates/scripts/__pycache__/parallel_runner.cpython-313.pyc +0 -0
- package/dist/templates/scripts/__pycache__/slack_respond.cpython-313.pyc +0 -0
- package/dist/templates/scripts/kanban.sh +18 -4
- package/dist/templates/scripts/parallel_runner.sh +2242 -0
- package/dist/templates/services/README.md +61 -1
- package/dist/templates/services/__pycache__/claude.cpython-313.pyc +0 -0
- package/dist/templates/services/__pycache__/codex.cpython-313.pyc +0 -0
- package/dist/templates/services/__pycache__/pi.cpython-313.pyc +0 -0
- package/dist/templates/services/claude.py +132 -33
- package/dist/templates/services/codex.py +179 -66
- package/dist/templates/services/gemini.py +117 -27
- package/dist/templates/services/pi.py +1753 -0
- package/dist/templates/skills/claude/plan-kanban-tasks/SKILL.md +14 -7
- package/dist/templates/skills/claude/ralph-loop/SKILL.md +18 -22
- package/dist/templates/skills/claude/ralph-loop/references/first_check.md +15 -14
- package/dist/templates/skills/claude/ralph-loop/references/implement.md +17 -17
- package/dist/templates/skills/claude/ralph-loop/scripts/kanban.sh +18 -4
- package/dist/templates/skills/claude/understand-project/SKILL.md +14 -7
- package/dist/templates/skills/codex/ralph-loop/SKILL.md +18 -22
- package/dist/templates/skills/codex/ralph-loop/references/first_check.md +15 -14
- package/dist/templates/skills/codex/ralph-loop/references/implement.md +17 -17
- package/dist/templates/skills/codex/ralph-loop/scripts/kanban.sh +18 -4
- package/dist/templates/skills/pi/.gitkeep +0 -0
- package/dist/templates/skills/pi/plan-kanban-tasks/SKILL.md +32 -0
- package/dist/templates/skills/pi/ralph-loop/SKILL.md +39 -0
- package/dist/templates/skills/pi/ralph-loop/references/first_check.md +21 -0
- package/dist/templates/skills/pi/ralph-loop/references/implement.md +99 -0
- package/dist/templates/skills/pi/understand-project/SKILL.md +46 -0
- package/package.json +20 -42
- package/dist/templates/scripts/__pycache__/attachment_downloader.cpython-38.pyc +0 -0
- package/dist/templates/scripts/__pycache__/github.cpython-38.pyc +0 -0
- package/dist/templates/scripts/__pycache__/slack_fetch.cpython-38.pyc +0 -0
- package/dist/templates/scripts/__pycache__/slack_state.cpython-38.pyc +0 -0
- package/dist/templates/services/__pycache__/claude.cpython-38.pyc +0 -0
- package/dist/templates/services/__pycache__/codex.cpython-38.pyc +0 -0
|
@@ -1,25 +1,32 @@
|
|
|
1
1
|
---
|
|
2
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.
|
|
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
4
|
argument-hint: [Required Features] [Constraints] [Specification] [Test Criteria]
|
|
5
|
+
enable-shell-directives: true
|
|
5
6
|
---
|
|
6
7
|
|
|
7
|
-
|
|
8
|
+
Ultrathink for this task
|
|
9
|
+
First task is to study @.juno_task/plan.md (it may be incorrect)
|
|
8
10
|
and study what is needed to achieve the main task.
|
|
9
11
|
|
|
10
|
-
|
|
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.
|
|
12
13
|
Think hard and plan/create spec for every step of this task
|
|
13
|
-
and for each part create a seperate .md file under @.juno_task/specs
|
|
14
|
+
and for each part create a seperate .md file under @.juno_task/specs/\*
|
|
14
15
|
|
|
15
16
|
## Task 2
|
|
17
|
+
|
|
16
18
|
Update @.juno_task/plan.md with the new specs and Requirments.
|
|
17
19
|
|
|
18
|
-
## Part 3
|
|
20
|
+
## Part 3
|
|
19
21
|
|
|
20
|
-
Create PDR on kanban, kanban is available in @.juno_task/scripts/kanban.sh
|
|
21
|
-
In the task body, include requirments, success criteria, test scenarios and jobs to be done.
|
|
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.
|
|
22
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.
|
|
23
25
|
|
|
26
|
+
### Specs
|
|
27
|
+
|
|
28
|
+
Current state of specs under @.juno_task/specs/
|
|
24
29
|
|
|
30
|
+
!`ls -lrt .juno_task/specs/`
|
|
25
31
|
|
|
32
|
+
$ARGUMENTS
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
16
|
+
1002. You may add extra logging if required to be able to debug the issues.
|
|
23
17
|
|
|
24
|
-
|
|
18
|
+
1003. ALWAYS KEEP Tasks up to date with your learnings using a subagent. Especially after wrapping up/finishing your turn.
|
|
25
19
|
|
|
26
|
-
|
|
20
|
+
1004. When you learn something new about how to run the app or examples make sure you update @Claude.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
|
-
|
|
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
|
-
|
|
24
|
+
1006. Keep @Claude.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
|
-
|
|
33
|
-
Large Claude.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, Claude.md becomes large periodically clean out the items that are completed from the file using a subagent.
|
|
31
|
+
Large Claude.md reduce the performance.
|
|
36
32
|
|
|
37
|
-
|
|
33
|
+
1010. DO NOT IMPLEMENT PLACEHOLDER OR SIMPLE IMPLEMENTATIONS. WE WANT FULL IMPLEMENTATIONS. DO IT OR I WILL YELL AT YOU
|
|
38
34
|
|
|
39
|
-
|
|
35
|
+
1011. SUPER IMPORTANT DO NOT IGNORE. DO NOT PLACE STATUS REPORT UPDATES INTO @Claude.md
|
|
40
36
|
|
|
41
|
-
|
|
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 @Claude.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 @Claude.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 @Claude.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
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
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
|
-
|
|
81
|
-
|
|
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
|
-
|
|
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
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
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,8 +170,22 @@ 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
|
-
#
|
|
174
|
-
|
|
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"
|
|
@@ -192,7 +206,7 @@ normalize_arguments() {
|
|
|
192
206
|
local found_command=false
|
|
193
207
|
|
|
194
208
|
# Known subcommands
|
|
195
|
-
local commands="create search get show update archive mark list merge"
|
|
209
|
+
local commands="create search get show update archive mark list merge ready deps order"
|
|
196
210
|
|
|
197
211
|
while [[ $# -gt 0 ]]; do
|
|
198
212
|
case $1 in
|
|
@@ -207,7 +221,7 @@ normalize_arguments() {
|
|
|
207
221
|
fi
|
|
208
222
|
;;
|
|
209
223
|
# Global flags that don't take a value
|
|
210
|
-
-p|--pretty|--raw|-v|--verbose
|
|
224
|
+
-p|--pretty|--raw|-v|--verbose|--version)
|
|
211
225
|
NORMALIZED_GLOBAL_FLAGS+=("$1")
|
|
212
226
|
shift
|
|
213
227
|
;;
|
|
@@ -1,33 +1,40 @@
|
|
|
1
1
|
---
|
|
2
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]
|
|
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
4
|
argument-hint: [Main Task] [Constraints] [Ultimate Goal]
|
|
5
|
+
enable-shell-directives: true
|
|
5
6
|
---
|
|
6
7
|
|
|
8
|
+
## Main Task
|
|
7
9
|
|
|
10
|
+
!`jq -r '.mainTask' ./.juno_task/config.json`
|
|
8
11
|
|
|
9
|
-
|
|
10
|
-
$0
|
|
12
|
+
$1
|
|
11
13
|
|
|
12
14
|
### Task 1
|
|
13
|
-
|
|
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
|
|
14
18
|
and study what is needed to achieve the main task.
|
|
15
|
-
From that create/update a @.juno_task/plan.md
|
|
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.
|
|
16
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.
|
|
17
21
|
|
|
18
22
|
### Task 2
|
|
23
|
+
|
|
19
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.
|
|
20
25
|
Think hard and plan/create spec for every step of this task
|
|
21
|
-
and for each part create a seperate .md file under @.juno_task/specs
|
|
26
|
+
and for each part create a seperate .md file under @.juno_task/specs/\*
|
|
22
27
|
|
|
23
28
|
## ULTIMATE Goal
|
|
29
|
+
|
|
24
30
|
We want to achieve the main Task with respect to the Constraints section
|
|
25
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
|
|
26
32
|
|
|
27
33
|
### @.juno_task/specs/ file format.
|
|
34
|
+
|
|
28
35
|
- github flavored markdown
|
|
29
36
|
- GenZ module names and without conflict to another module name.
|
|
30
|
-
- Start with Priority in Codebase, Example: P0-core-module.md
|
|
37
|
+
- Start with Priority in Codebase, Example: P0-core-module.md
|
|
31
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.
|
|
32
39
|
|
|
33
40
|
### Constraints
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
16
|
+
1002. You may add extra logging if required to be able to debug the issues.
|
|
23
17
|
|
|
24
|
-
|
|
18
|
+
1003. ALWAYS KEEP Tasks up to date with your learnings using a subagent. Especially after wrapping up/finishing your turn.
|
|
25
19
|
|
|
26
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
33
|
+
1010. DO NOT IMPLEMENT PLACEHOLDER OR SIMPLE IMPLEMENTATIONS. WE WANT FULL IMPLEMENTATIONS. DO IT OR I WILL YELL AT YOU
|
|
38
34
|
|
|
39
|
-
|
|
35
|
+
1011. SUPER IMPORTANT DO NOT IGNORE. DO NOT PLACE STATUS REPORT UPDATES INTO @AGENTS.md
|
|
40
36
|
|
|
41
|
-
|
|
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
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
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
|
-
|
|
81
|
-
|
|
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
|
-
|
|
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
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
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,8 +170,22 @@ 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
|
-
#
|
|
174
|
-
|
|
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"
|
|
@@ -192,7 +206,7 @@ normalize_arguments() {
|
|
|
192
206
|
local found_command=false
|
|
193
207
|
|
|
194
208
|
# Known subcommands
|
|
195
|
-
local commands="create search get show update archive mark list merge"
|
|
209
|
+
local commands="create search get show update archive mark list merge ready deps order"
|
|
196
210
|
|
|
197
211
|
while [[ $# -gt 0 ]]; do
|
|
198
212
|
case $1 in
|
|
@@ -207,7 +221,7 @@ normalize_arguments() {
|
|
|
207
221
|
fi
|
|
208
222
|
;;
|
|
209
223
|
# Global flags that don't take a value
|
|
210
|
-
-p|--pretty|--raw|-v|--verbose
|
|
224
|
+
-p|--pretty|--raw|-v|--verbose|--version)
|
|
211
225
|
NORMALIZED_GLOBAL_FLAGS+=("$1")
|
|
212
226
|
shift
|
|
213
227
|
;;
|
|
File without changes
|
|
@@ -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,39 @@
|
|
|
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.
|