leanspec-development

LeanSpec Development Skill

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "leanspec-development" with this command: npx skills add codervisor/lean-spec/codervisor-lean-spec-leanspec-development

LeanSpec Development Skill

Unified guide for all LeanSpec development: coding, commands, publishing, CI/CD, and runner research.

Quick Navigation

Goal Reference

Mandatory rules & conventions RULES.md

Changelog format & workflow Changelog (below)

i18n file locations & patterns I18N.md

Monorepo structure & packages STRUCTURE.md

Full release checklist PUBLISHING.md

npm distribution architecture NPM-DISTRIBUTION.md

Dev publishing workflow DEV-PUBLISHING.md

CI workflow details CI-WORKFLOWS.md

gh CLI command reference CI-COMMANDS.md

CI troubleshooting CI-TROUBLESHOOTING.md

Runner ecosystem catalog runners-catalog.md

Core Principles

  • Use pnpm — Never npm or yarn

  • DRY — Extract shared logic, avoid duplication

  • Test What Matters — Business logic and data integrity, not presentation

  • Leverage Turborepo — Smart caching (19s → 126ms builds)

  • i18n is MANDATORY — Every user-facing string needs both en AND zh-CN (see I18N.md)

  • Follow Rust Quality — All code must pass cargo clippy -- -D warnings

Commands

Daily Development

pnpm install # Install dependencies pnpm dev # Start web UI + Rust HTTP server pnpm dev:watch # Same + auto-rebuild Rust on changes pnpm dev:web # Start web UI only pnpm dev:desktop # Start desktop app pnpm build # Build all TS packages pnpm build:rust # Build Rust (debug) pnpm build:rust:release # Build Rust (release) pnpm typecheck # ← NEVER SKIP before marking work complete pnpm test # Run all tests pnpm test:watch # Watch mode pnpm test:coverage # With coverage pnpm test:rust # Rust tests only pnpm format # Format all code pnpm cli # Run LeanSpec CLI

Validation

pnpm pre-push # Quick: typecheck + clippy pnpm pre-release # Full: build + typecheck + test + lint

⚠️ Always run pnpm typecheck before marking work complete.

Rust

pnpm build:rust # Debug build pnpm build:rust:release # Release build pnpm check:rust # Quick check without building pnpm lint:rust # Clippy with warnings as errors pnpm format:rust # Format Rust code pnpm format:rust:check # Check Rust formatting

Low-level

cargo build --manifest-path rust/Cargo.toml node scripts/copy-rust-binaries.mjs --debug

Documentation

pnpm docs:dev # Start docs dev server pnpm docs:build # Build docs site

Desktop

pnpm dev:desktop # Start desktop app in dev mode cd packages/desktop pnpm bundle:linux # Debian package pnpm bundle:macos # DMG pnpm bundle:windows # NSIS installer

Critical Rules

Rules enforced by hooks or CI:

  • Light/Dark Theme — ALL UI must support both themes

  • i18n — Update BOTH en and zh-CN → I18N.md ⚠️ commonly forgotten

  • Regression Tests — Bug fixes MUST include failing-then-passing tests

  • Rust Quality — Must pass cargo clippy -- -D warnings

  • Rust Params Structs — Functions with >7 args must use a params struct (enforced by clippy.toml )

  • Use shadcn/ui — No native HTML form elements

  • cursor-pointer — All clickable items must use cursor-pointer

See RULES.md for complete requirements.

Publishing & Releases

Production Release (Recommended)

1. Update version (root only)

npm version patch # or minor/major

2. Sync all packages

pnpm sync-versions

3. Validate everything

pnpm pre-release

4. Commit and push with tags

git add . git commit -m "chore: release vX.X.X" git push --follow-tags

5. Create GitHub Release (triggers publish workflow)

gh release create vX.X.X --title "vX.X.X" --notes "Release notes here"

Development Release

Publish dev version via GitHub Actions

gh workflow run publish.yml --field dev=true

Dry run (validates without publishing)

gh workflow run publish.yml --field dev=true --field dry_run=true

