diff --git a/WORK-RECORDS.md b/WORK-RECORDS.md index 574c202..03f9100 100644 --- a/WORK-RECORDS.md +++ b/WORK-RECORDS.md @@ -20,5 +20,5 @@ | task | CFED-WP-0001-T09 | wait | — | workplans/CFED-WP-0001-foundation.md | | task | CFED-WP-0001-T10 | wait | — | workplans/CFED-WP-0001-foundation.md | | task | CFED-WP-0001-T11 | done | — | workplans/CFED-WP-0001-foundation.md | -| task | CFED-WP-0001-T12 | todo | — | workplans/CFED-WP-0001-foundation.md | -| task | CFED-WP-0001-T13 | wait | — | workplans/CFED-WP-0001-foundation.md | +| task | CFED-WP-0001-T12 | done | — | workplans/CFED-WP-0001-foundation.md | +| task | CFED-WP-0001-T13 | todo | — | workplans/CFED-WP-0001-foundation.md | diff --git a/docs/evidence/2026-09-05-counterparty-validate.py b/docs/evidence/2026-09-05-counterparty-validate.py index 0afe14e..6bd5150 100644 --- a/docs/evidence/2026-09-05-counterparty-validate.py +++ b/docs/evidence/2026-09-05-counterparty-validate.py @@ -34,12 +34,14 @@ for key in ['id', 'version', 'status']: assert entry[key] == fm[key] manifest = json.loads(model_path.with_name('imports.json').read_text()) assert set(fm['imports']) == {row['model'] for row in manifest['imports']} imports = set() +upstream_drift = [] for row in manifest['imports']: data = (upstream / row['path']).read_bytes() historical = subprocess.check_output(['git', 'show', manifest['source_commit'] + ':' + row['path']], cwd=upstream) - assert hashlib.sha256(data).hexdigest() == row['sha256'], 'upstream changed: ' + row['path'] - assert data == historical, 'reviewed commit differs: ' + row['path'] - text = data.decode() + assert hashlib.sha256(historical).hexdigest() == row['sha256'], 'reviewed commit differs: ' + row['path'] + if data != historical: + upstream_drift.append(row['path']) + text = historical.decode() if text.startswith('---\n'): upstream_fm = yaml.safe_load(text.split('---')[1]) upstream_owned = set(upstream_fm['owned_concepts']) @@ -64,5 +66,5 @@ for relative in ['README.md', 'docs/RepositoryLayout.md', 'infospace/kernel/Comm links += 1 print(json.dumps({'owned_concepts': len(owned), 'convenience_terms': 2, 'imported_models': len(manifest['imports']), 'imported_concepts': len(imports), - 'upstream_commit': manifest['source_commit'], 'protected_files_unchanged': len(protected), + 'upstream_commit': manifest['source_commit'], 'upstream_changes_since_review': upstream_drift, 'protected_files_unchanged': len(protected), 'links_checked': links, 'registry_and_boundaries': 'pass'}, indent=2)) diff --git a/docs/evidence/2026-09-05-social-collectives-protected-hashes.json b/docs/evidence/2026-09-05-social-collectives-protected-hashes.json new file mode 100644 index 0000000..680bfd4 --- /dev/null +++ b/docs/evidence/2026-09-05-social-collectives-protected-hashes.json @@ -0,0 +1,39 @@ +{ + "seeds/InfoTechCanonObservabilityModel_RC1_seed.md": "4f02caf13b4910b3a82e767ba09429e2cc84a39f607060f363b78ce07da82907", + "seeds/InfoTechCanonNetworkModel_RC1_seed.md": "cc337dbcd7129121ce20f118d12754bd1be012a36c1944dc479d3c527750c6af", + "seeds/InfoTechCanonTaggingStandard_RC1_seed.md": "852c8d9dcae4d75e1ac880910e0039d733abf1313e1a1cf9cfaf9cc811694c66", + "seeds/InfoTechCanonDataModel_RC1_seed.md": "0e9a27068787f663d8abf3677ff75500b9d3db85eaf1cb7aa7bafb09e19c8ddf", + "seeds/InfoTechCanonGovernanceModel_RC1_seed.md": "d7b7958fa184c6079aefe19858b63bf9f199bd55dac3824ff7e123e29e11a00b", + "seeds/InfoTechCanonTaskModel_RC1_seed.md": "e3258fe8f731aea71236cd96c74da4a511688c143d95aaae1a35b9537842003c", + "seeds/InfoTechCanonSecurityModel_RC1_seed.md": "8d90cabdc8ffde0151720f0e7298e9e1650bb9e1cbd8bd451b8393fcb341f0a5", + "seeds/InfoTechCanonKernelMap_RC1.md": "ab3b9d0b045bf37cb04662f024e3a5de41469f17db9ef1ec0fe71e7087d553bf", + "seeds/InfoTechCanonCore_RC1_seed.md": "1abb568cebbd40ebfe6dd1858c17d6843d293a0b17359bf6e0e954c3fd685bbc", + "seeds/InfoTechCanonCaringAccessGovernanceStandard.md": "9e0da9a5da56e9b15f8ec8777eed2640653be32e587fcc2889475db57a9ce379", + "seeds/InfoTechCanonInformationSpaceModel_RC1_seed.md": "fdc662bc9f00004ab3d4409e83bb2f1bc8dc6ec369a9907258f0410460b42aa3", + "seeds/InfoTechCanonOrganizationModel_RC1_seed.md": "2b16b6163cf295c1f20f1fb88fdb8c35224c4f416247b6b94d3d653983bd10e2", + "seeds/InfoTechCanonLandscapeModel_RC1_seed.md": "885d873e955b5df46505eadd993da0e7a35d33abb84a7c8f15e2e5f4e3535866", + "seeds/InfoTechCanonAccessControlModel_RC1_seed.md": "179b96e6b676847cb2766f5ee0097c59017039919a589695c106e912cedd4df1", + "seeds/InfoTechCanonDevSecOpsModel_RC1_seed.md": "ec6d6c340a80c27f60bca3fa3e83fccdce7bc1a539526c6c392c67363ebd4870", + "workplans/ITC-WP-0006-purpose-and-demand-model.md": "794785b086f8aaa5f43cf3b2ff85a50e20ab128f8d8a82099a62522832021a23", + "workplans/ITC-WP-0018-emission-cadence-contract.md": "51871d33278903a70453830f338de4eb51455d30234c3ee0d01691bc7ba184ce", + "workplans/ADHOC-2026-08-15.md": "baaad5cdf2afc2f66465a69efd760f392742375723d7eb9ead547e8e57aab1e0", + "workplans/INFO-WP-0020-shared-evidence-model.md": "ccf9ae8f8838d3062e6684bd79c4693b49fb08517b9dc2da6d17d4c3e997641e", + "workplans/ITC-WP-0010-caring-kubernetes-rbac-benchmark.md": "1f25d4299476f3c0d7ceb1f25d2b6f1b85f58fb7c0b250be9b7cb2adc0be1cec", + "workplans/ITC-WP-0017-agentic-drives-functional.md": "71775ec71365ac9f2b00919ebf751b94fe7a8969ea4b89f8381f560648afc3f1", + "workplans/ITC-WP-0014-capability-model-consolidation.md": "f6d918cc9654c91b89dedf71d86415aa7ea05c6456e599331612ebf6939cb5f5", + "workplans/ITC-WP-0009-repo-scoping-comparison-and-extension.md": "e2aff82ff9abdb8c82869c247ebbd5b304a6cdc8944728d9890d5fcaf85ed389", + "workplans/ITC-WP-0012-canonical-repository-layout-standard.md": "a66a6c1ce7ccd0bbe628cf29c5d736d212ab10596ac963ed016d4342c8344e9e", + "workplans/ITC-WP-0004-small-saas-profile-proof.md": "661ed363fcd40f79702441f092c872480bda236bb17134451ed589b38f0d7a72", + "workplans/ITC-WP-0013-attribute-value-type-catalog.md": "a35cfd79b3c3e453c44ec7c20d1304611a8cd80e354128301a9f0766a1b21fe9", + "workplans/ITC-WP-0001-infospace-scaffold-and-seed-placement.md": "0cdd0ff83f7e5320a957bf9afdd4e41bad0d62defc669bc0928ab59a46f50ce1", + "workplans/ITC-WP-0005-retrieval-agent-briefs-and-interface-cards.md": "2c4eeadef3c35cdc05ffba424861d147b60a3fca8d8722194c2f7befac6c4fd9", + "workplans/ITC-WP-0011-canon-consumer-alignment-review-kit.md": "aad2fcaeb2114cda2cd76d453280deaffb83a0af013d6b782f58fb6b7601cbca", + "workplans/ITC-WP-0015-evidence-basis.md": "04b9a676e45498fd77a6c5e31d6beb1add378cb9b9f54b3834b4f2470a1d44e3", + "workplans/ITC-WP-0002-service-surface-cli-json-api.md": "770035e6d464a50e8cdf5eba6f920a9efc3fd12a0311e7de5c33fd747ece9253", + "workplans/INFO-WP-0021-identity-model.md": "77e6860a7f5bc2629f02241e49477b516ab114eb54fb050f4c571e053b01648b", + "workplans/ITC-WP-0008-railiance-fabric-conformance-support.md": "a7feaf5f63bcc2e43f00c01d4ca566d2a1ec58f441cf889c716db3361d7fe4ae", + "workplans/ITC-WP-0003-validation-indexes-and-generated-views.md": "03d3aa9dd74edcb39e321a7b98051296a058acc37010c59941a4bb4b3feb1b3d", + "workplans/ITC-WP-0016-practice-pattern-language.md": "b1981ebbefb71e8a9cc58c5dc7c1a28102bf040735fc76c525edd1fa5706625b", + "workplans/INFO-WP-0019-conformance-and-maintenance.md": "b552a710f0670dfc5406cf1ecddee4e5b8ce2fcac8d04e8236ac7f9d556eb433", + "workplans/ITC-WP-0007-user-engine-evaluation-readiness.md": "4b916d8548980308a2003007cf37e26da7ba7428073dadf433f53371679322e5" +} diff --git a/docs/evidence/2026-09-05-social-collectives.md b/docs/evidence/2026-09-05-social-collectives.md new file mode 100644 index 0000000..f838ddf --- /dev/null +++ b/docs/evidence/2026-09-05-social-collectives.md @@ -0,0 +1,42 @@ +# Social collective extension — 2026-09-05 + +INFO-WP-0022 implements CFED-WP-0001-T12 under accepted ADR-006 R6. +Organization explicitly broadens beyond enterprise structures: Community and +Household are now defined as distinct CollectiveActor subtypes. Community's old +undeveloped StructureEntity taxonomy entry is consolidated under CollectiveActor. +Household is added without introducing Family as a collective actor. + +New sections 10.5a–c preserve existing numbered anchors. They distinguish social +participation, domestic arrangements, Team, Group and imported Tenant; household +membership or address equality does not infer kinship, guardianship or authority. +P4 boundary cases cover shared homes without kinship, relatives across households, +independent domestic units sharing an address, and community/team/group separation. +The extension is explicitly draft 0.1.0; the surrounding model retains its seed +status. Incremental frontmatter ownership records the two additions; legacy +organization concepts remain defined and owned in the existing model prose. + +Kernel map and generated ownership/retrieval surfaces identify itc-org as sole +owner of Community and Household. No Family model is authored: T13 remains the +live seed task. T07 owns corpus distribution and T08 reciprocal cards/current +cross-canon references. All 37 protected seed and pre-existing workplan files +match the adjacent SHA-256 snapshot. + +CommerceCanon continues to pin the previously reviewed organization revision. +Its T06 verification script now checks hashes/concepts against that immutable Git +revision and separately reports current upstream drift, instead of requiring the +upstream working tree to remain frozen forever. Its reviewed manifest is unchanged. +T08 retains review of newer upstream revisions; the change is reported, not silently +adopted by CommerceCanon. + +Reproduce from InfoTechCanon: `make check` and `git diff --check`. The dedicated +social-collective regression checks one owner each, the CollectiveActor hierarchy, +no duplicate Community placement, and no Family subtype. Model section 10.5c +contains the semantic review cases; this does not certify consumer behavior. +Final check and publication receipts follow below. + +Final validation: **46 tests pass**, generated consistency, canon and small-saas +profile checks pass. Published InfoTechCanon implementation: `3e69bd5`. +Native workplan UUID `452a4239-f13e-58fa-acc8-f083fd7178f4`; three tasks done. +Both required consistency runs passed with no automation errors or assessment +failures; existing classification/prefix advisories remain. Progress logged to +both workplans. Project progress is 8/13; T13 is now todo. diff --git a/workplans/CFED-WP-0001-foundation.md b/workplans/CFED-WP-0001-foundation.md index bb6f8fc..00f1be1 100644 --- a/workplans/CFED-WP-0001-foundation.md +++ b/workplans/CFED-WP-0001-foundation.md @@ -303,6 +303,11 @@ motivated this project no longer holds (gate **G7**). Include Custodian canon in the map — it governs both domain canons and holds `ADR-006`, but owns no domain semantics. +After T12/T13, review CommerceCanon’s pinned organization source and update current +kernel references that still mark upstream extensions pending. Keep historical +import revisions verifiable; do not silently adopt new upstream definitions. + + ## Sweep fleet references ```task @@ -362,7 +367,7 @@ delegation-boundary review prerequisite. ```task id: CFED-WP-0001-T12 -status: todo +status: done priority: medium state_hub_task_id: "f82385e9-5735-5147-aab6-d86653f33e26" ``` @@ -375,11 +380,18 @@ deliberate scope broadening, to be stated in the model rather than slipped in. P4 ("Model Collective Actors Without Collapsing Them") governs: `Community`, `Household`, `Team`, and `Group` remain distinct. +**Result (2026-09-05):** [INFO-WP-0022](../../info-tech-canon/workplans/INFO-WP-0022-social-collectives.md) +adds draft Community/Household definitions under CollectiveActor, explicit social +scope, P4 boundary cases and generated ownership entries. Family is excluded. +[Evidence](../docs/evidence/2026-09-05-social-collectives.md) records 46 passing +tests and 37 unchanged protected files. T13 is now todo. + + ## Seed the Family concept area ```task id: CFED-WP-0001-T13 -status: wait +status: todo priority: medium state_hub_task_id: "b6d097a3-1abc-584b-ab23-7a05c969670d" ```