Gitignore disclosure at init time, commit hardening, and docs

The force-add fix shipped (PR #226). It solves the mechanical problem — gitignored infrastructure files now get committed. But there are three gaps:

verdict PASSscore 15 / 15findings 4 (0 risk · 1 debt · 3 obs)duration 23h 11mrejection cycles 0shipped May 29, 2026

Pipeline timeline

Intent to proven code in 23h 11m across Think, Plan, Build, and Verify.

Think
1211m
Plan
74m
Build
7m
Verify
5m

Assertion ledger

15 claims, each independently verified. Showing 8 — show all →

IDSaysMatcher
A001Init warns users when their gitignore blocks infrastructure filesverifiedok
A002The warning appears in the Pipeline readiness sectionverifiedok
A003The warning explains force-add is for worktree compatibilityverifiedok
A004No gitignore warning appears when nothing is gitignoredverifiedok
A005Tracked-but-gitignored dirty files are identified for force-addverifiedok
A006Non-gitignored dirty files are not flagged for force-addverifiedok
A007Empty dirty set produces no force-add candidatesverifiedok
A008Subsequent commits with tracked-but-gitignored files succeedverifiedok

Findings 4 total

obspackages/cli/src/commands/init/index.tsmonitor
Warning text hardcodes '.claude/' but detection covers both .claude/ and .ana/
debtpackages/cli/tests/commands/init/commit.test.tsscope
No integration test for subsequent-commit hardening scenario (A008-A010)
obspackages/cli/tests/commands/init/commit.test.tsclosed
Pre-existing @ana tags from gitignore-force-add contract reuse IDs A001-A021 — ambiguous with this contract's A001-A015
obspackages/cli/src/commands/init/commit.tsclosed
discoverGitignoredDirtyFiles correctly uses --no-index for tracked files — improvement over existing discoverGitignoredFiles pattern

Integrity seal

scopesha256:b9e40fdd535d9...
contractsha256:dc63cde0269c3...
plansha256:ca9f6897735a6...
specsha256:f8235082cb6a0...
build-reportsha256:fa8a4546c6103...
build-datasha256:11aa26897b6d4...
verify-reportsha256:81063c0f24a21...
verify-datasha256:775018ec984e4...
audit cmd$ ana proof audit gitignore-disclosure-and-hardening   → all hashes match