LeanSpec Development Skill
leanspec-development
Development workflows and contribution guidelines for LeanSpec. Use when contributing code or setting up development environment.
SKILL.md
Full skill instructions
LeanSpec Development Skill
Quick activation context for AI agents working on LeanSpec development.
When to Use
Activate when:
- Setting up development environment
- Contributing code or fixing bugs
- Running tests or validation
- Working with the monorepo structure
Quick Navigation
| Goal | Reference |
|---|---|
| Mandatory rules & conventions | RULES.md |
| Monorepo structure & packages | STRUCTURE.md |
Everything else: Read root README.md, package.json scripts, or explore the codebase.
Core Principles
The non-negotiable mental model:
- 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)
- Maintain i18n - Update both en and zh-CN translations
- Follow Rust Quality - All code must pass
cargo clippy -- -D warnings - Delegate Complex Tasks - Use
runSubagentfor multi-step investigations
Working with Subagents
For AI agents: Delegate complex tasks to subagents rather than attempting extensive manual searches.
When to Use runSubagent
✅ Delegate:
- Searching patterns across multiple files
- Investigating unfamiliar code areas
- Cross-package changes requiring context
- Debugging with comprehensive exploration
❌ Don't delegate:
- Simple single-file edits
- Well-known commands
- Already clear and scoped tasks
Delegation Pattern
runSubagent({
description: "Find validation logic",
prompt: `Search for all spec validation logic.
Return:
1. Where rules are defined
2. What checks are performed
3. Where validation is called
Focus on: packages/mcp, rust/leanspec-core`
});
Critical Commands
The 20% you need 80% of the time:
# Setup
pnpm install # Install dependencies
pnpm build # Build all packages
# Development (see package.json for all scripts)
pnpm dev # Start all dev servers
pnpm dev:cli # CLI watch mode
pnpm dev:web # Web UI only
# Validation (run before PR)
pnpm pre-release # Full validation: typecheck, test, build, lint
pnpm test:run # All tests (CI mode)
pnpm lint:rust # Rust clippy checks
All commands are in root package.json - AI agents should read it directly.
Critical Rules
Rules enforced by hooks or CI:
-
Light/Dark Theme - ALL UI must support both themes
// ✅ Good className="text-blue-700 dark:text-blue-300" -
i18n - Update BOTH en and zh-CN locales
-
Regression Tests - Bug fixes MUST include failing-then-passing tests
-
Rust Quality - Must pass
cargo clippy -- -D warnings -
Use shadcn/ui - No native HTML form elements (
<input>,<select>,<button>, etc.)// ✅ Good - shadcn/ui import { Input } from '@/components/ui/input'; <Input placeholder="..." /> // ❌ Bad - native HTML <input type="text" /> -
cursor-pointer on interactive items - All clickable dropdown/select items must use
cursor-pointer// ✅ Good - cursor-pointer for clickable items className="... cursor-pointer ..." // ❌ Bad - cursor-default on interactive items className="... cursor-default ..."
See RULES.md for complete requirements.
