rust-workspace-bootstrap

Scaffold a production-ready Rust workspace with knope changesets, devenv, and GitHub Actions CI/release workflows. Use when starting a new Rust project or monorepo.

15 stars

Best use case

rust-workspace-bootstrap is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Scaffold a production-ready Rust workspace with knope changesets, devenv, and GitHub Actions CI/release workflows. Use when starting a new Rust project or monorepo.

Teams using rust-workspace-bootstrap should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/rust-workspace-bootstrap/SKILL.md --create-dirs "https://raw.githubusercontent.com/ifiokjr/oh-pi/main/packages/skills/skills/rust-workspace-bootstrap/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/rust-workspace-bootstrap/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How rust-workspace-bootstrap Compares

Feature / Agentrust-workspace-bootstrapStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Scaffold a production-ready Rust workspace with knope changesets, devenv, and GitHub Actions CI/release workflows. Use when starting a new Rust project or monorepo.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Rust Workspace Bootstrap

Generate a Rust workspace template inspired by the release/devenv/workflow structure used in
`mdt` and `pina`.

## What it scaffolds

- Cargo workspace with `core` + `cli` crates
- `knope.toml` with:
  - `document-change`
  - `release`
  - `forced-release`
  - `publish`
- `.changeset/` folder for change files
- `devenv.nix`, `devenv.yaml`, `.envrc`
- GitHub Actions:
  - CI
  - coverage
  - semver checks
  - release preview
  - release assets
  - docs-pages deployment
- Opinionated defaults for `rustfmt`, `clippy`, `deny`, `dprint`

## Usage

```bash
# Minimal
{baseDir}/scaffold.js --name acme-tool

# Recommended (in a separate worktree)
git worktree add ../acme-tool -b feat/bootstrap-acme-tool
cd ../acme-tool
/path/to/rust-workspace-bootstrap/scaffold.js \
  --name acme-tool \
  --owner your-github-org \
  --repo acme-tool \
  --description "CLI + core Rust workspace"
```

## Options

- `--name <kebab-case>` (required)
- `--dir <path>` (optional, default: `./<name>`)
- `--owner <github-owner>` (optional, default: `your-github-org`)
- `--repo <github-repo>` (optional, default: `<name>`)
- `--description <text>` (optional)
- `--force` (optional, allow writing into non-empty directory)

## Rules

- Always use `_` (underscore) separators in Rust crate names.
- Do **not** use `-` in crate package names. Example: `acme_tool_core`, not `acme-tool-core`.

## After scaffolding

```bash
cd <project>

direnv allow
# or
# devenv shell

install:cargo:bin
build:all
lint:all
test:all
```

Create your first changeset:

```bash
knope document-change
```

Dry-run a release:

```bash
knope release --dry-run
```

Related Skills

write-a-skill

15
from ifiokjr/oh-pi

Create new agent skills with proper structure, progressive disclosure, and bundled resources. Use when user wants to create, write, or build a new skill.

web-search

15
from ifiokjr/oh-pi

Web search via DuckDuckGo. Use when the user needs to look up current information online.

web-fetch

15
from ifiokjr/oh-pi

Fetch a web page and extract readable text content. Use when user needs to retrieve or read a web page.

request-refactor-plan

15
from ifiokjr/oh-pi

Create a detailed refactor plan with tiny commits via user interview, then file it as a GitHub issue. Use when user wants to plan a refactor, create a refactoring RFC, or break a refactor into safe incremental steps.

quick-setup

15
from ifiokjr/oh-pi

Detect project type and generate .pi/ configuration. Use when setting up pi for a new project or when user asks to initialize pi config.

pwsh

15
from ifiokjr/oh-pi

PowerShell syntax reference — cmdlets, objects, pipelines, filtering, comparison operators, and Bash-to-PowerShell command equivalents

nushell

15
from ifiokjr/oh-pi

Nushell syntax reference for shell commands — variables, pipelines, tables, custom commands, control flow, Bash-to-Nu equivalents, and common gotchas

neubrutalism

15
from ifiokjr/oh-pi

Neubrutalism design system skill. Use when building bold UI with thick borders, offset solid shadows, high saturation colors, and minimal border radius.

liquid-glass

15
from ifiokjr/oh-pi

Apple Liquid Glass design system. Use when building UI with translucent, depth-aware glass morphism following Apple's design language. Provides CSS tokens, component patterns, dark/light mode, and animation specs.

improve-codebase-architecture

15
from ifiokjr/oh-pi

Explore a codebase to find opportunities for architectural improvement, focusing on making the codebase more testable by deepening shallow modules. Use when user wants to improve architecture, find refactoring opportunities, consolidate tightly-coupled modules, or make a codebase more AI-navigable.

grill-me

15
from ifiokjr/oh-pi

Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions "grill me".

glassmorphism

15
from ifiokjr/oh-pi

Glassmorphism design system skill. Use when building frosted-glass UI components with blur, transparency, and layered depth effects.