From d5704f1c4d295b24ba5a15ef73aa81cdf083b7b2 Mon Sep 17 00:00:00 2001 From: tegwick Date: Sun, 20 Sep 2026 22:59:01 +0200 Subject: [PATCH] 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 Assistant: claude-code Assistant-Model: opus Assistant-Process: 3588@bnt-lap001 Assistant-Session: 24b80f66-e5a7-4e61-99fe-2d422e6d17da --- WORK-RECORDS.md | 6 + ...FO-WP-0027-concept-declaration-coverage.md | 174 ++++++++++++++++++ 2 files changed, 180 insertions(+) create mode 100644 workplans/INFO-WP-0027-concept-declaration-coverage.md diff --git a/WORK-RECORDS.md b/WORK-RECORDS.md index f3565d0..d0e80d3 100644 --- a/WORK-RECORDS.md +++ b/WORK-RECORDS.md @@ -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 | diff --git a/workplans/INFO-WP-0027-concept-declaration-coverage.md b/workplans/INFO-WP-0027-concept-declaration-coverage.md new file mode 100644 index 0000000..a79693e --- /dev/null +++ b/workplans/INFO-WP-0027-concept-declaration-coverage.md @@ -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.