Measure the concept-declaration gap (INFO-WP-0027-T01)
Adds maintenance.concept_candidates() and the concept-coverage CLI command, which measure concepts an artifact defines in prose against the concepts it declares. Extraction covers the bold form, the numbered-heading form that hid itc-org:Authority, and the concept-table form the kernel map uses; preserved source under assimilation, seeds and incoming is excluded. Candidates are review input, never ownership. Baseline over 31 live artifacts: 113 concepts declared against 690 defined, leaving 637 defined but undeclared, about 16 percent coverage. The workplan's 519 counted the bold form alone. Two corrections to the workplan's framing, applied there. Thirteen artifacts declare nothing rather than twelve: kernel/itc-core defines 57 concepts across two forms and declares none, and it is the artifact every other artifact imports from, so it goes first in T02. The gap also reaches further than obscure terms — Actor is undeclared in the organization model although SecurityCanon imports it from there by name against a pinned hash. Three tests cover the extractor, one asserting that Authority appears in the organization model's undeclared list, so the blind spot that produced finding F-1 now has a regression test. make check passes with 49 tests. 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:
parent
d5704f1c4d
commit
2a59d3f77c
5 changed files with 305 additions and 10 deletions
|
|
@ -4,7 +4,7 @@ type: workplan
|
|||
title: "Close the concept-declaration gap so ownership conflicts are detectable"
|
||||
domain: infotech
|
||||
repo: info-tech-canon
|
||||
status: proposed
|
||||
status: active
|
||||
owner: claude
|
||||
topic_slug: canon-federation
|
||||
created: "2026-09-20"
|
||||
|
|
@ -29,9 +29,10 @@ Measured on the working tree at `209bb5a`:
|
|||
|
||||
- the ownership index holds **164 entries** — 81 from artifact titles, 83 from
|
||||
`owned_concepts` frontmatter;
|
||||
- **12 live models and standards declare nothing at all**: access-control, data,
|
||||
devsecops, governance, information-space, landscape, network, observability,
|
||||
security, task, tagging, and the kernel map;
|
||||
- **13 live artifacts declare nothing at all** (T01 measured one more than this
|
||||
estimate): itc-core, the kernel map, access-control, data, devsecops,
|
||||
governance, information-space, landscape, network, observability, security,
|
||||
task, and tagging;
|
||||
- a single bold-definition pattern (`**Name** is|—`) finds **519 defined terms
|
||||
across 15 live artifacts** that appear in no declaration. That pattern is a
|
||||
lower bound, not a census: it misses numbered-section definitions and
|
||||
|
|
@ -62,7 +63,7 @@ it. No concept is renamed, moved or removed by this workplan.
|
|||
|
||||
```task
|
||||
id: INFO-WP-0027-T01
|
||||
status: todo
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "1e139d9a-8883-59af-a163-1c6da903dad6"
|
||||
```
|
||||
|
|
@ -77,7 +78,31 @@ concepts, extracted candidates, and the difference. No corpus change and no
|
|||
frontmatter edit in this task. The report is the input to T02 and the baseline
|
||||
the coverage check in T03 measures against.
|
||||
|
||||
## Declare concepts for the twelve silent artifacts
|
||||
### Result — 2026-09-20 (T01)
|
||||
|
||||
Extractor added as `maintenance.concept_candidates()` with the CLI command
|
||||
`concept-coverage`, covering the bold, numbered-heading and concept-table forms
|
||||
over live artifacts, with `assimilation/`, `seeds/` and `incoming/` excluded as
|
||||
preserved source. Baseline report:
|
||||
`history/2026-09-20_230456+0200-concept-declaration-baseline.md`.
|
||||
|
||||
Measured over 31 live artifacts: 113 concepts declared against 690 defined in
|
||||
prose, leaving **637 defined but undeclared** — about 16 percent declaration
|
||||
coverage. The workplan's 519 was the bold form alone; the heading form, which is
|
||||
what hid `itc-org:Authority`, raises it.
|
||||
|
||||
Two corrections to the workplan's own framing. The silent artifacts number
|
||||
**thirteen, not twelve**: `kernel/itc-core` declares nothing while defining 57
|
||||
concepts across two forms, and it is the artifact every other artifact imports
|
||||
from, so T02 should take it first. And the gap is wider than ownership of
|
||||
obscure terms — `Actor` itself is undeclared in `model/organization`, though
|
||||
SecurityCanon imports it from there by name with a pinned hash.
|
||||
|
||||
Three tests cover the extractor, including one that asserts `Authority` appears
|
||||
in the organization model's undeclared list, so the F-1 blind spot now has a
|
||||
regression test. `make check` passes with 49 tests.
|
||||
|
||||
## Declare concepts for the thirteen silent artifacts
|
||||
|
||||
```task
|
||||
id: INFO-WP-0027-T02
|
||||
|
|
@ -86,13 +111,14 @@ priority: high
|
|||
state_hub_task_id: "b086abf1-3b36-5b05-a8a8-c8b12c9ab280"
|
||||
```
|
||||
|
||||
Add reviewed `owned_concepts` frontmatter to the twelve live artifacts that
|
||||
Add reviewed `owned_concepts` frontmatter to the thirteen live artifacts that
|
||||
declare none, working from the T01 candidates rather than from the regex output
|
||||
directly. Each declared concept must be one the artifact genuinely defines, not
|
||||
one it merely mentions or imports.
|
||||
|
||||
Order by federation exposure, not by file size: access-control, security,
|
||||
devsecops and governance first, since those are the surfaces SecurityCanon,
|
||||
Order by federation exposure, not by file size: `kernel/itc-core` first, since
|
||||
every other artifact imports from it, then access-control, security, devsecops
|
||||
and governance, since those are the surfaces SecurityCanon,
|
||||
InterfaceCanon and the small-saas profile reference. The kernel map is a
|
||||
different case and may end up declaring nothing — it assigns concepts to owners
|
||||
rather than defining them, and that judgment should be recorded either way.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue