* fix: set writable OD_DATA_DIR default for nix run
Fixes#1157
When running via 'nix run github:nexu-io/open-design', the daemon
attempted to create runtime state under the Nix store package path:
/nix/store/.../lib/open-design/.od/projects
The Nix store is read-only at runtime, causing startup to fail with
ENOENT when mkdir() tried to create the projects directory.
This commit updates the nix run wrapper to export OD_DATA_DIR with
a writable default ($HOME/.od) when the variable is unset. Users
can still override it by setting OD_DATA_DIR before running.
The Home Manager and NixOS modules already set OD_DATA_DIR, so they
are unaffected by this change.
* feat: add FAQ page skill
Add a new skill for generating Frequently Asked Questions pages with:
- Collapsible accordion sections for Q&A pairs
- Real-time search functionality
- Category filtering (Billing, Account, Technical, General)
- Smooth animations and transitions
- Keyboard navigation support
- Mobile-friendly responsive design
- Semantic HTML with proper ARIA attributes
The skill includes:
- SKILL.md with triggers, workflow, and output contract
- example.html demonstrating a complete FAQ page with 12 questions
Use cases: help centers, support pages, product documentation
* fix: address PR review feedback for FAQ page skill
- Fix craft slugs: use accessibility-baseline and state-coverage instead of non-existent slugs
- Remove overly broad 'questions and answers' trigger
- Add edge case handling for insufficient/excessive FAQs
- Remove search highlighting requirement (XSS risk)
- Update self-check to reflect filtering instead of highlighting
Addresses review comments from @lefarcen and @chatgpt-codex-connector
* feat: add localized copy for faq-page skill
Add German, French, and Russian translations for the FAQ page skill
example prompt to fix validation test failure.
- DE: FAQ-Seite mit Akkordeon-Abschnitten, Suchfunktion und Kategoriefilterung
- FR: Page FAQ avec sections accordéon, recherche et filtrage par catégorie
- RU: Страница FAQ со складными секциями-аккордеонами, поиском и фильтрацией
* fix: escape apostrophe in French translation
Use double quotes to avoid syntax error with d'auth
A skill is the atomic unit of design capability in Open Design — one folder, one SKILL.md, optional assets/ and references/. The daemon scans this directory at startup; drop a folder in, restart, and the picker shows it.
Adding a new skill
→ docs/skills-contributing.md — the contributor guide. Quick start, anatomy, local dev loop, merge bar, PR template, and common rejection patterns.
The fastest path is to copy the existing skill closest to your idea, edit SKILL.md and example.html, and read the contributor guide before opening the PR. We're picky about skills because they're the user-facing surface — the merge bar is real and the contributor guide makes it explicit.
Skills that already ship
The mode and featured flags in each skill's SKILL.md decide where it shows up in the picker. The list below is a quick orientation; for a curated set of "imitate this if you're starting from scratch" skills, see the References section in docs/skills-contributing.md.
# Browse the registry from the CLI:
ls skills/
# 54+ skills across prototype, deck, template, design-system, image, video, and audio modes
License
Skills in this directory are Apache-2.0 unless their own LICENSE says otherwise. The most notable exception is skills/guizang-ppt/, bundled verbatim from op7418/guizang-ppt-skill under MIT.