Restructure gather menu for model legibility - #265
Merged
Conversation
- Single-source the selection contract between markdown and JSON emitters, leading with an instruction and adding a context-aware uncertainty rule (context.* wrong-situation pulls are contamination, not mild dilution). - Group menu nodes by glossary kind order with the kind's legend inline above each group; number nodes continuously across groups. - Drop the cover's 'do not pull again' ceremony down to a plain node header plus one line; state 'each bullet applies when' once above the list instead of repeating the label per node. - Compress the coverage line (drop zero-count noise and the 'carry payloads' jargon); rewrite the silence line to point at the cover's own missing-guidance rule instead of an undefined 'silence posture'. - Update the starter glossary's foundation/context legends to lead with selection semantics, per a documented schema.md convention. Co-authored-by: Goose <opensource@block.xyz> Ai-assisted: true
nahiyankhan
force-pushed
the
gather-menu-model-legibility
branch
from
September 4, 2026 14:47
7f71534 to
99e3e1f
Compare
nahiyankhan
marked this pull request as ready for review
September 4, 2026 16:20
Preserve the public noAsk shape, keep selection vocabulary-neutral, render all supported kind shapes honestly, and remove the readiness color rubric. Align the shipped skill guidance and add coverage for custom ordering and uncategorized nodes.\n\nCo-authored-by: Goose <opensource@block.xyz>\nAi-assisted: true
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Category: improvement
User Impact:
ghost gatheris easier for a host agent to read and act on correctly. The selection rule leads the output, applicable nodes are grouped by kind, uncategorized nodes are explicit, and each retrieval payload is labeled at the point of use.Problem: The gather menu buried its selection contract after package-authored prose, described itself instead of directing the host, split kind legends from the nodes they governed, and referenced an undefined "cover silence posture." Alphabetical output obscured kind semantics. The grounding skill also compressed evidence and task risk into an unnecessary readiness color.
Solution: Single-source the selection contract between Markdown and JSON, lead with it, and keep it vocabulary-neutral. Group nodes by declared kind order, preserve kinds without legends, and place uncategorized nodes in an explicit final group. Label each node's applicability, identify the cover directly, and make silence instructions reflect whether a cover resolved. Keep coverage factual and remove the readiness-color rubric. Document and apply a first-paragraph selection-semantics convention for glossary kinds.
Validation:
pnpm build: passpnpm test: pass (210/210, all packages)pnpm check: pass (Biome, typecheck, terminology, packed-package, file sizes, install bundle, release tarball, release workflows, vessel-light)gatheroutput with a resolved cover, missing cover, custom kinds, a kind without legend prose, a node withoutfor, and an uncategorized node.Changeset: added (
.changeset/gather-menu-model-legibility.md, patch)ghost Review: not applicable. This repo builds Ghost rather than consuming a Ghost package.
File changes
packages/ghost/src/embed/gather.tsSingle-sources a vocabulary-neutral selection contract, preserves the required public
noAskstring, retains every declared kind for ordering, and emits silence guidance based on whether the cover resolved.packages/ghost/src/commands/gather-command.tsLeads Markdown with the selection contract, identifies the cover, reports factual coverage, groups declared and undeclared kinds deterministically, puts uncategorized nodes last, labels applicability, and numbers nodes continuously while requiring pulls by id.
packages/ghost/src/init-payloads/skeleton/glossary.mdMakes each starter kind's first paragraph state selection semantics and moves the
standardauthority model into its second paragraph.packages/ghost/src/skill-bundle/Aligns the installed skill and grounding, making, schema, and steering-audit references with the emitted contract and final menu. Removes the Green/Yellow/Red readiness rubric without replacing it with another score.
Tests
Covers public
noAskcompatibility, vocabulary-neutral selection, resolved and missing covers, applicability labels, nodes withoutfor, custom and undeclared kinds, empty legends, and uncategorized ordering.Screenshots/Demos: N/A. This changes CLI text output.