Skip to content

XCSV-REFACTOR-TOOLS-001: repository guardrails and CI audits - #43

Merged
x-cessive merged 8 commits into
mainfrom
tools/xcsv-refactor-tools-001-issue37
Aug 21, 2026
Merged

XCSV-REFACTOR-TOOLS-001: repository guardrails and CI audits#43
x-cessive merged 8 commits into
mainfrom
tools/xcsv-refactor-tools-001-issue37

Conversation

@x-cessive

@x-cessive x-cessive commented Aug 21, 2026

Copy link
Copy Markdown
Owner

XCSV-REFACTOR-TOOLS-001 / Issue #37

Mode: TOOL / TEST / CI.

Candidate branch: tools/xcsv-refactor-tools-001-issue37
Final accepted candidate SHA: 9eab5d708f12e3d44c3460982103f5a312512af3

This PR was opened by the independent control-plane reviewer because the Codex execution token successfully pushed the candidate branch but lacked initial createPullRequest / issue-comment permission. That tooling limitation is preserved as historical trajectory evidence; it is not represented as an implementation failure.

Historical trajectory preserved

The initial candidate body recorded an older candidate (425a427a84cd1fd1057f54dcc9c2806828481bc1) and broad guardrail/tooling scope. Subsequent review corrections established CI enforcement, source provenance, credential scrubbing, audit precision, documentation enforcement, and trigger coverage. Final acceptance is for 9eab5d708f12e3d44c3460982103f5a312512af3.

