Repository navigation
docs: publish the generic ChurchTools reference as a Handbuch section (#89) - #93
Merged
Merged
Conversation
…#89) `docs/` mixed two audiences: a generic ChurchTools reference that belongs in the Handbuch's "ChurchTools-Grundlagen" section, and developer/operator material that does not. Split them by location, so the publishing rule is mechanical — a page publishes only if it lives under `docs/handbuch/` and is reachable from that section's own nav. - Move `permissions.md`, `dynamic-groups.md`, `field-definitions.md` and `blueprints.md` into `docs/handbuch/`; `api-coverage.md`, `group-field-decisions.md`, `runbook-manual-surface.md` and `superpowers/` stay behind, unpublished. - Add `docs/handbuch/mkdocs.yml` (mini section config, mirroring the Betrieb section's shape), `index.md`, and a pinned `requirements.txt` in lockstep with the connector's docs toolchain. - Adopt the estate-wide staleness workflow: each page declares the `src/` it documents in `sources:` and signs it with `sources_hash`; `.github/workflows/ docs.yml` runs the strict mkdocs build plus `eqrm/churchtools-connector/.github/workflows/docs-staleness.yml`. The four signatures were cross-checked against the canonical PHP `SourcesHasher`. - Rewrite every referrer (src comments, examples, tests, README, sibling docs); links that leave the published section become absolute GitHub URLs so the pages read correctly both on GitHub and in the built site. Language mismatch (English pages in a German Handbuch) is deliberate and flagged in `index.md` — the follow-on content epic decides translate vs. relocate. Claude-Session: https://claude.ai/code/session_01KPxjSEkqMiU7WE3vg6C3am
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.
Closes #89.
docs/was mixing two audiences. This splits them by location, so the publishing rule is mechanical rather than a judgement call: a page publishes only if it lives underdocs/handbuch/and is reachable from that section's ownmkdocs.ymlnav.What moved
docs/handbuch/)docs/)permissions.md,dynamic-groups.md,field-definitions.md,blueprints.mdapi-coverage.md,group-field-decisions.md,runbook-manual-surface.md,superpowers/docs/churchtools-reference/from the issue's scope does not exist in this repo — nothing to move.What was added
docs/handbuch/mkdocs.yml— mini section config, same shape as the connector's Betrieb section (docs_dir: .,strict: true,exclude_docs: mkdocs.yml), ready for the!includein eqrm/churchtools-connector#1115.docs/handbuch/index.md— section overview, plus a table locating the three documentation layers (generic CT behaviour here / instance structure inct-structure/ connector how-tos in the Handbuch).docs/handbuch/requirements.txt— pinned in lockstep with the connector'srequirements-docs.txt, so the section renders identically here and in the consuming site.docs/README.md— states the published-vs-unpublished rule and how to re-sign a page..github/workflows/docs.yml— two gates: the strict mkdocs build, and the reusable estate-wide staleness checker (eqrm/churchtools-connector/.github/workflows/docs-staleness.yml@main,docs-path: docs/handbuch,secrets: inherit).Staleness bindings
Each page declares the code it documents and signs it:
sources:permissions.mdsrc/permissions/**,src/resolve/resolver.ts,src/resolve/refs.ts,src/config/context.tsdynamic-groups.mdsrc/config/query.ts,src/config/query-refs.ts,src/engine/dynamic.ts,src/engine/synthetic.ts,src/commands/adopt-group.tsfield-definitions.mdsrc/commands/get.ts,src/api/ctClient.tsblueprints.mdsrc/config/context.ts,src/engine/graph.ts,src/engine/hierarchy.tsindex.mdcarriessources: []+ an exempt reason (links and framing only).All four
sources_hashvalues were computed here and then cross-checked against the canonical PHP implementation (App\Services\Docs\SourcesHasherrun against this checkout) — identical, including file counts.Verification
mkdocs build -f docs/handbuch/mkdocs.yml --strict→ clean. Getting there meant absolutizing links that leave the section (../src/...,../examples/..., the unpublishedgroup-field-decisions.md) tohttps://github.com/eqrm/ct-cli/blob/main/..., so the pages read correctly both on GitHub and in the built site.src/**comments,examples/**,tests/**,README.md, siblingdocs/**.docs/superpowers/plans/is deliberately untouched — those are historical records of what was done at the time.npm run lint,npm run typecheck,npm test(570 passed, 5 skipped) → green.site/added to.gitignore.Known, deliberate
Language mismatch: these pages land in the German Handbuch while being English. Per the issue, they are placed now and flagged —
index.mdcarries an admonition pointing at #89, and the section config setslanguage: enso search and UI chrome at least match the page text while the mismatch stands. The follow-on content epic decides translate vs. move to Betrieb.First CI run caveat: the
stalenessjob needs the org-levelAPP_ID/APP_PRIVATE_KEYto be visible to this repo (that is whatsecrets: inheritpasses through). If they are not, that job fails oncreate-github-app-tokenwith "Input required and not supplied" — a repo-settings fix, not a code one.https://claude.ai/code/session_01KPxjSEkqMiU7WE3vg6C3am