Skip to main content

معلومات المصدر

المستودع
tomevault-io/claude-code-plugins
آخر نشاط في المصدر
٨ أبريل ٢٠٢٦ في ١٢:٠٤
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٣
التفرعات
٢

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
grove
description
| Use when this capability is needed.
# Grove Development ## Project Stack - **Runtime**: Bun - **Language**: TypeScript (strict mode) - **CLI Framework**: Commander.js - **Git Operations**: simple-git library - **Testing**: Bun's built-in test runner ## Development Workflow ### Before committing ```bash bun run typecheck # Type check bun test # Run all tests ``` ### Common commands ```bash bun install # Install dependencies bun run dev # Run in development mode bun run build # Build to dist/ bun run build:compile # Build single executable ``` ## Code Patterns ### Adding a new command 1. Create `src/commands/<name>.ts` with factory function: ```typescript import { Command } from "commander"; import { handleCommandError } from "../utils"; export function create<Name>Command(): Command { return new Command("<name>") .description("Short description") .argument("<arg>", "Argument description") .option("-f, --flag", "Flag description") .action(async (arg, options) => { try { // Implementation } catch (error) { handleCommandError(error); } }); } ``` 2. Register in `src/index.ts`: ```typescript import { create<Name>Command } from "./commands/<name>"; program.addCommand(create<Name>Command()); ``` ### Git operations Use `WorktreeManager` class instead of calling git directly: ```typescript const manager = await WorktreeManager.discover(); // Use manager methods for git operations ``` ### Error handling ```typescript import { formatError, formatWarning, handleCommandError } from "../utils"; // In action handlers, wrap with try/catch calling handleCommandError ``` ### Interfaces Define in `src/models/index.ts` ## Testing ### Structure - **Unit tests**: `test/unit/*.test.ts` - Uses Bun's built-in test runner - **Integration tests**: `test/integration/*.hone` - Uses [Hone](https://hone.safia.dev/) CLI testing framework ### Unit test pattern ```typescript import { describe, test, expect, mock } from "bun:test"; describe("FeatureName", () => { test("should do something", () => { expect(result).toBe(expected); }); }); ``` ### Running tests ```bash bun test # Unit tests only bun run test:integration # Builds executable, runs Hone tests ``` ## Commit Messages Use Conventional Commits format: ``` <type>: <subject> ``` Types: `feat`, `fix`, `chore`, `test`, `doc` Rules: - Lowercase type and subject - No period at end - Imperative mood ("add" not "added") - Under 72 characters Examples: ``` feat: add support for branch tracking fix: handle missing git config gracefully chore: update dependencies test: add edge case tests for prune doc: update readme with new command ``` ## Documentation When adding/changing commands: 1. Update `README.md` Commands section 2. Update `site/index.html` to match (keep in sync) ## Platform Support Linux and macOS only (x64, arm64). No Windows code. --- > Converted and distributed by [TomeVault](https://tomevault.io) | [Claim this content](https://tomevault.io/claim/captainsafia/grove) <!-- tomevault:3.0:skill_md:2026-04-07 -->
عرض على GitHub