Skip to content

Adopt the semantic model across Ghost starter packages - #264

Draft
awinther1 wants to merge 4 commits into
mainfrom
feat/semantic-model-adoption
Draft

Adopt the semantic model across Ghost starter packages#264
awinther1 wants to merge 4 commits into
mainfrom
feat/semantic-model-adoption

Conversation

@awinther1

Copy link
Copy Markdown
Collaborator

Why

ghost init should give authors a coherent semantic starting point rather than requiring every package to invent its own placement vocabulary and node-body structure. The same model should hold across Ghost's first-party reference packages without making their brand-local kinds runtime-special.

What

  • Make the starter use standard, foundation, and context, with Usage / Rules / Never bodies and optional final Skeleton guidance.
  • Rename the measured median floor to standard.model-defaults, frame its rules as overridable Defaults, and keep ghost checks init compatible with legacy cliche.median packages.
  • Converge vessel-light on the same model, including its glossary, checks, demo asks, release payload, and all node bodies.
  • Align both vessel-react packages, preserving defensible local kinds while adopting context/default semantics and the common body shape.
  • Teach the vocabulary and body model in the installed skill bundle; include a minor changeset.

Risk Assessment

Medium. This intentionally changes the files and node IDs emitted by fresh ghost init and the vessel-light body. Legacy median check scaffolding remains supported, and all first-party packages validate with zero warnings.

Verification

  • pnpm test — 212 passed
  • pnpm check — passed
  • Fresh ghost init + ghost checks init + ghost validate — zero errors/warnings
  • vessel-light, vessel-react workspace package, and vessel-react shipped package — zero errors/warnings

References

  • ~/Briefs/2026-08-19_default-node-schema.md
  • thoughts/shared/research/2026-08-19-semantic-model-adoption.md (local research artifact; intentionally not committed)

Generated with Goose

Kinds become standard/foundation/context; cliche.median becomes
standard.model-defaults (a shared Default, reject->replace preserved);
foundation and context bodies restructure to Usage/Rules/Never with
known-gap open questions; checks init pairs the median check with the
new node id and rewrites references for legacy cliche.median packages.
grammar.*/signature.* become foundation.*, register.* become context.*,
anti-goal.median becomes standard.model-defaults, anti-goal.tells becomes
foundation.tells; all bodies restructure to Usage/Rules/Never; glossary,
checks, demo asks, README, and release scripts follow the renames.
Workspace package: manifest to ghost.package/v1 with a declared cover,
condition.* renamed to context.*, bodies restructured to Usage/Rules/Never.
Fingerprint package: anti-goal.median becomes standard.model-defaults with
Default framing, glossary declares standard, cover declared, bodies
restructured; checks updated in the same change.
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