Move the standard library (previously `github.com/openprose/std`) and
the company-as-prose library (previously local dir
`/Users/sl/code/openprose/company-as-prose`) into this repository
under `packages/std/` and `packages/co/` respectively.
Motivation: concentrate attention on one repository so stars,
discussions, and issues aggregate. `openprose/std` was a genuinely
useful asset nobody could find because ~50 stars on its own repo
told a much worse story than 1,106 stars on `openprose/prose`
would have. Same logic applies to co.
Layout choice: `packages/{std,co}/` rather than `std/` + `co/` at
the repo root. Root siblings accumulate over time, and a flat
top-level made future libraries (hub, kit, dev, etc.) compete with
spec infrastructure. `packages/` is bounded — new libraries land
there without cluttering root. Matches pnpm/Deno/monorepo tooling
conventions.
Changes:
- New: `packages/std/` (copied from openprose/std, `.git` excluded)
- New: `packages/co/` (copied from company-as-prose, README updated
for new name and location)
- `packages/std/README.md`: updated shorthand expansion reference
- `packages/co/README.md`: renamed "company-as-prose" to "co" in
self-references, added std-vs-co split heuristic, updated
`prose run` examples to use `co/` shorthand
- `skills/open-prose/deps.md`:
- `std/` shorthand now expands to
`github.com/openprose/prose/packages/std/`
- `co/` shorthand added, expands to
`github.com/openprose/prose/packages/co/`
- Both shorthands resolve into the same clone of
`openprose/prose` under `.deps/github.com/openprose/prose/`;
`packages/std/` and `packages/co/` are sibling subdirectories
- `prose.lock` format row updated to `host/owner/repo sha`
(matches the explicit-host resolution that landed in #35)
- `.deps/` directory structure example redrawn to show the
`{host}/{owner}/{repo}/packages/{std,co}/...` shape
- Error message and Interaction tables refreshed accordingly
- Resolution Algorithm step 1 now documents both shorthands
- `skills/open-prose/forme.md`: Step 2 resolution list updated to
include co/ shorthand and the host-keyed `.deps/` layout
- `skills/open-prose/help.md`: Q&A "How do dependencies work?"
rewritten to name both shorthands and the new explicit-host model
- `skills/open-prose/state/filesystem.md`: `.deps/` directory
tree re-drawn to include the `{host}/` layer with std/co as
sibling packages inside the clone
- `skills/open-prose/guidance/patterns.md`,
`skills/open-prose/guidance/antipatterns.md`: examples now use
the `std/` shorthand or explicit `github.com/...` rather than
the deprecated bare `openprose/std/` form
- `skills/open-prose/examples/registry-import/index.md`: sample
service reference switched to `std/evals/inspector`
- `README.md`: Stdlib badge replaced with internal `packages/std/`
link plus new `packages/co/` link; "Standard Library" section
rewritten as "Libraries" with both packages described
Out of scope for this PR (deliberately):
- Tooling changes to `prose install` and Forme's `.deps/` writer
to adopt the `{host}/{owner}/{repo}/` layout in practice — this
PR is spec-only. Existing tooling continues to work against
whatever layout it currently implements; the spec now describes
the target.
- Retiring the `openprose/std` GitHub repo. Delete that repo
separately after this merges.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
OpenProse Standard Library
Reusable Contract Markdown programs, services, composites, controls, roles, and memory agents for OpenProse.
Usage
use "std/evals/inspector"
use "std/composites/worker-critic"
use "std/controls/pipeline"
use "std/roles/critic"
use "std/delivery/email-notifier"
use "std/memory/project-memory"
Install with prose install. std/... is the shorthand for github.com/openprose/prose/packages/std/...; see deps.md for dependency resolution details.
Library
All Markdown entries use the current Contract Markdown section form (### Services, ### Requires, ### Ensures, and related sections). The .prose memory entries are legacy ProseScript variants retained for compatibility.
evals/
Programs for evaluating and improving OpenProse runs, contracts, and platform behavior.
| Program | Purpose |
|---|---|
inspector |
Post-run analysis — runtime fidelity and task effectiveness |
contract-grader |
Scores a program against its declared contract |
regression-tracker |
Tracks quality regressions across runs |
cross-run-differ |
Compares runs and recommends follow-up investigation |
eval-calibrator |
Validates light evals against deep evals for reliability |
program-improver |
Analyzes inspections and proposes program improvements |
platform-improver |
Analyzes inspections and proposes platform/runtime improvements |
ops/
Operational programs for profiling, debugging, validation, and wiring.
| Program | Purpose |
|---|---|
lint |
Validate structure, schema, shapes, and contract consistency for a program and its service tree |
preflight |
Check that all runtime dependencies are satisfied before executing a program |
status |
Summarize recent runs from .prose/runs/ |
wire |
Run Forme wiring to produce an execution manifest |
diagnose |
Investigate failed or suspicious runs and propose fixes |
profiler |
Cost, token usage, and time profiling for completed runs |
delivery/
Services for delivering program outputs to humans and external systems.
| Service | Purpose |
|---|---|
human-gate |
Present output for human review, block until approved or rejected |
slack-notifier |
Format and deliver content to Slack via webhook or API |
email-notifier |
Send an HTML email via a configured email provider (Resend, SendGrid, Postmark, SES, SMTP) |
email-renderer |
Render structured report data into a branded, email-safe HTML string |
html-renderer |
Render an HTML document from a template and structured data |
webhook-notifier |
Deliver content to an HTTP endpoint via webhook |
file-writer |
Write content to a local, S3, or GCS destination |
composites/
Named multi-agent topology patterns (kind: composite) for reusable coordination shapes.
| Pattern | Purpose |
|---|---|
worker-critic |
Two-agent loop: worker produces, critic evaluates, repeat until accepted |
ensemble-synthesizer |
N-agent ensemble that independently solves then synthesizes into a consensus answer |
ratchet |
Iterative improvement loop with regression prevention |
dialectic |
Two-agent debate structure producing a synthesized conclusion |
proposer-adversary |
Adversarial proposal testing: proposer generates, adversary stress-tests |
oversight |
Actor-observer-arbiter structure for independent observation and decision |
assumption-miner |
Surfaces implicit assumptions in a solution for explicit evaluation |
blind-review |
Independent evaluation without exposure to other agents' assessments |
contrastive-probe |
Generates contrasting solutions to expose decision boundaries |
stochastic-probe |
Introduces controlled randomness to test solution robustness |
coherence-probe |
Tests whether two corpora that should agree are actually in sync |
controls/
Reusable flow-control composites for sequencing, distribution, guarding, retrying, and fallback.
| Pattern | Purpose |
|---|---|
pipeline |
Sequential stage pipeline: output of each stage feeds the next |
map-reduce |
Parallel fan-out across inputs followed by aggregation |
fan-out |
Parallel delegation without reduction; parent consumes raw results |
race |
Parallel speculative execution; first acceptable result wins |
guard |
Conditional delegation: run target only when guard passes |
refine |
Iterative improvement guided by an evaluator |
fallback-chain |
Sequential failover through candidate delegates |
retry-with-learning |
Retry loop that accumulates failure context to guide subsequent attempts |
roles/
Single-agent role guides for programs and composites.
| Role | Purpose |
|---|---|
classifier |
Classifies inputs into a fixed set of categories; returns structured label |
critic |
Evaluates a proposed solution against criteria; returns scored feedback |
extractor |
Extracts structured data from unstructured text; returns JSON |
summarizer |
Condenses long content into a concise representation |
verifier |
Checks a solution for correctness against known constraints or test cases |
researcher |
Investigates a topic and produces sourced findings |
writer |
Produces prose for a specified audience and purpose |
planner |
Breaks an objective into ordered work with dependencies |
router |
Routes an input to the right tool, role, or next step |
formatter |
Transforms structured data into a target presentation format |
memory/
Programs for persistent agent memory management.
| Program | Purpose |
|---|---|
project-memory |
Project-scoped memory |
user-memory |
Cross-project memory (user-scoped) |