# Evidence package — Wrong root, false PASS

**Claim supported:** A repository guard (Caliber criterion **C77**) returned `PASS` while inspecting
the **wrong root** — it anchored its target resolution to the worktree where its own script file lived,
so it audited an empty worktree and returned `findings: []` regardless of what the operator-invoked
repo actually contained. It was corrected to resolve the target from the **active working context**
(cwd-first, falling back to the script location only when cwd is outside any FoundryOS repo) and now
emits `targetRoot`, `scriptRoot`, and `rootResolution` as evidence — so a pass is tied to the repo
actually inspected. (Articles: foundational *four-failures* table; technical companion §10.)

**Claim IDs:** E3-C001
**Evidence level:** fleet-codified (installed → enforced → exercised → outcome → fleet-codified)
**Access classification:** Sanitized public excerpt

## What this package proves, and what it does not

**Proves:** the wrong-root defect was real and is described in the fix plan's own words
(`c77-fix-plan-excerpt.md` — `PASS, findings: []` from the main repo while a sibling gate surfaced four
drift states); the resolver was changed from script-anchored to cwd-first with a script fallback
(`root-resolution-before-after.md`, quoting the shipped scanner source); and the fix ties a verdict to
the inspected repo by emitting `targetRoot` / `scriptRoot` / `rootResolution` in every report payload
(`evidence-fields.md`).

**Does not prove:** that the specific four-app / four-drift-state pre-fix run can be re-executed from
this package — that was a one-time 2026-05-08 observation against the live FoundryOS fleet, recorded in
the plan, not reproducible here. The package evidences the guard defect and its structural correction,
not the live state of any app at that moment.

## Source

- **Source date:** 2026-05-08 (plan authored + fix shipped); package built 2026-08-02.
- **Source commit:** `24ec65306` (FoundryOS monorepo).
- **Original internal locations:** `system/caliber/lib/c77-app-submodule-mutation-discipline.mjs`
  (root resolution ~L153-156; report payload ~L630-632);
  `system/caliber/docs/plans/2026-05-08-c77-finding-coverage-fix.md`.

## Redaction statement

No secrets, credentials, private URLs, or customer/staff/tenant identifiers appear in these artifacts.
The sources are scanner logic and an internal fix-plan document. The one sanitization applied: the fix
plan names four internal FoundryOS portfolio apps (one of which is a live client-deployed app) together
with their specific git-drift states as the pre-fix observation; those slugs and states are not
load-bearing for this claim (which is about wrong-root resolution and evidence emission), so they are
generalized to "four FoundryOS apps" / "four distinct drift states" in `c77-fix-plan-excerpt.md`. The
operator's absolute developer path is generalized to `<repo-root>` — the claim needs only "the main-repo
target the scanner should have inspected," not the username-bearing local path. See `manifest.json` →
`redactions`.

## Reproduction

- Root resolution: read `system/caliber/lib/c77-app-submodule-mutation-discipline.mjs` ~L153-156 and
  confirm `const foundryRoot = cwdRoot || scriptRoot;` (cwd-first, script-fallback).
- Evidence emission: read the same file ~L630-632 and confirm the report payload carries `targetRoot`,
  `scriptRoot`, and `rootResolution: cwdRoot ? 'cwd-first' : 'script-fallback'`.
- The bug + fix narrative: `system/caliber/docs/plans/2026-05-08-c77-finding-coverage-fix.md`
  (title L3; Objective L27-33; Current behavior L57 + L77; Phase 1 L108-149).
