Commit Graph

124 Commits

Author SHA1 Message Date
irl-dan 730ea22fba Clarify prose command routing 2026-04-21 14:04:35 -07: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
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
irl-dan cd9a91a122 feat: add lib/migrate — multi-pass .prose to .md conversion program
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 15:07:42 -04:00
irl-dan 03832c75cd chore: remove all legacy .prose files — v2 .md format is now canonical
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 15:06:16 -04:00
irl-dan ccd5d5f54a fix: update relative paths after move into platform as submodule 2026-03-23 14:25:33 -04:00
irl-dan 1f42e4a64d feat: v2 migration — remove websh, alts, commons; restructure for forme 2026-03-23 13:57:59 -04:00
irl-dan c5b8212ade docs: update examples README for v2 migration
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>
2026-03-23 13:17:38 -04:00
irl-dan 420401381a feat: migrate lib/ programs to Prose v2
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>
2026-03-23 13:17:32 -04:00
irl-dan 0f52035e95 feat: add v2-native examples (test, registry, wiring, multi-file, composites)
Five new examples demonstrating v2-only features:
- test-demo.md: kind: test with fixtures and expects
- registry-import/: importing services from p.prose.md
- wiring-declaration.md: Level 2 explicit ### Wiring section
- multi-service-single-file.md: ## heading delimiters
- composites-demo/: worker-critic composite pattern

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 13:17:24 -04:00
irl-dan 61acc58b5e chore: archive retired v1 examples (15 programs)
Move 15 retired .prose files to v1-archive/: 05 (debug-issue),
06 (explain-codebase), 07 (refactor), 08 (blog-post), 10 (code-review-
agents), 14 (composition-blocks), 15 (inline-sequences), 17 (parallel-
research), 18 (mixed-parallel-sequential), 19 (advanced-parallel),
20 (fixed-loops), 21 (pipeline-operations), 26 (parameterized-blocks),
27 (string-interpolation), 31 (captains-chair-with-memory).

Also moves roadmap/ directory to v1-archive/roadmap/.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 13:17:12 -04:00
irl-dan 8fa40c9010 feat: migrate remaining examples to Prose v2
Code review (03), feature demos (11, 12, 13), PR workflows (32, 33),
bug hunter (36), skill scanner (38), UX test (44), plugin release (45),
workflow crystallizer (46), habit miner (48), retrospective (49), and
interactive tutor (50).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 13:17:01 -04:00
irl-dan a0b7a26ae3 feat: migrate Wave 3 examples to Prose v2 (29, 35, 37, 39, 47)
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>
2026-03-23 13:16:52 -04:00
irl-dan 46f7acf075 feat: migrate Wave 2 examples to Prose v2 (22-25, 30, 34, 41-43)
Error handling with conditional ensures (22), strategies for retry/
backoff (23), conditional ensures for choice blocks (24) and
conditionals (25), captain's chair with shapes (30), content pipeline
(34), and RLM patterns: divide-conquer (41), filter-recurse (42),
pairwise (43).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 13:16:46 -04:00
irl-dan ae8899a61a feat: migrate Wave 1 examples to Prose v2 (01, 02, 04, 09, 16, 40)
Single-service programs (01 hello-world, 02 research-and-summarize,
04 write-and-refine), multi-service auto-wired programs (09 research-
with-agents, 16 parallel-reviews), and worker-critic composite
(40 rlm-self-refine).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 13:16:39 -04:00
irl-dan d7c3ef43c7 docs: add READMEs across all directories; document profiler.prose in lib
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>
2026-03-15 09:29:20 -04:00
irl-dan 35b3b606f4 prefer npx skills add instead of current skills add 2026-02-20 15:23:22 -05:00
dan c5780e0c49 Merge pull request #15 from bucko13/patch-1
Update examples link in README.md
2026-02-02 14:52:07 -05:00