Skip to content

docs: the docs restated the same numbers in five different values - #151

Merged
skyoo2003 merged 2 commits into
mainfrom
docs/concise-rewrite
Sep 6, 2026
Merged

skyoo2003 merged 2 commits into
mainfrom
docs/concise-rewrite

Conversation

@skyoo2003

Copy link
Copy Markdown
Owner

Summary

Eighteen documentation files rewritten for concision — 3,564 lines to 2,501. Most of what came out was narrative that re-argued decisions the tables already state. Along the way the rewrite surfaced six figures published in more than one place with no two places agreeing, and three statements that did not match the code.

Related Issue

Refs #

Changes

Numbers now have one home. Six figures were restated across pages and had drifted apart:

Figure Was published as Actual
Services 205 / 148 / 101 205 registered, 201 serving
Operation tiers 12,407 / 9,030 / 7,475 4,497 / 5,193 / 2,717
Compatibility tests 992 / 1,144 / 775 1,144
Services with no Smithy model 11 / 12 11
Engine-wired services 46 155

Only coverage.md, README.md and docs/README.md are gated against the binary by cmd/devcloud/coverage_test.go, so those three were correct and every restatement of them had rotted. coverage.md now owns the numbers and the other pages link to it — the arrangement the gate already assumes.

Three statements corrected against the code:

  • troubleshooting.md told readers to check GET /devcloud/api/health. internal/admin/api.go:39-43 registers five routes and health is not one, so the only "is the server up?" command offered returned 404.
  • troubleshooting.md blamed a failed Lambda invoke on Docker not running. lambda/runtime.go is a stub whose Invoke unconditionally returns a placeholder payload; no configuration makes it execute a handler.
  • contributing.md listed interface.go, serializer.go and deserializer.go as codegen output. There are four templates and none emits those — providers parse *http.Request themselves, which architecture.md already said on the same tree.

crud-engine.md contradicted itself — its protocol table served all five protocols; its Scope section two screens later said JSON-only across 46 services. The Scope section predates rest-json support and is gone.

compatibility-policy.md said 193 model-backed / 12 without. Parsing manifest_gen.go gives 194 / 11 — the figures corrected in #150 were themselves off by one.

services-matrix.md was the worst-drifted page and is now a shape-of-the-surface page that links to coverage.md rather than maintaining a parallel set of counts by hand.

