Repository navigation
state_projection: single-source the backlog-hygiene bullet grammar - #8667
Open
psychologister wants to merge 1 commit into
Open
psychologister wants to merge 1 commit into
psychologister wants to merge 1 commit into
Conversation
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>
psychologister
requested review from
huangruiteng,
loopx-agent and
songoow
as code owners
November 13, 2026 03:18
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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