The prior spec had `prose run owner/path` hit `p.prose.md` and
`use "owner/path"` resolve to GitHub. Same identifier, two
sources — an agent that `prose install`'s a dep, edits it, and
re-runs it watched a different copy execute and lost a cycle.
Collapse the asymmetry. One algorithm for both surfaces, and use
the Deno / Go-modules shape: canonical identifier is
`host/owner/repo`, any git host works, written explicitly.
Resolution rules:
1. `http(s)://...` → fetch directly (raw file, no caching)
2. First path segment has a dot → explicit git host;
cache-first under `.deps/{host}/{owner}/{repo}/`, clone from
that host if not cached
3. Ends with `@{version}` → that SHA or tag; fetch if not cached
4. Contains `/` otherwise → reserved for the OpenProse registry
(eventual home at `p.prose.md`); inert today
5. Otherwise → local path
No "force registry" flag: `@{version}` already carries "I want
this version, re-fetch if needed" semantics, same as `npx
foo@1.2.3`. `--offline` disables the network fallback for
air-gapped and reproducibility use cases.
The bare `owner/repo` form is reserved (not deprecated) — it
doesn't resolve today because nothing publishes to p.prose.md
yet, but the path is spec'd so authors don't paint into a corner
and so ProseHub can ship without a breaking change.
Changes in this commit:
- SKILL.md Remote Programs section — new cache-first table with
the dotted-host rule, explicit `github.com/alice/research`
examples, and a reserved-for-registry note.
- prose.md CLI Commands table — rows for `<host>/<owner>/<repo>`,
`<owner>/<repo>` (reserved), `@<version>`, `--offline`.
- prose.md Remote Programs section — full resolution algorithm,
error-message shape, and explicit guidance to write the host
(GitHub is the 90% case, not a default).
- deps.md `use` Statement Parsing — canonical form now
`host/owner/repo/path`; examples updated to
`github.com/alice/...`; `std/` shorthand expands to
`github.com/openprose/std/`; added "Bare owner/repo Form"
subsection explaining the registry reservation.
- deps.md Resolution Algorithm (Runtime) and `prose install`
Algorithm — updated to key the cache on `{host}/{owner}/{repo}`.
- deps.md "Interaction with p.prose.md" table — rewritten around
the explicit-host algorithm; `p.prose.md` now scoped to
discovery + future registry publication.
- deps.md Summary table — registry row now names the
host-explicit shape; cache directory includes the host segment.
No behavior change to `.deps/` or `prose.lock` beyond the
layout key; migration of tooling to the new `{host}/` layer is
out of scope for this PR.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Several docs referenced paths and deployment internals that only
exist in our authoring workspace, not in this repo. Clean them up so
external readers get a self-contained view.
- skills/README.md, skills/open-prose/state/README.md: drop `related:`
frontmatter entries that pointed outside the repo tree; refer to
"OpenProse Cloud" by name instead of an internal path.
- skills/open-prose/agent-onboarding.md: replace a 25-line maintainer
comment (infra paths, deploy mechanic) with a single link to the
canonical rendering at https://openprose.ai/llms-full.txt. This
file is served verbatim as llms-full.txt, so the comment was
publicly visible but only meaningful to hosting maintainers.
- rfcs/004-composite-instantiation.md: drop two pointers to an
external design doc — the RFC is already self-contained (Summary,
Problem, Proposal, Architecture, Changes, Prior Art).
- rfcs/001/002/003: normalize author line to match rfcs/004's format
(`Dan B. (OpenProse)`).
Docs only — no behavior changes.
New file: skills/open-prose/agent-onboarding.md
The arrival narrative an agent reads when pointed at OpenProse before the
skill is installed — one screen, markdown that reads cleanly as plain text
over curl. Consumer list and editing discipline are in a header comment at
the top of the file.
Served from this file by:
- openprose.ai/llms-full.txt + /llms-full (apps/run, Next.js)
- curl-me.openprose.ai + aliases (S3 + CloudFront)
- curl-me.prose.md (same CloudFront distribution)
Those consumers read this file at build/apply time; there is no sync script.
Operational detail (recognition signals, proposal script, Host Primitive
Adapter, giving-back playbook) stays in SKILL.md — this file links rather
than duplicates.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Rewrites agent-facing surfaces so the runtime contract is stated in the
voice of the entity that will execute it:
- plugin/marketplace descriptions tell the agent what it will do when
`prose` fires (read contract, spawn subagents, write `.prose/runs/`)
instead of pitching OpenProse as a feature
- README opens with a fourth-wall blockquote for agents arriving via
"go check out this repo," adds a Host Primitive Adapter table so the
runtime contract is visible before activation, and names the agent
failure modes OpenProse addresses
- SKILL.md body adds recognition signals, a proposal script, a cognitive
model (type-system analogy), and when-to-decline guidance so an agent
can reach for OpenProse on its own judgment once activated
- SKILL.md adds a "giving back" section with a three-bucket identity
rubric (yours freely / requires approval / skip) to channel goodwill
without becoming a spam vector
- SKILL.md frontmatter stays tight to avoid context pollution and
false-positive activations
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Picks up the thinking choice input and RLMIFY_THINKING env wiring
from rlm-harness-skill so gh workflow run can pass -f thinking=<level>.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Lets gh workflow run discover the rlmified LongCoT smoke workflow.
The shim, example, and skills/rlmify/ live on the rlm-harness-skill
branch; workflow_dispatch --ref rlm-harness-skill checks them out
at run time.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
workflow_dispatch action that runs the LongCoT benchmark using
pi-mono (@mariozechner/pi-coding-agent) as the inference harness.
Defaults (difficulty=longcot, thinking=high, no tools/scaffolding,
2 retries) mirror the paper for 1:1 result comparison; README
covers iteration with longcot-mini + slice inputs.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Elaborate forme/prose/memory skill docs with fuller guidance, and seed
rfcs/ (scheduled execution, feedback loops, env declaration, composite
instantiation) plus a std/ README stub.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Propose making `run` a value type in requires/ensures contracts so the VM
can track provenance edges between runs, reconstruct DAGs, detect staleness,
and support fan-in composition (run[]).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
New file:
- deps.md — authoritative spec for dependency resolution via GitHub repos
Updated files:
- SKILL.md — prose install command routing, .deps/ and prose.lock in file locations
- forme.md — .deps/ as resolution step 3 with path mapping examples
- state/filesystem.md — .deps/ and prose.lock in directory structure
- help.md — install commands, quick start, FAQ
- guidance/patterns.md — dependency-management and std-shorthand patterns
- guidance/antipatterns.md — unpinned-dependencies and vendored-copies
Key design decisions:
- GitHub is the registry (no custom server)
- prose.lock is plaintext (owner/repo sha), committed to git
- .deps/ is gitignored, reproducible from prose.lock
- std/ is shorthand for openprose/std/
- Transitive deps via multi-pass with cycle detection
- Version conflicts auto-resolve to newer SHA with warning
- Explicit prose install required (no auto-install on prose run)
Standard library programs migrated to github.com/openprose/std
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Why: OpenProse maps well onto Codex subagents, but Codex users need explicit docs and example files for recursive execution, alias resolution, and audit-role fanout without relying on machine-local configuration.
All 9 lib/*.md programs now have full v2 contracts:
- requires/ensures with detailed descriptions
- errors sections for failure modes
- strategies for non-obvious execution guidance
- invariants for correctness constraints
- inline ## service definitions for multi-service programs
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
List all migrated v2 examples organized by category, note the
v1-archive, and add counts: 35 migrated, 15 archived, 5 new.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Migrate all 9 library programs: inspector, calibrator, cost-analyzer,
error-forensics, profiler, program-improver, vm-improver, project-
memory, and user-memory. Each becomes a .md file with contracts,
services lists, and appropriate persistence declarations.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Complex execution-block programs: captain's chair full (29), feature
factory (35), The Forge browser build (37), architect by simulation
(39), and language self-improvement (47). All use Level 3 execution
blocks with explicit let/call control flow.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Index run scaffolded new READMEs for all subdirectories. Review run
added the missing profiler.prose entry to skills/open-prose/lib/README.md
(cost, token usage, and time profiling for completed runs).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>