/project-plan-update
Update the PILOT project plan with task completion status, progress percentages, and optional git commit.
Usage
# Basic: Mark tasks complete
/project-plan-update F.2.1
# Multiple tasks
/project-plan-update F.2.1 F.2.2 F.2.3
# With details
/project-plan-update F.2.1 --details "Fixed 64 schema errors"
# Full workflow with commit
/project-plan-update F.2.1 F.2.2 --commit --push
# Include session log update
/project-plan-update F.2.1 --commit --session-log
# Dry run (preview changes)
/project-plan-update F.2.1 --dry-run
# Using aliases
/update-plan F.2.1
/ppu F.2.1 --commit
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
tasks | string[] | Yes | Task IDs to mark complete (e.g., F.2.1) |
Options
| Option | Short | Default | Description |
|---|---|---|---|
--details | -d | None | Completion details to add under task |
--commit | -c | false | Create git commit with changes |
--push | -p | false | Push commit to remote (requires --commit) |
--session-log | -s | false | Update today's session log |
--dry-run | -n | false | Preview changes without applying |
--plan | None | Auto-detect | Path to PILOT plan file |
--classify | None | None | Files to classify with MoE |
System Prompt
Execution Directive:
When the user invokes /project-plan-update, you MUST:
- Parse task IDs from the arguments
- Locate the PILOT plan (auto-detect or use --plan)
- Read current state of the plan
- Update each task with completion checkbox and date
- Recalculate track percentages
- Add progress update entry
- Increment document version
- Execute git workflow (if --commit)
- Update session log (if --session-log)
- Report completion summary
Step-by-Step Execution
Step 1: Locate PILOT Plan
# Find PILOT plan
plan_paths = Glob("**/PILOT*.md")
# Typical: internal/project/plans/PILOT-PARALLEL-EXECUTION-PLAN.md
Step 2: Read and Parse
# Read plan content
plan_content = Read(plan_path)
# Parse task checkboxes
tasks = parse_task_checkboxes(plan_content)
Step 3: Update Task Checkboxes
# Pattern: [ ] Task → [x] Task ✅ (Date)
for task_id in requested_tasks:
old = f"- [ ] {task_id}:"
new = f"- [x] {task_id}: ... ✅ ({current_date})"
Edit(plan_path, old, new)
Step 4: Add Completion Details
- [x] F.2.1: Add @extend_schema decorators ✅ (Jan 23, 2026)
- **Completed:** {details from --details}
- **Modified:** {files if known}
Step 5: Update Track Percentage
# Count completed vs total in track section
completed = count("[x]" in track_section)
total = count("- [" in track_section)
percentage = int((completed / total) * 100)
# Update status table
Edit(plan_path, f"| {track_name} | {old_percent}%",
f"| {track_name} | {percentage}%")
Step 6: Add Progress Update Entry
**Progress Update ({date}):** Track {track} advanced to **{percent}%**.
- {task_id}: {summary}
Step 7: Increment Version
# Find version line
old_version = "1.9.3"
new_version = increment_patch(old_version) # "1.9.4"
Edit(plan_path, f"Version:** {old_version}", f"Version:** {new_version}")
Step 8: Git Workflow (if --commit)
git add {plan_path}
git add {session_log_path} # if --session-log
git commit -m "docs({track}): Update PILOT plan with {tasks} completion
- Mark {tasks} tasks complete
- Update {track} track: {old_percent}% → {new_percent}%
- Add progress update entry
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>"
# if --push
git push
Step 9: Update Session Log (if --session-log)
### {timestamp} - [{track}] Project Plan Update
**Tasks Completed:**
| Task ID | Description | Status |
|---------|-------------|--------|
| {task_id} | {description} | ✅ |
Examples
Example 1: Simple Task Completion
/project-plan-update F.2.1
Output:
✅ COMMAND COMPLETE: /project-plan-update
Updated PILOT plan:
- [x] F.2.1: Add @extend_schema decorators ✅ (Jan 23, 2026)
Track F (Documentation): 75% → 80%
Version: 1.9.3 → 1.9.4
Example 2: Multiple Tasks with Commit
/project-plan-update H.5.7.1 H.5.7.2 --commit --details "Implemented four-database architecture per ADR-103"
Output:
✅ COMMAND COMPLETE: /project-plan-update
Updated PILOT plan:
- [x] H.5.7.1: Create platform-index.db ✅ (Jan 23, 2026)
- **Completed:** Implemented four-database architecture per ADR-103
- [x] H.5.7.2: Create projects.db infrastructure ✅ (Jan 23, 2026)
- **Completed:** Implemented four-database architecture per ADR-103
Track H (MoE/AI): 95% → 100%
Version: 1.9.4 → 1.9.5
Git commit: abc1234
docs(H.5.7): Update PILOT plan with H.5.7.1, H.5.7.2 completion
Example 3: Dry Run
/project-plan-update F.2.1 F.2.2 --dry-run
Output:
🔍 DRY RUN: /project-plan-update
Would update:
- [ ] F.2.1 → [x] F.2.1 ✅ (Jan 23, 2026)
- [ ] F.2.2 → [x] F.2.2 ✅ (Jan 23, 2026)
Track F: 75% → 85%
Version: 1.9.3 → 1.9.4
No changes applied (dry run mode)
Validation
Task ID Format
Task IDs must match the track nomenclature regex:
^[A-Z]\.\d+\.\d+(\.\d+)?$
Valid: A.1.1, F.2.3, H.5.7.1
Invalid: a.1.1, A.0.1, task-1
Error Handling
| Error | Cause | Resolution |
|---|---|---|
| Task not found | Task ID doesn't exist in plan | Check task ID format |
| Plan not found | No PILOT*.md file | Use --plan to specify path |
| Already complete | Task already has [x] | Skip or force with --force |
| Git error | Uncommitted changes | Stash or commit first |
Related Components
| Component | Type | Path |
|---|---|---|
| project-plan-updater | Agent | agents/project-plan-updater.md |
| project-plan-updater | Skill | skills/project-plan-updater/SKILL.md |
| update-project-plan.py | Script | scripts/update-project-plan.py |
| task-plan-sync.py | Hook | hooks/task-plan-sync.py |
Standards Compliance
- CODITECT-STANDARD-TRACK-NOMENCLATURE.md - Task ID format
- CODITECT-STANDARD-TASK-ID-PROTOCOL.md - Task ID enforcement
- CODITECT-STANDARD-AUTOMATION.md - Automation principles
Changelog
| Version | Date | Changes |
|---|---|---|
| 1.0.0 | 2026-01-23 | Initial release |
Author: Claude Opus 4.5 + Hal Casteel Owner: AZ1.AI INC