Product-writing audit of README and FEATURES, plus two doc-truth tests - #4
Merged
Conversation
debabsah
force-pushed
the
docs/copy-audit
branch
2 times, most recently
from
July 28, 2026 06:33
f8e98fe to
493fb01
Compare
…h tests A pass over the user-facing copy against the rules in PRODUCT-WRITING.md, and over the two claims that had silently gone stale. Two factual errors, both previously reported as fixed: - FEATURES.md said the MCP server exposes "Six tools". It exposes ten. This is v2 roadmap item 20, corrected in the README and VERIFICATION.md but never in FEATURES.md. - The CLI Verbs table was missing `brief`, `advise`, `redesign` and `calibrate`. That is v2 roadmap item 21, which the v2 page claims landed and which never landed at all. Both are now enforced instead of maintained by hand. tests/test_docs.py parses add_parser calls out of cli.py and asserts the verb table matches in both directions, and counts @mcp.tool() decorators against every "N tools" claim in the prose. DESIGN-BRAIN-V2.md's status line is corrected from 36 of 37 to 35, including the note that the first correction was itself wrong because nobody checked item 21. README restructured around what the tool does rather than what you must learn to do. The hero named the spec file as the thing you write, which put the format's learning curve in the first ten words; it now leads with the round trip and names the command line, three verbs (builds, updates, decompiles) so create-only is not a possible reading, and the AI as a closing beat rather than a premise. Decompile moved onto the first screen, since "I already have 200 dashboards" is the objection that disqualifies a dashboards-as-code tool. `chartwright plan` and its non-zero exit are now named where the CI story lives. COMPARISON.md is linked for the first time; it was unreachable from the front door. Also: the word "design" had two meanings (the spec's expressive surface, and visual quality), and every page in docs/ except the v2 review record is now reachable from the README. Editorial pass across the user-facing docs: punctuation normalised, and several sentences tightened where a clause was doing two jobs. Two of those rewrites exposed rule-4 violations the punctuation had been hiding: "no fork of the rulebook" and "zero extra API calls" both defined a capability by what does not happen. The rule-table cells in DESIGN-BRAIN.md are generated, so that is fixed in gen_rule_table.py rather than in its output; fixing the output by hand would be undone by the next --write. DESIGN-BRAIN-V2.md is left as-is, because it is a verbatim record of review findings and editing quoted findings would make the record less faithful. 256 tests pass under both pytest invocations; params_drift clean against 4.1.4, 5.0.0 and 6.1.0; rule table matches the registry.
Four bold names were slogans rather than descriptions, which PRODUCT-WRITING.md asks headings not to be: AI-Native Dashboard Creation -> Creating Dashboards with AI A Visual Designer On Call -> Codified BI/UX Practice It Learns From You -> Heights Calibrated From Your Own Dashboards Your Data Stays Put -> What the AI Can See The last one gains rather than loses: "What the AI Can See" invites the reader into the sentence that answers it, where the old name asserted the conclusion and hoped to be believed. "No Empty First Load" promised charts open on the full data range while the new data.unwindowed-history rule warns when nothing bounds the dates. Both are true and they solve different problems, but a reader meeting both would think the tool disagrees with itself. The entry now states the tradeoff and points at the fix.
debabsah
force-pushed
the
docs/copy-audit
branch
from
July 28, 2026 06:40
493fb01 to
431b88e
Compare
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.
Copy only. Stacked on #3, so the base is
fix/review-tier-1-2and this diffshows just the writing. GitHub will retarget it to
mainwhen #3 merges.Split out from #3 deliberately: that PR wants a code reviewer, this one wants
an eye on voice.
Two factual errors, both previously reported as fixed
FEATURES.md said the MCP server exposes "Six tools". It exposes ten. This
is v2 roadmap item 20, which was corrected in the README and VERIFICATION.md
and never in FEATURES.md.
The CLI Verbs table was missing
brief,advise,redesignandcalibrate. That is v2 roadmap item 21, which DESIGN-BRAIN-V2.md claimslanded and which never landed at all. Four shipped verbs were undocumented.
Neither is maintained by hand any more.
tests/test_docs.pynow parsesadd_parsercalls out ofcli.pyand asserts the verb table matches in bothdirections (a missing verb fails, and so does a documented verb that does not
exist), and counts
@mcp.tool()decorators against every "N tools" claim inthe prose.
DESIGN-BRAIN-V2.md's status line is corrected from 36 of 37 to 35, including
the note that the first correction was itself wrong because nobody had checked
item 21 before writing it.
README
The hero named the spec file as the thing you write, which puts a format's
learning curve in the first ten words. It now leads with the round trip, names
the command line, uses three verbs (builds, updates, decompiles) so create-only
is not a possible reading, and puts the AI as a closing beat rather than a
premise.
Other changes:
the objection that disqualifies a dashboards-as-code tool, and the answer was
below the fold.
chartwright planand its non-zero exit are named where the CI storylives. Per COMPARISON.md nothing else diffs a spec against a live dashboard,
and it was described in five words that mentioned neither the command nor CI.
front door.
visual quality). Now one.
docs/except the v2 review record is reachable from theREADME.
Editorial pass
Punctuation normalised across the user-facing docs, and several sentences
tightened where a clause was doing two jobs. Two of those rewrites exposed
rule-4 violations the punctuation had been hiding: "no fork of the rulebook"
and "zero extra API calls" both defined a capability by what does not happen.
The rule-table cells in DESIGN-BRAIN.md are generated, so that is fixed in
gen_rule_table.pyrather than in its output; fixing the output by hand wouldbe undone by the next
--write.DESIGN-BRAIN-V2.md is left as-is. It is a verbatim record of review findings,
and editing quoted findings would make the record less faithful.
Verification
256 tests pass under both pytest invocations,
params_drift --allis cleanagainst 4.1.4, 5.0.0 and 6.1.0,
gen_rule_table.py --checkmatches theregistry, and the README's JSON and TOML examples were re-validated after every
edit.
Not done here
Dashboard compiler for Apache Superset, which is weaker than the hero it now sits above and reaches morepeople than the README does.
On Call", "It Learns From You", "Your Data Stays Put", the "AI-Native"
section header). Left alone: that is voice, and it is the author's call.
new
data.unwindowed-historyrule warns when nothing bounds the window. Bothare true and they address different problems, but a reader meeting both could
think the tool argues with itself.