HN 표시: Skilldeck – 여러 도구에서 AI 에이전트 기술 파일을 관리하는 데스크톱 앱

hackernews | | 📦 오픈소스
#ai 서비스 #ai 에이전트 #claude #gemini #데스크톱 앱 #크로스플랫폼 #프롬프트 관리
원문 출처: hackernews · Genesis Park에서 요약 및 분석

요약

Skilldeck은 윈도우, macOS, 리눅스를 지원하는 데스크톱 앱으로, 클라우드나 백엔드 없이 로컬 파일 시스템만을 이용하여 클로드, 커서, 깃허브 코파일럿 등 10개 이상의 서로 다른 AI 코딩 도구의 스킬 파일을 하나의 라이브러리에 통합 관리합니다. 각 도구마다 파일 형식과 저장 위치가 달라 발생하는 버전 관리의 어려움을 해결하며, 사용자는 언어적 의미 검색, 자동 버전 스냅샷, 변경 사항에 대한 diff 뷰어 및 원클릭 롤백 기능을 활용할 수 있습니다. 나아가 특정 스킬을 프로젝트에 배포할 때 심볼릭 링크 모드를 통한 무결점 동기화를 지원하고, 기존에 편집된 파일을 라이브러리로 역동기화하는 양방향 동기화 기능을 제공합니다. 이 앱은 리액트, 일렉트론, 타일윈드 CSS 등으로 구축되었으며 오프라인 환경에서도 완벽하게 작동합니다.

본문

