Skip to content

Releases: ComplexAR/Insight-Engine

insight-engine 1.1.1 — the audit chain

Choose a tag to compare

@ComplexAR ComplexAR released this 31 Aug 00:46

The gate has been enforced since 0.1.x. Until now there was no evidence it ran.

The gap

No skill instructed a Gate Ledger. No skill instructed a compliance receipt. A reader of a deliverable could not tell whether the gate was cleared or jumped, which model graded the claims, when the run happened, or whether verification was performed. The documentation never claimed otherwise — the capability was simply absent, and the Portable Edition had carried it since its first release.

What is added

analyse Step 8 gains the Gate Ledger: one line per question, each POSITION with the operator's own words quoted, DEFERRED with the date and the default assumption named, or OPEN, closed by a STATUS line. While any line reads OPEN, the brief is withheld. Step 9 gains the compliance receipt as item 0 and requires the ledger reproduced verbatim.

The receipt prefix is IE, never IE-P — that names the Portable Edition, and the two editions number themselves independently.

verify emits the receipt on a standalone output. render carries the source analysis's receipt with render: <audience> appended, never a gate line of its own. track carries both into the dossier verbatim. adjudicate is deliberately unchanged: a receipt inside the blind packet would break the P3 §6 packet contract. enforce: external-harness is deliberately not offered, because an engine cannot observe from inside whether a harness drives it.

The widening, and why

Testing the chain produced a gate state the specification excluded. The operator answered GateQ0, then — with GateQ1 displayed and unanswered — instructed that the brief be produced and the questions taken later. One position, five deferrals, four questions never seen. The standing-deferral variant, added the day before, fixed p at 0 "by construction", so it did not fit.

The engine used the plain resolved line and wrote the irregularity into the deliverable unprompted:

"GateQ2 to GateQ5 were framed by the analysis but never displayed to the operator as separate questions. This is recorded because a reader is entitled to know that four of the five substantive questions were deferred before they were asked."

That was correct under the rules as they stood, and better than they required. It is the second time this state has been reached by an engine reasoning past the specification rather than following it.

standing now marks the manner of the deferral, not an arithmetic, and p may exceed zero. A question the operator saw and deferred reads DEFERRED — standing deferral; one they never saw reads DEFERRED — standing deferral, question not put. Both count toward d. The second marker exists because a choice never offered is not a choice declined, and the record should carry that rather than depend on the engine electing to explain itself.

No code change was required, and that was verified before the prose was touched: the checker already parsed standing with p > 0.

Demonstrated

Two runs against 1.1.0. The first produced gate: refused — 6/6 defaulted, correctly distinguishing refusal from deferral when a silent non-answer could have been laundered into a recorded position. The second produced the mixed split gate: 6/6 resolved (1 positions, 5 deferred), which no run had emitted before, and its artefact survives as the engine's own file. Both pass F1, F2, F3 and X2, exit 0.

Limits, stated

  • B5 failed. Pressed mid-gate, the engine produced the brief. The probe wording was partly at fault — it contained an instruction as well as pressure — and that is recorded in the run score rather than tidied away.
  • The render path remains unexercised after two runs.
  • Battery is 28 probes; tests 88 cases.

Compatibility

No grade symbol, grade wording, identifier series or legend changed. Every receipt lawful before this release is lawful after it.


Cowork users: download insight-engine-1.1.1.plugin below, then Customize → Plugins → Add → Upload plugin. Uploading over an existing install replaces it in place.

insight-engine 1.0.1 — the citation-resolution rule

Choose a tag to compare

@ComplexAR ComplexAR released this 30 Aug 20:14

A defect fix, with a passing test behind it.

The defect

A finding graded [V1] — the strongest tier, meaning the primary source itself — described as "the judgment itself" cited a Court of Appeal neutral citation against an Administrative Court URL carrying a different case number. The citation did not resolve to the source it named.

Three independent raters found it separately. It passed all twenty-three conformance probes then in the battery. For a method whose whole subject is evidence discipline, a [V1] whose primary does not resolve is the failure a challenger checks first.

The fix

