feat: docs-check, the first local tool, enforcing docs/schema.yaml #8

Merged
beddari merged 1 commit from docs-check into main 2026-09-17 19:34:44 +00:00
Owner

docs/schema.yaml is the human-managed page schema and bounding rules for docs/; tools/cmd/docs-check enforces it (make docs-check). Ported from the docs site's Structured MADR validator and cut down to one repository: no JSON Schema, every rule an error, unknown schema keys are errors.

  • First Go in the repository: tools/ is one module on go.work (cmd/<name> wiring, internal/ logic, tests beside the code). Protected path, like the Makefile.
  • One make tools installs the pinned external tools and builds the local ones into _bin/ (renamed from _tools/bin).
  • ADR 0001 (proposed) for the one dependency, gopkg.in/yaml.v3. Flip to accepted here if you agree.
  • LICENSE (AGPL-3.0) added, required by the source-standards skill now that Go code lands.
  • Verified: go vet, gofmt, 25 Go test cases, 47 extension tests, make docs-check green on 14 pages, seven broken variants each fail by rule name.
  • Protected paths changed: Makefile, tools/, workflows/, skills/, .forgejo/, docs/decisions/, docs/schema.yaml. Human review required; no attestation tag, so validate-attestation fails by design.
  • Watch out: release.yaml triggers on go.work, so merging starts a Sentral release job that waits for a fabrikk-release runner that does not exist. Cancel it, or narrow the trigger first.
`docs/schema.yaml` is the human-managed page schema and bounding rules for `docs/`; `tools/cmd/docs-check` enforces it (`make docs-check`). Ported from the docs site's Structured MADR validator and cut down to one repository: no JSON Schema, every rule an error, unknown schema keys are errors. - First Go in the repository: `tools/` is one module on `go.work` (`cmd/<name>` wiring, `internal/` logic, tests beside the code). Protected path, like the Makefile. - One `make tools` installs the pinned external tools and builds the local ones into `_bin/` (renamed from `_tools/bin`). - ADR 0001 (proposed) for the one dependency, `gopkg.in/yaml.v3`. Flip to accepted here if you agree. - `LICENSE` (AGPL-3.0) added, required by the source-standards skill now that Go code lands. - Verified: `go vet`, `gofmt`, 25 Go test cases, 47 extension tests, `make docs-check` green on 14 pages, seven broken variants each fail by rule name. - Protected paths changed: `Makefile`, `tools/`, `workflows/`, `skills/`, `.forgejo/`, `docs/decisions/`, `docs/schema.yaml`. Human review required; no attestation tag, so `validate-attestation` fails by design. - Watch out: `release.yaml` triggers on `go.work`, so merging starts a Sentral release job that waits for a `fabrikk-release` runner that does not exist. Cancel it, or narrow the trigger first.
feat: docs-check, the first local tool, enforcing docs/schema.yaml
Some checks failed
validate-attestation / validate (pull_request) Failing after 3m0s
7a10fb3180
docs/schema.yaml is the human-managed page schema and bounding rules for docs/, ported from the Dataverket docs
site's validator policy. tools/cmd/docs-check enforces it at tier 0: closed folders and files, fields per page type,
type by folder, allowlists, formats, ADR filename, sections and related targets, one overview per product, index
links, and code-map coverage of every tracked steering path. An unknown schema key is an error. Ported from the
site's Structured MADR validator (Go) and cut down to one repository, no JSON Schema, every rule an error.

This is the first Go in the repository. tools/ is one module on go.work, laid out as cmd/<name> wiring over
internal/ logic with tests beside the code, and is a protected path like the Makefile: verification code runs from
the branch under review. One `make tools` installs the pinned external tools and builds the local ones into _bin/
(was _tools/bin). ADR 0001 covers the one dependency, gopkg.in/yaml.v3; LICENSE (AGPL-3.0) arrives with the first
Go file, as the source-standards skill requires.
beddari deleted branch docs-check 2026-09-17 19:34:44 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
dataverket/fabrikk!8
No description provided.