Skip to content

feat(action-items): clean generated titles; machine refs → Refs block; carry-forward normalizes - #191

Open
jordanrburger wants to merge 1 commit into
mainfrom
feat/action-items-clean-titles
Open

feat(action-items): clean generated titles; machine refs → Refs block; carry-forward normalizes#191
jordanrburger wants to merge 1 commit into
mainfrom
feat/action-items-clean-titles

Conversation

@jordanrburger

Copy link
Copy Markdown
Collaborator

What

Engine track (Task 1) of the Action Items redesign — the load-bearing fix. Rewrites the task-line authoring rules in phases/core/action-items.md so action items are generated clean at the source rather than cleaned in the app:

  • The bold title is a short natural imperative phrase. It must not contain the [#TAG], Linear/GitHub ids, cross-ref hashtags, status words, dates, quotes, emoji (incl. priority 🔴🟡🟢), or an internal separator.
  • All machine refs move to a single - Refs: sub-bullet (·-separated): Linear ids, GitHub refs, Slack permalinks, cross-ref hashtags, and pure-reference entity wikilinks.
  • Priority is section placement only — no inline priority emoji on task lines.
  • Carry-forward re-authors items into this shape (keeping the [#TAG] verbatim and preserving every fact). This is the entire corpus migration — there is no data migration; the live view converges within a carry cycle.

Why

Titles today cram the bold segment with emoji, [#TAG], Linear/GitHub ids, cross-ref hashtags, dates, quotes, and internal clauses, so there's no short title to read and "usability is ZERO" (Adam's review). The prior design cleaned this in the app with regexes; the accepted approach fixes the producer and keeps the consumer dumb — no app-side display cleaning.

Contract safety

No change to parser.py, render.py, scout.ids, or the checksum-guarded parser-corpus.json. The new shape is a valid instance of the unchanged 4-field contract: the - Refs: sub-bullet is a sub-line the main-line parser already ignores.

Verification

  • pytest engine/tests/unit/test_parser_contract.py engine/tests/unit/test_parser_corpus_checksum.py -q45 passed.
  • Ran the engine parser on a new-shape line: exactly 1 item parsed (Refs sub-bullet ignored), short_prefix extracted, title clean.

Part of the two-PR Action Items redesign (spec + plan in Raven-Scout/Scout#76). The scout-app PR (rendering) follows.

🤖 Generated with Claude Code

…k; carry-forward normalizes

Rewrite the task-line authoring rules so the bold title is a short natural
imperative (no tag/Linear/GitHub ids/hashtags/status/dates/quotes/emoji/
internal em-dash), narrative goes in the body, and all machine refs land in one
Refs sub-bullet. Priority is section placement only. Carry-forward now
re-authors items into this shape (the sole corpus migration). Main-line 4-field
parse contract and parser-corpus.json unchanged; contract + checksum tests green.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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