Zeoel sprint planner
Guidelines for Phase 2 Sprint Planning. Gohar (CEO) plans all tasks at once in docs/sprint-N/plan.md, auto-selects engine CLI and model configurations, and generates execution script files.From its SKILL.md
npx -y skills add goharabbas321/zeoel --skill zeoel-sprint-plannerAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
13.9 KB, ~3.7k tokens by cl100k_base, as published. Nobody here has run it
Zeoel Sprint Planner Skill (Phase 2)
This skill governs Phase 2: Sprint Planning.
Task Decomposition and Documentation
- Full-Feature Coverage & Scaling: Decompose the approved
PROJECT_BRIEF.mdinto concrete, numbered tasks covering 100% of the features listed or implied. DO NOT limit scope to a bare-minimum MVP. Organize tasks across multiple consecutive sprints (Sprint 1, Sprint 2, ..., Sprint S) dynamically based on the project's real size. Do NOT arbitrarily limit the roadmap to 8 sprints or fewer if the project is large. - Granular Task Decomposition: High-level block tasks like "build guest panel frontend" or "build guest panel backend" are STRICTLY FORBIDDEN. Every feature MUST be broken down into highly detailed, bite-sized tasks that can be individually implemented and tested. Decompose into:
- Specific UI page routes and component files (e.g. "Guest booking list layout component", "Guest booking form component", "Guest profile form").
- Database migrations and seeder classes.
- Eloquent models/schema constraints.
- Specific API controller methods and endpoint routes.
- Individual validation validation boundary tests and feature integration tests. Each sprint MUST contain between 10 to 20 of these granular tasks and sub-tasks to make the development system super beast and thorough.
- Large Roadmap Warning: If the decomposed roadmap exceeds 8 sprints or 80 tasks overall, Gohar MUST print a warning message first before generating any files:
β οΈ WARNING: The generated roadmap contains [X] sprints and [Y] tasks. This exceeds standard single-run token output bounds. If you experience midway generation cutoffs, switch your primary assistant CLI (e.g., from 'opencode' to 'claude' or 'codex' for larger limits, or adjust max tokens) or split the task files creation. - Upfront Planning: Forcefully plan all sprints immediately. Create the following documents under
docs/sprint-N/for every sprint N (from 1 to S):plan.md(the sprint plan table)progress.md(progress tracker with all tasks markedβ¬)deferred.md(deferred tasks tracker, empty by default)docs/deferred/backlog.md(if not already present)
- For each task in
docs/sprint-N/plan.mdfor all sprints, populate a "Run Command" column. - Forcefully generate the task script folder
docs/sprint-N/tasks/containing bash scripts (task_K.sh) for all tasks across all sprints.
Command, Engine & Model Resolution (from zeoel.config.json)
To ensure correct model routing and avoid using unavailable engines, Gohar CEO MUST read zeoel.config.json at the root of the project to find the available assistant CLIs, their available models, and the custom model_mapping settings:
- Verify Engine Availability: Only choose assistant engines that are listed under
"available_engines"and have a valid path configured inzeoel.config.json. Never select an engine that is not listed or has no path configured inzeoel.config.json. - Prioritize Custom Model Mappings: If
model_mappingis configured inzeoel.config.json, Gohar MUST resolve the engine and model for each task by matching the executing agent's ID and the task description to the correct role key (using the 14 snake_case role keys:primary_design_brain,design_polish_ux_review,design_fallback,frontend_builder,frontend_fallback,frontend_final_review,primary_architecture_reviewer,primary_security_reviewer,security_fallback,primary_backend_builder,backend_multi_file_builder,backend_fallback,fast_bug_fixing,external_final_audit), and script the task execution script (task_K.sh) with the mapped engine (--engine <engine>) and model (-m <model>). - Prioritize Primary Engine & Default Model: If no custom
model_mappingis found for a role, give strong preference to the default selected engine (primary_engine) and default model (default_model) configured inzeoel.config.json. Ifdefault_modelis specified, it should be the default choice for Standard and Complex tasks of that engine. - Cross-Engine Selection (Intelligence):
- If a specific task is highly suited for a specialized model in another available engine (for example, using a complex model like
claude-3-5-sonnetviaclaudefor complex layouts/design review, orgpt-5.5/o1viacodexfor complex logical debugging), and that engine has a valid path configured under"available_engines", Gohar can choose that model/engine combination wisely. - You MUST pick the model exactly from the
"models"list of that engine inzeoel.config.json. NEVER hardcode models (likeclaude-3-5-sonnetorgemini-3.5-flash) unless they are explicitly listed under that engine's"models"inzeoel.config.json. If no models are listed under an engine, default to standard models for that engine.
- If a specific task is highly suited for a specialized model in another available engine (for example, using a complex model like
- Task Complexity Mapping (Fallback Guidelines if specific config is absent):
- π’ Light Tasks: Prioritize flash/mini models (e.g.
gemini-2.5-flash,gpt-5.4-mini,claude-4.5-haiku, etc.) in the active engine. - π‘ Standard Tasks: Prioritize standard/pro models (e.g.
claude-4.6-sonnet,gemini-3.1-pro,gpt-5.4, etc.) in the active engine. - π΄ Complex Tasks: Prioritize reasoning/flagship models (e.g.
deepseek-v4-pro,qwen3.7-max,claude-3-opus,gpt-5.5/o1, etc.) in the active engine.
- π’ Light Tasks: Prioritize flash/mini models (e.g.
Sequential Multi-Agent Execution
If a task involves multiple agents (e.g. a developer agent and a reviewer agent, such as "karar-frontend (with mahdi-designer for design review)" or "Karar + Mahdi"):
- Gohar CEO MUST generate sequential
zeoel agent runexecution commands in the task scripttask_K.shfor each agent involved. - The script must first run the primary developer agent, and then run the reviewer agent to audit, review, or refine the code.
- You MUST write separate, consecutive execution blocks (using the node path fallback template) for each agent sequentially. Do NOT combine them into a single run command.
- Ensure each run block uses the node path fallback template. For example:
# 1. Primary Development: Senior Frontend Engineer if command -v zeoel > /dev/null 2>&1; then zeoel agent run karar-frontend "<development task description>" --engine <resolved_engine> -m <resolved_model> --live else SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" if [ -f "$SCRIPT_DIR/../../../bin/zeoel.js" ]; then node "$SCRIPT_DIR/../../../bin/zeoel.js" agent run karar-frontend "<development task description>" --engine <resolved_engine> -m <resolved_model> --live elif [ -f "$HOME/.zeoel/bin/zeoel" ]; then "$HOME/.zeoel/bin/zeoel" agent run karar-frontend "<development task description>" --engine <resolved_engine> -m <resolved_model> --live else echo "β zeoel command or script not found!" exit 1 fi fi # 2. Design Review: UX/UI Designer if command -v zeoel > /dev/null 2>&1; then zeoel agent run mahdi-designer "Review the design system & layout shell created by Karar. Verify layout, accessibility, and visual tokens." --engine <resolved_engine> -m <resolved_model> --live else SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" if [ -f "$SCRIPT_DIR/../../../bin/zeoel.js" ]; then node "$SCRIPT_DIR/../../../bin/zeoel.js" agent run mahdi-designer "Review the design system & layout shell created by Karar. Verify layout, accessibility, and visual tokens." --engine <resolved_engine> -m <resolved_model> --live elif [ -f "$HOME/.zeoel/bin/zeoel" ]; then "$HOME/.zeoel/bin/zeoel" agent run mahdi-designer "Review the design system & layout shell created by Karar. Verify layout, accessibility, and visual tokens." --engine <resolved_engine> -m <resolved_model> --live else echo "β zeoel command or script not found!" exit 1 fi fi
Shell Script Generation
For every task in the sprint plan, Gohar CEO must forcefully generate a shell script file under docs/sprint-N/tasks/task_K.sh (e.g. docs/sprint-1/tasks/task_1.sh). Additionally, Gohar CEO must forcefully generate a master sprint execution script named run_all_tasks.sh directly under docs/sprint-N/run_all_tasks.sh which executes all individual task scripts in the sprint sequentially.
CLI Commands (after planning):
- Validate planning:
zeoel sprint design N- Execute all tasks:
zeoel sprint execute N(runsrun_all_tasks.sh)- Run single task:
bash docs/sprint-N/tasks/task_K.sh
Master Run-All Script Template (docs/sprint-N/run_all_tasks.sh):
β οΈ COMPATIBILITY RULE: This script MUST be compatible with
/bin/sh,bash 3.2(macOS default), andzsh. Do NOT usemapfile,readarray, or any bash 4+ builtins. Usewhile IFS= read -rloops instead. Always use#!/bin/shas the shebang so the OS picks the right shell automatically.
#!/bin/sh
# Zeoel Master Sprint Execution Script - Sprint N
# Executes all tasks sequentially.
# Compatible with: sh, bash 3.2+, zsh (macOS, Linux, Windows/WSL)
set -eu
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
echo "π Starting Master Execution for Sprint N..."
echo ""
# Collect and sort task scripts (POSIX-compatible, no mapfile/readarray)
TASKS_DIR="$SCRIPT_DIR/tasks"
if [ ! -d "$TASKS_DIR" ]; then
echo "β Tasks directory not found: $TASKS_DIR"
exit 1
fi
found=0
find "$TASKS_DIR" -maxdepth 1 -name 'task_*.sh' | sort | while IFS= read -r task_script; do
found=1
task_name="$(basename "$task_script")"
echo "--------------------------------------------------------"
echo "π Running: $task_name"
echo "--------------------------------------------------------"
sh "$task_script"
if [ $? -ne 0 ]; then
echo "β Error: $task_name failed! Aborting sprint execution."
exit 1
fi
done
# Check if any tasks were found (find exits with 0 even when empty)
task_count=$(find "$TASKS_DIR" -maxdepth 1 -name 'task_*.sh' | wc -l | tr -d ' ')
if [ "$task_count" -eq 0 ]; then
echo "β No task scripts found in $TASKS_DIR!"
exit 1
fi
echo ""
echo "π All tasks in Sprint N executed successfully!"
The script file MUST contain the actual zeoel execution command(s) to run the task using the agent(s), NOT just descriptive comments or echo statements.
The script file MUST use this template structure (adapted for single or multiple agents):
Single Agent Example:
#!/bin/sh
# Zeoel Task Execution Script - Sprint N, Task K
# Agent: <agent-id>
# Model: <resolved-model>
# Description: <task_description>
# Compatible with: sh, bash 3.2+, zsh (macOS, Linux, Windows/WSL)
echo "π Executing Task K: <task_description>..."
echo "π€ Agent: <agent-id>"
echo "π€ Model: <resolved-model>"
echo ""
# Find framework command path or use node fallback
if command -v zeoel > /dev/null 2>&1; then
zeoel agent run <agent-id> "<task_description>" --engine <resolved_engine> -m <resolved_model> --live
else
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
if [ -f "$SCRIPT_DIR/../../../bin/zeoel.js" ]; then
node "$SCRIPT_DIR/../../../bin/zeoel.js" agent run <agent-id> "<task_description>" --engine <resolved_engine> -m <resolved_model> --live
elif [ -f "$HOME/.zeoel/bin/zeoel" ]; then
"$HOME/.zeoel/bin/zeoel" agent run <agent-id> "<task_description>" --engine <resolved_engine> -m <resolved_model> --live
else
echo "β zeoel command or script not found!"
exit 1
fi
fi
Multi-Agent Example (e.g., Karar + Mahdi):
#!/bin/sh
# Zeoel Task Execution Script - Sprint N, Task K
# Agents: <agent-1> (primary), <agent-2> (reviewer)
# Model: <resolved-model>
# Description: <task_description>
# Compatible with: sh, bash 3.2+, zsh (macOS, Linux, Windows/WSL)
echo "π Executing Task K: <task_description>..."
echo "π€ Agents: <agent-1> + <agent-2>"
echo "π€ Model: <resolved-model>"
echo ""
# 1. Primary Development
if command -v zeoel > /dev/null 2>&1; then
zeoel agent run <agent-1> "<primary_development_task_description>" --engine <resolved_engine> -m <resolved_model> --live
else
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
if [ -f "$SCRIPT_DIR/../../../bin/zeoel.js" ]; then
node "$SCRIPT_DIR/../../../bin/zeoel.js" agent run <agent-1> "<primary_development_task_description>" --engine <resolved_engine> -m <resolved_model> --live
elif [ -f "$HOME/.zeoel/bin/zeoel" ]; then
"$HOME/.zeoel/bin/zeoel" agent run <agent-1> "<primary_development_task_description>" --engine <resolved_engine> -m <resolved_model> --live
else
echo "β zeoel command or script not found!"
exit 1
fi
fi
# 2. Review / Audit / Polish
if command -v zeoel > /dev/null 2>&1; then
zeoel agent run <agent-2> "Review and audit the work completed by <agent-1> for task K. Verify against requirements: <task_description>." --engine <resolved_engine> -m <resolved_model> --live
else
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
if [ -f "$SCRIPT_DIR/../../../bin/zeoel.js" ]; then
node "$SCRIPT_DIR/../../../bin/zeoel.js" agent run <agent-2> "Review and audit the work completed by <agent-1> for task K. Verify against requirements: <task_description>." --engine <resolved_engine> -m <resolved_model> --live
elif [ -f "$HOME/.zeoel/bin/zeoel" ]; then
"$HOME/.zeoel/bin/zeoel" agent run <agent-2> "Review and audit the work completed by <agent-1> for task K. Verify against requirements: <task_description>." --engine <resolved_engine> -m <resolved_model> --live
else
echo "β zeoel command or script not found!"
exit 1
fi
fi
Do NOT omit or replace this command execution logic block.
In the docs/sprint-N/plan.md table, the "Run Command" column must contain a Markdown link to this script:
[Run Task K (task_K.sh)](file:///absolute/path/to/docs/sprint-N/tasks/task_K.sh)
And a block with the copy-pasteable command.
This allows the user to click the link to inspect the script, and run it directly in their terminal.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.