SourceHarbor should not rely on vibes, adjectives, or hidden test folders to justify its public story.
This page defines the public proof ladder.
It is the evidence map for human readers. It is not a machine-rendered current verdict page, and it should not be read as a substitute for commit-sensitive runtime reports.
Public proof stays on three separate ledgers: release evidence, remote main receipts, and external distribution proofs. Each claim below points to the ledger it represents so readers can verify release vs main vs distribution truth without referencing internal planning blueprints.
These prove that the public narrative maps to visible product surfaces:
./bin/sourceharbor help/readerWhat this layer answers:
These prove that the repo is not just presentation:
source .runtime-cache/run/full-stack/resolved.env
./bin/full-stack status
curl -sS "${SOURCE_HARBOR_API_BASE_URL}/healthz"
python3 scripts/governance/check_env_contract.py --strict
python3 scripts/governance/check_host_safety_contract.py
python3 scripts/governance/check_test_assertions.py
eval "$(bash scripts/ci/prepare_web_runtime.sh --shell-exports)"
( cd "$WEB_RUNTIME_WEB_DIR" && npm run lint )
What this layer answers:
Local-proof boundary:
.runtime-cache/run/full-stack/resolved.env as the current local API/Web truth9000, 3000, or 5432 belongs to the clean-path stackCORE_POSTGRES_PORT=15432If you want the stricter long live-smoke lane, run:
./bin/smoke-full-stack --offline-fallback 0
That command goes beyond the base local supervisor proof above. It intentionally enters a stricter provider-backed lane after the base local supervisor proof. By default it now proves the core live product path first, treats notification sender identity as an explicit external sub-lane, and keeps the reader stack as an opt-in check because Miniflux/Nextflux is still a separate floor from the core stack.
These prove that a pipeline run leaves inspectable evidence behind:
GET /api/v1/jobs/{job_id}GET /api/v1/feed/digestsPOST /api/v1/reader/batches/{batch_id}/materializeGET /api/v1/reader/documentsGET /api/v1/reader/navigation-briefPOST /api/v1/retrieval/searchWhat this layer answers:
This layer is stricter:
mainWhat this layer answers:
Current release-side truth still needs one extra sentence kept explicit:
Current remote-proof reading rule:
main, latest release, and workflow-dispatch evidence as separate ledgersheadSha still matches the current remote headCodeQL, dependency-review, trivy-fs, trufflehog, or zizmor, the generated required-checks ledger and any summary docs must match that live setconfig/public/github-profile.json before repeating the claimmain itself is healthymain moves againmain, but that does not automatically refresh package registries,
marketplace directories, or other external listing ledgersmain can move ahead again after docs/governance closeout mergesThis page should also protect readers from a different kind of drift:
Current spike-only directions are summarized in reference/project-positioning.md.
Those future-direction summaries describe what might be worth exploring next. They do not upgrade the current public proof layer on their own.
Current blocker truth is also more specific than generic “missing secret” language:
RESEND_FROM_EMAIL, a verified sender/domain, and a real destination
mailbox.403 story. Recent local proof already covers direct probe, provider canary,
and strict live-smoke preflight; reopening the full live lane still depends
on operator-managed YouTube API access.If you want the shortest honest board of what is already real, what is still secret-gated, and what stays in the spike bucket, read project-status.md.
If you want the stable bucket map for CLI, SDK, hosted, autopilot, and plugin-first positioning, read ecosystem-and-big-bet-decisions.md.
These are fair claims:
These require stronger evidence:
Tracked manifests and public presentation assets are inputs to this layer, not proof on their own.
Historical planning ledgers are archived execution context only. They can explain how the repo arrived here, but they must not be treated as the current public truth for SourceHarbor.
For the shortest current-state summary of what is shipped, what is still gated, and what remains future direction, read project-status.md.
SourceHarbor can be boldly presented, but it must stay truthful:
project-status.md when you need the current shipped-vs-gated scoreboard