.agents/skills/prose-gen/SKILL.md
Generate valid OpenProse workflow code from plain English descriptions. Use when the user wants to create multi-agent workflows, orchestrate sessions, or automate tasks using the OpenProse language.
npx skillsauth add kentoje/dotfiles prose-genInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate valid OpenProse code from the user's plain English description.
prose language tagworkflow.prose)prose run <filename># This is a comment
session "Hello" # Inline comment
"Single line string"
"""
Multi-line string
preserves whitespace
"""
"Hello {name}" # Interpolation with {varname}
agent name:
model: sonnet # sonnet, opus, or haiku
prompt: "System prompt"
persist: true # true, project, or path string
skills: ["skill1"]
permissions:
read: ["*.md"]
write: ["output/"]
bash: deny # allow, deny, or prompt
network: allow
# Simple session
session "Do something"
# Session with agent
session: agentName
prompt: "Override prompt"
model: opus
context: previousResult
retry: 3
backoff: exponential
let result = session "Get data" # Mutable
const config = session "Get config" # Immutable
result = session "Update" # Reassign let only
# Context passing
session "Use previous"
context: result # Single
context: [a, b, c] # Multiple
context: { a, b, c } # Object shorthand
# Sequential block
do:
session "First"
session "Second"
# Named block (reusable)
block review-pipeline:
session "Review"
session "Fix"
do review-pipeline # Invoke
# Block with parameters
block process(item, mode):
session "Process {item} in {mode} mode"
do process("data.csv", "strict")
# Inline sequence
session "A" -> session "B" -> session "C"
parallel:
a = session "Task A"
b = session "Task B"
session "Combine"
context: { a, b }
# Join strategies
parallel ("first"): # Race - first wins
parallel ("any"): # First success
parallel ("any", count: 2): # Wait for 2
# Failure policies
parallel (on-fail: "continue"): # Let all complete
parallel (on-fail: "ignore"): # Ignore failures
# Repeat N times
repeat 3:
session "Generate idea"
repeat 5 as i:
session "Process item {i}"
# For-each
for item in items:
session "Process"
context: item
for item, i in items:
session "Process {i}"
context: item
# Parallel for-each (fan-out)
parallel for topic in ["AI", "ML", "DL"]:
session "Research"
context: topic
Use **...** discretion markers for AI-evaluated conditions:
loop (max: 50):
session "Process next"
loop until **the task is complete** (max: 10):
session "Continue working"
loop while **there are items to process** (max: 20) as i:
session "Process item {i}"
let items = ["a", "b", "c"]
# Map
let results = items | map:
session "Transform"
context: item
# Filter
let filtered = items | filter:
session "Keep this? yes/no"
context: item
# Reduce
let combined = items | reduce(acc, item):
session "Combine"
context: [acc, item]
# Parallel map
let fast = items | pmap:
session "Process in parallel"
context: item
# Chaining
let final = items
| filter:
session "Keep?"
context: item
| map:
session "Transform"
context: item
try:
session "Risky operation"
catch as err:
session "Handle error"
context: err
finally:
session "Always cleanup"
# Throw
throw "Something went wrong"
throw # Re-raise in catch block
# Retry
session "Flaky API"
retry: 3
backoff: exponential # none, linear, exponential
choice **which approach is best**:
option "Quick fix":
session "Apply quick fix"
option "Full refactor":
session "Do full refactor"
if **code has security issues**:
session "Fix security"
elif **code has performance issues**:
session "Optimize"
else:
session "Proceed"
# Import programs
use "@handle/slug"
use "@handle/slug" as alias
# Inputs and outputs
input topic: "The subject to research"
let result = session "Research {topic}"
output findings = session "Synthesize"
context: result
# Call imported program
let data = research(topic: "quantum computing")
session "Use findings"
context: data.findings
agent captain:
model: opus
persist: true # Dies with execution
persist: project # Survives across runs
persist: ".prose/custom/" # Custom path
# First call creates memory
session: captain
prompt: "Review plan"
# Resume continues with memory
resume: captain
prompt: "Continue review"
agent researcher:
model: sonnet
prompt: "You research topics thoroughly"
agent writer:
model: opus
prompt: "You write clear documentation"
let research = session: researcher
prompt: "Research quantum computing"
session: writer
prompt: "Write summary"
context: research
parallel:
security = session "Security review"
perf = session "Performance review"
style = session "Style review"
session "Synthesize reviews"
context: { security, perf, style }
let draft = session "Write initial draft"
loop until **draft is polished** (max: 5):
draft = session "Improve draft"
context: draft
session "Finalize"
context: draft
Always output:
.prose code in a fenced code blockprose run <filename>Ask clarifying questions if the request is ambiguous.
tools
Autonomous design critique mode using the Agentation annotation toolbar. Use when the user asks to "critique this page," "add design annotations," "review the UI," "self-driving mode," "auto-annotate," or wants an AI agent to autonomously add design feedback annotations to a web page via the browser. Requires the Agentation toolbar to be installed on the target page and agent-browser skill to be available.
development
Automates browser interactions for web testing, form filling, screenshots, and data extraction. Use when the user needs to navigate websites, interact with web pages, fill forms, take screenshots, test web applications, or extract information from web pages.
development
Browse Aircall staging or local dev URLs with automatic authentication. USE THIS skill (not the generic agent-browser skill) whenever the target URL contains "aircall" in the hostname (e.g. dev.aircall-staging.com, localhost running Aircall).
tools
Design and implement web animations that feel natural and purposeful, based on Emil Kowalski's "Animations on the Web" course. Use proactively when the user asks about easing, timing, springs, transitions, animation performance, or how to animate specific UI elements. Covers CSS transitions, Framer Motion, GSAP, accessibility (prefers-reduced-motion), and common patterns like modals, tooltips, page transitions, hover states, and microinteractions.