Use when user says "start next checklist item", "grab the next item and make a child card", "start next child", or wants to begin work on the next step of a parent card
Find the next ready checklist item on a parent card, create a child card for it, move it to In Progress, and link it back to the parent checklist. Respects dependency ordering and migration locking.
[<slug>] <title>[<slug>.<NN>] <step title>{deps:01,02} — item blocked until those checklist items are checked off{migrations} — only one migration child in flight at a time[description](child-url)bin/trello card show <parent-ref>
Extract slug from title — must match /^\[(?<slug>[a-z0-9-]+)\]/.
If no slug found, STOP and tell the user to add a [slug] prefix to the card title.
Extract labels from the Labels: line in the card show output. Keep only type labels: bug, chore, user, feature (case-insensitive match). Save matching labels for Phase 6.
Find the "Steps" checklist in the card show output. If no checklist named "Steps", use the first (and only) checklist. If multiple checklists and none named "Steps", STOP and ask.
Parse each checklist item into these fields:
| Field | How to extract |
|---|---|
| number | New format: inside [slug.NN] bracket prefix. Old format: leading NN. before first space. |
| title | Text between the prefix ([slug.NN] or NN. ) and any {...} tags. If the title is a Markdown link [text](url), extract the text portion. Trim trailing whitespace. |
| deps | Numbers from {deps:NN,NN} tag (accept spaces around commas) |
| migrations | true if {migrations} tag present (case-insensitive) |
| checked | [x] prefix in card show output |
| has_child | true if item contains trello.com/c/ URL |
Only needed if any unchecked item has {migrations}.
Scan for open migration children across these lists:
bin/trello list cards "In Progress"
bin/trello list cards "Done/Committed"
For each card in the output whose title matches /^\[[a-z0-9-]+\.\d{2,}\]/ (child card pattern):
bin/trello card show <card-ref>
Check the description for requires_migrations: true. If found, migrations are locked — note which card holds the lock.
Optimization: Skip the card show calls if no unchecked item has {migrations}. Also, only inspect cards matching the child title pattern.
An item is READY if ALL of:
{deps:...} list corresponds to a checked item){migrations} is true: migration lock is clear (Phase 3 found no open migration child)If a ready item exists: pick the one with the smallest NN.
If NO ready items exist: output a blocked report and STOP:
No ready items. Blocked:
- 03 blocked: deps 01, 02 not done
- 04 blocked: migrations locked by [other-slug.02] (In Progress)
- 05 blocked: deps 03 not done
Keep it short — one line per blocked item.
Build the child card description. Goal and Note go first (the actionable content), then a --- separator, then the Lineage metadata section:
**🎯 Goal:** <step title from checklist item>
**📝 Note:** Parent card has full context; refer there.
---
### 🔗 Lineage
- **Parent:** [<parent card title>](<parent card URL>)
- **Checklist:** <checklist name> · **Item:** <NN>
- **Migrations:** <yes|no> · **Deps:** <comma-separated list or "none">
The parent link MUST be a Markdown link [title](url) — do NOT use a naked URL.
Create the card:
bin/trello card new "[<slug>.<NN>] <step title>" \
--description "<description from template above>" \
--list "In Progress" \
-L "bug" -L "feature"
Include a -L flag for each type label found on the parent in Phase 1 (only bug, chore, user, feature). Omit -L entirely if the parent had none of those labels.
No need to card move separately — --list "In Progress" creates it there directly.
Wrap the description text in a Markdown link to the child card. The [slug.NN] prefix and any {...} tags stay unchanged — only the description becomes a link.
Before: [slug.02] Step description {deps:01}
After: [slug.02] [Step description](https://trello.com/c/xyz789) {deps:01}
bin/trello checklist item-edit <parent-ref> "Steps" "<exact current item text>" "<text with description wrapped as link>"
Important: Use the exact current item text as the ITEM argument (not a position number), since item-edit matches by exact name.
Old format items: If the item uses old NN. title format, convert it to the new format at the same time: [slug.NN] [title](url) {tags}.
Output:
Example:
Created: https://trello.com/c/xyz789
Working on: [owner-data.03] Backfill job
(Skipped 02: deps 01 not done)
If you catch yourself doing these, STOP:
{migrations} items need the lock scan[text](url), do NOT append → url or bare URLs### 🔗 Lineage section in its description[title](url) format| Phase | Command | Purpose |
|---|---|---|
| 1. Fetch | bin/trello card show | Get parent details + type labels |
| 2. Parse | (text parsing) | Extract items, deps, tags |
| 3. Migration | bin/trello list cards + card show | Check lock |
| 4. Ready | (logic) | Filter to actionable items |
| 5. Pick | (logic) | Smallest NN or blocked report |
| 6. Create | bin/trello card new --list "In Progress" | Child card |
| 7. Link | bin/trello checklist item-edit | Wrap description as Markdown link |
| 8. Confirm | (output) | URL + one sentence |