Plan the concept-declaration gap closure (INFO-WP-0027)
The ownership index is built from artifact titles and owned_concepts frontmatter
only, so the conflict check cannot see a concept that is defined in prose,
assigned an owner by the kernel map and referenced elsewhere by qualified id.
Measured at 209bb5a: 164 index entries against twelve live models and standards
that declare nothing, and 519 bold-form definitions across fifteen live
artifacts that appear in no declaration.
The SecurityCanon boundary review recorded a clean conflict result that could
not have seen itc-org:Authority for exactly this reason; the gap was caught by
hand in SECURITY-WP-0001-T03. The workplan establishes the true denominator,
declares concepts for the twelve silent artifacts, reports coverage as a moving
number with a recorded enforcement level, re-verifies both accepted extension
boundaries against the enlarged index, and resolves residual R-3 as its first
real use. Residual R-2 is explicitly excluded.
Status is proposed: drafted against verified repository state but not yet
reviewed by the owner.
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
37ad0c9185
commit
d5704f1c4d
2 changed files with 180 additions and 0 deletions
|
|
@ -18,6 +18,7 @@
|
|||
| workplan | INFO-WP-0024 | finished | — | workplans/INFO-WP-0024-corpus-provenance.md |
|
||||
| workplan | INFO-WP-0025 | finished | — | workplans/INFO-WP-0025-federation-interface.md |
|
||||
| workplan | INFO-WP-0026 | finished | — | workplans/INFO-WP-0026-interface-canon-boundary-review.md |
|
||||
| workplan | INFO-WP-0027 | proposed | — | workplans/INFO-WP-0027-concept-declaration-coverage.md |
|
||||
| workplan | ITC-WP-0001 | finished | — | workplans/ITC-WP-0001-infospace-scaffold-and-seed-placement.md |
|
||||
| workplan | ITC-WP-0002 | finished | — | workplans/ITC-WP-0002-service-surface-cli-json-api.md |
|
||||
| workplan | ITC-WP-0003 | finished | — | workplans/ITC-WP-0003-validation-indexes-and-generated-views.md |
|
||||
|
|
@ -64,6 +65,11 @@
|
|||
| task | INFO-WP-0025-T02 | done | — | workplans/INFO-WP-0025-federation-interface.md |
|
||||
| task | INFO-WP-0026-T01 | done | — | workplans/INFO-WP-0026-interface-canon-boundary-review.md |
|
||||
| task | INFO-WP-0026-T02 | done | — | workplans/INFO-WP-0026-interface-canon-boundary-review.md |
|
||||
| task | INFO-WP-0027-T01 | todo | — | workplans/INFO-WP-0027-concept-declaration-coverage.md |
|
||||
| task | INFO-WP-0027-T02 | todo | — | workplans/INFO-WP-0027-concept-declaration-coverage.md |
|
||||
| task | INFO-WP-0027-T03 | todo | — | workplans/INFO-WP-0027-concept-declaration-coverage.md |
|
||||
| task | INFO-WP-0027-T04 | todo | — | workplans/INFO-WP-0027-concept-declaration-coverage.md |
|
||||
| task | INFO-WP-0027-T05 | todo | — | workplans/INFO-WP-0027-concept-declaration-coverage.md |
|
||||
| task | ITC-WP-0001-T01 | done | — | workplans/ITC-WP-0001-infospace-scaffold-and-seed-placement.md |
|
||||
| task | ITC-WP-0001-T02 | done | — | workplans/ITC-WP-0001-infospace-scaffold-and-seed-placement.md |
|
||||
| task | ITC-WP-0001-T03 | done | — | workplans/ITC-WP-0001-infospace-scaffold-and-seed-placement.md |
|
||||
|
|
|
|||
174
workplans/INFO-WP-0027-concept-declaration-coverage.md
Normal file
174
workplans/INFO-WP-0027-concept-declaration-coverage.md
Normal file
|
|
@ -0,0 +1,174 @@
|
|||
---
|
||||
id: INFO-WP-0027
|
||||
type: workplan
|
||||
title: "Close the concept-declaration gap so ownership conflicts are detectable"
|
||||
domain: infotech
|
||||
repo: info-tech-canon
|
||||
status: proposed
|
||||
owner: claude
|
||||
topic_slug: canon-federation
|
||||
created: "2026-09-20"
|
||||
updated: "2026-09-20"
|
||||
flavor: quality
|
||||
state_hub_workstream_id: "9df4bb6f-b420-597d-acda-5dc39f00c095"
|
||||
---
|
||||
|
||||
# Concept declaration coverage
|
||||
|
||||
## Why
|
||||
|
||||
`concept_ownership()` in `src/info_tech_canon/generation.py` builds the ownership
|
||||
index from exactly two sources: each artifact's title, and its
|
||||
`owned_concepts` frontmatter. A concept that is defined in prose, is referenced
|
||||
elsewhere by qualified id, and is treated by the corpus as owned is invisible to
|
||||
it. `concept_ownership_conflict` in `src/info_tech_canon/service.py` can only
|
||||
fire on what that index contains, so the conflict check covers a minority of the
|
||||
concepts the canon actually defines.
|
||||
|
||||
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;
|
||||
- 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
|
||||
table-defined terms.
|
||||
|
||||
This is not theoretical. The SecurityCanon boundary review
|
||||
(`infospace/interfaces/security-canon-boundary.md`) checked SecurityCanon's seven
|
||||
declared concepts against every InfoTechCanon `owned_concepts` declaration,
|
||||
found no conflict, and recorded that as evidence. It could not have found
|
||||
`itc-org:Authority` — defined at ITC-ORG section 10.17, assigned to Organization
|
||||
by the kernel map, and referenced by qualified id in the governance model —
|
||||
because ITC-ORG's frontmatter does not list it. The gap was caught by hand in
|
||||
SECURITY-WP-0001-T03 (finding F-1) and would otherwise have shipped as a false
|
||||
clean result.
|
||||
|
||||
SCOPE.md already concedes that the calculation "does not establish ownership of
|
||||
every concept in prose". This workplan converts that concession into a measured
|
||||
number and closes the part of it that matters for federation.
|
||||
|
||||
## What this is not
|
||||
|
||||
Not a complete ontology, and not automated concept extraction promoted to
|
||||
canon. Extraction produces *candidates for review*; a concept becomes owned
|
||||
because a human or a reviewed change declares it, never because a regex found
|
||||
it. No concept is renamed, moved or removed by this workplan.
|
||||
|
||||
## Establish the true denominator
|
||||
|
||||
```task
|
||||
id: INFO-WP-0027-T01
|
||||
status: todo
|
||||
priority: high
|
||||
state_hub_task_id: "1e139d9a-8883-59af-a163-1c6da903dad6"
|
||||
```
|
||||
|
||||
Write a candidate extractor over live artifacts (excluding `assimilation/` and
|
||||
`seeds/`, which preserve source rather than define canon). Cover at least the
|
||||
bold-definition form, the numbered-section-heading form used by ITC-ORG section
|
||||
10.17 and ITC-IDENT section 2.10, and terms defined in a table's first column.
|
||||
|
||||
Output is a review report under `history/`, listing per artifact: declared
|
||||
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
|
||||
|
||||
```task
|
||||
id: INFO-WP-0027-T02
|
||||
status: todo
|
||||
priority: high
|
||||
state_hub_task_id: "b086abf1-3b36-5b05-a8a8-c8b12c9ab280"
|
||||
```
|
||||
|
||||
Add reviewed `owned_concepts` frontmatter to the twelve 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,
|
||||
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.
|
||||
|
||||
Expect this task to surface genuine conflicts once the index grows. A conflict
|
||||
found here is the workplan working, not a regression; resolve each by naming one
|
||||
owner, as ADHOC-2026-09-20-T01 did for `Scope`.
|
||||
|
||||
## Report coverage instead of asserting completeness
|
||||
|
||||
```task
|
||||
id: INFO-WP-0027-T03
|
||||
status: todo
|
||||
priority: medium
|
||||
state_hub_task_id: "48dbd089-a0bf-5d02-b574-b1acf554f658"
|
||||
```
|
||||
|
||||
Extend the validation coverage report added by INFO-WP-0019 with a
|
||||
concept-declaration coverage metric: per artifact, declared concepts against
|
||||
extracted candidates, and a corpus total. Wire the extractor from T01 in as the
|
||||
measurement, so the number moves when the corpus does.
|
||||
|
||||
Decide and record the enforcement level. The recommendation is a warning with an
|
||||
explicit threshold rather than an error: a hard failure on undeclared prose
|
||||
terms would fail the corpus today for 519 terms, most of which are legitimately
|
||||
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.
|
||||
|
||||
## Re-verify the federation boundaries against the enlarged index
|
||||
|
||||
```task
|
||||
id: INFO-WP-0027-T04
|
||||
status: todo
|
||||
priority: medium
|
||||
state_hub_task_id: "b9313ad5-7cb0-5be6-bc28-196f84640895"
|
||||
```
|
||||
|
||||
Re-run the ownership-conflict check against the enlarged declaration set and
|
||||
re-verify the two accepted extension boundaries: SecurityCanon's nine owned
|
||||
concepts and twelve declared imports, and InterfaceCanon's. Record the result in
|
||||
each boundary file, including the correction if the earlier clean result no
|
||||
longer holds.
|
||||
|
||||
Notify security-canon and interface-canon through the State Hub inbox if either
|
||||
boundary's evidence changes. This is the task that converts the fix into
|
||||
restored trust in the earlier reviews.
|
||||
|
||||
## Resolve R-3 as the first real use
|
||||
|
||||
```task
|
||||
id: INFO-WP-0027-T05
|
||||
status: todo
|
||||
priority: low
|
||||
state_hub_task_id: "eb02c948-6401-5ef7-a341-4563ee73e00c"
|
||||
```
|
||||
|
||||
Residual R-3 from the SecurityCanon review: `Authority` carries two live senses
|
||||
inside InfoTechCanon — the recognized right held by an actor (ITC-ORG section
|
||||
10.17) and an external body compelling disclosure (CARING section 10.7 exposure
|
||||
mode). Declaring both under T02 forces the question rather than leaving it in
|
||||
prose.
|
||||
|
||||
Resolve by disambiguation, not by rename: CARING's exposure mode is a demand
|
||||
from an authority, and saying so in one sentence is likely enough. The test is
|
||||
that a reader arriving from `sec-authority:AuthMode` can tell which sense a given
|
||||
section means.
|
||||
|
||||
Residual R-2 — the proposal to generalise CARING section 32 beyond non-human
|
||||
subjects — is explicitly *not* in this workplan. It is a semantic change to a
|
||||
release-candidate standard and needs its own review.
|
||||
|
||||
## Done when
|
||||
|
||||
The ownership index is built from declarations that cover every concept the
|
||||
twelve silent artifacts define; coverage is reported as a number that moves with
|
||||
the corpus; the enforcement level is recorded with its rationale; and both
|
||||
accepted extension boundaries carry a conflict result re-verified against the
|
||||
enlarged index.
|
||||
Loading…
Add table
Add a link
Reference in a new issue