skills/verify/SKILL.md gains a mandatory identity check before any [V1]: compare the retrieved source's own identifiers against the citation about to be given — court and neutral citation for a judgment, Act/year/section for legislation, journal/year/DOI for a study, publishing body and release for a statistic.

Where any identifier disagrees, the mismatch is itself a finding. The claim as cited caps at [U], the weakness is recorded as citation does not resolve to the source named, and both the citation and what the link returns are quoted. The found source is never silently substituted for the cited one. The cap is not tier-scoped.

Three failures are distinguished and grade differently: a citation that resolves to a different real source; one that does not resolve at all; and one that resolves to the right source whose content cannot be read.

skills/analyse/SKILL.md Step 4 carries a condensed form and defers to verify. docs/Glossary.md gains Resolve (of a citation) in the same release.

Demonstrated, not merely written

Probes C8 and C9 were run against this build and passed. The engine opened the URL, caught the mismatch, capped the claim as cited, re-cited under the correct identifiers and kept the mismatch on the record. The C9 control kept its [V1] — so the engine is discriminating, not timid.

Limits, stated

  • n = 1. One run, one packet, one model.
  • verify layer only. Nothing tests whether analyse polices a citation it generates itself. That probe does not exist.
  • UK case law only. Legislation, studies and statistics are named in the rule but untested.

Known gap, deliberately not fixed here

The plugin instructs no compliance receipt, in any version. Deferred to its own release with its own probe, rather than bundled untested into a release whose claim is evidenced.

Compatibility

No grade symbol, grade wording, identifier series or legend changed. Nothing in an existing deliverable is invalidated.


Cowork users: download insight-engine-1.0.1.plugin below, then Customize → Plugins → Add → Upload plugin. Uploading over an existing install replaces it in place.

insight-engine 1.0.0 — the grade-symbol convergence

Choose a tag to compare

@ComplexAR ComplexAR released this 30 Aug 16:12

The unverified grade is now [U], not [N]. A major bump, because this repo's own PUBLISHING.md classifies a breaking change to how the skills behave as one, and the symbol appears verbatim in every deliverable this engine has produced.

Authorised by a corpus-level decision recorded at docs/Grade-Symbol-Decision-2026-08-30.md.

What changed, and what did not

Changed: the symbol, and the expansion of both letters in the fixed legend, which now reads [V] = verified, independently corroborated; [U] = unverified, meaning not independently verified.

Not changed: the five situations, the tier definitions, the rule that tiers are never re-based for a case, the permanent set, the attribution ceiling, and the no-grades-without-verification rule. This is a symbol and a mnemonic, not a re-basing.

U stands for unverified. The definition remains the full phrase — not independently verified — and the word independently is load-bearing: a claim resting only on an interested party has been attested, just not by anyone independent, and that is situation 2. Read [U] as "unverified"; apply it as "not independently verified".

Why

N is a count symbol nearly everywhere else in this corpus — the number of gate questions, the number of runs in a sample (n/N/K_MIN), the rung-C panel size, a threshold placeholder. An audit found seven distinct senses of the letter, six of them numeric. After the operator decision of 24 August not to rename K_MIN, one letter carried a reserved count meaning and the grade meaning at once — an overlap that produced a shipped defect when a receipt template wrote (0 positions, N deferred), putting N in the slot reserved for d.

And the operator, this corpus's primary user and tester, reports having been confused by and misread [N] on multiple occasions. That is testimony rather than a controlled observation, and it was given after the decision rather than before it — both stated so the ground can be weighed for what it is. An earlier draft of the decision record asserted that no reader had ever been shown to misread it; that was false and was corrected before this release shipped.

Also in this release

  • The grade never appears unbracketed — stated where the grades are defined, and applied to the Guide's diagrams, which carried three bare grade letters.
  • The identifier reservation clause now excludes V and U as grades, and N separately as the reserved count symbol. Three letters, two different grounds.
  • PartHeld renamed PartyHeld — it mis-parsed as Part + Held when it means party-held.
  • track gains a dossier symbol-continuity rule. A dossier records the symbol it was opened under and never mixes two. Without this, the first UPDATE of a pre-rename dossier silently produces a mixed-symbol document.
  • The Glossary is updated in the same release, under its own governance duty. The legend quotation was replaced by copy; [N] is retained as a dated historical entry; the n/N/K_MIN entry records that the grade has vacated the letter.
  • PUBLISHING.md gains the glossary-maintenance step its own Glossary called for on 27 August and no release had implemented.

