Skip to content

fix(beads): robustly insert phase-id placeholders in plan files#254

Open
mrsimpson wants to merge 1 commit intomainfrom
claude/fix-beads-plugin-placeholder-R7pvJ
Open

fix(beads): robustly insert phase-id placeholders in plan files#254
mrsimpson wants to merge 1 commit intomainfrom
claude/fix-beads-plugin-placeholder-R7pvJ

Conversation

@mrsimpson
Copy link
Copy Markdown
Collaborator

The previous handleAfterPlanFileCreated relied on two narrow regex
patterns that matched the exact task-section text produced by
PlanManager. This broke whenever the plan file had been modified by
the LLM (e.g. entrance-criteria sections added) or was created by a
different template – so no placeholder
was ever inserted. updatePlanFileWithPhaseTaskIds then found nothing
to replace, leaving extractPhaseTaskIdFromPlanFile unable to return
a task ID, and the instructions showed the literal
placeholder text.

Replace the regex approach with a line-by-line scan that uses the
state machine's phase list to identify which ## headings are workflow
phases and injects the TBD placeholder immediately after each one –
unless a beads-phase-id comment is already present on the next line.
This is robust against any plan file content.

Also expand the behavioral test suite with three new cases (B2-B4)
covering fresh plan files, idempotent behaviour, and LLM-modified
files with entrance criteria.

https://claude.ai/code/session_01MyfZvrv4Cfk4icMKE7i5Wz

The previous handleAfterPlanFileCreated relied on two narrow regex
patterns that matched the exact task-section text produced by
PlanManager. This broke whenever the plan file had been modified by
the LLM (e.g. entrance-criteria sections added) or was created by a
different template – so no <!-- beads-phase-id: TBD --> placeholder
was ever inserted.  updatePlanFileWithPhaseTaskIds then found nothing
to replace, leaving extractPhaseTaskIdFromPlanFile unable to return
a task ID, and the instructions showed the literal <phase-task-id>
placeholder text.

Replace the regex approach with a line-by-line scan that uses the
state machine's phase list to identify which ## headings are workflow
phases and injects the TBD placeholder immediately after each one –
unless a beads-phase-id comment is already present on the next line.
This is robust against any plan file content.

Also expand the behavioral test suite with three new cases (B2-B4)
covering fresh plan files, idempotent behaviour, and LLM-modified
files with entrance criteria.

https://claude.ai/code/session_01MyfZvrv4Cfk4icMKE7i5Wz
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.

2 participants