Skip to content

Restructure gather menu for model legibility - #265

Merged
nahiyankhan merged 2 commits into
mainfrom
gather-menu-model-legibility
Sep 5, 2026
Merged

Restructure gather menu for model legibility#265
nahiyankhan merged 2 commits into
mainfrom
gather-menu-model-legibility

Conversation

@nahiyankhan

@nahiyankhan nahiyankhan commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator

Category: improvement

User Impact: ghost gather is 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: pass
  • pnpm test: pass (210/210, all packages)
  • pnpm check: pass (Biome, typecheck, terminology, packed-package, file sizes, install bundle, release tarball, release workflows, vessel-light)
  • Manually verified asked and bare gather output with a resolved cover, missing cover, custom kinds, a kind without legend prose, a node without for, 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.ts
Single-sources a vocabulary-neutral selection contract, preserves the required public noAsk string, retains every declared kind for ordering, and emits silence guidance based on whether the cover resolved.

packages/ghost/src/commands/gather-command.ts
Leads 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.md
Makes each starter kind's first paragraph state selection semantics and moves the standard authority 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 noAsk compatibility, vocabulary-neutral selection, resolved and missing covers, applicability labels, nodes without for, custom and undeclared kinds, empty legends, and uncategorized ordering.

Screenshots/Demos: N/A. This changes CLI text output.

- 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
nahiyankhan force-pushed the gather-menu-model-legibility branch from 7f71534 to 99e3e1f Compare September 4, 2026 14:47
@nahiyankhan
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
@nahiyankhan
nahiyankhan merged commit d295370 into main Sep 5, 2026
6 checks passed
@nahiyankhan
nahiyankhan deleted the gather-menu-model-legibility branch September 5, 2026 05:19
@github-actions github-actions Bot mentioned this pull request Sep 5, 2026
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