Untouched on purpose: the 285-row evidence table in demand.md (parsed by TestDemandSetIsRegistered, and a record of a sample rather than prose), and docs/services/*.md (already concise).

Files Changed

File Lines Change
docs/coverage.md 375 → 261 Modified — milestone narrative removed, gated tables preserved verbatim
docs/demand.md 347 → 337 Modified — prose header only; ranking table untouched
docs/plugin-api.md 204 → 199 Modified
docs/architecture.md 224 → 193 Modified — protocol table corrected (Lambda is rest-json, not JSON 1.1)
docs/contributing.md 231 → 178 Modified — codegen output list corrected
docs/compatibility-policy.md 171 → 161 Modified — 194/11 fix, assertion-scope table
docs/configuration.md 208 → 155 Modified
RELEASE.md 160 → 151 Modified
docs/fidelity-manifest.md 175 → 147 Modified — stale totals removed, now links coverage.md
docs/troubleshooting.md 103 → 102 Modified — health endpoint and Lambda entries corrected
docs/crud-engine.md 139 → 100 Modified — self-contradicting Scope section removed
docs/getting-started.md 110 → 99 Modified
docs/roadmap.md 83 → 84 Modified
README.md 85 → 75 Modified — 992 → 1,144 tests
docs/services-matrix.md 121 → 73 Modified — rewritten to link rather than restate
docs/faq.md 74 → 58 Modified — 148/117 and the "~96% of boto3's official suite" claim removed
docs/README.md 52 → 46 Modified
SUPPORT.md 42 → 39 Modified

Test Plan

  • CGO_ENABLED=0 go test ./cmd/... ./internal/config/... — green. All five doc gates pass: TestPublishedCoverageMatchesTheBinary, TestPublishedOperationTiersMatchTheManifest, TestRegisteredOnlyServicesAreNamedInTheDocs, TestOtherDocsQuoteTheSameFigure, TestDemandSetIsRegistered.
  • Every relative Markdown link in the tree resolves — checked by walking all .md files and stat-ing each non-anchor target. 0 broken.
  • Figures re-derived by parsing internal/generated/fidelity/manifest_gen.go directly (205 services, 194/11 model-backed, 155 engine-wired, 4,497/5,193/2,717 tiers) and by pytest --collect-only (1,144 tests), not by copying from another page.
  • No code changed, so lint and the compatibility suite are unaffected.

Checklist

  • Self-reviewed the code
  • Added/updated tests — N/A, docs only
  • Lint/format passes (golangci-lint run) — no Go files changed; pre-commit hooks passed on commit
  • Updated documentation (if applicable)
  • Added a Changie changelog fragment — added in a follow-up commit on this branch, once the PR number exists

Eighteen documentation files, rewritten for concision: 3,564 lines to 2,501.
Most of what came out was narrative that re-argued decisions the tables
already state.

The scatter had a cause worth naming. Six figures were published in more
than one place, and no two places agreed:

  services         205 / 148 / 101      -> 205 registered, 201 serving
  operation tiers  12,407 / 9,030 /     -> 4,497 / 5,193 / 2,717
                   7,475
  compat tests     992 / 1,144 / 775    -> 1,144
  no Smithy model  11 / 12              -> 11
  engine-wired     46                   -> 155

Only coverage.md, README.md and docs/README.md are gated against the binary
by cmd/devcloud/coverage_test.go, so those three were right and every
restatement of them had rotted. coverage.md now owns the numbers outright
and the other pages link to it, which is the arrangement the gate already
assumes.

Three statements did not match the code:

  - troubleshooting.md told a reader to check GET /devcloud/api/health.
    internal/admin/api.go registers five routes and health is not among
    them, so the one command offered for "is the server up?" returns 404.

  - troubleshooting.md attributed a failed Lambda invoke to Docker not
    running. lambda/runtime.go is a stub whose Invoke unconditionally
    returns a placeholder payload; no configuration makes it execute a
    handler.

  - contributing.md listed interface.go, serializer.go and deserializer.go
    as codegen output. There are four templates and none of them emits
    those; providers parse *http.Request themselves, which architecture.md
    already said on the same tree.

crud-engine.md contradicted itself: its protocol table served all five
protocols, and its Scope section two screens later said JSON-only across 46
services. The Scope section was left over from before rest-json landed and
is gone.

compatibility-policy.md said 193 model-backed services and 12 without.
Parsing manifest_gen.go gives 194 and 11 — the figures corrected in #150
were themselves off by one.

The 285-row evidence table in demand.md is untouched: TestDemandSetIsRegistered
parses it, and it is a record of a sample rather than prose.

Verified: all five doc gates pass, every relative link in the tree resolves,
go test ./cmd/... is green.
@github-actions github-actions Bot added the documentation Improvements or additions to documentation label Sep 6, 2026
Release notes come from Changie fragments, not commits, so a docs change
that ships inside the release archive needs one. The issue number is the
PR's, which is why this lands after the PR exists rather than with the
work.
@skyoo2003
skyoo2003 merged commit acf3eba into main Sep 6, 2026
8 checks passed
@skyoo2003
skyoo2003 deleted the docs/concise-rewrite branch September 6, 2026 09:44
skyoo2003 added a commit that referenced this pull request Sep 6, 2026
… do (#152)

* docs: changelog entries told the whole story where one sentence would do

RELEASE.md asked for "a one-line body" and nothing enforced it, so entries
grew into paragraphs: root cause, mechanism, evidence and rejected
alternatives, all of which the linked issue already holds. The v1.1.0 notes
ran 38 entries over 19KB, and a reader deciding whether the release affects
them had to read a design document to find out.

The fragment section now states the rule outright — one sentence, two only
for a caveat a reader must not miss, never a third — with a too-long and a
right-length body shown side by side, and the pre-flight checklist gained a
line for it. Every entry in v1.1.0, v1.0.0 and the unreleased #151 fragment
is rewritten to that limit; v0.2.0 and v0.1.0 already met it. CHANGELOG.md is
regenerated with `changie merge`.

The v1.1.0 and v1.0.0 GitHub Release bodies were republished from their
`changes/<tag>.md` files, so the published notes and the repo still agree.

* docs: add the changelog fragment for #152
skyoo2003 added a commit that referenced this pull request Sep 6, 2026
…153)

#152 stated the rule in RELEASE.md and added a pre-flight checklist line, but
the only enforcement was a manual checkbox read once per release — and the rule
was invisible where a contributor actually lands: CONTRIBUTING.md and the PR
checklist both linked RELEASE.md without saying what the rule is.

`.changie.yaml` now sets `body.maxLength: 400`, which `changie new` refuses to
exceed (401 characters rejected, 398 accepted). It is a ceiling for the
two-sentence case rather than a target, and it does not see a hand-written
fragment — both stated in RELEASE.md beside the rule. CONTRIBUTING.md and the
PR checklist state the rule and link the section directly.

The unreleased #151 fragment ran 482 characters, over the new cap; it is
shortened to 397 with nothing dropped. The #152 fragment covers the cap and the
two added surfaces.
@skyoo2003 skyoo2003 mentioned this pull request Sep 6, 2026
1 of 5 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant