Enforces code quality standards for Hone. Use when writing new code, reviewing changes, or refactoring existing code.
thiserror for library errors (hone-core)anyhow for application errors (hone-cli, hone-server)?, don't .unwrap() in production code// GOOD - propagate with context
let conn = pool.get().context("Failed to get database connection")?;
// BAD - panics on error
let conn = pool.get().unwrap();
PascalCase (e.g., Transaction, AlertKind)snake_case (e.g., get_transactions, account_id)SCREAMING_SNAKE_CASE (e.g., DEFAULT_PORT)/// doc commentsany - use proper types or unknownui/src/types.ts)// GOOD - typed response
interface Transaction {
id: number;
amount: number;
date: string;
}
// BAD - loses type safety
const data: any = await response.json();
index.css only when Tailwind can't do itcrates/
hone-core/ # Shared library (no CLI/server deps)
hone-cli/ # CLI binary (depends on core)
hone-server/ # Web server (depends on core)
ui/ # React frontend (independent)
hone-core# Rust formatting
cargo fmt --check
# Rust linting
cargo clippy -- -D warnings
# TypeScript checking
cd ui && npm run lint
# Build check
cargo build && cd ui && npm run build
cargo fmt - format Rust codecargo clippy - check for common mistakescargo test - run tests (when added)cd ui && npm run lint - check TypeScriptcd ui && npm run build - verify frontend buildsSearch for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer