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.
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.
Found during the #93 review; PR #321 re-pointed one path in this document but did not reconcile the slice.
docs/security/coverage-ledger.mdline 183 states the stacker + packages slice as an exact invariant:That equality no longer holds. Measured against
origin/mainatfbceedd:apps/stackerpackagesThe 7 new
packages/files are allpackages/llm/, added by #93. Six of them have no ledger row; onlypackages/llm/src/evermore_llm/gateway_client.pyappears, 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-filesexactly, 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.mdpackages/llm/pyproject.tomlpackages/llm/src/evermore_llm/__init__.pypackages/llm/src/evermore_llm/py.typedpackages/llm/tests/test_gateway_client.pypackages/llm/uv.lockNone 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.
packages/llm/files, class and depth per the epic Audit every file and workflow against a threat model #222 mapping.apps/stackerfiles (identify which merges added them).git ls-filesfor each slice, so this cannot drift silently again.Acceptance Criteria
git ls-files apps/stacker packagesat the merge commit.pending audit.