Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,22 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),

## [Unreleased]

## [0.9.0] - 2026-05-07

Docs follow-up to 0.8.0. No code changes; version bumped to minor for visibility on the PyPI page (the 0.8.0 page rendered with a stale README and pre-Gemini badge).

### Changed

- README badge bumped 0.6.0 → 0.8.0 (was stale on PyPI page despite the 0.8.0 release).
- Top-of-README v0.8.0 callout under `pip install`.
- Quick start GEMINI line gains free-tier link to <https://aistudio.google.com/apikey>.
- **Troubleshooting** subsection added inside *Provider compatibility caveats*: per-provider env-var matrix, missing-key error, deterministic replay sanity check, `--strict-citations`.
- **`README_KR.md` synced** with the 0.8.0 / 0.8.1 changes (Gemini callout, env-var matrix, Troubleshooting in Korean).

### Fixed

- `pyproject.toml` `sdist.include` now lists `README_KR.md` so the Korean README ships in the sdist (was previously omitted, causing GitHub-only Korean docs).

## [0.8.0] - 2026-05-06

### Added
Expand Down
37 changes: 33 additions & 4 deletions README_KR.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,22 @@

[![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.6.0-blue.svg)](https://pypi.org/project/antemortem/)
[![PyPI](https://img.shields.io/badge/pypi-0.8.0-blue.svg)](https://pypi.org/project/antemortem/)
[![Status](https://img.shields.io/badge/status-alpha-orange.svg)](#상태--로드맵)
[![Tests](https://img.shields.io/badge/tests-111%20passing-brightgreen.svg)](tests/)
[![Providers](https://img.shields.io/badge/providers-anthropic%20%7C%20openai%20%7C%20openai--compatible-informational.svg)](#provider-지원)
[![Tests](https://img.shields.io/badge/tests-183%20passing-brightgreen.svg)](tests/)
[![Providers](https://img.shields.io/badge/providers-anthropic%20%7C%20openai%20%7C%20gemini%20%7C%20openai--compatible-informational.svg)](#provider-지원)
[![Methodology](https://img.shields.io/badge/methodology-Antemortem-blueviolet.svg)](https://github.com/hibou04-ops/Antemortem)

> **당신의 다음 feature 에는 7개의 리스크가 있습니다. 그중 5개는 상상 속에만 존재합니다. 2개는 아직 이름조차 붙지 않았습니다.**
>
> Antemortem 은 어느 것이 어느 것인지 — 코드에서, 15분 안에, lint 가 검증할 수 있는 file-and-line 인용과 함께 — 알려줍니다. diff 를 쓰기 전에. 어떤 frontier LLM 에서든 작동: Anthropic, OpenAI, 또는 OpenAI-호환 endpoint (Azure OpenAI, Groq, Together.ai, OpenRouter, 로컬 Ollama).
> Antemortem 은 어느 것이 어느 것인지 — 코드에서, 15분 안에, lint 가 검증할 수 있는 file-and-line 인용과 함께 — 알려줍니다. diff 를 쓰기 전에. 어떤 frontier LLM 에서든 작동: Anthropic, OpenAI, Gemini, 또는 OpenAI-호환 endpoint (Azure OpenAI, Groq, Together.ai, OpenRouter, 로컬 Ollama).

```bash
pip install antemortem
```

> **v0.8.0 (2026-05-06)** — Gemini 2.5 Flash adapter 추가 (Google GenAI SDK, `response_schema` strict-output 경로 + 로컬 Pydantic 검증). 자세한 내용은 [Provider compatibility caveats](README.md#provider-compatibility-caveats) 참조.

English README: [README.md](README.md)

---
Expand Down Expand Up @@ -556,6 +558,33 @@ Semver 는 v1.0 부터 엄격 적용.

---

## Troubleshooting

**`antemortem run`이 401 / Incorrect API key 리턴.** provider SDK가 키는 받았지만 invalid한 경우. 각 provider는 자기 환경변수만 읽습니다 — vendor 간 fallback 없음:

| Provider | 허용 환경변수 |
|---|---|
| `anthropic` | `ANTHROPIC_API_KEY` |
| `openai` | `OPENAI_API_KEY` |
| `gemini` | `GEMINI_API_KEY` **또는** `GOOGLE_API_KEY` (먼저 set된 것이 우선) |

발급 dashboard (Anthropic / OpenAI / [Google AI Studio](https://aistudio.google.com/apikey) for Gemini)에서 키 회수/재발급 후 재export.

**`ProviderError: Gemini API key is required`.** `GEMINI_API_KEY`도 `GOOGLE_API_KEY`도 set되지 않은 경우. free-tier key는 <https://aistudio.google.com/apikey>.

**API 비용 쓰기 전 sanity check.** deterministic replay를 먼저 (키도 네트워크도 불필요):

```bash
PYTHONIOENCODING=utf-8 python examples/demo_replay.py
antemortem lint examples/demo_recon.json
```

여기 통과하면 그 다음에 live `antemortem run`으로.

**Citation은 그럴듯한데 `lint`가 fail한다.** 모델이 disk에 없는 `file:line`을 fabricate한 경우 — `lint`가 잡으려고 만든 정확히 그 failure mode. `--strict-citations`를 넣어 unresolvable citation이 있으면 gate 시점이 아니라 upfront에서 fail시키세요.

---

## 기여

Case study 는 [Antemortem methodology repo](https://github.com/hibou04-ops/Antemortem) 의 `examples/` 아래 PR 로 — 가장 가치 있고 가장 만들기 어려운 기여. Bar: *"모든 classification 이 `file:line` 인용, post-implementation 노트 존재, recon 이 놓친 것에 정직할 것."*
Expand Down
3 changes: 2 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "hatchling.build"

[project]
name = "antemortem"
version = "0.8.0"
version = "0.9.0"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Align release docs with published 0.9.0 version

This release now publishes the package as 0.9.0, but the READMEs that will be shown to users still advertise the PyPI badge as pypi-0.8.0 (rg 'pypi-0.8.0|0.9.0' shows the mismatch in both README files). When this version is uploaded, the PyPI page will again display a stale version badge, which is the exact release problem described in the changelog; update the badge/release text to match the version being published or keep the package version at the documented patch release.

Useful? React with 👍 / 👎.

description = "Model-agnostic CLI for the Antemortem pre-implementation reconnaissance discipline — scaffold, run (Anthropic / OpenAI / Gemini / OpenAI-compatible), optionally critique via a 2-pass adversarial review, and lint antemortem documents with disk-verified file:line citations. Four-level decision gate for CI."
readme = "README.md"
requires-python = ">=3.11"
Expand Down Expand Up @@ -72,6 +72,7 @@ packages = ["src/antemortem"]
include = [
"src/antemortem",
"README.md",
"README_KR.md",
"LICENSE",
"CHANGELOG.md",
"pyproject.toml",
Expand Down
2 changes: 1 addition & 1 deletion src/antemortem/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,4 @@
See https://github.com/hibou04-ops/Antemortem for the methodology.
"""

__version__ = "0.8.0"
__version__ = "0.9.0"
Loading