Skip to main content

sarathi — Build Production Software with AI Agents

Sarathi helps coding agents turn approved requirements into the smallest safe working change through clear requirements, design, planning, coding, automatic checks, and independent review. It keeps the next step clear and adjusts the remaining work from real feedback.

Why sarathi?

In the Mahabharata, Krishna serves as Arjuna's sarathi—his charioteer and counsel. He does not replace Arjuna's agency; he helps him see the situation clearly, reason through doubt, and act with purpose. sarathi takes its name from that partnership: it helps engineers and AI agents navigate complex software decisions and reach production with evidence, discipline, and human judgment intact.

Its basic loop is:

approved requirements -> smallest safe change -> checks and review -> feedback -> adapt

Requirements, designs, plans, and code may change as the team learns. Lean combines design with planning. Standard keeps a separate design. High-assurance splits risky work into smaller changes with more review points. Every stage that remains is checked and independently reviewed. Approval rules are chosen separately. See sarathi's enduring model and delivery assurance profiles.

What You Get

  • Slash-command prompts for specs, designs, plans, code, verification, review, and assessment.
  • A native sarathi skill for agents that support skills.
  • Automatic checkers for specs, designs, plans, and links from requirements to tests.
  • A repeatable HTML project-status view showing current work, linked tests, feedback, and approvals.
  • Installers for Windows, macOS, Linux, and WSL.
  • User-scoped installs by default, with project-scoped installs when needed.
  • Change history in CHANGELOG.md and release/tagging guidance in docs/release-process.md.

Extra checks for specific risks are listed in docs/cross-cutting-concerns.md. Prompt authors should use docs/process-maintenance.md to keep shared rules from bloating every command prompt.

Quick Install

Install Sarathi for the current user with one command:

uvx --from sarathi-sdlc sarathi-sdlc install

uvx runs the installer temporarily; the installed skills and prompts remain available. Restart or reload your agent tools after installation. A user install skips the separate project-local checkers/ copy by default because every installed Sarathi skill already contains its checkers.

When an update notice appears, review and explicitly approve the reported version before installing it. Replace X.Y.Z with that exact approved version:

uvx --from sarathi-sdlc==X.Y.Z sarathi-sdlc install

Verify manifest.json reports the approved version, then restart or reload the agent tools. Agents must never update Sarathi automatically.

Preview the destinations without writing files:

uvx --from sarathi-sdlc sarathi-sdlc install --dry-run

Add -v or --verbose to show destinations, per-tool actions, companion-install details, reload guidance, and informational notes.

Install project-local assets, including a top-level checkers/ copy, or select tools:

uvx --from sarathi-sdlc sarathi-sdlc install \
  --target /path/to/product --scope project
uvx --from sarathi-sdlc sarathi-sdlc install --tools codex,claude-code

Optional: Keep The Installer Command

Install sarathi-sdlc permanently only when you want its installer, version, and update commands to remain on your PATH:

uv tool install sarathi-sdlc
sarathi-sdlc install
sarathi-sdlc --version
sarathi-sdlc check-update

Alternatively, use pipx install sarathi-sdlc. After upgrading the package, rerun sarathi-sdlc install to refresh copied skills and prompts. Installed skills check PyPI at most once per 24 hours and report newer releases without blocking work or updating automatically. Set SARATHI_UPDATE_CHECK=0 to disable that check.

An upgrade rebuilds Sarathi's bundled docs/, prompts/, and checkers/ folders while preserving other files in the installed sarathi folder. It removes the retired srs-authoring bundle only when that bundle exactly matches Sarathi's historical files. It moves recognized older unprefixed stage aliases, unchanged, to a sibling sarathi-retired-stage-skills/ archive outside skill discovery. It does not move unrelated generic skills.

Install From A Source Checkout

Clone the repository and run from its root when developing or testing an unreleased change.

Preview the install without writing files:

.\scripts\install.ps1 -DryRun
scripts/install.sh --dry-run

Install for the current user:

.\scripts\install.ps1
scripts/install.sh

Installers report only the target, selected tools, scope, and completion status by default. Use -v in PowerShell or -v/--verbose in a shell to show destination paths, per-tool actions, companion-install details, reload guidance, and informational notes.

Install into a specific project workspace from the checkout instead:

.\scripts\install.ps1 -TargetRoot D:\path\to\product -Scope project
scripts/install.sh --target /path/to/product --scope project

Install only selected tools:

.\scripts\install.ps1 -Tool codex,claude-code
scripts/install.sh --tools codex,claude-code

By default, Windows installs also refresh WSL targets when WSL is available, and WSL installs also refresh Windows targets when powershell.exe is available. Use -NoCrossInstall or --no-cross-install to stay in the current environment.

Supported Targets

  • Codex: installs the sarathi skill and direct prompt commands under ~/.codex/prompts. Invoke direct prompts as /prompts:spec-create, /prompts:design-create, etc. after restarting Codex.
  • GitHub Copilot: installs prompt files for VS Code Copilot Chat and first-class agent skills for Copilot CLI/agent surfaces. User scope installs prompts under the VS Code user prompt folder and skills under ~/.copilot/skills/sarathi plus ~/.agents/skills/sarathi. Project scope installs prompts to <project>/.github/prompts and skills to <project>/.github/skills/sarathi plus <project>/.agents/skills/sarathi. The installer also creates agent-neutral, explicit-only command skills such as sarathi-code-review, sarathi-code-verify, and sarathi-code-assess under the same skill roots.
  • Claude Code: installs slash commands and the sarathi skill.
  • Gemini CLI: installs command TOML files.
  • Claude and Pi: exports prompt packs under .ai-prompts/ for manual import or use.
  • Checkers: project-scoped package installs copy checkers/ into the target workspace. Implicit user-scoped package installs skip that separate copy unless --with-checkers is provided; every installed skill still contains its self-contained checker bundle. Source installers retain -NoCheckers and --no-checkers for explicitly skipping the copy.

Installed skill bundles are self-contained: the installer assembles each sarathi skill copy from the canonical docs/, prompts/, and checkers/ sources, plus SKILL.md and agent config. Prompt commands or explicit command skills are also installed separately where host tools can expose them directly. Only the top-level sarathi skill permits implicit invocation, and only for Sarathi or managed delivery-workflow intent—not an ordinary code-generation request. Every sarathi-* command skill must be named explicitly.

Every dry or real install prints the destination folders before doing work.

Prefixed command skills are expected only on agent skill surfaces where the installer exposes them; Codex-only, Claude Code, and Gemini installations use their native explicit commands. If an agent reports that bundled prompts/spec-create.prompt.md, checkers/check_spec.py, or another required file under the main sarathi skill is missing, the bundle is incomplete or was copied from the wrong folder. Re-run the installer, or install from this repository's skills/sarathi folder after updating to a version where that source folder is self-contained.

Commands

Commands combine a stage (spec, design, plan, or code) with one of four actions:

  • create: write or revise a document or code slice.
  • verify: run repeatable checks and report what they prove and do not prove.
  • review: independently judge quality and look for counterexamples.
  • assess: run automatic checks, then an independent review.

The core stage names are:

Explicit command skill Purpose
$sarathi-spec-create Define the problem, needs, features, use cases, functional and supplementary requirements, acceptance tests, and journeys.
$sarathi-spec-verify Run automatic spec checks and report evidence.
$sarathi-spec-review Independently review spec quality.
$sarathi-spec-assess Run specification checks plus independent review.
$sarathi-design-create Create or revise a Software Design Document and ADRs as needed.
$sarathi-design-verify Run spec and design checks.
$sarathi-design-review Independently review design quality and whether the spec is sufficient.
$sarathi-design-assess Run design checks plus independent review.
$sarathi-plan-create Plan the impact, dependencies, order, integration, safety, and proof for a Breakdown or Implementation plan.
$sarathi-plan-verify Run checks for the spec, design, and plan.
$sarathi-plan-review Independently review whether the plan is clear, safe, testable, and ordered well.
$sarathi-plan-assess Run plan checks plus independent review.
$sarathi-code-create Implement an approved plan with focused tests and any planned logging, error-handling, documentation, build, or deployment work.
$sarathi-code-verify Run planned tests, required project checks, and applicable logging/error-handling/build/docs/deployment checks.
$sarathi-code-review Independently review code, tests, operational work, required project checks, and fit with earlier documents.
$sarathi-code-assess Run code checks plus independent review.
$sarathi-workflow-status Render project status as read-only HTML.

Generate the live status page and its linked static process guide directly with:

python checkers/render_workflow_status.py . --output docs/sdlc-status.html

See docs/workflow-status.md for details. The page starts with what works, what can be reused, what remains, what blocks coding, and the next action. It then shows document, approval, and review status. Every completion claim says exactly what is complete.

Exact invocation syntax depends on the host tool:

  • Agent skill surfaces: explicitly invoke $sarathi-code-review, $sarathi-code-assess, or another prefixed command skill. Ordinary coding requests do not activate these skills.
  • Codex direct prompts: /prompts:code-review, /prompts:code-assess, and so on.
  • GitHub Copilot CLI: reload skills with /skills reload, then explicitly select the prefixed Sarathi command skill using the syntax supported by that version.
  • VS Code Copilot Chat: use the installed prompt file from the prompt picker, or ask in natural language with the stage name.
  • Claude Code and Gemini: use their native command mechanisms.