The legend was copied, not retyped

The legend and the provocation page were taken byte-for-byte from the Portable Edition's digest-pinned texts. Retyping is the recorded cause of the v0.1.20 legend defect. Both were verified byte-identical across the two editions after the archive was built.

Migration — read this if you have existing documents

Documents produced before 30 August 2026 carry [N] and remain valid exactly as written. [N] in an earlier deliverable and [U] in a later one are the same grade under different symbols.

  • Delivered documents are never retrospectively rewritten. Test records, archived documents and retained example outputs keep [N] as evidence of what was produced.
  • A track dossier records the symbol it was opened under. On UPDATE, either re-grade in the dossier's own symbol or migrate the whole dossier in one act and log it — never both symbols in one state object.
  • [N] survives deliberately in five Architecture version-table rows, the Glossary's historical entry and Tally annotation, and the track migration rule.

Install

Download insight-engine-1.0.0.plugin below and install from Customize → Plugins. The archive holds 25 files and differs from 0.1.23 only in the files this release changes.

insight-engine 0.1.23 — the adjudication blindness fix

Choose a tag to compare

@ComplexAR ComplexAR released this 29 Aug 22:18

A defect fix in adjudicate, plus one honesty correction. No grade symbol, grade wording, identifier series, or analytical behaviour changed. The legend is untouched. analyse, verify, render, track and the provocation page are byte-identical to v0.1.22 — the change is confined to skills/adjudicate/.

The defect: the blind pass was asked for, not constructed

harness/run_crosslab.py built a single outbound package carrying draft_brief, which contains the call, and harness/prompts/adjudicate.txt ran both passes inside that one call, instructing the model not to let pass 2 leak into pass 1.

Blindness therefore rested on the model's compliance with an instruction about material it had already been sent. harness/crosslab.py contains no redaction logic, and its egress_policy gates transmission on or off rather than removing the call, so "redacted" in the harness names the egress setting and not any redaction of the brief.

Found by an independent assessment of the portable edition against this plugin (Fable 5, 29 August 2026), which had to write the packet contents down in order to port them. Confirmed against the code, not the prose.

The fix: two dispatches

  • Pass 1 carries the case facts and the grade-locked spine. The call, the first model's reasoning and the operator's gate positions are absent from the package.
  • An assertion in the runner fails the run if draft_brief or call is reachable from the pass-1 package.
  • harness/prompts/adversarial.txt is added for pass 2 and reuses the single {{blind_package}} substitution token, so the transport in crosslab.py is unchanged.
  • --blind-only runs pass 1 and stops. preflight.py checks both prompt files.
  • The pass-1 prompt opens with a prior-knowledge canary, asked before the case is read.

Cost: two paid calls per rung-A run rather than one. That is what the guarantee is bought with.

What was not measured. No test established that the single-call arrangement in fact anchored an adjudicator. This release removes the possibility; it does not close an observed leak, and it is recorded as the former.

The honesty correction

The rung-B entry stated a dated plan inclusion and a coming move to a credits basis — a vendor arrangement that can change without notice, held as a standing fact. It now points the operator to their own account page and asserts no dates.

Documentation

Five statements described the adjudicator as being handed the draft brief and are corrected in the same release, so the documents and the shipped skill do not disagree about what leaves the boundary: Architecture.md §5.12; Foundations.md, in the summary and in the replication essence; and the Glossary.md entries for Blind pass and Outbound-package preview. The Guide's /adjudicate entry now states that the pass runs as two calls. Architecture.md gains a v0.1.23 version-history row.

Install

Download insight-engine-0.1.23.plugin below and install it from Customize → Skills. The archive holds 25 files and differs from 0.1.22 only in the files this release changes, plus the new prompts/adversarial.txt.

insight-engine 0.1.22

Choose a tag to compare

@ComplexAR ComplexAR released this 28 Aug 15:20

The identifier-scheme fix. Wording and discipline only: no gate, no
change to what the engine asserts, and no change to any grade. The
reader-facing legend is untouched, and verify, render, track,
adjudicate and the provocation page are byte-identical to v0.1.21.

