fix(3805): schema-aware log_to_state row appending in fast.md (#85)

* fix(3805): schema-aware log_to_state row appending in fast.md

REPRO: fast.md log_to_state unconditionally echoed a hardcoded 4-cell
row (| date | fast | task | ✅ |) into STATE.md. When quick.md Step 7
had already created the "Quick Tasks Completed" table with 5 columns
(| # | Description | Date | Commit | Directory |), fast.md appended a
malformed 4-cell row → broken Markdown table.

FIX: fast.md log_to_state now reads the existing table header, counts
columns, and checks for the expected column names from quick.md Step 7.
If the 5-column schema is confirmed, it appends a properly-formed 5-cell
row. If the schema is unrecognized, it skips the write with a warning
rather than corrupt the table.

Pattern source: quick.md Step 7 (schema-aware matching).

ANTI-PATTERN SWEEP: Only fast.md and quick.md contain direct STATE.md
table writes in workflows/. quick.md Step 7 is already schema-aware.
No other workflow candidates found.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* chore: add changeset for #3805

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Tom Boucher
2026-05-22 11:39:51 -04:00
committed by GitHub
parent 4a19d4db2b
commit dcacf3eea9
3 changed files with 172 additions and 5 deletions

View File

@@ -0,0 +1,5 @@
---
type: Fixed
pr: 3805
---
**`fast.md` `log_to_state` no longer appends a malformed row when the STATE.md table uses the 5-column quick.md schema (#3805)** — the workflow unconditionally wrote a hardcoded 4-cell row (`| date | fast | task | ✅ |`) into STATE.md; when `quick.md` Step 7 had already created a 5-column "Quick Tasks Completed" table the mismatched row broke the Markdown table. `fast.md` now reads the existing header, counts columns, and verifies the quick.md column names before appending a properly-formed 5-cell row. If the schema is unrecognized the write is skipped with a warning rather than corrupting the table.