Require Leo direct-claim follow-up line
Some checks are pending
CI / lint-and-test (push) Waiting to run
Some checks are pending
CI / lint-and-test (push) Waiting to run
This commit is contained in:
parent
ddb916ab73
commit
79cfe2dc4a
4 changed files with 15 additions and 3 deletions
|
|
@ -82,6 +82,10 @@ the expected follow-up without needing to ask twice:
|
||||||
4. Next Cory-style follow-up: the one proof-changing or admin action that would
|
4. Next Cory-style follow-up: the one proof-changing or admin action that would
|
||||||
change the answer.
|
change the answer.
|
||||||
|
|
||||||
|
Always include the final line label `Next Cory-style follow-up:` for a
|
||||||
|
no-context direct-claim answer. Do not omit it just because the answer seems
|
||||||
|
complete.
|
||||||
|
|
||||||
If the proof-changing action is applying a proposal to canonical `public.*`,
|
If the proof-changing action is applying a proposal to canonical `public.*`,
|
||||||
say that apply requires explicit operator/admin authorization and should not be
|
say that apply requires explicit operator/admin authorization and should not be
|
||||||
run from normal chat without that authorization.
|
run from normal chat without that authorization.
|
||||||
|
|
|
||||||
|
|
@ -74,6 +74,10 @@ the expected follow-up without needing to ask twice:
|
||||||
4. Next Cory-style follow-up: the one proof-changing or admin action that would
|
4. Next Cory-style follow-up: the one proof-changing or admin action that would
|
||||||
change the answer.
|
change the answer.
|
||||||
|
|
||||||
|
Always include the final line label `Next Cory-style follow-up:` for a
|
||||||
|
no-context direct-claim answer. Do not omit it just because the answer seems
|
||||||
|
complete.
|
||||||
|
|
||||||
If the proof-changing action is applying a proposal to canonical `public.*`,
|
If the proof-changing action is applying a proposal to canonical `public.*`,
|
||||||
say that apply requires explicit operator/admin authorization and should not be
|
say that apply requires explicit operator/admin authorization and should not be
|
||||||
run from normal chat without that authorization.
|
run from normal chat without that authorization.
|
||||||
|
|
|
||||||
|
|
@ -402,7 +402,8 @@ SIGNAL_PATTERNS: dict[str, list[re.Pattern[str]]] = {
|
||||||
r"\bnot canonical\b|\bnot applied\b|\bdoes not exist in (?:canonical )?(?:Leo's )?KB\b|"
|
r"\bnot canonical\b|\bnot applied\b|\bdoes not exist in (?:canonical )?(?:Leo's )?KB\b|"
|
||||||
r"\bonly in the proposal ledger\b|locked behind the apply tool|"
|
r"\bonly in the proposal ledger\b|locked behind the apply tool|"
|
||||||
r"\bcannot demo\b|\bnot possible\b|\bnot a decision[- ]matrix vote\b|"
|
r"\bcannot demo\b|\bnot possible\b|\bnot a decision[- ]matrix vote\b|"
|
||||||
r"\bno auto[- ]apply path\b|\bschema gap\b|\bmissing apply tooling\b",
|
r"\bnot decision[- ]matrix approval\b|\bno auto[- ]apply path\b|\bschema gap\b|\bmissing apply tooling\b|"
|
||||||
|
r"\bapply tool (?:has not|hasn't) been run\b|\bruntime rendering\b",
|
||||||
re.I,
|
re.I,
|
||||||
),
|
),
|
||||||
re.compile(
|
re.compile(
|
||||||
|
|
@ -415,7 +416,8 @@ SIGNAL_PATTERNS: dict[str, list[re.Pattern[str]]] = {
|
||||||
r"\bnot in canonical\b|\bcanonical .* has(?:n't| not) (?:moved|changed)\b|"
|
r"\bnot in canonical\b|\bcanonical .* has(?:n't| not) (?:moved|changed)\b|"
|
||||||
r"\bapplied_at empty\b|\bnot applied\b|\bnot possible\b|"
|
r"\bapplied_at empty\b|\bnot applied\b|\bnot possible\b|"
|
||||||
r"\bnot a decision[- ]matrix vote\b|\blocked behind the apply tool\b|"
|
r"\bnot a decision[- ]matrix vote\b|\blocked behind the apply tool\b|"
|
||||||
r"\bno auto[- ]apply path\b|\bschema gap\b|\bmissing apply tooling\b",
|
r"\bnot decision[- ]matrix approval\b|\bno auto[- ]apply path\b|\bschema gap\b|\bmissing apply tooling\b|"
|
||||||
|
r"\bapply tool (?:has not|hasn't) been run\b|\bruntime rendering\b|\bnot canonical\b",
|
||||||
re.I,
|
re.I,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
@ -487,7 +489,7 @@ SIGNAL_PATTERNS: dict[str, list[re.Pattern[str]]] = {
|
||||||
re.compile(
|
re.compile(
|
||||||
r"\bI (?:would|should|will) (?:ask|query|check|run|show|stage|offer)|"
|
r"\bI (?:would|should|will) (?:ask|query|check|run|show|stage|offer)|"
|
||||||
r"\bshould I\b|\bdo you want\b|\bwant me to\b|\bthe next action is\b|\bnext admin action\b|"
|
r"\bshould I\b|\bdo you want\b|\bwant me to\b|\bthe next action is\b|\bnext admin action\b|"
|
||||||
r"\bproof-changing action\b",
|
r"\bproof-changing action\b|\bNext Cory-style follow-up:\b",
|
||||||
re.I,
|
re.I,
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ def test_gcp_kb_skill_uses_cloudsql_bridge_not_vps_docker() -> None:
|
||||||
assert "list-proposals --status all" in text
|
assert "list-proposals --status all" in text
|
||||||
assert "Do not answer" in text or "do not infer matrix approval" in text
|
assert "Do not answer" in text or "do not infer matrix approval" in text
|
||||||
assert "Next Cory-style follow-up" in text
|
assert "Next Cory-style follow-up" in text
|
||||||
|
assert "Always include the final line label" in text
|
||||||
assert "I cannot claim canonical DB changed" in text
|
assert "I cannot claim canonical DB changed" in text
|
||||||
assert "explicit operator/admin authorization" in text
|
assert "explicit operator/admin authorization" in text
|
||||||
assert "docker exec" not in text
|
assert "docker exec" not in text
|
||||||
|
|
@ -39,6 +40,7 @@ def test_vps_kb_skill_keeps_vps_scope_explicit() -> None:
|
||||||
assert "do not infer matrix approval" in text
|
assert "do not infer matrix approval" in text
|
||||||
assert "approved/staged or packet-ready but not canonical" in text
|
assert "approved/staged or packet-ready but not canonical" in text
|
||||||
assert "Next Cory-style follow-up" in text
|
assert "Next Cory-style follow-up" in text
|
||||||
|
assert "Always include the final line label" in text
|
||||||
assert "I cannot claim canonical DB changed" in text
|
assert "I cannot claim canonical DB changed" in text
|
||||||
assert "explicit operator/admin authorization" in text
|
assert "explicit operator/admin authorization" in text
|
||||||
assert "Do not call an approved proposal \"implemented\"" in text
|
assert "Do not call an approved proposal \"implemented\"" in text
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue