Explore in natural language. Agree on a spec. Build with evidence.
Seven core skills, optional domain extensions, and a shared contract that stays with your project. Uses the Agent Skills format for Codex, Claude Code, Grok Build, and OpenCode v2.
Get started · See the workflow · Browse extensions · Read the guide
A conversation can move quickly. The decisions it produces should remain clear when implementation starts, requirements change, or a new session picks up the work.
Stipulate Skills, or Stip, connects that conversation to a durable development workflow:
- Prompt freely. Explore an idea, ask questions, and revise the direction in plain language.
- Make the agreement explicit. Review the specification before the agent builds.
- Check the actual result. Tie acceptance criteria to current, inspectable evidence.
- Keep what you learned. Update documentation and archive the accepted behavior with a local commit.
Start a new project or adopt an existing repository. Bootstrap preserves useful conventions and maps what already exists. Extensions add relevant expertise without loading every domain into every change.
You need Node.js/npm for installation, Python 3.10+ and Git for the workflow, and a supported coding client.
For OpenCode, run from your project directory:
npx github:BRYANN2K/stipulate-skillsThis installs all seven skills, all 28 bundled extensions, and the seven /stip-* commands in one run. For installation across projects:
npx github:BRYANN2K/stipulate-skills --globalIn an already open OpenCode session, run /restart to reload the commands.
The launcher defaults to OpenCode. To include Codex and Claude Code:
npx github:BRYANN2K/stipulate-skills --agent opencode codex claude-codeUse --dry-run to preview or --yes for unattended installation. This command runs the package directly from GitHub; no separately published npm package is required. It uses the skills CLI to copy the packages and then installs the OpenCode commands. Existing customized command files block installation rather than being overwritten.
For skill-only installation, the standard command remains available:
npx skills add BRYANN2K/stipulate-skills --skill '*' --agent codexnpx skills add does not run Stip's command installer. For OpenCode's complete setup, use the Stip launcher above. Extensions travel inside stip-bootstrap and are selected per change. Client setup and verification →
Open the repository you want to work on. In Codex, send this in the chat composer:
$stip-bootstrap Adopt this repository. Preserve its conventions, map the project,
and identify the relevant domain extensions.
For a new project, explain its intent and initialize Git first if necessary. Bootstrap prepares AGENTS.md and .workflow/; it makes all 28 extensions available locally without choosing your stack or selecting domains for a change.
In Claude Code, Grok Build, and OpenCode v2, invoke /stip-bootstrap instead. For explicit OpenCode command files, follow slash-command setup. Bootstrap also creates or extends CLAUDE.md with an import of AGENTS.md, so Claude uses the same project guidance.
$stip-explore Let's add a sign-in flow. Reuse the existing foundations and help
me define the scope, user journey, and acceptance criteria.
The $stip-* examples are Codex chat prompts, not terminal commands. Use /stip-* in Claude Code, Grok Build, and OpenCode v2. The agent uses the bundled Python runtime for lifecycle operations.
Walk through a complete feature, from idea to archive →
You own the agreement; the agent carries out the approved work. During validation, read the Markdown spec, edit it directly or ask for revisions, and explicitly approve its current version. Implementation follows that contract.
A failed check returns to implementation. New requirements return to validation. After a successful check, documentation and archive close the change. Start the next feature at explore; bootstrap is not a repeated feature audit.
| Skill | What it does | What you get |
|---|---|---|
| stip-bootstrap | Adopts a new or existing project. | Project map, configuration, and workflow guidance. |
| stip-explore | Explores intent with relevant available extensions. | A bounded idea and recorded decisions. |
| stip-validate | Turns the discussion into a contract for user review. | Specification and acceptance criteria. |
| stip-apply | Builds and corrects within the approved scope. | Implementation and relevant tests. |
| stip-check | Reconciles every criterion with current evidence. | Passed, failed, or unverified results. |
| stip-docs | Updates documentation affected by the change. | Documentation grounded in the implementation. |
| stip-archive | Promotes the accepted spec and closes the change. | Archived records and a scoped local commit. |
28 optional extensions. Seven entry points stay seven. Extensions contribute domain questions, requirements, and verification guidance to the same workflow. They are local reference packages, not extra top-level skills or executable plugins.
| Domain | Available extensions |
|---|---|
| Product and experience | product-strategy, user-research, storytelling, ux-design, visual-design, design-system, content-design, accessibility |
| Application engineering | frontend-engineering, backend-engineering, api-integrations, database-engineering, mobile-engineering, desktop-engineering, cli-tooling |
| Infrastructure and operations | cloud-engineering, devops-delivery, sre-operations, release-management |
| Data, AI, and assurance | data-engineering, ai-engineering, analytics-experimentation, quality-engineering, security-engineering, privacy-engineering |
| Reach and support | build-in-public, seo-discoverability, customer-support |
The complete catalog is included in the installation. $stip-bootstrap copies it into .workflow/extensions/ and registers available domains in the project configuration. Existing configured packages, customizations, and disabled entries are preserved.
Selection happens during stip-explore for each change. The agent reads only the relevant phase references for selected domains. A cloud-only change does not need design; existing domain work can be reused instead of repeated. Build-in-public guidance does not authorize posting on your behalf.
Extension setup, selection, and updates →
AGENTS.md # Project instructions and workflow guidance
.workflow/
project.md # Intent, project map, commands, known gaps
config.json # Available extensions and settings
specs/ # Currently accepted behavior
extensions/ # Optional installed domain packages
changes/
add-login/
proposal.md # Context and decisions
spec.md # Desired behavior and acceptance criteria
tasks.md # Optional implementation breakdown
evidence.md # Verification evidence
state.json # Lifecycle state and approved version
archive/ # Closed changes
The example change appears only when you explore it. Bootstrap preserves existing useful files and adds a bounded guidance block to AGENTS.md; it does not fabricate a sample feature.
- Approval belongs to a version. Changes to the bound contract or selected extension guidance invalidate it.
- Completion needs evidence. Missing or failed criteria block progression; check is tied to the source snapshot.
- Commits stay scoped. Archive rejects stale evidence and conflicting Git state rather than absorbing unrelated work.
- Publishing is separate. Archive creates a local commit. It does not push or deploy.
The runtime is local and offline, with no third-party Python dependencies or telemetry. Your coding agent still requires its normal setup. Recorded evidence is an attestation, not proof that its author was truthful; passing the workflow does not certify a product as production-ready.
Detailed guarantees, limits, and migration →
| Start here | For |
|---|---|
| Installation and first-feature guide | Setup, prompt examples, updates, removal, and troubleshooting. |
| Workflow reference | Lifecycle commands, contracts, state, and evidence. |
| Domain extensions | Package installation, selection, and contribution rules. |
| Contributing | Engine changes and validation commands. |
| Security | Boundaries and security reporting. |