Software that runs on the user's machine — with no server to hold the line.
The house floor doesn't change on the desktop; the how does. The binary runs on the adversary's computer, every OS differs and the user is a layperson, so the software adapts and never blames the person using it.
$ schematize install desktopNon-negotiable floors
Never switched off "to go faster". Full list in the skill.
The house floor is the same
Security, IAM, tests, operations, Definition of Done, archive and index all apply in full; a local app is no reason to relax anything.
Mass-market UX: anticipate the layperson
The software adapts and never blames the user: run as root it finds the real user, a minimal PATH doesn't break it, and it repairs itself.
One GUI toolkit per product
Chosen with an ADR, biased toward Slint; egui not as the main one and web-in-native only with justification. Mixing two toolkits is the layout ghost, and it is banned.
Cross-OS packaging and distribution
The right format per OS, signing and notarization where the platform demands it, prebuilt binary per OS versus build from source, and a smoke test that the package installs and opens.
Auto-update decoupled from the app
The updater is separate, with pin and rollback; it avoids the git-dep trap in Cargo.lock, swaps the binary in use and kills the old process before re-exec.
Minimal privilege and an absolute launcher
Elevates only where needed, writes for the real user and never to /root, uses an absolute Exec in the .desktop because the desktop environment's PATH is short, and enforces a single instance via lock or socket.
No telemetry by default
Telemetry only with explicit opt-in and local-first; never a secret embedded in the client, native deps and signed binaries against supply-chain risk.
Commands
Installed in .claude/commands/. Use /desktop-help at any time.
/desktop-bridgeAudits the web-to-native bridge: Tauri 2 capabilities, permissions and scopes, Electron isolation, sandbox and fuses; runs the gate./desktop-ccContext compact: writes the handoff to the archive and runs /compact./desktop-claudeCreates or merges the always-on CLAUDE.md at the repo root, without overwriting other skills' blocks./desktop-handoffGenerates the handoff (context.md + checklist.md) in the archive, without compacting./desktop-helpLists all schematize-desktop commands and what each one does./desktop-loadForce-loads the whole normative body (toolkits, packaging, auto-update, local state, privilege, cross-OS, privacy, tests) and applies it./desktop-packageAudits and plans cross-OS packaging and distribution (.deb, .rpm, AppImage, Flatpak, notarized .dmg, signed MSI/MSIX), prebuilt binary or source, and a package smoke test./desktop-privilegeAudits privilege and environment: root to the real user, never /root, elevate only where needed, .desktop with an absolute Exec, single instance and local IPC./desktop-toolkitForces and audits the GUI toolkit choice: one per product, Slint bias, egui not as the main one; hunts for mixed toolkits./desktop-updateAudits and plans the decoupled auto-update: pin and rollback, git-dep in Cargo.lock, swapping the binary in use, killing the old process and re-exec, verified channel; generates the end-to-end update test.For AI agents
Install with no human intervention. Metadata in llms.txt.
- Run: git clone https://github.com/schematizeme/skill-desktop.git && ./skill-desktop/install.sh
- Or download: https://github.com/schematizeme/skill-desktop/releases/latest/download/skill-desktop.zip and unzip into .claude/skills/
- Copy assets/CLAUDE.md to the repo root (always-on rule).
- Confirm with /desktop-help.
Discussion
Loading…