Skip to content

Drop 16 MB of unused binaries from the published site, and fix the linter command - #154

Merged
oblomov-dev merged 9 commits into
mainfrom
claude/repo-analysis-structure-0wpt5q
Aug 18, 2026
Merged

Drop 16 MB of unused binaries from the published site, and fix the linter command#154
oblomov-dev merged 9 commits into
mainfrom
claude/repo-analysis-structure-0wpt5q

Conversation

@oblomov-dev

Copy link
Copy Markdown
Member

Part of an ecosystem-wide audit of the abap2UI5 and cap2UI5 repositories.

  • docs/public/ is copied verbatim into the build, so four presentation sources were downloadable from the live site on every deploy, linked from nothing: Präsentation1.key (4.5 MB), diagram_old.key (7.4 MB), logo.pptx (3.3 MB), logo/logo_pp.key. Verified unreferenced by grep first. docs/public went from 25 MB to 8.7 MB. diagram.md went with them — markdown under public/ is never routed by VitePress, so it was unreachable except by guessing the raw URL, and its content was authoring scratch (Excalidraw share links, published to every visitor) plus an image from the renamed abap2UI5-documentation.
  • npx abap2ui5lint src under the words "no install" resolves a package literally named abap2ui5lint. abap2ui5lint is the bin name; the package is @abap2ui5/linter. Fixed in all three places it appeared, with a note on why the bin name legitimately survives in the config file, the baseline and the waiver comments. Prose normalised to "abap2UI5 linter" across six pages.
  • Dead repository names: abap2UI5-web and web-abap2ui5-samples do not exist. The tooling repository is abap2UI5/web-abap2UI5, the artifact web-abap2UI5-build. One of the existing live-demo links was a 404, which is why nothing in the ecosystem appeared to link the demo. A tip block on get_started/quickstart.md — the page a reader without a system lands on — now does.
  • The configuration/troubleshooting.md page carried the H1 "Debugging" next to a real cookbook/troubleshooting/common_failures. Renamed to debugging.md, and because the old URL has been public since 2023 and is linked from outside this organisation, a redirect page keeps it alive (VitePress has no redirect mechanism; files under public/ are copied verbatim).
  • A count nothing gated: a config comment said 615 working apps where the gated page says 614. Replaced with a figure-free comment pointing at the gated page.
  • The Contribution/Sponsor entries are byte-identical in nav and sidebar, so a replace-first edit hits the wrong one — AGENTS.md documented that trap; the lines now carry // nav / // sidebar markers so it is not a trap any more.
  • README and AGENTS.md both carried the checks table and the llms explanation; AGENTS.md keeps the long form, the README a self-sufficient short one.
  • The site's llms.txt now points at the framework's code map, which already pointed here. Two files with the same name and a one-way link read as a mistake rather than a pair.

npm test 3/3, docs:build 126 pages no dead links, check:examples 46 classes 0 findings, check:samples up to date, check:counts 4/4. check:version is partial — the release API returns 403 through the sandbox proxy, so "matches the actual release" is unverified there; the three in-repo places agree on 1.143.0.


🤖 Generated with Claude Code

https://claude.ai/code/session_01PLDFPfAK1MGq6qHeC6KKWH


Generated by Claude Code

claude added 9 commits August 18, 2026 07:07
docs/public/ is copied into dist/ verbatim, so everything under it is on
the public site whether a page links it or not. Four presentation source
files were: Präsentation1.key, diagram_old.key, logo.pptx and
logo/logo_pp.key. Nothing in docs/ references any of them - they are the
sources somebody exported a diagram from once, shipped to every visitor
ever since. docs/public drops from 25 MB to 8.7 MB.

media/diagram.md goes with them. It is markdown under public/, so
VitePress never routed it - the only way to read it was to guess the raw
URL - and it was checked in through a deliberate .gitignore exception.
The content is authoring scratch: four Excalidraw share links (editable
by anyone holding them) and an image hosted under abap2UI5/
abap2UI5-documentation, a repository that no longer exists. There is no
page it belongs to and no reader it serves, so it is deleted rather than
rehomed, and the .gitignore exception that carried it goes too.

Co-Authored-By: Claude <noreply@anthropic.com>
Three repository names in the pages were renamed away and nothing
followed them: abap2UI5-web is now abap2UI5/web-abap2UI5 (the downport,
transpile and webpack tooling), and web-abap2ui5-samples is now
abap2UI5/web-abap2UI5-build, the deployed artefact that GitHub Pages
serves. The one reader-facing link among them - "run the samples in your
browser" on What's Next - was therefore a 404, which is the worst place
for one: it is the escape hatch for somebody who has no system to install
on.

Also give the demo the place it never had. Quickstart is where a reader
without a system arrives, and it opened by telling them to install
abapGit. It now opens with the live demo instead: the whole stack -
framework, backend, samples - transpiled into the browser tab against an
in-memory database, rebuilt daily from main.

