Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
id: 8qp3m0
title: task-8qp-t-2p4-subtree-insertion
type: standard
tags: [assignment, ace-assign, release]
created_at: "2026-03-26 02:24:27"
status: active
---

# task-8qp-t-2p4-subtree-insertion

## What Went Well
- Scoped assignment driving kept execution deterministic by pinning `8qp2x6@010.01` and advancing one step at a time.
- Core feature work (`ace-assign add --from`) landed with focused command and organism tests, then passed package-level verification.
- Release step produced clean version/changelog updates and a lockfile refresh with no residual working-tree changes.

## What Could Be Improved
- Release automation split scoped commits by package/config scope; when a single coordinated commit is required, that behavior should be decided up front.
- Downstream dependency constraints (`ace-overseer` -> `ace-assign`) were discovered late in release execution instead of during planning.
- Pre-release checklist did not explicitly force early validation of transitive gemspec constraints for minor bumps.

## Key Learnings
- Batch subtree insertion needs both CLI-level validation and executor-level metadata preservation tests to avoid regressions in generated step trees.
- For release-minor steps, checking `rg "\"ace-<package>\"" ace-*/*.gemspec` early prevents last-minute dependency/version churn.
- Keeping assignment report artifacts concise and command-grounded makes later subtree review easier.

## Action Items
- Continue: keep explicit `--assignment <id>@<scope>` targeting for every assignment command in subtree runs.
- Start: add an explicit "dependency constraint audit" checkpoint before changelog/version edits in release workflow execution.
- Stop: assuming package-only changes imply single-package release; validate downstream constraints first.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
id: 8qp.t.2p4
status: in-progress
status: done
priority: medium
created_at: "2026-03-26 01:47:55"
estimate: TBD
Expand Down
24 changes: 24 additions & 0 deletions .claude/skills/as-assign-add-task/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
name: as-assign-add-task
description: Add a work-on-task subtree into a running assignment batch parent
# bundle: wfi://assign/add-task
# agent: general-purpose
user-invocable: true
allowed-tools:
- Bash(ace-assign:*)
- Bash(ace-bundle:*)
- Bash(ace-task:*)
- Read
- Write
- AskUserQuestion
argument-hint: "taskref [--parent STEP] [--assignment ID]"
last_modified: 2026-03-26
source: ace-assign
skill:
kind: workflow
execution:
workflow: wfi://assign/add-task

---

Load and run `ace-bundle wfi://assign/add-task` in the current project, then follow the loaded workflow as the source of truth and execute it end-to-end instead of only summarizing it.
24 changes: 24 additions & 0 deletions .codex/skills/as-assign-add-task/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
name: as-assign-add-task
description: Add a work-on-task subtree into a running assignment batch parent
# bundle: wfi://assign/add-task
# agent: general-purpose
user-invocable: true
allowed-tools:
- Bash(ace-assign:*)
- Bash(ace-bundle:*)
- Bash(ace-task:*)
- Read
- Write
- AskUserQuestion
argument-hint: "taskref [--parent STEP] [--assignment ID]"
last_modified: 2026-03-26
source: ace-assign
skill:
kind: workflow
execution:
workflow: wfi://assign/add-task

---

Load and run `ace-bundle wfi://assign/add-task` in the current project, then follow the loaded workflow as the source of truth and execute it end-to-end instead of only summarizing it.
24 changes: 24 additions & 0 deletions .gemini/skills/as-assign-add-task/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
name: as-assign-add-task
description: Add a work-on-task subtree into a running assignment batch parent
# bundle: wfi://assign/add-task
# agent: general-purpose
user-invocable: true
allowed-tools:
- Bash(ace-assign:*)
- Bash(ace-bundle:*)
- Bash(ace-task:*)
- Read
- Write
- AskUserQuestion
argument-hint: "taskref [--parent STEP] [--assignment ID]"
last_modified: 2026-03-26
source: ace-assign
skill:
kind: workflow
execution:
workflow: wfi://assign/add-task

---

Load and run `ace-bundle wfi://assign/add-task` in the current project, then follow the loaded workflow as the source of truth and execute it end-to-end instead of only summarizing it.
24 changes: 24 additions & 0 deletions .opencode/skills/as-assign-add-task/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
name: as-assign-add-task
description: Add a work-on-task subtree into a running assignment batch parent
# bundle: wfi://assign/add-task
# agent: general-purpose
user-invocable: true
allowed-tools:
- Bash(ace-assign:*)
- Bash(ace-bundle:*)
- Bash(ace-task:*)
- Read
- Write
- AskUserQuestion
argument-hint: "taskref [--parent STEP] [--assignment ID]"
last_modified: 2026-03-26
source: ace-assign
skill:
kind: workflow
execution:
workflow: wfi://assign/add-task

---

Load and run `ace-bundle wfi://assign/add-task` in the current project, then follow the loaded workflow as the source of truth and execute it end-to-end instead of only summarizing it.
24 changes: 24 additions & 0 deletions .pi/skills/as-assign-add-task/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
name: as-assign-add-task
description: Add a work-on-task subtree into a running assignment batch parent
# bundle: wfi://assign/add-task
# agent: general-purpose
user-invocable: true
allowed-tools:
- Bash(ace-assign:*)
- Bash(ace-bundle:*)
- Bash(ace-task:*)
- Read
- Write
- AskUserQuestion
argument-hint: "taskref [--parent STEP] [--assignment ID]"
last_modified: 2026-03-26
source: ace-assign
skill:
kind: workflow
execution:
workflow: wfi://assign/add-task

---

Load and run `ace-bundle wfi://assign/add-task` in the current project, then follow the loaded workflow as the source of truth and execute it end-to-end instead of only summarizing it.
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,19 @@ All notable changes to this project will be documented in this file.

