Files
openprose__prose/examples
irl-dan 1176b954c5 Rename prose.md to docs.md
Update all references across:
- SKILL.md (frontmatter, triggers, documentation table)
- interpreter.md (frontmatter see-also)
- README.md (links)
- examples/README.md

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03 09:45:12 -05:00
..
2026-01-03 06:44:22 -05:00
2026-01-03 09:45:12 -05:00

OpenProse Examples

These examples demonstrate workflows using OpenProse's full feature set.

Available Examples

Basics (01-08)

File Description
01-hello-world.prose Simplest possible program - a single session
02-research-and-summarize.prose Research a topic, then summarize findings
03-code-review.prose Multi-perspective code review pipeline
04-write-and-refine.prose Draft content and iteratively improve it
05-debug-issue.prose Step-by-step debugging workflow
06-explain-codebase.prose Progressive exploration of a codebase
07-refactor.prose Systematic refactoring workflow
08-blog-post.prose End-to-end content creation

Agents & Skills (09-12)

File Description
09-research-with-agents.prose Custom agents with model selection
10-code-review-agents.prose Specialized reviewer agents
11-skills-and-imports.prose External skill imports
12-secure-agent-permissions.prose Agent permissions and access control

Variables & Composition (13-15)

File Description
13-variables-and-context.prose let/const bindings, context passing
14-composition-blocks.prose Named blocks, do blocks
15-inline-sequences.prose Arrow operator chains

Parallel Execution (16-19)

File Description
16-parallel-reviews.prose Basic parallel execution
17-parallel-research.prose Named parallel results
18-mixed-parallel-sequential.prose Combined parallel and sequential patterns
19-advanced-parallel.prose Join strategies, failure policies

Loops (20)

File Description
20-fixed-loops.prose repeat, for-each, parallel for patterns

Pipelines (21)

File Description
21-pipeline-operations.prose map, filter, reduce, pmap transformations

Error Handling (22-23)

File Description
22-error-handling.prose try/catch/finally patterns
23-retry-with-backoff.prose Resilient API calls with retry/backoff

Advanced Features (24-27)

File Description
24-choice-blocks.prose AI-selected branching
25-conditionals.prose if/elif/else patterns
26-parameterized-blocks.prose Reusable blocks with arguments
27-string-interpolation.prose Dynamic prompts with {var} syntax

Running Examples

Ask Claude to run any example:

Run the code review example from the OpenProse examples

Or reference the file directly:

Execute examples/03-code-review.prose

Feature Reference

Core Syntax

# Comments
session "prompt"                    # Simple session
let x = session "..."               # Variable binding
const y = session "..."             # Immutable binding

Agents

agent name:
  model: sonnet                     # haiku, sonnet, opus
  prompt: "System prompt"
  skills: ["skill1", "skill2"]
  permissions:
    read: ["*.md"]
    bash: deny

Parallel

parallel:                           # Basic parallel
  a = session "A"
  b = session "B"

parallel ("first"):                 # Race - first wins
parallel ("any", count: 2):         # Wait for N successes
parallel (on-fail: "continue"):     # Don't fail on errors

Loops

repeat 3:                           # Fixed iterations
  session "..."

for item in items:                  # For-each
  session "..."

parallel for item in items:         # Parallel for-each
  session "..."

loop until **condition** (max: 10): # Unbounded with AI condition
  session "..."

Pipelines

items | map:                        # Transform each
  session "..."
items | filter:                     # Keep matching
  session "..."
items | reduce(acc, x):             # Accumulate
  session "..."
items | pmap:                       # Parallel transform
  session "..."

Error Handling

try:
  session "..."
catch as err:
  session "..."
finally:
  session "..."

session "..."
  retry: 3
  backoff: "exponential"            # none, linear, exponential

throw "message"                     # Raise error

Conditionals

if **condition**:
  session "..."
elif **other condition**:
  session "..."
else:
  session "..."

Choice

choice **criteria**:
  option "Label A":
    session "..."
  option "Label B":
    session "..."

Blocks

block name(param):                  # Define with parameters
  session "... {param} ..."

do name("value")                    # Invoke with arguments

String Interpolation

let x = session "Get value"
session "Use {x} in prompt"         # Single-line

session """                         # Multi-line
Multi-line prompt with {x}
"""

Learn More

See docs.md in the skill directory for the complete language specification.