Skip to content

test(conflict-guards): pin the recursive declared-conflicts check - #93

Merged
49115566 merged 3 commits into
mainfrom
test/0015-recursive-workflow-guards+0003-recursive-conflicts-guard
Oct 14, 2026
Merged

49115566 merged 3 commits into
mainfrom
test/0015-recursive-workflow-guards+0003-recursive-conflicts-guard

Conversation

@49115566

Copy link
Copy Markdown
Owner

Summary

Pins the recursive behavior of the declared-conflict check at depth ≥3 in the
committed suite. The shipped depth-2 agreement area
(tests/checks/85-conflict-guards.sh, token AC23) capped its target resolver at
one nested segment and built its event stream from a top-level node to its
immediate child only; this change widens the resolver, makes the event build
recurse into a decomposing child, and adds the additive fixture root
tests/fixtures/recursive-conflicts/.

Work item: 0015-recursive-workflow-guards/0003-recursive-conflicts-guard.

Changes

  • tests/checks/85-conflict-guards.sh — widen guard_resolve to the recursive
    grammar NNNN-slug(/MMMM-slug)*; replace the two hardcoded top-level loops with
    guard_walk_node (recurses into a child holding a manifest) and a parameterized
    guard_collect; add the generic fixture_entities analyzer; add the
    AC23 recursive-* assertion blocks. Existing constants, analyzers, and the
    depth-2 AC23 blocks are unchanged.
  • tests/fixtures/recursive-conflicts/ — new committed, read-only fixture tree
    three levels deep with a decomposing child, a legacy 5-column manifest at depth
    2, a shipped child, and malformed/unresolved declarations. Ids stay in the
    non-allocating 92xx fixture space and reference no live work/ path.

Testing

  • bash tests/run.sh → TOTAL: 551 passed, 0 failed, 0 skipped
  • FRAMEWORK_TEST_AREAS=85-conflict-guards bash tests/run.sh → TOTAL: 97 passed, 0 failed, 0 skipped; all 11 AC23 recursive-* labels ok.
  • bash tests/run.sh <fresh clone with no work/**> → 551 passed, 0 failed (proves the area reads no live work/ path).
  • Acceptance criteria covered: AC1–AC12 (see verify.md).

Conflict detection

  • No conflicts detected.
    • Merge base: 8d1a35e (item branch HEAD); git merge-tree --write-tree over HEAD/origin/main reported no conflicted paths.
    • Framework-integrity: no duplicate top-level NNNN; no duplicate per-parent MMMM at any decomposing node; every manifest Depends on resolves within its own Children table and the stored graphs are acyclic.
    • Duplicated inventory/count facts agree and the full suite agreement areas pass.

Reconcile

  • Result: no-op (already up to date) — the item branch was a strict ancestor of origin/main; git merge --no-edit origin/main fast-forwarded to 43382b1, adding only the sibling plan artifacts under work/0015-recursive-workflow-guards/{0001,0002,0004}/.
  • Resolved paths: none (fast-forward, no conflict).
  • Re-verification: bash tests/run.sh → 551 passed, 0 failed, 0 skipped; item checks (area 85) → 97 passed, 0 failed.

Risks

  • The area runs only fixture assertions; the live /conflicts, /status, and /build-gate model runs remain a documented manual residual (unchanged from the shipped depth-2 area).
  • tests/mutation.sh registration for the new fixture root and labels is owned by the sibling 0005-guard-registration-sweep; bash tests/run.sh (the CI command) is unaffected.

Artifacts

  • Spec: work/0015-recursive-workflow-guards/0003-recursive-conflicts-guard/spec.md
  • Design: work/0015-recursive-workflow-guards/0003-recursive-conflicts-guard/design.md
  • Verification: work/0015-recursive-workflow-guards/0003-recursive-conflicts-guard/verify.md
  • Review: work/0015-recursive-workflow-guards/0003-recursive-conflicts-guard/review.md

The depth-2 declaration-model agreement area capped its reference resolver at one nested segment and built its event stream from a top-level node to its immediate child only, so a regression that flattened the declared-conflict check back to two levels would pass the suite unnoticed.

Widen the resolver to the recursive canonical reference grammar `NNNN-slug(/MMMM-slug)*`, replace the hardcoded top-level loops with a recursive walk that descends into a child holding a manifest, and add the additive `tests/fixtures/recursive-conflicts/` tree three levels deep. New `AC23 recursive-*` assertions pin the reference-vs-path discriminator, sibling-first resolution below the root, recursion into a decomposing child, the own union parent-cell union and its drift discrepancy, the cross-level pair predicate, shipped-counterpart exclusion, and malformed/unresolved reporting. The shipped depth-2 fixture and its `AC23` blocks stay unchanged as controls.

Refs: work/0015-recursive-workflow-guards/0003-recursive-conflicts-guard
…-workflow-guards/0003-recursive-conflicts-guard

Tick the nine completed tasks, add verify.md recording the green suite (551 passed, 0 failed), the read-only fresh-clone run, and the AC12 mutation spot check, and add review.md recording the approving verdict with no surviving finding.

Refs: work/0015-recursive-workflow-guards/0003-recursive-conflicts-guard
…-recursive-conflicts-guard

Record the branch, commits, PR #93, and the reconcile result (reconciled by fast-forward; no conflicts) so the shipped signal travels with the branch.

Refs: work/0015-recursive-workflow-guards/0003-recursive-conflicts-guard
@49115566
49115566 merged commit ddda28c into main Oct 14, 2026
2 checks passed
@49115566
49115566 deleted the test/0015-recursive-workflow-guards+0003-recursive-conflicts-guard branch October 14, 2026 15:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant