# Sundog vs. Ghost

Working hook:

> Draw the circle. Find the ghost.

Short version:

> Sundog Ghost asks whether a finite inside can ever certify the order it
> belongs to without importing an outside. Aperiodic tilings are the first hard
> substrate: a tile patch is local, legal, and concrete, yet its full
> explanation lives in a larger hierarchy the patch does not contain.

Status: Brainstorm scaffold opened 2026-06-22 from the Inside/Outside Problem
thread. Starter citation spine filed at
[`GHOST_LITPASS_MEMO.md`](GHOST_LITPASS_MEMO.md). This is a reader-lane
scaffold, not a theorem claim, public claim, or implementation commitment.
Phase 1 disposition: Ghost is a reader/exhibit lane by default, and "outside
debt" should be treated as distinct regimes with a Domino-Problem
computability cliff, not as a smooth scalar gradient.
Phase 2 start: internal toy closure workbench scaffolded at
[`../ghost/workbench.html`](../ghost/workbench.html), with spec
[`ghost/PHASE2_TOY_WORKBENCH_SPEC.md`](ghost/PHASE2_TOY_WORKBENCH_SPEC.md).

The lane name is deliberately broader than `SUNDOG_V_APERIODICITY.md`.
Aperiodicity is the mathematical pressure test. "Ghost" is the Sundog hook: the
outside condition that must be present for an inside to make sense, but which
the inside cannot fully derive from itself.

## Reader-Lane Disposition

Default posture:

> Ghost is an exposition/exhibit reframing of existing aperiodic-order theory
> and engineering boundary discipline. It has no new invariant by default.

Theorem-shaped expectations exit here. The lane may become research only if a
later phase identifies a precise object that is not already recognizability,
local derivability, patch complexity, extension complexity, hull structure, or
another named formalism, and that object survives specialist review.

Until then, the deliverable is a reader/workbench:

- explain local rules versus global order;
- make periodic closure and aperiodic non-closure visible;
- translate "outside debt" into existing technical vocabulary;
- show engineering analogues where modules depend on runtimes, trust bases,
  or human theories outside the code boundary.

Public copy must remain true if every conjecture-shaped sentence is deleted.

## Thesis

Every time we draw a circle around a system, we create an inside and an outside.
The inside may be rich, lawful, and predictive. But when the system tries to
explain itself completely, some condition moves to the boundary:

- an axiom;
- a runtime;
- a measurement convention;
- a coordinate frame;
- a hidden hierarchy;
- a boundary condition;
- an observer position;
- a larger geometry.

That boundary condition is the **ghost**.

The ghost is not supernatural. It is the dependency that becomes visible when
local closure fails.

For periodic tilings, the ghost can often be domesticated. Find the repeat cell,
name the lattice, and the outside collapses into a finite generator.

For aperiodic tilings, the ghost does not disappear. Every finite patch can be
legal, but no finite patch is the whole explanation. The pattern is ordered, yet
not loop-compressible. The outside keeps reappearing as scale.

Candidate one-line thesis:

> Aperiodicity is geometry with an unerasable outside.

**Regime caveat (2026-06-27 lit pass).** This line is honest only for the
computability-cliff regime (general Wang/SFT, where extension is undecidable).
For substitution/hierarchical aperiodicity - including the Hat/Spectre anchors -
the outside is *bounded and recoverable*: by Mosse-Solomyak, nonperiodicity is
exactly what makes the supertile ancestry locally recoverable at a finite
recognizability radius. Reserve "unerasable outside" for the undecidable
regime; for Hat/Spectre prefer "the outside is finite but keeps moving outward
as you zoom." See `GHOST_LITPASS_MEMO.md` Q2 Resolution.

## Claim Boundary

This document does **not** claim:

- a new aperiodic monotile;
- a proof of a new tiling theorem;
- a proof or paraphrase of Goedel's incompleteness theorem;
- that all self-reference phenomena reduce to tiling;
- that "ghost" is a formal invariant yet;
- that a browser visualization is evidence for a mathematical claim;
- that Sundog has discovered a new bridge between logic, cognition, and
  tiling theory.

