2026 08 08 lib 002 resolution round 5
Verification result
PASS — SACM23-LIB-002 may be marked verified under #295 outcome 2: library
interchange conformance and application editing coverage are separate claims;
an unsupported application edit refuses visibly with the document unchanged,
and refused paths are application limitations, not unclaimed library
capability. All three round-4 exit conditions are met; per that record's
commitment, the new findings below are follow-ups, not flip-blockers.
- Condition 1 met. All three seam-unsupported fallbacks (
CreateTopGoal,CreateChildElement,CreateChallenge) route throughApplyLibraryPrimaryOrLegacy→ the guarded bridge (src/core/commands/element_commands.cpp). Pinned bySaveFromLibrary.SACM23_LIB_002_TopGoalFallbackRefusesRatherThanDeleteArtifactContent, which asserts the round-4 triple: the guard's refusal (the seam-rejection path says "The SACM library rejected", so the pin cannot pass on the wrong failure), tracked-file byte-identity, and live-document presence ofevent_release,prop_confidentiality,group_evidence. The round-4 probe was independently relinked against the rebuilt Release libraries at HEAD and re-run: probe A onartifact-full-valid.sacm.xminow measuressuccess=false, guard refusal, byte-identical file, all seven markers alive in file and live document — versus round 4's measured success and 8-of-9-elements deletion at the same point.apply_add_top_goalverifiably reports unsupported on the argument-less shape, so the pin exercises the fallback, not the seam. - Condition 2 met. The bare-reasoning safe-fail is pinned
(
SaveFromLibrary.SACM23_LIB_002_ChildUnderReasoningFallbackFailsWithFileUntouched; the fixture is genuinely bare — no inference referencesAR_bare— and fully representable, so the guard passes and the mutator's failure surfaces through the bridge).CreateChallengeis structurally guarded, stronger than the written-argument alternative the condition allowed. ForRemoveRelationship, the written argument, both legs verified: (1)apply_delete_elementsetsoutcome.supported = trueunconditionally (src/sacm_adapter/document_edit.cpp), so the seam path always engages in production; (2) the raw fallbacks — including the identical shape inRemoveElementNodeAndDescendants — are reachable with a document present only viaallow_library_primary = false, which nothing undersrc/assigns; it appears only in three test files as a deliberate test seam. Retiring or documenting that seam remains a standing follow-up. - Condition 3 met. Matrix cell reads Activity (12.8), Term (10.7); the
preservation record's five read 12.9/12.7/12.8/10.7/10.8 — all matching
libs/sacm/include/sacm/model/artifact.handterminology.h.
Scope
- Requirement IDs: SACM23-LIB-002 (primary); AF-STD-011 re-checked — the round-4 overstatement caveat dissolves, the row's refusal claim is now universally true.
- Files inspected:
element_commands.cpp(full),library_bridge.cpp(full),command_bus.cpp(diff + Stage-5 warning wording),document_edit.cpp(apply_add_top_goal,apply_delete_element),command_bus.h; matrix row diff, preservation-record diff, metamodel inventory, round-4 record, feature-matrix AF-STD-011.libs/sacmunchanged this round (diff 0429834..7e178ac confirmed). - Tests run (after rebuild; the committed binary predated HEAD by 44 s):
SaveFromLibrary.*22/22; the round-4 broader filter 64/64; fulltests.exe1116/1118 (2 ×DraftExampleProject.*, environmental — locally modifiedexamplessubmodule, out of scope per rounds 3–4);sacm_tests.exe110 pass / 2 skipped (opt-in corpus); matrix, catalog and feature-matrix checkers clean. - Break-verification of the condition-1 pin accepted on the lead's report, mechanical grounds, and the independent probe at the production measurement point.
Findings
| Severity | Requirement ID | Finding | Required fix |
|---|---|---|---|
| Record-required | SACM23-LIB-002 | The RemoveRelationship written argument (above) satisfies condition 2's third alternative and lives in this record, extended to the identical raw-fallback shape in RemoveElement NodeAndDescendants. |
Recorded here; none further. |
| Minor (follow-up, not a flip-blocker) | SACM23-LIB-002 | The guard's refusal message ends "creating, deleting and challenging elements still work, as they do not use it" — false in exactly the context where a create fallback was just refused (measured in probe A output). | Drop or condition the trailing sentence; no test change required. |
| Env | — | DraftExampleProject.* ×2 — locally modified examples submodule (user WIP). LocalizationTest.* ×2 fail only when tests.exe runs from build/Release (cwd assumption) — harness artifact. |
Out of scope. |
Matrix updates allowed
- May mark verified: SACM23-LIB-002, with the Notes lead sentence replaced by: with a library document present, every bus command either applies through the library seams or routes its legacy fallback through the guarded bridge; the seam-unsupported create fallbacks (round-4 probe A) refuse rather than rewrite the file. The rest of the cell — gap disclosure, refused-kind list with corrected clause numbers, links — stays as written.
- Must remain open: nothing on this row.
Follow-up slice suggestions
- Fix the guard refusal message's trailing sentence (Minor above).
- Carried: retire or document
allow_library_primary; the no-bus dispatch branch (sync_library_documentunguarded, reachable for any standalone-opened file, typed-content consequence undisclosed); empty the sweep's rejected-fixtures list; extend the sweep to attribute fingerprints; assert the empty root-levelAP_detailpackage survives the metaClaim/structure save; one sentence in the audit docs on replay of pre-fix NodeOnly events against unrepresentable documents.