A governed AI-SDLC operating layer for any coding framework.
RStack sits on top of Pi, Claude Code, Operator, Codex-style CLIs, Gemini-style CLIs, or a custom harness and gives agent teams a repeatable lifecycle with approvals, builder/validator contracts, evidence, memory, budget envelopes, and a live Business Hub.
clarify → plan → spec → approve → build → validate → release-readiness → learn
- Quick start
- Choose your framework
- Configure your team
- Agent identity and standby automation
- Upgrade path
- Start your first governed run
- What init creates
- Builder and validator sandbox model
- Business Hub
- CLI reference
- Known limitations and roadmap
- Documentation
- Development
cd your-project
npm install rstack-agents
npx rstack-agents init --profile business-flexinit auto-detects pi | claude-code | operator | custom, creates .rstack/, scaffolds bootstrap files (SOUL.md, HEARTBEAT.md, and framework-specific CLAUDE.md or AGENTS.md), registers the project with the Business Hub, writes framework glue, and never overwrites existing files.
If .rstack/ already exists, init adopts it and preserves all prior runs. To start clean instead (nothing is deleted):
npx rstack-agents init --fresh # archives prior state to .rstack/archive/<timestamp>/Pick a profile size:
npx rstack-agents init --profile lean-mvp
npx rstack-agents init --profile enterprise-webapp| Profile | Best for | Result |
|---|---|---|
business-flex |
Most business/product teams | Product, backend, frontend, QA, security, devops, docs, budget policy, Business Flex dashboard |
lean-mvp |
Fast prototypes | Smaller full-stack team and lower budget defaults |
enterprise-webapp |
Heavier governance | Enterprise web app team with security/compliance/devops emphasis |
RStack is a plugin layer — install your AI coding framework first, then run init.
| Framework | Integration | Bootstrap files | Harness entry |
|---|---|---|---|
| Pi | Native adapter | SOUL.md, HEARTBEAT.md |
sdlc_start(goal="...") |
| Claude Code | First-class | CLAUDE.md, SOUL.md, HEARTBEAT.md |
/sdlc-start or orchestrator |
| Operator | Python bridge | SOUL.md, HEARTBEAT.md |
Operator extension + Node bridge |
| Codex / custom | Asset + bridge | AGENTS.md, SOUL.md, HEARTBEAT.md |
Node bridge or prompt-driven |
| Framework | What you get |
|---|---|
| Pi | All 15 sdlc_* tools, lifecycle hooks, tool gating, auto-launch dashboard |
| Claude Code | Usage guide, optional SessionStart hook, slash commands via plugin |
| Operator | Python adapter shells out to the same Node harness |
| Codex / Gemini / custom | .rstack/ state contract, agents/skills as context, CLI bridge |
Per-framework setup: docs/mintlify/getting-started/install-your-framework.mdx
Custom harness bridge:
RSTACK_PROJECT_ROOT="$(pwd)" \
npx tsx node_modules/rstack-agents/bin/rstack-operator-bridge.ts sdlc_start '{"goal":"..."}'Full contract: docs/integrations/custom.md
RStack ships a large catalog (196 agents, 156+ skills, 72 plugins), but you configure only what your project needs.
Profiles write .rstack/rstack.config.json and .rstack/budget.json:
npx rstack-agents init --profile business-flex # default for most teams
npx rstack-agents init --profile lean-mvp # prototypes
npx rstack-agents init --profile enterprise-webapp # compliance-heavy deliveryEdit .rstack/rstack.config.json any time:
{
"profile": "business-flex",
"enabled_domains": ["product", "backend", "qa", "security", "docs"],
"enabled_plugins": [
"business-analytics",
"backend-development",
"unit-testing",
"security-scanning",
"documentation-generation"
],
"dashboard_pages": ["command", "business-flex", "workflow", "agent-work", "live-feed", "approvals"]
}When sdlc_plan runs, each task gets active profile, routing explanation, and budget envelope.
Copy one plugin pack into your project:
npx rstack-agents add plugin unit-testing
npx rstack-agents add plugin security-scanningPlugins land in .rstack/plugins/<name>/.
npx rstack-agents list agents
npx rstack-agents list skills
npx rstack-agents list pluginsDrop custom assets in .rstack/ — they take precedence over package defaults:
.rstack/agents/ custom agent definitions
.rstack/skills/ custom skills
.rstack/plugins/ custom or copied plugin packs
.rstack/prompts/ custom prompts
Then validate: npx rstack-agents validate
Current package limitation
Profiles guide routing, budget, dashboard visibility, and project-local configuration. The npm package still ships the full catalog so offline/project-local routing works. The next product step is a pack installer that physically copies only selected packs into .rstack/ for stricter enterprise footprints.
| File | Purpose |
|---|---|
| SOUL.md | Governance identity — orchestrator/builder/validator roles, evidence rules, profile awareness |
| HEARTBEAT.md | Optional periodic checks — pending approvals, budget burn, stalled tasks, validation retries |
| CLAUDE.md | Claude Code bootstrap — asset paths, slash commands, optional hooks |
| AGENTS.md | Codex/universal bootstrap — same rules plus skill routing and Node bridge |
init scaffolds these from templates/bootstrap/ when missing. Canonical templates live in the package at node_modules/rstack-agents/templates/bootstrap/.
RStack does not require hooks. Enable only what you want:
| Hook | What it does | How to enable |
|---|---|---|
| Claude SessionStart | Auto-launch Business Hub on session start | Merge .claude/rstack-hub-hook.json into .claude/settings.json |
| Pi lifecycle | Tool gating, stage events, contract enforcement | Automatic when using Pi extension |
| HEARTBEAT.md | Periodic approval/budget/stall checks | Wire into your harness cron or idle trigger |
Disable hub auto-launch:
export RSTACK_NO_BUSINESS_HUB=1 # skip hub spawn
export RSTACK_NO_BROWSER=1 # hub may start but no browser tab
export RSTACK_BUSINESS_PORT=3008 # change portStart small and expand as requirements grow:
lean-mvp → business-flex → enterprise-webapp
| Stage | When | Action |
|---|---|---|
| lean-mvp | Prototypes, internal tools | init --profile lean-mvp — lower budgets, fewer domains |
| business-flex | Client/product delivery | Add domains/plugins in rstack.config.json, raise budget in budget.json |
| enterprise-webapp | Compliance-heavy web apps | init --profile enterprise-webapp or enable security/compliance plugins |
Upgrade steps (no reinstall required):
- Edit
.rstack/rstack.config.json— addenabled_domains,enabled_plugins,dashboard_pages npx rstack-agents add plugin <name>— copy needed plugin packs locally- Adjust
.rstack/budget.json— raise thresholds as team size and scope grow npx rstack-agents validate— refresh registry after changes
From the host AI framework session:
sdlc_start(goal="Upgrade this app, add required tests, improve docs, and run a security review")
sdlc_clarify()
sdlc_plan()
Approve gates, then build and validate:
sdlc_approve(artifact="plan.md", status="APPROVED")
sdlc_approve(artifact="requirements.json", status="APPROVED")
sdlc_approve(artifact="architecture.md", status="APPROVED")
sdlc_build_next()
sdlc_validate()
your-project/
├── CLAUDE.md or AGENTS.md # framework bootstrap (if missing)
├── SOUL.md # governance identity (if missing)
├── HEARTBEAT.md # standby automation guide (if missing)
├── .rstack/
│ ├── rstack.config.json # active profile, enabled domains/plugins, dashboard pages
│ ├── budget.json # run/daily/monthly budget, warnings, approval thresholds
│ ├── runs/ # every governed run lands here
│ ├── registry/ # agents, skills, plugins, routing metadata
│ └── policy.json # optional approval policy you control
└── framework glue # e.g. .claude/rstack-sdlc.md or Operator template
Every run records its manifest, plan, tasks, approvals, evidence, events, stage artifacts, builder contracts, validator contracts, and metrics under .rstack/runs/<run-id>/.
RStack uses scoped task packets instead of giving every worker the whole project and whole catalog.
| Role | Tools | Must write | Rule |
|---|---|---|---|
| Orchestrator | planning/status tools | plan.md, tasks.json, specs |
Routes work; does not directly implement |
| Builder | read, bash, edit, write, grep, find, ls | builder.json |
Changes only task-scoped files; runs checks before claiming done |
| Validator | read, grep, find, ls | validation.json |
Read-only review; no mutation |
Builder contract:
{
"task_id": "003-architecture",
"agent": "builder",
"status": "PASS|FAIL|BLOCKED|DONE_WITH_CONCERNS",
"summary": "",
"files_modified": [],
"tests_run": [],
"risks": [],
"next_steps": []
}Contract v2 can also capture backend visibility:
{
"execution": { "tools_used": [], "events": [], "artifacts_written": [] },
"cost": { "currency": "USD", "estimated_usd": 1.5, "actual_usd": 1.2 },
"context": { "profile": "business-flex", "workflow": "production-business-sdlc" },
"routing": { "selected_by": "profile-domain-stage-affinity", "explanation": [] }
}Validator contract:
{
"task_id": "003-architecture",
"validator": "rstack-validator",
"status": "PASS|FAIL",
"checks": [],
"issues": [],
"retry_recommendation": "none|retry_builder|ask_user|block"
}npx rstack-agents hubThe dashboard derives everything from real .rstack files — no fake demo state and no telemetry leaving your machine.
| Page | What you get |
|---|---|
| Command Center | Portfolio status, attention signals, stage health, live activity |
| Business Flex | Active profiles, enabled domains, budget guardrails, routing proof |
| Studio / Studio 3D | Agent workspace with live stage status and clickable agent panels |
| Projects & Runs | Every run and its actual deliverables |
| Run Analytics | Stage timing, Gantt, trend rows |
| Agent Work | Builder/validator contracts and evidence |
| Approvals / Alerts | Human gates, guardrails, spend/stall signals |
| Traceability | Requirement → stage → task → evidence chains |
| Command | Purpose |
|---|---|
rstack-agents init --profile business-flex |
Set up profile, budget, bootstrap files, framework glue, and Business Hub registry |
rstack-agents init --fresh |
Archive prior .rstack/ state and start clean |
rstack-agents hub |
Start/open the dashboard |
rstack-agents list agents|skills|plugins |
Browse packaged catalog |
rstack-agents add plugin <name> |
Copy a packaged plugin into .rstack/plugins/ |
rstack-agents notify --test |
Test Slack/Teams/Discord/Telegram/WhatsApp notifications |
rstack-agents validate |
Validate packaged and local agent definitions |
rstack-business --port 3008 --project . |
Run the dashboard directly |
- Actual token/cost capture: host frameworks execute model calls, so real usage needs host-side reporting or provider adapters.
- Physical pack pruning: profiles narrow routing today; a future pack installer should reduce project-local agent/plugin footprint.
- Validator enforcement: validator tool policy is encoded in RStack packets, but strict enforcement depends on the host sandbox.
- Open-source adaptation: learn from OSS agent frameworks, but preserve licenses and validate contracts before importing anything.
- MCP/A2A:
.rstackis adapter-friendly, but a native MCP/A2A server is still a future slice.
Canonical copies in templates/bootstrap/:
SOUL.md— governance identityHEARTBEAT.md— standby automationCLAUDE.md— Claude Code bootstrapAGENTS.md— Codex/universal bootstrapGEMINI.md— Gemini CLI pointer
Full docs in docs/mintlify:
- Quickstart
- Install your framework
- Business Flex Profiles
- Builder & Validator Sandbox
- Configuration reference
- Business Hub
- AI SDLC Trends & Loopholes
- Harness contract — stages, contracts, evidence, guardrails
- Custom integration — Node bridge and state contract
Research material: research/. Architecture decisions: rfcs/.
git clone https://github.com/richard-devbot/SDLC-rstack.git
cd SDLC-rstack
npm install
npm test
npm run lint
npm run validateLatest verified branch state:
npm test -- --runInBand # 111+ pass
npm run lint # pass
npm run validate # All 196 agents passed validation
npm pack --dry-run # package includes templates/bootstrap/
MIT © Richardson Gunde