Orpheum
orpheum is a scenario catalog and Rust CLI for applying reusable AI-assisted SDLC workflows to real projects.
Current release documentation:
This repository now has two closely related responsibilities:
- maintain the canonical catalog of scenarios, roles, workflows, artifacts, and checks
- provide the
orpheumCLI that resolves that catalog into lightweight project-local orchestration state under.orpheum/
The goal is not to build a heavyweight autonomous orchestrator. The goal is to make AI-assisted delivery more repeatable: explicit scenario selection, explicit artifact expectations, explicit checks, and a small, machine-readable control surface that an agent can use inside an ordinary project repo.
What Orpheum Is
At a high level, Orpheum has three layers:
- Catalog layer: this repository contains the reusable SDLC building blocks.
- Session layer: the CLI applies a selected scenario into a target project and creates a local
.orpheum/control directory. - Project output layer: durable deliverables live in the target project, not in Orpheum.
In practice, that means:
- humans and agents can inspect available scenarios with the CLI
- a scenario can be applied to a project without copying the whole catalog into it
- prompts, state, and checks are derived from machine-readable metadata rather than prose scraping
Current CLI Surface
The Rust workspace lives at the repo root and currently ships these v1 commands:
orpheum initorpheum updateorpheum scenario listorpheum scenario show <id>orpheum scenario apply <id>orpheum statusorpheum prompt currentorpheum check runorpheum doctor
All implemented commands support --json.
The CLI is intentionally metadata-first. It resolves scenarios from YAML frontmatter embedded in catalog Markdown files under:
Catalog-dependent commands resolve the catalog in this order:
--catalog <path>- repo-local
.codex/orpheum/config.jsonwritten byorpheum init ORPHEUM_CATALOG=<path>- runtime discovery from the current working directory or executable location when you are working from the Orpheum repo itself
- the embedded canonical catalog shipped with the installed CLI
That means cargo install orpheum now works on a clean machine without a separate catalog checkout. External catalog paths are override and development mechanisms, not a required second install step.
If you are wiring Orpheum into a local agent workflow, use the dedicated consumer guide:
Quick Start
Install the published CLI:
List shipped scenarios from the embedded catalog:
If you want a project to follow a local development catalog checkout instead, point Orpheum at that repo explicitly:
Build and run the CLI from this repository:
Initialize a consumer project for local agents:
Initialize a consumer project and persist an explicit external catalog override:
Inspect a scenario:
Apply a scenario to a target project:
After applying a scenario, the target project gets a small .orpheum/ control surface:
.orpheum/ACTIVE.md.orpheum/session.json.orpheum/scenario.json.orpheum/state.json.orpheum/prompts/current.md.orpheum/logs/checks.json
From the target project root, you can then run:
orpheum init installs or refreshes a project-local skill at .codex/skills/orpheum/SKILL.md, uses the embedded catalog by default, persists .codex/orpheum/config.json only when an external catalog override is active, writes a repo-root ORPHEUM.md onboarding file, and adds .orpheum/ to an existing .gitignore when that entry is missing.
orpheum update is the explicit refresh path for existing projects. Use it when a newer CLI warns that local Orpheum guidance should be refreshed.
Default SDLC Scenario Chain
The current standard path through the catalog is:
- Project Discovery
- Project Planning
- Delivery Slice Planning
- Implementation and Release Prep
- Review Remediation Loop when bounded remediation is needed
- Verification And Release Gate when a distinct final downstream gate is needed
- Release Feedback To Reprioritization
For security-sensitive or approval-sensitive work, use Secure Delivery / Secure Feature Lifecycle instead of the standard chain when those concerns need to shape the work end to end.
For designing and hardening scenarios themselves, see Scenario Implementation.
Repository Structure
- crates/orpheum-cli contains the
orpheumbinary and command-line interface. - crates/orpheum-catalog contains the embedded canonical catalog bundled into the shipped CLI.
- crates/orpheum-core contains catalog loading, dependency resolution, session management, prompt generation, checks, and doctor logic.
- scenarios contains reusable multi-role SDLC scenarios.
- roles contains reusable role packages.
- workflows contains reusable role-owned workflow definitions.
- artifacts contains reusable artifact definitions and templates.
- checks contains validation patterns used by roles and scenarios.
- notes contains design notes, sourcing notes, and other durable working context.
- skills contains vendored or locally maintained skills used by the catalog.
Metadata Contract
The CLI does not infer dependencies from prose at runtime.
Instead, the canonical catalog files carry YAML frontmatter that provides the machine-readable contract for:
- scenario dependencies
- workflow inputs and outputs
- role default workflows and skills
- artifact output paths and attached checks
- check execution mode and target artifacts
That frontmatter is the integration contract the CLI relies on. The surrounding Markdown remains the human-facing explanation.
Validation Model
The v1 check engine is intentionally narrow. It currently supports:
- artifact presence checks
- required heading checks
orpheum check run records results in .orpheum/logs/checks.json and mirrors summarized status back into .orpheum/state.json.
Product Specification Convention
When this repository defines product behavior, it should prefer Allium over ad hoc prose requirements unless there is a clear reason not to.
That preference still applies even though Orpheum now has a working CLI. The catalog should continue to optimize for reusable structure, explicit reasoning, and durable operating conventions.
Development Notes
- Workspace root: Cargo.toml
- Binary crate: crates/orpheum-cli/Cargo.toml
- Core crate: crates/orpheum-core/Cargo.toml
- CLI integration tests: crates/orpheum-cli/tests/cli.rs
Useful commands:
orpheum doctor will report catalog or project-health issues, including whether .orpheum/ is ignored in the target project.