Part of #73.
Spring AI has the smallest generated component of any candidate measured, and the audience that benefits most from version-pinned docs.
What upstream generates
spring-ai-docs/src/main/antora/resources/antora-resources/antora.yml, in full:
version: ${antora-component.version}
prerelease: ${antora-component.prerelease}
That is the entire template. The committed spring-ai-docs/src/main/antora/antora.yml declares name, version, title, nav and the collector — and no asciidoc.attributes block at all. Synthesis reduces to writing a descriptor with the version in it.
Attribute references in the pages
23 distinct {...} references across the corpus, of which exactly one — {spring-ai-version}, used once — is a build attribute. The rest ({format}, {subject}, {context}, {voice}, ...) are prompt-template placeholders inside code samples, not AsciiDoc attributes.
Macro load at v1.0.0: configprop: 0, include-code:: 0, include:: 1, javadoc: 1. 109 pages, a single ROOT module.
Why it is worth doing despite being small
This is the case the product exists for. Spring AI's API moves fast enough that a model's training data is reliably stale, and product.md names LLM tooling as the primary consumer. 109 pages of correct, version-pinned API surface is worth more per byte here than anywhere else in the ecosystem.
Open question to settle first
Tags run v1.0.0 through v2.0.1. The layout was probed at v1.0.0 only — whether 2.x moved the component, changed the collector, or altered the module structure is unverified. Probe spring-ai-docs/src/main/antora/antora.yml at v2.0.0 before choosing minimumVersion; a difference means two eras, as Boot has.
Work
Depends on the synthesized-assembly refactor in the Framework issue: Spring AI has no BOM script, no static attributes file and no metadata jars either, so it needs the same relaxed SynthesisSources.
Part of #73.
Spring AI has the smallest generated component of any candidate measured, and the audience that benefits most from version-pinned docs.
What upstream generates
spring-ai-docs/src/main/antora/resources/antora-resources/antora.yml, in full:That is the entire template. The committed
spring-ai-docs/src/main/antora/antora.ymldeclaresname,version,title,navand the collector — and noasciidoc.attributesblock at all. Synthesis reduces to writing a descriptor with the version in it.Attribute references in the pages
23 distinct
{...}references across the corpus, of which exactly one —{spring-ai-version}, used once — is a build attribute. The rest ({format},{subject},{context},{voice}, ...) are prompt-template placeholders inside code samples, not AsciiDoc attributes.Macro load at v1.0.0:
configprop:0,include-code::0,include::1,javadoc:1. 109 pages, a singleROOTmodule.Why it is worth doing despite being small
This is the case the product exists for. Spring AI's API moves fast enough that a model's training data is reliably stale, and
product.mdnames LLM tooling as the primary consumer. 109 pages of correct, version-pinned API surface is worth more per byte here than anywhere else in the ecosystem.Open question to settle first
Tags run v1.0.0 through v2.0.1. The layout was probed at v1.0.0 only — whether 2.x moved the component, changed the collector, or altered the module structure is unverified. Probe
spring-ai-docs/src/main/antora/antora.ymlat v2.0.0 before choosingminimumVersion; a difference means two eras, as Boot has.Work
aientry toPROJECTStests/unit/upstream-sources.test.ts--strictNOTICE— it is not currently listed, unlike Framework/Security/Data/CloudDepends on the synthesized-assembly refactor in the Framework issue: Spring AI has no BOM script, no static attributes file and no metadata jars either, so it needs the same relaxed
SynthesisSources.