Workflow Model

The core model is approved requirements, useful changes, checks, review, and feedback. Requirements explain the problem, user needs, behavior, constraints, acceptance tests, and important user journeys. Designs explain how the system will meet them. Plans say what will change, in what order, and how it will be tested. Code is built in short Red-Green-Refactor cycles. Each stage is checked and independently reviewed before the work moves on.

Work uses three levels. The paired terms below are retained as machine-readable values for compatibility:

  • Product/system: broad product or platform scope.
  • Feature/component: one user-facing capability, subsystem, component, integration, or screen family.
  • Slice/change: the smallest implementable unit, usually PR-sized.

Documents say plainly whether the work is ready to implement and, when it is not, what specific question remains.

$sarathi-code-create runs from approved requirements and a specific implementation plan that is ready to implement.

Start implementation when the approved requirements, design, and one specific plan make the next change clear and safe. If the work is too complex to understand and review as one unit, split it along a natural product or technical boundary until each part is clear, testable, and safe to integrate. A split does not automatically require another spec or design. See docs/work-decomposition.md.

ID Format

Specs and plans use descriptive slug-only IDs: KIND-AREA-NAME, for example FR-AUTH-SIGNIN, AT-AUTH-SIGNIN, JT-AUTH-ONBOARDING, PR-AUTH-SIGNIN, and WAVE-AUTH-BOUNDARY. Design entities keep the shorter KIND-SLUG form, for example COMP-AUTH and IFACE-AUTH. Design test obligations use TEST-AREA-NAME, for example TEST-AUTH-POLICY. Numeric placeholders such as FR-AUTH-10 are rejected by the checkers; meaningful digit-first terms such as FR-AUTH-2FA and FR-PAY-3DS are valid.

For older numbered IDs, see docs/slug-id-migration.md.

Policy And Evidence

Detailed workflow behavior is owned by the command prompts and shared documents rather than repeated here:

The selected command prompt says which references apply. Checkers provide repeatable evidence about structure, links, approval-record freshness, and declared test results; they do not prove correct meaning, stakeholder consent, or production readiness.

Repository Layout

docs/      user-facing documentation and review notes
prompts/   source command prompt definitions
skills/    skill-specific definitions and metadata
checkers/  repeatable structure and link checks
scripts/   installers for Windows, macOS, Linux, and WSL
tests/     checker tests

Do not treat .github/prompts as source in this repository. It is only an install target for GitHub Copilot project-scoped prompts.

More Detail

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sarathi_sdlc-0.9.0.tar.gz (1.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sarathi_sdlc-0.9.0-py3-none-any.whl (2.0 MB view details)

Uploaded Python 3

File details

Details for the file sarathi_sdlc-0.9.0.tar.gz.

File metadata

  • Download URL: sarathi_sdlc-0.9.0.tar.gz
  • Upload date:
  • Size: 1.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for sarathi_sdlc-0.9.0.tar.gz
Algorithm Hash digest
SHA256 50d033cee3a7454f6548dbb750f45da323f89609b203f338d321cd522f645cf6
MD5 d67f6cd8b0866ec306d3788242fe2668
BLAKE2b-256 9e08591022cd8d04f12af0685adfdf0c0ce13009a3a46e4de3f90bb273d32f56

See more details on using hashes here.

Provenance

The following attestation bundles were made for sarathi_sdlc-0.9.0.tar.gz:

Publisher: release.yml on kvsankar/sarathi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sarathi_sdlc-0.9.0-py3-none-any.whl.

File metadata

  • Download URL: sarathi_sdlc-0.9.0-py3-none-any.whl
  • Upload date:
  • Size: 2.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for sarathi_sdlc-0.9.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4e1255feb4b7f7b0e7582c6ed093f122a4c3c2562285ddfb5195ee4b42d3e942
MD5 446ea32be09eadb9f0d4aa7c8082b91a
BLAKE2b-256 35738fe085f030744b16cc105effd0720316d1d1ac487ebd60bed1e4847e0be9

See more details on using hashes here.

Provenance

The following attestation bundles were made for sarathi_sdlc-0.9.0-py3-none-any.whl:

Publisher: release.yml on kvsankar/sarathi

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.9.0 This release

2 files

0.8.0

2 files

0.7.0

2 files

0.6.1

2 files

0.6.0

2 files

0.5.1

2 files

0.5.0

2 files

0.4.0

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.0

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page