Correct the record: group_membership does export - #27
Merged
Conversation
`CLAUDE.md`, the tool's own description and a passing test all claimed that two columns cannot be exported. Measured live 2026-09-03: all 48 columns requested come back as **47**, the only missing one is `tag_ids`, and `group_membership` carries the value `None`. Whether Substack changed or the original reading was wrong cannot be told apart after the fact, which is the argument for the tool diffing the returned header against the requested list rather than carrying a list of undeliverable columns. That mechanism was right and is untouched; only the claims about it were wrong. The description in the `tools` registry is the one that mattered most: it is what a model reads to decide whether the column it needs is obtainable, and it was telling every caller to stop asking for data that arrives. Note how it survived: the suite's CSV fixture omitted the `Group membership` header, so the false claim had a green test agreeing with it — the same shape as the pending-poll mock in #26, and exactly what the fixture rule added there is for. The fixture now carries the header and cites the measurement, and the mutation check confirms three tests fail without it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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.
Follow-up to #26, found while verifying it live.
CLAUDE.md, the tool's own description and a passing test all claimed two columns cannot be exported. Measured live 2026-09-03 against a real publication:A narrower probe confirms it directly: requesting
['group_membership','tag_ids','activity_rating']returns['activity_rating','group_membership']withmissing_columns: ['tag_ids'].Whether Substack changed or the original reading was wrong cannot be told apart after the fact. That is the argument for what the tool already does — diff the returned header against the requested list, rather than carry a static list of undeliverable columns. That mechanism is correct and untouched; only the claims about it were wrong, and the
missing_columnsguard is still needed fortag_ids.Why the description mattered most
src/server.jsis where a model reads whether the data it needs is obtainable at all, before it ever sees the schema. Telling itgroup_membershipcannot be exported means it stops asking for a column that arrives fine — the same failure mode as theupload_imagepitch that still said "from an http(s) URL" afterpathwas added.How it survived
The suite's CSV fixture omitted the
Group membershipheader, so the false claim had a green test proving it. That is the same shape as the pending-poll mock in #26, and precisely what the fixture rule added there exists to catch:The fixture now carries the header, the value
Noneas returned, and the date of the measurement.Verification
Group membershipfrom the fixture header again fails 3 tests (reports the columns it actually got back,names the requested columns that never came back,records each step of the flow). Confirmed the mutation landed before trusting it.753 pass / 0 failon both supported runtimes.tools/listre-read from the real entrypoint: the published description now ends "One column cannot be exported and is reported inmissing_columnsrather than failing: tag_ids."🤖 Generated with Claude Code