A desktop app for managing AI agent skill files across projects and tools. Works on Windows, macOS, and Linux. You spent an hour writing the perfect code review skill. It lives somewhere in ~/projects/old-app/.claude/skills/ . Your new project doesn't have it. Your Cursor setup has a different version. Your Codex project has none at all. Every AI coding tool wants its own file in its own format in its own location. CLAUDE.md . AGENTS.md . .cursor/rules/*.mdc . .windsurfrules . They diverge the moment you copy them. You lose track of which version is canonical. You rebuild from scratch more than you should. Skilldeck fixes this. One library. Every project. Every tool. No cloud. No backend. No database. Everything lives on your local filesystem. - Create, edit, and delete skill files with YAML frontmatter (name, description, tags) - Full-text search across skill names and descriptions - Semantic search — describe what you need in plain language, get ranked results - Filter by tag or source tool - Bulk selection and batch actions - Automatic version snapshots on every save, with diff view and one-click rollback - Scan your machine for existing skills from Claude Code, Codex, Kiro, Amp, Agent Protocol, Gemini, and more - Source badges show where each skill originated - Divergence detection when the same skill exists in multiple locations with different content - Register any project and deploy skills to it - 10 built-in target profiles — deploys to the right format and location for each tool automatically: | Tool | Format | Deploys to | |---|---|---| | Claude Code | Skill directory | .claude/skills/ | | Codex | Skill directory | .codex/skills/ | | Kiro | Skill directory | .kiro/skills/ | | Amp | Skill directory | .amp/skills/ | | Agent Protocol | Skill directory | .agents/skills/ | | Cursor | Rules directory | .cursor/rules/*.mdc | | Windsurf | Instructions file | .windsurfrules | | GitHub Copilot | Instructions file | .github/copilot-instructions.md | | Aider | Instructions file | CONVENTIONS.md | | OpenCode | Instructions file | AGENTS.md | - Deployment state tracking — know at a glance which deployed skills are current and which are stale - Symlink mode — deploy as symlinks instead of copies for zero-drift sync - Instructions-file safety — preserves existing content when deploying to shared files like .windsurfrules - Undeploy skills from any project with one click - Bidirectional sync — edited a skill inside a project? Promote it back to the library and push the improvement everywhere - Git sync — store your library in any Git repo and sync skills across machines without a cloud account - Browse and install community skills from SkillsHub - One-click install with automatic frontmatter generation - Offline-aware with graceful fallback Coming soon — the app is functional, screenshots will be added before v1.0. Download the latest release from the Releases page. Available for Windows (.exe ), macOS (.dmg ), and Linux (.AppImage ). Prerequisites: Node.js 18+, npm, Git git clone https://github.com/ali-erfan-dev/skilldeck.git cd skilldeck npm install npm run electron:dev This starts the Vite dev server and launches the Electron app in development mode. npm run build Compiles TypeScript, builds the Vite frontend, and packages the Electron app. Everything stays on your local filesystem: | What | Where | |---|---| | Skill library | ~/.skilldeck/library/ | | Configuration | ~/.skilldeck/config.json | | Deployment records | ~/.skilldeck/deployments.json | | Version history | ~/.skilldeck/versions/ | Skills are Markdown files with optional YAML frontmatter: --- name: scope-killer description: "Prevents scope creep by enforcing task boundaries" tags: [thinking, scoping] --- # Scope Killer When starting a new task: 1. Define the boundary before writing code 2. Flag any work that exceeds the stated scope 3. Suggest splitting oversized tasks Skills without frontmatter fall back to the first # Heading for the name and the first paragraph for the description. When you deploy a skill to a project, Skilldeck: - Writes the skill to the correct location and format for the project's target profile - Records the deployment with the file hash and timestamp - Tracks deployed version vs. library version — shows stale if they diverge ┌─────────────────────────────────┐ │ React Frontend (Vite + TS) │ │ State: Zustand │ │ Styling: Tailwind CSS │ ├─────────────────────────────────┤ │ Electron Preload (contextBridge)│ ├─────────────────────────────────┤ │ Electron Main Process │ │ IPC handlers per domain │ │ File I/O via Node.js fs │ └─────────────────────────────────┘ No backend. No cloud services. The renderer communicates with the main process exclusively through Electron's IPC bridge. | Layer | Technology | |---|---| | Runtime | Electron 28+ | | Frontend | React 18 + TypeScript | | Build | Vite | | State | Zustand | | Styling | Tailwind CSS | | File I/O | Node.js fs (via Electron main process) | | IPC | Electron contextBridge | | Semantic Search | @xenova/transformers | | Frontmatter | gray-matter | skilldeck/ ├── electron/ │ ├── main.ts # Electron main process + IPC handlers │ └── preload.ts # Context bridge (renderer ↔ main) ├── src/ │ ├── main.tsx # React entry │ ├── App.tsx # Root component + view routing │ ├── store/ # Zustand stores │ │ ├── skillStore.ts # Skills, search, filtering, CRUD │ │ ├── configStore.ts # App configuration │ │ ├── deploymentStore.ts │ │ └── syncStore.ts # Cross-tool sync │ ├── hooks/ │ │ └── useRegistry.ts # Community registry state │ ├── components/ │ │ ├── Sidebar.tsx │ │ ├── SkillEditor.tsx │ │ ├── SourceBadge.tsx │ │ ├── RegistryCard.tsx │ │ └── ConflictModal.tsx │ ├── views/ │ │ ├── LibraryView.tsx │ │ ├── ProjectsView.tsx │ │ └── SettingsView.tsx │ └── types/ │ └── index.ts ├── package.json ├── vite.config.ts ├── tailwind.config.js └── tsconfig.json npm install npm run electron:dev # Start Vite + Electron npm run build # TypeScript → Vite → Electron package Refined dark utility — inspired by Linear, Raycast, and Zed. Dark background, precise typography, tight spacing, warm amber accent. Information density over whitespace. - Skill Playground — test a skill against Claude Code or Codex without leaving the app - A/B testing — run two skill versions against the same prompt, pick the winner - Behavioral diff — see exactly what changed between deployed and library versions Skilldeck was built entirely by AI agents (Claude Code) using a harness engineering methodology — a structured system of ground truth files, verification tests, regression gates, and feature intake protocols that kept the agents reliable across weeks of autonomous sessions. The harness is documented in two articles: - Instructions Are Not a Harness — the story: three failure modes, the regression problem, what actually broke - The Six-Component Harness — the framework: a reusable template for building with AI agents The harness files (feature_list.json , system-contract.json , init.sh , verify.spec.ts , check-invariants.js ) are included in the repository. MIT

Genesis Park 편집팀이 AI를 활용하여 작성한 분석입니다. 원문은 출처 링크를 통해 확인할 수 있습니다.

공유

관련 저널 읽기

전체 보기 →