Commit Graph

189 Commits

Author SHA1 Message Date
irl-dan 668aa2c3b3 add prose cli 2026-04-29 16:11:21 -07:00
dan cde47c4b57 Merge pull request #40 from openprose/feat/co-agent-readiness
feat(co): agent-readiness as safe first-run demo program
2026-04-21 18:39:12 -04:00
irl-dan 2de0b5e7d7 feat(co): add agent-readiness as safe first-run demo program
Narrow intake a founder can run in under a minute. Three prompts, one
WebFetch batch across a fixed set of well-known paths, one screenshot-ready
markdown report written to ~/prose-<company>/agent-readiness.md.

Scores four dimensions (discoverability, parseability, structure,
api-readiness) 0-100 and surfaces exactly three concrete, file-path-level
fixes. No JavaScript execution, no fetches outside the target origin, no
writes outside the per-company workspace.

Built for the "claude \"prose run co/programs/agent-readiness\"" first
experience: all probes are static well-known paths, so it never fails on
a live JS-wall or a missing API.

Paired eval protects the demo: every finding must ground in a Raw Probe
Results row, every top_fix must name an exact file path, and any
JavaScript execution or cross-origin fetch fails the eval.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-21 15:27:11 -07:00
dan f2f71be996 Merge pull request #39 from openprose/migrate/monorepo-std-and-co
Migrate std and co into packages/ monorepo
2026-04-21 17:18:10 -04:00
irl-dan 63c8ce4b23 Migrate std and co into packages/ monorepo layout
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>
2026-04-21 14:14:31 -07:00
dan 6c95db89fc Merge pull request #38 from openprose/docs/cli-vs-use-resolution
Clarify prose command routing
2026-04-21 17:08:08 -04:00
irl-dan 730ea22fba Clarify prose command routing 2026-04-21 14:04:35 -07:00
dan 3e56430072 Merge pull request #35 from openprose/docs/cli-vs-use-resolution
docs: unify prose-run and use resolution (explicit git hosts)
2026-04-21 16:11:40 -04:00
irl-dan 58dde29dcf docs: unify prose-run and use resolution with explicit git hosts
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>
2026-04-21 13:01:11 -07:00
dan 24031ab100 Merge pull request #34 from openprose/docs/patterns-idempotence-cursor-cheap-floor
docs(patterns): add idempotent-intake, top-level-cursor, cheap-floor-first
2026-04-21 14:35:41 -04:00
dan d4e5f8a698 Merge pull request #36 from openprose/docs/canonize-memory-section
docs(contract-markdown): canonize ### Memory section
2026-04-21 14:35:31 -04:00
dan f73fd8c2fb Merge pull request #33 from openprose/docs/contract-markdown-run-typed-inputs
docs(contract-markdown): document run / run[] typed caller inputs
2026-04-21 14:30:28 -04:00
dan daaf14407e Merge pull request #32 from openprose/docs/persist-scoping-clarification
docs: distinguish session-memory from cross-run persistence
2026-04-21 14:29:58 -04:00
irl-dan 3311603e8f docs(contract-markdown): canonize ### Memory section
Customer programs that accumulate state across runs
(stargazer-intake, agents-site-analytics, and others that declare
`persist: project` or `persist: user`) have been carrying a
load-bearing `### Memory` section that enumerates reads/writes
to their persistent memory file.

Per the existing spec, `### Memory` was an "unknown section" —
preserved as documentation but not a contract. This left several
gaps real teams have hit:

- Agents editing those programs couldn't tell whether the section
  was load-bearing or ornamental.
- There was no single source of truth for fields that appear in
  three places (memory file, top-level Ensures, and memory_update
  echo).
- The 2026-04-21 eval-blanket on stargazer-intake flagged the
  "authoritative source when 3 copies exist" question as a real
  friction item.

This PR:

- Adds `### Memory` to the Canonical Sections table.
- Defines the `reads:` / `writes:` YAML format that customer
  programs already use.
- States the rule: `### Memory` only applies when `### Runtime`
  sets `persist: project` or `persist: user`.
- Cross-references `top-level-cursor-emission` and
  `idempotent-scheduled-intake` in `guidance/patterns.md` so
  authors know cursor fields should *also* appear in `### Ensures`.
- Points to `prose.md` Persistent Agents and
  `state/filesystem.md` Memory Scoping for on-disk format.

No behavior change; this canonizes prior art so readers stop
having to infer it.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 22:53:16 -07:00
irl-dan b87c6eca9b docs(patterns): add idempotent-intake, top-level-cursor, cheap-floor-first
These three patterns have been repeatedly rediscovered while operating
scheduled-intake programs (stargazer-intake, agents-site-analytics,
nightly-digest variants). The rediscovery cost was real — one run
deferred 41 of 46 items with no signal at all, producing a cohort
downstream could not triage.

Add them to `guidance/patterns.md` so teams inherit the lesson without
paying for it again:

- idempotent-scheduled-intake — re-runs on the same window must not
  double-count; write memory last; compute deltas from caller-supplied
  inputs; dedupe on canonical keys.
- top-level-cursor-emission — high-water marks, cursor tokens, and
  run IDs belong in `### Ensures`, not buried in `memory_update`.
  Memory is for the next invocation of this service; the return
  value is for the next responsibility.
- cheap-floor-first — populate free signals (local CLIs, cached
  files) for every item before spending any metered budget on the
  top slice. Keeps the deferred bucket actionable.

Each pattern has a concrete example and a rationale. No spec change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 22:47:20 -07:00
irl-dan 6b06358610 docs(contract-markdown): document run / run[] typed caller inputs
`run` and `run[]` are reserved keyword types for `### Requires`
entries that accept completed run IDs — used by inspectors,
regression checkers, and other meta-programs that evaluate prior
executions.

The binding format and resolution rules are specified in
`prose.md` and `forme.md`, but `contract-markdown.md` — the
primary authoring surface — never mentioned them. Authors had to
cross-reference three files to discover the feature.

Add a "Typed Caller Inputs" subsection after "Contract Item
Style" showing the canonical `subject: run` and `cohort: run[]`
shapes, a one-paragraph semantics summary, and a pointer to
`prose.md` for the full binding/validation rules.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 22:44:05 -07:00
irl-dan ec6dbb12ba docs: distinguish session-memory from cross-run persistence
The Persistent Agents section opened with "maintain memory across
invocations" and showed `persist: true` as the canonical example.
The scoping table directly below documents `persist: true` as the
execution-default whose memory dies with the run.

An agent pattern-matching the narrative would wire `persist: true`
for a service that compounds state between runs (cumulative
registries, high-water marks) and silently lose that state on
every restart.

Reword the opening to distinguish session memory (within a run)
from cross-run persistence. Switch the example to `persist:
project`, the common case where a service's value compounds. Add
a follow-up paragraph after the scoping table that names when to
reach for each scope.

Doc-only; no behavior change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 22:43:35 -07:00
irl-dan ae1a7d9136 release: v0.10.0
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
v0.10.0
2026-04-20 21:47:27 -07:00
irl-dan 22608daec4 cleanup
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 21:41:48 -07:00
irl-dan d7ef3e1d2f Merge pull request #24 from apollostreetcompany/codex/docs-codex-adapter
docs: add experimental Codex adapter examples

# Conflicts:
#	README.md
#	skills/README.md
#	skills/open-prose/README.md
2026-04-20 21:28:13 -07:00
irl-dan e911181964 Merge pull request #25 from Wreos/codex/add-codex-support
Add Codex support docs and AGENTS entrypoint

# Conflicts:
#	README.md
2026-04-20 21:27:44 -07:00
irl-dan f190977b9e Merge pull request #23 from rawwerks/feat/add-linter
feat: add deterministic linter (tools/lint/)
2026-04-20 21:27:27 -07:00
dan d3adb00b37 Merge pull request #31 from openprose/docs/redact-internal-references
docs: make skills and RFCs self-contained
2026-04-20 23:44:07 -04:00
Jose Montes de Oca 14e6854dfa docs: make skills and RFCs self-contained
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.
2026-04-20 22:30:20 -04:00
dan ad4b2ad592 Merge pull request #30 from openprose/agent-onboarding-canonical
add canonical agent-onboarding narrative
2026-04-20 18:31:12 -04:00
irl-dan 1b2cda2922 add canonical agent-onboarding narrative
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>
2026-04-20 15:23:06 -07:00
dan b0e6ca8768 Merge pull request #29 from openprose/skill-services-section-elegance
speak to agents, not about them
2026-04-20 17:42:39 -04:00
irl-dan 5ba2f39663 speak to agents, not about them
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>
2026-04-20 14:36:36 -07:00
irl-dan 17e87514d4 improve progressive disclosure flow 2026-04-20 12:42:40 -07:00
dan 3d41de2914 Merge pull request #28 from openprose/skill-services-section-elegance
Make services a Contract Markdown section
2026-04-20 14:14:39 -04:00
irl-dan 160a463e88 Make services a Contract Markdown section 2026-04-20 10:52:09 -07:00
dan 8952649347 Merge pull request #27 from openprose/skill-contract-markdown-prosescript
Overhaul OpenProse skill docs and README
2026-04-20 11:55:45 -04:00
irl-dan 487117dc31 docs: overhaul openprose skill docs 2026-04-20 08:49:24 -07:00
irl-dan db66354e06 ci: update longcot-rlmify workflow with thinking input
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>
2026-04-19 04:33:25 -07:00
irl-dan b7e4b99b31 ci: add longcot-rlmify workflow dispatcher
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>
2026-04-18 16:00:45 -07:00
irl-dan 18b3579ddc ci: add LongCoT benchmark workflow + pi-mono shim
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>
2026-04-18 14:50:16 -07:00
irl-dan 770ae2b9fa expand skills docs, add RFCs and std README
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>
2026-04-14 12:31:21 -07:00
irl-dan d6e9c64c82 feat: add run as first-class keyword type in the contract system
Introduces `run` and `run[]` as recognized value types in `requires:` declarations,
enabling provenance tracking, DAG reconstruction, fan-in composition, and staleness
detection across agent workflows.

Spec changes (prose.md, forme.md, state/filesystem.md, SKILL.md):
- VM validates run-typed inputs (existence, completion, structure)
- Writes structured metadata bindings with run ID, path, program, status
- Records `upstream:` and `program:` in state.md headers for provenance
- Staleness detection compares program.md snapshot against current source
- Cross-project resolution: bare ID (local), ~/{id} (user), absolute path
- `prose status --graph` command (sugar for std/ops/graph)
- Forme treats run-typed requires as external caller inputs (not auto-wired)
- Recursive Forme invocation for kind:program services
- Declared-but-unused service lint warning
- ASCII `->` documented as valid fallback for `→` in event markers

Std library updates (all 7 programs):
- inspector: run-path → subject: run
- calibrator: run-paths → runs: run[], removed "recent" magic value
- profiler: run-path → runs: run[], removed "recent"
- cost-analyzer: run-path → runs: run[], removed "recent"
- error-forensics: run-path → subject: run
- program-improver: run-path → subject: run, inspection-path → inspection: run
- vm-improver: inspection-path → inspection: run

Deletes the RFC (guidance/rfc-run-type.md) — feature is now implemented.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 10:24:16 -07:00
irl-dan 9699eb5bb8 fix: resolve internal consistency issues across skill files
- SKILL.md: update stale .prose extensions to .md/directories, fix "v0 format" claim, add prose update to command routing
- state/filesystem.md: add test evaluation markers ([eval] ✓/✗, ---test PASS/FAIL)
- prose.md: add prose install to CLI command table
- guidance/patterns.md: fix compiler.md ref to v0/compiler.md, fix v1/v2 labels to legacy/declarative

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 10:01:42 -07:00
irl-dan b6c218c3dc fix: close spec-to-skill gaps — declarative each, env security, delegation markers, help.md, mode:contract removal
- prose.md: add `each` postcondition evaluation section
- forme.md: add `each` recognition in Step 4b, add environment security constraint, remove mode:contract from test wiring
- guidance/patterns.md: add declarative-each pattern with before/after examples
- state/filesystem.md: add runtime delegation markers, __delegate/ directory, write ownership
- help.md: rewrite with v1 contract syntax as primary, v0 as legacy subsection, update examples to ~50

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 09:45:47 -07:00
irl-dan 80fb1dc0a1 RFC: run as a first-class type in the contract system
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>
2026-04-07 09:08:49 -07:00
irl-dan 677b1654b5 feat: update CLI commands, add environment to contract surface
- SKILL.md: route lint, preflight, inspect, status as sugar for std programs
- prose.md: add environment: as sixth contract section with VM verification
- forme.md: propagate environment declarations through wiring to manifest
- help.md: update command reference
- Replace prose-compile with prose-lint, add preflight/inspect/status commands
- Remove compile, wire, migrate, eval as top-level commands

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-06 20:06:20 -07:00
irl-dan bc170f978a Merge branch 'feat/deps-system' 2026-04-06 17:46:58 -07:00
irl-dan 66d64baded Add git-native dependency resolution system
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>
2026-04-06 17:43:35 -07:00
Aleksandr Lozhkovoi 6f24be7efc Add Codex support docs and entrypoint 2026-03-29 12:44:44 +02:00
Apollo 373ff36181 docs: add experimental Codex adapter examples
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.
2026-03-26 23:08:26 +09:00
Raymond Weitekamp 1a0aa4a815 feat: add deterministic linter (tools/lint/)
Rust-based linter for OpenProse programs. Supports both legacy .prose
files and .md programs.

Legacy (.prose):
- Structure, syntax, string literals, escape sequences (E002)
- Agent definitions and references
- Property, permission, skill validation
- Prompt hygiene, output validation (E023)
- Legacy syntax detection

.md programs:
- YAML frontmatter validation
- Component and contract section parsing
- Heading classification (components vs state schemas vs docs)
- Multi-file program directory auto-detection
- Contract completeness observations

Spec discovery:
- discover command reports corpus patterns not covered by spec
- Role/delegation correlation, API/prohibited overlap, state coherence

build.rs reads skills/open-prose/compiler.md for vocabulary extraction.
Tests validate against skills/open-prose/examples/.
22 tests, 0 failures.
2026-03-25 09:36:44 -04:00
irl-dan 03c5215704 fix: move lib/migrate to skills/open-prose/lib/migrate
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
v0.9.0
2026-03-23 15:10:14 -04:00
irl-dan b94f58e501 docs: update README, CHANGELOG, and version for v2 launch (0.9.0)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 15:09:31 -04:00
irl-dan 769ac9152e feat: upgrade lib/ programs to high-quality Prose v2
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>
2026-03-23 15:09:30 -04:00