Feature guides¶
One guide per feature a developer consumes, in the shape the directive asks for: what it is, why it exists, when to use it and when not to, how it works, its architecture, an example, and then the operational half -- security, reliability, observability, audit, configuration, testing, common mistakes and a production checklist.
These guides are not the design authority. Each one links to the page that is, and where the two disagree the authority page and the code win. Two authorities for one topic is how documentation starts lying.
Which fourteen. The directive names the set of feature guides; the list below is the library's own surfaces -- one per feature a developer actually consumes -- because a guide for a feature the library does not have would be the exact failure this programme exists to remove. Where the example application does not use a feature (background jobs, for instance), the guide says so rather than inventing an example: the evidence is then the library's own suites, named in the guide.
Two features are cross-cutting and documented where they live rather than in a guide of their
own: privileged access (../privileged-access.md) is covered by
authorization's security and production sections, and the error envelope
(../../security/error-responses.md) is covered by every
guide's security section -- it is the shape every failure takes, not a feature you opt into.
These guides are checked. tests/unit/test_example_docs.py asserts that every guide carries
every heading of the template, that every path it cites exists, and that every authority page it
names is real -- the same treatment the capability pages get from tests/unit/test_successor_docs.py.
A register that lies fails its own test.
| Guide | Design authority | Used by the example |
|---|---|---|
authentication.md — authentication |
docs/jdlib/authentication.md |
yes |
authorization.md — authorization |
docs/jdlib/authorization.md |
yes |
tenancy.md — tenancy |
docs/jdlib/tenancy.md |
yes |
resource-management.md — resource-management |
docs/jdlib/resource-management.md |
yes |
query-system.md — query-system |
docs/jdlib/query-system.md |
yes |
credentials.md — credentials |
docs/jdlib/credentials.md |
yes |
caching.md — caching |
docs/jdlib/capabilities/caching.md |
yes |
storage.md — storage |
docs/jdlib/capabilities/storage.md |
yes |
connectors.md — connectors |
docs/jdlib/connectors.md |
yes |
graph.md — graph |
docs/jdlib/capabilities/graph.md |
yes |
mcp.md — mcp |
docs/jdlib/capabilities/mcp.md |
yes |
jobs.md — jobs |
docs/jdlib/capabilities/jobs.md |
no — said so in the guide |
audit.md — audit |
docs/security/audit-hardening.md |
yes |
observability.md — observability |
docs/security/observability-hardening.md |
yes |
The template¶
Every guide carries these sections, in this order:
- What it is
- Why it exists
- When to use it
- When not to use it
- How it works
- Architecture
- Example
- Security
- Reliability
- Observability
- Audit
- Configuration
- Testing
- Common mistakes
- Production checklist
The front-matter of each guide is machine-read: guide, authority, modules, exports,
example (when the example uses it) and test_files. Every one of those claims is checked against
the working tree, which is what makes the guide a statement about the repository rather than about
its author's memory.