Install and test

npm install -g lean-spec@dev lean-spec --version

Version Management

  • Root package.json is the single source of truth for versions

  • pnpm sync-versions propagates to all packages (including Rust crates)

  • CI automatically validates version alignment

  • Never manually edit package versions — use npm version

  • pnpm sync-versions

Distribution Architecture

LeanSpec uses optional dependencies for platform-specific Rust binaries:

Type Packages

Main (published) lean-spec , @leanspec/mcp , @leanspec/ui

Platform (published) @leanspec/cli-{platform} , @leanspec/mcp-{platform} (5 platforms each)

Internal (not published) @leanspec/desktop , @leanspec/ui-components

⚠️ Platform packages MUST be published before main packages. The CI workflow handles this automatically.

See PUBLISHING.md and NPM-DISTRIBUTION.md for details.

Changelog

Update CHANGELOG.md following Keep a Changelog format and Semantic Versioning.

Discovering Changes

Commits since last tag

git log $(git describe --tags --abbrev=0)..HEAD --oneline

Files changed since last release

git diff $(git describe --tags --abbrev=0)..HEAD --stat

Entry Format

Only include shipped/implemented changes — not planned specs, drafts, or WIP.

Add under ## [Unreleased] using these categories: Added, Changed, Fixed, Deprecated, Removed, Security, Technical.

  • Feature Name (spec 123) - Brief description
    • Sub-bullet with implementation details

Writing Style

  • Bold feature name followed by description

  • Link related specs when applicable

  • Present tense — "Adds support for..." not "Added"

  • Be specific — include command names, flag names, component names

  • Group related changes under single bullet with sub-bullets

  • Include breaking changes with Breaking: prefix

Creating a Release

CI/CD (GitHub Actions)

All workflow interactions use the gh CLI. Check status before triggering new runs; minimum 30s between polls.

Available Workflows

Workflow File Triggers Purpose

CI ci.yml

push, PR to main Build, test, lint (Node.js + Rust)

Publish publish.yml

release, manual Publish to npm (all platforms)

Desktop Build desktop-build.yml

push, PR, manual Build Tauri desktop apps

Copilot Setup copilot-setup-steps.yml

push, PR, manual Setup environment for Copilot agent

Quick Reference

Check status

gh run list --limit 10 gh run list --workflow ci.yml --limit 5 gh run view <run-id> gh run watch <run-id>

Trigger

gh workflow run ci.yml gh workflow run publish.yml --field dev=true

Debug failures

gh run view <run-id> --log-failed gh run rerun <run-id> --failed

Artifacts

gh run download <run-id> gh run download <run-id> --name ui-dist

See CI-WORKFLOWS.md, CI-COMMANDS.md, and CI-TROUBLESHOOTING.md for details.

Runner Research

Research AI agent runners to keep LeanSpec's runner registry current as the ecosystem evolves.

Workflow

  • Read current state: rust/leanspec-core/src/sessions/runner.rs (RunnerRegistry::builtins() )

  • Read catalog: runners-catalog.md

  • Research via web_search : Config format changes, CLI changes, new env vars, new capabilities, deprecations, new runners

  • Compare & identify gaps: Cross-reference findings against registry

  • Report: Minor updates → update catalog directly; major changes → create a spec

Runner Tiers

  • Tier 1 (high priority): Claude Code, Copilot, Cursor, Windsurf, Codex, Gemini

  • Tier 2 (medium): Kiro, Amp, Aider, Goose, Continue, Roo Code

  • Tier 3 (monitor): Droid, Kimi, Qodo, Trae, Qwen Code, OpenHands, Crush, CodeBuddy, Kilo, Augment

Key Source Files

File Purpose

rust/leanspec-core/src/sessions/runner.rs

Runner registry with detection config

schemas/runners.json

JSON schema for custom runner config

packages/cli/templates/_shared/agents-components/

AGENTS.md template components

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

leanspec-sdd

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

agent-browser

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

runner-research

No summary provided by upstream source.

Repository SourceNeeds Review