docs: audit guide/ + compat-matrix for drift (closes #149) - #183
Merged
Conversation
Audited docs/guide/{getting-started,which-verb,cli-reference,troubleshooting,
README}.md, root README.md's CLI section, docs/README.md, and
docs/modal-compatibility-matrix.md against the current CLI source
(cmd/calque/*.go) and parser (tools/pyast/pyast.py, internal/parse/parse.go).
Found and fixed two real discrepancies:
- cli-reference.md's `real` flags table was missing `--allow-card-swap`
(calque#178) entirely, and its `--instance` row still said the default
was a literal "g6.2xlarge" — main.go actually defaults to "" and only
falls back to g6.2xlarge absent a card-swap substitution.
- modal-compatibility-matrix.md's §H `modal.Cron`/`modal.Period` rows said
the object forms were "not recognized as a distinct construct" (⬜) —
stale. pyast.py's `_schedule_marker` and parse.go's
`decodeScheduleMarker` already recognize both structurally (calque#91),
same recorded-but-not-honored posture as the bare-string `schedule=` row
above it. Updated both rows plus the backlog item and provenance note
to match.
Everything else checked out: getting-started.md's IAM policy/tag/role-reuse
claims, which-verb.md's flag cross-refs, troubleshooting.md's bug
citations, and all cross-links between README.md / docs/README.md /
docs/guide/ / examples/README.md were already accurate and present.
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.
Summary
calque#149 asked for a design pass on user-facing docs. That pass happened (a design comment on the issue proposed
docs/guide/{getting-started,which-verb,cli-reference,troubleshooting,README}.md), and separately those files were actually written — but the issue was never closed and the content was never independently fact-checked against the current CLI/parser source.This PR is that audit. It is not new documentation — it verifies every concrete claim in the existing guide docs (and the compat-matrix) against
cmd/calque/*.go,tools/pyast/pyast.py, andinternal/parse/parse.go, and fixes what had drifted.Discrepancies found and fixed
docs/guide/cli-reference.md(calque realflags table):--allow-card-swapentirely — a real flag added for calque#178's GPU card-swap feature. Added its row.--instance's default was documented as a literalg6.2xlarge. The actual default inmain.go'sparseRealArgsis"", which resolves tog6.2xlargeunless--allow-card-swapsubstituted a different card (in which case an instance for that card is picked automatically). Corrected the row.docs/modal-compatibility-matrix.md(§H Scheduling):modal.Cron(...)/modal.Period(...)object-form rows said "⬜ Not recognized as a distinct construct" — stale.tools/pyast/pyast.py's_schedule_markerandinternal/parse/parse.go'sdecodeScheduleMarkeralready recognize both structurally (calque#91), landing them in the same "recorded but NOT honored" (🟨) bucket as the bare-stringschedule=row directly above — just not executed (no scheduler exists in the spike). Rewrote both rows, theschedule=row's cross-reference, the backlog item Warm worker: spored (Go) supervises long-lived Python runner (§6) #12, and the provenance note to match.Verified as already accurate (no changes needed)
getting-started.md's IAM policy JSON, resource-tagging (calque:run-id/calque:managed/calque:command), and per-bucket role-reuse claims — checked againstinternal/plan/iam.goandinternal/plan/spawn.go.which-verb.md's flag cross-references (--function,--entrypoint,--pip,--secret, etc.) — checked againstmain.go/realrun.go.troubleshooting.md's bug citations (IAM instance profile,uv venvbinary path, AL2023 missinggit, fleet-mode field-dropping) — checked againstinternal/exec/bootstrap.goandinternal/pool/pool_test.go.cli-reference.md(run,smoke,ramp,poolcreate/scale/delete/status/list,spawn-run,sessioncheckout/checkin/status/list) — checked flag-by-flag against everyflag.NewFlagSetcall acrosscmd/calque/*.go.README.md→docs/guide/{which-verb,cli-reference}.md,docs/README.md→docs/guide/README.md,examples/README.md→docs/guide/getting-started.md— all already present.Deliberately deferred, not fixed here
calque#149's own design comment proposed auto-generating
cli-reference.mdfromflag.FlagSetintrospection instead of hand-writing it (to prevent this exact class of drift going forward). That's a real, separate idea — tracked as its own smaller follow-up issue, not a blocker to closing #149, since the hand-written content has now been verified accurate.Test plan
uvx ruff check .— all checks passed (docs-only change, no Python touched).markdown-links/lychee to newly validate.