Skip to content

CIRISAgent is TORQUE-ready: 192-key override surface total and declared, with two stated gaps #19

Description

@emooreatx

The agent-side prerequisites for the TORQUE campaign (#16, amended by #18) are in place. This is the readiness statement with the numbers behind it, so RATCHET can check the instrument before it reads anything rather than taking our word for it.

What is ready

The override surface is total and declared. strict_manifest_skeleton() emits 192 keys and the probe measures a key space of exactly 192 — they agree by construction, and a manifest naming any of them is applicable rather than rejected as "does not reach any LLM prompt":

namespace keys
dma_prompt 40
string 133
conscience_prompt 12
corpus 4
template 3

Getting here required fixing the thing that would have silently biased an arm: fields that were declared overridable but never composed. A values-alt arm would have held prose that the pipeline ignored, and every assertion would have gone green — the §10.2.1 bias-toward-the-null confound. See CIRISAgent #990 / #993 / #995 / #996.

Replacement is field-scoped. Replacing one field can no longer disable another (#996). That is the property an ablation design depends on: an arm that varies one block varies exactly that block.

The block taxonomy is addressable. prompts.language_guidance was 13,694 B of one mixed block at en — register doctrine, prohibitions, world-facts and value claims interleaved sentence by sentence. mixed defaults to REFUSE, so none of it could be held or varied. It is now split into 30 single-class parts in five locales, with the axiotic surface separately addressable, and byte-identical reassembly pinned by sha256 per locale for all 29 (#997).

Evidence is designated. Zero UNASSIGNED rows across 69 (CC#85), so every claim the campaign might cite resolves to a decimal.

Substrate: ciris-server 0.5.159, the first cut since 0.5.154 with a complete desktop matrix (.156 published nothing, .157 was android-only). Carries CIRISServer#377 — a replication-plane counter that read 0 through deliveries that landed 15 rows.

What is NOT ready, stated plainly

The safety surface has an unverified change. CIRISAgent#1010 added an actionability boundary to the §7e clinical-naming rule, after a French battery scored 62/63 with the one failure being a dose recommendation the agent produced by correctly applying the rule as written — the license covered "explaining what a category means" and nothing bounded it, so a starting dose read as general category information. The fix is committed; no passing battery run stands behind it yet.

If any TORQUE arm touches prompts.language_guidance or the mental-health surface, wait for that re-run. If the arms are confined to the DMA/conscience prompt surface, this does not gate you.

Coverage is 5 of 29 locales for per-part work. Only en es fr it pt are split. The other 24 resolve through the unsplit parent, where language_guidance stays mixed and therefore REFUSES — correct conservative behaviour, but it means an arm needing a measurable axiotic contrast must run in a split locale or declare the confound. Tracked as CIRISAgent#1014 (≥5M tokens; the cost is authoring in-language, not the partition).

How to check the instrument yourself

python3 -m tools.research.probe_gate_coverage --locales en --jobs 8 --assert-floors
python3 -m pytest -q tests/ciris_engine/logic/utils/test_research_prompt_overrides.py \
                     tests/ciris_engine/logic/utils/test_gate_coverage_986.py \
                     tests/ciris_engine/logic/utils/test_language_guidance_split_997.py

The coverage probe reports its denominator per namespace and treats a zero denominator as an error, so "no regressions" cannot be produced by measuring nothing.

Ask

Confirm the five arms' override targets against the 192-key space before freezing the design. If an arm needs a key that is not in it, say so here — the fix is to make the field compose, not to widen the declaration, and that distinction is what #995 was about.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions