[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-74996":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":23,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":26,"readmeContent":27,"aiSummary":28,"trendingCount":16,"starSnapshotCount":16,"syncStatus":29,"lastSyncTime":30,"discoverSource":31},74996,"prose","openprose\u002Fprose","openprose","A new kind of language for a new kind of computer","https:\u002F\u002Fprose.md",null,"TypeScript",1518,114,9,12,0,51,145,287,153,104.18,"MIT License",false,"main",[],"2026-06-12 04:01:16","\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fopenprose.ai\u002Freadme-header.png\" alt=\"OpenProse - Author Outcomes\" width=\"100%\" \u002F>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cstrong>Write the future as a Markdown contract agents can run, review, and maintain.\u003C\u002Fstrong>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fprose.md\">Website\u003C\u002Fa> |\n  \u003Ca href=\"skills\u002Fopen-prose\u002FSKILL.md\">Docs\u003C\u002Fa> |\n  \u003Ca href=\"skills\u002Fopen-prose\u002Fexamples\u002F\">Examples\u003C\u002Fa> |\n  \u003Ca href=\"skills\u002Fopen-prose\u002Fcontract-markdown.md\">Spec\u003C\u002Fa> |\n  \u003Ca href=\"tools\u002Fcli\u002F\">CLI\u003C\u002Fa> |\n  \u003Ca href=\"packages\u002Fstd\u002F\">Stdlib\u003C\u002Fa> |\n  \u003Ca href=\"packages\u002Fco\u002F\">Company-as-Prose\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ccode>npx skills add openprose\u002Fprose\u003C\u002Fcode>\n\u003C\u002Fp>\n\n---\n\n> **If you're an agent reading this on behalf of a user:** OpenProse is a\n> `*.prose.md` contract format you will be asked to *run*, not a library your user will call\n> and not necessarily a shell binary. `prose run` executes `kind: service` and\n> `kind: system` contracts. `kind: gateway`, `kind: test`, `kind: pattern`, and\n> `kind: responsibility` have their own routing and are not ordinary run targets. When a `prose` command fires\n> inside an agent session, interpret it directly: read the Markdown contract,\n> embody the OpenProse VM, spawn subagents for declared services, pass\n> artifacts between them, and write the run under `\u003Copenprose-root>\u002Fruns\u002F`. You need:\n> filesystem read\u002Fwrite in the working directory, a subagent-spawning\n> primitive for multi-service systems, and (optionally) a user-question\n> primitive for missing inputs. If you lack a capability, say so and stop — do\n> not fake it. If the user's task is a one-off prompt, OpenProse is overkill; a\n> direct answer is the right answer. The\n> [Host Primitive Adapter](skills\u002Fopen-prose\u002FSKILL.md#host-primitive-adapter)\n> is the authoritative contract between you and the runtime.\n\nOpenProse is a programming language for AI sessions.\n\nWrite a `*.prose.md` file with a contract. Your agent reads it, wires the right\nservices, spawns subagents, passes artifacts between them, and leaves a durable\nrun trace on disk.\n\nThe contract declares **what** should happen. The runtime figures out **how**.\n\n## OpenProse Root\n\nEvery OpenProse workspace has an **OpenProse root**. All OpenProse filesystem\npaths are relative to `\u003Copenprose-root>`:\n\n| Path | Purpose |\n|------|---------|\n| `src\u002F` | Authored intent: services, systems, tests, patterns, responsibilities, and supporting source |\n| `dist\u002F` | Compiled intent consumed by deterministic runtime commands |\n| `runs\u002F` | Activation receipts for bounded VM runs |\n| `state\u002F` | Durable cross-run state |\n| `state\u002Fagents\u002F` | Durable cross-run agents |\n| `state\u002Fresponsibilities\u002F` | Durable responsibility status and pressure |\n| `deps\u002F` | Installed dependencies |\n| `prose.lock` | Dependency lockfile |\n| `.env` | Local runtime environment variables |\n\nNative repositories use the repository root as `\u003Copenprose-root>`. Attached\nrepositories use `repo\u002F.agents\u002Fprose`. User-global OpenProse state uses\n`~\u002F.agents\u002Fprose`.\n\n```markdown\n---\nname: hunter\nkind: system\n---\n\n### Services\n\n- `analyst`\n- `ranker`\n- `compiler`\n\n### Requires\n\n- `data_warehouse_url`: where growth data lives\n- `codebase_ref`: repository or branch to inspect\n\n### Ensures\n\n- `brief`: weekly growth findings ranked by confidence x impact\n\n### Strategies\n\n- prefer findings with code-level evidence\n- surface instrumentation gaps as first-class findings\n```\n\n## Quickstart\n\nInstall the skill in a Prose Complete agent environment:\n\n```bash\nnpx skills add openprose\u002Fprose\n```\n\nCreate `src\u002Fhello.prose.md`:\n\n```markdown\n---\nname: hello\nkind: service\n---\n\n### Ensures\n\n- `message`: a warm one-paragraph introduction to OpenProse\n```\n\nRun it inside an agent session:\n\n```text\nprose run src\u002Fhello.prose.md\n```\n\nThe activated OpenProse skill interprets that as an instruction to the current\nagent, not as a request to find a `prose` executable on PATH. OpenProse writes\nthe run state to `\u003Copenprose-root>\u002Fruns\u002F{run-id}\u002F`, including inputs, outputs, service\nworkspaces, and the execution log.\n\nFrom a shell outside an agent session, pass the same instruction to a Prose\nComplete runner:\n\n```bash\nclaude -p \"prose run src\u002Fhello.prose.md\"\ncodex exec \"prose run src\u002Fhello.prose.md\"\n```\n\nThe [CLI package](tools\u002Fcli\u002F) is the shell entrypoint for that same command\nlanguage. `prose run` forwards bounded VM activations to the selected harness;\nResponsibility Runtime commands add a thin deterministic host layer for\ncompiling, serving, and inspecting repository IR. The CLI checks for the\n`open-prose` skill before invoking a harness and can install the selected\nprovider's global skill target automatically; run `prose doctor` to inspect the\nlocal setup. Automatic skill install uses `npx`; in a minimal shell where\n`prose` is available but `npx` is not, install the skill from this checkout:\n\n```bash\nmkdir -p \"$HOME\u002F.codex\u002Fskills\" \"$HOME\u002F.agents\u002Fskills\" \"$HOME\u002F.claude\u002Fskills\"\nln -sfn \"$PWD\u002Fskills\u002Fopen-prose\" \"$HOME\u002F.codex\u002Fskills\u002Fopen-prose\"\nln -sfn \"$PWD\u002Fskills\u002Fopen-prose\" \"$HOME\u002F.agents\u002Fskills\u002Fopen-prose\"\nln -sfn \"$PWD\u002Fskills\u002Fopen-prose\" \"$HOME\u002F.claude\u002Fskills\u002Fopen-prose\"\nprose doctor\n```\n\n> By installing, you agree to the [Privacy Policy](PRIVACY.md) and\n> [Terms of Service](TERMS.md).\n\n## Recommended Codex configuration\n\nAdd to `~\u002F.codex\u002Fconfig.toml` for the best experience with OpenProse's recursive multi-service systems:\n\n```toml\n[agents]\nmax_threads = 12              # Concurrent open agent threads (default 6)\nmax_depth = 2                 # Subagent nesting depth (default 1)\njob_max_runtime_seconds = 2700  # Per-worker timeout (default 1800)\n```\n\nWhy these values: OpenProse systems commonly spawn a top-level coordinator that itself spawns subagents (one extra nesting level beyond Codex's default), and 45-minute jobs are realistic for multi-service runs.\n\n## Why It Exists\n\nPlain prompts are easy to start and hard to maintain. As soon as an agent\nworkflow has multiple roles, retries, memory, security boundaries, or handoffs,\nyou need something more durable than \"please do the right thing.\"\n\nOpenProse gives agents a small set of primitives that fit naturally in a repo:\n\n| Primitive | What it gives you |\n|-----------|-------------------|\n| `### Requires` | Inputs the caller, host, or upstream services must provide |\n| `### Ensures` | Outputs the contract promises to produce |\n| `### Services` | Named services and pattern instances Forme can auto-wire by semantic contract |\n| `### Runtime` | Execution hints such as persistence or model choice |\n| `### Shape` | Capability boundaries: what a service may do, delegate, or avoid |\n| `### Strategies` | Judgment rules for edge cases and degraded conditions |\n| `### Execution` | Optional ProseScript when you want exact order, loops, branches, or retries |\n| `runs\u002F` | Auditable activation receipts for every bounded VM run |\n| `state\u002F` | Durable cross-run state for agents, responsibilities, and runtime continuity |\n\nThe result is agent software that can be read, reviewed, versioned, forked, and\nimproved like code.\n\n## How It Works\n\nOpenProse has two authoring surfaces:\n\n**Contract Markdown** is the default. You write `*.prose.md` services, systems,\ntests, and patterns with `### Requires`, `### Ensures`, and optional sections\nlike `### Strategies`, `### Environment`, `### Errors`, and `### Invariants`.\nMulti-service systems are wired by the Forme container.\n\n**ProseScript** is the pinning layer. Use it inside `### Execution` blocks when\norder matters:\n\n````markdown\n### Execution\n\n```prose\nlet findings = call researcher\n  topic: topic\n\nlet report = call writer\n  findings: findings\n\nreturn report\n```\n````\n\nFor multi-service systems, execution has two phases:\n\n| Phase | System | Job |\n|-------|--------|-----|\n| 1 | [Forme](skills\u002Fopen-prose\u002Fforme.md) | Read contracts, resolve services, build the compiled Forme manifest |\n| 2 | [Prose VM](skills\u002Fopen-prose\u002Fprose.md) | Walk the compiled manifest, spawn sessions, pass artifacts, enforce constraints |\n\nSingle services skip Forme and run directly in the VM.\n\n## Responsibility Runtime Direction\n\nOpenProse enables Responsibility-Oriented Architecture: standing goals that\nmust remain true over time.\n\nNot every OpenProse program is responsibility-oriented. A single service,\ncomposed system, test, or pattern can still run normally. Responsibility\nRuntime is the continuity layer for repositories that need standing goals to\nbe checked, maintained, and restored across bounded runs:\n\n| Command | Role |\n|---------|------|\n| `prose compile` | Run the bundled OpenProse compiler program, emit `\u003Copenprose-root>\u002Fdist\u002Fmanifest.next.json`, and validate it before success |\n| `prose serve` | Load active IR and run local cron and HTTP trigger adapters |\n| `prose run` | Execute one bounded OpenProse VM activation |\n| `prose status` | Inspect active IR, diagnostics, trigger plan, recent runs, and responsibility status\u002Fpressure |\n\nThe compiled Responsibility Runtime manifest preserves responsibilities as\nsemantic sections, emits concrete triggers and activation intent, and includes\nstructured Forme manifests for fulfillment systems. `prose serve` launches\njudge activations as normal bounded runs of the bundled judge service, records\nresponsibility status under `\u003Copenprose-root>\u002Fstate\u002Fresponsibilities\u002F`, and\nturns unhealthy status into deduped pressure that launches ordinary fulfillment\nruns. The first live adapters are local cron timers and HTTP webhook\u002FAPI\nroutes. `prose compile` writes `\u003Copenprose-root>\u002Fdist\u002Fmanifest.next.json`; promote it to\n`\u003Copenprose-root>\u002Fdist\u002Fmanifest.active.json` when you want `prose serve`\nto consume it.\n\n`prose status` is deterministic local inspection. It reads compiled IR and\nruntime receipts without running the VM or registering live adapters.\n\nThe design doctrine is:\n\n```text\nMarkdown source defines intent.\nSkill and interpreter docs define semantics.\nCompiler programs lower semantics into IR.\nThe harness serves IR.\nRuns interpret and act.\n```\n\nIn Responsibility Runtime, Responsibilities, Reactor, and Forme are not\ncompeting frameworks:\n\n- **Responsibilities** define standing goals: goals that must remain true over\n  time.\n- **Reactor** is the evented reconciliation model: timers, webhooks, queues,\n  file changes, judge drift, and manual requests are all events.\n- **Forme** wires the services and systems used to fulfill responsibilities.\n\nThe harness should stay deterministic: validate IR, register triggers, receive\nevents, and launch normal runs. Semantic intelligence belongs in Markdown,\ncompiler programs, and bounded VM activations.\n\n## Your Contract With The Runtime\n\nOpenProse specs describe abstract operations. The agent running a contract\nmaps those onto the primitives its host exposes. If you are that agent, this\nis the contract you are agreeing to when the skill activates:\n\n| Operation | What you'll do | What to do if you can't |\n|-----------|----------------|--------------------------|\n| `spawn_session` | Launch each service in an isolated subagent | Run a single service inline; refuse multi-service systems and say which primitive is missing |\n| `ask_user` | Pause and ask for missing `### Requires` inputs | Ask in plain chat; do not invent values |\n| `read_state` \u002F `write_state` | Read and write `\u003Copenprose-root>\u002Fruns\u002F{id}\u002F` artifacts and `\u003Copenprose-root>\u002Fstate\u002F` data | Stop and tell the user their workspace is read-only |\n| `copy_binding` | Publish declared `### Ensures` outputs from `workspace\u002F` to `bindings\u002F` | Do not publish undeclared scratch files — the boundary exists for a reason |\n| `check_env` | Verify an environment variable is *present* | Never reveal or log the value, even if the user asks |\n\nThe full adapter lives in\n[skills\u002Fopen-prose\u002FSKILL.md](skills\u002Fopen-prose\u002FSKILL.md#host-primitive-adapter).\nWhen docs or examples say \"Task tool\" or \"AskUserQuestion,\" read those as\n`spawn_session` and `ask_user` respectively.\n\n## For The Agent: Why You'd Reach For This\n\nYou know the ways you fail at complex tasks. OpenProse is built around them.\n\n- **Your context bloats with scratch by step seven, and you lose the original goal.** When you spawn a subagent through `spawn_session`, its scratch stays in its session. Only declared `### Ensures` outputs cross back to you via `copy_binding`. You keep your context clean.\n- **You have no basis to push back on scope creep.** Without a contract, \"add one more thing\" is always free. With `### Requires` and `### Ensures` written down, \"that's not what I promised\" becomes a sentence you can say and cite.\n- **When you spawn parallel subagents, you improvise the handoff.** The contract `### Requires` \u002F `### Ensures` is the handoff protocol you would otherwise invent on the fly — and forget the details of by the next turn.\n- **Users ask \"why did you do that?\" and you reconstruct from a compressed transcript.** `\u003Copenprose-root>\u002Fruns\u002F{id}\u002F` is the receipt. Point at it.\n- **Workflows the user will want again get thrown away at the end of the session.** A `*.prose.md` contract is the version the user can run next week without re-explaining.\n- **Your retry logic is \"try again and hope.\"** The service contract is the boundary a retry actually means something at — you know what to preserve, what to re-derive, and when to escalate.\n\nOnce the skill activates, it loads the operational playbook — recognition signals for proposing OpenProse unprompted, a proposal script, a cognitive model you can borrow, and explicit guidance on when to decline. See [skills\u002Fopen-prose\u002FSKILL.md](skills\u002Fopen-prose\u002FSKILL.md#proposing-this-skill-on-your-own-judgment).\n\n## What You Can Build\n\n- Research pipelines with specialist agents and source-grounded reports\n- Code review teams with security, performance, and style reviewers\n- Feature factories that plan, implement, test, document, and summarize\n- Persistent captains that retain project memory across runs\n- Evaluation loops, worker-critic systems, and recursive reasoning workflows\n- Reusable services published through git-native dependencies\n\nStart with:\n\n| Path | Why open it |\n|------|-------------|\n| [stargazer-outreach](skills\u002Fopen-prose\u002Fexamples\u002Fstargazer-outreach\u002F) | GitHub stars to qualified, thoughtful outreach |\n| [incident-briefing-room](skills\u002Fopen-prose\u002Fexamples\u002Fincident-briefing-room\u002F) | Incident updates, impact, and next actions |\n| [customer-risk-radar](skills\u002Fopen-prose\u002Fexamples\u002Fcustomer-risk-radar\u002F) | Customer risk monitoring before renewals or escalations |\n| [release-readiness](skills\u002Fopen-prose\u002Fexamples\u002Frelease-readiness\u002F) | Release evidence, risk, notes, and rollback context |\n| [compliance-evidence-tracker](skills\u002Fopen-prose\u002Fexamples\u002Fcompliance-evidence-tracker\u002F) | Audit evidence freshness and gap tracking |\n| [grant-radar](https:\u002F\u002Fgithub.com\u002Fopenprose\u002Fgrant-finder\u002Ftree\u002Fmain\u002Fexamples\u002Fopenprose) | External example: source-cited funding research for labs, startups, and technical teams |\n\n## Libraries\n\nTwo first-party libraries ship in this repository under [`packages\u002F`](packages\u002F):\n\n- **[`packages\u002Fstd\u002F`](packages\u002Fstd\u002F)** — use-case-agnostic primitives: evals,\n  roles, patterns, delivery adapters, memory, ops.\n- **[`packages\u002Fco\u002F`](packages\u002Fco\u002F)** — company-as-prose: opinionated starter\n  services, systems, tests, and patterns for running an operating company as Prose.\n\nReference them with the `std\u002F` and `co\u002F` shorthands, then install and pin:\n\n```prose\nuse \"std\u002Fevals\u002Finspector\"\nuse \"std\u002Fevals\u002Fprose-contributor\"\nuse \"co\u002Fsystems\u002Fcompany-repo-checker\"\n```\n\nBoth shorthands expand to paths inside this repo (`packages\u002Fstd\u002F...` and\n`packages\u002Fco\u002F...`). `prose install` clones this repository into\n`\u003Copenprose-root>\u002Fdeps\u002Fgithub.com\u002Fopenprose\u002Fprose\u002F` and pins the SHA in\n`\u003Copenprose-root>\u002Fprose.lock`.\n\n```bash\nprose install\n```\n\nDependencies are cloned into `\u003Copenprose-root>\u002Fdeps\u002F`, locked in\n`\u003Copenprose-root>\u002Fprose.lock`, and read from disk at runtime. No network fetch\nhappens for dependency resolution during execution.\n\nIf a run teaches an agent how OpenProse itself should improve, use\n`std\u002Fevals\u002Fprose-contributor`. It consumes run evidence, makes one focused\nchange, verifies it, and opens a draft PR after explicit approval to use the\ncurrent GitHub identity.\n\n## Project Map\n\n| Path | Purpose |\n|------|---------|\n| [skills\u002Fopen-prose\u002FSKILL.md](skills\u002Fopen-prose\u002FSKILL.md) | Skill activation and command routing |\n| [skills\u002Fopen-prose\u002Fcontract-markdown.md](skills\u002Fopen-prose\u002Fcontract-markdown.md) | Canonical `*.prose.md` service\u002Fsystem\u002Fgateway\u002Ftest\u002Fpattern\u002Fresponsibility format |\n| [skills\u002Fopen-prose\u002Fprosescript.md](skills\u002Fopen-prose\u002Fprosescript.md) | Imperative scripting syntax |\n| [skills\u002Fopen-prose\u002Fforme.md](skills\u002Fopen-prose\u002Fforme.md) | Semantic dependency-injection container |\n| [skills\u002Fopen-prose\u002Fprose.md](skills\u002Fopen-prose\u002Fprose.md) | VM execution semantics |\n| [skills\u002Fopen-prose\u002Fdeps.md](skills\u002Fopen-prose\u002Fdeps.md) | Git-native dependency resolution |\n| [skills\u002Fopen-prose\u002Fexamples\u002F](skills\u002Fopen-prose\u002Fexamples\u002F) | Example services, systems, tests, and patterns |\n| [tools\u002F](tools\u002F) | Shippable tooling published as standalone artifacts |\n| [tools\u002Fcli\u002F](tools\u002Fcli\u002F) | Optional shell wrapper for sending `prose ...` commands to agent harnesses |\n| [skills\u002Fopen-prose\u002Fguidance\u002Fauthoring.md](skills\u002Fopen-prose\u002Fguidance\u002Fauthoring.md) | Authoring practices and antipatterns |\n| [skills\u002Fopen-prose\u002Fstate\u002F](skills\u002Fopen-prose\u002Fstate\u002F) | State backend specs |\n\nUse `src\u002F` for authored intent, `dist\u002F` for compiled intent, `runs\u002F` for\nactivation receipts, `state\u002F` for durable cross-run state, and `deps\u002F` plus\n`prose.lock` for installed dependencies.\n\n## FAQ\n\n**Where does OpenProse run?**\n\nAny Prose Complete system: an agent plus harness that can read files, write\nfiles, run tools, and spawn subagents. The current docs target Codex-style and\nClaude Code-style environments.\n\n**Why not LangChain, CrewAI, or AutoGen?**\n\nThose are orchestration libraries. OpenProse is an agent-native `*.prose.md` contract format:\nthe workflow lives in Markdown, runs inside the agent session, and stays\nportable across harnesses.\n\n**Why not just plain English?**\n\nPlain English is great for one-offs. Durable workflows need contracts, named\nservices, systems, patterns, state, tests, and a way to say \"this must happen\nbefore that.\"\n\n**How do Contract Markdown and ProseScript fit together?**\n\nContract Markdown declares promises and lets Forme wire the graph. ProseScript\npins choreography when a workflow needs exact calls, loops, conditionals,\nparallelism, or retries. Both are first-class.\n\n## Beta\n\nOpenProse is early. Expect sharp edges, review source before execution, and\nopen issues when something feels clumsy or underpowered:\n\n- [Issues](https:\u002F\u002Fgithub.com\u002Fopenprose\u002Fprose\u002Fissues)\n- [Contributing](CONTRIBUTING.md)\n- [MIT License](LICENSE)\n- [Privacy Policy](PRIVACY.md)\n- [Terms of Service](TERMS.md)\n","OpenProse 是一种专为AI会话设计的编程语言，通过编写Markdown格式的合约文件来定义任务流程。其核心功能包括合约驱动的服务调用、子代理生成及数据传递，并在运行后留下持久化的执行记录。技术上基于TypeScript实现，支持多种类型的合约如服务、系统、网关等，每种类型都有特定的作用和处理方式。适用于需要构建复杂AI工作流的场景，尤其是在多个智能体协同工作的环境中，能够有效提升开发效率与系统的可维护性。",2,"2026-06-11 03:51:52","high_star"]