humansintheloop-dev/humansintheloop-dev-workflow-and-tools/plan-file-management
Claude Code and agent skill by humansintheloop-dev/humansintheloop-dev-workflow-and-tools
- community
Checking that the SKILL.md file is still in the repository.
Structural CRUD and reordering operations on plan files via the `i2code plan` CLI — insert/replace/delete/reorder threads and tasks, mark tasks/steps complete or incomplete, fix numbering, and query plan structure (get-next-task, get-thread, get-task, get-summary, list-threads). Claude MUST use this skill (not raw file edits) for any change to a plan file's threads, tasks, or steps, and for reading plan structure programmatically.
Install
npx vskill@latest install humansintheloop-dev/humansintheloop-dev-workflow-and-tools/plan-file-managementSKILL.md
Plan File Management
Structural operations on plan files such as renumbering threads and tasks.
All operations are subcommands of the i2code CLI tool, invoked as:
i2code plan <subcommand> <plan_file> [options]
Schemas
JSON arguments to the commands below MUST conform to these schemas:
- references/task.schema.json — the object passed via
--task-fileand the items of the--tasks/--tasks-filearrays. - references/thread.schema.json — the object passed via no single flag today; its
tasks[]array is what--tasks/--tasks-fileaccept, and itstitle/introductionfields correspond to the--title/--introductionflags oninsert-thread-before,insert-thread-after, andreplace-thread.
The schemas are the source of truth for field names, required-ness, and value constraints (including the task_type enum). The per-command sections below describe how each command consumes these objects but do not re-state the schema.
fix-numbering
Renumber all threads and tasks sequentially. Run this after arbitrary edits made outside the script.
i2code plan fix-numbering <path-to-plan-file>
Run this after:
- Inserting or deleting threads or tasks
- Rearranging plan sections
- When the user asks to renumber or fix numbering
mark-task-complete
Mark a task and all its steps as complete. Optionally appends to change history if rationale is provided.
i2code plan mark-task-complete <plan_file> --thread <N> --task <M> [--rationale <text>]
Errors if the task does not exist or is already complete.
mark-task-incomplete
Mark a completed task and all its steps as incomplete. The reverse of mark-task-complete. Optionally appends to change history if rationale is provided.
i2code plan mark-task-incomplete <plan_file> --thread <N> --task <M> [--rationale <text>]
Errors if the task does not exist or is already incomplete.
reorder-threads
Reorder threads according to a specified ordering, then auto-renumber all threads and tasks.
i2code plan reorder-threads <plan_file> --order <comma-separated-thread-numbers> --rationale <text>
Example: --order 3,1,2 moves thread 3 to position 1, thread 1 to position 2, thread 2 to position 3.
Errors if --order does not contain exactly the set of existing thread numbers.
insert-thread-before
Insert a fully structured thread before a specified thread, then auto-renumber.
i2code plan insert-thread-before <plan_file> --before <N> --title <title> --introduction <text> --tasks <json> --rationale <text>
i2code plan insert-thread-before <plan_file> --before <N> --title <title> --introduction <text> --tasks-file <path> --rationale <text>
The --tasks argument is a JSON array of task objects (see spec for schema). Use --tasks-file instead of --tasks when the JSON is large or contains characters that are difficult to escape in the shell. Write the JSON file to the idea directory (alongside the plan file) and delete it after use. --tasks and --tasks-file are mutually exclusive; exactly one is required.
insert-thread-after
Insert a fully structured thread after a specified thread, then auto-renumber.
i2code plan insert-thread-after <plan_file> --after <N> --title <title> --introduction <text> --tasks <json> --rationale <text>
i2code plan insert-thread-after <plan_file> --after <N> --title <title> --introduction <text> --tasks-file <path> --rationale <text>
Use --tasks-file instead of --tasks when the JSON is large or contains characters that are difficult to escape in the shell. Write the JSON file to the idea directory (alongside the plan file) and delete it after use. --tasks and --tasks-file are mutually exclusive; exactly one is required.
get-next-task
Return the first uncompleted task across the plan, with full metadata and steps. Prints a message if all tasks are complete.
i2code plan get-next-task <plan_file>
list-threads
Return all threads with their numbers, titles, and task completion counts.
i2code plan list-threads <plan_file>
get-summary
Return the plan's name, idea type, overview, and progress (thread count, task count, completed task count).
i2code plan get-summary <plan_file>
get-thread
Return a specific thread's full content including number, title, introduction, and all tasks with their metadata and steps.
i2code plan get-thread <plan_file> --thread <N> [--json]
Errors if the thread does not exist.
With --json, prints the thread as a thread.schema.json object (title, introduction, tasks[]), where each task is a task.schema.json object. Use it to revise existing tasks without retyping them:
i2code plan get-thread <plan_file> --thread <N> --json > thread.json # edit thread.json, then write its tasks array to tasks.json i2code plan replace-thread <plan_file> --thread <N> --title <title> --introduction <text> --tasks-file tasks.json --rationale <text>
Passing the JSON back unedited leaves the thread's markdown unchanged, with these exceptions:
- The schema has no completion state, so the JSON leaves it out.
replace-threadandreplace-taskwrite every task and step as incomplete. Re-mark completed ones withmark-task-completeormark-step-complete. - An
EntrypointorEvidencethat contains no backticks comes back wrapped in one pair of backticks. - Lines the schema cannot represent, such as sub-bullets under a step, are dropped.
get-task
Return a single task's metadata and steps, with completion state.
i2code plan get-task <plan_file> --thread <N> --task <M> [--json]
Errors if the thread or task does not exist.
With --json, prints the task as a task.schema.json object, which replace-task --task-file accepts. The same exceptions as get-thread --json apply.
i2code plan get-task <plan_file> --thread <N> --task <M> --json > task.json # edit task.json i2code plan replace-task <plan_file> --thread <N> --task <M> --task-file task.json --rationale <text>
mark-step-complete
Mark a single step as complete. Appends to change history.
i2code plan mark-step-complete <plan_file> --thread <N> --task <M> --step <S> --rationale <text>
Errors if the step does not exist or is already complete.
mark-step-incomplete
Mark a single completed step as incomplete. The reverse of mark-step-complete. Appends to change history.
i2code plan mark-step-incomplete <plan_file> --thread <N> --task <M> --step <S> --rationale <text>
Errors if the step does not exist or is already incomplete.
replace-thread
Replace a thread's entire content (title, introduction, tasks) in place, then auto-renumber.
i2code plan replace-thread <plan_file> --thread <N> --title <title> --introduction <text> --tasks <json> --rationale <text>
i2code plan replace-thread <plan_file> --thread <N> --title <title> --introduction <text> --tasks-file <path> --rationale <text>
Use --tasks-file instead of --tasks when the JSON is large or contains characters that are difficult to escape in the shell. Write the JSON file to the idea directory (alongside the plan file) and delete it after use. --tasks and --tasks-file are mutually exclusive; exactly one is required.
Errors if the thread does not exist.
insert-task-before
Insert a task before a specified task within a thread, then auto-renumber tasks.
i2code plan insert-task-before <plan_file> --thread <N> --before <M> --title <title> --task-type <OUTCOME|INFRA|REFACTOR> --entrypoint <cmd> --observable <text> --evidence <cmd> --steps <json> --rationale <text>
i2code plan insert-task-before <plan_file> --thread <N> --before <M> --task-file <path> --rationale <text>
The --steps argument is a JSON array of step description strings. Use --task-file instead of the individual task options when the JSON is large or contains characters that are difficult to escape in the shell. The file must contain a JSON object with title, task_type, entrypoint, observable, evidence, and steps fields. Write the JSON file to the idea directory (alongside the plan file) and delete it after use. --task-file and the individual task options are mutually exclusive; exactly one set is required.
insert-task-after
Insert a task after a specified task within a thread, then auto-renumber tasks.
i2code plan insert-task-after <plan_file> --thread <N> --after <M> --title <title> --task-type <OUTCOME|INFRA|REFACTOR> --entrypoint <cmd> --observable <text> --evidence <cmd> --steps <json> --rationale <text>
i2code plan insert-task-after <plan_file> --thread <N> --after <M> --task-file <path> --rationale <text>
Use --task-file instead of the individual task options when the JSON is large or contains characters that are difficult to escape in the shell. The file must contain a JSON object with title, task_type, entrypoint, observable, evidence, and steps fields. Write the JSON file to the idea directory (alongside the plan file) and delete it after use. --task-file and the individual task options are mutually exclusive; exactly one set is required.
reorder-tasks
Reorder tasks within a thread according to a specified ordering, then auto-renumber tasks.
i2code plan reorder-tasks <plan_file> --thread <N> --order <comma-separated-task-numbers> --rationale <text>
Example: --thread 1 --order 3,1,2 moves task 1.3 to position 1.1, task 1.1 to position 1.2, task 1.2 to position 1.3.
Errors if --order does not contain exactly the set of existing task numbers in the thread, or if the thread does not exist.
move-task-before
Move a task to before another task within the same thread, then auto-renumber tasks.
i2code plan move-task-before <plan_file> --thread <N> --task <M> --before <P> --rationale <text>
Example: --thread 1 --task 6 --before 3 moves task 1.6 to the position before task 1.3.
Errors if the thread or either task does not exist, or if task and before are the same.
move-task-after
Move a task to after another task within the same thread, then auto-renumber tasks.
i2code plan move-task-after <plan_file> --thread <N> --task <M> --after <P> --rationale <text>
Example: --thread 1 --task 1 --after 3 moves task 1.1 to the position after task 1.3.
Errors if the thread or either task does not exist, or if task and after are the same.
replace-task
Replace a task's content in place within a thread, then auto-renumber tasks. Equivalent to delete-task followed by insert-task but atomic.
i2code plan replace-task <plan_file> --thread <N> --task <M> --title <title> --task-type <OUTCOME|INFRA|REFACTOR> --entrypoint <cmd> --observable <text> --evidence <cmd> --steps <json> --rationale <text>
i2code plan replace-task <plan_file> --thread <N> --task <M> --task-file <path> --rationale <text>
The --steps argument is a JSON array of step description strings. Use --task-file instead of the individual task options when the JSON is large or contains characters that are difficult to escape in the shell. The file must contain a JSON object with title, task_type, entrypoint, observable, evidence, and steps fields. Write the JSON file to the idea directory (alongside the plan file) and delete it after use. --task-file and the individual task options are mutually exclusive; exactly one set is required.
Errors if the thread or task does not exist.
delete-task
Remove a task from a thread, then auto-renumber remaining tasks.
i2code plan delete-task <plan_file> --thread <N> --task <M> --rationale <text>
Errors if the thread or task does not exist.
delete-thread
Remove a thread entirely, then auto-renumber remaining threads and tasks.
i2code plan delete-thread <plan_file> --thread <N> --rationale <text>
Errors if the thread does not exist.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingclaude-code-plugins/idea-to-code/skills/plan-file-management/SKILL.md
Popularity
- Repository stars
- 39
- Repository forks
- 5
- 7-day trend score
- 18
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/humansintheloop-dev/humansintheloop-dev-workflow-and-tools/plan-file-management)