mirror of
https://github.com/openprose/prose.git
synced 2026-09-19 05:55:05 +08:00
17 KiB
17 KiB
Changelog
All notable changes to OpenProse will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
[0.14.0] - 2026-05-19
Added
prose writeauthoring workflow — Addedstd/ops/prose-authorandprose write [request...]for turning rough English or pseudo-Prose into a validated OpenProse source package. Direct in-harnessprose writeis interactive by default and can ask targetedask_userquestions after a read-only landscape scan and shape/root inference. The shell CLI wrapper remains non-interactive, forwards argv/stdin withinteractive: false, and returnsunresolved-intentrather than guessing when blocking decisions are missing.- Shape-aware authoring guidance —
prose-authornow records whether the output should be a compact single file, imperative-heavyindex.prose.md, multi-service folder, native OpenProse root,.agents/prosesidecar, or~/.agents/proseuser-global agent, then loads the targeted Contract Markdown, ProseScript, Forme, Responsibility Runtime, and filesystem state guidance needed for that shape. - Declared
### Skillssection — Components may now declare the agent harness skills they require in a### Skillssection using thenamespace:namecolon form (e.g.document-skills:pdf). The compiler program resolves declared skills against./skills/,~/.claude/skills/,~/.codex/skills/, and~/.agents/skills/, andprose compilefails closed with askill_unresolveddiagnostic naming the skill and the searched paths if any are missing. OpenProse never installs harness skills — installing them remains the user's responsibility (BYO harness). Seeskills/open-prose/contract-markdown.md(Skills),skills/open-prose/compiler/index.prose.md(skills_resolver), andskills/open-prose/examples/declared-skills/for the spec and a worked example. Resolves #60. - Declared
### Toolssection — Components may now declare host CLI executables they require in a### Toolssection usingcli:<name>declarations. The compiler program resolves supported declarations through a PATH executable check, fails closed withtool_invalid,tool_unsupported_kind, ortool_unresolveddiagnostics, and emits resolved tools into Forme manifests withrequiredByattribution. OpenProse never installs or modifies host tools. Tracks #76.
Fixed
- Serve shutdown logging — In-flight activations interrupted by
prose serveshutdown now log as shutdown cancellations instead of generic trigger failures. - Status wording —
prose statusnow describes absent responsibility state asno runtime status yetinstead ofmissing. - Compiler discipline — The bundled compiler program now returns after
writing
manifest.next.jsonand leaves deterministic validation to the CLI. - Smoke postconditions — OpenProse smoke checks now trust verified run artifacts when a model exits nonzero after satisfying the fixture contract.
- Dependency audit — Refreshed the
brace-expansionlockfile entry so the production dependency audit passes with no advisory findings.
[0.13.1] - 2026-05-05
Fixed
- Compile success detection —
prose compilenow accepts a freshly written validmanifest.next.jsonwhen the harness exits nonzero afterward, while still rejecting missing manifests, invalid IR, error diagnostics, and aborted runs. - Serve trigger behavior — HTTP triggers now acknowledge immediately while dispatching activations in the background, and cron-only manifests still expose the local health endpoint.
- Smoke fixture isolation — Responsibility Runtime smoke fixtures stay inside their source root and include the local pattern dependencies needed by the compiler.
[0.13.0] - 2026-05-04
Added
- Canonical compiler IR contract — Added
skills/open-prose/compiler/ir-v0.mdand refactored the bundled compiler into a compact ProseScript service that emits the v0 repository IR directly. - Unified release preflight — Added one OpenProse release preflight for CLI, SKILL, plugin manifests, installer defaults, changelog notes, npm uniqueness, and GitHub release/tag uniqueness.
Changed
- Single release train — The CLI, SKILL metadata, plugin manifests, package lock, and tarball installer now share one OpenProse version.
- Release workflow — Replaced split CLI/plugin release ownership with one protected OpenProse release workflow.
- Smoke visibility — OpenProse smoke fixtures now run as separate GitHub Actions jobs and emit progress while live agent cases are running.
[0.12.0] - 2026-05-04
Added
- Responsibility Runtime live serve —
prose servenow runs local cron and HTTP trigger adapters from compiledtriggers[], dispatches events into ordinary boundedprose runactivations, and feeds unhealthy judge status into deduped pressure fulfillment. - Responsibility Runtime source model — Added Responsibility-Oriented Architecture docs for standing goals, Reactor reconciliation, gateways, compile-time Forme wiring, judge activations, pressure, and deterministic runtime status.
- Compiler program docs — Added
skills/open-prose/compiler/with the bundled compiler program and pass docs for source discovery, responsibility lowering, gateway lowering, Forme compilation, IR emission, and IR validation. - Native repository examples — Replaced the old numbered examples with eight small OpenProse Native Repositories:
stargazer-outreach,incident-briefing-room,customer-risk-radar,release-readiness,vendor-renewal-watch,research-inbox-triage,content-performance-loop, andcompliance-evidence-tracker.
Changed
- OpenProse root model — Documented native, attached, and user-global OpenProse roots with
src/,dist/,runs/,state/,deps/,prose.lock, and.envas the current filesystem convention. - Command routing — Restored
prose compileas the Responsibility Runtime compiler command that emitsdist/manifest.next.json;prose serveconsumesdist/manifest.active.json, andprose statusinspects active IR and runtime receipts. - Plugin descriptions — Updated plugin metadata to describe run receipts under the active OpenProse root instead of assuming only
.agents/prose/runs/.
Fixed
- Responsibility Runtime validation —
prose compilenow validates the emittedmanifest.next.json; repository IR rejects invalid cron expressions, wrong trigger fields, and live triggers that wake no activations. - Responsibility Runtime freshness —
prose compileclears stale compile output before running;prose serverejects stale judge status output, validates that status belongs to the launched judge activation, and marks older pressure as resolved once a newer healthy status is recorded. - Responsibility Runtime source safety — Repository IR now rejects non-root-relative source paths and requires live triggers to wake the judge for their responsibility.
- Responsibility Runtime pressure — Pressure dedupe now keys on the source status timestamp so fresh unhealthy judgments can each drive one reconciliation attempt.
- Stale compile doctrine — Removed the old skill guidance that treated
prose compileas folded intoprose lint.
Removed
- Outdated examples — Removed the legacy numbered example set and the older
kind: program-first examples from the distributable skill.
[0.11.0] - 2026-05-01
Added
- Codex plugin envelope — Added
.codex-plugin/plugin.jsonand.agents/plugins/marketplace.jsonso OpenProse is discoverable through native Codex marketplace paths with first-classinterfacemetadata. The manifest sits ready for OpenAI's self-serve plugin directory submission window.
Changed
- Current contract conventions — Authored Prose files now use
*.prose.mdwithkind: service,kind: system,kind: test, orkind: pattern; older plain.mdcontracts,.prosesource files,kind: program,kind: composite, andcompose:are legacy upgrade inputs. - Package/library migration — Public docs now describe
packages/std/andpackages/co/as first-party libraries of service/system/test/pattern contracts rather than the older repo-local stdlib/composite model. - Upgrade workflow —
prose upgradeandprose upgrade --dry-runare the current self-healing migration commands. Historicalprose migrate,.deps/, rootprose.lock, and.prose/runs/references remain part of older entries and are superseded by this guidance.
[0.10.0] - 2026-04-20
Added
- Canonical Contract Markdown section syntax — Added
skills/open-prose/contract-markdown.mdas the source of truth for Markdown program/service files. Canonical contracts now use### Services,### Requires,### Ensures,### Runtime,### Shape, and related Markdown sections, while lowercaserequires:/ensures:blocks remain supported as compatibility syntax. - ProseScript reference — Added
skills/open-prose/prosescript.mdto separate pinned choreography (### Execution,.prosescripts, loops, branches, retries, and explicit calls) from declarative Contract Markdown authoring. - Git-native dependency resolution — Programs declare dependencies via
use "owner/repo/path"statements;prose installclones repos into.deps/and pins versions inprose.lock(committed to git). Runtime resolution reads from disk only, no network calls. Replaces the earlierp.prose.mdregistry fetch with GitHub as the authoritative source. runas a first-class keyword type — Programs can now declarerunandrun[]inrequires:to depend on completed runs, enabling provenance tracking, DAG reconstruction, and staleness detection across workflows.environment:contract section — Addedenvironment:as a contract section for declaring runtime dependencies (API keys, secrets, tool access) with VM-enforced security constraints: variables are verified at wiring time but never logged, embedded in artifacts, or passed to subagents that don't declare them.- CLI commands refactored as stdlib sugar — Added
prose lint,prose preflight,prose inspect, andprose statusas thin wrappers around standard-library programs. Retires the transitionalprose compile/prose wire/prose migratesurface now that Contract Markdown is primary. - Agent onboarding narrative — Added
skills/open-prose/agent-onboarding.mdso agents can quickly learn when to propose OpenProse, how to activate the skill, and how to map host primitives to the VM. - Codex entrypoint — Added
AGENTS.mdat the repo root as Codex's native router intoskills/open-prose/SKILL.md, with a recommended[agents]config block (max_depth = 2) for recursive multi-service programs. - LongCoT benchmark automation — Added GitHub Actions workflows and helper scripts for LongCoT benchmarking and the
longcot-rlmifyworkflow dispatcher.
Changed
- Services are now a Markdown contract section — Program topology moved from frontmatter
services:into### Services, matching the rest of the human-readable contract surface. - Skill docs now route by intent — Reworked
skills/open-prose/SKILL.md,README.md,help.md, Forme, VM, guidance, and examples around a smaller "load what you need first" flow for agents. - Examples follow current Contract Markdown — Updated bundled examples to the section-based contract style and clarified multi-service wiring, composites, runtime hints, and execution blocks.
- Stdlib is external — Documentation now points to
openprose/std; repo-localskills/open-prose/lib/andstd/README.mdcontent was removed from this package. - RFCs and skill references are self-contained — Cleaned RFC and skill docs so public references no longer depend on internal planning context.
Fixed
- Spec-to-skill documentation alignment — Documented
eachpostcondition evaluation inensures:blocks, added environment security constraints to Forme wiring rules, introduced runtime delegation markers (__delegate/directory), and rewrotehelp.mdwith Contract Markdown as the primary surface and v0 as a clearly-scoped legacy subsection. - Internal consistency across skill files — Updated stale file-extension references (
.prose→.md), aligned v1/v2 terminology to legacy/declarative, added the missingprose installcommand to the CLI reference, and corrected cross-file pointers.
Removed
- Legacy internal skill artifacts — Removed
skills/open-prose/SOUL.mdand obsolete repo-local stdlib docs in favor of the current public skill and external stdlib model.
[0.9.0] - 2026-03-23
Breaking Changes
- Prose v2: programs are now Markdown files —
.mdwith YAML frontmatter and contract-based semantics (requires:/ensures:) replaces imperative.prosesyntax as the primary format. Legacy.prosefiles still run via v0 mode. - Two-phase execution — Programs with multiple services run through Forme (Phase 1: contract wiring) then the Prose VM (Phase 2: execution). Single-service programs skip Phase 1.
- Removed:
webshskill, voice alts, common library (moved elsewhere).
Added
- Forme Container (Phase 1) — Auto-wires multi-service programs by matching
requires:/ensures:contracts across components. Produces a manifest that the VM executes. - Contract semantics — Programs declare inputs (
requires:) and outputs (ensures:) instead of imperative orchestration. The container figures out the wiring. - Shapes — Typed structure declarations for contract values.
- Strategies — Declarative guidance for how the VM should handle edge cases during execution.
- Errors — Structured error declarations for programs.
- Invariants — Runtime constraints that must hold throughout execution.
- Test programs —
prose testcommand for running test suites against programs. - Standard library (
lib/) — 9 utility programs: calibrator, cost-analyzer, error-forensics, inspector, profiler, program-improver, project-memory, user-memory, vm-improver. - Migration tooling —
prose migrateconverts.prosefiles to.mdformat. - 50 example programs — All examples rewritten in v2
.mdformat, covering basics through complex multi-service orchestrations.
Changed
- v0 VM moved to
v0/— Legacy specs (prose.md,compiler.md,state/,primitives/) relocated tov0/subdirectory. - New
prose.md— v2 VM execution semantics for.mdprograms. - New
forme.md— Forme container semantics for Phase 1 wiring. - New
state/filesystem.md— v2 file-based state with workspace/bindings model. - Guidance directory —
guidance/tenets.md,guidance/patterns.md,guidance/antipatterns.mdfor program authoring.
[0.8.1] - 2025-01-23
Changed
- Token efficiency improvements: State tracking is now significantly more compact, reducing context usage during long-running programs. Append-only logs replace verbose state files, and compact markers replace verbose narration.
[0.8.0] - 2025-01-23
Breaking Changes
- Registry syntax simplified: The
@prefix is no longer required for registry references.- Migration: Update your imports and run commands:
prose run @irl-danb/habit-minerbecomesprose run irl-danb/habit-mineruse "@alice/research"becomesuse "alice/research"
- Resolution rules: URLs fetch directly, paths with
/resolve to p.prose.md, otherwise local file
- Migration: Update your imports and run commands:
Added
-
Memory Programs (recommend sqlite+ backend):
user-memory.prose: Cross-project persistent personal memory with teach/query/reflect modesproject-memory.prose: Project-scoped institutional memory with ingest/query/update/summarize modes
-
Analysis Programs:
cost-analyzer.prose: Token usage and cost pattern analysis with single/compare/trend scopescalibrator.prose: Validates light vs deep evaluation reliabilityerror-forensics.prose: Root cause analysis for failed runs
-
Improvement Loop Programs:
vm-improver.prose: Analyzes inspection reports and proposes PRs to improve the OpenProse VMprogram-improver.prose: Analyzes inspection reports and proposes PRs to improve .prose source code
-
Skill Security Scanner v2: Enhanced with progressive disclosure, model tiering (Sonnet for checklist, Opus for deep analysis), parallel scanners with graceful degradation, and persistent scan history
-
Interactive Example: New example demonstrating input primitives
-
System Prompt: Added system prompt configuration
Removed
- Telemetry system: Removed all telemetry-related code, config, and documentation including USER_ID/SESSION_ID tracking and analytics endpoint calls
Changed
- User-scoped persistent agents now stored in
~/.prose/agents/ - Documentation updates for registry syntax changes