Skip to content

ghost init: naked skeleton default — grammar, unanswered dials, median floor#209

Merged
nahiyankhan merged 5 commits into
vessel-light-fork-axisfrom
skeleton-default
Jul 9, 2026
Merged

ghost init: naked skeleton default — grammar, unanswered dials, median floor#209
nahiyankhan merged 5 commits into
vessel-light-fork-axisfrom
skeleton-default

Conversation

@nahiyankhan

Copy link
Copy Markdown
Collaborator

Category: improvement
User Impact: ghost init now hands every new user a real steering skeleton — portable design grammar, honest unanswered brand dials, and the model's measured median defaults as prunable reject→replace rules — instead of demo content for a fictional brand.
Problem: The old default template steered toward Morrow Ledger, a brand nobody has. Agents treat the corpus as authoritative, so grounding discipline amplified the fiction: an agent would cite "Morrow Ledger's editorial restraint" as Ghost-backed truth for a user who never wrote it.
Solution: Replace the steering template with the naked skeleton, derived by subtraction from the vessel-light fork-axis corpus (#208): 6 grammar nodes (value-free decision logic, closed sets enumerated), 4 signature nodes blanked to unanswered dials ("ask the human or flag the gap, don't freehand it" — with a provisional-generation clause so work never blocks), and anti-goal.median carried verbatim and unpruned with all 15 rule anchors. No materials, no registers, no fiction. ghost checks init now scaffolds a live median-tells.md paired to the median node (rule anchors, deterministic floor, frequency tells, model-named tells) alongside the inert example. Morrow's seven teaching shapes migrate to authoring-scenarios.md as labeled teaching fiction. steering and default silently alias the new skeleton template.

Stacked on #208 (base: vessel-light-fork-axis). Retarget as the stack merges: #207#208 ← this.

Validation:

  • pnpm check + pnpm test (143 passed, 1 skipped) via pre-commit on all four commits; cli-manifest regenerated in-commit
  • Live tmp-dir pass: initvalidate 0 errors, 0 warnings (pins the no-materials decision) → gather (12 nodes, correct kinds) → pull anti-goal.median signature.shape (prune header, rule anchors, dial phrases present)
  • init --with checksvalidate --format json shows zero check-reference-unresolved (median-tells references resolve against the skeleton)
  • No-Vessel-strings test: word-boundary grep over every scaffolded file for Vessel, HK Grotesk, 999px, Morrow, and the five hue names

Changeset: added (minor) — default template content replaced; --template steering preserved as alias, so no removed public behavior.

Ghost Review: not run — no product surface or fingerprint-consuming behavior changed; the diff is template/scaffold content, tests, skill reference, and docs.

File changes

packages/ghost/src/scan/skeleton-template.ts, skeleton-grammar.ts (new)
The skeleton template: glossary (4 kinds, register declared but unpopulated, softened authoring pointer), index (trust tiers, floor/ceiling doctrine, provisional-dials posture line, token-emission guidance), 4 unanswered dials (three-part shape: status line → fixed relationship → open question + restate instruction + provisional clause), 6 grammar bodies + anti-goal.median (verbatim + the licensing sentence for the deterministic floor). Split across two files for the 500-line cap.

packages/ghost/src/scan/steering-template.ts (deleted)
Morrow Ledger template retired.

packages/ghost/src/scan/templates.ts, commands/init-command.ts
DEFAULT_TEMPLATE_NAME = "skeleton"; default and steering alias it; help text updated.

packages/ghost/src/scan/check-scaffold.ts
checks init now writes median-tells.md (live, references anti-goal.median + grammar nodes; rule-anchored flags, deterministic floor licensed by the median node's preamble, frequency tells with thresholds, Codex/Gemini model tells with skip guidance) plus the existing inert example.md.example.

packages/ghost/src/skill-bundle/references/authoring-scenarios.md
New "Shapes of a useful node" section: the seven Morrow teaching shapes compressed to pattern + fragment each, explicitly labeled teaching fiction; silence-posture paragraph.

packages/ghost/test/cli.test.ts
Four template tests rewritten + two adjacent tests that asserted Morrow content; new assertions: exact file inventory, zero-warnings validate, gather kinds, prune-header/anchor/dial-phrase pulls, no-Vessel-strings grep, checks-scaffold resolution.

apps/docs/src/content/docs/getting-started.mdx, cli-reference.mdx
Steering-starter descriptions rewritten for the skeleton.

apps/docs/src/generated/cli-manifest.json
Regenerated (help text change).

.changeset/skeleton-default-template.md
minor.

Screenshots/Demos: N/A — CLI scaffold content. To inspect: node packages/ghost/dist/bin.js init in an empty dir and read the nodes.

* init: packed-payload mechanism — dist payloads, byte-capable template seam

* template: skeleton rides packed files

* init: --body vessel-light — install the full inhabited package

* checks: packed-artifact body probes — fonts and checks survive pack

* docs: body install in getting-started + cli-reference; minor changeset

* skill: adapting-a-starter — the seven-step starter transplant recipe (#211)

* skill: adapting-a-starter recipe — the seven-step transplant procedure

* review: resolve package-relative material locators when matching diff paths (#212)

* review: resolve package-relative material locators when matching diff paths

* demo: drop stale parked-branch reference from eval artifacts gitignore

* median: one authored home — model truth stamped at init, prunable by contract (#213)

* corpus: audit backports, check cross-wiring, terminology sweeps

* median: one authored home — headings contract, payload check, all templates stamp the floor

* vessel-light: re-derive median onto the headings contract; docs get the ownership reframe
@nahiyankhan nahiyankhan marked this pull request as ready for review July 9, 2026 14:16
@nahiyankhan nahiyankhan merged commit 4f53b9c into vessel-light-fork-axis Jul 9, 2026
1 check passed
@nahiyankhan nahiyankhan deleted the skeleton-default branch July 9, 2026 14:16
nahiyankhan added a commit that referenced this pull request Jul 9, 2026
…edian floor (#208)

* materials: tokens audit — radius roles, hoist grammar-enumerated values

* corpus: fork-axis re-author — grammar/signature/register/anti-goal

* checks: relationship/value split — density.md retired, median-tells gains demoted rules, frequency thresholds, model-named tells

* materials: regenerate refs — annotated, closed-set complete

* docs: vessel-light README — fork-axis structure and ref-annotation curation

* ghost init: naked skeleton default — grammar, unanswered dials, median floor (#209)

* template: naked skeleton replaces steering default

* checks: median-tells scaffold — live check pairing with anti-goal.median, deterministic floor, model tells

* skill: migrate Morrow teaching shapes to authoring-scenarios

* docs: skeleton starter in getting-started + cli-reference; minor changeset

* ghost init --body: packed payloads + vessel-light body install (#210)

* init: packed-payload mechanism — dist payloads, byte-capable template seam

* template: skeleton rides packed files

* init: --body vessel-light — install the full inhabited package

* checks: packed-artifact body probes — fonts and checks survive pack

* docs: body install in getting-started + cli-reference; minor changeset

* skill: adapting-a-starter — the seven-step starter transplant recipe (#211)

* skill: adapting-a-starter recipe — the seven-step transplant procedure

* review: resolve package-relative material locators when matching diff paths (#212)

* review: resolve package-relative material locators when matching diff paths

* demo: drop stale parked-branch reference from eval artifacts gitignore

* median: one authored home — model truth stamped at init, prunable by contract (#213)

* corpus: audit backports, check cross-wiring, terminology sweeps

* median: one authored home — headings contract, payload check, all templates stamp the floor

* vessel-light: re-derive median onto the headings contract; docs get the ownership reframe
nahiyankhan added a commit that referenced this pull request Jul 9, 2026
…ng-eval harness (#207)

* Add vendored vessel-react fingerprint: taste-floor nodes, materials wired to component sets, baseline hygiene checks

* Rename packages/vessel to packages/vessel-react; workspace fingerprint id follows

* Add vessel-light: Vessel's design language as a portable .ghost fingerprint for raw HTML/CSS agents

* Add steering-eval: portable before/after evaluation harness for Ghost fingerprints; wire vessel-light demo as first consumer

* Fix pilot findings: agent-browser set-viewport invocation, skip empty cells, brandTokens/pulledWords from tape

* Run the full steering-eval matrix on vessel-light: 45 generations + dump-growth, screenshots, metrics, report

* Park eval run artifacts on vessel-eval-artifacts branch; ignore demo/out on mainline

* steering-eval: emit WebP screenshots (shoot to PNG, convert via cwebp, embed webp in report)

* vessel-light: fork-axis re-authoring — grammar/signature/register + median floor (#208)

* materials: tokens audit — radius roles, hoist grammar-enumerated values

* corpus: fork-axis re-author — grammar/signature/register/anti-goal

* checks: relationship/value split — density.md retired, median-tells gains demoted rules, frequency thresholds, model-named tells

* materials: regenerate refs — annotated, closed-set complete

* docs: vessel-light README — fork-axis structure and ref-annotation curation

* ghost init: naked skeleton default — grammar, unanswered dials, median floor (#209)

* template: naked skeleton replaces steering default

* checks: median-tells scaffold — live check pairing with anti-goal.median, deterministic floor, model tells

* skill: migrate Morrow teaching shapes to authoring-scenarios

* docs: skeleton starter in getting-started + cli-reference; minor changeset

* ghost init --body: packed payloads + vessel-light body install (#210)

* init: packed-payload mechanism — dist payloads, byte-capable template seam

* template: skeleton rides packed files

* init: --body vessel-light — install the full inhabited package

* checks: packed-artifact body probes — fonts and checks survive pack

* docs: body install in getting-started + cli-reference; minor changeset

* skill: adapting-a-starter — the seven-step starter transplant recipe (#211)

* skill: adapting-a-starter recipe — the seven-step transplant procedure

* review: resolve package-relative material locators when matching diff paths (#212)

* review: resolve package-relative material locators when matching diff paths

* demo: drop stale parked-branch reference from eval artifacts gitignore

* median: one authored home — model truth stamped at init, prunable by contract (#213)

* corpus: audit backports, check cross-wiring, terminology sweeps

* median: one authored home — headings contract, payload check, all templates stamp the floor

* vessel-light: re-derive median onto the headings contract; docs get the ownership reframe

* build: root build and packed-package check produce the full ghost artifact

Root pnpm build only ran tsc, so dist/init-payloads and dist/skill-bundle
were missing in CI: the vessel-light body test failed and check-packed-package
packed a tarball without payloads. Root build now chains the package-level
build; check:packed-package builds its own complete artifact since the lint
job never runs pnpm build.

Signed-off-by: Nahiyan Khan <nahiyan@squareup.com>

---------

Signed-off-by: Nahiyan Khan <nahiyan@squareup.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant