Skip to content

Wave 1A-D: factory-claim-ledger reconciliation (soc-e4ulx)#264

Merged
boshu2 merged 7 commits into
mainfrom
crank/soc-e4ulx
May 8, 2026
Merged

Wave 1A-D: factory-claim-ledger reconciliation (soc-e4ulx)#264
boshu2 merged 7 commits into
mainfrom
crank/soc-e4ulx

Conversation

@boshu2
Copy link
Copy Markdown
Owner

@boshu2 boshu2 commented May 8, 2026

Summary

soc-e4ulx Wave 1 reconciliation of the factory claim ledger contract introduced in soc-kizn.1 (PR #256). Five waves landed in dependency order, plus two pre-push reconciliations that fell out of self-review during the land:

  • Wave 1A (087ff61) — backfill 5 ledger-orphaned <!-- agentops:claim:... --> anchors in README that had been dropped by the soc-nybd README rewrite. Validator flips to PASS.
  • Wave 1B + B-followup (ecd3687, 7ead6c1) — extend ledger coverage to the soc-9xn0 Wave-0 comparison docs and bridge docs (competitive-radar, vs-everything-claude-code, vs-tons-of-skills, trust-factory, wiki-for-agents). The B-followup widens the validator's hardcoded source-set so the bridge docs are actually walked.
  • Wave 1C (82260e9 + c587b36) — wire factory-claim-ledger-strict as an advisory CI job (continue-on-error: true) in validate.yml, emit a structured observation artifact ({run_id, pr_number, verdict, surfaces_touched, timestamp}), and add tests/integration/test-factory-claim-ledger-ci-job.sh to lock in the job shape for Wave 1E to invert. The followup (c587b36) plugs the job into summary.needs and the AGENTS.md CI tables so validate-ci-policy-parity.sh stays green.
  • Wave 1D (eea4f62) — add an Operator Workflow section to the contract doc covering all five closed enums, ledger row maintenance, what each --strict failure mode means, and a worked example using AOP-CLAIM-TRUST-FACTORY-FIVE-STEP-PRIMITIVE.
  • Eval pin (bd10427) — bump pre-push-gate-governance.json BATS count 1..50 -> 1..51 after ce9d42f8 added a 51st test without updating the canary expectation.

Wave 1E (promoting the advisory job to blocking + ledger-update enforcement on PRs that touch source-set surfaces) is intentionally deferred and documented in-job.

Test plan

  • bash scripts/check-factory-claim-ledger.sh -> PASS
  • bash tests/integration/test-factory-claim-ledger-ci-job.sh -> 6/6 pass (T1-T6)
  • bash scripts/test-ci-deterministic-gates.sh -> 4/4 pass (registry-check, skill-lint, heal-skill --strict, codex artifact metadata)
  • bash scripts/validate-ci-policy-parity.sh -> PASS (46 jobs; 6 non-blocking)
  • bats tests/scripts/pre-push-gate.bats -> 51/51 pass
  • bash scripts/pre-push-gate.sh --fast two-pass mode -> Pass 1 PASSED + Pass 2 PASSED
  • mkdocs build --strict (per Wave 1D commit) -> exit 0
  • CI: factory-claim-ledger-strict (advisory) emits observation JSON for this PR
  • CI: validate-ci-policy-parity stays green with new advisory job in non-blocking set

boshu2 added 7 commits May 7, 2026 21:59
Add markers for 5 ledger rows previously orphaned by soc-nybd README rewrite.
Validator scripts/check-factory-claim-ledger.sh now exits 0.
…1B — soc-s805h)

Add anchors plus ledger rows for the Wave-0-refreshed comparison docs that
lacked coverage: competitive-radar.md, vs-everything-claude-code.md, and
vs-tons-of-skills.md. Validator scripts/check-factory-claim-ledger.sh stays
at exit 0.

trust-factory.md and wiki-for-agents.md are Wave-0-shipped but live outside
the validator's hardcoded source set. Coverage there is deferred to Wave
1C/1D, where the source-set widening is in scope; details captured in
.agents/crank/SHARED_TASK_NOTES.md.
…low-up — soc-s805h)

