muutot/clipboard/clipboard-dev
Claude Code and agent skill by muutot/clipboard
- community
Checking that the SKILL.md file is still in the repository.
Develop and maintain the Clipboard Desktop repository. Use for repository orientation, TODO audits, Svelte/Tauri feature work, frontend-backend contract changes, settings and theme UI work, storage/search/OCR/platform changes, verification, and minimal Git commits. Enforces direct-evidence completion, the approved main-page style, settings style gates, reference routing, lifecycle safety, and a mandatory skill/reference currency check before every commit.
Install
npx vskill@latest install muutot/clipboard/clipboard-devSKILL.md
Clipboard Desktop Development
Start every task
- Read references/maintenance-workflow.md completely before changing the repository.
- Inspect
git status --short --branch, recent commits,TODO.md, and the exact source and tests in scope. Preserve unrelated user changes. - Select the relevant references from the routing table below and read each selected file completely before editing its subsystem.
- Treat current source, tests, configuration, and rendered/runtime behavior as authoritative. References are navigation aids and must be corrected when evidence disagrees.
- Define one independently verifiable feature, fix, audit, style pass, or documentation update for the next commit.
Non-negotiable principles
- Check a TODO only when direct implementation evidence and proportionate verification cover its full wording. A stub, setting, UI shell, similarly named symbol, or untested platform file is not completion.
- Preserve the approved main-page visual language. Do not redesign it unless the task explicitly requests a main-page redesign.
- Apply the settings style gate before any settings CSS or markup change. Reuse project-wide semantic variables and shared settings primitives.
- Protect local data first. Be conservative around migrations, cleanup, custom resource roots, self-trigger suppression, favorites, recycle-bin records, OCR, and derived search data.
- Keep parallel ownership non-overlapping. The primary agent owns shared integration files and final verification.
- Commit one verified minimal unit at a time; never mix unrelated cleanup into the same commit.
Mandatory documentation currency gate — every commit
Before every commit, inspect the staged diff and decide whether SKILL.md or any file under references/ must change. This gate is required even when the answer is “no documentation update needed.”
Update the matching reference in the same commit when the change affects any of these:
- routes, components, services, utilities, backend modules, or ownership boundaries;
- Tauri commands/events, TypeScript/Rust types, database/config schemas, defaults, or serialization;
- lifecycle, data-safety, search-cache, OCR, platform, or verification invariants;
- theme variables, project-wide styles, settings primitives, layout hierarchy, or an approved pattern;
- a recurring pitfall, workflow rule, or stable project preference.
Keep stable workflow and routing rules in SKILL.md. Put module-specific facts, signatures, examples, and style details in the relevant reference. Do not edit documentation merely to create churn, but never commit a known-stale skill or reference.
Pre-commit hooks
The repository ships Git hooks in .githooks/, enabled per clone by npm run hooks:install (npm install runs the same installer through prepare, and never fails an install). The hooks watch the mechanical rules below; they do not replace the judgement ones.
Blocking checks:
commit-msgenforces the gitmoji contract in "Commit message format": one leading emoji, a
type from the mapping table, an emoji that maps to that type, a lowercase scope, and English-only text. Generated subjects (Merge, Revert, fixup!, squash!, amend!) are skipped.
pre-commitrejects staged whitespace errors and conflict markers, Prettier violations in
staged files, cargo fmt drift when Rust files are staged, a version bump committed together with anything outside the release artifact list, and a new or removed source module that arrives without any skills/clipboard-dev/ change.
Advisory output (printed, never blocking): the references that probably need an update for the staged source files, and the pre-release gate commands when a version bump is staged. Set CLIPBOARD_DOC_GATE=none to waive the new-module documentation block for one commit.
git commit --no-verify bypasses both hooks and must stay a deliberate exception. TODO evidence, one verified unit per commit, the documentation decision itself, and rendered, runtime or platform verification remain human work.
Reference router
| Task | Read before editing | |
|---|---|---|
| Any repository change, TODO audit, verification, or commit | maintenance-workflow.md | |
| Repository orientation, routes, directories, runtime surfaces | project-structure.md | |
| Svelte component behavior or component ownership | components.md | |
| Frontend stores, invoke wrappers, mapping, or settings bootstrap | services.md | |
| Database/config/type/IPC/event contract changes | data-contracts.md | |
| Rust startup, workers, storage, search, OCR, privacy, platform, CLI/API | backend-architecture.md | |
| Any UI or CSS change | css-theming.md | |
| Settings shell, panel markup, controls, feedback, or settings CSS | settings-panels.md and css-theming.md | |
| General setting fields, defaults, normalization, persistence | settings-reference.md and data-contracts.md | |
| Search pagination or cache behavior | search-cache-strategy.md | |
| Global hotkeys, window shortcuts, keyboard config, or dispatch | hotkey-architecture.md | |
| Reviewing a local/niche UI exception | niche_ui_style.md; treat it as a review queue, never as an approved pattern |
Also read the focused project document when relevant: docs/PITFALLS.md, docs/SEARCH.md, docs/OCR.md, or docs/DEFAULTS_AND_PRIVACY.md.
Cross-cutting change gates
- Tauri contract: keep command name, Rust arguments/result, frontend
invoke, serde casing, error handling, and tests aligned. - Settings contract: update TypeScript type, defaults, normalization/ranges, Rust config serde/defaults, UI, persistence, cross-window application, i18n, tests, and references as applicable.
- Async settings contract: a control bound to backend-loaded state must hydrate before it renders — a shared module-level store (
generalSettings,windowConfig) or a load gate — never a placeholder default that the fetch later overwrites. Lazy settings panels are destroyed and recreated on every section switch, so a per-mount fetch makes the wrong value (and any toggle animation) flash on each visit. See settings-panels.md. - Database contract: update schema/migration, row mapping, repository behavior, derived search/OCR cleanup, recovery expectations, and tests.
- i18n contract: update
src/lib/i18n/locales/en.ts,zh-CN.ts, andsrc/lib/i18n/types.tstogether unless the string is intentionally non-localized and documented. - Worker/listener contract: retain stop signals, join handles, unlisten functions, and the unified shutdown path.
- Platform contract: separate shared behavior from per-platform implementation and degradation. Do not infer macOS/Linux completion from a compiled adapter or documentation scaffold. Code behind
#[cfg(target_os = ...)]is not compiled by a local run on another OS, so its only gate is the matching CI job — seedocs/PITFALLS.md. - Visual contract: type/build checks do not prove appearance. Use structural comparison and, when available, rendered/runtime inspection at the target window size and theme.
Verification commands
The local verify and ci:local gates include the frontend Vitest suite. The Rust format, test, and Clippy scripts cover every Cargo workspace member, including the Tauri-independent sync crate. During bug remediation, verify each minimal fix with only its relevant unit tests (UTs), including cross-layer fixes; do not run the full Vitest suite, Cargo workspace suite, or npm run verify between fixes. After all requested fixes are complete, run npm run verify once as the final integration gate. Keep the per-commit formatting, hooks and documentation currency gates. If an environment prevents a required runtime, visual, platform, packaging, or performance check, report the missing evidence and leave the corresponding TODO unverified.
The pre-release gate runs format + check + lint:rust and does not build locally (see skills/version-release/SKILL.md); building happens remotely in the GitHub Actions release.yml workflow on tag push, so the local build profile stays fast.
Local build and run model
Build profiles in src-tauri/Cargo.toml are split so local builds are fast and storage-light, and only the GitHub Actions release build applies extreme runtime optimization:
npm run tauri dev— local dev run.[profile.dev]keeps dependencies unoptimized (opt-level 0, no debug symbols) withincremental+split-debuginfo = "unpacked", so the cached target is reused and rebuilds are as fast as possible.npm run tauri build— local packaging.[profile.release]is likewise tuned for build speed and minimal cache (opt-level 0,codegen-units = 256, no debug info,incremental = false).- GitHub Actions release — the only place extreme runtime optimization is enabled.
.github/workflows/release.ymlsetsCARGO_PROFILE_RELEASE_LTO=true,CARGO_PROFILE_RELEASE_CODEGEN_UNITS=1,CARGO_PROFILE_RELEASE_OPT_LEVEL=3plusRUSTFLAGS(target-cpu=x86-64-v3on Windows/Linux, intentionally empty on macOS becausetarget-cpu=nativepanics at compile time with ring 0.17.x,-fuse-ld=moldon Linux). Local builds are unaffected. - CI checks (
ci.yml, releaseverify) build with--profile ci(deps at opt-level 0) and usesccache, mold on Linux, andcargo-nextestfor tests.
Commit message format
Follow the gitmoji convention established by the earliest ~70 commits of this repository:
- gitmoji: single emoji indicating the change category (see table below).
- type: lowercase change type matching the emoji (e.g.,
feat,fix,docs,refactor). - scope: optional, lowercase, in square brackets (e.g.,
[storage],[settings],[search]). - message: concise imperative description in English only. Chinese (or any non-English) descriptions are strictly forbidden — always write the message in English imperative (e.g.,
add pagination,fix vertical centering).
Gitmoji mapping
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/clipboard-dev/SKILL.md
Popularity
- Repository stars
- 124
- Repository forks
- 11
- 7-day trend score
- 0
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/muutot/clipboard/clipboard-dev)