## [Unreleased]

## [0.9.926] - 2026-03-26

### Added
- **ace-assign v0.38.0**: Added `ace-assign add --from <file>` for YAML-driven batch insertion with nested `sub_steps` support.
- **ace-assign v0.38.0**: Added `as-assign-add-task` and `wfi://assign/add-task` for guided subtree insertion.

### Changed
- **ace-assign v0.38.0**: Extended assignment insertion to preserve metadata/frontmatter across batch-added steps and documented the workflow in usage/getting-started/handbook guides.
- **ace-overseer v0.11.1**: Updated the `ace-assign` dependency constraint to `~> 0.38`.

### Technical
- **ace-assign v0.38.0**: Expanded command/executor test coverage for `--from` validation, child rebalance behavior, and metadata preservation.

## [0.9.925] - 2026-03-23

### Fixed
Expand Down
6 changes: 3 additions & 3 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
PATH
remote: ace-assign
specs:
ace-assign (0.37.0)
ace-assign (0.38.0)
ace-b36ts (~> 0.7)
ace-llm (~> 0.26)
ace-support-cli (~> 0.3)
Expand Down Expand Up @@ -184,8 +184,8 @@ PATH
PATH
remote: ace-overseer
specs:
ace-overseer (0.11.0)
ace-assign (~> 0.16)
ace-overseer (0.11.1)
ace-assign (~> 0.38)
ace-git (~> 0.10)
ace-git-worktree (~> 0.13)
ace-support-cli (~> 0.3)
Expand Down
13 changes: 13 additions & 0 deletions ace-assign/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [0.38.0] - 2026-03-26

### Added
- Added `ace-assign add --from <file>` to insert multiple steps from YAML, including nested `sub_steps` expansion.
- Added the `as-assign-add-task` skill and `wfi://assign/add-task` workflow for guided subtree insertion.

### Changed
- Extended assignment insertion execution with batch insertion support and frontmatter passthrough for inserted steps.
- Updated usage, getting-started, and handbook docs to cover the new `add --from` workflow.

### Technical
- Expanded command and executor coverage for `--from` validation, child rebalance behavior, and metadata preservation.

## [0.37.0] - 2026-03-23

### Changed
Expand Down
2 changes: 2 additions & 0 deletions ace-assign/docs/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,9 +72,11 @@ Use `--message <file>` to keep reports explicit and reusable.
```bash
ace-assign add fix-links --instructions "Fix broken docs links"
ace-assign add verify-links --after 020 --child -i "Check all markdown links"
ace-assign add --from .ace-local/assign/jobs/add-task-t.xyz.yml --after 010 --child
```

Use `--child` to insert nested steps under a parent step.
Use `--from` to insert multiple steps (including subtree expansions via `sub_steps`) from YAML.

## 4) Work with hierarchical steps

Expand Down
2 changes: 2 additions & 0 deletions ace-assign/docs/handbook.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ Canonical skills and workflow instructions bundled with `ace-assign`.

| Skill | What it does |
|-------|---------------|
| `as-assign-add-task` | Add a work-on-task subtree into a running assignment batch parent |
| `as-assign-compose` | Compose a tailored assignment from catalog steps and composition rules |
| `as-assign-create` | Create assignments from public workflow, with optional handoff to drive |
| `as-assign-drive` | Drive active assignment execution step-by-step |
Expand All @@ -26,6 +27,7 @@ Canonical skills and workflow instructions bundled with `ace-assign`.

| Protocol Path | Purpose | Invoked by |
|---------------|---------|------------|
| `wfi://assign/add-task` | Insert a task subtree into a running assignment using `ace-assign add --from` | `as-assign-add-task` |
| `wfi://assign/compose` | Compose assignment definitions from cataloged steps | `as-assign-compose` |
| `wfi://assign/create` | Create assignment and initialize queue from config | `as-assign-create` |
| `wfi://assign/drive` | Execute active assignment loop with status/finish/fail transitions | `as-assign-drive` |
Expand Down
6 changes: 5 additions & 1 deletion ace-assign/docs/usage.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ Create child/sibling steps:
```bash
ace-assign add setup-db --after 010 --child -i "Set up DB"
ace-assign add hotfix --after 010 -i "Urgent fix"
ace-assign add --from .ace-local/assign/jobs/add-task.yml --after 010 --child
```

## Commands
Expand Down Expand Up @@ -123,19 +124,22 @@ Options:
- `--quiet, -q`
- `--debug, -d`

### `ace-assign add NAME`
### `ace-assign add [NAME]`

Insert a new step dynamically.

Options:

- `--instructions, -i TEXT`
- `--from FILE`
- `--after, -a NUMBER`
- `--child, -c`
- `--assignment <id>`
- `--quiet, -q`
- `--debug, -d`

`NAME` and `--from` are mutually exclusive. One is required.

### `ace-assign retry STEP_REF`

Create a linked retry step for a failed step.
Expand Down
24 changes: 24 additions & 0 deletions ace-assign/handbook/skills/as-assign-add-task/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
name: as-assign-add-task
description: Add a work-on-task subtree into a running assignment batch parent
# bundle: wfi://assign/add-task
# agent: general-purpose
user-invocable: true
allowed-tools:
- Bash(ace-assign:*)
- Bash(ace-bundle:*)
- Bash(ace-task:*)
- Read
- Write
- AskUserQuestion
argument-hint: "taskref [--parent STEP] [--assignment ID]"
last_modified: 2026-03-26
source: ace-assign
skill:
kind: workflow
execution:
workflow: wfi://assign/add-task

---

Load and run `ace-bundle wfi://assign/add-task` in the current project, then follow the loaded workflow as the source of truth and execute it end-to-end instead of only summarizing it.
Loading