345 lines
9.3 KiB
Markdown
345 lines
9.3 KiB
Markdown
> DragonScale is now a four-mechanism, opt-in memory layer for LLM wiki vaults.
|
|
|
|

|
|
|
|
## TL;DR
|
|
|
|
- Shipped: DragonScale now has fold rollups, deterministic page addresses, semantic tiling lint, and boundary-first autoresearch.
|
|
- Gated on: `bash bin/setup-dragonscale.sh`, plus local dependencies per mechanism.
|
|
- Did not ship: fold-of-folds, calibrated tiling thresholds, hosted mode, or multi-vault rollup.
|
|
|
|
## Same-day release sequence
|
|
|
|
The plugin version is `1.6.0` and the annotated tag `v1.6.0` points at the release commit on `main`.
|
|
|
|
The narrative below includes `1.5.0`, `1.5.1`, and `1.6.0` because 2026-04-24 bundled three local release states into one cycle.
|
|
|
|
`1.5.0` was Phase 3.5.
|
|
It hardened the DragonScale base.
|
|
It added the installer, test harness, changelog, Makefile targets, and opt-in wiring for the first three mechanisms.
|
|
It also synced plugin metadata to `1.5.0`.
|
|
|
|
`1.5.1` was Phase 3.6.
|
|
It fixed five narrow issues before Phase 4.
|
|
Those fixes covered tiling report path confinement, rollout baseline date, AGENTS wording, `.raw/` manifest wording, and install-guide version drift.
|
|
|
|
`1.6.0` was Phase 4.
|
|
It shipped Mechanism 4: boundary-first autoresearch.
|
|
It added `scripts/boundary-score.py`, wired no-topic `/autoresearch` into frontier suggestions, added boundary-score tests, and bumped the DragonScale spec to v0.4.
|
|
|
|
## Four mechanisms
|
|
|
|
<!-- overview diagram rendered at the top of the page. -->
|
|
|
|
### 1. Fold operator
|
|
|
|
What:
|
|
extractive rollups of `wiki/log.md` entries into fold pages under `wiki/folds/`.
|
|
|
|
Invoke:
|
|
ask `fold the log, dry-run k=3`, then `fold the log, commit k=3` if the output is right.
|
|
|
|
Skip:
|
|
skip when the log has no coherent batch, or when you want deletion-based compaction.
|
|
Folds summarize.
|
|
They do not garbage collect.
|
|
|
|
Status:
|
|
shipped in `1.5.0`.
|
|
|
|
First real run:
|
|
`wiki/folds/fold-k3-from-2026-04-23-to-2026-04-24-n8.md`.
|
|
|
|
Observed output:
|
|
115 lines.
|
|
8 children.
|
|
Flat extractive fold.
|
|
|
|
### 2. Deterministic page addresses
|
|
|
|
What:
|
|
stable `address: c-NNNNNN` frontmatter for new non-meta wiki pages.
|
|
|
|
Invoke:
|
|
run `./scripts/allocate-address.sh` directly, or let `wiki-ingest` assign addresses after DragonScale setup.
|
|
|
|
Skip:
|
|
skip when you do not need stable page IDs, or when more than one writer may assign addresses at the same time.
|
|
|
|
Status:
|
|
shipped in `1.5.0`.
|
|
|
|
Format:
|
|
`c-000042`.
|
|
|
|
Important limit:
|
|
this is a creation-order counter.
|
|
It is not a content hash.
|
|
|
|
Validation run:
|
|
counter advanced from 2 to 3.
|
|
It returned `c-000002`.
|
|
The unassigned reservation gap is acceptable under the spec.
|
|
|
|
### 3. Semantic tiling lint
|
|
|
|
What:
|
|
embedding-based duplicate-page detection for the wiki.
|
|
|
|
Invoke:
|
|
run `python3 ./scripts/tiling-check.py --peek` for readiness, or `python3 ./scripts/tiling-check.py --report wiki/meta/tiling-report-YYYY-MM-DD.md` for a saved report.
|
|
|
|
Skip:
|
|
skip when `ollama` or `nomic-embed-text` is unavailable, or when uncalibrated review bands would create more noise than signal.
|
|
|
|
Status:
|
|
shipped in `1.5.0`.
|
|
|
|
Default model:
|
|
local `nomic-embed-text` through `ollama`.
|
|
|
|
Default bands:
|
|
`>= 0.90` error.
|
|
`0.80` to `0.90` review.
|
|
Below `0.80` pass.
|
|
|
|
Important limit:
|
|
the defaults are seed values.
|
|
They are not calibrated to this vault.
|
|
|
|
First full report:
|
|
`wiki/meta/tiling-report-2026-04-24.md`.
|
|
|
|
### 4. Boundary-first autoresearch
|
|
|
|
What:
|
|
frontier scoring for wiki pages, used as candidate selection for no-topic `/autoresearch`.
|
|
|
|
Invoke:
|
|
run `/autoresearch` with no topic in a DragonScale-enabled vault, or run `python3 ./scripts/boundary-score.py --json --top 5`.
|
|
|
|
Skip:
|
|
skip when you want explicit topic control only, or when you want DragonScale limited to pure memory operations.
|
|
|
|
Status:
|
|
shipped in `1.6.0`.
|
|
|
|
Formula:
|
|
`boundary_score(p) = (out_degree(p) - in_degree(p)) * exp(-days_since_updated / 30)`.
|
|
|
|
What it does:
|
|
finds pages that point outward, receive few inbound links, and are still recent enough to be useful.
|
|
|
|
What it is not:
|
|
it is not pure memory.
|
|
It is agenda control.
|
|
The user still chooses the topic.
|
|
|
|
First run artifact:
|
|
`wiki/meta/boundary-frontier-2026-04-24.md`.
|
|
|
|
Top frontier facts:
|
|
22 scoreable pages.
|
|
7 positive-score pages reported.
|
|
Top score was `4.693`.
|
|
`DragonScale Memory` scored `4.000`.
|
|
|
|
## The dragon curve, briefly
|
|
|
|
The Heighway dragon is built by paperfolding recursion.
|
|
Each construction step folds a turn sequence into a larger self-similar sequence.
|
|
The turn sequence is the regular paperfolding sequence, OEIS A014577.
|
|
See [Dragon curve](https://en.wikipedia.org/wiki/Dragon_curve).
|
|
|
|
Its boundary has fractal dimension about `1.5236`.
|
|
That number is useful here as orientation, not as proof.
|
|
It says the boundary is not a simple line and not a filled plane.
|
|
It is structured frontier.
|
|
|
|
That makes it a good analogy for a memory layer.
|
|
Recursive structure suggests hierarchical rollup.
|
|
Self-similar boundary suggests frontier-first agenda.
|
|
But this is analogy, not derivation.
|
|
DragonScale does not prove optimal memory behavior from curve geometry.
|
|
|
|
## Enablement
|
|
|
|
Run:
|
|
|
|
```bash
|
|
bash bin/setup-dragonscale.sh
|
|
```
|
|
|
|
Prereqs:
|
|
base vault setup first, `flock` for allocator and tiling locks, `python3` for Mechanisms 3 and 4, and local `ollama` plus `nomic-embed-text` for Mechanism 3.
|
|
|
|
Guide:
|
|
[docs/dragonscale-guide.md](../dragonscale-guide.md).
|
|
|
|
## Validation
|
|
|
|

|
|
|
|
Validation date:
|
|
2026-04-24.
|
|
|
|
Source:
|
|
`wiki/log.md`, entry `DragonScale end-to-end validation pass (Teams, 6 tests)`.
|
|
|
|
Result:
|
|
the six-test menu passed.
|
|
`make test` stayed green throughout.
|
|
|
|
T0:
|
|
pulled `nomic-embed-text` for local embeddings.
|
|
|
|
Observed:
|
|
274 MB.
|
|
15 seconds wall time.
|
|
|
|
T1:
|
|
ran Mechanism 1 dry-run with `k=3`.
|
|
|
|
Observed:
|
|
dry-run OK.
|
|
8 children.
|
|
No em dashes in generated fold content.
|
|
|
|
T2:
|
|
ran Mechanism 2 real allocation.
|
|
|
|
Observed:
|
|
counter advanced from 2 to 3.
|
|
Returned `c-000002`.
|
|
The address was an unassigned reservation.
|
|
Gap accepted by spec.
|
|
|
|
T3:
|
|
ran Mechanism 3 full tiling with model present.
|
|
|
|
Observed:
|
|
41 pages scanned.
|
|
21 pages embedded.
|
|
20 pages skipped.
|
|
0 errors at `>= 0.90`.
|
|
15 review pairs in `0.80` to `0.90`.
|
|
|
|
Top review pair:
|
|
`0.8822` for `Compounding Knowledge` and `LLM Wiki Pattern`.
|
|
|
|
Interpretation:
|
|
legitimate semantic neighbor.
|
|
Not an automatic merge.
|
|
|
|
Report:
|
|
`wiki/meta/tiling-report-2026-04-24.md`.
|
|
|
|
T4:
|
|
ran Mechanism 1 commit.
|
|
|
|
Observed:
|
|
first real fold committed.
|
|
115 lines.
|
|
8 children.
|
|
Flat extractive fold.
|
|
|
|
Fold:
|
|
`wiki/folds/fold-k3-from-2026-04-23-to-2026-04-24-n8.md`.
|
|
|
|
Why it matters:
|
|
it flips the old status from dry-run only to one committed fold in this vault.
|
|
|
|
Closeout test status:
|
|
`make test` passed.
|
|
|
|
Closeout counts:
|
|
12 shell assertions for address allocation.
|
|
18 Python assertions for tiling.
|
|
44 Python assertions for boundary scoring.
|
|
Zero `ollama` dependency.
|
|
|
|
T6:
|
|
ran Mechanism 4 no-topic autoresearch.
|
|
|
|
Observed:
|
|
selected `How does the LLM Wiki pattern work?`.
|
|
Score `1.7022`.
|
|
It was candidate number 3 after skipping the top source page and top self-reference.
|
|
|
|
Fetches:
|
|
6 web fetches.
|
|
|
|
Inputs included:
|
|
Karpathy gist.
|
|
RAG paper `arXiv:2005.11401`.
|
|
MemGPT paper `arXiv:2310.08560`.
|
|
Obsidian docs.
|
|
|
|
Output:
|
|
3 new concept pages filed.
|
|
Each included Primary Sources.
|
|
|
|
New concept pages:
|
|
|
|
- `wiki/concepts/Persistent Wiki Artifact.md`
|
|
- `wiki/concepts/Source-First Synthesis.md`
|
|
- `wiki/concepts/Query-Time Retrieval.md`
|
|
|
|
Integration:
|
|
the new concepts were added to `wiki/index.md` and `wiki/concepts/_index.md`.
|
|
They extend `How does the LLM Wiki pattern work?`.
|
|
They cross-reference `LLM Wiki Pattern`.
|
|
|
|

|
|
|
|
## What is not in v1.6.0
|
|
|
|
- No fold-of-folds.
|
|
- No hierarchical level stacking beyond one flat committed fold.
|
|
- No automatic deletion or compaction of child pages.
|
|
- No calibrated M3 thresholds.
|
|
- No literature-backed M3 bands for this specific vault.
|
|
- No automatic merging from tiling results.
|
|
- No pure-memory claim for M4.
|
|
- No hidden topic choice in M4.
|
|
- No hosted or managed mode.
|
|
- No multi-vault fold rollup.
|
|
- No multi-writer address-assignment guarantee.
|
|
- No alias-aware full Obsidian wikilink resolver in boundary scoring.
|
|
- No persistent boundary-score cache.
|
|
- No automatic autoresearch trigger.
|
|
|
|
## Upgrade from v1.4.x
|
|
|
|
This is non-breaking for base users.
|
|
|
|
Upgrade path:
|
|
|
|
1. Pull `main`.
|
|
2. Reinstall as a plugin if your agent setup requires it.
|
|
3. Keep using the normal v1.4.x wiki workflow if you do not want DragonScale.
|
|
4. Opt into DragonScale only when ready:
|
|
|
|
```bash
|
|
bash bin/setup-dragonscale.sh
|
|
```
|
|
|
|
If you do not opt in, nothing changes from your v1.4.x workflow.
|
|
|
|
DragonScale is feature-detected.
|
|
`wiki-ingest`, `wiki-lint`, and `/autoresearch` fall back when the setup state or helper dependencies are absent.
|
|
|
|
## Attribution
|
|
|
|
Diagrams in this release note are original SVGs under the repo license (MIT).
|
|
|
|
The dragon curve and paperfolding references are text-only. For images and construction history, see the Wikipedia article linked above.
|
|
|
|
Fonts used in the SVGs: Space Grotesk (SIL Open Font License), with system-ui fallback.
|
|
|
|
## Credits
|
|
|
|
- Karpathy LLM Wiki pattern.
|
|
- Heighway paperfolding and the dragon curve analogy.
|
|
- Codex sub-agent delegation for the release validation and review loop.
|