docs: coverage-gap stage 0 — fixed-array model + gen2 currency in CLAUDE.md/skills#3097
Merged
Conversation
…UDE.md/skills Plan lives in COVERAGE_GAP.md (stages 0-4; evidence base = the PR #3095 babysitting session, where every CI failure was a local-vs-CI oracle mismatch). Stage 0 (this PR): - CLAUDE.md: syntax/factual corrections are now fix-in-place ALWAYS (verified against ds2_parser.ypp + probe-compile); propose-first narrowed to restructuring/removals/new skills. - CLAUDE.md: new "Fixed arrays (structural since 0.6.3)" section — chain model, one-peel rule, generic binding (whole-bind vs []-peel, one-level -[]), safe_addr element decay, TypeInfo-stays-flattened, the both-worlds isArray() note for externals. - skills/das_macros.md: macro-author view — fixedDim sentinels, qualifiers on the chain head, make_fixed_array_type, typemacro payloads in typeMacroExpr (dimExpr is gone), leaf-walk recipe. - skills/linq.das examples: typeDecl.dim (deleted field) -> argTypes. - Gen2 currency review: every syntax claim in CLAUDE.md's gen2 section + das_formatting/regex/strings/daslib_modules skills verified against the grammar; suspicious ones probe-compiled (all held up). Four shipped-but-undocumented features added: function/method arrow bodies (def f(...) : T => expr), call-site block arrow shorthand ($(a, b) => a < b), piped default-argument padding. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Docs-only PR that establishes “coverage-gap Stage 0” guidance and updates internal documentation (CLAUDE.md + skills) to match the post-#3095 fixed-array AST model and newly verified gen2 syntax conveniences.
Changes:
- Add
COVERAGE_GAP.mdoutlining a staged plan to mirror CI gates locally (Stages 0–4). - Update
CLAUDE.mdwith a stricter “fix-in-place” rule for factual/syntax doc drift, plus new fixed-array and gen2 arrow-shorthand documentation. - Refresh skills docs (
skills/das_macros.md,skills/linq.md) to remove references to deletedTypeDecl.dim/dimExprand document thetFixedArraystructural model.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
skills/linq.md |
Updates examples to use typeDecl.argTypes instead of deleted typeDecl.dim. |
skills/das_macros.md |
Documents tFixedArray structural representation, sentinels, qualifier hoisting, and typeMacroExpr. |
COVERAGE_GAP.md |
Introduces the staged “local-vs-CI coverage gap” plan (Stages 0–4). |
CLAUDE.md |
Tightens doc-update rules and documents fixed arrays + additional gen2 arrow-body/shorthand forms. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
The two heads carry near-identical gen2 content by design (skills/install_instructions.md), but the SDK head had fallen behind — including two factual errors: lambdas listed as non-copyable (they are copyable since the lambda rework) and the outdated macro-var default<$t(st)> guidance (field defaults do not exempt; the safeWhenUninitialized fallback was missing). Regenerated the language block from the main head with the documented SDK adaptations: gc_migration pointer -> das_macros (gc_migration doesn't ship), repo paths genericized (tutorials/dasHV example, dastest/detect-dupe pointers, API_REWORK.md mention), print-vs-to_log phrased for SDK users. Newly carried over: fixed-array structural model, OR types, lambdas-are-copyable, panic-is-fatal, require path resolution, table<T> set type, iterator variance + mangling pitfall, is_unsafe_when_uninitialized, options module-locality, the full idiomatic-forms table (STYLE/PERF rows), minimize-unsafe, comment hygiene, and the new arrow-body / block-arrow / piped-padding syntax. Verified per skills/install_instructions.md: scratch cmake --install, installed CLAUDE.md byte-equal, skills/ matches install/skills.list, no repo-internal path leakage. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
All four are user-facing: strings and glob are core-language guidance, sql ships because dasSQLITE (module + tutorials/sql) ships, and gc_migration exists precisely for external/archived code on older daslang. Repo-only references genericized in the three that had them (glob test link, sql tests/design-notes links, gc_migration bin/Release paths). Install head: four table rows + the gc_migration pointer restored to match the main head now that the skill ships. aot_hash_desync_debugging and external_module_debugging stay repo-only for now — too repo-entangled, candidates after a cleanup pass. Verified: reconfigure + scratch cmake --install; skills/ matches install/skills.list; installed CLAUDE.md byte-equal. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This was referenced Jun 11, 2026
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.
Stage 0 of the local-vs-CI coverage-gap plan; the plan itself lands as
COVERAGE_GAP.md(stages 0–4, evidence base = the #3095 babysitting session where every CI red was an oracle mismatch, never a wrong change).Meta-rule sharpened (CLAUDE.md): syntax/factual corrections to CLAUDE.md/skills are now fix-in-place, always — verified against
ds2_parser.ypp(grammar truth) or a probe-compile before writing. Propose-first narrowed to restructuring, removals, and new skill files. Factual drift becomes self-healing; structural changes still get review.Fixed-array doc sweep:
auto(TT)whole-bind /auto(TT)[]peel + const inheritance / one-level-[]),safe_addrelement decay, runtime-TypeInfo-stays-flattened, and the both-worldsisArray()note for external modules.skills/das_macros.mdgains the macro-author view:fixedDimsentinels, qualifiers on the chain head,make_fixed_array_type, typemacro payloads intypeMacroExpr(dimExpris gone), the leaf-walk recipe.skills/linq.mdexamples migrated off the deletedtypeDecl.dimfield.(Other skills audited: zero stale references found.)
Gen2 currency review: every syntax claim in CLAUDE.md's gen2 section plus the syntax-adjacent skills was extracted and verified against the grammar; suspicious ones probe-compiled — all existing claims held up. The review instead found four shipped-but-undocumented features, all probe-verified and now documented: function/method single-expression arrow bodies (
def add(a, b : int) : int => a + b, return type inferable, works on class methods), call-site block arrow shorthand (arr |> sort() $(a, b) => a < b), and piped default-argument padding.SDK head sync (
install/CLAUDE.md): the language block is regenerated from the main head with the documented SDK adaptations (perskills/install_instructions.md). The SDK head had drifted badly, including two factual errors — lambdas listed as non-copyable, and the outdated macro-vardefault<$t(st)>guidance. Newly carried over: fixed arrays, OR types, panic-is-fatal, require resolution,table<T>sets, iterator variance, the full idiomatic-forms table, comment hygiene, and the new arrow syntax. Verified via scratchcmake --install: installed CLAUDE.md byte-equal,skills/matchesinstall/skills.list, no repo-internal path leakage.Docs-only PR — no
.das/C++ changes; no doc/source RST touched.🤖 Generated with Claude Code