Final established controls

  • exact member gitlink verification for required member sources:
    • addons / XCSV_ADDONS: 1481d6492524f0c9ecefaf8e48c3ae94e3c2f504
    • catalogue / Exile: 64f5dff61059bdad2c1d608b60dcd00e583defa3
    • guard / XCSV_GUARD: af497d0dc6fb60dcf1bccbafcc531c7038d64f0c
  • XCSV_MEMBER_REPO_TOKEN read-only member access for private member checkout.
  • credential-bearing Git URL rewrite scrubbed before repository-controlled scripts execute.
  • RequireMemberSources enforcement.
  • FailOnFindings enforcement: deterministic FAIL findings fail CI; WARN and live-only UNKNOWN / NOT_REVERIFIED remain reported honestly.
  • sourceReady enforcement for member-dependent audits.
  • repository/component completeness audit.
  • CfgExileCustomCode audit.
  • network-message audit.
  • XM8/UI audit.
  • init/event/scheduler audit.
  • trader/economy audit.
  • XCSV_ADDONS <-> Exile mirror-drift audit.
  • documentation generated-drift enforcement using existing docs tooling.
  • documentation link enforcement using existing docs tooling.
  • docs/wiki/** trigger coverage so direct generated-doc edits cannot bypass drift enforcement.
  • warning precision corrections for mission.sqm Item*, documentation execVM, XM8 app source mapping, stale paths, and mirror-drift summaries.

Cold rehydration truth

  • TRANSCRIPT_VALIDATOR = VERIFIED
  • FRESH_WORKER_LAUNCHER = UNKNOWN_BLOCKED
  • END_TO_END_COLD_REHYDRATION_PASS = NOT_ESTABLISHED

No end-to-end cold-rehydration PASS is claimed.

Accepted validation

GitHub Actions workflow: XCSV AI contract drift
Run: 32533081982
Result: SUCCESS

Passed jobs:

  • Verify XCSV-AI-CONTRACT 1.0.0
  • Sync policy regression suite
  • Repository fabric guardrails

CI-safe guardrail audit evidence from the accepted run:

  • member sources clean and checked out at exact XCSV gitlinks
  • credential scrub verification passed
  • sourceReady = true
  • required member-dependent audit families executed
  • real audit summary: PASS=4, WARN=60, FAIL=0, UNKNOWN=4

Inventory observation

Candidate-generated inventory reports:

  • total components: 334
  • SOURCE_WIRED: 35
  • classification remains PARTIAL_SOURCE_VERIFIED

This change does NOT establish live deployment/runtime truth. Live Arma server, deployed PBOs, database, BattlEye, RPT/boot, player behavior, and full fresh-worker cold rehydration remain UNKNOWN / NOT_REVERIFIED unless separately inspected.

Review posture

Independently accepted as PASS_REFACTOR_GUARDRAILS_CANDIDATE. Merge/publication/reconciliation must still preserve normal repository history and avoid member-repository/runtime mutation.

@x-cessive x-cessive left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Independent review — CHANGES REQUIRED BEFORE MERGE

The candidate branch is preserved and the audit architecture is directionally good, but PR #43 is not merge-safe yet because the CI wiring does not currently enforce the guardrails it claims to enforce.

  1. CI checkout does not initialize member submodules.

.github/workflows/ai-contract-drift.yml uses actions/checkout with submodules: false, while xcsv-repository-guardrails.ps1 requires verified addons, catalogue, and guard sources before running registry completeness, CfgExileCustomCode, network, XM8, init/event/scheduler, trader/economy, and mirror-drift checks.

With uninitialized submodules those member observations become non-verified, $sourceReady becomes false, and the core audits are skipped. The workflow can therefore report success while never evaluating the real XCSV member-source constellation.

  1. CI-safe audit does not fail the job on deterministic FAIL findings.

The workflow invokes xcsv-repository-guardrails.ps1 -Mode CI_SAFE_SOURCE_CHECK -Json but omits -FailOnFindings.

The script exits non-zero only when -FailOnFindings is supplied. Therefore deterministic FAIL findings can still yield exit code 0 and a green GitHub Actions job.

Required correction:

  • initialize the exact member submodules needed by the CI-safe audit, or otherwise provide a reproducible verified source constellation;
  • run the audit in enforcement mode so deterministic FAIL findings fail CI;
  • preserve WARN / UNKNOWN as non-fatal where the contract permits them;
  • add a regression proving a prepared FAIL causes non-zero process exit / failed enforcement, while UNKNOWN live-only evidence does not;
  • prove the CI-safe path actually executes the member-dependent audit families rather than skipping them because source verification failed.

Cold rehydration note: the current implementation validates a supplied transcript but does not itself launch/anchor a genuinely fresh worker. That is useful validation logic, but it does not yet satisfy the full harness objective from issue #37. Either add an explicit repository-anchored fresh-worker launcher where the admitted environment supports it, or report the launcher portion UNKNOWN/BLOCKED while retaining the transcript validator as a component of the harness. Do not claim end-to-end cold-rehydration PASS from fixture text alone.

Do not merge. Preserve the existing good audit functions/tests and make this a narrow CI/harness correction.

Copy link
Copy Markdown
Owner Author

XCSV-REFACTOR-TOOLS-001 CI-enforcement/cold-harness correction receipt.

Candidate SHA: 50f5214db20df1fe36aa82cc79086ead80186ea0

Implemented correction:

  • CI checkout now uses submodules from XCSV gitlinks instead of submodules: false.
  • CI guardrail invocation now uses -RequireMemberSources -FailOnFindings.
  • CI asserts member source identity, expected gitlink SHA equality, clean member worktrees, sourceReady=true, and execution of: registry-completeness, cfgexilecustomcode, network-messages, xm8-ui, init-event-scheduler, trader-economy, mirror-drift.
  • CfgExileCustomCode parser strips SQF block/line comments, removing the false FAIL from Exile’s commented myaddon\myfunction.sqf example.
  • Cold rehydration now distinguishes TRANSCRIPT_VALIDATOR from FRESH_WORKER_LAUNCHER; launcher is UNKNOWN_BLOCKED unless a genuine fresh worker is launched. No end-to-end PASS is claimed.

Enforced local audit proof:

  • sourceReady=True
  • member-dependent audits executed: registry-completeness,cfgexilecustomcode,network-messages,xm8-ui,init-event-scheduler,trader-economy,mirror-drift
  • summary: PASS 3, WARN 213, FAIL 0, UNKNOWN 4

Source observations:

  • XCSV 50f5214db20df1fe36aa82cc79086ead80186ea0, clean
  • XCSV_ADDONS 1481d6492524f0c9ecefaf8e48c3ae94e3c2f504, expected gitlink same, clean
  • Exile 64f5dff61059bdad2c1d608b60dcd00e583defa3, expected gitlink same, clean
  • XCSV_GUARD af497d0dc6fb60dcf1bccbafcc531c7038d64f0c, expected gitlink same, clean
  • XCSV_ORCH not supplied to CI-safe audit: NOT_REVERIFIED

Validation:

  • repository guardrail regression suite: PASS
  • enforced CI-safe repository guardrail audit: PASS
  • component inventory precision: PASS 4/4
  • provenance/reproducibility: PASS 3/3
  • member-source/gitlink: PASS 5/5
  • root/ORCH cleanliness: PASS 5/5
  • sync-policy: PASS 33/33
  • continuity-state: PASS 5/5
  • current-state: PASS 5/5
  • JSON parse: PASS
  • duplicate component IDs: PASS
  • docs generation: PASS
  • generated-doc drift check: PASS
  • docs links: PASS, 41 files
  • text safety: PASS, 25 scripts
  • git diff --check: PASS

Runtime/deployment/DB/BattlEye/boot/player evidence remains NOT_REVERIFIED / UNKNOWN.

PR body update via gh pr edit was blocked by token scope: GraphQL: Resource not accessible by personal access token (updatePullRequest). This comment records the corrected candidate evidence. Do not merge pending independent review and CI completion.

Copy link
Copy Markdown
Owner Author

XCSV-REFACTOR-TOOLS-001 follow-up receipt after CI-enforcement correction.

Latest candidate SHA: c1de799a416b5f0473cda76fea05ff3078185353

Additional correction after run 32453915918:

  • Kept hub checkout separate from member checkout.
  • Added explicit XCSV_MEMBER_REPO_TOKEN precondition for cloning private member repositories.
  • Member submodules are initialized with git submodule update --init --recursive, which checks out the exact XCSV gitlink SHAs, not arbitrary latest member heads.
  • CI still runs -RequireMemberSources -FailOnFindings and asserts source identity/gitlink/cleanliness plus required audit-family execution.

Latest GitHub Actions run:

  • Workflow: XCSV AI contract drift
  • Run: 32454139853
  • Head: c1de799a416b5f0473cda76fea05ff3078185353
  • Verify XCSV-AI-CONTRACT 1.0.0: SUCCESS
  • Sync policy regression suite: SUCCESS
  • Repository fabric guardrails: FAILURE

Failure evidence:

  • job 96688071900
  • failed step: Checkout required member submodules at XCSV gitlinks
  • exact blocker: XCSV_MEMBER_REPO_TOKEN is required to clone private member repositories for repository-fabric guardrails.
  • evidence from earlier run 32453915918: default GITHUB_TOKEN could clone public catalogue but failed for private XCSV_ADDONS and XCSV_GUARD with Repository not found.

This is now an explicit CI configuration blocker, not a false PASS. The workflow no longer skips member-dependent audits or reports healthy CI without member sources.

Local validation after final correction:

  • repository guardrail regression suite: PASS
  • enforced CI-safe guardrail audit: PASS
  • sourceReady=True
  • required audits executed: registry-completeness,cfgexilecustomcode,network-messages,xm8-ui,init-event-scheduler,trader-economy,mirror-drift
  • enforced audit summary: PASS 3, WARN 213, FAIL 0, UNKNOWN 4
  • git diff --check: PASS

Cold rehydration remains split:

  • TRANSCRIPT_VALIDATOR: verified by deterministic tests, including wrong Command Deck/the-stack context rejection.
  • FRESH_WORKER_LAUNCHER: UNKNOWN_BLOCKED; no end-to-end PASS claimed.

Runtime/deployment/DB/BattlEye/boot/player evidence remains NOT_REVERIFIED / UNKNOWN.

Stop condition: PR #43 is not merge-ready while Actions lacks the required member repository read token. No merge performed.

Copy link
Copy Markdown
Owner Author

XCSV-REFACTOR-TOOLS-001 audit signal-precision correction receipt.

Candidate SHA: da4dd81f5b41911a09109bb6602e86260c7d089d
PR state: #43 remains draft/open/unmerged.

Implemented only the requested precision correction:

  • Trader/economy audit no longer treats generic mission.sqm Item0..Item66 class duplication as trader/economy authority.
  • Trader/economy audit now requires concrete trader/economy surfaces or semantics before duplicate class findings are emitted.
  • Init/event/scheduler audit now scans executable/config source surfaces only, excludes README/.txt/generated/historical docs, and strips SQF comments before matching hook tokens.
  • XM8/UI audit no longer warns solely because a registered AppXX lacks a same-name source directory; mapping now requires config/source/registry/wiring evidence, with unknown source mapping reported only where justified.
  • Stale path/version audit no longer flags absolute paths merely for being absolute; known operational paths are not warned solely by shape, and obsolete/conflicting path findings require evidence.

False positives removed / precision proof:

  • mission.sqm generic Item0..Item66 duplicate trader/economy warnings: removed; focused count = 0.
  • R3F_LOG/addons_config/logistics_config_maker_tool/readme.txt execVM init/scheduler warning: removed; focused count = 0.
  • XM8 same-name-folder-only warning model removed; current real XM8 result is PASS.
  • Stale absolute path noise reduced to evidence-sensitive obsolete/conflicting warnings only.

Real enforced CI-safe audit on candidate:

  • sourceReady: true
  • required member-dependent audits executed: registry-completeness, cfgexilecustomcode, network-messages, xm8-ui, init-event-scheduler, trader-economy, mirror-drift
  • summary: PASS 4, WARN 60, FAIL 0, UNKNOWN 4
  • remaining WARN areas are diagnostic candidates, primarily executable init/event/scheduler hooks and mirror drift candidates.
  • live/runtime/deployment/DB/BattlEye/boot/player evidence remains NOT_REVERIFIED / UNKNOWN.

GitHub Actions:

  • workflow: XCSV AI contract drift
  • run: 32456383941
  • head: da4dd81f5b41911a09109bb6602e86260c7d089d
  • Verify XCSV-AI-CONTRACT 1.0.0: SUCCESS
  • Sync policy regression suite: SUCCESS
  • Repository fabric guardrails: SUCCESS, job 96694377541
  • CI log confirms required member submodules were checked out from XCSV gitlinks and guardrails ran with -RequireMemberSources -FailOnFindings.

Validation matrix:

  • repository guardrail precision/enforcement tests: PASS
  • enforced CI-safe repository guardrail audit: PASS
  • component inventory precision: PASS 4/4
  • provenance/reproducibility: PASS 3/3
  • member-source/gitlink: PASS 5/5
  • root/ORCH cleanliness: PASS 5/5
  • sync-policy: PASS 33/33
  • continuity-state: PASS 5/5
  • current-state: PASS 5/5
  • JSON parse: PASS
  • duplicate component IDs: PASS
  • docs generation: PASS, 19 pages
  • generated-doc drift check: PASS
  • docs links: PASS, 41 files
  • text safety: PASS, 25 scripts
  • git diff --check: PASS
  • RAG rebuild: not rerun; no canonical wiki/source content changed in this precision-only correction.

Preserved controls:

  • CI member source checkout/token gate remains in place.
  • RequireMemberSources enforcement remains active.
  • FailOnFindings enforcement remains active.
  • WARN/UNKNOWN remain non-fatal where contractually appropriate; deterministic FAIL still fails CI.
  • Cold rehydration remains split: TRANSCRIPT_VALIDATOR verified, FRESH_WORKER_LAUNCHER remains UNKNOWN_BLOCKED without a genuine fresh worker.

COMPLETION_IMPACT: v1.0.0
CHANGED_SURFACES: tools/xcsv-repository-guardrails.ps1, tools/tests/repository-guardrails.tests.ps1
DOC_IMPACT: NONE - no canonical documentation content changed; generated docs validated unchanged.
TEST_IMPACT: UPDATED - precision regressions added for trader/economy, init/event/scheduler, XM8/UI mapping, and stale path handling.
INTERFACE_IMPACT: CHANGED_DOCUMENTED - guardrail audit output semantics are narrowed to evidence-backed findings; CLI contract unchanged.
SECURITY_IMPACT: NO_CHANGE_REVIEWED - CI source provenance/fail gates preserved; no runtime authority expanded.
OPERATIONAL_IMPACT: UPDATED - CI-safe diagnostic signal quality improved; live deployment checks remain out of scope.
CROSS_REPO_IMPACT: NONE - member repositories read only; no member mutation.
COMPATIBILITY_IMPACT: NONE
FRESHNESS[XCSV]: VERIFIED_CURRENT at da4dd81f5b41911a09109bb6602e86260c7d089d
FRESHNESS[XCSV_ADDONS]: VERIFIED_CURRENT at gitlink 1481d6492524f0c9ecefaf8e48c3ae94e3c2f504 in CI guardrail job
FRESHNESS[Exile]: VERIFIED_CURRENT at gitlink 64f5dff61059bdad2c1d608b60dcd00e583defa3 in CI guardrail job
FRESHNESS[XCSV_GUARD]: VERIFIED_CURRENT at gitlink af497d0dc6fb60dcf1bccbafcc531c7038d64f0c in CI guardrail job
FRESHNESS[live runtime/deployment/DB/BattlEye/boot/player]: NOT_REVERIFIED / UNKNOWN

Stop condition: pushed and verified for independent review. PR #43 not merged.

@x-cessive x-cessive left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

INDEPENDENT CONTROL REVIEW — CHANGES REQUIRED BEFORE MERGE

Candidate reviewed: da4dd81
GitHub Actions run 32456383941 is green and the real member-source audit executes correctly. The false-positive precision correction is accepted.

Three remaining CI/control blockers:

  1. TRIGGER COVERAGE GAP
    The workflow path filters do not currently include the member gitlink paths (addons, catalogue, guard) or .gitmodules, so a future member-pointer change can bypass the repository guardrails entirely. The stale-doc audit scans README and all current wiki/*.md, but the workflow does not trigger on README.md or general wiki/**; edits such as wiki/Runbook.md can therefore bypass the audit. The permanent guardrail must run when its authoritative inputs change.

  2. PRIVATE TOKEN HYGIENE
    The member checkout step writes XCSV_MEMBER_REPO_TOKEN into a global Git URL rewrite and leaves that credential-bearing rewrite in Git configuration while PR-controlled PowerShell tests/audit code executes. Even though the token is read-only/scoped and logs mask secrets, later PR code must not be able to recover the credential from Git config. Limit credential lifetime to the member checkout operation, remove/scrub the rewrite immediately afterward, and assert no credential-bearing rewrite remains before executing repository scripts.

  3. #31 DOCUMENTATION GUARDRAILS NOT ACTUALLY WIRED INTO CI
    Issue #37 explicitly owns permanent enforcement of the already-proven documentation controls. The current workflow does not execute tools/build-docs.ps1, tools/check-doc-links.ps1, or tools/check-docs-generated.ps1 as CI gates. Static AI-contract assertions are not equivalent. CI must detect canonical wiki -> generated docs drift, broken internal links, and missing/generated-marker drift using the existing tools, not a new framework.

Preserve the current sourceReady/member-gitlink enforcement, -RequireMemberSources, -FailOnFindings, warning precision, mirror findings, and UNKNOWN live/cold-launcher boundaries. Do not merge yet.

@x-cessive
x-cessive force-pushed the tools/xcsv-refactor-tools-001-issue37 branch from 5dcff9c to 996a926 Compare August 21, 2026 21:22
@x-cessive
x-cessive force-pushed the tools/xcsv-refactor-tools-001-issue37 branch from 996a926 to 8bbf1db Compare August 21, 2026 21:25

Copy link
Copy Markdown
Owner Author

XCSV-REFACTOR-TOOLS-001 CI/control correction receipt.

Candidate SHA: 8bbf1db787bb2a9c02a159c56df26094f9f56feb
PR state: #43 remains draft/open/unmerged.

Implemented only the three accepted CI/control corrections:

  1. Workflow trigger coverage
  • Extended both push/main and pull_request path filters for repository-fabric inputs:
    • .gitmodules
    • addons, addons/**
    • catalogue, catalogue/**
    • guard, guard/**
    • README.md
    • wiki/**
    • tools/build-component-inventory.ps1
    • tools/build-docs.ps1
    • tools/check-doc-links.ps1
    • tools/check-docs-generated.ps1
    • tools/xcsv-repository-guardrails.ps1
    • registry/components.json
    • tools/tests/**
    • .github/workflows/ai-contract-drift.yml
  • Preserved existing AI-contract trigger paths.
  • Added workflow-contract regression assertions proving required trigger paths remain present for both push and PR.
  1. Private member credential scrub
  • XCSV_MEMBER_REPO_TOKEN remains required for private member checkout.
  • Credential-bearing Git URL rewrite is now scoped to the submodule checkout block only.
  • The rewrite is removed in finally immediately after git submodule update --init --recursive.
  • CI now verifies no x-access-token URL rewrite remains before repository-controlled scripts run.
  • Exact gitlink checkout, member identity, member cleanliness, RequireMemberSources, and FailOnFindings remain active.
  1. Existing [XCSV-REFACTOR-DOCS-001] Wiki, README, generated docs + documentation authority cleanup #31 docs guardrails in CI
  • Wired the existing docs tooling into the repository guardrails job:
    • tools/check-docs-generated.ps1, which invokes tools/build-docs.ps1
    • tools/check-doc-links.ps1
    • git diff --quiet/--exit-code -- docs/wiki for real content drift without Windows CRLF false positives
  • CI now detects canonical wiki -> docs/wiki generation drift, broken internal links, and missing generated projection markers through the existing generated-doc equivalence model.
  • Added deterministic test fixtures proving synchronized docs pass, generated-doc drift fails, broken internal link fails, and missing generated marker fails.

Important CI correction note:

  • Run 32527946527 failed because docs generation ran before source preflight and made XCSV source dirty.
  • Run 32528199268 failed because a git status --porcelain check treated Windows CRLF normalization as generated-doc drift.
  • Both control-ordering defects are corrected in the final candidate.

Final GitHub Actions evidence:

  • Workflow: XCSV AI contract drift
  • Run: 32528401373
  • Head: 8bbf1db787bb2a9c02a159c56df26094f9f56feb
  • Verify XCSV-AI-CONTRACT 1.0.0: SUCCESS, job 96915288113
  • Sync policy regression suite: SUCCESS, job 96915288408
  • Repository fabric guardrails: SUCCESS, job 96915288450
  • Repository guardrail CI steps passed:
    • Checkout required member submodules at XCSV gitlinks
    • Verify member checkout credential scrubbed
    • Repository guardrail regression suite
    • CI-safe repository guardrail audit
    • Documentation generation and link guardrails

CI source evidence:

  • XCSV_ADDONS checked out at gitlink 1481d6492524f0c9ecefaf8e48c3ae94e3c2f504
  • Exile checked out at gitlink 64f5dff61059bdad2c1d608b60dcd00e583defa3
  • XCSV_GUARD checked out at gitlink af497d0dc6fb60dcf1bccbafcc531c7038d64f0c
  • Member credential scrub step passed before repository-controlled scripts ran.
  • sourceReady: true
  • Required member-dependent audits executed: registry-completeness, cfgexilecustomcode, network-messages, xm8-ui, init-event-scheduler, trader-economy, mirror-drift
  • Real CI-safe audit summary remains: PASS 4, WARN 60, FAIL 0, UNKNOWN 4

Local validation matrix:

  • repository guardrail tests, including new CI-contract/docs fixtures: PASS
  • enforced CI-safe repository guardrail audit: PASS, PASS 4 / WARN 60 / FAIL 0 / UNKNOWN 4
  • component inventory precision: PASS 4/4
  • provenance/reproducibility: PASS 3/3
  • member-source/gitlink: PASS 5/5
  • root/ORCH cleanliness: PASS 5/5
  • sync-policy: PASS 33/33
  • continuity-state: PASS 5/5
  • current-state: PASS 5/5
  • JSON parse: PASS
  • duplicate component IDs: PASS
  • generated-doc drift check: PASS
  • docs links: PASS, 41 files
  • text safety: PASS, 25 scripts
  • git diff --check: PASS

Preserved accepted behavior:

  • exact private member checkout remains enforced
  • member cleanliness and gitlink verification remain enforced
  • RequireMemberSources remains active
  • FailOnFindings remains active
  • audit precision fixes remain preserved
  • live/runtime/deployment/DB/BattlEye/boot/player truth remains NOT_REVERIFIED / UNKNOWN
  • cold rehydration remains: TRANSCRIPT_VALIDATOR available, FRESH_WORKER_LAUNCHER UNKNOWN_BLOCKED, END_TO_END_PASS=false

COMPLETION_IMPACT: v1.0.0
CHANGED_SURFACES: .github/workflows/ai-contract-drift.yml, tools/tests/repository-guardrails.tests.ps1
DOC_IMPACT: NONE - no canonical documentation content changed; docs guardrail enforcement was added and generated docs validated unchanged.
TEST_IMPACT: UPDATED - workflow trigger/credential/docs guardrail regressions added.
INTERFACE_IMPACT: CHANGED_DOCUMENTED - CI workflow enforcement changed; guardrail CLI contract unchanged.
SECURITY_IMPACT: CHANGED_REVIEWED - private member token exposure window reduced; credential rewrite scrub is asserted before repository code runs.
OPERATIONAL_IMPACT: UPDATED - CI now runs on submodule/wiki/docs/tooling inputs and enforces docs guardrails.
CROSS_REPO_IMPACT: NONE - member repositories read-only; no member mutation.
COMPATIBILITY_IMPACT: NONE
FRESHNESS[XCSV]: VERIFIED_CURRENT at 8bbf1db787bb2a9c02a159c56df26094f9f56feb
FRESHNESS[XCSV_ADDONS]: VERIFIED_CURRENT at gitlink 1481d6492524f0c9ecefaf8e48c3ae94e3c2f504 in CI
FRESHNESS[Exile]: VERIFIED_CURRENT at gitlink 64f5dff61059bdad2c1d608b60dcd00e583defa3 in CI
FRESHNESS[XCSV_GUARD]: VERIFIED_CURRENT at gitlink af497d0dc6fb60dcf1bccbafcc531c7038d64f0c in CI
FRESHNESS[live runtime/deployment/DB/BattlEye/boot/player]: NOT_REVERIFIED / UNKNOWN

Stop condition: pushed and verified for independent review. PR #43 not merged.

@x-cessive x-cessive left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Independent review of final CI/control correction: the requested trigger expansion, member-credential scrub, private-member gitlink verification, fail-closed enforcement, and #31 documentation checks are all implemented and the GitHub Actions run is green. One remaining trigger gap blocks merge: the workflow does not include docs/wiki/** in push/pull_request path filters. Because docs/wiki is the generated projection that check-docs-generated.ps1 is meant to protect, a direct/manual edit to a non-AI generated page (for example docs/wiki/Architecture.md) can currently bypass this workflow entirely. Add docs/wiki/** to both path-filter sets and cover it in the workflow-contract regression/static assertion. Do not change the guardrail logic otherwise. Then rerun Actions and stop for final review.

Copy link
Copy Markdown
Owner Author

XCSV-REFACTOR-TOOLS-001 final trigger-gap correction receipt.

Candidate SHA: 9eab5d708f12e3d44c3460982103f5a312512af3
PR state: #43 remains draft/open/unmerged.

Implemented only the accepted final gap:

  • Added docs/wiki/** to push -> paths in .github/workflows/ai-contract-drift.yml.
  • Added docs/wiki/** to pull_request -> paths in .github/workflows/ai-contract-drift.yml.
  • Updated the existing workflow-contract/static regression so docs/wiki/** is a required trigger path.

Reason preserved:

  • docs/wiki is the generated documentation projection protected by tools/check-docs-generated.ps1.
  • Direct/manual edits to generated pages such as docs/wiki/Architecture.md now trigger CI, so generated-doc drift cannot bypass enforcement.

Local validation:

  • tools/tests/repository-guardrails.tests.ps1: PASS
  • git diff --check: PASS

GitHub Actions:

  • Workflow: XCSV AI contract drift
  • Run: 32533081982
  • Head: 9eab5d708f12e3d44c3460982103f5a312512af3
  • Verify XCSV-AI-CONTRACT 1.0.0: SUCCESS, job 96928833322
  • Sync policy regression suite: SUCCESS, job 96928833605
  • Repository fabric guardrails: SUCCESS, job 96928833462

Preserved controls:

  • XCSV_MEMBER_REPO_TOKEN requirement unchanged
  • credential scrub before repository-controlled code unchanged
  • exact member gitlink checkout unchanged
  • RequireMemberSources unchanged
  • FailOnFindings unchanged
  • sourceReady enforcement unchanged
  • documentation generation/drift checks unchanged
  • documentation link checks unchanged
  • audit precision behavior unchanged
  • live/runtime remains UNKNOWN / NOT_REVERIFIED

Stop condition: pushed and verified for independent review. PR #43 not merged.

@x-cessive x-cessive left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

INDEPENDENT CONTROL REVIEW — PASS_REFACTOR_GUARDRAILS_CANDIDATE

Accepted candidate: 9eab5d7

Verified:

  • PR #43 remains open/draft/unmerged and mergeable.
  • GitHub Actions run 32533081982 = SUCCESS on the exact candidate head.
  • docs/wiki/** now triggers both push/main and pull_request workflow paths.
  • Static workflow-contract regression requires docs/wiki/** in both trigger sets.
  • Required member submodules are checked out at exact XCSV gitlinks.
  • credential-bearing member-repo rewrite is scrubbed before repository-controlled scripts execute.
  • sourceReady/RequireMemberSources/FailOnFindings enforcement remains active.
  • member-dependent audit families execute.
  • existing documentation generated-drift/marker/link guardrails execute in CI.
  • runtime/deployment/DB/BattlEye/RPT/player truth remains UNKNOWN / NOT_REVERIFIED.
  • cold-rehydration fresh-worker launcher remains UNKNOWN_BLOCKED; no PASS is fabricated.

Verdict: PASS_REFACTOR_GUARDRAILS_CANDIDATE.

Next authorized action is the bounded merge/post-merge reconciliation transaction. Do not broaden into gameplay/runtime or member-repository mutation.

@x-cessive
x-cessive marked this pull request as ready for review August 21, 2026 22:38
@x-cessive
x-cessive merged commit 39de15c into main Aug 21, 2026
3 checks passed

Copy link
Copy Markdown
Owner Author

FINAL MERGE / PUBLICATION / RECONCILIATION RECEIPT

XCSV-REFACTOR-TOOLS-001 / issue #37

Accepted candidate:

  • 9eab5d708f12e3d44c3460982103f5a312512af3

PR metadata:

Pre-merge gate:

  • PR head verified immediately before merge: 9eab5d708f12e3d44c3460982103f5a312512af3
  • Base verified immediately before merge: 46ce3a4f73d7d2989fff9101cfbb030b5567585a
  • PR state: open, ready, mergeable, unmerged
  • Accepted PR workflow run: 32533081982 = SUCCESS
    • Verify XCSV-AI-CONTRACT 1.0.0 = SUCCESS
    • Sync policy regression suite = SUCCESS
    • Repository fabric guardrails = SUCCESS

Merge:

Post-merge validation checkout:

  • Isolated worktree: D:\XCSV_TOOLS_POSTMERGE_ISSUE37
  • HEAD: 39de15c0b3dd9897e53be168a6436e071cb4e487
  • Submodule/gitlink observations:
    • addons / x-cessive/XCSV_ADDONS: observed 1481d6492524f0c9ecefaf8e48c3ae94e3c2f504; expected gitlink 1481d6492524f0c9ecefaf8e48c3ae94e3c2f504; clean; VERIFIED_AT_OBSERVATION
    • catalogue / x-cessive/Exile: observed 64f5dff61059bdad2c1d608b60dcd00e583defa3; expected gitlink 64f5dff61059bdad2c1d608b60dcd00e583defa3; clean; VERIFIED_AT_OBSERVATION
    • guard / x-cessive/XCSV_GUARD: observed af497d0dc6fb60dcf1bccbafcc531c7038d64f0c; expected gitlink af497d0dc6fb60dcf1bccbafcc531c7038d64f0c; clean; VERIFIED_AT_OBSERVATION
    • XCSV_ORCH: NOT_REVERIFIED in this transaction; no explicit ORCH source supplied.

Local validation matrix:

  • tools/tests/repository-guardrails.tests.ps1: PASS
  • tools/tests/component-inventory.tests.ps1: PASS, 4/4
  • tools/tests/component-inventory-provenance.tests.ps1: PASS, 3/3
  • tools/tests/component-inventory-member-source.tests.ps1: PASS, 5/5
  • tools/tests/component-inventory-source-cleanliness.tests.ps1: PASS, 5/5
  • tools/tests/sync-policy.tests.ps1: PASS, 33/33
  • tools/tests/continuity-state.tests.ps1: PASS, 5/5
  • tools/tests/current-state.tests.ps1: PASS, 5/5
  • JSON parse validation: PASS for repository identity/current-state/cold-rehydration/components schemas and data
  • Duplicate component IDs: PASS, 334 components
  • tools/build-docs.ps1: PASS, 19 generated docs/wiki pages
  • tools/check-docs-generated.ps1: PASS
  • tools/check-doc-links.ps1: PASS, 41 files
  • tools/check-text-safety.ps1: PASS, 25 scripts scanned
  • tools/build-memory-index.ps1: PASS, 489 entries using post-merge wiki source
  • tools/build-rag-index.ps1: PASS using post-merge XCSV/member source inputs and temp output
  • git diff --check: PASS
  • Final post-merge validation worktree status: clean

Enforced CI-safe repository audit from merged main:

  • Invocation: tools/xcsv-repository-guardrails.ps1 -Mode CI_SAFE_SOURCE_CHECK -RequireMemberSources -FailOnFindings -Json
  • sourceReady = true
  • Summary: PASS=4, WARN=60, FAIL=0, UNKNOWN=4
  • Credential scrub local verification: no global credential-bearing x-access-token URL rewrite present after member checkout.
  • Required member-dependent audit families executed:
    • registry-completeness
    • cfgexilecustomcode
    • network-messages
    • xm8-ui
    • init-event-scheduler
    • trader-economy
    • mirror-drift

Main-branch CI:

  • Workflow: XCSV AI contract drift
  • Main run: 32533816091
  • Head SHA: 39de15c0b3dd9897e53be168a6436e071cb4e487
  • Result: SUCCESS
  • Jobs:
    • Verify XCSV-AI-CONTRACT 1.0.0 = SUCCESS
    • Sync policy regression suite = SUCCESS
    • Repository fabric guardrails = SUCCESS

Documentation publication:

  • Canonical wiki/*.md changed in XCSV-REFACTOR-TOOLS-001: repository guardrails and CI audits #43, so the existing tools/push-wiki.ps1 mechanism was run from the merged-main worktree.
  • Publisher result: wiki already up to date.
  • Independent XCSV.wiki.git clone/hash comparison: WIKI_SYNCHRONIZED
  • Published wiki SHA: d60b1e9d57602ef68e1ffa2074710e3aa12b9adc
  • Compared pages: 20; all tracked wiki/*.md pages byte-equivalent to published wiki.

GitHub Pages:

  • Existing Pages workflow: .github/workflows/pages.yml, source main:/docs
  • Pages run on merge commit: 32533816105 = SUCCESS
    • build job = SUCCESS
    • deploy job = SUCCESS
  • GitHub Pages API: status built, URL https://x-cessive.github.io/XCSV/, build type workflow, source main:/docs
  • Deployed page fetches verified:
    • https://x-cessive.github.io/XCSV/wiki/AI-Tooling.html HTTP 200, expected merged content matched
    • https://x-cessive.github.io/XCSV/wiki/System-Components.html HTTP 200, expected merged content matched

Canonical D:\XCSV reconciliation:

  • Before reconciliation: branch main, HEAD 46ce3a4f73d7d2989fff9101cfbb030b5567585a, origin/main 39de15c0b3dd9897e53be168a6436e071cb4e487, behind 9 commits.
  • No unexpected tracked local work appeared.
  • Preserved untracked tools/local-ai material remained present.
  • Safety branch preserved:
    • safety/xcsv-repo-001-local-main-20260820-212302-2207385017c3
    • points to 2207385017c3b8ea6dc64c59d42fd71262e2c6f9
  • Action taken: git merge --ff-only origin/main
  • Result: D:\XCSV HEAD = 39de15c0b3dd9897e53be168a6436e071cb4e487, branch main, matches origin/main.
  • tools/local-ai remains untracked/local; no git clean was run; safety refs were not deleted.

Post-finalization freshness / observation truth:

  • GitHub main: observed at 39de15c0b3dd9897e53be168a6436e071cb4e487
  • Canonical local D:\XCSV: reconciled to 39de15c0b3dd9897e53be168a6436e071cb4e487, with expected untracked tools/local-ai preserved
  • GitHub Wiki: WIKI_SYNCHRONIZED, published wiki SHA d60b1e9d57602ef68e1ffa2074710e3aa12b9adc
  • GitHub Pages: verified deployed from merge commit via run 32533816105
  • Live Arma server: NOT_REVERIFIED / UNKNOWN
  • Deployed PBOs: NOT_REVERIFIED / UNKNOWN
  • Database: NOT_REVERIFIED / UNKNOWN
  • BattlEye: NOT_REVERIFIED / UNKNOWN
  • RPT/boot evidence: NOT_REVERIFIED / UNKNOWN
  • Player behavior: NOT_REVERIFIED / UNKNOWN
  • Full fresh-worker cold rehydration launcher: UNKNOWN_BLOCKED; no end-to-end PASS manufactured.

Completion impact:

  • COMPLETION_IMPACT: v1.0.0
  • CHANGED_SURFACES: .github/workflows/ai-contract-drift.yml; tools/xcsv-repository-guardrails.ps1; tools/tests/repository-guardrails.tests.ps1; registry/components.json; wiki/AI-Tooling.md; wiki/System-Components.md; docs/wiki/AI-Tooling.md; docs/wiki/System-Components.md
  • DOC_IMPACT: UPDATED - generated docs/wiki projections and GitHub Wiki/Pages verified from canonical source.
  • TEST_IMPACT: UPDATED - new and existing guardrail, inventory, source-provenance, docs, sync, continuity and current-state validations passed.
  • INTERFACE_IMPACT: CHANGED_DOCUMENTED - CI/workflow/tooling interface now enforces member-source and docs guardrails.
  • SECURITY_IMPACT: CHANGED_REVIEWED - token-scoped member checkout retained, credential URL rewrite scrub verified before repository-controlled code.
  • OPERATIONAL_IMPACT: UPDATED - main CI, wiki, Pages and canonical local checkout reconciliation completed.
  • CROSS_REPO_IMPACT: NONE - member repositories inspected read-only; no member mutation.
  • COMPATIBILITY_IMPACT: NONE
  • FRESHNESS[GitHub main]: VERIFIED_AT_OBSERVATION @ 39de15c0b3dd9897e53be168a6436e071cb4e487
  • FRESHNESS[D:\XCSV]: VERIFIED_AT_OBSERVATION @ 39de15c0b3dd9897e53be168a6436e071cb4e487 with preserved local-ai untracked material
  • FRESHNESS[GitHub Wiki]: VERIFIED_AT_OBSERVATION / WIKI_SYNCHRONIZED @ d60b1e9d57602ef68e1ffa2074710e3aa12b9adc
  • FRESHNESS[GitHub Pages]: VERIFIED_AT_OBSERVATION via run 32533816105
  • FRESHNESS[live/runtime/PBO/DB/BattlEye/RPT/player/fresh-worker launcher]: NOT_REVERIFIED / UNKNOWN

STOPPING for independent review.

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