Skip to content

Reconcile the stacker + packages coverage-ledger slice (claims 150 files, actual 161) #326

Description

@ckrough

Found during the #93 review; PR #321 re-pointed one path in this document but did not reconcile the slice.

docs/security/coverage-ledger.md line 183 states the stacker + packages slice as an exact invariant:

The row set below equals git ls-files apps/stacker packages exactly (150 files). The issue estimated 152 files (110 stacker + 42 packages); the actual tracked count is 150 (108 stacker + 42 packages), a -2 delta.

That equality no longer holds. Measured against origin/main at fbceedd:

Ledger claims Actual Delta
apps/stacker 108 112 +4
packages 42 49 +7
Total 150 161 +11

The 7 new packages/ files are all packages/llm/, added by #93. Six of them have no ledger row; only packages/llm/src/evermore_llm/gateway_client.py appears, and only because PR #321 re-pointed its existing retriever row to the new path. The +4 stacker delta predates #93 and comes from unrelated merges.

This matters more than a stale number. The document states the row set equals git ls-files exactly, so the count is a checkable invariant, and a reader can no longer trust it to mean the slice is fully audited. The unrowed files are:

  • packages/llm/README.md
  • packages/llm/pyproject.toml
  • packages/llm/src/evermore_llm/__init__.py
  • packages/llm/src/evermore_llm/py.typed
  • packages/llm/tests/test_gateway_client.py
  • packages/llm/uv.lock

None is high-scrutiny: five are config, docs, or an empty marker, and the sixth is a test file with no credential handling. The security review on PR #321 returned no blocking findings against them. This is a bookkeeping gap, not a suspected vulnerability.

  • Add rows for the 6 unrowed packages/llm/ files, class and depth per the epic Audit every file and workflow against a threat model #222 mapping.
  • Reconcile the 4 unrowed apps/stacker files (identify which merges added them).
  • Update the line 183 count to the reconciled total and correct the per-directory split.
  • Check whether the closing total at line 501 ("447 of 466 tracked files finalized") needs the same correction.
  • Consider a CI check asserting the row count equals git ls-files for each slice, so this cannot drift silently again.

Acceptance Criteria

  • Line 183's stated count equals git ls-files apps/stacker packages at the merge commit.
  • Every file in that slice has a ledger row with a definitive verdict, none left pending audit.
  • The closing coverage total is consistent with the per-slice counts.

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationsecuritySecurity review, hardening, and threat-model work

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions