docs(onboarding): lead the README with a first PDF, then route by task - #690
Merged
Merged
Conversation
The README carried three competing "what next" lists — "Start here" before the install section, "Choose a longer path only when you need it", and "Learn only what you need" — each routing to the same four destinations with different wording. A reader had to pick a documentation structure before picking a task. Two of the six shipped template families had nowhere to be found from the onboarding path: receipt appeared only on a contributor architecture page, and rota appeared nowhere outside the generated knowledge pack, while which-template-system.md still said no rota template existed — CobaltRota has shipped since. There was no page that listed the families at all. - Collapse the three README lists into one "What to read next" table whose rows are the four destinations: Recipes, Templates, Testing, Production. - Add docs/templates/README.md as the single Templates door: the six families grouped as business (invoice, proposal, receipt, rota) and profile (CV, cover letter), with preset counts and the data package each takes. Presets within a family take different spec types, so the table names the package and points at create() for the exact type. - Define DSL / preset / template once, on that page, and stop calling templates "presets built on the DSL" in getting-started. - Name the DSL sense of module() where it is introduced; the README used the same word for a Maven artifact eight lines earlier. - Correct which-template-system.md: WeeklyScheduleTemplateV1 maps to CobaltRota, which has create() only and takes StructuredRotaDocumentSpec. - Fold architecture, contributing and ADRs into one collapsed block in the docs index so the learning path and task table lead. - Regenerate the claims and proofs indexes, stale since the develop merge. Verified: core documentation guards 48 green (DocumentationLinkGuard, RecipeCatalogueGuard, CanonicalSurfaceGuard, DocumentationCoverage, VersionConsistencyGuard, PackageMapGuard), qa 18 green (DocumentationExamplesTest, DocumentationSnippetCompileTest — which compiles the README snippets). check-claims 46 claims / 10 proofs current, check-routes and check-stability-doc green. Repo-wide relative-link audit falls from 27 broken to 11, all pre-existing in CHANGELOG history and one receipt AUTHORS.md path. Every anchor introduced resolves; every Java identifier named resolves except the removed 1.x types the migration table names on purpose.
The README rewrite moved the "which artifact?" table out of Installation into the collapsed "Output formats and optional modules" block and dropped the module list. Seven module READMEs (core, render-pdf, templates, testing, wrapper, bundle, emoji) were left with no inbound link, and all ten, plus four docs pages, still sent readers to a table that is no longer under #installation. - README: anchor the module table as #which-artifact and link each artifact in it, and the fonts and emoji companions, to its own README. - Module READMEs and the quickstart, using-templates, which-template-system and 2.0 migration pages: point their "which artifact?" links at #which-artifact. - examples/README.md: the Twin Output row no longer says the root README shows the PowerPoint render beside the PDF. - recipes.md: z-order is the zIndex argument of position(...), not a zIndex(...) call, and a row takes a narrower set of blocks than a section does. - recipes/tables.md: colSpan and rowSpan are DocumentTableCell methods. - recipes/charts.md: showGridLines and showTickLabels are the AxisSpec toggles; showCategoryLabels sits on the bar or line spec. - capabilities.md: buildPptx takes a Path; there is no no-argument overload. - templates/README.md: the invoice family takes three spec types, not two.
DemchaAV
added a commit
that referenced
this pull request
Sep 14, 2026
The README's twin-output section, removed in #690, was the only place that showed assets/readme/twin-output-pdf.png, twin-output-pptx.png and twin-output-editing.png. No example renders them and no page links them; the drift guard's list of raster figures was the last thing keeping them. Delete the three figures (about 830 KB) together with their entries in CommittedAssetDriftTest.RASTER_FIGURES, which has to match the files beside the preview folder exactly. The Twin Output PDF and PPTX previews under assets/readme/examples stay, as does the example that renders them.
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.
Why
The README put a tagline, a banner caption, five "Why GraphCompose" bullets and three collapsed install blocks (artifact matrix, fonts and emoji, distribution) ahead of the first line of code. It then ran through a styled hero, the PDF-and-PowerPoint figures, "What's new in 2.0", vector snippets, the architecture diagram and the scope-and-comparison section. Layout snapshots and visual diffs, which keep a production document from drifting, appeared in bullets and table rows but never as code. The hello world also called
module(...)just after the README had used "module" for Maven artifacts.Two of the six shipped template families had no route in. Receipt was named only on the layered-architecture page. Outside the CHANGELOG, rota appeared only in
which-template-system.md, which saidWeeklyScheduleTemplateV1had no template althoughCobaltRotaships. No page listed the families.Several task pages opened on history rather than a first example:
recipes/tables.mdon "Phase D of the v1.5 release",recipes/charts.mdon how aChartNodecompiles.operations/test-your-document.mdstill called the pixel pattern test-only, andauthoring-presets.mdpromised visual regression as a future phase, althoughPdfVisualRegressionships ingraph-compose-testing.What changed
README: one path, top to bottom
Hello.javaand the four calls.graph-compose-testing, aLayoutSnapshotAssertionstest andPdfVisualRegression.which-artifactanchor and links every artifact's README. The ten module READMEs, and the template, quickstart and migration pages, point their "which artifact?" links there.installation,hello-world,architectureandwhat-graphcompose-is-notstay as explicit anchors, so existing links still land.recipes/text-direction.mdandfonts/README.md;Docs index and first document
docs/README.mdhas a five-step learning path and an "I need to…" task table. Architecture, contributing and ADRs fold into one collapsed block.docs/first-document.mduses the README's program, names its four ideas and ends on a next-task table.getting-started.mdanddiagrams.mdname all six families.Templates
docs/templates/README.mdlists every family with its preset count, data package and starting guide: invoice 11, proposal 4, receipt 1, rota 1, CV 26, cover letter 15.create(). The invoice family alone uses three.v2-layered/README.mdgains the same families table and sends readers who only render to the overview.business-templates.mdandquickstart.mdsaygraph-compose-templatesis not part ofgraph-compose.which-template-system.mdmapsWeeklyScheduleTemplateV1toCobaltRota, which hascreate()only and takesStructuredRotaDocumentSpec.Recipes and capabilities
recipes.mdnow runs in three parts:recipes/charts.mdandrecipes/tables.mdopen with a quick start and a common-changes table.capabilities.mdadds multi-section documents, SVG icons and emoji, vector paths, sparklines, timelines, fixed width, per-page margins, translucency, keep-together, page previews, page zones, page references and the table of contents.buildPptxis listed with itsPathargument.operations/test-your-document.mdandauthoring-presets.mdsayPdfVisualRegressionis public. A new preset's checklist adds the layout snapshot and the pixel gate.examples/README.mdno longer says the README shows its PowerPoint render.knowledge/claimsandknowledge/proofsindexes are regenerated for therecipes/tables.mdline shift.Verification
DocumentationSnippetCompileTest, which compiles the README's threedoc-examplesnippets.extract-api --from-reactor --checkreports the surfaces current;check-stability-docpasses;check-claims --checkreports 46 claims and 10 proofs current;check-routesreports 5 routes holding up.javadoc:javadoc -pl :graph-compose-corereports BUILD SUCCESS, andgit diff --checkis clean.knowledge/tools/api-query, including those in table cells and in fences no test compiles. Inherited members were confirmed against the class declarations. Preset counts and data packages were checked againsttemplates/src/main/java.Notes for review
assets/readme/twin-output-{pdf,pptx,editing}.pngno longer appear on any page, butCommittedAssetDriftTeststill regenerates and checks them.Lane: docs. Touches the README,
docs/, the module READMEs,examples/README.mdand the regenerated knowledge indexes; no code.