Skip to content

state_projection: single-source the backlog-hygiene bullet grammar - #8667

Open
psychologister wants to merge 1 commit into
loopx-project:mainfrom
psychologister:codex/state-projection-bullet-pattern-owner
Open

psychologister wants to merge 1 commit into
loopx-project:mainfrom
psychologister:codex/state-projection-bullet-pattern-owner

Conversation

@psychologister

Copy link
Copy Markdown
Contributor

active_state_projection.BACKLOG_HYGIENE_BULLET_PATTERN is the compiled grammar for
a Next Action / Operating Lessons bullet (^\s*(?:[-]|\d+[.)])\s+(.+?)\s$).
state_projection restated the identical regex as its own BULLET_PATTERN and used it
in _section_entries to split the Next Action section into entries. state_projection
already imports SECTION_HEADING_PATTERN from that very owner module, so borrowing
one more compiled pattern adds no import edge and cannot cycle. BULLET_PATTERN is
retired and _section_entries now matches against the owner; the re import stays
because PRIORITY_PATTERN and the Next Action executable/user-wait regexes still use
it. The owner's SECTION_HEADING_PATTERN and the consumer's PRIORITY_PATTERN are
different grammars and are left untouched.

Two existing machines miss this copy. The by-name semantic inventory only
catalogues UPPER_NAME carriers and would not pair two differently named bindings;
the status-facade vocabulary-owners machine is also name-keyed, so a copy renamed
to BULLET_PATTERN slips past it. That machine is extended here to record
state_projection as an importer of the owner name, and a new guard keys on the
compiled pattern literal -- a whole-tree census, identity for the consumer,
retirement, the distinct neighbours, and behavioural parity through the public
active_state_next_action_entries gate (marker stripping, non-bullet passthrough and
continuation grouping), so a renamed restatement or a silent grammar change fails.

Refs #4447.

Signed-off-by: psychologister 230141834+psychologister@users.noreply.github.com

active_state_projection.BACKLOG_HYGIENE_BULLET_PATTERN is the compiled grammar for
a Next Action / Operating Lessons bullet (^\s*(?:[-*]|\d+[.)])\s+(.+?)\s*$).
state_projection restated the identical regex as its own BULLET_PATTERN and used it
in _section_entries to split the Next Action section into entries. state_projection
already imports SECTION_HEADING_PATTERN from that very owner module, so borrowing
one more compiled pattern adds no import edge and cannot cycle. BULLET_PATTERN is
retired and _section_entries now matches against the owner; the re import stays
because PRIORITY_PATTERN and the Next Action executable/user-wait regexes still use
it. The owner's SECTION_HEADING_PATTERN and the consumer's PRIORITY_PATTERN are
different grammars and are left untouched.

Two existing machines miss this copy. The by-name semantic inventory only
catalogues UPPER_NAME carriers and would not pair two differently named bindings;
the status-facade vocabulary-owners machine is also name-keyed, so a copy renamed
to BULLET_PATTERN slips past it. That machine is extended here to record
state_projection as an importer of the owner name, and a new guard keys on the
compiled pattern literal -- a whole-tree census, identity for the consumer,
retirement, the distinct neighbours, and behavioural parity through the public
active_state_next_action_entries gate (marker stripping, non-bullet passthrough and
continuation grouping), so a renamed restatement or a silent grammar change fails.

Refs loopx-project#4447.

Signed-off-by: psychologister <230141834+psychologister@users.noreply.github.com>

This branch has not been deployed

No deployments
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