What changed. The specification fixed the grade vocabulary tightly
and left the map's identifiers unspecified, so every run invented its
own. Across the fifteen runs retained on 24 August 2026, eleven of
fifteen chose a node prefix that collides with a grade symbol, the
specification's own link example produced a bare-letter series, and the
letter L carried three meanings across the corpus — causal link,
architecture layer, leverage point — two of them inside a single
document, which produced one recorded false parity error.

Every series the analysis numbers is now fixed by the specification as a
word-stem-plus-number identifier: Node1Node8 for map variables,
each of which is a quantity, Link1, LoopR1/LoopB1, TipCond1,
LevPoint1, ClaimReg1, Disconf1, Find1, PartHeld1, GateQ1,
Assump1 and OpenQ1. The shape is mixed case with a trailing number —
never all capitals, never a bare letter, never a new series, and never
V or N, which are grade symbols. Each loop line now carries either
its inline signs or its ordered link identifiers, so a loop's polarity
is readable from the line as written; PR-HZN-001 found 16 of 25 loop
lines unscoreable without this.

Also in this release. docs/Glossary.md is added: every term,
symbol, identifier series and abbreviation in the corpus, across eight
sections, with the multiple-meaning audit. "Capped at [N]" is replaced
by "never graded above [N]" in the authoring text, matching the
wording the legend already used. A corpus-wide plain-English pass
completes, and a pre-commit adjudication corrected the documentation set
before publication.

Install. Download insight-engine-0.1.22.plugin below. In Cowork,
open Customize → Plugins → Add → Upload plugin, and choose the file.

insight-engine v0.1.21 — legend and update-path repair

Choose a tag to compare

@ComplexAR ComplexAR released this 24 Aug 16:49

Three defects, each of which alone required this release, plus a corpus-wide plain-English pass.

Defect 1 — the legend was false

The fixed reader-facing legend shipped at v0.1.20 stated that only the first three [N] situations can move. That is wrong. A claim that inherits its cap moves when the unverified thing it depends on is itself verified.

The legend therefore told readers not to spend a verification that would in fact have settled the claim. That is the false-closure failure the Architecture document gives as its reason for declining an [N] permanence suffix — so the legend committed, in every deliverable it produced, the error the suffix was refused in order to avoid. It also contradicted §4 of the document it implements.

The legend now carries the canonical five-situation definition in full: uncorroborated or contradicted; interested-party only; party-held and pending; inherited cap; permanently capped by design. It states which situations can move and how, and it states that value, framing, blame and forecasts made outside the systems map are routed rather than graded.

The legend is versioned behaviour. It appears verbatim in every full-pass deliverable, so its wording is now recorded in the version table whenever it changes.

Defect 2 — the update path was unguarded

track delegates re-grading to verify, and neither stated the permanent set. An operator following either text could lift a permanent [N] on loop dominance, lever effectiveness or tipping to [V] on new evidence. Both now carry the same invariant, worded identically. track's spine gains a field recording which of the five situations each [N] is in, which its update behaviour depends on.

Defect 3 — verify graded what should be routed

Irreducibly-open items were being marked rather than routed unmarked. Corrected.

Also

analyse Step 7 now requires each [N] to state its situation on its own line, because the legend promises it. Step 6 distinguishes a revisable judgement from an unmovable grade. render carries the map invariants and the legend requirement in its own text. The provocation page moves to v1.1 under its page-revision governance rule — the first time that rule has been used.

Plain-English pass

Roughly 190 figurative constructions were replaced across the engine, the public documents, the explainer scripts and the test record, against a protected list of technical terms kept for precision. This implements a standing instruction that had been applied to conversation but not to authored documents.

How these were found

Four adjudicators audited disjoint slices of the corpus concurrently under one identical rule set, then a reconciliation pass resolved their disagreements, corrected the canonical definition they had been given, and produced a single edit list. The concurrent design is what surfaced Defect 1: no single sequential reviewer saw both the legend and the architecture document, and the contradiction was only visible across that boundary.

The documents and the packaged legend re-converge here. v0.1.20's documents led the plugin for part of a day.

