Repository navigation
Prism 0.7.1
Release date: 2026-10-13
Prism 0.7.1 fixes the defects found in a full review of the 0.7 line and in end-to-end runs that take a feature from QA through release. It accepts a new bug page written exactly as its format shows, lets a consumer feature share another feature's API contract, applies a release approved on a later day, and makes an abandoned operation repairable from the browser.
Added
- Repair from the browser.
discoverlists abandoned, unrepaired operations (abandoned_operations, at most 20) to a human who may repair them, and the Operations dialog has a Repair operation control for each; the repair preview is approved from Proposals. Thepreview_transitiontool text and the troubleshooting guide give the gated route. unused-api-contract. Lint warns about a feature'sdraftAPI contract that its API surface no longer declares, for example after a return to specification dropped the API work; such a contract no longer blocksdev-start.
Changed
- The packaged skills and
AGENTS.mdrequireprism-kit>=0.7.1, because their bug guidance relies on the empty-section rule below. - A feature changes and requires the status only of its own API contract. A return,
qa-failor reopen of a consumer feature no longer lowers the owner's contract, and a consumer'sdev-doneno longer waits for the owner's contract to beimplemented; a linked contract of another feature is still checked for its binding and digest. AGENTS.md,ACTIONS.mdand the AI agents guide state the current preflight versions (capability 3, transition 2), that each command's contract marker carries the version its own file states, the full role lists foraskandwiki-owner, therelease-donearguments, and design tracks instead of design exemptions.- The QA skills read every bug page in
knowledge/wiki/bugs/, as the board requires when a proposal creates a bug. Therelease-doneskill writes a bug's Release rows only for the apps the release delivers. Theingestskill lists the processed source insourcesonly on a page whose format has that field; an incident record has none. - The docs state the real-host coverage: every journey step has passed on Codex with the gated approvals in the browser, in separate runs.
Fixed
- A new bug page written exactly as
bugs/_FORMAT.mdshows, with the header and separator of its Fix, Verification and Release tables and no rows, is accepted. Only that header-only table counts as empty: a data row, a second table, another header, an indented or fenced table or an unterminated comment is content, and the rejection names the sections that hold it. Evidence tables are read as in 0.7.0. - HTML comment stripping in the wiki readers is one forward scan, so a page with many unterminated or repeated comments no longer slows lint and the board.
- A release record approved on a later day than its preview applies and keeps the preview day, instead of failing with
record_date_invalid. release-donemay replace a staging row with one for the same app and target, asqa-passalready could.bug_release_requires_featuresays that an app the release does not deliver is left out.- Abandoning an operation releases the evidence its pages are shown not to hold (a page that still holds the row, or cannot be read, keeps its binding), so the next
dev-doneor fix for that app is not refused withevidence_generation_conflict. A repair of the abandoned operation binds the released evidence to it again, and the conflict error names the producing operation and its state. - A second
## API surfacesection never establishes that a feature has no API work: thedraft-contract exception applies only to a page with one such section, a repeated or indented## API surfaceheading is refused at preview and reported by lint (ambiguous-lifecycle-section), and the contract stays an obligation. - Abandoning an operation releases its provenance only when the page parses cleanly and no row of the evidence section holds the produced row; a changed header, another Delivery row for the app, a repeated section or a malformed row keeps the binding.
- A return (
qa-return-spec,reopen-spec,qa-fail) lowers the contracts a feature holds on disk, so animplementedcontract of a feature that declares no API work is still lowered todraft, and the proposal that writes thedraftis accepted. - The Proposals dialog shows the exact
log.mdentry an approval writes, with the approver, their roles and the proposer. - A malformed
review_revisionanswersapproval_review_required(409) instead of an internal error. discoverandlist_proposalswalk the knowledge tree once per call and check staleness only for the proposals they return.prism board state resetremoves the state folder withrmdirafter the lock file, so a journal that a board server creates at that moment is never deleted under it.- A pending
operation-repairis revalidated against the live files on a retry or recovery, as its first apply was, and a gated apply checksproposer_revokedbeforeoperation_id_reused. - The Evidence history of a feature or a bug is compared by its entries, so trailing blank lines or a dropped placeholder sentence no longer refuse a valid append, and
history_not_append_onlynames the entry that changed. Archived-row section names ignore letter case. - The criteria parser joins an indented sub-bullet to its criterion and reads
**Label**:with the colon outside the bold;- Affected apps:may hold a nested list; an escaped pipe stays inside its table cell. prism wiki graphresolves links to release records, bugs, incidents and technical design pages instead of listing them as dangling, and the board card offersqa-failfor an app atready-for-releasewhile its feature isin-dev.