一键导入
aitask-create
Create a new AI task file with automatic numbering and proper metadata. Supports interactive agent prompts, terminal fzf, and batch mode.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Create a new AI task file with automatic numbering and proper metadata. Supports interactive agent prompts, terminal fzf, and batch mode.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Create, refresh, or show an implementation trail — a durable, wave-structured, evidence-backed task-sequencing artifact stored via ait artifact.
Create, refresh, or show an implementation trail — a durable, wave-structured, evidence-backed task-sequencing artifact stored via ait artifact.
Shadow companion for a followed coding agent — reads its captured terminal output and, in one instruction-driven flow, explains it, helps answer an AskUserQuestion, or critically interrogates a plan. Advisory-only. Spawned by minimonitor; not a task-implementation command.
Draft a manager-facing work report from selected board columns.
Pick and implement a task in remote/non-interactive mode. All decisions from execution profile - no AskUserQuestion calls.
Pick and implement a task on Claude Code Web. Zero interactive prompts. No cross-branch operations — stores task data locally in .aitask-data-updated/.
| name | aitask-create |
| description | Create a new AI task file with automatic numbering and proper metadata. Supports interactive agent prompts, terminal fzf, and batch mode. |
First, list existing active tasks to see if the user wants to create a child task:
./.aitask-scripts/aitask_ls.sh -v -s all 99
Use AskUserQuestion:
If parent task selected:
./.aitask-scripts/aitask_query_files.sh all-children <parent>
Parse the output: CHILD:<path> lines are active children, ARCHIVED_CHILD:<path> lines are archived children. Extract child numbers from all paths (e.g., t10_2_name.md → 2), find the highest, and add 1. If output is NO_CHILDREN, next child number is 1.If standalone task:
Create the draft directory if needed:
mkdir -p aitasks/new
The task will be created as a draft in aitasks/new/ with a timestamp-based filename. The real task number is assigned later during finalization (Step 8), which requires network access.
Draft filename format: draft_<YYYYMMDD_HHMM>_<sanitized_name>.md
Display to user: "Task will be created as a draft. Real task ID assigned on finalization."
Use the AskUserQuestion tool to gather task metadata:
3a. Priority:
3b. Effort:
3c. Dependencies: First, list existing active tasks (and siblings if creating a child):
./.aitask-scripts/aitask_ls.sh -v 99
For child tasks, also list siblings:
./.aitask-scripts/aitask_query_files.sh active-children <parent>
Parse the output: CHILD:<path> lines list active sibling task files. If output is NO_CHILDREN, there are no existing siblings.
Then use AskUserQuestion:
3d. Sibling Dependency (Child Tasks Only): If creating a child task (t_ where N > 1):
Use AskUserQuestion:
If "Yes", add t_ to the dependencies.
Validation: Only accept task numbers that correspond to existing active tasks.
Use AskUserQuestion:
Sanitize the name:
Display to user: "Draft file will be: aitasks/new/draft__<sanitized_name>.md"
Collect the task definition iteratively, asking after each chunk if the user wants to add more or insert file references.
5a. Initial prompt:
Use AskUserQuestion:
5b. Continue loop:
After receiving input, use AskUserQuestion:
5c. If "Add more text":
Use AskUserQuestion:
Then repeat step 5b.
5d. If "Insert file reference":
5d-i. Get search pattern:
Use AskUserQuestion:
5d-ii. Search for matching files:
Use the Glob tool to find matching files:
Pattern: **/*<user_input>*
5d-iii. Present results: If matches found (limit to first 10-15 results):
AskUserQuestion to present matching files as optionsIf no matches found:
5d-iv. Insert selected file:
5e. If "Done": Concatenate all collected text chunks and file references with newline separators and proceed to Step 6.
Write the draft file to aitasks/new/draft_<YYYYMMDD_HHMM>_<name>.md.
File format (YAML front matter):
---
priority: <priority>
effort: <effort>
depends: [<dependencies>]
issue_type: feature
status: Ready
labels: []
draft: true
created_at: <YYYY-MM-DD HH:MM>
updated_at: <YYYY-MM-DD HH:MM>
---
<task definition content>
For child tasks, also include parent: <parent_num> in the frontmatter.
Where:
<priority> = high, medium, or low<effort> = low, medium, or high<dependencies> = comma-separated task IDsFor child tasks, the parent's children_to_implement is updated during finalization (Step 8), not here.
Use the aitask_create.sh script to finalize the draft:
./.aitask-scripts/aitask_create.sh --batch --finalize draft_<timestamp>_<name>.md
This will:
draft_*_<name>.md to t<N>_<name>.mdaitasks/new/ to aitasks/ (or aitasks/t<parent>/ for child tasks)draft: true field from frontmatterchildren_to_implement (if child task)If finalization fails (e.g., no network), the draft is preserved in aitasks/new/ for later finalization.
Display a summary to the user:
<filepath>Optionally ask if the user wants to immediately start working on this task using /aitask-pick <task_id>.
The atomic counter guarantees unique IDs. If the counter branch is not initialized, the fallback local scan will detect conflicts.
If the user provides no content, prompt them that a task definition is required before proceeding.
If the user enters a dependency number that doesn't correspond to an existing active task, warn them and ask to re-enter.
If sanitization removes all characters, use "unnamed_task" as the default name.
If creating a child task and the parent doesn't exist, show an error and ask to select a different parent.
If --finalize fails (no network, no counter branch), inform user: "Draft saved to aitasks/new/. Finalize later with ait create (interactive) or ./.aitask-scripts/aitask_create.sh --batch --finalize <file>."
t<parent>_<sibling> (e.g., t1_2)aitasks/new/ (gitignored) - no network neededaitask-ids branchaitasks/t<parent>/ subdirectory after finalizationNote: For the canonical batch creation templates used by other skills, see
.claude/skills/task-workflow/task-creation-batch.md.
For non-interactive task creation (e.g., when creating child tasks during planning), use the batch script directly:
./.aitask-scripts/aitask_create.sh --batch --name "<name>" --desc "<description>" --commit
Flags:
--batch — Enable batch mode (required)--name, -n NAME — Task name (required, will be sanitized)--desc, -d DESC — Task description--desc-file FILE — Read description from file (use - for stdin)--priority, -p LEVEL — high/medium/low (default: medium)--effort, -e LEVEL — low/medium/high (default: medium)--type, -t TYPE — Issue type (default: feature)--status, -s STATUS — Ready/Editing/Implementing/Postponed (default: Ready)--labels, -l LABELS — Comma-separated labels--deps DEPS — Comma-separated dependency task numbers--assigned-to, -a EMAIL — Email of person assigned to task--issue URL — Issue tracker URL--parent, -P NUM — Create as child of specified parent task--no-sibling-dep — Skip default sibling dependency--anchor ID — Topic-root task id (board group key); N/N_M, validated. Mutually exclusive with --followup-of; rejected with --parent--followup-of ID — Anchor to the topic root of source task ID (flattened, never chains). Mutually exclusive with --anchor; rejected with --parent
.claude/skills/task-workflow/task-creation-batch.md ("Topic anchoring")--commit — Auto-finalize with real ID (requires network)--finalize FILE — Finalize a specific draft from aitasks/new/--finalize-all — Finalize all drafts in aitasks/new/--silent — Output only the created filename (for scripting)Examples:
# Create a standalone task (auto-finalize)
./.aitask-scripts/aitask_create.sh --batch --name "fix_login" --desc "Fix login bug" --priority high --type bug --commit
# Create first child of task t10
./.aitask-scripts/aitask_create.sh --batch --parent 10 --name "first_subtask" --desc "First subtask" --commit
# Create child without auto sibling dependency
./.aitask-scripts/aitask_create.sh --batch --parent 10 --name "parallel_task" --desc "Parallel work" --no-sibling-dep --commit
# Create as draft (no network needed), finalize later
./.aitask-scripts/aitask_create.sh --batch --name "add_feature" --desc "Add new feature"
# Read description from stdin
echo "Long description here" | ./.aitask-scripts/aitask_create.sh --batch --name "my_task" --desc-file -