Co-Authored-By: Claude <noreply@anthropic.com>
`npx abap2ui5lint src` stood under the words "no install". Without an
install there is nothing named `abap2ui5lint` to run: that is the bin this
package installs, the package itself is `@abap2ui5/linter`, and npx given
a bare name fetches whatever is registered under it - somebody else's
package, run against the reader's source, on the page that told them it
was safe to do so. Both remaining npx lines (`--fix`, `--update-baseline`)
had the same shape and get the same correction, and a note now says why
the command name and the package name differ, since the config file, the
baseline and the in-source waivers all keep the bin name.

The prose called it "abap2UI5-linter", which is neither the repository
(abap2UI5/linter) nor the package. Settled on "abap2UI5 linter" for prose
across all six pages, the sidebar entry and the dependabot comments;
`@abap2ui5/linter` stays the package, abap2UI5/linter the repository link.

Co-Authored-By: Claude <noreply@anthropic.com>
…ount

Two things in config.mjs that an edit could get wrong.

`Contribution` and `Sponsor` were byte-identical in themeConfig.nav and in
themeConfig.sidebar, so a replace-first edit hit whichever came first and
looked like it had worked. AGENTS.md documented the trap and told you to
verify against the built config, which is a warning where a fix fits: the
four lines now carry a `// nav` or `// sidebar` marker and each is unique.
AGENTS.md says to match on the marker instead.

The comment over the Sample Catalogues entry claimed "615 working apps in
three repositories". resources/samples.md says 614 - 152 + 430 + 32 - and
check:counts verifies those four figures against the catalogues on every
run. The comment was the one copy nothing checked, and it was already
wrong. It no longer carries a figure, and says where the checked ones live.

Co-Authored-By: Claude <noreply@anthropic.com>
docs/configuration/troubleshooting.md carried the H1 "Debugging" and was
linked from the sidebar as "Debugging" - only the file name said
troubleshooting, and it said it next to a real troubleshooting page,
cookbook/troubleshooting/common_failures. Two names for one page is a
guess every time somebody looks for it; three when one of them belongs to
something else. The file is now debugging.md and all three agree.

Two links pointed at the old path - the sidebar entry and the Developer
Tools link on common_failures - and both follow. The published URL moves
from /configuration/troubleshooting to /configuration/debugging; nothing
in the organisation links the old one.

Co-Authored-By: Claude <noreply@anthropic.com>
README.md and AGENTS.md both carried a table of the six checks and both
explained the three generated llms artefacts, in near-identical wording.
Two copies of a description that is already load-bearing means the next
change to a check lands in one of them, and the reader who happens to open
the other gets a confident wrong answer.

AGENTS.md keeps the long form - it is the file an agent is required to
read, and the check descriptions sit next to the skip behaviour of
check:samples and check:counts, which is what an agent gets wrong. README
now names all six in a sentence, says what a green run means, and points
at AGENTS.md for the detail. It still stands on its own for an outside
contributor: what the repository is, how to start it, and roughly what CI
will hold them to.

Co-Authored-By: Claude <noreply@anthropic.com>
The previous commit renamed configuration/troubleshooting.md to
debugging.md so that the file name, the H1 and the sidebar entry finally
agree. That is right for the page, but the old URL has been published
since 2023 and is linked from outside this organisation - blog posts, SAP
Community answers, bookmarks - where nobody can fix it. Renaming a public
documentation page without leaving something behind turns those links
into 404s for a cosmetic gain.

VitePress has no redirect mechanism, and files under public/ are copied
into the build verbatim, so the redirect is a hand-written page rather
than a config entry. Verified in the build output: dist/configuration/
now carries both debugging.html and troubleshooting.html.

Co-Authored-By: Claude <noreply@anthropic.com>
Two files in this ecosystem are called llms.txt: this one, generated from
the documentation, and the one in the framework repository that maps the
source - the src/ layering, the public API, where each concept is
implemented. They serve different readers on purpose, and the framework's
copy already says so and links here.

The link only went one way. An agent that found the documentation first -
which is the likelier direction, since llms.txt is a web convention and
this is the copy served from a site - had no way to learn the other half
exists, and the two same-named files read as a mistake rather than a
pair.

Co-Authored-By: Claude <noreply@anthropic.com>
The LICENSE named 2023 alone, which stops being true every January. It
now follows abap2UI5's own form, which keeps the true first year and does
not need an annual edit nobody remembers to make.

Co-Authored-By: Claude <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings August 18, 2026 08:15

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@oblomov-dev
oblomov-dev merged commit f90fa6c into main Aug 18, 2026
1 check passed
@oblomov-dev
oblomov-dev deleted the claude/repo-analysis-structure-0wpt5q branch August 18, 2026 08:36
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.

3 participants