Skip to content

Product-writing audit of README and FEATURES, plus two doc-truth tests - #4

Merged
debabsah merged 2 commits into
mainfrom
docs/copy-audit
Jul 28, 2026
Merged

Product-writing audit of README and FEATURES, plus two doc-truth tests#4
debabsah merged 2 commits into
mainfrom
docs/copy-audit

Conversation

@debabsah

@debabsah debabsah commented Jul 26, 2026

Copy link
Copy Markdown
Owner

Copy only. Stacked on #3, so the base is fix/review-tier-1-2 and this diff
shows just the writing. GitHub will retarget it to main when #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, redesign and
calibrate.
That is v2 roadmap item 21, which DESIGN-BRAIN-V2.md claims
landed and which never landed at all. Four shipped verbs were undocumented.

Neither is maintained by hand any more. tests/test_docs.py now parses
add_parser calls out of cli.py and asserts the verb table matches in both
directions (a missing verb fails, and so does a documented verb that does not
exist), 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 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:

  • Decompile moved onto the first screen. "I already have 200 dashboards" is
    the objection that disqualifies a dashboards-as-code tool, and the answer was
    below the fold.
  • chartwright plan and its non-zero exit are named where the CI story
    lives. 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.
  • COMPARISON.md is linked for the first time. It was unreachable from the
    front door.
  • The word "design" had two meanings (the spec's expressive surface, and
    visual quality). Now one.
  • Every page in docs/ except the v2 review record is reachable from the
    README.

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.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. 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 --all is clean
against 4.1.4, 5.0.0 and 6.1.0, gen_rule_table.py --check matches the
registry, and the README's JSON and TOML examples were re-validated after every
edit.

Not done here

  • The GitHub repo description still reads Dashboard compiler for Apache Superset, which is weaker than the hero it now sits above and reaches more
    people than the README does.
  • Several bold names are slogans rather than descriptions ("A Visual Designer
    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.
  • "No Empty First Load" promises charts open on the full data range, while the
    new data.unwindowed-history rule warns when nothing bounds the window. Both
    are true and they address different problems, but a reader meeting both could
    think the tool argues with itself.

@debabsah
debabsah force-pushed the docs/copy-audit branch 2 times, most recently from f8e98fe to 493fb01 Compare July 28, 2026 06:33
debabsah added 2 commits July 27, 2026 23:40
…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
debabsah changed the base branch from fix/review-tier-1-2 to main July 28, 2026 06:40
@debabsah
debabsah merged commit 33c13e2 into main Jul 28, 2026
10 checks passed
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