From 42538bfddec96ece473f9c56c1e852bf5bdfd88f Mon Sep 17 00:00:00 2001 From: Hibou04-ops Date: Sat, 23 May 2026 06:08:18 +0900 Subject: [PATCH] =?UTF-8?q?Release=200.10.4=20=E2=80=94=20restructure=20RE?= =?UTF-8?q?ADME,=20sweep=20remaining=20doc=20badges?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Restructures README.md so high-leverage navigation sits near the top (modeled on the omega-lock README), and re-pins the remaining README-linked docs to a passing-CI commit. README restructure: - README-family links moved directly under the badges - "How is this different?" moved above "Quick start" - verification links grouped under a Verification lead-in Badge sweep (at the v0.10.3 tag these were last touched by a failing-CI commit): - README backlink footer added to the cli_exit_codes, provider_compatibility, and release_hygiene docs - README-family link line completed in EASY_README and EASY_README_KR - pyproject.toml / __init__.py: 0.10.3 -> 0.10.4 - README.md / README_KR.md: version surfaces and tag-pinned links - docs/generated/claims*: regenerated - test_cli_help_text: Quick Start section boundary updated for the new order Co-Authored-By: Claude Opus 4.7 (1M context) --- CHANGELOG.md | 16 ++++++- EASY_README.md | 2 +- EASY_README_KR.md | 2 +- README.md | 82 +++++++++++++++++----------------- README_KR.md | 10 ++--- docs/claim_ledger.md | 2 +- docs/claim_ledger_kr.md | 2 +- docs/cli_exit_codes.md | 4 ++ docs/generated/claims.md | 2 +- docs/generated/claims_kr.md | 2 +- docs/launch_note.md | 4 +- docs/launch_note_kr.md | 4 +- docs/provider_compatibility.md | 4 ++ docs/release-notes/v0.10.4.md | 29 ++++++++++++ docs/release_hygiene.md | 4 ++ pyproject.toml | 2 +- src/antemortem/__init__.py | 2 +- tests/test_cli_help_text.py | 2 +- 18 files changed, 115 insertions(+), 60 deletions(-) create mode 100644 docs/release-notes/v0.10.4.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 9cab720..ee030b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,19 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), ## [Unreleased] +## [0.10.4] - 2026-05-23 + +### Added + +- Added v0.10.4 release notes. + +### Changed + +- Restructured `README.md`: README-family links moved directly under the badges, "How is this different?" moved above "Quick start", and the verification links grouped under a Verification lead-in. +- Re-pinned `README.md` repository links from the `v0.10.3` tag to `v0.10.4`. +- Completed the README-family link line in `EASY_README.md` and `EASY_README_KR.md`. +- Added a README backlink footer to the CLI exit codes, provider compatibility, and release hygiene docs. + ## [0.10.3] - 2026-05-23 ### Added @@ -211,7 +224,8 @@ Initial public release of the Antemortem CLI. Antemortem as a discipline was released as methodology-only in [Antemortem v0.1 / v0.1.1](https://github.com/hibou04-ops/Antemortem). The CLI operationalizes the protocol: scaffold, run, lint — three commands, one week to a disciplined antemortem doc. v0.2 ships the CLI; the methodology repo stays the source of truth for the protocol itself. -[Unreleased]: https://github.com/hibou04-ops/antemortem-cli/compare/v0.10.3...HEAD +[Unreleased]: https://github.com/hibou04-ops/antemortem-cli/compare/v0.10.4...HEAD +[0.10.4]: https://github.com/hibou04-ops/antemortem-cli/compare/v0.10.3...v0.10.4 [0.10.3]: https://github.com/hibou04-ops/antemortem-cli/compare/v0.10.2...v0.10.3 [0.10.2]: https://github.com/hibou04-ops/antemortem-cli/compare/v0.10.0...v0.10.2 [0.10.0]: https://github.com/hibou04-ops/antemortem-cli/releases/tag/v0.10.0 diff --git a/EASY_README.md b/EASY_README.md index 1e81e99..dbf2f3a 100644 --- a/EASY_README.md +++ b/EASY_README.md @@ -1,7 +1,7 @@ # antemortem (CLI) — Easy Start > The short version, for people who found the main README intimidating. -> Full doc: [README.md](README.md) · 한국어 Easy: [EASY_README_KR.md](EASY_README_KR.md) +> README family: [English](README.md) · [한국어](README_KR.md) · [Easy](EASY_README.md) · [쉬운 한국어](EASY_README_KR.md) > Generated source-of-truth claims: [English](docs/generated/claims.md) · [Korean](docs/generated/claims_kr.md). > Trust model: [English](docs/trust_model.md) · [Korean](docs/trust_model_kr.md). > Toolkit positioning: [English](docs/toolkit_positioning.md) · [Korean](docs/toolkit_positioning_kr.md). diff --git a/EASY_README_KR.md b/EASY_README_KR.md index 35bba46..7355572 100644 --- a/EASY_README_KR.md +++ b/EASY_README_KR.md @@ -1,6 +1,6 @@ # antemortem (CLI) — 쉬운 설명 -> 짧은 소개입니다. 전체 문서: [README_KR.md](README_KR.md), English easy: [EASY_README.md](EASY_README.md) +> 짧은 소개입니다. README family: [English](README.md) · [한국어](README_KR.md) · [Easy](EASY_README.md) · [쉬운 한국어](EASY_README_KR.md) > 생성된 source-of-truth claim block: [English](docs/generated/claims.md) · [Korean](docs/generated/claims_kr.md) > 신뢰 모델: [한국어](docs/trust_model_kr.md) · [English](docs/trust_model.md) > Toolkit positioning: [한국어](docs/toolkit_positioning_kr.md) · [English](docs/toolkit_positioning.md) diff --git a/README.md b/README.md index 0f54a86..48cb2c0 100644 --- a/README.md +++ b/README.md @@ -3,13 +3,15 @@ Antemortem checks whether the risks in your implementation plan are `REAL`, `GHOST`, `NEW`, or `UNRESOLVED` before you write the diff. You write the spec, traps, and repo files to inspect; the CLI reads only those files, asks a provider for schema-constrained output, and requires disk-verifiable `file:line` citations for grounded claims. `lint` then re-checks schema, citations, and evidence bindings against the repository. [![CI](https://github.com/hibou04-ops/antemortem-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/hibou04-ops/antemortem-cli/actions/workflows/ci.yml) -[![License: Apache 2.0](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.3/LICENSE) +[![License: Apache 2.0](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.4/LICENSE) [![Python](https://img.shields.io/badge/python-3.11%2B-blue.svg)](https://www.python.org) -[![PyPI](https://img.shields.io/badge/pypi-0.10.3-blue.svg)](https://pypi.org/project/antemortem/) -[![Tests](https://img.shields.io/badge/tests-offline%20CI-brightgreen.svg)](https://github.com/hibou04-ops/antemortem-cli/tree/v0.10.3/tests/) +[![PyPI](https://img.shields.io/badge/pypi-0.10.4-blue.svg)](https://pypi.org/project/antemortem/) +[![Tests](https://img.shields.io/badge/tests-offline%20CI-brightgreen.svg)](https://github.com/hibou04-ops/antemortem-cli/tree/v0.10.4/tests/) [![Providers](https://img.shields.io/badge/providers-anthropic%20%7C%20openai%20%7C%20gemini%20%7C%20openai--compatible-informational.svg)](#provider-support) [![Methodology](https://img.shields.io/badge/methodology-Antemortem-blueviolet.svg)](https://github.com/hibou04-ops/Antemortem) +README family: [English](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.4/README.md) · [한국어](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.4/README_KR.md) · [Easy](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.4/EASY_README.md) · [쉬운 한국어](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.4/EASY_README_KR.md) + **Use it when** - before risky refactors @@ -34,17 +36,19 @@ The CLI has seven commands: `init` / `doctor` / `run` / `lint` / `evidence` / `g pip install antemortem ``` -> **Current release: v0.10.3** — public README claims are checked against source of truth by `python scripts/check_repo_consistency.py`. +> **Current release: v0.10.4** — public README claims are checked against source of truth by `python scripts/check_repo_consistency.py`. + +**Verification** -Generated source-of-truth claims: [English](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.3/docs/generated/claims.md) · [Korean](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.3/docs/generated/claims_kr.md). +Generated source-of-truth claims: [English](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.4/docs/generated/claims.md) · [Korean](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.4/docs/generated/claims_kr.md). -Trust model: [English](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.3/docs/trust_model.md) · [Korean](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.3/docs/trust_model_kr.md). +Trust model: [English](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.4/docs/trust_model.md) · [Korean](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.4/docs/trust_model_kr.md). -Toolkit positioning: [English](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.3/docs/toolkit_positioning.md) · [Korean](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.3/docs/toolkit_positioning_kr.md). +Toolkit positioning: [English](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.4/docs/toolkit_positioning.md) · [Korean](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.4/docs/toolkit_positioning_kr.md). -Claim ledger: [English](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.3/docs/claim_ledger.md) · [Korean](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.3/docs/claim_ledger_kr.md). +Claim ledger: [English](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.4/docs/claim_ledger.md) · [Korean](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.4/docs/claim_ledger_kr.md). -CLI examples: [English](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.3/docs/examples.md) · [Korean](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.3/docs/examples_kr.md). +CLI examples: [English](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.4/docs/examples.md) · [Korean](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.4/docs/examples_kr.md). Provider support: Anthropic / Claude, OpenAI, Gemini, and OpenAI-compatible endpoints that support the structured-output `parse` path. See [Provider compatibility caveats](#provider-compatibility-caveats) before trusting local or partially compatible endpoints. @@ -62,6 +66,22 @@ This replay contract is checked by `tests/test_demo_replay.py`: the test runs th --- +## How is this different? + +| Capability | antemortem-cli | Pre-mortem checklists | LLM "review my plan" prompts | Code review tools | +|---|:-:|:-:|:-:|:-:| +| Risk enumeration template | ✓ | ✓ | varies | ✗ | +| **You frame your traps first (anchoring defense)** | ✓ | sometimes | ✗ | n/a | +| **`file:line` citations on every claim** | ✓ | ✗ | ✗ | varies | +| **Lint re-verifies citations on disk** | ✓ | ✗ | ✗ | partial | +| Pydantic-enforced structured output | ✓ | ✗ | ✗ | ✗ | +| Four-level decision gate enum | ✓ | ✗ | ✗ | ✗ | +| Provider-agnostic (cloud + local) | ✓ | n/a | varies | varies | + +> **Position**: `antemortem-cli` is **recon-first**, not code-review-first. It runs *before* you write the diff, when changing direction is less costly. PR review runs *after* the code exists — different discipline, different stage. + +--- + ## Quick start ### 0. Smoke test — deterministic replay (no API) @@ -120,31 +140,11 @@ antemortem gate antemortem/auth-refactor.md --repo . ### Exit codes -Stable exit codes are documented in [CLI Exit Codes](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.3/docs/cli_exit_codes.md): `0` success, `1` validation failure, `2` usage/configuration error, `3` provider failure, `4` policy gate failure, and `70` reserved internal error. +Stable exit codes are documented in [CLI Exit Codes](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.4/docs/cli_exit_codes.md): `0` success, `1` validation failure, `2` usage/configuration error, `3` provider failure, `4` policy gate failure, and `70` reserved internal error. --- -## How is this different? - -| Capability | antemortem-cli | Pre-mortem checklists | LLM "review my plan" prompts | Code review tools | -|---|:-:|:-:|:-:|:-:| -| Risk enumeration template | ✓ | ✓ | varies | ✗ | -| **You frame your traps first (anchoring defense)** | ✓ | sometimes | ✗ | n/a | -| **`file:line` citations on every claim** | ✓ | ✗ | ✗ | varies | -| **Lint re-verifies citations on disk** | ✓ | ✗ | ✗ | partial | -| Pydantic-enforced structured output | ✓ | ✗ | ✗ | ✗ | -| Four-level decision gate enum | ✓ | ✗ | ✗ | ✗ | -| Provider-agnostic (cloud + local) | ✓ | n/a | varies | varies | - -> **Position**: `antemortem-cli` is **recon-first**, not code-review-first. It runs *before* you write the diff, when changing direction is less costly. PR review runs *after* the code exists — different discipline, different stage. - ---- - -📖 **Want depth?** Full architecture, data contract, design decisions, validation, and FAQ for skeptics below. -👋 **Want simpler?** [EASY_README.md](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.3/EASY_README.md) (English) · [EASY_README_KR.md](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.3/EASY_README_KR.md) -🇰🇷 한국어 README: [README_KR.md](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.3/README_KR.md) - -> **Methodology**: Implements the [Antemortem](https://github.com/hibou04-ops/Antemortem) seven-step protocol as a CLI/CI verification tool: scaffolding, preflight, classification, lint, evidence maintenance, benchmark eval, and gate. Related toolkit roles are documented in [Toolkit Positioning](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.3/docs/toolkit_positioning.md). +> **Methodology**: Implements the [Antemortem](https://github.com/hibou04-ops/Antemortem) seven-step protocol as a CLI/CI verification tool: scaffolding, preflight, classification, lint, evidence maintenance, benchmark eval, and gate. Related toolkit roles are documented in [Toolkit Positioning](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.4/docs/toolkit_positioning.md). --- @@ -284,7 +284,7 @@ Honest scope boundaries: ### Toolkit boundary -`antemortem-cli` is the pre-implementation reconnaissance tool: it classifies implementation-plan risks before code changes and requires citation/evidence checks for its CLI artifact. Adjacent tools such as `omegaprompt`, `omega-lock`, `mini-omega-lock`, and `mini-antemortem-cli` have separate calibration, audit, or preflight roles. See [Toolkit Positioning](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.3/docs/toolkit_positioning.md) for the neutral role map. +`antemortem-cli` is the pre-implementation reconnaissance tool: it classifies implementation-plan risks before code changes and requires citation/evidence checks for its CLI artifact. Adjacent tools such as `omegaprompt`, `omega-lock`, `mini-omega-lock`, and `mini-antemortem-cli` have separate calibration, audit, or preflight roles. See [Toolkit Positioning](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.4/docs/toolkit_positioning.md) for the neutral role map. The tool is opinionated on one axis: **a citation the lint can't verify on disk is not evidence, regardless of how confident the model sounds.** Everything else flows from that. @@ -459,7 +459,7 @@ Use `antemortem evidence --repo . --write-missing` when an exist ## Provider support -`antemortem-cli` speaks to the LLM through an `LLMProvider` Protocol. The discipline is vendor-neutral; only one seam is pluggable. Each adapter uses the structured-output path listed below, and every returned artifact object is Pydantic-validated before write. There is no client-side JSON regex-parsing anywhere in the pipeline. This matrix is validated against `src/antemortem/providers/capabilities.py`; see [Provider Compatibility](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.3/docs/provider_compatibility.md). +`antemortem-cli` speaks to the LLM through an `LLMProvider` Protocol. The discipline is vendor-neutral; only one seam is pluggable. Each adapter uses the structured-output path listed below, and every returned artifact object is Pydantic-validated before write. There is no client-side JSON regex-parsing anywhere in the pipeline. This matrix is validated against `src/antemortem/providers/capabilities.py`; see [Provider Compatibility](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.4/docs/provider_compatibility.md). | Provider | CLI | Default model | API key env | Structured output path | Contract-tested behavior | Caveats | @@ -648,13 +648,13 @@ Every module has a single responsibility; the pipeline is testable end-to-end wi **JSON artifact is the output, markdown is the input.** The model could edit the markdown in place — some tools do that. We don't, for three reasons: (1) the markdown is yours, not the model's; (2) a parse bug in either direction could corrupt hours of work; (3) machine-readable JSON composes cleanly with downstream tooling (CI gates, dashboards, diff viewers). The markdown stays a human artifact. -**~5k-token system prompt, deliberately.** Both Anthropic and OpenAI cache prefixes past their respective thresholds; the prompt is sized to clear both comfortably. A shorter prompt wouldn't cache reliably; a longer one would drift from the discipline it enforces. Every substantive byte is load-bearing: role framing, input format, four labels with exact definitions, citation rules with good/bad examples, anti-patterns list, scope boundary, four few-shot JSON examples. [The full prompt](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.3/src/antemortem/prompts.py) is worth reading as a case study in prompt-cache-aware design. +**~5k-token system prompt, deliberately.** Both Anthropic and OpenAI cache prefixes past their respective thresholds; the prompt is sized to clear both comfortably. A shorter prompt wouldn't cache reliably; a longer one would drift from the discipline it enforces. Every substantive byte is load-bearing: role framing, input format, four labels with exact definitions, citation rules with good/bad examples, anti-patterns list, scope boundary, four few-shot JSON examples. [The full prompt](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.4/src/antemortem/prompts.py) is worth reading as a case study in prompt-cache-aware design. **Pydantic v2 schemas are the data contract, not dict-shaped comments.** `Classification`, `NewTrap`, `AntemortemOutput`, `Frontmatter`, `AntemortemDocument` all flow end-to-end: the SDK validates on the API boundary, `run` writes validated JSON, `lint` validates on load. A malformed classification never gets written to disk, which means it never gets merged into main. **Windows path normalization is cache-invariant, not cosmetic.** `src\foo.py` and `src/foo.py` render the same on disk but are different bytes in the API payload — the cache key is byte-exact. Every path is normalized to forward slashes before content is built. See `api.py:_build_user_content`. This is a 3-line fix that would silently waste ~\$15/100 runs if missed. -**Exit codes are stable and documented.** `1` means validation failed, `2` means usage or configuration is wrong, `3` means the provider call failed before a trustworthy artifact could be written, and `4` means policy blocked a gate or benchmark threshold. The full table is in [CLI Exit Codes](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.3/docs/cli_exit_codes.md). +**Exit codes are stable and documented.** `1` means validation failed, `2` means usage or configuration is wrong, `3` means the provider call failed before a trustworthy artifact could be written, and `4` means policy blocked a gate or benchmark threshold. The full table is in [CLI Exit Codes](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.4/docs/cli_exit_codes.md). **Scope boundary is enforced in the prompt, not suggested.** The system prompt explicitly says: *"You classify what is in the provided files. You do not: speculate about files not shown, comment on architecture beyond the spec's scope, recommend the user adopt a different design, evaluate whether the change is a good idea."* If the user asks for any of those, the model is instructed to note it in `spec_mutations` as "Out of antemortem scope" and proceed. The tool does one thing. @@ -760,7 +760,7 @@ For release readiness, run the full local audit: python scripts/release_audit.py ``` -It runs tests, generated-claim checks, the offline benchmark, build, `twine check`, and the installed-wheel smoke test; it does not publish. See [Release Hygiene](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.3/docs/release_hygiene.md). +It runs tests, generated-claim checks, the offline benchmark, build, `twine check`, and the installed-wheel smoke test; it does not publish. See [Release Hygiene](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.4/docs/release_hygiene.md). GitHub Actions workflow `CI` runs the offline trust checks on Ubuntu and Windows for the supported Python versions, uploads benchmark JSON, and runs wheel smoke installation in a separate job. Normal CI does not require provider API keys. @@ -806,7 +806,7 @@ Related tools are adjacent, not prerequisites: - `mini-omega-lock`: empirical live API preflight - `mini-antemortem-cli`: deterministic analytical preflight, if applicable -The role map and claim boundaries are documented in [Toolkit Positioning](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.3/docs/toolkit_positioning.md). This README stays focused on the packaged CLI. +The role map and claim boundaries are documented in [Toolkit Positioning](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.4/docs/toolkit_positioning.md). This README stays focused on the packaged CLI. --- @@ -909,7 +909,7 @@ The naming is explicit: *postmortem* (after death) → *antemortem* (before deat ## Status & roadmap -v0.10.3 is **alpha**. The CLI contract (seven commands, flags, exit codes) is stable. The JSON artifact schema remains additive in the alpha line; breaking output-shape changes are deferred until an explicit contract-lock release. Prompt iteration continues only when the change can be checked by offline tests, recorded artifacts, or documented replay commands. +v0.10.4 is **alpha**. The CLI contract (seven commands, flags, exit codes) is stable. The JSON artifact schema remains additive in the alpha line; breaking output-shape changes are deferred until an explicit contract-lock release. Prompt iteration continues only when the change can be checked by offline tests, recorded artifacts, or documented replay commands. Semver applies strictly from v1.0. @@ -936,7 +936,7 @@ Semver applies strictly from v1.0. **Explicitly out of scope**: web dashboard, database-backed history, multi-user tenancy, proprietary hosting. -Full changelog: [CHANGELOG.md](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.3/CHANGELOG.md). +Full changelog: [CHANGELOG.md](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.4/CHANGELOG.md). --- @@ -966,7 +966,7 @@ Tool-level contributions (new CLI flags, schema fields, prompt edits) belong in ## Citing ``` -antemortem-cli v0.10.3 — tooling for the Antemortem pre-implementation reconnaissance discipline. +antemortem-cli v0.10.4 — tooling for the Antemortem pre-implementation reconnaissance discipline. https://github.com/hibou04-ops/antemortem-cli, 2026. ``` @@ -980,7 +980,7 @@ https://github.com/hibou04-ops/Antemortem, 2026. ## License -Apache 2.0. See [LICENSE](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.3/LICENSE). +Apache 2.0. See [LICENSE](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.4/LICENSE). **License history.** PyPI distributions of versions 0.2.0, 0.3.0, and 0.4.0 were shipped with an MIT `LICENSE` file. The repository was relicensed to Apache 2.0 on 2026-04-22 (commit `f49af09`); 0.5.0 (2026-04-28) and all later versions ship under Apache 2.0. Anyone who installed 0.4.0 or earlier holds an MIT license to that copy — license changes do not apply retroactively. diff --git a/README_KR.md b/README_KR.md index 0cb11d0..28d66bb 100644 --- a/README_KR.md +++ b/README_KR.md @@ -5,7 +5,7 @@ Antemortem은 diff를 쓰기 전에 구현 계획의 리스크가 `REAL`, `GHOST [![CI](https://github.com/hibou04-ops/antemortem-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/hibou04-ops/antemortem-cli/actions/workflows/ci.yml) [![License: Apache 2.0](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE) [![Python](https://img.shields.io/badge/python-3.11%2B-blue.svg)](https://www.python.org) -[![PyPI](https://img.shields.io/badge/pypi-0.10.3-blue.svg)](https://pypi.org/project/antemortem/) +[![PyPI](https://img.shields.io/badge/pypi-0.10.4-blue.svg)](https://pypi.org/project/antemortem/) [![Status](https://img.shields.io/badge/status-alpha-orange.svg)](#상태--로드맵) [![Tests](https://img.shields.io/badge/tests-offline%20CI-brightgreen.svg)](tests/) [![Providers](https://img.shields.io/badge/providers-anthropic%20%7C%20openai%20%7C%20gemini%20%7C%20openai--compatible-informational.svg)](#provider-지원) @@ -35,9 +35,9 @@ CLI 명령은 7개입니다: `init` / `doctor` / `run` / `lint` / `evidence` / ` pip install antemortem ``` -> **현재 릴리스: v0.10.3** — 공개 README claim은 `python scripts/check_repo_consistency.py`로 source of truth와 대조합니다. +> **현재 릴리스: v0.10.4** — 공개 README claim은 `python scripts/check_repo_consistency.py`로 source of truth와 대조합니다. -English README: [README.md](README.md) +README family: [English](README.md) · [한국어](README_KR.md) · [Easy](EASY_README.md) · [쉬운 한국어](EASY_README_KR.md) 생성된 source-of-truth claim block: [English](docs/generated/claims.md) · [Korean](docs/generated/claims_kr.md). @@ -664,7 +664,7 @@ Lint discipline (disk-verified citations) 은 변하지 않음. Classification ## 상태 & 로드맵 -v0.10.3 는 **alpha**. CLI 계약 (seven commands, flags, exit codes) 은 stable. JSON artifact schema 는 alpha line 안에서 additive 를 우선합니다. Breaking output-shape 변경은 명시적 contract-lock release 로 미룹니다. Prompt iteration 은 offline test, 기록된 artifact, 또는 문서화된 replay command 로 검증 가능한 경우에만 진행합니다. +v0.10.4 는 **alpha**. CLI 계약 (seven commands, flags, exit codes) 은 stable. JSON artifact schema 는 alpha line 안에서 additive 를 우선합니다. Breaking output-shape 변경은 명시적 contract-lock release 로 미룹니다. Prompt iteration 은 offline test, 기록된 artifact, 또는 문서화된 replay command 로 검증 가능한 경우에만 진행합니다. Semver 는 v1.0 부터 엄격 적용. @@ -733,7 +733,7 @@ Case study 는 [Antemortem methodology repo](https://github.com/hibou04-ops/Ante ## 인용 ``` -antemortem-cli v0.10.3 — tooling for the Antemortem pre-implementation reconnaissance discipline. +antemortem-cli v0.10.4 — tooling for the Antemortem pre-implementation reconnaissance discipline. https://github.com/hibou04-ops/antemortem-cli, 2026. ``` diff --git a/docs/claim_ledger.md b/docs/claim_ledger.md index b76c27f..4d0a2cf 100644 --- a/docs/claim_ledger.md +++ b/docs/claim_ledger.md @@ -5,7 +5,7 @@ This ledger maps non-trivial public README claims to a source of truth. Qualitat | Claim | Location | Source of truth | Verification command | Status | |---|---|---|---|---| | The tool classifies implementation-plan risks as REAL, GHOST, NEW, or UNRESOLVED before a diff exists. | README.md:Antemortem checks whether
README_KR.md:Antemortem은 diff를 쓰기 전에
EASY_README.md:Antemortem checks an implementation plan
EASY_README_KR.md:Antemortem은 코드가 생기기 전에 | src/antemortem/schema.py; src/antemortem/decision.py; tests/test_schema.py | pytest -q | source-backed | -| Current package version is source-backed. | README.md:Current release: v0.10.3
README_KR.md:현재 릴리스: v0.10.3 | pyproject.toml; docs/generated/claims.md; docs/generated/claims_kr.md | python scripts/check_repo_consistency.py | generated | +| Current package version is source-backed. | README.md:Current release: v0.10.4
README_KR.md:현재 릴리스: v0.10.4 | pyproject.toml; docs/generated/claims.md; docs/generated/claims_kr.md | python scripts/check_repo_consistency.py | generated | | Repository name, PyPI distribution, install command, import package, and CLI command are intentionally separated. | README.md:# antemortem-cli
README.md:pypi.org/project/antemortem/
README.md:pip install antemortem
README.md:github.com/hibou04-ops/antemortem-cli
docs/generated/claims.md:PyPI distribution | pyproject.toml; scripts/generate_readme_claims.py; scripts/check_repo_consistency.py; tests/test_generate_readme_claims.py; tests/test_repo_consistency.py | python scripts/check_repo_consistency.py | generated | | Offline test suite is verified by CI without a public exact collected-count claim. | README.md:tests-offline%20CI
README_KR.md:tests-offline%20CI
docs/generated/claims.md:Offline test suite | GitHub Actions workflow; docs/generated/claims.md; tests/test_generate_readme_claims.py | python -m pytest -q | command-backed | | Command list contains init, doctor, run, lint, evidence, gate, eval. | README.md:The CLI has seven commands
README_KR.md:CLI 명령은 7개입니다
EASY_README.md:The 7 commands
EASY_README_KR.md:7 commands | src/antemortem/cli.py; docs/generated/claims.md; tests/test_cli.py | python scripts/check_repo_consistency.py | generated | diff --git a/docs/claim_ledger_kr.md b/docs/claim_ledger_kr.md index 9e3ebcb..c0faac0 100644 --- a/docs/claim_ledger_kr.md +++ b/docs/claim_ledger_kr.md @@ -5,7 +5,7 @@ | Claim | Location | Source of truth | Verification command | Status | |---|---|---|---|---| | 구현 계획의 risk를 diff 작성 전에 REAL, GHOST, NEW, UNRESOLVED로 분류한다. | README.md:Antemortem checks whether
README_KR.md:Antemortem은 diff를 쓰기 전에
EASY_README.md:Antemortem checks an implementation plan
EASY_README_KR.md:Antemortem은 코드가 생기기 전에 | src/antemortem/schema.py; src/antemortem/decision.py; tests/test_schema.py | pytest -q | source-backed | -| 현재 package version claim은 source-backed이다. | README.md:Current release: v0.10.3
README_KR.md:현재 릴리스: v0.10.3 | pyproject.toml; docs/generated/claims.md; docs/generated/claims_kr.md | python scripts/check_repo_consistency.py | generated | +| 현재 package version claim은 source-backed이다. | README.md:Current release: v0.10.4
README_KR.md:현재 릴리스: v0.10.4 | pyproject.toml; docs/generated/claims.md; docs/generated/claims_kr.md | python scripts/check_repo_consistency.py | generated | | repository name, PyPI distribution, install command, import package, CLI command는 의도적으로 분리되어 있다. | README_KR.md:# antemortem-cli
README_KR.md:pypi.org/project/antemortem/
README_KR.md:pip install antemortem
README_KR.md:github.com/hibou04-ops/antemortem-cli
docs/generated/claims_kr.md:PyPI distribution | pyproject.toml; scripts/generate_readme_claims.py; scripts/check_repo_consistency.py; tests/test_generate_readme_claims.py; tests/test_repo_consistency.py | python scripts/check_repo_consistency.py | generated | | Offline test suite는 공개 exact collected-count claim 없이 CI에서 검증된다. | README.md:tests-offline%20CI
README_KR.md:tests-offline%20CI
docs/generated/claims_kr.md:Offline test suite | GitHub Actions workflow; docs/generated/claims_kr.md; tests/test_generate_readme_claims.py | python -m pytest -q | command-backed | | command list는 init, doctor, run, lint, evidence, gate, eval이다. | README.md:The CLI has seven commands
README_KR.md:CLI 명령은 7개입니다
EASY_README.md:The 7 commands
EASY_README_KR.md:7 commands | src/antemortem/cli.py; docs/generated/claims.md; tests/test_cli.py | python scripts/check_repo_consistency.py | generated | diff --git a/docs/cli_exit_codes.md b/docs/cli_exit_codes.md index 3296069..4c57111 100644 --- a/docs/cli_exit_codes.md +++ b/docs/cli_exit_codes.md @@ -13,3 +13,7 @@ without parsing human-readable output. | 70 | internal error | Reserved for unexpected tool bugs. Report the command, artifact, and traceback if seen. | The constants live in `src/antemortem/exit_codes.py`. + +--- + +This page is part of the [`antemortem-cli`](../README.md) documentation set. diff --git a/docs/generated/claims.md b/docs/generated/claims.md index 065761d..cfb243e 100644 --- a/docs/generated/claims.md +++ b/docs/generated/claims.md @@ -2,7 +2,7 @@ ## Generated Repository Claims - Repository: `hibou04-ops/antemortem-cli` -- PyPI distribution: `antemortem` `0.10.3` +- PyPI distribution: `antemortem` `0.10.4` - Install: `pip install antemortem` - Python import package: `antemortem` - CLI command: `antemortem` diff --git a/docs/generated/claims_kr.md b/docs/generated/claims_kr.md index f5aac8c..b92723a 100644 --- a/docs/generated/claims_kr.md +++ b/docs/generated/claims_kr.md @@ -2,7 +2,7 @@ ## 생성된 Repository Claim - Repository: `hibou04-ops/antemortem-cli` -- PyPI distribution: `antemortem` `0.10.3` +- PyPI distribution: `antemortem` `0.10.4` - Install: `pip install antemortem` - Python import package: `antemortem` - CLI command: `antemortem` diff --git a/docs/launch_note.md b/docs/launch_note.md index a413353..74fce03 100644 --- a/docs/launch_note.md +++ b/docs/launch_note.md @@ -50,8 +50,8 @@ Run the post-release dry run before upload, or the full post-release check after upload: ```bash -python scripts/post_release_check.py --version 0.10.3 --skip-pypi-network -python scripts/post_release_check.py --version 0.10.3 +python scripts/post_release_check.py --version 0.10.4 --skip-pypi-network +python scripts/post_release_check.py --version 0.10.4 ``` ## Boundaries diff --git a/docs/launch_note_kr.md b/docs/launch_note_kr.md index 9967b00..6a8ce51 100644 --- a/docs/launch_note_kr.md +++ b/docs/launch_note_kr.md @@ -45,8 +45,8 @@ python scripts/release_audit.py upload 전에는 dry run, upload 후에는 전체 post-release check를 실행합니다. ```bash -python scripts/post_release_check.py --version 0.10.3 --skip-pypi-network -python scripts/post_release_check.py --version 0.10.3 +python scripts/post_release_check.py --version 0.10.4 --skip-pypi-network +python scripts/post_release_check.py --version 0.10.4 ``` ## 경계 diff --git a/docs/provider_compatibility.md b/docs/provider_compatibility.md index 91ddf8b..79fb5ce 100644 --- a/docs/provider_compatibility.md +++ b/docs/provider_compatibility.md @@ -26,3 +26,7 @@ The support contract is narrow: pytest -q tests/test_provider_contracts.py python scripts/check_repo_consistency.py ``` + +--- + +This page is part of the [`antemortem-cli`](../README.md) documentation set. diff --git a/docs/release-notes/v0.10.4.md b/docs/release-notes/v0.10.4.md new file mode 100644 index 0000000..b076a55 --- /dev/null +++ b/docs/release-notes/v0.10.4.md @@ -0,0 +1,29 @@ +# Release Notes: antemortem 0.10.4 + +## Summary + +- Package version: `0.10.4` +- Scope: README navigation restructure, CI-status integrity for more README-linked docs, and release surface version metadata. +- Runtime behavior: unchanged; the only runtime source edit is the package `__version__` string. + +## Changed + +- Restructured `README.md` so high-leverage navigation is near the top: the README-family links now sit directly under the badges, "How is this different?" precedes "Quick start", and the verification links are grouped under a Verification lead-in. +- Re-pinned `README.md` repository links from `v0.10.3` to `v0.10.4`. +- Completed the README-family link line in `EASY_README.md` and `EASY_README_KR.md` so every variant lists all four. + +## Fixed + +- Added a README backlink footer to `cli_exit_codes.md`, `provider_compatibility.md`, and `release_hygiene.md`. At the `v0.10.3` tag these README-linked pages were last modified by a failing-CI commit; the `v0.10.4` tag includes a passing-CI commit for them. + +## Release surfaces + +- [README.md](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.4/README.md) +- [README_KR.md](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.4/README_KR.md) +- [EASY_README.md](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.4/EASY_README.md) +- [EASY_README_KR.md](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.4/EASY_README_KR.md) +- [CHANGELOG.md](https://github.com/hibou04-ops/antemortem-cli/blob/v0.10.4/CHANGELOG.md) + +## Publish note + +The `v0.10.4` GitHub tag must exist before uploading to PyPI. Until that tag is pushed, tag-pinned links in the PyPI README can return 404. diff --git a/docs/release_hygiene.md b/docs/release_hygiene.md index 93f457e..82f3eed 100644 --- a/docs/release_hygiene.md +++ b/docs/release_hygiene.md @@ -171,3 +171,7 @@ The wheel smoke test treats `examples/`, `benchmarks/`, and other repository fix ## Publish Boundary This command is a readiness check only. Publishing remains a separate explicit action outside this script. + +--- + +This page is part of the [`antemortem-cli`](../README.md) documentation set. diff --git a/pyproject.toml b/pyproject.toml index 508a83f..191025b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "antemortem" -version = "0.10.3" +version = "0.10.4" description = "CLI for pre-diff risk classification with schema validation and disk-verified citations." readme = { file = "README.md", content-type = "text/markdown" } requires-python = ">=3.11" diff --git a/src/antemortem/__init__.py b/src/antemortem/__init__.py index 467535b..1c5c7a1 100644 --- a/src/antemortem/__init__.py +++ b/src/antemortem/__init__.py @@ -10,4 +10,4 @@ See https://github.com/hibou04-ops/Antemortem for the methodology. """ -__version__ = "0.10.3" +__version__ = "0.10.4" diff --git a/tests/test_cli_help_text.py b/tests/test_cli_help_text.py index 3627fd3..83fae62 100644 --- a/tests/test_cli_help_text.py +++ b/tests/test_cli_help_text.py @@ -101,7 +101,7 @@ def test_help_output_snapshots_cover_every_command(): def test_readme_quick_start_commands_match_cli_help(): readme = (ROOT / "README.md").read_text(encoding="utf-8") - quick_start = readme.split("## Quick start", 1)[1].split("## How is this different?", 1)[0] + quick_start = readme.split("## Quick start", 1)[1].split("## Table of Contents", 1)[0] commands = { match.group(1) for match in re.finditer(r"^antemortem\s+([a-z][a-z0-9_-]*)\b", quick_start, re.M)