Template for regulatory and standards knowledge bases published as Open Knowledge Format (OKF) bundles that Meerkat serves as CLI, MCP, or HTTP. It is the shape extracted from CRA-knowledge-base, generalised so every bundle in the series validates the same way.
A bundle built from this template holds concise original summaries with provision-level citations to primary sources. It never reproduces full legal instruments, rules, guidance documents, or standards.
| Path | Purpose |
|---|---|
kb.yaml |
Bundle manifest: slug, name, extension key (x-<slug>), allowed categories, top-level sections |
wiki/ |
The OKF bundle. index.md declares okf_version; every declared section has an index.md |
tools/validate.py |
Manifest-driven validator: frontmatter, extension key, categories, sections, links, footnotes, source register (unregistered ids, used_by drift, unused sources), coverage (by_category, by_type, gates with research-gap stubs), template-identical and near-identical bodies, repeated filler sentences, thin pages, quoted-string metadata, CITATION.cff, scaffold banners and README sections |
tools/test_validate.py |
Unit tests for the validator |
coverage.yaml |
Concept counts and coverage gates (pattern, expected, actual, status) |
sources.yaml |
Register of every primary source and the concepts that use it |
.github/workflows/validate.yml |
CI: tests and validation on every push and pull request |
docs/standards/ |
Release-notes standard KB-RNS-01 and its template |
CONTRIBUTING.md, SECURITY.md, NOTICE, LICENSE, CITATION.cff |
Contribution rules, reporting channel, source reuse terms, CC BY 4.0, citation metadata |
- Create the repository from this template.
- Edit
kb.yaml:slug,name,description,extension_key(x-<slug>), thecategoriesthe corpus needs, and thesectionsunderwiki/. - Create
wiki/<section>/index.mdfor every declared section, describing what belongs there. Nested directories may carry their ownindex.md. - Rewrite
README.md: scope, intended corpus, source policy, disclaimer, related bundles. - Update
CITATION.cff(title, URLs),NOTICE(reuse terms of the source families the bundle cites), andcoverage.yaml(gates withexpectedcounts where the corpus is finite,nullotherwise). - Set repository topics and enable private vulnerability reporting, which
SECURITY.mdrelies on. - Run the checks and commit. Ingestion starts afterwards, one sourced concept at a time.
python3 -m pip install -r requirements-dev.txt
python3 -m unittest tools/test_validate.py
python3 tools/validate.py wiki- The concept ID is the path under
wiki/without.md; there is noidfield. - Every concept carries the manifest's extension key with at least
checked_at; otherx-*keys are rejected. - Agent-generated content stays
status: draftuntil a human verifies it against the cited source.stablerequiresverified. - A standard claims presumption of conformity only with an OJEU citation reference.
- A missing official source is recorded as a research gap, never filled by inference.
- Superseded material is kept and marked
deprecated, not deleted. coverage.yamlandsources.yamlare updated in the same pull request as the concepts; the validator fails on drift.- A page that is not written yet carries
research_gap: true; gates count only written pages towardexpected, so a bundle cannot reportpasson stubs.
mk --kb-dir . search "<term>"
mk --kb-dir . show <section>/<concept>
mk --kb-dir . list --category law
mk --kb-dir . mcp serve
mk --kb-dir . http serve --port 4004The Markdown remains usable without Meerkat or any other tool.
- CRA-knowledge-base: Regulation (EU) 2024/2847, the origin of this template
- NIS2-knowledge-base: Directive (EU) 2022/2555 and its national transpositions
- CVD-knowledge-base: coordinated vulnerability disclosure, the CVE Program, CSAF, VEX and scoring
- AI-Act-knowledge-base: Regulation (EU) 2024/1689 as amended
- Conformity-Assessment-knowledge-base: the New Legislative Framework, modules, accreditation and notified bodies
- Software-Supply-Chain-knowledge-base: SBOM formats, attestation, provenance and VEX
- NIST-CSF-knowledge-base: NIST Cybersecurity Framework 2.0
Original structure, summaries, and metadata are licensed under CC BY 4.0. Source documents and standards retain their own terms; see NOTICE.
This project is independent and is not affiliated with or endorsed by Google Cloud or Meerkat.