skynet-graph 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CONTRIBUTING.md +22 -0
- package/LICENSE +661 -0
- package/README.md +245 -0
- package/bin/sg +20 -0
- package/concepts/README.md +23 -0
- package/concepts/_substrate/Claim/Confidence/Trusted.json +6 -0
- package/concepts/_substrate/Claim/Confidence.json +10 -0
- package/concepts/_substrate/Claim/Freshness/Stale.json +7 -0
- package/concepts/_substrate/Claim/Freshness.json +5 -0
- package/concepts/_substrate/Claim/Verification/Refuted.json +6 -0
- package/concepts/_substrate/Claim/Verification.json +6 -0
- package/concepts/_substrate/Claim.json +4 -0
- package/concepts/_substrate/Frontier/InBeam.json +6 -0
- package/concepts/_substrate/Frontier/Stuck.json +6 -0
- package/concepts/_substrate/Frontier.json +5 -0
- package/concepts/_substrate/Intake/ToTask.json +22 -0
- package/concepts/_substrate/Intake/Typed.json +10 -0
- package/concepts/_substrate/Intake.json +27 -0
- package/concepts/_substrate/Task/Answer.json +12 -0
- package/concepts/_substrate/Task/Complexity/Atomic.json +5 -0
- package/concepts/_substrate/Task/Complexity/Compound/Expansion.json +7 -0
- package/concepts/_substrate/Task/Complexity/Compound.json +6 -0
- package/concepts/_substrate/Task/Complexity.json +6 -0
- package/concepts/_substrate/Task/EvalComplexity.json +13 -0
- package/concepts/_substrate/Task/ReportUp.json +6 -0
- package/concepts/_substrate/Task/Rollup.json +10 -0
- package/concepts/_substrate/Task.json +5 -0
- package/concepts/clinical/Diagnosis/Medication.json +6 -0
- package/concepts/clinical/Diagnosis.json +15 -0
- package/concepts/clinical/Observation/LabValue/OutOfRange.json +6 -0
- package/concepts/clinical/Observation/LabValue.json +5 -0
- package/concepts/clinical/Observation.json +6 -0
- package/concepts/common/Document/pathBasket.json +6 -0
- package/concepts/common/Document.json +3 -0
- package/concepts/common/Edge/Distance.json +13 -0
- package/concepts/common/Edge/Stay/LongStay.json +8 -0
- package/concepts/common/Edge/Stay.json +8 -0
- package/concepts/common/Edge/Travel/LongTravel.json +16 -0
- package/concepts/common/Edge/Travel/ShortTravel.json +11 -0
- package/concepts/common/Edge/Travel/targetNode.json +7 -0
- package/concepts/common/Edge/Travel.json +7 -0
- package/concepts/common/Edge.json +3 -0
- package/concepts/common/Vertice.json +3 -0
- package/concepts/supply/Fulfillment.json +10 -0
- package/concepts/supply/Inventory/Reorder.json +7 -0
- package/concepts/supply/Inventory.json +5 -0
- package/concepts/supply/Procurement/SupplierConfirm.json +6 -0
- package/concepts/supply/Procurement.json +8 -0
- package/concepts/supply/Transport.json +5 -0
- package/doc/API.md +556 -0
- package/doc/CAPABILITIES.md +373 -0
- package/doc/MODELISATION.md +511 -0
- package/doc/architecture.md +267 -0
- package/doc/concept-as-graph.md +379 -0
- package/doc/concept-learning.md +168 -0
- package/doc/creative-loop-map.md +202 -0
- package/doc/original-2016-doc.md +148 -0
- package/doc/usage.md +501 -0
- package/lib/authoring/abstract.js +401 -0
- package/lib/authoring/abstraction.js +190 -0
- package/lib/authoring/adapt.js +393 -0
- package/lib/authoring/ancestry.js +216 -0
- package/lib/authoring/author.js +147 -0
- package/lib/authoring/bounded-merge.js +57 -0
- package/lib/authoring/canon.js +158 -0
- package/lib/authoring/clock.js +123 -0
- package/lib/authoring/combinator.js +92 -0
- package/lib/authoring/compete.js +76 -0
- package/lib/authoring/compose-hotspot.js +314 -0
- package/lib/authoring/compress.js +279 -0
- package/lib/authoring/concept-net.js +254 -0
- package/lib/authoring/concepts.js +66 -0
- package/lib/authoring/context-project.js +277 -0
- package/lib/authoring/contract.js +476 -0
- package/lib/authoring/corpus-pack.js +125 -0
- package/lib/authoring/cost-probe.js +86 -0
- package/lib/authoring/crystallize.js +555 -0
- package/lib/authoring/dag-decompose.js +256 -0
- package/lib/authoring/dataset-adapter.js +253 -0
- package/lib/authoring/debug-provider.js +92 -0
- package/lib/authoring/decompose.js +343 -0
- package/lib/authoring/emittability.js +236 -0
- package/lib/authoring/equilibrium.js +160 -0
- package/lib/authoring/extract.js +153 -0
- package/lib/authoring/forest.js +55 -0
- package/lib/authoring/forge-fallback.js +116 -0
- package/lib/authoring/givens.js +121 -0
- package/lib/authoring/glossary.js +177 -0
- package/lib/authoring/grammar-graph.js +191 -0
- package/lib/authoring/granularity.js +80 -0
- package/lib/authoring/graph-net.js +108 -0
- package/lib/authoring/ground.js +148 -0
- package/lib/authoring/higher-order.js +85 -0
- package/lib/authoring/hotspot.js +132 -0
- package/lib/authoring/hysteresis.js +85 -0
- package/lib/authoring/index.js +106 -0
- package/lib/authoring/lattice-morphism.js +61 -0
- package/lib/authoring/lattice-pack.js +148 -0
- package/lib/authoring/leaf-io.js +77 -0
- package/lib/authoring/library.js +156 -0
- package/lib/authoring/lifecycle.js +92 -0
- package/lib/authoring/loop.js +193 -0
- package/lib/authoring/master-loop.js +132 -0
- package/lib/authoring/mdl.js +209 -0
- package/lib/authoring/memo-stability.js +122 -0
- package/lib/authoring/method-explorer.js +138 -0
- package/lib/authoring/method-pack.js +181 -0
- package/lib/authoring/method.js +202 -0
- package/lib/authoring/mine.js +510 -0
- package/lib/authoring/mount.js +119 -0
- package/lib/authoring/negotiate.js +100 -0
- package/lib/authoring/parametric.js +139 -0
- package/lib/authoring/reaggregate.js +75 -0
- package/lib/authoring/rebalance.js +157 -0
- package/lib/authoring/recall.js +135 -0
- package/lib/authoring/registry.js +350 -0
- package/lib/authoring/relearn.js +147 -0
- package/lib/authoring/retention.js +89 -0
- package/lib/authoring/segment-proxy.js +114 -0
- package/lib/authoring/serve-leaf.js +64 -0
- package/lib/authoring/slot-aware-serve.js +77 -0
- package/lib/authoring/sound-invoke.js +59 -0
- package/lib/authoring/split-serve.js +74 -0
- package/lib/authoring/ste.js +239 -0
- package/lib/authoring/stock.js +101 -0
- package/lib/authoring/store.js +94 -0
- package/lib/authoring/supervise.js +138 -0
- package/lib/authoring/support.js +131 -0
- package/lib/authoring/task-mirror.js +51 -0
- package/lib/authoring/typed-loop.js +160 -0
- package/lib/authoring/validate.js +569 -0
- package/lib/authoring/widen.js +88 -0
- package/lib/combos/appliance.js +189 -0
- package/lib/combos/critique.js +377 -0
- package/lib/combos/defaults.js +86 -0
- package/lib/combos/durable-runner.js +115 -0
- package/lib/combos/forge.js +209 -0
- package/lib/combos/index.js +86 -0
- package/lib/combos/learning-library.js +253 -0
- package/lib/combos/mixture-serve.js +193 -0
- package/lib/combos/plan-loop.js +192 -0
- package/lib/combos/proxy-cache.js +272 -0
- package/lib/combos/self-mod.js +94 -0
- package/lib/durable/audit.js +102 -0
- package/lib/durable/checkpoint-store.js +550 -0
- package/lib/durable/fold.js +62 -0
- package/lib/durable/interpreter.js +242 -0
- package/lib/durable/xlate.js +185 -0
- package/lib/graph/Graph.js +2486 -0
- package/lib/graph/expr.js +307 -0
- package/lib/graph/index.js +26 -0
- package/lib/graph/log.js +134 -0
- package/lib/graph/objects/Concept.js +382 -0
- package/lib/graph/objects/Entity.js +503 -0
- package/lib/graph/objects/Node.js +57 -0
- package/lib/graph/objects/PathMap.js +557 -0
- package/lib/graph/objects/Segment.js +100 -0
- package/lib/graph/tasks/stabilize.js +59 -0
- package/lib/graph/tasks/taskflow.js +247 -0
- package/lib/index.js +122 -0
- package/lib/load.js +132 -0
- package/lib/providers/backends.js +117 -0
- package/lib/providers/borderline.js +129 -0
- package/lib/providers/cache.js +226 -0
- package/lib/providers/canonicalize.js +198 -0
- package/lib/providers/constat.js +107 -0
- package/lib/providers/geo.js +53 -0
- package/lib/providers/index.js +116 -0
- package/lib/providers/intake.js +263 -0
- package/lib/providers/llm-local.js +88 -0
- package/lib/providers/llm.js +236 -0
- package/lib/providers/local-host.js +197 -0
- package/lib/providers/merge-consistency.js +162 -0
- package/lib/providers/nogood.js +149 -0
- package/lib/providers/reason-loop.js +223 -0
- package/lib/providers/semiring.js +285 -0
- package/lib/providers/solver-fork.js +163 -0
- package/lib/providers/stats.js +228 -0
- package/lib/providers/verify.js +120 -0
- package/lib/runtime/index.js +135 -0
- package/lib/runtime/invoke-pool.js +92 -0
- package/lib/runtime/protocol.js +210 -0
- package/lib/runtime/transport-socket.js +77 -0
- package/lib/runtime/worker-entry.js +31 -0
- package/lib/sg/cli.js +601 -0
- package/lib/sg/log-sinks.js +214 -0
- package/lib/sg/mcp.js +395 -0
- package/lib/sg/proxy-run.js +66 -0
- package/lib/sg/serve-demo.js +185 -0
- package/lib/sg/serve.js +205 -0
- package/lib/sg/trace.js +118 -0
- package/lib/studio/protocol.js +45 -0
- package/lib/studio/public/app.js +310 -0
- package/lib/studio/public/components/ConceptEditor.js +43 -0
- package/lib/studio/public/components/ConceptTree.js +43 -0
- package/lib/studio/public/components/CorpusPanel.js +68 -0
- package/lib/studio/public/components/ForkTree.js +36 -0
- package/lib/studio/public/components/GrammarGraph.js +99 -0
- package/lib/studio/public/components/GraphCanvas.js +156 -0
- package/lib/studio/public/components/Inspector.js +48 -0
- package/lib/studio/public/components/LearningPanel.js +85 -0
- package/lib/studio/public/components/PromptConsole.js +46 -0
- package/lib/studio/public/components/ProviderTrace.js +39 -0
- package/lib/studio/public/components/SessionSplit.js +47 -0
- package/lib/studio/public/components/TilingOverlay.js +40 -0
- package/lib/studio/public/components/Timeline.js +57 -0
- package/lib/studio/public/index.html +26 -0
- package/lib/studio/public/styles.css +185 -0
- package/lib/studio/public/ws.js +58 -0
- package/lib/studio/server.js +130 -0
- package/lib/studio/session.js +397 -0
- package/lib/studio/studio.js +149 -0
- package/package.json +42 -0
|
@@ -0,0 +1,373 @@
|
|
|
1
|
+
# Capabilities — what is measured, what is not
|
|
2
|
+
|
|
3
|
+
Every feature below carries a **maturity bar**, its **measured numbers**, its **limits**, a
|
|
4
|
+
**2–5 line way to use it**, and a plain-language explanation. The numbers come from GPU campaigns
|
|
5
|
+
with negative controls and deterministic re-runs; a standing house rule applies to this page as to
|
|
6
|
+
the README: **a refuted claim is removed the day it falls** — several refuted claims are listed
|
|
7
|
+
below on purpose, because knowing where the floor is *is* the product.
|
|
8
|
+
|
|
9
|
+
## How to read the bars
|
|
10
|
+
|
|
11
|
+
The scale has six rungs. Nothing is at rung 6 yet — this library is pre-launch, and rung 6
|
|
12
|
+
(external replications) can only come after other people run it.
|
|
13
|
+
|
|
14
|
+
1. coherent idea
|
|
15
|
+
2. design with pre-registered kill-gates
|
|
16
|
+
3. mechanics proven (harness, negative controls, deterministic re-run)
|
|
17
|
+
4. measured at scale (campaigns, confidence intervals)
|
|
18
|
+
5. product-integrated (library + surface + tests)
|
|
19
|
+
6. field-adopted (external replications)
|
|
20
|
+
|
|
21
|
+
`[████████░░] 5/6 — product-integrated` therefore reads: *idea → design → mechanics → scale
|
|
22
|
+
measurement → shipped in the library behind a surface, with tests; not yet replicated externally.*
|
|
23
|
+
|
|
24
|
+
## Where each capability is served
|
|
25
|
+
|
|
26
|
+
| Feature | library | `sg mcp` | dequantizer `serve` | dequantizer `mcp` |
|
|
27
|
+
|---|---|---|---|---|
|
|
28
|
+
| F1 low-quant repair | ✓ | `ask` / `hint` / `propose` | ✓ (OpenAI endpoint) | ✓ `ask` / `hint` / `propose` |
|
|
29
|
+
| F2 zoom | ✓ (bricks) | — (known gap, see F2) | — | — |
|
|
30
|
+
| F3 task memory | ✓ | `state_recall` / `plan_sync` | — | — |
|
|
31
|
+
| F4 think mode | ✓ | `propose` | — | `propose` |
|
|
32
|
+
| F5 critical mind | ✓ (C9) | `critique` | — | `critique` |
|
|
33
|
+
| F6 rooms | ✓ | `lattice_load` | rooms CLI | `lattice_load` |
|
|
34
|
+
| F7 substrate | ✓ (the engine itself) | — | — | — |
|
|
35
|
+
|
|
36
|
+
[skynet-dequantizer](https://github.com/9pings/skynet-dequantizer) is the ready-made appliance over
|
|
37
|
+
this library (an OpenAI-compatible local endpoint + `.sgc` rooms); everything else ships here.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## F1: Low-quant repair
|
|
42
|
+
|
|
43
|
+
`[████████░░] 5/6 — product-integrated` · missing rung: external replications (post-launch).
|
|
44
|
+
|
|
45
|
+
A menu of *certified* method shapes steers a heavily-quantized model's output, recovering most of
|
|
46
|
+
what compression broke — at zero big-model calls at runtime.
|
|
47
|
+
|
|
48
|
+
**Measured.** SQL, covered queries: low-quant 8→**63 %** (high-quant reference 46→92 %), N=201 ·
|
|
49
|
+
finance tables, traffic view: 7→**62 %** (20→78 %), N=120 · **zero big-model calls at runtime** ·
|
|
50
|
+
the forge held **0 false admissions** across 3 datasets × 2 forge models, and every stock ships
|
|
51
|
+
with a sha256 validation dossier.
|
|
52
|
+
|
|
53
|
+
**Limits (state them).** The guarantee is **at admission, not at execution**: at use time the stock
|
|
54
|
+
*orients* the model; a suggestion is not a correctness proof. A runtime "trusted answers"
|
|
55
|
+
cross-agreement tier was tested and **refuted** — it was removed. Forge yield is a per-domain
|
|
56
|
+
parameter, and amortization is a property of the domain's stereotypy.
|
|
57
|
+
|
|
58
|
+
**Against the existing landscape.** What you would reach for today: a bigger or higher-quant model
|
|
59
|
+
(needs the VRAM you don't have), grammar-constrained decoding (tested here — it *hurt* output
|
|
60
|
+
stability, so we use strong prompting with grammar as format-insurance only), or fine-tuning (cost,
|
|
61
|
+
and it moves the whole model). This instead keeps your hardware and steers with a *verified* method
|
|
62
|
+
vocabulary. We found no equivalent for the combination: an admission-gated stock (0 false
|
|
63
|
+
admissions measured) + per-completion provenance headers telling you which slice you can trust.
|
|
64
|
+
|
|
65
|
+
**How to use it, simply:**
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
sg serve --frontier-model <path.gguf> --store ./stock.json # OpenAI-compatible → http://127.0.0.1:4747/v1
|
|
69
|
+
# point ANY OpenAI client's baseURL at it — a covered query is served from the verified stock
|
|
70
|
+
# at 0 frontier calls; the same lanes exist as MCP tools: ask + hint (SOFT) / propose (HARD)
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**In plain terms.** A heavily-compressed model is like a typist with worn-out keys: most sentences
|
|
74
|
+
come out mangled. The stock is a phrasebook of formulas that were *verified before being let in*;
|
|
75
|
+
when a request matches one, the model only has to fill in the blanks instead of improvising the
|
|
76
|
+
whole formula — and if nothing matches, the system says so instead of guessing.
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## F2: Piece-by-piece zoom on big tasks
|
|
81
|
+
|
|
82
|
+
`[███████░░░] 4/6 — measured at scale` · missing rungs: rung 5 needs turnkey packaging — an MCP
|
|
83
|
+
tool exposing the zoom (the known product gap) and givens plumbing generalized beyond per-domain
|
|
84
|
+
wiring; rung 6 = external replications (post-launch).
|
|
85
|
+
|
|
86
|
+
The task becomes a typed DAG; each piece is served with only its bounded neighbourhood (parent
|
|
87
|
+
goal + resolved inputs + what to produce) — the model never sees the whole.
|
|
88
|
+
|
|
89
|
+
```
|
|
90
|
+
the big task what the MODEL sees (one call)
|
|
91
|
+
┌──────────────────┐
|
|
92
|
+
│ ~20 operations, │ typed cut ┌────────────────────────────────┐
|
|
93
|
+
│ tables, prose … │ ─────────────► │ parent goal (one line) │
|
|
94
|
+
└──────────────────┘ │ inputs: c1_1_net = 991.1 │
|
|
95
|
+
│ the GRAPH holds: │ (2007 net revenue) │
|
|
96
|
+
▼ │ produce: decrease_amount │
|
|
97
|
+
plan · needs/produces · └────────────────────────────────┘
|
|
98
|
+
every solved value + provenance ~1 sticky note of context,
|
|
99
|
+
(never re-sent to the model) constant as the task grows
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**Measured.** Cross-domain at N=200/domain (560 tasks total): math word problems 16→**52 %**
|
|
103
|
+
(×3.25 [2.4–4.8]), financial-table QA 20→**50 %** (×2.54 [1.96–3.5]), bootstrap CIs · where the
|
|
104
|
+
lone model collapses, the pieces hold: deep tasks **0/33 whole vs 10/33 decomposed** · compound
|
|
105
|
+
~20-operation "monster" tasks: whole-context floors at **0/20 across 3 configs**, a hierarchical
|
|
106
|
+
2-level split reaches **73 % of sections** · robustness-to-form proven: the scaffold gain holds
|
|
107
|
+
across 4 wordings (K-paraphrase harness).
|
|
108
|
+
|
|
109
|
+
**Limits (state them).** The zoom pays **iff the task exceeds whole-task capacity** — it is neutral
|
|
110
|
+
inside that capacity (measured on simple lookups). The small model is **not** the task cutter
|
|
111
|
+
(measured limit). The givens plumbing (the injected base facts) is per-domain — hence "not
|
|
112
|
+
turnkey yet". And no MCP tool exposes this capability today.
|
|
113
|
+
|
|
114
|
+
**Against the existing landscape.** Same family as the decomposition planners (LLMCompiler, ReWOO,
|
|
115
|
+
plan-and-execute agents) — the deltas are the discipline, and they are measured: (i) pieces bind
|
|
116
|
+
through a **typed needs/produces contract**, not a free-text scratchpad the model re-reads whole;
|
|
117
|
+
(ii) per-piece context is **bounded and constant** — measured on a low-quant where the whole-task
|
|
118
|
+
baseline collapses (0/33 deep tasks) rather than on a frontier model that hides the effect;
|
|
119
|
+
(iii) the **neutral zone is published** (the zoom pays only past whole-task capacity — frameworks
|
|
120
|
+
rarely state where their scaffolding does nothing); (iv) the cutter/executor split is measured,
|
|
121
|
+
not assumed (the small model is *not* the task cutter).
|
|
122
|
+
|
|
123
|
+
**How to use it, simply:**
|
|
124
|
+
|
|
125
|
+
```js
|
|
126
|
+
const { createPlanLoop } = require('skynet-graph').combos;
|
|
127
|
+
const { numberGivens, seedOf } = require('skynet-graph/lib/authoring/givens');
|
|
128
|
+
const loop = createPlanLoop({ decompose, serveLeaf }); // both injected — see lib/authoring/
|
|
129
|
+
const { answer, refused } = await loop.run(task, { givens: seedOf(numberGivens(task)) });
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
The bricks live in `lib/authoring/`: `dag-decompose` (the typed cutter prompt + router),
|
|
133
|
+
`context-project` (the bounded projection; `stratComplete` is the stratified rendering that held on
|
|
134
|
+
the monster tasks), `givens` (the typed base-fact front door), `leaf-io` (typed leaf output or a
|
|
135
|
+
typed refusal — never carried garbage).
|
|
136
|
+
|
|
137
|
+
**In plain terms.** This is how a person works a file too big to hold in their head: a sticky-note
|
|
138
|
+
plan on the side, then one piece at a time, with only the two or three earlier results that piece
|
|
139
|
+
actually needs. The engine holds the plan and the results; the model only ever sees one sticky
|
|
140
|
+
note's worth of context.
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## F3: Task memory that reopens
|
|
145
|
+
|
|
146
|
+
`[████████░░] 5/6 — product-integrated` (+ shipped demo) · missing rung: external replications
|
|
147
|
+
(post-launch).
|
|
148
|
+
|
|
149
|
+
Task state is typed facts with provenance under truth maintenance (JTMS): when a premise drifts,
|
|
150
|
+
its consequences retract in cascade, and a "done" step reopens itself with the reason attached.
|
|
151
|
+
|
|
152
|
+
**Measured.** A drifted premise retracts consequences in cascade and re-derives **selectively at 0
|
|
153
|
+
model calls**; a withdrawn value **reopens its dependent tasks with the reason** · crash-replay is
|
|
154
|
+
**bit-identical at 0 calls** · bounded-context recall **100 % at 894 constant tokens/call** vs 50 %
|
|
155
|
+
at 4 286 for a carry-everything baseline (PoC) · typed reuse: **6 calls vs 24**, with **12/12
|
|
156
|
+
correct on drift vs 0/12** for retrieve-nearest (stale).
|
|
157
|
+
|
|
158
|
+
**Against the existing landscape.** What you would reach for today: an agent scratchpad or to-do
|
|
159
|
+
framework (boxes only ever get *ticked*), vector / episodic memory (retrieves by surface
|
|
160
|
+
similarity — measured here serving a **stale** answer 12/12 times on a policy drift), or RAG over
|
|
161
|
+
notes (same failure class). **No market equivalent found**: task-reopen on premise drift was
|
|
162
|
+
checked twice against the market — no agent tool reopens a task whose premise drifted.
|
|
163
|
+
|
|
164
|
+
**How to use it, simply:**
|
|
165
|
+
|
|
166
|
+
```js
|
|
167
|
+
const g = Graph.fromDirs({ concepts: './concepts', seed });
|
|
168
|
+
g.pushMutation({ $$_id: 'report', revenue: 913 }); // the premise drifts (an erratum lands)
|
|
169
|
+
// every fact derived from the old value retracts in cascade and re-derives selectively — 0 model calls
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
Over MCP: `state_recall` reads the certified task state; `plan_sync` mirrors the graph plan — REOPEN
|
|
173
|
+
included — onto the host's own task list. The shipped replay is `examples/integrated-demo` (no GPU).
|
|
174
|
+
|
|
175
|
+
**In plain terms.** Think of a spreadsheet where deleting one cell greys out every formula that used
|
|
176
|
+
it — with the reason attached — instead of leaving stale numbers standing. Ordinary agent to-do
|
|
177
|
+
lists only ever tick boxes; this one un-ticks a box the moment the fact it rested on falls.
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## F4: External think mode
|
|
182
|
+
|
|
183
|
+
`[████████░░] 5/6 — product-integrated` · missing rung: external replications (post-launch).
|
|
184
|
+
|
|
185
|
+
The model proposes; the graph refuses with the reason and enumerates the admissible options
|
|
186
|
+
(tested through its own gate, never guessed); the model revises — bounded, with honest refusal.
|
|
187
|
+
|
|
188
|
+
**Measured.** One dialogue round: 17/24 → **24/24** at **zero false admissions** · a forced write is
|
|
189
|
+
recorded **UNTRUSTED**, never admitted · honest refusal on over-constrained input.
|
|
190
|
+
|
|
191
|
+
**Against the existing landscape.** What you would reach for today: a model with a native think
|
|
192
|
+
mode, or a self-critique / reflection loop. The 2024-25 literature converges on the weakness we
|
|
193
|
+
also measured: **self-critique underperforms external feedback with localized blame** (Huang,
|
|
194
|
+
Kamoi, Tyen, Stechly — and our own refutation: a low-quant cannot audit itself, 3 forms tested).
|
|
195
|
+
This lane is that external feedback, structural: the gate **never yields**, the refusal carries a
|
|
196
|
+
typed blame + gate-*tested* options, and a forced write lands as UNTRUSTED provenance — a
|
|
197
|
+
discipline a prompt cannot provide, because a prompt can always be argued out of.
|
|
198
|
+
|
|
199
|
+
**How to use it, simply:**
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
claude mcp add sg -- node bin/sg mcp --frontier-model <path.gguf> --stock ./methods.sgc
|
|
203
|
+
# HARD lane: `propose {shape}` → admitted through the gate, or refused with the reason + gate-tested
|
|
204
|
+
# options; `force:true` → recorded UNTRUSTED, never admission. SOFT lane: `hint` (advisory menu).
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
Also wired in the dequantizer's `mcp` surface.
|
|
208
|
+
|
|
209
|
+
**In plain terms.** Like a chess coach who never moves the pieces for you: when you propose an
|
|
210
|
+
illegal move it says exactly *why* it is illegal and lists the legal ones, and you choose again.
|
|
211
|
+
Crucially, the coach cannot be bullied — a forced move is written down as untrusted, never played.
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## F5: External critical mind
|
|
216
|
+
|
|
217
|
+
`[████████░░] 5/6 — product-integrated` (library + MCP, promoted 2026-07-13; the campaign numbers
|
|
218
|
+
themselves sit at rung 4 — measured) · missing rungs: form-robustness testing of the entry
|
|
219
|
+
templates, then external replications (post-launch).
|
|
220
|
+
|
|
221
|
+
C9: a question is split into declared viewpoints, each established through a **witness gate** over
|
|
222
|
+
a statement pool; missing theses are generated *anchored to pool witnesses only*; everything lands
|
|
223
|
+
in a typed ledger; the verdict is certification-aware — mechanical only where measurement says it
|
|
224
|
+
can be.
|
|
225
|
+
|
|
226
|
+
```
|
|
227
|
+
your statements ("PRO: …" / "CON: …") your viewpoints (optional)
|
|
228
|
+
│ │
|
|
229
|
+
▼ ▼
|
|
230
|
+
[statement POOL] ────► [declared VIEWPOINTS] ────► [WITNESS GATE]
|
|
231
|
+
no input? model- no input? model-named a point is established only
|
|
232
|
+
brainstormed — — frame DECLARED with a witness from the pool
|
|
233
|
+
frame FREE │
|
|
234
|
+
▼
|
|
235
|
+
[anchored GENERATION of missing theses] ──► [typed LEDGER] ──► [VERDICT]
|
|
236
|
+
drafted only from pool witnesses; every entry mechanical at count margin ≥ 3
|
|
237
|
+
0 fabrication across negative controls carries why (≥ 2 on a certified perimeter);
|
|
238
|
+
below → counts + honest UNDECIDED
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
**Measured.** Disciplined piece-by-piece argument coverage **77 % vs 58 %** whole-context (48
|
|
242
|
+
arguments) · with a **certified perimeter**, weighing decisions go 12/24 → **24/24** (self-believed
|
|
243
|
+
coverage measured at ~106 % — the perimeter is what closes the illusion) · anchored generation of
|
|
244
|
+
missing theses: **0 fabrication across all negative controls** · anti-injection ledger: **8/8
|
|
245
|
+
retracted**, with JTMS cascade · **the measured decidability bound**: a verdict is mechanical at
|
|
246
|
+
count margin **≥ 3** (free/declared frames) or **≥ 2 on a certified perimeter** (24/24); below the
|
|
247
|
+
bound the output is counts + coverage + an honest **UNDECIDED** — never a fake weighing.
|
|
248
|
+
|
|
249
|
+
**Refuted and kept on the page** (tested, failed, removed from the claims): graded/prevalence
|
|
250
|
+
weighting under the precision cap; goal-criteria weighting for a low-quant judge (2 forms);
|
|
251
|
+
low-quant self-audit (3 forms).
|
|
252
|
+
|
|
253
|
+
**Benchmarked head-to-head against the model's own think mode** (N=24 composed perimeters, gold
|
|
254
|
+
hidden, every arm re-run bit-identical): on side-judgment over *unlabeled* statement pools, the
|
|
255
|
+
naive single call scores **13/24 (≈ chance)** and the same model with a native 1024-token think
|
|
256
|
+
budget **also scores 13/24** — each renders 11 confident wrong verdicts, zero refusals. The C9
|
|
257
|
+
combo on the same pools renders **0 wrong verdicts anywhere**: with a *declared* perimeter it
|
|
258
|
+
decides **24/24, all by mechanical count** (margins 3–6, witnesses 100 % in-pool); without one it
|
|
259
|
+
returns an honest UNDECIDED instead of a coin flip. (When the pool is pre-labeled, counting is
|
|
260
|
+
trivial for every arm — the critical mind's value is judgment + audit, not label-counting. The
|
|
261
|
+
declared perimeter is input the naive arms don't have: that is the product point — declare the
|
|
262
|
+
frame and a verdict becomes provable.) Cost: ~19 short calls ≈ 6 s per debate on the test GPU.
|
|
263
|
+
|
|
264
|
+
**Against the existing landscape.** What you would reach for today: LLM-as-judge (known to be
|
|
265
|
+
miscalibrated and gameable — the essay-scoring literature documents verbatim-anchoring as the
|
|
266
|
+
countermeasure, which is exactly what the witness gate hard-codes) or a debate prompt (no coverage
|
|
267
|
+
guarantee, no audit trail). The deltas here: coverage is **witness-gated 0-false**, the ledger is
|
|
268
|
+
the audit trail, and — we found no equivalent for this — the judge **declines by measured bound**:
|
|
269
|
+
below its own decidability margin it returns UNDECIDED instead of picking a winner.
|
|
270
|
+
|
|
271
|
+
**Limits (state them).** The entry templates (pool brainstorm, viewpoint naming) are not yet
|
|
272
|
+
form-robustness-tested; on FREE frames, coverage is relative to the pool — and the payload says so.
|
|
273
|
+
|
|
274
|
+
**How to use it, simply:**
|
|
275
|
+
|
|
276
|
+
```js
|
|
277
|
+
const cm = Graph.combos.createCriticalMind({ ask });
|
|
278
|
+
const r = await cm.run({ topic, statements, viewpoints }); // ledger + per-side synthesis + verdict|UNDECIDED
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
Over MCP (both `sg mcp` and the dequantizer's `mcp`): the `critique` tool. Its **iteration
|
|
282
|
+
contract**: OPEN points and an UNDECIDED verdict are a *typed data request* — the host gathers real
|
|
283
|
+
statements (web, docs, its own context) and calls `critique` again with `statements`; the frame
|
|
284
|
+
upgrades to MATERIAL and the margin can move honestly.
|
|
285
|
+
|
|
286
|
+
**In plain terms.** A debate moderator with one strict rule: no viewpoint counts unless it can
|
|
287
|
+
produce a witness statement actually on the table. Missing sides get drafted — but only from what
|
|
288
|
+
is on the table, never invented. And when the count is too close to call, it says "undecided"
|
|
289
|
+
instead of picking a winner, because that is what its own measurements say it can decide.
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
293
|
+
## F6: Local .sgc rooms
|
|
294
|
+
|
|
295
|
+
`[████████░░] 5/6 — product-integrated` · missing rung: external replications (post-launch).
|
|
296
|
+
|
|
297
|
+
Shareable certified-stock mini-repos: export a room, hand it over, import it — every load goes
|
|
298
|
+
**through the engine gates** (never a raw write). sha256 dossiers; no catalog, no subscription, no
|
|
299
|
+
egress by default.
|
|
300
|
+
|
|
301
|
+
**Against the existing landscape.** What you would reach for today: a prompt library / hub
|
|
302
|
+
(no admission gate — anything pasted in is trusted), a RAG index (retrieval, not certification),
|
|
303
|
+
or a hosted marketplace (accounts, egress, someone else's catalog). A room is a **local file you
|
|
304
|
+
own**: imports are dry-loaded through the same engine gates as everything else (a malformed bundle
|
|
305
|
+
is refused, never written), and `freeze` pins it under a sha256 dossier you can hand to a colleague.
|
|
306
|
+
|
|
307
|
+
**How to use it, simply:**
|
|
308
|
+
|
|
309
|
+
```bash
|
|
310
|
+
skynet-dequantizer rooms list|import|export|freeze # your own shareable stock mini-repos
|
|
311
|
+
# in this repo, the MCP counterpart is `lattice_load` — learning through the version-gated
|
|
312
|
+
# admission; there is NO direct-write tool.
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
**In plain terms.** Like sharing a folder of sheet music instead of subscribing to a streaming
|
|
316
|
+
service: a room is a small file of verified method stock you can freeze, checksum, and hand to a
|
|
317
|
+
colleague — and whatever comes in still has to pass the same admission gate as everything else.
|
|
318
|
+
|
|
319
|
+
---
|
|
320
|
+
|
|
321
|
+
## F7: The versionable reasoning substrate
|
|
322
|
+
|
|
323
|
+
`[████████░░] 5/6 — product-integrated` · missing rung: external replications (post-launch).
|
|
324
|
+
|
|
325
|
+
Use 1, standalone, no LLM required: a rule-driven knowledge graph with declarative concepts and
|
|
326
|
+
stabilization to a fixpoint. Every revision is snapshotted, which gives the control you have over
|
|
327
|
+
*code*, applied to *belief*:
|
|
328
|
+
|
|
329
|
+
- `rollbackTo(rev)` — rewind to any past revision, concept rules included;
|
|
330
|
+
- `diffRevisions(a, b)` — see exactly which beliefs changed between two points;
|
|
331
|
+
- `fork` / `merge` — branch a sub-world and merge back only a snapped interface;
|
|
332
|
+
- native cascading retraction — a falsified premise un-casts itself and its consequences.
|
|
333
|
+
|
|
334
|
+
**Against the existing landscape.** Classic rules engines (RETE-family) match and fire but do not
|
|
335
|
+
*version* belief; truth-maintenance systems (the JTMS lineage) retract but never shipped with
|
|
336
|
+
git-like tooling; event sourcing versions *events*, not the derived belief state plus the rules
|
|
337
|
+
that derived it. **No direct market equivalent found** for git-like control over belief state
|
|
338
|
+
(rollback / diff / fork / merge on *what the system currently holds true*, rules included) —
|
|
339
|
+
stated as a position we could not find matched, not as a grand claim.
|
|
340
|
+
|
|
341
|
+
**How to use it, simply:**
|
|
342
|
+
|
|
343
|
+
```js
|
|
344
|
+
const revA = g.getCurrentRevision();
|
|
345
|
+
g.pushMutation(/* … grow the belief state … */);
|
|
346
|
+
g.diffRevisions(revA, g.getCurrentRevision()); // exactly which beliefs changed
|
|
347
|
+
g.rollbackTo(revA); // rewind data AND rules
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
**In plain terms.** Git for beliefs: every state of "what the system currently holds true" is a
|
|
351
|
+
commit. You can diff two states to find where a conclusion went wrong, roll back to before a bad
|
|
352
|
+
fact landed, or branch a what-if world and merge back only its conclusion.
|
|
353
|
+
|
|
354
|
+
---
|
|
355
|
+
|
|
356
|
+
## The integrated demo
|
|
357
|
+
|
|
358
|
+
`[████████░░] 5/6 — product-integrated` (ships in this repo) · missing rung: external replications —
|
|
359
|
+
which is exactly what the replay is for.
|
|
360
|
+
|
|
361
|
+
All the capabilities above, assembled on one continuous run: a **9.5 GB quant** works a real
|
|
362
|
+
annual-report analysis end-to-end — typed plan, per-step gated admission with cell-level
|
|
363
|
+
provenance, an erratum retracting and re-deriving selectively at 0 calls, a withdrawn value
|
|
364
|
+
reopening its tasks, crash-replay bit-identical.
|
|
365
|
+
|
|
366
|
+
**How to run it, simply:**
|
|
367
|
+
|
|
368
|
+
```bash
|
|
369
|
+
node examples/integrated-demo/run.js --replay # 7 checks, deterministic — no model, no GPU
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
This is **the public verifiable**: the replay re-verifies its 7 checks bit-for-bit on any machine,
|
|
373
|
+
with no model and no GPU. Details and the live-run instructions: `examples/integrated-demo/README.md`.
|