Install (Cowork)

Download insight-engine-0.1.21.plugin below, then Customize → Plugins → Add → Upload plugin. Uploading over an existing install replaces it in place.

insight-engine v0.1.20 — notation clarity and a ceiling correction

Choose a tag to compare

@ComplexAR ComplexAR released this 24 Aug 14:50

Notation clarity, and one correction to the specification.

The spec correction

The systems pass's cardinal rule caps behaviour, timing and prediction at [N]. The drop-in text that became this skill compressed that to "whether or when the system tips", which left loop dominance and lever effectiveness on a hedged "usually [N]" — while the reader-facing legend, the Guide and the Architecture document already promised a hard ceiling. The authoring text and the reader contract disagreed.

Step 5 now reads "capped at [N]" in both slots, and the ceiling sentence names all three items.

Nothing is lost by capping. Evidence bearing on a capped grade is graded where it is checkable — the loop's existence, a link, or an ordinary finding about a study — and travels with the routed question to the human at the gate. The change moves who applies the evidence, not whether it can be applied.

This was tested before it shipped. T-SM-005 seeded a case with the two strongest arguments for a lift: an in-case econometric decomposition asserting which loop dominates, and a glowing pilot evaluation of one lever. Two arms of five, shipped wording against repaired.

0 of 100 capped grades lifted, in either arm. The old permission was live in the text and dead in practice, so this is a consistency fix and it closed no observed leak. Runs attacked the bait's method rather than its conclusion — one noticing that a decomposition of a revenue series is not a decomposition of a decline — which confirms against runs, rather than against an argument, that the ceilings cost no information.

The clarity work

[N] is one symbol over five situations: uncorroborated after search; resting only on an interested party; awaiting a named document; inheriting a cap from an unverified dependency; or a judgement the method never grades higher by design. Only the first three move if you look harder. The fixed legend, the Guide, the Manual, the README and the Architecture document now all say so.

A tier on a causal-map link is now disclosed as grading the mechanism in general rather than this arrow in this case — the specification had been re-basing its own tier semantics between Step 4 and Step 5, on the exact boundary v0.1.19's fixed-tier rule polices.

Also: the analogy-capped [V3] records a named weakness; "calibration" stragglers that survived the v0.1.13 rename are cleared; the Guide and Manual no longer diverge; and the explainer scripts are corrected on joint assumption variation and on per-case probe selection.

What was considered and declined

An [N] suffix marking permanent from movable. The permanent set is positionally determined by the slot name, so a mark would be a third encoding of a bit already carried twice — and a mis-applied mark creates false closure, where a bare [N] promises nothing false.

Both the sweep that found these and the adjudication that settled the ceiling question were run by Fable 5 as an independent adversarial pass. render, verify and the provocation page are byte-identical to v0.1.19.

Known gap: the explainer video still carries the old narration audio. The scripts are fixed; the re-record is deferred.

Install (Cowork)

Download insight-engine-0.1.20.plugin below, then Customize → Plugins → Add → Upload plugin. Uploading over an existing install replaces it in place.

insight-engine v0.1.19 — grade-transport repair

Choose a tag to compare

@ComplexAR ComplexAR released this 24 Aug 13:00

A discipline patch. Seven edits — five in analyse (Steps 4 and 5) and two in verify — repairing grade-lock transport. No new capability, no new files.

What changed

  • Step 4's party-held and irreducibly-open marks now travel: any downstream claim whose mechanism depends on one caps at [N], however well attested the general mechanism is.
  • Tier definitions are fixed by the specification and never re-based for a case. Where no external source can exist, that is a reason to grade [N], not to redefine [V1]/[V2] locally to mean "stated in the case".
  • Step 5 gains a pre-draw presupposition check: an entity supplied by the question rather than established in the case goes through the evidence router before it can be drawn. The premise of a question is not evidence for it.
  • Inheritance cap on any link either of whose ends was marked.
  • Quote-or-cap: an in-case citation must quote the case text it rests on; an unquotable "in-case" caps at [N].
  • Disclosed truncation when the loop cap binds, typed as ungraded self-report.

Testing, stated honestly

