Skip to content

Builder, slice 1: browse GAM's catalog, run every read - #135

Merged
goetchstone merged 3 commits into
mainfrom
feat/builder-catalog
Oct 28, 2026
Merged

goetchstone merged 3 commits into
mainfrom
feat/builder-catalog

Conversation

@goetchstone

Copy link
Copy Markdown
Owner

Builder, slice 1: GAM's whole command catalog to browse and search, and every command that only reads run from it. It's the largest gap the parity audit found.

  • GamGUI's generic read builder, ported. Every one of the 514 promoted reads has GamGUI's slots and argv, held by a new fixture generated from frozen GamGUI (scripts/gen_catalog_reads.py).
  • The one door (GamCommands.catalogRead) rechecks GamGUI's verb rule, so an edited catalog can't promote a write. Each value is one argv element.
  • The screen shows a command's grammar, its fields and the exact gam command before Run. The result is a table (filter over every row, Export CSV…) or GAM's words.
  • Sensitive reads (downloads, secrets) stay browse-only until a read can be audited.
  • The strict mock answers only gam version of these, so proof that GAM accepts them waits on the live check B1.

Runbook: docs/domains/catalog-builder.md.

🤖 Generated with Claude Code

goetchstone and others added 3 commits October 28, 2026 08:17
GamGUI's generic read builder ported, held to it over all 514 promoted
reads (Tests/Fixtures/catalog_reads.json, from frozen GamGUI by
scripts/gen_catalog_reads.py). One door, GamCommands.catalogRead,
rechecks the verb rule on the argv it emits and refuses todrive and
doit as values. Sensitive reads browse-only until a read is audited.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The fuzz job builds GamEngine's Foundation-free files: the catalog's
types and rules move to a Foundation-free CommandCatalog.swift (Python's
strip and lower), its JSON loading and search to CommandCatalog+JSON,
and the fuzzer gains a target: any grammar line and any values, a
runnable read never emits todrive or doit. Promotion now also refuses
an argv keyword that changes things. The screen's list and detail sit
in a row: a nested split view asked for the whole window.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts:
#	Packages/GamKit/Tests/GamEngineTests/WriteRouteTests.swift
#	docs/plans/2026-10-08-native-gamgui.md
#	docs/screenshots.md
#	scripts/screenshots.sh
@goetchstone
goetchstone merged commit a996ace into main Oct 28, 2026
7 checks passed
@goetchstone
goetchstone deleted the feat/builder-catalog branch October 28, 2026 13:04
goetchstone added a commit that referenced this pull request Oct 28, 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