|
@@ -10,9 +10,10 @@ same three tools the daemon's ToolLoop exposes. The scenarios:
|
|
|
slug answers 404
|
|
slug answers 404
|
|
|
- every canon/ethos route requires the bearer token (401 without)
|
|
- every canon/ethos route requires the bearer token (401 without)
|
|
|
- GET /api/saddle/ethos serves the one web-side ethos text, which
|
|
- GET /api/saddle/ethos serves the one web-side ethos text, which
|
|
|
- carries the BINDING operative clause and the goal-start
|
|
|
|
|
- canon-grounding tier (goal 32): named markers on the served text,
|
|
|
|
|
- on the assignment payload member, and on the advisor system
|
|
|
|
|
|
|
+ carries the BINDING operative clause and the goal-agent
|
|
|
|
|
+ canon-grounding tier (goal 32): dig past a bare "not prohibited"
|
|
|
|
|
+ and re-ground on every course shift — named markers on the served
|
|
|
|
|
+ text, on the assignment payload member, and on the advisor system
|
|
|
prompt's tail, so a softened edit fails loudly
|
|
prompt's tail, so a softened edit fails loudly
|
|
|
- a fresh assignment payload (the fake saddle's next-task ask) carries
|
|
- a fresh assignment payload (the fake saddle's next-task ask) carries
|
|
|
the same text as its `ethos` member
|
|
the same text as its `ethos` member
|
|
@@ -125,7 +126,8 @@ def run(ctx):
|
|
|
and "order of goods" in ethos and "servant, not a oracle" in ethos,
|
|
and "order of goods" in ethos and "servant, not a oracle" in ethos,
|
|
|
"the ethos text carries the daemon's section verbatim")
|
|
"the ethos text carries the daemon's section verbatim")
|
|
|
# The operative duty (goal 32): the order of goods is BINDING, with a
|
|
# The operative duty (goal 32): the order of goods is BINDING, with a
|
|
|
- # once-and-ask conflict clause and the goal-start canon-grounding tier.
|
|
|
|
|
|
|
+ # once-and-ask conflict clause and the goal-agent canon-grounding tier
|
|
|
|
|
+ # — dig past a bare "not prohibited", re-ground on every course shift.
|
|
|
# Every marker is asserted by name so a softened edit fails loudly.
|
|
# Every marker is asserted by name so a softened edit fails loudly.
|
|
|
for marker in ("BINDING, not advisory",
|
|
for marker in ("BINDING, not advisory",
|
|
|
"state the conflict plainly ONCE",
|
|
"state the conflict plainly ONCE",
|
|
@@ -133,9 +135,13 @@ def run(ctx):
|
|
|
"ask_question where available",
|
|
"ask_question where available",
|
|
|
"do not nag",
|
|
"do not nag",
|
|
|
"their judgement is senior",
|
|
"their judgement is senior",
|
|
|
- "CANON GROUNDING AT GOAL START",
|
|
|
|
|
|
|
+ "CANON GROUNDING FOR A GOAL AGENT",
|
|
|
|
|
+ "is not clearance",
|
|
|
|
|
+ "not convenient",
|
|
|
|
|
+ "RE-GROUND ON EVERY COURSE SHIFT",
|
|
|
|
|
+ "after each",
|
|
|
|
|
+ "covers only what was examined then",
|
|
|
"BEFORE any task queues",
|
|
"BEFORE any task queues",
|
|
|
- "ONCE per goal",
|
|
|
|
|
"Goal-initiated TASKS carry only the binding duty"):
|
|
"Goal-initiated TASKS carry only the binding duty"):
|
|
|
check(marker in ethos,
|
|
check(marker in ethos,
|
|
|
"the ethos carries the operative marker %r" % marker)
|
|
"the ethos carries the operative marker %r" % marker)
|
|
@@ -203,12 +209,13 @@ def run(ctx):
|
|
|
and "order of goods" in system.get("content", ""),
|
|
and "order of goods" in system.get("content", ""),
|
|
|
"the advisor system prompt carries the ethos section")
|
|
"the advisor system prompt carries the ethos section")
|
|
|
# The strengthened ethos rides LAST on the advisor system prompt: the
|
|
# The strengthened ethos rides LAST on the advisor system prompt: the
|
|
|
- # binding clause and the goal-start canon tier must both be present,
|
|
|
|
|
- # and the prompt must END with the served text (content is the prompt
|
|
|
|
|
- # itself with the ethos appended, so the whole ethos is the tail —
|
|
|
|
|
- # equal to the served text modulo its leading/trailing whitespace).
|
|
|
|
|
|
|
+ # binding clause and the goal-agent canon tier (dig + re-ground) must
|
|
|
|
|
+ # both be present, and the prompt must END with the served text
|
|
|
|
|
+ # (content is the prompt itself with the ethos appended, so the whole
|
|
|
|
|
+ # ethos is the tail — equal to the served text modulo its leading/
|
|
|
|
|
+ # trailing whitespace).
|
|
|
system_content = system.get("content", "")
|
|
system_content = system.get("content", "")
|
|
|
- check("CANON GROUNDING AT GOAL START" in system_content
|
|
|
|
|
|
|
+ check("CANON GROUNDING FOR A GOAL AGENT" in system_content
|
|
|
and "BINDING, not advisory" in system_content,
|
|
and "BINDING, not advisory" in system_content,
|
|
|
"the advisor system prompt carries the strengthened ethos")
|
|
"the advisor system prompt carries the strengthened ethos")
|
|
|
check(system_content.strip().endswith(ethos.strip()),
|
|
check(system_content.strip().endswith(ethos.strip()),
|