Skip to content

Docs-site runbook goes internal; Coach API scope tables match the resolver - #43

Merged
DrAlexHarrison merged 2 commits into
mainfrom
docsops
Sep 19, 2026
Merged

DrAlexHarrison merged 2 commits into
mainfrom
docsops

Conversation

@DrAlexHarrison

Copy link
Copy Markdown
Member

What changes on the site

  • /guides/deployment leaves the public site. It carried the DNS record, the Cloudflare proxy rule, the Mintlify rebuild steps and the docs.json settings for docs.saturday.fit itself, and named the docs repository: operator material, not something a partner building against the API needs. /guides/documentation takes its place with one paragraph: where the docs are published, that they describe the current /v1 API and the API root links back to them, where the llms.txt files are, and how to report a documentation error. A docs.json redirect keeps /guides/deployment resolving; nothing else on the site linked to it.
  • Coach API scope section matches the resolver. The old table omitted reports:read entirely and left org:admin out of every row, so a coach could not see that org:admin reaches the whole surface or that reports:read alone opens the report routes. Two tables now, built from fuel-backend pkg/coachscope/capabilities.go and the /v1/coach/* route registrations in cmd/partner-api: capability to OAuth scope to the exact endpoints, and API-key scope to the capabilities it confers, all seven scopes plus the legacy *. It also states that reading config takes the same capability as writing it, which the route gates enforce.

Where the runbook went

DEPLOY.md at the repository root, with a pointer from the README. The repository is public, so the file stays readable in git and in history; nothing in it is a secret (the CNAME target is what dig answers, the colors are in docs.json). It is off the published site and out of llms-full.txt.

Checks, run locally on this tree

Check Result
scripts/check-docs-drift.py --backend fuel-backend@01e0c7e clean, 121 spec operations, 16 webhook events
scripts/check-engine-constants.py clean
scripts/test-response-examples.py passed
npx mint@latest validate build validation passed
npx mint@latest broken-links --check-anchors --check-external no broken links

CI

The Docs Drift workflow asks for the self-hosted runner, which does not take jobs from this public repository, so its run queues indefinitely rather than failing. The drift check above is that same script run locally against fuel-backend main. Engine Constants and its self-test are the runs to watch.

🤖 Generated with Claude Code

https://claude.ai/code/session_01K9f7KoPEPs8FXwBT8vAduy

guides/deployment.mdx carried the DNS record, the Cloudflare proxy rule,
the Mintlify rebuild steps and the docs.json settings for docs.saturday.fit
itself, and named the docs repository. That is operator material, not
something a partner building against the API needs. It now lives in
DEPLOY.md at the repository root, with a pointer from the README.

The public page is replaced by guides/documentation.mdx, one paragraph on
where the docs are published, that they describe the current /v1 API and
that the API root links back to them, where the llms.txt files are, and how
to report a documentation error. docs.json navigation points at the new
page and a redirect keeps /guides/deployment resolving.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K9f7KoPEPs8FXwBT8vAduy

Ci-From: linux
Ci-Session: f2e28bc2-ac58-48e1-a2b8-39bf8e777e80
The scope table omitted reports:read entirely and left org:admin out of
every row, so a coach reading it could not see that org:admin reaches the
whole surface or that reports:read alone opens the report routes. The
section now carries two tables built from pkg/coachscope/capabilities.go
and the /v1/coach/* route registrations: capability to OAuth scope to the
exact endpoints, and API-key scope to the capabilities it confers, all
seven scopes plus the legacy "*". It also states that reading config takes
the same capability as writing it, which the route gates enforce.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K9f7KoPEPs8FXwBT8vAduy

Ci-From: linux
Ci-Session: f2e28bc2-ac58-48e1-a2b8-39bf8e777e80
@DrAlexHarrison
DrAlexHarrison merged commit 9c3c675 into main Sep 19, 2026
3 of 5 checks passed
@DrAlexHarrison
DrAlexHarrison deleted the docsops branch September 19, 2026 21:30
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.

1 participant