US09-01 — Serve the Documentation Inside the Application #102
Notifications
Due Date
No due date set.
Blocks
#103 US09-02 — Write the Installation and Operations Manual
domverse/photoanalyzer
#104 US09-03 — Write the Architecture Overview
domverse/photoanalyzer
#105 US09-04 — Write the User Manual with Generated Screenshots
domverse/photoanalyzer
#106 US09-05 — Automate Documentation Acceptance
domverse/photoanalyzer
Reference: domverse/photoanalyzer#102
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Source specification: delivery_backlog/stories/US09-01-docs-in-app.md
US09-01 — Serve the Documentation Inside the Application
Epic: E09
As an operator who was handed a URL and an access secret, I want the manuals inside the
application I am looking at, so that understanding it does not require a repository
checkout or an internet connection.
Acceptance criteria
docs/, with an index that names every page andthe order it is meant to be read in. The same files render on Gitea without
modification.
/docsview reachable from the main navigation, listing thepages and rendering the selected one.
frontend/js/vendor/. It is not fetched from a CDN, not bundled by a build step, andnot written by hand. The build records the version and a checksum of the vendored file.
mermaidfenced blocks render as diagrams. Mermaid is vendoredthe same way.
script-srcin the Content-Security-Policy is unchanged: no'unsafe-eval', no'unsafe-inline'. Onlystyle-srcgains'unsafe-inline', and the reason is recordedwhere the policy is defined.
../foo.md#sectionlink navigatesto that page and heading rather than downloading a file or leaving the application.
Every heading has a stable anchor, and a deep link to an anchor scrolls to it.
the index, and never exposes a filesystem path.
the rest of the application — whichever is chosen is stated explicitly in the story's
implementation notes and covered by a test, because an operator locked out by a
configuration mistake is exactly who needs the troubleshooting page.
Automated tests
relative markdown links into in-app routes.
docs/is reachable from the index; everyinternal link in every document resolves to a file and, where an anchor is given, to a
heading that exists; the vendored library files match their recorded checksums.
an anchor, renders a mermaid diagram to an SVG, and shows the not-found message for an
unknown page — all with zero console errors and zero CSP violations, asserted, not
eyeballed.
Dependencies
Claimed for implementation on branch
us/US09-01-serve-the-documentation-inside-the-application.Submitted for review: #107
Tests passed:
work_item/scripts/python -m unittest discover -s work_item/tests -vwork_item/scripts/python -m pytest tests -qwork_item/scripts/python -m pytest tests/integration/test_documentation.py tests/e2e/test_docs_ui.py -qCompleted and merged via PR #107.