raiola is a repo-native workflow OS for Codex.
It installs a product shell, a markdown-canonical control plane, and repo-local runtime helpers so long-running engineering work stays resumable, reviewable, auditable, and safe to parallelize.
The public shell is rai. The published package is raiola. The blank-state onboarding entry is raiola-on. Repo-local npm fallbacks use the raiola:* namespace.
Raiola is built for repositories where "continue from memory" stops scaling.
Use it when you need:
- checkpoint-first continuity across sessions
- canonical markdown state instead of opaque agent memory
- explicit discuss, plan, execute, audit, and closeout gates
- bounded shell and browser verification with stored evidence
- review and ship-readiness surfaces that emit reusable artifacts
- Codex prompt packs and context packs that live with the repo
- explicit write scopes for parallel work
- a safer way to move between solo work, quick tasks, review passes, and team fan-out
Raiola is not a hosted service and not a remote control plane. It is a repo-local product surface that writes files into the repository so the workflow stays inspectable.
raiThe primary command surface used in docs, examples, screenshots, and tests.raiolaThe npm package name and published product identity.raiola-onThe first-run onboarding entry for blank-state repositories.raiola:*Repo-local npm fallback scripts created by setup/update.
If you are reading old notes or old internal artifacts, treat cwf and codex-workflow as retired names rather than active product surfaces.
Raiola has a simple contract:
- Install a repo-local shell and workflow surface.
- Open a milestone or a quick task.
- Route work through explicit lanes instead of informal memory.
- Verify changes with stored evidence.
- Checkpoint before pause, compaction, or handoff.
- Resume from markdown and runtime mirrors instead of reconstructing context by guesswork.
The design center is:
- markdown is canonical
- runtime JSON is derived
- checkpoints are first-class
- verification is stored, not implied
- delegation requires explicit write scope
Raiola now ships a thin lifecycle facade over the deeper workflow engine:
rai specrai planrai buildrai testrai simplifyrai reviewrai ship
These commands are the preferred first layer when you want explicit workflow discipline without memorizing the whole shell.
This repository also ships a portable agent-facing surface:
- split skills under
skills/ - personas under
agents/ - quick references under
references/ - Claude commands under
.claude/commands/ - Claude plugin metadata under
.claude-plugin/ - a real session-start hook under
hooks/session-start.sh - root repo instructions in
AGENTS.md
rai on nextOpen the clean first-run entry and get a milestone proposal when nothing is active.rai specDefine the next slice before code by surfacing assumptions, scope, and success criteria.rai planTurn the current slice into explicit chunks, validation gates, and fallback notes.rai buildTranslate the active plan into the next safe execution step.rai testProve the slice works with explicit verification commands and evidence.rai simplifyRun a dedicated behavior-preserving cleanup pass.rai doRoute a natural-language goal into the right lane.rai nextRecommend the next safe move from current workflow state.rai hudShow compact status for the active lane.rai managerShow the operator summary surface.rai checkpointSave a continuity checkpoint before pause or handoff.rai next-promptEmit a compact resume prompt for the next session.
rai milestoneOpen a full-workflow milestone with explicit lifecycle state.rai discussBuild or inspect the current problem framing.rai assumptionsTrack assumptions and their exit triggers.rai claimsTrack evidence-backed claims.rai plan-checkEnforce the seeded plan gate before execution starts.rai pause-workPause with a checkpoint-first contract.rai resume-workResume with continuity state intact.
rai quick startStart a narrow task without opening a full milestone.rai quick closeClose the task with visible artifacts.rai quick escalatePromote quick work into a full milestone when the task grows.
rai reviewGenerate a review-ready package.rai review-modeRun the deeper multi-pass review engine.rai monorepo-modeRun the staged large-monorepo repo-map, risk, patch-plan, and verify flow, and sync the rootAGENTS.mdmonorepo section.rai review-tasksTurn findings into a blocker-first task graph.rai pr-reviewReview a PR or diff surface directly.rai re-reviewReplay earlier findings against current state.rai verify-shellRun bounded shell verification and store evidence.rai verify-browserRun browser smoke verification and store evidence.rai verify-workSummarize gaps and propose fix work.rai ship-readinessProduce a ship gate with blockers and residual risk.
rai teamOperate Team Lite orchestration.rai subagentsSuggest bounded parallel slices.rai monorepoBuild package-aware execution guidance.rai patch-reviewReview collected patch bundles.rai patch-applyApply a collected patch bundle.rai patch-rollbackRoll back an applied bundle.rai sessionsInspect active runtime surfaces for parallel work.
rai ui-directionrai design-dnarai page-blueprintrai design-mdrai component-strategyrai design-benchmarkrai state-atlasrai frontend-briefrai ui-reciperai ui-specrai ui-planrai ui-reviewrai previewrai component-maprai responsive-matrixrai design-debt
These commands turn UI work into explicit product and verification artifacts instead of ad hoc prompt text.
rai codexOperate the safe Codex control plane.rai codex promptpackBuild a ready-to-paste Codex prompt pack.rai codex contextpackBuild a budgeted attachment set for Codex sessions.rai launchStart a session with stronger routing context.rai dashboardOpen the repo-local operator control room.
npx raiola setupFresh installs default to the focused pilot script profile so a new repository gets the highest-signal shell without maximum package.json churn.
Upgrade the install surface when you need more:
npx raiola setup --script-profile core
npx raiola setup --script-profile fullnode bin/rai.js setup --target /path/to/target-reporai help
rai help lifecycle
rai doctor --strict
rai hud --compactIf rai is not on PATH yet, the repo-local entry still works:
node bin/rai.js help
node bin/rai.js doctor --strictnpx raiola setup
rai on next
rai doctor --strict
rai milestone --id M1 --name "Initial slice" --goal "Land the next safe slice"
rai do "land the next safe slice"
rai next
rai checkpoint --next "Resume from the next recommended step"rai on next is the preferred blank-state entry. If no milestone is open, it proposes the next milestone command. If a milestone is already active, it hands off to the live next-step surface.
You can also call the onboarding binary directly:
raiola-on nextUse this when one operator is moving one safe slice at a time.
rai help lifecycle
rai spec --goal "land the next safe slice"
rai plan --goal "land the next safe slice"
rai build --goal "land the next safe slice"
rai test --cmd "npm test"
rai help solo
rai on next
rai do "resume the current slice"
rai explore --changed
rai verify-shell --cmd "npm test"
rai checkpoint --next "Resume from verification follow-up"
rai next-promptUse this when the main job is reducing risk rather than building a fresh slice.
rai help review
rai route --goal "review the current diff" --why
rai review --heatmap
rai ui-review --url ./preview.html
rai verify-work
rai ship-readinessUse this when the repository is broad enough that staged repo mapping, subsystem ranking, and bounded patch planning are more valuable than a one-shot review prompt.
rai help monorepo
rai monorepo
rai monorepo-mode --goal "review and patch the top-risk monorepo subsystem"
rai review-mode --goal "deep review the selected subsystem"
rai verify-work
rai ship-readinessThis flow refreshes AGENTS.md, docs/workflow/REPO_MAP.md, docs/workflow/REVIEW_SCOPE.md, docs/workflow/PATCH_PLAN.md, and .workflow/reports/monorepo-mode.{md,json}.
If you want to use Raiola as a plugin-style rules pack instead of only an npm-installed workflow OS, start from:
AGENTS.mdskills/using-raiola/SKILL.md.claude/commands/*hooks/hooks.json
Use this when the user explicitly wants delegation or the repository is broad enough that write scopes matter.
rai help team
rai monorepo
rai team run --adapter hybrid --activation-text "parallel yap" --write-scope src,tests
rai team collect --patch-first
rai patch-review
rai sessionsRaiola keeps the on-disk state names repo-native on purpose: the product, CLI, plugin, and skill surface use the rai / raiola identity, while the written state stays under generic docs/workflow and .workflow paths so the repo reads like workflow data rather than a tool-private namespace.
docs/workflow/Full-workflow markdown state..workflow/quick/Quick-lane canonical artifacts..workflow/orchestration/Team Lite orchestration state.
.workflow/runtime/Runtime mirrors such as HUD, manager, dashboard, and companion JSON outputs..workflow/verifications/Shell and browser verification artifacts..workflow/reports/Review, monorepo-mode, ship, PR brief, release note, and closeout outputs..workflow/cache/Caches, indexes, and hot-path data..workflow/fs-index.jsonFile-system index for faster repo-aware surfaces.
The rule is simple: if it is markdown workflow state, it is canonical; if it is runtime JSON, telemetry, or dashboard state, it is derived.
pilotLean default install with the highest-signal surface.coreBroader day-to-day shell with curated npm fallbacks.fullMaximum install surface, including the full repo-localraiola:*fallback namespace.
Move between profiles in place:
rai update --script-profile core
rai update --script-profile full- Node.js
>=22 .nvmrcpinned to22- CI on Node
22and24 - Full support on macOS and Linux
- Smoke-tested install and help flows on Windows
setup, init, migrate, update, and repair flows also patch .gitignore so .workflow/ and .agents/ do not flood normal diffs.
raiis the public shell and should appear in user-facing docs.raiolais the package identity.raiola-onis the clean first-run entry.raiola:*npm scripts remain supported for installed repos.- Old names such as
cwfandcodex-workfloware no longer active product surfaces. - Installer, updater, repair, and uninstall code still recognize retired names where needed so existing repos can migrate cleanly.
- Getting Started
- Commands
- Architecture
- Performance
- Codex Integration
- Codex Upgrade
- Roadmap Audit
- Demo
For work on this repository itself:
npm test
npm run pack:smoke
node scripts/workflow/roadmap_audit.js --assert --json
node bin/rai.js helpnpm test covers the CLI, workflow surfaces, runtime helpers, review and verification behavior, and command/doc drift checks. npm run pack:smoke verifies that the published tarball installs cleanly into a temp consumer repo.
Raiola ships through a two-step automated release path:
- Run the
Cut ReleaseGitHub Actions workflow and choosepatch,minor, ormajor. - The workflow updates
package.json,scripts/workflow/product_version.js, andCHANGELOG.md, commits the release, createsvX.Y.Z, and pushes both commit and tag. - The tag triggers the
Releaseworkflow, which runs smoke checks, publishes to npm, and creates or updates the matching GitHub Release from theCHANGELOG.mdsection for that version.
Trusted publishing is configured for the raiola package against aydoganberk/Raiola and .github/workflows/release.yml, so normal tag-driven releases publish to npm without a long-lived token.
If the npm trust relationship is ever rotated or broken, restore the GitHub Actions trusted publisher in the npm package settings before cutting the next release. The workflow still supports NPM_TOKEN as an emergency fallback, but it is no longer required for standard releases.