This document may stage:

- a bounded reader/workbench lane around local rules, global order, and
  aperiodicity;
- a vocabulary for "outside debt" in systems that cannot close themselves
  locally;
- a careful public essay or interactive exhibit contrasting periodic and
  aperiodic closure;
- a careful test of whether an existing finite-patch observable can carry the
  "ghost boundary" explanation without inventing new theory;
- a dev-facing analogy between tilings, runtimes, tests, model priors, and
  hidden infrastructure.

The hard stop: do not launder philosophical force into mathematical novelty.
The philosophy is allowed to be generative. The math must be cited, bounded,
and treated as already-existing terrain until a real theorem says otherwise.

## Known Anchor

The current aperiodic-monotile landscape gives the lane a real substrate rather
than a loose metaphor.

See [`GHOST_LITPASS_MEMO.md`](GHOST_LITPASS_MEMO.md) for the broader
historical and current citation spine across tiling theory, aperiodic order,
engineering trust boundaries, and philosophy of self-reference.

- Smith, Myers, Kaplan, and Goodman-Strauss, ["An aperiodic monotile"](https://arxiv.org/abs/2303.10798),
  introduced the Hat family: topological disk tiles that tile the plane but
  force non-periodicity. Their proof route includes metatiles, substitution
  structure, and hierarchy.
- The same authors, ["A chiral aperiodic monotile"](https://arxiv.org/abs/2305.17743),
  introduced the Spectre family, addressing the reflection/chirality issue and
  giving a strictly chiral aperiodic monotile family based on hierarchical
  substitution.
- Bruneau and Whittaker, ["Planar aperiodic tile sets: from Wang tiles to the
  Hat and Spectre monotiles"](https://arxiv.org/abs/2310.06759), provide a
  compact historical bridge from Wang tiles and the Domino Problem through
  Hat/Spectre.

The Sundog point is not "the Hat proves the Inside/Outside Problem." The point
is narrower and more useful:

> Aperiodic monotiles make the local/global tension visible. A single local
> shape can force lawful global order, but the explanation of that order lives
> in a hierarchy no single bounded patch exhausts.

That is a clean place to ask what the ghost is.

## Vocabulary Lock

**Circle**

The bounded region we choose to inspect: a finite patch, module, proof fragment,
model, dataset, organism, observer, or theory.

**Inside**

The information available within the circle: local adjacency, visible geometry,
observed behavior, source code, empirical measurements, or derived facts.

**Outside**

The information required to explain why the inside is legal, meaningful, or
predictive: boundary conditions, axioms, runtime, hidden variables, evaluation
criteria, or larger-scale context.

**Ghost**

The outside dependency made visible by failed closure. A ghost is not merely an
unknown. It is an unknown with a job: the thing the inside needs in order to be
explained as part of a larger lawful structure.

**Closure**

A system is locally closed when the bounded inside contains enough information
to determine the relevant explanation. In a periodic tiling, a fundamental
domain plus lattice vectors gives a strong closure certificate.

**Outside Debt**

The amount or kind of context a finite inside needs before its role in the
larger order can be certified.

**Ghost Boundary**

The boundary layer where local legality becomes global dependency. In a finite
tiling patch, this is the edge where many possible continuations remain live and
where hidden hierarchy may be underdetermined.

## The Aperiodic Move

The intuitive contrast:

> Periodicity says: this inside explains the outside by repetition.

> Aperiodicity says: this inside is lawful, but every attempted closure opens
> into a larger law.

That contrast is the center of the lane.

A periodic pattern can often be compressed into:

1. a finite motif;
2. translation vectors;
3. a repeat rule.

The patch becomes a map of the plane.

An aperiodic pattern can still be generated by rules, but not by translational
periodicity. The patch may imply legal continuations, but no finite circle
around it yields a repeat cell for the whole plane. The explanation passes
through substitution, matching constraints, inflation, metatiles, or another
global/hierarchical mechanism.

The ghost is that mechanism as seen from the patch boundary.

Sundog phrasing:

> Some shapes do not tile the plane by repeating themselves. They tile it by
> continually revealing that they were part of a larger shape all along.

## Heuristic Questions, Not Conjectures

These are reader/workbench questions. They are not public conjectures and
should not be marketed as theorem-shaped claims.

### Ghost Boundary Heuristic

> Any local rule system that forces non-periodic global order must leave, on
> every sufficiently large finite circle, a detectable dependency on context
> outside that circle.

What this wants to become:

- a statement about finite patches in finite-local-complexity tiling spaces;
- a distinction between bounded outside debt and unbounded outside debt;
- a way to compare periodic, quasiperiodic, substitution, and aperiodic systems;
- a visualization of the "live" continuation classes at the boundary.

Immediate danger:

This may be false as written, too vague, or already covered by existing tiling
dynamics language. Treat it as a reader prompt, not a claim.

Research upgrade gate:

- identify the closest existing formalism first;
- write the question in that formalism's vocabulary;
- name at least one example and one counterexample class;
- get specialist review before any public theorem-shaped phrasing.

### Outside Debt Regimes

> Systems differ by what kind of outside a finite inside requires. That is not
> necessarily a smooth gradient.

There is an important discontinuity here. Periodic, quasiperiodic,
substitution, and familiar hierarchical aperiodic examples can often be handled
with finite, named recognition data inside a chosen formalism. The Domino
Problem / SFT edge is different: extension can cross into computation and
undecidability. Do not render that cliff as one more step on the same ladder.

Bounded recognition / reader regime:

| class | inside | ghost / outside debt |
| --- | --- | --- |
| finite object | bounded description | low once boundary is named |
| periodic tiling | motif plus lattice | bounded by repeat cell |
| quasiperiodic tiling | local patch plus projection/cut data | external phase/window data |
| substitution tiling | patch plus hierarchy | recognizability / supertile ancestry |
| hierarchical aperiodic monotile examples | local geometry plus forced hierarchy | finite recognition data inside a non-periodic hull |

Computability cliff:

| class | inside | cliff |
| --- | --- | --- |
| general Wang / SFT edge cases | local rules plus finite patch | extension and global-existence questions can encode computation and become undecidable |

The reader lane may compare these regimes, but it should not imply that
"outside debt" is a single scalar that smoothly increases from finite objects
to undecidable tiling systems. If a specialist asks what the metric is, the
honest answer is: there may not be one. The first public exhibit should show
the contrast, not pretend to measure it.

### Local Closure Failure

> Non-periodicity is not randomness. It is the failure of local closure under a
> lawful global constraint.

This is probably the safest public-facing line. It avoids pretending that
aperiodicity means "unstructured" and keeps the focus on lawful order without
repeat.

### Ghost as Hidden Ancestry

> In hierarchical aperiodic tilings, the ghost of a finite patch is the
> underdetermined ancestry of the larger supertile structure that contains it.

This is the most visual formulation. It can become a workbench: click a patch,
see all compatible supertile ancestries, watch the uncertainty move to the
boundary as the circle expands.

## Why This Is Sundog

Sundogs are not fake suns in the sense of mere illusion. They are real optical
consequences of light, ice crystals, observer position, and atmosphere. The
thing seen in the sky is a local appearance produced by a larger geometry.

That maps well:

- the visible sundog is the finite patch;
- the atmosphere and observer geometry are the outside;
- the halo is the ghost boundary made visible.

The same pattern appears in the current Sundog corpus:

- Geometry Workbench: the visible arc depends on the hidden parametric
  apparatus of sun altitude, crystal orientation, and projection.
- Perception: sub-visible continuations depend on instrumented integration
  along predicted geometry.
- Kakeya: direction-complete shadows hide body-resistance in a tiny set.
- Mesa: behavior depends on a hidden field-like subspace, not just reward
  labels.
- P vs. NP / certificates: local verification depends on a global witness
  structure.

Ghost is the abstract lane that names the recurring boundary condition.

## Dev Hook

The developer version is immediate:

> Every program runs inside a circle it did not draw.

Software is full of ghosts:

- source code depends on compiler/runtime behavior;
- tests depend on oracles of expected output;
- sandboxes depend on a host;
- APIs depend on contracts outside the function body;
- models depend on training data, reward signals, and evaluation frames;
- proof assistants depend on kernels, axioms, libraries, and trusted
  extraction boundaries;
- distributed systems depend on timing, failure models, clocks, consensus
  assumptions, and operators.

The dev-facing Sundog move:

> Draw the module boundary. Find the assumption it cannot prove from inside.

This gives Ghost a lane that can support both math-art and engineering
inspection. A tiling patch and a code module become two versions of the same
question: what outside condition makes this inside meaningful?

## Possible Artifact

Build a small `ghost.html` internal workbench before any public page.

Goal:

> Let a viewer draw a circle around a pattern and see what the circle fails to
> explain.

Minimum viable substrate:

- periodic square-grid pattern;
- deterministic but non-periodic toy sequence or substitution stripe;
- Penrose-style or Hat/Spectre-inspired patch viewer only if licensing and
  source discipline are clean;
- no claim of novel tiling generation.

Core interactions:

1. **Draw circle**: user selects a finite patch.
2. **Local facts**: show what can be known from the patch alone.
3. **Possible continuations**: show compatible outside contexts.
4. **Closure test**: identify whether a finite repeat cell is visible/certified.
5. **Ghost layer**: highlight the boundary where unresolved context lives.
6. **Scale up**: enlarge the circle and show whether the ghost disappears,
   stabilizes, or recedes.

For periodic examples, the ghost should shrink once the repeat cell is captured.

For aperiodic or substitution examples, the ghost should migrate upward: the
inside grows, but the explanation keeps moving to a larger hierarchy.

The exhibit is successful if a non-specialist comes away with:

> Ordered does not mean repeating. Local does not mean closed.

## Workbench Metric Sketches

These are possible measurements to prototype. They are not settled math.

**Continuation Count**

Given a finite patch and a local rule set, estimate the number of distinct
legal continuations to a larger bounding box. Compare growth across periodic
and non-periodic systems.

Risk: boundary growth may dominate and make the metric visually noisy.

**Ancestry Ambiguity**

For substitution tilings, count or visualize the possible supertile ancestry
assignments compatible with the selected patch.

Risk: requires careful substrate choice and known substitution rules.

**Repeat-Cell Capture Radius**

For periodic patterns, measure the smallest circle that captures enough
information to infer the period lattice. Use this as the "ghost collapse"
baseline.

Risk: inference can be brittle unless the periodic family is deliberately
simple.

**Boundary Dependency Ratio**

Track how much of the explanation depends on edge choices versus interior
choices as the selected circle grows.

Risk: needs a formal definition before it deserves a serious name.

**Compression Delta**

Compare direct description length of a patch to description length under an
allowed generator class: periodic generator, substitution generator, local-rule
solver, etc.

Risk: Kolmogorov-complexity language gets slippery fast. Keep it operational:
actual encoders, actual generator families, actual finite examples.

## Lit-Pass Questions

Before this becomes public:

1. What existing tiling-dynamics terms already name this?
2. Is "outside debt" just recognizability, repetitivity, local derivability,
   mutual local derivability, cohomology, hull structure, or extension
   complexity in disguise?
3. Which examples best separate:
   - periodic closure;
   - quasiperiodic order;
   - substitution hierarchy;
   - matching-rule aperiodicity;
   - computationally hard extension?
4. Is there an existing finite-patch metric for extension complexity that can
   be visualized honestly?
5. Can the Hat/Spectre proof machinery be explained without recreating or
   misrepresenting copyrighted figures?
6. What is the safest toy substrate for a browser artifact?

Candidate reading spine:

- Wang's Domino Problem and Wang tiles;
- Berger/Robinson aperiodic tile sets;
- Penrose tilings and local matching rules;
- substitution tilings, recognizability, and local derivability;
- Hat and Spectre monotile papers;
- finite local complexity tiling spaces and tiling dynamical systems;
- symbolic dynamics / shifts of finite type for local-rule analogues.

## Public Framing Candidates

Title candidates:

- Draw the Circle, Find the Ghost
- The Ghost Boundary
- Aperiodicity and the Hidden Outside of Order
- Geometry With an Unerasable Outside (regime-restricted: honest for the
  undecidable Wang/SFT substrate, misleading for Hat/Spectre where the outside
  is bounded - see Q2 Resolution in `GHOST_LITPASS_MEMO.md`)
- The Map Inside the Territory

Hero lines:

> A repeating pattern closes its circle. An aperiodic pattern keeps the circle
> open.

> Every finite patch is lawful. None is the whole law.

> The ghost is the outside a system needs in order to make sense.

> Some order cannot be explained by copying a smaller order.

> Draw a boundary around the pattern. The unsolved part appears at the edge.

Longer public paragraph:

> A periodic tiling explains the plane by repeating a finite unit. Aperiodic
> tilings are stranger: they are ordered, rule-governed, and locally concrete,
> yet no finite unit repeats to give the whole plane. Sundog Ghost treats this
> as a visible form of the inside/outside problem. The patch is the inside. The
> hidden hierarchy is the outside. The boundary between them is where the ghost
> appears.

## Failure Modes

**Mathematical overclaim**

Saying "we found a principle behind aperiodicity" without a theorem is failure.
The acceptable claim is "we are building a reader/workbench for existing
aperiodic-order principles and testing whether any existing observable is a
good public explanation surface."

**Research-lane drag**

Letting the reader lane imply a pending theorem is failure. The first public
version must be valuable even if "outside debt" reduces entirely to
recognizability, local derivability, patch complexity, extension complexity,
or hull structure.

**Goedel laundering**

Loose Goedel references sound profound and become inaccurate quickly. If Goedel
appears in public copy, it must be framed as philosophical ancestry, not as a
technical warrant for tiling claims.

**Aperiodic equals random**

Aperiodic tilings are ordered. The exhibit must make this unmistakable.

**Ghost equals mysticism**

The ghost is a boundary dependency, not a spooky entity. Keep the language
poetic in the hook and operational in the method.

**Visualization-as-proof**

A beautiful patch viewer is not evidence. It is an intuition surface. Any
formal claim needs cited math or a separate proof artifact.

**Boundary-only triviality**

Every finite patch of every infinite tiling has an outside. The lane only earns
its keep if it distinguishes kinds of outside debt: bounded, collapsing,
recursive, unbounded, undecidable, etc.

## Phase Ladder

### Phase 0 - Vocabulary and Fence Lock

- Keep this document as the governing scaffold.
- Decide whether "ghost", "outside debt", and "ghost boundary" survive contact
  with the literature.
- Write a one-page claim boundary before any visual work.
- Replace conjecture-shaped phrasing with reader/workbench phrasing unless a
  formal upgrade gate is explicitly passed.

Exit gate:

- The lane can be explained in three sentences without claiming or implying a
  theorem.

### Phase 1 - Literature Pass

- Read the Hat and Spectre papers closely enough to summarize the proof shape
  without flattening it.
- Identify the existing formal terms closest to "outside debt."
- Expand and maintain [`GHOST_LITPASS_MEMO.md`](GHOST_LITPASS_MEMO.md) as the
  citation spine, with vocabulary replacements and current-publication updates.

Exit gate:

- We know which existing technical terms should replace "outside debt" in
  specialist-facing copy, and the public reader still works with no new
  invariant.

### Phase 2 - Toy Model Workbench

Status: started 2026-06-22; **COMPLETE 2026-06-27** (acceptance suite
`pass=13 fail=0`; browser QA passed desktop + mobile).

- Spec: [`ghost/PHASE2_TOY_WORKBENCH_SPEC.md`](ghost/PHASE2_TOY_WORKBENCH_SPEC.md).
- Internal artifact: [`../ghost/workbench.html`](../ghost/workbench.html)
  served locally as `/ghost/workbench.html` from a static dev server.
- Pure core: `ghost/ghost-core.js`.
- Acceptance test: `npm run ghost:test`.
- Local QA server: `npm run ghost:serve` (static; the full-site Vite dev
  server is not needed and its dependency optimizer hangs on this one page).

The Phase 2 start artifact uses one-dimensional symbolic stripes rather than
planar tiles:

- periodic control: repeated `A B C D`, where local closure can collapse to a
  repeat cell;
- substitution control: Fibonacci `A -> AB`, `B -> A`, where bounded ancestry
  can be shown without a translational repeat cell;
- computability cliff: named as a separate non-measured regime, not rendered as
  another rung on a gradient.

Hat/Spectre implementation remains deferred until source/licensing and proof
vocabulary are clean.

Exit gate:

- The ghost boundary is visible as an interaction, not merely explained in
  prose.
- The periodic/substitution contrast is visible without implying a new
  invariant.
- The Domino/SFT cliff remains a separate panel, not a smooth metric row.

Exit gate MET 2026-06-27: window + boundary edges are interactive; periodic
closes to a repeat cell while Fibonacci shows ancestry without a global period;
the cliff is a separate panel. Next is Phase 3 (one real aperiodic substrate),
which stays gated on clean public assets and cited substitution rules.

### Phase 3 - Aperiodic Reader

Status: **COMPLETE 2026-06-27** (acceptance suite + browser QA passed; exit gate
met; owner sign-off).

- Substrate: **rhombic Penrose (P3)**, generated from the published Robinson-
  triangle deflation rule (no figure reuse). Owner-selected over Ammann-Beenker /
  chair / Hat-Spectre.
- Spec: [`ghost/PHASE3_APERIODIC_READER_SPEC.md`](ghost/PHASE3_APERIODIC_READER_SPEC.md).
- Internal artifact: [`../ghost/aperiodic.html`](../ghost/aperiodic.html)
  (`ghost/aperiodic-core.js` + `ghost/aperiodic-ui.js`), served at
  `/ghost/aperiodic.html` via `npm run ghost:serve`.
- Acceptance test: `npm run ghost:aperiodic:test` (`pass=13 fail=0`).

What it does:

- Adds a reader mode for one real aperiodic substrate (Penrose).
- Substrate has clean public substitution rules and a citable explanation; the
  geometry is self-generated, so no asset/licensing reuse (Penrose name caveat
  for any future public page recorded in the spec, section 9).
- Makes the inflation hierarchy visible as hierarchy: raising the ancestry level
  merges tiles into larger supertiles; a circular window shows supertiles that
  are contained (ancestry recoverable, ghost collapsed) vs crossing (ghost at
  the boundary). Growing the window collapses more ghost; raising the level
  recedes it upward - the recognizability-radius idea (Q2) made visual.

Exit gate:

- A specialist would not object to the phrasing "this visualizes one aspect of
  the known proof structure."

Exit gate MET 2026-06-27: combinatorics verified against the substitution rule
(phi^2 count growth, thick:thin -> phi); hierarchy is interactive; window shows
bounded recoverable ancestry vs boundary ghost; cliff stays a separate regime.
Verified via acceptance suite + accessibility snapshot + computed styles + DOM
reads on desktop and mobile (environment screenshot pipeline unavailable).

### Phase 4 - Optional Metric Probe

Status: **COMPLETE 2026-06-27** (optional, non-gating). Rigorous falsification
battery run; acceptance suite `npm run ghost:metric:test` = `pass=23 fail=0`.

- Spec (pre-registration): [`ghost/PHASE4_METRIC_PROBE_SPEC.md`](ghost/PHASE4_METRIC_PROBE_SPEC.md).
- Results memo: [`ghost/GHOST_PHASE4_METRIC_MEMO.md`](ghost/GHOST_PHASE4_METRIC_MEMO.md).
- Core: `ghost/metric-probe-core.js`.

This phase was optional and did not gate the reader (Phase 3 was already
complete).

- Prototyped the **recognizability radius** (Mosse's constant of
  recognizability) as the finite-patch observable, after mapping it to existing
  vocabulary in Q2; repeat-cell capture radius as the periodic control.
- Falsified the **unbounded** reading of the Ghost Boundary Heuristic on every
  substrate: outside debt is a finite, bounded recognizability radius. Measured:
  Fibonacci 1, period-doubling 1, Thue-Morse 2 (letters, exactly depth-stable);
  periodic `ABCD` capture radius 5; Penrose P3 ~0.978 finest-edge units
  (converges from below by depth 6). The unbounded regime is undecidable
  Wang/SFT extension, which is not simulable and is recorded as the boundary, not
  measured.
- The probe collapsed into known theory, which is the recorded success outcome.

Exit gate:

- Either the metric is identified as known vocabulary, dies cleanly, or earns a
  narrow technical memo with an explicit "not a new invariant" default.

Exit gate MET 2026-06-27: the metric is **identified as known vocabulary** (the
constant of recognizability; Mosse, Durand-Leroy arXiv:1610.05577), bounded,
**not a new invariant**. The conjecture arc closes: "outside debt" had a real,
finite, citable referent all along.

### Phase 5 - Public Page Candidate

Status: **BUILT + WIRED + QA passed 2026-06-27; launch-ready, NOT deployed.**
Owner deploy + asset/license check still gate the public launch.

- Page: `ghost.html` (indexable public page), reader module `js/ghost.mjs`
  importing the shared core `ghost/aperiodic-core.js` (single source; no new
  math, no figure reuse).
- Wired: registered in `site-pages.json` (kind `workbench`); sitemap regenerated
  and `npm run seo:sitemap:check` = OK (25 URLs, `/ghost` indexable); full
  OG/Twitter/JSON-LD + canonical `https://sundog.cc/ghost`.
- Leads with the interactive Penrose reader, not conjectural grandeur.
- Carries the one-sentence payload:

> Ordered does not mean repeating. Local does not mean closed.

- Copy reflects the Phase 4 result: the missing context is a FINITE
  recognizability radius, so the "unerasable outside" framings are deliberately
  NOT used as the headline. Penrose attribution (Penrose 1974 / Gardner 1977) +
  recognizability citation (Mosse; Durand-Leroy) are on-page. A fences card
  states it is not a theorem / not a new invariant / aperiodic != random / no
  Goedel claim.

Exit gate:

- Public copy is true even if every heuristic/probe sentence is deleted.

Exit gate MET 2026-06-27 (copy is exhibit-led and true without any
heuristic/probe sentence). QA: reader renders (890 tiles at depth 5, thick:thin
= phi), the window shows recoverable vs crossing supertiles, widening the circle
collapses more ghost and raising the level recedes it upward, theme applied,
responsive desktop + mobile, no console errors.

Pre-deploy checklist (SEO/webdev items DONE 2026-06-27):

- `og/ghost.png` 1200x630 generated via the public/og pipeline (added `viz_ghost`
  + `ghost` card to `public/og/_gen2.py`; Penrose rosette + drawn circle, on
  brand); rasterized through the sharp fallback. DONE.
- Clean-URL redirect `/ghost.html -> /ghost 301` added to `public/_redirects`.
  DONE.
- Inbound link added: `geometry.html` hero actions ("Open Ghost reader"). DONE.
- Sitemap regenerated; `npm run seo:sitemap:check` = OK (25 URLs, `/ghost`
  indexable). DONE.
- Penrose asset/license diligence: US patent (1979) expired; usage is
  self-generated geometry from published rules, no figure reuse, on-page
  attribution = the clean path. Researched, NOT legal advice; owner makes the
  final sign-off. PENDING owner call.

Still owner-gated (NOT done): owner asset/license sign-off; `npm run deploy`
(publishes https://sundog.cc/ghost); post-deploy social-validator pass. Assistant
will not deploy without an explicit go.

## Current Best Shape

The right near-term move is not "Sundog vs. Aperiodicity" as a theorem lane.
It is:

> Sundog Ghost: a reader/workbench for the hidden outside of local order, with
> aperiodic tilings as the first hard test.

That keeps the hook alive:

> Draw the circle. Find the ghost.

And it keeps the reader question honest:

> Can we classify systems by how much outside a finite inside needs in order to
> explain itself?
