mirror of
https://github.com/openprose/prose.git
synced 2026-09-19 05:55:05 +08:00
a55acbec26
Add a section-level ### Tools contract for service and system files, with deterministic cli:<name> resolution at compile time. Document the semantics across Contract Markdown, compiler, Forme, VM, and IR, add a declared-tools example, and teach the CLI to fail closed before harness forwarding on invalid or unresolved declarations.
16 KiB
16 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]
Added
- 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.
[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