You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A warning before a move or Archive while work is in progress (BL-127): on a branch other than main or master, or within two minutes of a .specs/ change the page did not make, a move from the Tasks board opens a blocking dialog that says what could happen, with Cancel (the default) and Move anyway; Archive adds an activity check to its own dialog. Approve and Send back never ask, and with neither signal a move is one action with Undo, as before.
Type and Priority on tasks (BL-125): Backlog, Current Sprint and Review in .specs/planning/tasks.md may be | ID | Type | Priority | Description | tables, Type feat, bug or chore and Priority P1, P2 or P3, either empty; | ID | Description | stays valid, and the header names tell the two apart. The Tasks board shows Priority and Type on each card's bottom line, before the Approved chip, with P1 in the warning colour. The task details set them with two radio groups that write at once (POST /api/tasks/fields, the move route's checks; one of the set or nothing, never typed text), and New Task offers the same two for a typed lane. The local MCP's specpilot_new_task takes type and priority, and the new specpilot_set_task sets or clears them. A row moved from a table without the columns into one with them gets two empty cells; the other way, two empty cells are dropped and a row with a value is refused. A warning on the Tasks view and in specpilot validate says when the three lanes' shapes differ, and validate names a Type or Priority outside the set. A project whose three tables are all | ID | Description | gets a Note on the Tasks view (not a warning: nothing is wrong) saying why its cards have no Type or Priority, with Copy prompt for your AI IDE to add the columns. Nothing rewrites an existing file.
A warning when a table in planning/tasks.md has the wrong number of columns (BL-120): a ## Completed headed | ID | Task |, two columns where the lane reads three, put every row under Rows that could not be parsed with no word why, and a wider table ran its extra cells into each description. The Tasks view now says which lane cannot read its table, how many columns it has against the board's, and how to fix it, with Open tasks.md in VS Code and Copy prompt for your AI IDE; specpilot validate warns the same, with no --fix. GET /api/specs and specpilot_list_tasks carry tasks.headings.columnsFound.
Instruction files and the local MCP name the tasks.md table shapes (BL-122): the Tasks mandate in generated CLAUDE.md, Copilot, Cursor, Windsurf and Antigravity files now says | ID | Description | under Backlog, Current Sprint and Review and | # | ID | Description | under Completed, one row per task, where it only said to keep the table format; an agent had written Completed with two columns. specpilot_list_tasks describes the columns of every section, and the MCP instructions ask an agent that edits tasks.md by hand to keep them. specpilot backfill adds the line to a file without one; an older line stays as it is (BL-119).
Changed
Archive's branch check says what could happen (BL-127): off the default branch the gate adds that the archive is committed with the branch's work and that merging it can conflict with tasks.md changes on the default branch. The specpilot-archive command's text is unchanged (BL-128).
The wrong-columns warning knows the two shapes (BL-125): for Backlog, Current Sprint and Review it compares the header's column names, not only their count, so a four-column ID, Status, Priority, Description table is reported; its title names what the table has and both shapes the board reads, and its Copy prompt asks for the typed table, an existing priority as P1 to P3 and any status worth keeping at the start of the description. Completed and Won't do are checked as before.
The tasks.md template, the Tasks mandate and the agent instructions (BL-125): init and validate --fix write the typed header for the three lanes; the Tasks line in generated CLAUDE.md, Copilot, Cursor, Windsurf and Antigravity files and the onboarding prompt name both shapes and the values. specpilot backfill leaves an existing Tasks line as it is (BL-119).