Skip to main content

67 posts tagged with "release"

View All Tags

0.19.0 — the plan has a history

· 3 min read
0.19.0 — the plan has a history | AEPThe markdown store gains an append-only journal, so what happened to an artifact becomes a question you can ask rather than a git log you reconstruct. A corrupt line is skipped and counted, never silently dropped.AEPfield-noteaepfield-noteadopterdevelopertry-spec-driven-developmentunderstand-safe-agentic-codingresearch

Source-owned field note · website/blog/2026-08-25-2354-the-plan-has-a-history.md · revision 824869fecbd2

The planning store is markdown files in git, so its history was always there — as git log, in a form you had to reconstruct. This release makes it a question you can ask.

$ protocol artifact history outbound-claim:q3-uptime
2026-08-26T00:08:16Z operator created as draft (revision 1)
2026-08-26T00:08:20Z operator approval recorded from legal review (https://example.invalid/approvals/814) (revision 1)
2026-08-26T00:08:20Z operator moved draft -> cleared (revision 2)
2026-08-26T00:08:20Z operator moved cleared -> sent (revision 3)

0.18.0 — the typed blocker, and a vocabulary that says why it is closed

· 3 min read
0.18.0 — the typed blocker, and a vocabulary that says why it is closed | AEPTwo rungs, and the value is entirely in the type: a blocker is typed by what would clear it, so "blocked" stops being a label on a card. Plus an audit of every adopter-facing vocabulary — open or closed, and what each closure buys.AEPfield-noteaepfield-noteadopterdevelopertry-spec-driven-developmentunderstand-safe-agentic-codingresearch

Source-owned field note · website/blog/2026-08-25-2348-the-typed-blocker.md · revision 824869fecbd2

$ protocol artifact lifecycle blocker
blocker starts at open
cleared -> nothing
open -> cleared

Two rungs. The value is entirely in the type: a blocker is typed by what would clear it, so blocked stops being a label on a card and becomes a statement with a named exit.

0.17.0 — obligation, a commitment on a clock nobody here controls

· 3 min read
0.17.0 — obligation, a commitment on a clock nobody here controls | AEPA second ladder, and the rule attached to it is the point: an obligation must never gate a transition. A missed external deadline is a fact to report, not a permission to withhold.AEPfield-noteaepfield-noteadopterdevelopertry-spec-driven-developmentunderstand-safe-agentic-codingresearch

Source-owned field note · website/blog/2026-08-25-2342-obligation.md · revision 824869fecbd2

An obligation is a commitment on a clock nobody here controls: a customer's deadline, a regulator's window, a partner's delivery date.

$ protocol artifact lifecycle obligation
obligation starts at open
met -> nothing
open -> met, slipped
slipped -> met

0.16.0 — a rung may open on a date, and the clock is read at the edge

· 3 min read
0.16.0 — a rung may open on a date, and the clock is read at the edge | AEPDate and duration operators join the condition language, so a rung can be shut until a date arrives. The kernel still has no clock: the instant is read at the edge and passed in, which is what makes a recorded decision re-checkable by somebody who was not there.AEPfield-noteaepfield-noteadopterdevelopertry-spec-driven-developmentunderstand-safe-agentic-codingresearch

Source-owned field note · website/blog/2026-08-25-2337-a-rung-may-open-on-a-date.md · revision 824869fecbd2

Some rungs should not open yet. A review window. A cooling-off period. A notice period somebody agreed to in a contract.

This release adds date and duration operators to the condition language, so a ladder can say so.

0.15.0 — a rung may cost evidence, and the refusal says which kind of no

· 3 min read
0.15.0 — a rung may cost evidence, and the refusal says which kind of no | AEPA ladder that only says what may follow what models permission, not earning. requires: names what a rung costs, and the refusal distinguishes "on the ladder and not yet earned" from "not on the ladder" — two sentences that lead to different next actions.AEPfield-noteaepfield-noteadopterdevelopertry-spec-driven-developmentunderstand-safe-agentic-codingresearch

Source-owned field note · website/blog/2026-08-25-2258-a-rung-may-cost-evidence.md · revision 824869fecbd2

0.13.0 made the status ladder data. This is the first release that spends it.

A ladder that only says what may follow what models permission, not earning. Anybody could move a story to implemented; the ladder had no opinion about whether anything was implemented.

0.14 — the protocol reads a repository that already exists

· 4 min read
0.14 — the protocol reads a repository that already exists | AEPRelease 0.14.0 adds protocol reverse: four verbs that point the tooling at a repository written with none of this in mind. Three of the four write nothing, so you can run them against your own code before deciding anything.AEPfield-noteaepfield-noteadopterdevelopertry-spec-driven-developmentunderstand-safe-agentic-codingresearch

Source-owned field note · website/blog/2026-08-25-1605-a-repository-that-already-exists.md · revision 824869fecbd2

Every worked example on this site starts from documents that already exist. That is the wrong end for anybody deciding whether to adopt: your repository has a README, a test layout, a CI file and six years of git history, and none of it was written with a protocol in mind.

0.14.0 adds protocol reverse — four verbs that read what a repository already says about itself. Three of the four write nothing at all, which is the part that matters when you are evaluating a tool you do not trust yet: the worst case is a report you disagree with.

0.13 — the ladder is data

· 5 min read
0.13 — the ladder is data | AEPRelease 0.13.0 takes the status ladder every plan item climbs out of Rust and puts it in a YAML file, decided by entity-core — a separate, IO-free kernel. The consequence: modelling a kind of work this repository never anticipated stops needing a pull request here and a release.AEPfield-noteaepfield-noteadopterdevelopertry-spec-driven-developmentunderstand-safe-agentic-codingresearch

Source-owned field note · website/blog/2026-08-25-1444-the-ladder-is-data.md · revision 824869fecbd2

Every plan item in the planning store sits at a status and climbs a ladder: draft → proposed → active → implemented → accepted. Until 0.13.0 that ladder was a hand-written lookup in Rust, and the consequence for anybody using the tool was concrete and annoying: a team whose work does not fit the shapes we happened to think of had to send a pull request to this repository and wait for a release.

It is a YAML file now.

0.12.0 — a workflow declares where a run may write

· 4 min read
0.12.0 — a workflow declares where a run may write | AEPA step now declares the files it is handed and the paths it may write, with partial-only as the word that earns the shape. Measured on four live runs rather than asserted — and the toolset stopped a run the prose had only warned about.AEPfield-noteaepfield-noteadopterdevelopertry-spec-driven-developmentunderstand-safe-agentic-codingresearch

Source-owned field note · website/blog/2026-08-24-1618-where-a-run-may-write.md · revision 824869fecbd2

A workflow step now declares two things it never could: the files it is given, and the paths it may write.

0.11.0 — the corpus becomes ground truth, and a gate that lied gets caught

· 3 min read
0.11.0 — the corpus becomes ground truth, and a gate that lied gets caught | AEPAn outside adopter re-issued the horizons corpus as ground truth, and the scanner followed. Plus the process lesson that cost the most: two gates that aborted at their first step were read as green through a piped exit status.AEPfield-noteaepfield-noteadopterdevelopertry-spec-driven-developmentunderstand-safe-agentic-codingresearch

Source-owned field note · website/blog/2026-08-22-0105-ground-truth-and-docs.md · revision 824869fecbd2

The most useful thing in this release is a mistake it documents.

0.10.0 — evidence gets a shelf life, and the first governed run stops

· 3 min read
0.10.0 — evidence gets a shelf life, and the first governed run stops | AEPA fact decays to Unknown past its horizon, never to False, and no API can extend one. Then the protocol governs a real story out of this repository's own backlog — and blocks four states short of where it was meant to.AEPfield-noteaepfield-noteadopterdevelopertry-spec-driven-developmentunderstand-safe-agentic-codingresearch

Source-owned field note · website/blog/2026-08-21-2343-horizons-and-the-first-governed-run.md · revision 824869fecbd2

Two things, and the second is the one that matters.