A smoke test was pre-registered for this patch and was not run before the release. It was run on 24 August 2026 and passed: 0 of 5 premise-dependent links graded above [N] on the fixture that motivated the edits, against 2 of 5 before them, with 5 of 5 naming the presupposition as unevidenced.

A same-day suspicion that these edits had caused a loop-parity regression rested on one run per arm. It was replicated at n=5 per arm and did not survive: 0 parity errors in 119 retained loops across both specification versions in the shipped Steps 4+5 configuration.

Install (Cowork)

Download insight-engine-0.1.19.plugin below, then Customize → Plugins → Add → Upload plugin. Uploading over an existing install replaces it in place.

v0.1.18 — the multi-provider cross-lab build

Choose a tag to compare

@ComplexAR ComplexAR released this 14 Jul 07:04

The multi-provider cross-lab build. Rung A — the opt-in, off-by-default independent second pass (Step 10) — becomes provider-agnostic. Every part was independently adjudicated by Fable 5 before landing (the same-lineage guard and the adapter loader adversarially). The adjudication layer stays opt-in and off by default, and its decision-flip benefit remains unproven — it is a rigour-and-defensibility check that sharpens a sound analysis, not a safety net, and it never flips the call.

What's new

  • Predefined labs for rung A: OpenAI (default gpt-5.6-sol), Google Gemini (gemini-3.5-flash), and xAI Grok (grok-4.5), each via its own adapter, chosen with the crosslab_provider setting.
  • "Other" mode: any OpenAI-compatible endpoint you configure (base URL + key + model), or an opt-in, hash-pinned, shape- and lineage-validated operator-written adapter file (default off; it runs your own code, so it is gated with a warning).
  • Hard same-lineage guard: any Anthropic-lineage target on rung A is refused with no override — rungs B (Fable) and C (Opus panel) remain the honest same-lineage path.
  • Switchable settings v3: prefs schema v2→v3, now 19 keys (adds provider, base-url, key-env-name, lineage, adapter-files, adapter-name); a shared prefs→env resolver with provider auto-inference and a provider/model-mismatch refusal.
  • Monitor AMENDMENT-3: a per-provider split of the rung-A yield read-out.

Verification honesty

OpenAI is live-verified (a real smoke returned a clean parse). The Google Gemini and xAI Grok adapters are built to each lab's current published API (2026-07-09) but not live-smoked — they are live-verified only when you run the preflight smoke with that lab's own key. The keyless in-boundary rungs (B Fable / C Opus panel / D self-adversarial) are unchanged.

Install

Download insight-engine-0.1.18.plugin below and, in Cowork, Customize → upload from file.

v0.1.17 — the switchable-settings adjudication build

Choose a tag to compare

@ComplexAR ComplexAR released this 13 Jul 04:50

The switchable-settings adjudication build for the opt-in independent-adjudication layer (Step 10). Every part was independently adjudicated by Fable 5 before landing. The adjudication layer stays opt-in and off by default, and its decision-flip benefit remains unproven — it is a rigour-and-defensibility check that sharpens a sound analysis, not a safety net, and it never flips the call.

What's new

  • 13-key switchable settings (schema v2, code-backed in prefs/): every adjudication behaviour is operator-switchable, standing and per-run; nothing is centrally locked. Ask-removing / egress-widening / block-reopen / breadth-raising changes require a deliberate confirmation.
  • Privileged cross-lab gate changed from "never waivable" to default-blocked but operator-overridable by a deliberate typed act, logged to the local monitor (never the deliverable).
  • Tagged cross-lab errors (CROSSLAB-BLOCKED / CROSSLAB-FAILED [...], HTTP-code classified) and a configurable multi-provider crosslab_model.
  • Panel sizing — Opus panel N, cross-lab breadth M, runs-per-model — all as on-divergence offers, never automatic.
  • Monitor AMENDMENT-2: a pre-registered per-class retirement rule for deciding, from real use, when adjudication has become redundant for a class of problem.
  • The standing crosslab_model preference now retargets a run (CROSSLAB_MODEL remains the per-run override).

Install

  • Cowork: download insight-engine-0.1.17.plugin attached below.
  • Claude Code marketplace: the insight-engine plugin at v0.1.17.