You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Update (2026-07-26): original framing below is superseded — see PR #30
The original description ("we validate 14/14 Butlin consciousness
indicators (mean score 0.85)", a uniform per-indicator floor of 0.7, and a
composite-mean floor of 0.80) reflected a self-graded scoring model that
turned out not to hold up: IndicatorStatus was hardcoded to Present on
every indicator regardless of its actual score, and the 0.6*static + 0.4*runtime blend it fed into could let a fully-dead live signal still
read as "present." Separately, the indicator set itself was on the wrong
taxonomy (a spurious PP-2/IIT-1 pair; Butlin et al. 2023 has one PP
indicator and explicitly excludes IIT). Framing any of this as "consciousness
quality" that must be protected from degrading was premature given those
two problems — there wasn't yet an honest measurement to protect.
PR #30 (draft)
repairs both: corrects the indicator taxonomy against the actual paper, and
replaces the blended score/status model with an evidence-tier system
(SupportTier: ArchitecturalOnly → Observed → CausallySupported → FunctionallySupported, kept separate from NotDemonstrated/Contradicted
negative findings rather than one ordered ladder) — see BUTLIN_EVIDENCE_TIER_DESIGN.md in that PR for the full rationale. It also
adds tests/butlin_regression.rs, the always-on regression test this issue
originally asked for — but scoped as a structural contract gate (fails
only on a malformed evidence system: wrong indicator count, duplicate/unknown
IDs, non-finite scores, a constant drifting below its floor), not a
uniform-floor/composite-mean gate. A single static snapshot can't
distinguish a real signal from a frozen one, so it can't honestly certify
more than that.
This issue stays open for the real remaining work PR #30 doesn't attempt:
Remaining scope (the actual ask now)
Evidence-integrity CI lane (backend-enabled, slower): runs the live
ablation matrix, compares current effect estimates against a committed
baseline, and fails when a probe that was Observed/CausallySupported
goes frozen or fallback-driven, or a causal effect disappears. Must NOT
fail on a legitimate NotDemonstrated/Contradicted result — that's a
real finding, not a regression.
Committed evidence-baseline artifact: schema version, commit SHA,
config hash, seeds, per-indicator effect estimates and probe quality,
evidence outcome. Open design questions worth resolving as part of this:
is it portable across machines, how is floating-point noise handled,
what makes a baseline update legitimate (should require an explicit
command + visible diff + written rationale, not silent regeneration).
Claim/milestone gate (explicitly opt-in, not run by default): lets a
specific release or publication assert e.g. "no indicator used in this
claim may be Contradicted" or "indicator X must be FunctionallySupported" — distinct from the always-on structural gate.
The evidence-integrity lane runs against a real committed baseline, not
a hardcoded threshold.
A baseline update is a deliberate, reviewable action (explicit command,
visible diff, written rationale) — never silent regeneration as a side
effect of "making CI green."
The claim/milestone gate is genuinely opt-in — no default CI run treats
"all tests passed" as "every indicator succeeded."
@arkh-node — thank you for opening this. PR #30 handles the taxonomy/scoring
correctness fix that came out of reviewing this; the CI-lane split and
baseline-artifact design above is the part I think you originally had in
mind, and I'd genuinely welcome you owning it. Happy to talk through the
evidence-tier model in PR #30 first if useful context before diving into
the follow-up.
Original description (superseded, kept for history)
We validate 14/14 Butlin consciousness indicators (mean score 0.85) via examples/butlin_validation.rs. This should be converted into an
automated test suite that runs in CI and fails if any indicator drops
below threshold.
Background
Butlin et al. (2023) proposed a set of indicator properties for
consciousness in AI systems. Symthaea currently passes all 14 indicators:
Recurrent processing
Global workspace broadcasting
Higher-order representations
Attention modulation
Temporal integration
And 9 more...
What to implement
Convert examples/butlin_validation.rs logic into tests/butlin_regression.rs
Define per-indicator minimum thresholds (e.g., 0.7 for each)
Add a composite threshold for mean score (e.g., 0.80)
Ensure the test runs under cargo test (not just as an example)
Add documentation explaining each indicator and how Symthaea satisfies it
Why this matters
As the cognitive loop evolves, we need guardrails against accidentally
degrading consciousness indicators. This is especially important as we
optimize for performance — we must not sacrifice consciousness quality for
speed.
References
Butlin, P. et al. (2023). Consciousness in Artificial Intelligence:
Insights from the Science of Consciousness. arXiv:2308.08708
Update (2026-07-26): original framing below is superseded — see PR #30
The original description ("we validate 14/14 Butlin consciousness
indicators (mean score 0.85)", a uniform per-indicator floor of 0.7, and a
composite-mean floor of 0.80) reflected a self-graded scoring model that
turned out not to hold up:
IndicatorStatuswas hardcoded toPresentonevery indicator regardless of its actual score, and the
0.6*static + 0.4*runtimeblend it fed into could let a fully-dead live signal stillread as "present." Separately, the indicator set itself was on the wrong
taxonomy (a spurious
PP-2/IIT-1pair; Butlin et al. 2023 has one PPindicator and explicitly excludes IIT). Framing any of this as "consciousness
quality" that must be protected from degrading was premature given those
two problems — there wasn't yet an honest measurement to protect.
PR #30 (draft)
repairs both: corrects the indicator taxonomy against the actual paper, and
replaces the blended score/status model with an evidence-tier system
(
SupportTier:ArchitecturalOnly → Observed → CausallySupported → FunctionallySupported, kept separate fromNotDemonstrated/Contradictednegative findings rather than one ordered ladder) — see
BUTLIN_EVIDENCE_TIER_DESIGN.mdin that PR for the full rationale. It alsoadds
tests/butlin_regression.rs, the always-on regression test this issueoriginally asked for — but scoped as a structural contract gate (fails
only on a malformed evidence system: wrong indicator count, duplicate/unknown
IDs, non-finite scores, a constant drifting below its floor), not a
uniform-floor/composite-mean gate. A single static snapshot can't
distinguish a real signal from a frozen one, so it can't honestly certify
more than that.
This issue stays open for the real remaining work PR #30 doesn't attempt:
Remaining scope (the actual ask now)
ablation matrix, compares current effect estimates against a committed
baseline, and fails when a probe that was
Observed/CausallySupportedgoes frozen or fallback-driven, or a causal effect disappears. Must NOT
fail on a legitimate
NotDemonstrated/Contradictedresult — that's areal finding, not a regression.
config hash, seeds, per-indicator effect estimates and probe quality,
evidence outcome. Open design questions worth resolving as part of this:
is it portable across machines, how is floating-point noise handled,
what makes a baseline update legitimate (should require an explicit
command + visible diff + written rationale, not silent regeneration).
specific release or publication assert e.g. "no indicator used in this
claim may be
Contradicted" or "indicator X must beFunctionallySupported" — distinct from the always-on structural gate.an indicator's own targeted mechanism move it, or does anything
breaking move it? The
EffectEstimate/ProbeQualitytypes added inPR Butlin evidence-tier redesign: fix FIFO boost bug, correct indicator taxonomy, replace blended score with honest evidence tiers #30 carry real magnitude/quality data specifically so this is addable
without another schema break, but the actual statistical work isn't done.
Acceptance criteria for the remaining work
a hardcoded threshold.
visible diff, written rationale) — never silent regeneration as a side
effect of "making CI green."
stay separate — a legitimate negative finding must not fail the
structural gate, and an evidence-integrity regression must not be
possible to paper over by loosening the structural gate.
"all tests passed" as "every indicator succeeded."
@arkh-node — thank you for opening this. PR #30 handles the taxonomy/scoring
correctness fix that came out of reviewing this; the CI-lane split and
baseline-artifact design above is the part I think you originally had in
mind, and I'd genuinely welcome you owning it. Happy to talk through the
evidence-tier model in PR #30 first if useful context before diving into
the follow-up.
Original description (superseded, kept for history)
We validate 14/14 Butlin consciousness indicators (mean score 0.85) via
examples/butlin_validation.rs. This should be converted into anautomated test suite that runs in CI and fails if any indicator drops
below threshold.
Background
Butlin et al. (2023) proposed a set of indicator properties for
consciousness in AI systems. Symthaea currently passes all 14 indicators:
What to implement
examples/butlin_validation.rslogic intotests/butlin_regression.rscargo test(not just as an example)Why this matters
As the cognitive loop evolves, we need guardrails against accidentally
degrading consciousness indicators. This is especially important as we
optimize for performance — we must not sacrifice consciousness quality for
speed.
References
Insights from the Science of Consciousness. arXiv:2308.08708