Add docs/trust-factory.md and docs/wiki-for-agents.md to the validator's
collect_repo_sources() set so the issue's listed Files: line is fully covered.
Add markers + ledger rows for AOP-CLAIM-TRUST-FACTORY-FIVE-STEP-PRIMITIVE
and AOP-CLAIM-WIKI-FOR-AGENTS-CORPUS-COMPILATION.

The ledger JSON diff is large because jq normalized inline `source` keys
to multi-line — semantics unchanged.

Validator scripts/check-factory-claim-ledger.sh exits 0.
…ave 1C — soc-lmww1)

Adds `factory-claim-ledger-strict (advisory)` job to .github/workflows/validate.yml:
- runs `bash scripts/check-factory-claim-ledger.sh` via continue-on-error: true
- emits {run_id, pr_number, verdict, surfaces_touched, timestamp} JSON observation
- publishes observation as workflow artifact (not committed to repo)
- merged_anyway / ledger_updated backfill is Wave 1E concern, documented in-job

Also adds `tests/integration/test-factory-claim-ledger-ci-job.sh` to lock in the
job shape (T1-T6 contract assertions) for Wave 1E to invert when promoting to
blocking.

Validator stays at exit 0 on this branch.
… — soc-4ou2q)

Add an Operator Workflow section to the factory-claim-ledger contract doc
covering all five closed enums (validation_level, release_posture,
evidence_status, authority_state, promotion_state), how to add/update/retire
claim rows, what each --strict failure mode means in operator terms, and a
worked example using AOP-CLAIM-TRUST-FACTORY-FIVE-STEP-PRIMITIVE.

Also update the Source Set list to include docs/trust-factory.md and
docs/wiki-for-agents.md (added in Wave 1B follow-up).

Validator: PASS. mkdocs build --strict: exit 0.
… parity (Wave 1C followup — soc-lmww1)

The Wave 1C commit (82260e9) added the factory-claim-ledger-strict
advisory job to validate.yml but skipped two parity surfaces:

- summary.needs did not list it, so the aggregator never waited for it
  and AGENTS↔workflow set-diff parity (validate-ci-policy-parity.sh)
  flagged drift.
- AGENTS.md "CI Jobs" + "Advisory Job Triage SLAs" tables had no
  matching row, so the validator's blocking/non-blocking set diff
  reported the new job as a workflow-only addition.

Fix:

- validate.yml: add factory-claim-ledger-strict to summary.needs and to
  the summary echo block. The job stays advisory because of its own
  step-level continue-on-error: true.
- AGENTS.md: add it to the prose non-blocking list (line 72) and both
  the SLA table and the CI Jobs table — the SLA table sets a 14d
  triage SLA and explicitly defers blocking promotion to Wave 1E.

Validated:

- bash scripts/validate-ci-policy-parity.sh -> PASS (46 jobs;
  6 non-blocking)
- bash scripts/test-ci-deterministic-gates.sh -> 4/4 pass
- bash tests/integration/test-factory-claim-ledger-ci-job.sh -> 6/6 pass
- bash scripts/check-factory-claim-ledger.sh -> PASS


Commit ce9d42f (fix(pre-push): keep fast two-pass advisory scoped) added
a 51st BATS test ("pre-push-gate.sh --fast two-pass keeps pass 2 fast and
skips evals for non-eval changes") but did not update the contract-canary
expectation in evals/agentops-core/pre-push-gate-governance.json, which
still pinned "1..50". Result: agentops-core.pre-push-gate-governance
canary failed locally with:

  pre-push-bats-suite: stdout does not contain "1..50"

bats tests/scripts/pre-push-gate.bats reports 1..51 with all tests
passing, so the count is correct; the eval pin just needs to track it.

Validated:

- bats tests/scripts/pre-push-gate.bats -> 51/51 pass, "1..51" first line
- bash scripts/pre-push-gate.sh --fast -> Pass 1 PASSED, Pass 2 PASSED
- contract canaries gate flips from FAIL -> ok
@boshu2 boshu2 merged commit f331c03 into main May 8, 2026
45 of 46 checks passed
@boshu2 boshu2 deleted the crank/soc-e4ulx branch May 8, 2026 02:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant