Report and enforce concept-declaration coverage (T03)

validation-coverage gains a concept_declaration block: declared, defined in
prose, undeclared, ratio, silent artifacts, and the extraction limit stated in
words. The ratio sits slightly above one because seed-concept lists and YAML
payload concepts are declared but not extractable, and saying so in the report
is better than a number that looks complete.

Two checks carry different weights. concept_declaration_missing is an error: an
artifact that defines concepts and declares none, with the kernel map exempt by
name because it assigns concepts rather than defining them. Zero today, so a new
artifact added without declarations fails. concept_defined_without_owner is a
warning over concepts no artifact declares; a name another artifact owns is an
import rather than a gap, which keeps the warning from firing 57 times and
training reviewers to ignore it.

Three warnings today and each is real: the Organization Model defines eleven
concepts nobody owns, CARING four including Effective Access and Declared
Access, and the Capability Model two. They are carried as T07 rather than
declared in passing, because declaring without a boundary review is the mistake
this workplan exists to fix.

make check passes with 53 tests, clean validation and three warnings.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 3588@bnt-lap001
Assistant-Session: 24b80f66-e5a7-4e61-99fe-2d422e6d17da
This commit is contained in:
tegwick 2026-09-20 23:24:27 +02:00
parent 772422553f
commit a28526e540
4 changed files with 140 additions and 3 deletions

View file

@ -190,7 +190,7 @@ attribute-based decisions). `Exposure` and `Investigation` go to Security;
```task
id: INFO-WP-0027-T03
status: todo
status: done
priority: medium
state_hub_task_id: "48dbd089-a0bf-5d02-b574-b1acf554f658"
```
@ -207,6 +207,57 @@ undeclared prose, and would train reviewers to ignore it. An error is
appropriate for one narrower case — an artifact that declares nothing while
defining concepts that another artifact references by qualified id.
### Result — 2026-09-20 (T03)
`validation-coverage` now carries a `concept_declaration` block: declared,
defined in prose, undeclared, the ratio, the silent artifacts, and the
extraction limit in words. It reports 699 declared against 690 extracted, a
ratio slightly above one, because Landscape's seed-concept lists and concepts
defined in YAML payloads are declared but not extractable. The limit is stated
in the report rather than hidden in the number. `not_proven` no longer claims
ownership of prose concepts is unproven wholesale; it names the forms extraction
does not read.
Enforcement is recorded as two checks with different weights, as recommended:
- **`concept_declaration_missing` — error.** An artifact that defines concepts
and declares none. `kernel/itc-kernel-map` is exempt by name, with the reason
in the code: it assigns concepts to owners rather than defining them. Zero
today, and a new artifact added without declarations fails.
- **`concept_defined_without_owner` — warning.** A concept defined in prose that
*no* artifact declares. A name another artifact owns is an import, not a gap,
so imports do not warn — which is what keeps the check from firing 57 times
and training reviewers to ignore it.
Three warnings today, and they are real: `model/organization` defines
`Assignment`, `Availability`, `Capacity`, `CollectiveActor`, `Competence`,
`Group`, `OrganizationEntity`, `OrganizationalCapability`, `Post`,
`ReportingLine` and `Skill` that nobody owns; `standard/caring` defines
`Effective Access`, `Declared Access`, `Derived Capability` and
`Capability Profile`, which are central CARING concepts; `model/capability`
defines `Supply` and `Capacity behaviour`. These are the check's first real
finding and are carried as T07 rather than declared here — declaring them
without a boundary review would repeat the mistake this workplan exists to fix.
## Declare the concepts nobody owns
```task
id: INFO-WP-0027-T07
status: todo
priority: medium
```
Seventeen concepts are defined in prose and declared by no artifact, surfaced by
the `concept_defined_without_owner` warning added in T03. Declare them to their
defining artifact where that is right, with a boundary review for each artifact
touched, and resolve the ones that are not — `Capacity` in the Organization
Model against `Capacity behaviour` in the Capability Model is one concept or two,
and the answer decides who declares it.
CARING is the priority: `Effective Access` and `Declared Access` carry the
standard's central distinction, they are referenced by the Kubernetes RBAC
benchmark, and they are undeclared.
## Re-verify the federation boundaries against the enlarged index
```task