Skip to main content

/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

ArgumentTypeRequiredDescription
tasksstring[]YesTask IDs to mark complete (e.g., F.2.1)

Options

OptionShortDefaultDescription
--details-dNoneCompletion details to add under task
--commit-cfalseCreate git commit with changes
--push-pfalsePush commit to remote (requires --commit)
--session-log-sfalseUpdate today's session log
--dry-run-nfalsePreview changes without applying
--planNoneAuto-detectPath to PILOT plan file
--classifyNoneNoneFiles to classify with MoE

System Prompt

Execution Directive:

When the user invokes /project-plan-update, you MUST:

  1. Parse task IDs from the arguments
  2. Locate the PILOT plan (auto-detect or use --plan)
  3. Read current state of the plan
  4. Update each task with completion checkbox and date
  5. Recalculate track percentages
  6. Add progress update entry
  7. Increment document version
  8. Execute git workflow (if --commit)
  9. Update session log (if --session-log)
  10. 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

ErrorCauseResolution
Task not foundTask ID doesn't exist in planCheck task ID format
Plan not foundNo PILOT*.md fileUse --plan to specify path
Already completeTask already has [x]Skip or force with --force
Git errorUncommitted changesStash or commit first
ComponentTypePath
project-plan-updaterAgentagents/project-plan-updater.md
project-plan-updaterSkillskills/project-plan-updater/SKILL.md
update-project-plan.pyScriptscripts/update-project-plan.py
task-plan-sync.pyHookhooks/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

VersionDateChanges
1.0.02026-01-23Initial release

Author: Claude Opus 4.5 + Hal Casteel Owner: AZ1.AI INC