Skip to content

t.2p4: add dynamic task subtree insertion for ace-assign#268

Open
cs3b wants to merge 9 commits intomainfrom
2p4-dynamic-task-subtree-insertion-for-ace-assign
Open

t.2p4: add dynamic task subtree insertion for ace-assign#268
cs3b wants to merge 9 commits intomainfrom
2p4-dynamic-task-subtree-insertion-for-ace-assign

Conversation

@cs3b
Copy link
Owner

@cs3b cs3b commented Mar 26, 2026

📋 Summary

Assignment workflows can now insert multiple steps from a YAML file in a single command with ace-assign add --from <file>. Before this, adding a task subtree into a running assignment required multiple manual add calls or pre-building the entire assignment upfront. Now, mid-flight composition is a one-liner that preserves metadata, expands nested sub_steps, and slots new steps at the right queue position.

✏️ Changes

  • Add --from <file> flag to ace-assign add: reads a YAML step list and batch-inserts all entries with sequential numbering, metadata passthrough, and sub_steps expansion (d6b3f9c)
  • Add CLI validation: --from and positional name are mutually exclusive; missing file and empty steps: produce explicit errors (d6b3f9c)
  • Add AssignmentExecutor#add_batch: reuses existing single-add behavior in a loop, preserving added_by: batch_from:<filename> metadata on every inserted step (d6b3f9c)
  • Add as-assign-add-task canonical skill and wfi://assign/add-task workflow for guided subtree insertion (d487839, ee0771d, 9fcdef2)
  • Add provider skill projections for Claude, Codex, Gemini, OpenCode, and Pi (d487839, 9fcdef2)
  • Update docs (usage, getting-started, handbook) covering the new add --from workflow (d6b3f9c)

📁 File Changes

 +789,   -20   22 files   total

 +618,   -17   11 files      ace-assign/
 +218,   -16    3 files   🧱 lib/
  +67,   -11                 ace/assign/cli/commands/add.rb
 +150,    -4                 ace/assign/organisms/assignment_executor.rb
   +1,    -1                 ace/assign/version.rb
 +207,    -0    2 files   🧪 test/
 +107,    -0                 commands/add_command_test.rb
 +100,    -0                 organisms/assignment_executor_test.rb
 +171,    -0    2 files   📚 handbook/
  +24,    -0                 skills/as-assign-add-task/SKILL.md
 +147,    -0                 workflow-instructions/assign/add-task.wf.md
  +22,    -1    4 files      
  +13,    -0                 CHANGELOG.md
   +2,    -0                 docs/getting-started.md
   +2,    -0                 .../handbook.md
   +5,    -1                 .../usage.md

   +7,    -2    3 files      ace-overseer/
   +1,    -1    1 files   🧱 lib/
   +1,    -1                 ace/overseer/version.rb
   +6,    -1    2 files      
   +5,    -0                 CHANGELOG.md
   +1,    -1                 ace-overseer.gemspec

  +24,    -0    1 files      .claude/skills/as-assign-add-task/SKILL.md
  +24,    -0    1 files      .codex/skills/as-assign-add-task/SKILL.md
  +24,    -0    1 files      .gemini/skills/as-assign-add-task/SKILL.md
  +24,    -0    1 files      .opencode/skills/as-assign-add-task/SKILL.md
  +24,    -0    1 files      .pi/skills/as-assign-add-task/SKILL.md
  +13,    -0    1 files      CHANGELOG.md

🧪 Test Evidence

  • AddCommandTest (new, 107 lines) — validates --from flag handling: mutual exclusivity with name, missing file error, empty steps error, and successful batch insertion output
  • AssignmentExecutorTest (new, 100 lines) — validates add_batch behavior: sequential insertion, metadata passthrough (added_by, context, skill), sub_steps expansion, and child rebalance
  • Suite totals: 488 tests, 1547 assertions, 0 failures, 0 errors (ace-assign)
  • Monorepo: 7482 tests passed, 1 pre-existing failure (ace-docs, unrelated)

📦 Releases

  • ace-assign v0.38.0 — Add --from <file> batch insertion, as-assign-add-task skill/workflow, docs updates
  • ace-overseer v0.11.1 — Bump ace-assign dependency to ~> 0.38
  • Root v0.9.926 — Coordinated release entry

🎮 Demo

Run

# Create a YAML file with steps to insert
cat > /tmp/subtree.yml << 'EOF'
steps:
  - name: onboard
    skill: as-onboard
    instructions: Load project context
  - name: implement
    skill: as-task-work
    instructions: Work on the task
    context: fork
EOF

# Insert into a running assignment after step 010
ace-assign add --from /tmp/subtree.yml --after 010 --assignment <id>

Expected Output

Added step 011 (onboard) after 010
Added step 011.01 (implement) [fork] after 011

cs3b added 9 commits March 26, 2026 02:15
Allow `ace-assign add` to load steps from YAML via `--from`, expand nested `sub_steps`, and insert them through a new batch execution path. Update CLI validation, executor metadata, and tests for sequential insertion, child rebalance, and error handling.
…imes

Publish the new `as-assign-add-task` workflow skill across Claude, Codex, Gemini, OpenCode, and Pi integration directories so each assistant can discover and invoke the assignment add-task workflow consistently.
Update the package version to 0.38.0 and add the release changelog entry for the new `add --from` workflow.
Raise the `ace-assign` dependency to `~> 0.38` and record the overseer release version in the changelog.
Update the top-level changelog and lockfile to track `ace-assign` 0.38.0 and `ace-overseer` 0.11.1.
Capture lessons learned and follow-up actions from the t.2p4 subtree
insertion release so the workflow can be improved on the next run.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant