docs: publish beta status and beginner-first README#2
Conversation
…se tag pending The repository at github.com/getaskclaw/fable-session is public with private vulnerability reporting enabled and verified, branch-protected main, and every pre-publication verification green on merge commit efff572 (PR #1). Move the release-status docs and the offline readiness policy from the pre-flip phase contract to the post-flip public-beta contract: - PUBLIC_RELEASE_CHECKLIST.md: drop the stale BLOCKED/private wording; mark visibility, private vulnerability reporting, branch protection, and all pre-publication verification items resolved with concise evidence; keep the permanent never-push-the-old-history warning; keep exactly one unchecked item — pushing the v0.3.0-beta.1 prerelease tag after this status PR merges and protected-main CI passes. - README.md: status section now says the repository is public, reporting is enabled, and the source-level gates are complete, without claiming the GitHub prerelease exists before the tag workflow succeeds; pre-PyPI install warnings unchanged. - tests/public_readiness_check.py: enforce the canonical post-flip wording offline — reject regressions to blocked/private/unchecked operational claims, require checked visibility/reporting/protection records and the sole pending-tag item; license, URL, clean-history, credential, internal-identifier, SECURITY, no-bypass and history-gate checks preserved. - tests/test_public_readiness.py, tests/test_mit_release.py: pre-flip contract tests and stale private-repository comments updated to the post-flip contract, with new checker-guard regression tests. SECURITY.md needed no change: its reporting path was already publication-independent and carries no private-repository claim. No runtime code, workflows, packaging, version, or release-gate changes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- README.md (181 lines): one-sentence plain-words explanation (local Python wrapper for the Claude Code CLI — not a model, not an Anthropic product), the user-supplied 'Session paused' screenshot preserved byte-for-byte at docs/assets/fable-5-session-paused.jpg with its visible message (numbered options included) transcribed as indexable plain text, explicit what-it-does / what-it-never-does framing, prerequisites, the unchanged tag-pinned install path and pre-PyPI warning, a first dry run, the three-command lifecycle, docs links, and the truthful status/MIT section. - docs/REFERENCE.md: the deep lifecycle/config/state/privacy/audit/ watch/migration/development/release material moved verbatim from the README with relative links corrected; no contract weakened. - docs/QUICKSTART.md: one safe end-to-end beginner example — checkout, registry (Fable 5 high, fallback stop, no budget cap), repo profile, task file, dry run, launch, one watch, one audit — placeholders only, no raw Claude launch, no bypass flags. - tests: readiness checker and unit tests now require the beginner explanation, screenshot path + exact preserved bytes, indexable transcription, no-bypass wording, Quickstart/Reference links and resolvable relative links, and a loose landing-page length band; the deep payload/budget/usage/migration assertions follow their prose to docs/REFERENCE.md. All existing public/security/history claims stay enforced. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…--follow watch - explicit "Why try it?" / "Why trust it?" / "Who should try it" / "Current limits" sections, backed only by verified evidence: 500+ automated tests behind protected-main CI, stdlib-only runtime, tracked-tree and full-history readiness scans, offline wheel install smoke, SHA-pinned actions, and the one real Linux / Claude Code 2.1.208 smoke (stdin task delivery, budget-fixture pass-through, bounded watch usage, exact marker, PURE actor audit with honest auxiliary-Haiku reporting, measured total cost) - docs/VALIDATION.md: compact, privacy-safe record of that smoke and the deterministic release gates, with explicit limitations and no claims beyond what actually ran - beginner lifecycle corrected to exactly one `watch --manifest ... --follow` that exits at the terminal state (README and Quickstart; audit after the watcher exits); the deep reference keeps every watch mode unchanged - readiness checker/tests now gate the proof/audience/limits wording, the validation link, and the one-watch --follow lifecycle via phrase needles — no snapshots, no exact line or test counts Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Confidence Score: 5/5
Summary
Docs-and-tests-only PR that flips the release checklist from pre-flip BLOCKED to the verified public-beta state and replaces the 656-line README with a 260-line beginner-first landing page plus docs/QUICKSTART.md, docs/REFERENCE.md, and docs/VALIDATION.md. Every claim checked out against live state: the repo is actually public, private vulnerability reporting is enabled, main is protected with the required test check (enforced for everyone), no v0.3.0-beta.1 tag or release exists yet, and the CI test check is green on the PR head. Locally on the head commit: all 548 unit tests pass (5 initial errors were only missing PyYAML in my sandbox; CI pins PyYAML==6.0.2), the tracked-tree readiness scan, full-history scan (exactly 8 commits, 92 unique blobs as claimed), compileall, and the empty-tree whitespace gate all pass. The screenshot bytes match the claimed SHA-256, the README transcription matches the image word for word, and the image contains no hostnames, usernames, paths, or prompt text. No src/, workflow, or pyproject changes. Only minor, non-blocking nits below.
Important Files Changed
| File | Overview |
|---|---|
| PUBLIC_RELEASE_CHECKLIST.md | Status flipped from BLOCKED to 'the source is PUBLIC'; visibility, vulnerability-reporting, and branch-protection gates recorded as resolved (all three independently verified true via the GitHub API); the permanent old-history warning is preserved; exactly one unchecked item remains, the v0.3.0-beta.1 tag. No concerns. |
| README.md | Full rewrite into a 260-line beginner-first landing page: plain-words explanation, the Session paused screenshot with a verbatim indexable transcription (verified against the image), evidence-backed why-try/why-trust/audience/limits sections, pre-PyPI install warning with tag-pinned commands only, and links into docs/. Claims (548 tests as '500+', protected-main CI, public repo, reporting enabled, no prerelease yet) all verified truthful. |
| docs/QUICKSTART.md | New end-to-end beginner walkthrough: checkout install, registry, profile, task file, dry run, explicit launch, exactly one watch --follow, one audit. Uses safe placeholders, no credentials, no bypass flags, no budget key; the --version output claim matches pyproject's 0.3.0b1. |
| docs/REFERENCE.md | New 575-line operator reference carrying the deep material moved out of the README: payload privacy contract, budget pass-through, audit verdicts, watch events, migration table, development, release notes. Content matches the prior README's technical contracts; tests enforce that the key contracts (switchModelsOnFlag, payload_files_created, verdicts, event vocabulary) are preserved here. |
| docs/VALIDATION.md | New privacy-safe evidence record for the one real smoke (Linux, Claude Code 2.1.208, exact marker, exact cost, budget flag disclosed as a fixture) plus deterministic gates and an explicit limitations section. Contains no hostnames, usernames, absolute paths, session ids, or transcript text, as claimed. |
| docs/assets/fable-5-session-paused.jpg | New 26,049-byte JPEG. SHA-256 matches the PR's claimed 7df57175...2e86a54f exactly, and a test pins the hash so the bytes cannot silently change. Image content matches the README transcription word for word and contains no private information. |
| tests/public_readiness_check.py | Gate updated from pre-flip to post-flip truth: now fails on stale private/BLOCKED wording, requires the public status and resolved gates in the checklist with exactly one unchecked item, and adds beginner-README, evidence-README, one-follow-lifecycle, and validation-record contract checks. Passes on this tree; the inverted assertions are consistent with the verified live repo state. |
| tests/test_mit_release.py | Mirror of the readiness-gate flip in unittest form: checklist status is public, private-claim needles banned, prerelease-existence claims banned until the tag workflow runs, reporting recorded as enabled-after-flip. All pass. |
| tests/test_public_readiness.py | Adds ~340 lines of new doc-contract tests: screenshot hash pin and tracking, README landing-page band (100-300 lines), transcription and no-bypass wording, evidence sections, one --follow lifecycle, Quickstart order and safety, relative-link resolution, and Reference contract preservation. All 548 tests pass. One tiny robustness nit noted inline. |
Findings
- The exact smoke cost string $0.15400099999999997 is now pinned verbatim in five places (README.md:106, docs/VALIDATION.md:52, tests/test_public_readiness.py:466, tests/public_readiness_check.py:547 and :613). This is clearly deliberate truth-pinning, but any future rewording or rounding of the evidence will fail two CI gates at once; consider centralizing the smoke constants (marker, cost, budget flag) in one shared module the checker and tests both import. Non-blocking.
Summary
Session pausedscreenshot unchanged, with its visible wording repeated as indexable text;Why try it?,Why trust it?, intended audience, non-audience, and current limitations with verified evidence rather than marketing;watch --followfollowed by one audit;v0.3.0-beta.1tag as the sole remaining release action after merge and protected-main CI.Safety and scope
7df5717543f0b5b6853b0e302708d2f68c1b251a7f72719e4e2a927b2e86a54f;Verification
python3.12 -m compileall -q src testspython3.12 -m unittest discover -s tests— 548 passedRelease state
The source repository is public, private vulnerability reporting is enabled, and protected
mainrequires thetestCI check and pull requests. This PR does not create or claim a prerelease. After merge and protected-main CI pass, the only remaining action is thev0.3.0-beta.1tag workflow.