Skip to content
This repository was archived by the owner on Aug 10, 2026. It is now read-only.

docs: adopt the Krateo Documentation Standard - #51

Merged
braghettos merged 3 commits into
mainfrom
docs-standard
Aug 7, 2026
Merged

docs: adopt the Krateo Documentation Standard#51
braghettos merged 3 commits into
mainfrom
docs-standard

Conversation

@braghettos

Copy link
Copy Markdown
Collaborator

Converts rest-dynamic-controller to the Krateo Documentation Standard at pilot depth (reference: the merged snowplow pilot).

What's here

  • The invariant bundle: thin fixed-skeleton README.md + docs/{index,overview,usage,configuration,api,examples,release,log}.md + docs/llms.txt (pinned 0.20.0) + one runnable example (examples/sample-resource/), all with OKF frontmatter.
  • Nothing survived unverified — the old README was re-derived from source and had drifted:
    • REST_CONTROLLER_WORKERS documented default 1, actual 5 (main.go:72)
    • REST_CONTROLLER_RESYNC_INTERVAL documented 1m, actual 3m (main.go:75)
    • REST_CONTROLLER_MAX_ERROR_RETRY_INTERVAL documented 30s, actual 90s (main.go:90)
    • the env table omitted the startup-required REST_CONTROLLER_SERVICEACCOUNT_NAME/_NAMESPACE pair (main.go:130 hard-fails without them) and the entire snowplow/authn (URL_SNOWPLOW, URL_AUTHN, token path) and OTel surface — docs/configuration.md now carries the full verified table
    • dead-org purge: github.com/krateoplatformops/oasgen-provider links, the doc.crds.dev/...krateoplatformops... reference and org: krateoplatformops in the usage example are gone
    • the two architecture mermaid diagrams were verified (the "plugin/wrapper" scenario is the OAS operation-level servers override in internal/tools/client/restclient.go) and preserved in docs/overview.md
  • docs/api.md documents the contract RDC actually executes: the RestDefinition verb surface (fieldMapping/resolvers/transforms, pagination, notFoundCodes/notFoundBody, async Models A/B, RESTAction delegation refs, the three compareScope modes), the <Kind>Configuration auth contract (basic/bearer/apiKey, whitespace-trimmed Secrets), status/conditions/events, and the self-provisioned per-CR secretRef RBAC.
  • Example mirrors the repo's own integration testdata (ConfigMap-hosted OAS + RestDefinition + bearer-auth Sample CR) with honest preconditions (the bundled mockserver implements the API); manifests are YAML-validated.
  • CI: the shared lint-docs conformance check is wired into release-pullrequest.yaml; the extracted linter passes locally with 0 errors / 0 warnings.

🤖 Generated with Claude Code

https://claude.ai/code/session_01LJsLqtryCgWwEt8FnPE1se

braghettos and others added 3 commits August 7, 2026 06:47
Replace the single drifted README with the invariant bundle (README +
docs/{index,overview,usage,configuration,api,examples,release,log}.md +
docs/llms.txt + examples/sample-resource/), every claim re-derived from
current source:

- the old README's env table diverged from main.go (workers 1 vs 5,
  resync 1m vs 3m, max-error-retry-interval 30s vs 90s) and omitted the
  hard-required REST_CONTROLLER_SERVICEACCOUNT_NAME/_NAMESPACE pair plus
  the whole snowplow/authn and OTel surface; configuration.md now carries
  the full verified flag/env table
- dead-org purge: krateoplatformops links (oasgen-provider README,
  doc.crds.dev) and the krateoplatformops org in the usage example are gone
- api.md documents the executed RestDefinition surface (verbs, fieldMapping,
  async A/B, RESTAction delegation, compareScope), the Configuration auth
  contract, status/conditions/events and the self-provisioned secretRef RBAC
- runnable example mirrors the integration testdata (mock CRUD API via
  ConfigMap-hosted OAS + bearer-auth Sample CR)
- wire the shared lint-docs conformance check into PR CI

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LJsLqtryCgWwEt8FnPE1se
- api.md: drift rewrites the Ready condition REASON (Resource is not
  up-to-date due to ...), not the message (restResources.go:399-401;
  condition.Unavailable() carries no message)
- release.md: since the #50 migration release-tag.yaml's build job no
  longer needs test — the jobs start in parallel, so the suite runs on
  every tag but does not currently gate the image push
- log.md: successCodes/tolerateCodes/notFoundCodes, static
  headers/queries and the async Model A engine first shipped in 0.10.0
  (KOG M5/WS-B, 2026-07-10/11), not <=0.9.x
- examples/sample-resource/README.md: the mockserver authenticates the
  bearer token 'test' (mockserver authenticate()), it does not accept
  any bearer token

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LJsLqtryCgWwEt8FnPE1se
…ionFailed event, dead-org comment

Re-verified the whole bundle against source: api.md claimed the Model B async
operation handle is parked in status — it lives in the krateo.io/async-operation-*
annotations (async_requeue.go), now documented, along with the AsyncOperationFailed
Warning event the events list omitted; release-tag.yaml's stale braghettos/ chart-repo
comment corrected (the script itself already derives the org from GITHUB_REPOSITORY).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LJsLqtryCgWwEt8FnPE1se
@braghettos
braghettos merged commit 217ccd0 into main Aug 7, 2026
14 checks passed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant