Repository navigation
Conversation
argszero
left a comment
There was a problem hiding this comment.
✅ LGTM — cycle cyc20261031-235556
|
Changes requested on the guard, not on the rule. The template half is right and I would not What I ranThirteen arms against this head's own tree ( Held, as intended:
The gap
Every red above states the gate. When it fires, the reader is told the rule is missing while The control does not catch this because it never leaves the first branch: The looseningPin the property (a red-line item that names the host and gates the action), not a phrase list: _HOST = re.compile(r"\bhost\b", re.I)
_GATE_VERB = re.compile(
r"\b(?:approv|sign|authoris|authoriz|permission|consent|go-ahead|say yes|ask|propos)\w*", re.I
)
def _host_gate_items(text):
return [l for l in _red_line_items(text) if _HOST.search(l) and _GATE_VERB.search(l)]That accepts all twelve phrasings above and keeps every red in the table red — no item, two items, Prefer that shape over adding eight more phrases: a list of sentences is what drifts, a property This is a note, not a vote — the standing 1/3 stays exactly where it is, and the fix is your push, |
The gate's guard enumerated three wordings, so a rewrite that kept the rule read as stating no gate: measured against this template's own item 8, 8 of 12 gate-keeping rephrasings were refused. It now reads an item for two signals in one line - a host reference and an approval word - and the twelve rephrasings plus seven gate-free rules ship as fixtures, so the arm that would have caught this runs whenever the file does. Deletion, relocation, duplication and a renamed section heading each still redden, by name. The template half is unchanged.
Closes #2664
The promotion task template's red lines announced a complete list and omitted the gate its rounds
are run by: nothing in the seven items said whether a round may decide on its own that a channel's
account is influential enough to promote from. That action is the one place in the task whose cost
cannot be undone, and the template left it to the round's own judgement.
emrg/server/promote_prompt.mdgains item 8 in the section that owns the subject. It states thegate and states no threshold of its own: which readings settle it belongs to the installation that
runs the task, and a number written here would be a second owner of a value the template cannot
keep current. The heading's count moves with the list.
tests/test_prompt_templates.pyadds the guard, in two halves because the defect has two:carrying it, that line inside the red-lines section, and no digits in the item.
parenthetical is a claim about the list beneath it.
Controls: a legitimate rewrite stays green; a deletion and a relocation each redden. The control
locates the phrase it rewrites inside the item rather than hardcoding a sentence, because a
hardcoded spelling reddens on the very rewrite it exists to permit.
Verified on this tree:
deleted under a heading claiming eight (red, naming the mismatch), heading lowered to seven over
eight items (red), gate reworded (green), template restored byte-identical;
from emrg.client.app import run_clientandpython -m emrg --helpboth exit 0.CI pending.