Functions | |
| dict | page_index () |
| Every documentation page id with the anchors it defines. | |
| tuple | required_obligations (dict record) |
| The obligation ids a record owes. | |
| list | check_satisfaction (str context, str key, spec, dict pages, set published, bool public) |
| Verify one obligation or concern is genuinely answered. | |
| list | validate (list records, dict pages, dict families, set published) |
| Validate every subsystem record against the lifecycle contract. | |
| int | main () |
| Report subsystem lifecycle violations. | |
Variables | |
| REPO_ROOT = Path(__file__).resolve().parents[2] | |
| str | RECORDS = REPO_ROOT / "tests" / "tooling" / "subsystem_records.json" |
| str | PAGE_TYPES = REPO_ROOT / "tests" / "tooling" / "page_types.json" |
| str | FAMILIES = REPO_ROOT / "tests" / "tooling" / "capability_families.json" |
| tuple | PAGE_DIRS = ("docs/pages", "docs") |
| tuple | LADDER = ("planned", "internal", "experimental", "supported") |
| dict | LADDER_OBLIGATIONS |
| dict | TERMINAL_OBLIGATIONS |
| tuple | NON_INHERITED = ("not_implemented_status",) |
| tuple | NEEDS_PEAK = ("known-defective", "deprecated", "removed") |
| tuple | INHERITS_LADDER = ("known-defective", "deprecated") |
| VALID_STATUSES = tuple(LADDER) + tuple(TERMINAL_OBLIGATIONS) | |
| dict | TRANSITIONS |
| tuple | VALID_VISIBILITY = ("internal", "public") |
| tuple | VALID_CONCERNS |
| dict | RECORD_KEYS |
| int | MIN_REASON_CHARS = 30 |
| dict | FILLER_REASONS = {"n/a", "na", "none", "not applicable", "no", "-", "tbd"} |
Enforce the documentation obligations each subsystem lifecycle status carries.
| dict audit_subsystem_lifecycle.page_index | ( | ) |
Every documentation page id with the anchors it defines.
@section, @subsection, and @anchor names. Definition at line 88 of file audit_subsystem_lifecycle.py.
| tuple audit_subsystem_lifecycle.required_obligations | ( | dict | record | ) |
The obligation ids a record owes.
A record may declare a proposed_status above its claimed one. That is how a subsystem documented to a higher bar waits for the owner to decide whether it has actually earned it: obligations are checked against the proposal, so the writing is held to the higher standard, while the status the documentation publishes stays conservative until a human agrees.
| [in] | record | One subsystem record. |
Definition at line 106 of file audit_subsystem_lifecycle.py.
| list audit_subsystem_lifecycle.check_satisfaction | ( | str | context, |
| str | key, | ||
| spec, | |||
| dict | pages, | ||
| set | published, | ||
| bool | public | ||
| ) |
Verify one obligation or concern is genuinely answered.
An answer is a documentation reference that resolves, or a stated reason for non-applicability, or a literal value where the obligation is a fact rather than prose. An empty or filler answer is a violation.
| [in] | context | Record id, for messages. |
| [in] | key | Obligation or concern id. |
| [in] | spec | The declared answer. |
| [in] | pages | Page index from page_index(). |
| [in] | published | Ids of the pages the site publishes. |
| [in] | public | Whether the subsystem is publicly visible. |
Definition at line 136 of file audit_subsystem_lifecycle.py.
Validate every subsystem record against the lifecycle contract.
| [in] | records | Subsystem records. |
| [in] | pages | Page index from page_index(). |
| [in] | families | Capability family metadata, keyed by family id. |
| [in] | published | Ids of the pages the site publishes. |
Definition at line 191 of file audit_subsystem_lifecycle.py.
| int audit_subsystem_lifecycle.main | ( | ) |
Report subsystem lifecycle violations.
Definition at line 329 of file audit_subsystem_lifecycle.py.
| audit_subsystem_lifecycle.REPO_ROOT = Path(__file__).resolve().parents[2] |
Definition at line 12 of file audit_subsystem_lifecycle.py.
| str audit_subsystem_lifecycle.RECORDS = REPO_ROOT / "tests" / "tooling" / "subsystem_records.json" |
Definition at line 13 of file audit_subsystem_lifecycle.py.
| str audit_subsystem_lifecycle.PAGE_TYPES = REPO_ROOT / "tests" / "tooling" / "page_types.json" |
Definition at line 14 of file audit_subsystem_lifecycle.py.
| str audit_subsystem_lifecycle.FAMILIES = REPO_ROOT / "tests" / "tooling" / "capability_families.json" |
Definition at line 15 of file audit_subsystem_lifecycle.py.
| tuple audit_subsystem_lifecycle.PAGE_DIRS = ("docs/pages", "docs") |
Definition at line 16 of file audit_subsystem_lifecycle.py.
| tuple audit_subsystem_lifecycle.LADDER = ("planned", "internal", "experimental", "supported") |
Definition at line 21 of file audit_subsystem_lifecycle.py.
| dict audit_subsystem_lifecycle.LADDER_OBLIGATIONS |
Definition at line 23 of file audit_subsystem_lifecycle.py.
| dict audit_subsystem_lifecycle.TERMINAL_OBLIGATIONS |
Definition at line 35 of file audit_subsystem_lifecycle.py.
| tuple audit_subsystem_lifecycle.NON_INHERITED = ("not_implemented_status",) |
Definition at line 43 of file audit_subsystem_lifecycle.py.
| tuple audit_subsystem_lifecycle.NEEDS_PEAK = ("known-defective", "deprecated", "removed") |
Definition at line 44 of file audit_subsystem_lifecycle.py.
| tuple audit_subsystem_lifecycle.INHERITS_LADDER = ("known-defective", "deprecated") |
Definition at line 46 of file audit_subsystem_lifecycle.py.
| audit_subsystem_lifecycle.VALID_STATUSES = tuple(LADDER) + tuple(TERMINAL_OBLIGATIONS) |
Definition at line 48 of file audit_subsystem_lifecycle.py.
| dict audit_subsystem_lifecycle.TRANSITIONS |
Definition at line 58 of file audit_subsystem_lifecycle.py.
| tuple audit_subsystem_lifecycle.VALID_VISIBILITY = ("internal", "public") |
Definition at line 69 of file audit_subsystem_lifecycle.py.
| tuple audit_subsystem_lifecycle.VALID_CONCERNS |
Definition at line 72 of file audit_subsystem_lifecycle.py.
| dict audit_subsystem_lifecycle.RECORD_KEYS |
Definition at line 80 of file audit_subsystem_lifecycle.py.
| int audit_subsystem_lifecycle.MIN_REASON_CHARS = 30 |
Definition at line 84 of file audit_subsystem_lifecycle.py.
| dict audit_subsystem_lifecycle.FILLER_REASONS = {"n/a", "na", "none", "not applicable", "no", "-", "tbd"} |
Definition at line 85 of file audit_subsystem_lifecycle.py.