diff --git a/.claude/skills/od-contribute/references/od-repo-map.md b/.claude/skills/od-contribute/references/od-repo-map.md
index 7fb98ea0ac..6daedd745e 100644
--- a/.claude/skills/od-contribute/references/od-repo-map.md
+++ b/.claude/skills/od-contribute/references/od-repo-map.md
@@ -9,7 +9,7 @@ Mirrors `nexu-io/open-design` `CONTRIBUTING.md` so the skill doesn't need to re-
| Make OD render a new kind of artifact | a **Skill** | `skills/ English · Português (Brasil) · Deutsch · Français · 简体中文 · 日本語 English · Português (Brasil) · Deutsch · Français · 简体中文 · 日本語 English · Português (Brasil) · Deutsch · Français · 简体中文 · 日本語 English · Português (Brasil) · Deutsch · Français · 简体中文 · 日本語 English · Português (Brasil) · Deutsch · Français · 日本語 · 简体中文 · 繁體中文 English · Português (Brasil) · Deutsch · Français · 日本語 · 简体中文 · 繁體中文
English · Español · Português · Deutsch · Français · 简体中文 · 繁體中文 · 한국어 · 日本語 · العربية · Русский · Українська · Türkçe
+English · Español · Português · Deutsch · Français · 简体中文 · 繁體中文 · 한국어 · 日本語 · العربية · Русский · Українська · Türkçe
--- @@ -632,7 +632,7 @@ pnpm --filter @open-design/English · Español · ... · Italiano
-``` +- **English root `README.md`** — bold `English`; link translations with the `docs/i18n/` prefix: + ```html +English · Español · ... · Italiano
+ ``` +- **Translated `docs/i18n/README.xx.md`** — bold your own language; link English with `../../README.md` and the other translations as sibling filenames: + ```html +English · Español · ... · Italiano
+ ``` -**Files to update:** `README.md`, `README.ar.md`, `README.de.md`, `README.es.md`, `README.fr.md`, `README.ja-JP.md`, `README.ko.md`, `README.pt-BR.md`, `README.ru.md`, `README.tr.md`, `README.uk.md`, `README.zh-CN.md`, `README.zh-TW.md` +**Files to update:** `README.md` (root), `docs/i18n/README.ar.md`, `docs/i18n/README.de.md`, `docs/i18n/README.es.md`, `docs/i18n/README.fr.md`, `docs/i18n/README.ja-JP.md`, `docs/i18n/README.ko.md`, `docs/i18n/README.pt-BR.md`, `docs/i18n/README.ru.md`, `docs/i18n/README.tr.md`, `docs/i18n/README.uk.md`, `docs/i18n/README.zh-CN.md`, `docs/i18n/README.zh-TW.md` ### Step 4: Add UI Dictionary (Optional but Recommended) @@ -87,7 +94,7 @@ pnpm typecheck # Run i18n checks pnpm i18n:check -# Visual check: open your README.it.md in GitHub preview +# Visual check: open your docs/i18n/README.it.md in GitHub preview # Verify all links work, images load, language switcher displays correctly ``` @@ -129,20 +136,20 @@ Open Design currently supports **19 languages** across different surfaces: | 繁體中文 | `zh-TW` | ✅ | ✅ | — | active | **Translation surfaces:** -- **README**: Root documentation (`README.{lang}.md`) +- **README**: Project README, translated into `docs/i18n/README.{lang}.md` (English source stays at root `README.md`) - **UI Dict**: Web interface strings (`apps/web/src/i18n/locales/{lang}.ts`) -- **Core Docs**: `QUICKSTART.{lang}.md`, `CONTRIBUTING.{lang}.md` +- **Core Docs**: `docs/i18n/QUICKSTART.{lang}.md`, `docs/i18n/CONTRIBUTING.{lang}.md` (English sources stay at root `QUICKSTART.md`, `CONTRIBUTING.md`) > **Note:** You can contribute any subset of these surfaces. Start with README (highest impact), then add UI dictionary and core docs when you have time. ### File Locations - **UI dictionaries**: [`apps/web/src/i18n/locales/`](apps/web/src/i18n/locales/) -- **Root READMEs**: Beside [`README.md`](README.md) in project root -- **Core docs**: Beside [`QUICKSTART.md`](QUICKSTART.md) and [`CONTRIBUTING.md`](CONTRIBUTING.md) +- **English sources**: [`README.md`](README.md), [`QUICKSTART.md`](QUICKSTART.md), [`CONTRIBUTING.md`](CONTRIBUTING.md), [`MAINTAINERS.md`](MAINTAINERS.md) stay in the project root +- **Translated docs**: [`docs/i18n/`](docs/i18n/) holds every `README.{lang}.md`, `QUICKSTART.{lang}.md`, `CONTRIBUTING.{lang}.md`, and `MAINTAINERS.{lang}.md` - **Display metadata**: `apps/web/src/i18n/content*.ts` (optional, for gallery/examples) -The `LOCALES` array in [`apps/web/src/i18n/types.ts`](apps/web/src/i18n/types.ts) is the authoritative list for UI dictionaries. Root README language switchers cover every locale that has a root README; this set can differ from `LOCALES`. +The `LOCALES` array in [`apps/web/src/i18n/types.ts`](apps/web/src/i18n/types.ts) is the authoritative list for UI dictionaries. README language switchers cover every locale that has a README translation in `docs/i18n/`; this set can differ from `LOCALES`. --- @@ -224,28 +231,34 @@ The `LOCALES` array in [`apps/web/src/i18n/types.ts`](apps/web/src/i18n/types.ts }; ``` -5. **Translate the root README:** - - Copy `README.md` to `README..md`
+5. **Translate the README:**
+ - Copy `README.md` to `docs/i18n/README..md` (translations live under `docs/i18n/`; the English `README.md` is the only one in the repo root)
- Repository precedent may use a documentation-region code that differs from the UI dict code when that is the familiar docs filename, such as `README.ja-JP.md` with UI locale `ja`, or `README.es.md` with UI locale `es-ES`
- Translate all prose, headings, alt text, and link text
- Keep code snippets, URLs, and brand names in English
- - Update internal links: `[Quickstart](QUICKSTART.md)` → `[Guida rapida](QUICKSTART.it.md)` (if that file exists)
+ - Fix relative paths for the new location: links to repo-root resources (`apps/`, `docs/`, `LICENSE`, the English `README.md`, etc.) need a `../../` prefix; links to a sibling translated core doc stay as a bare filename. Example: `[Quickstart](../../QUICKSTART.md)` → `[Guida rapida](QUICKSTART.it.md)` if that translation exists, else `[Guida rapida](../../QUICKSTART.md)`
-6. **Update the language switcher in EVERY root README** (line ~30 of each `README*.md`):
+6. **Update the language switcher in EVERY README** — the root `README.md` and every `docs/i18n/README.*.md` (line ~25 of each):
- Match the order used in the English README
- Include the same set everywhere
- Bold the current language: `Italiano`
- - Link to other languages: `Italiano`
+ - The link form differs by file location (see below)
- **Standard order:**
+ **English root `README.md`** — bold `English`, link translations with the `docs/i18n/` prefix:
```html
- English · Español · Português (Brasil) · Deutsch · Français · 简体中文 · 繁體中文 · 한국어 · 日本語 · العربية · Русский · Українська · Türkçe · Italiano
+ English · Español · Português · Deutsch · Français · 简体中文 · 繁體中文 · 한국어 · 日本語 · العربية · Русский · Українська · Türkçe · Italiano
+ ```
+
+ **Translated `docs/i18n/README..md`** — link English with `../../README.md`, the other translations as sibling filenames, bold your own:
+ ```html
+ English · Español · Português · Deutsch · Français · 简体中文 · 繁體中文 · 한국어 · 日本語 · العربية · Русский · Українська · Türkçe · Italiano
```
7. **(Optional) Translate core docs:**
- - Copy `QUICKSTART.md` → `QUICKSTART..md`
- - Copy `CONTRIBUTING.md` → `CONTRIBUTING..md`
- - Follow existing examples: `QUICKSTART.fr.md`, `CONTRIBUTING.pt-BR.md`, `CONTRIBUTING.ja-JP.md`
+ - Copy `QUICKSTART.md` → `docs/i18n/QUICKSTART..md`
+ - Copy `CONTRIBUTING.md` → `docs/i18n/CONTRIBUTING..md`
+ - Follow existing examples: `docs/i18n/QUICKSTART.fr.md`, `docs/i18n/CONTRIBUTING.pt-BR.md`, `docs/i18n/CONTRIBUTING.ja-JP.md`
+ - Apply the same `../../`-for-root-resources rule; links between translated docs in `docs/i18n/` stay as bare sibling filenames
- Update links from the translated README to the translated core docs
8. **(Optional) Translate display metadata** in `apps/web/src/i18n/content*.ts`:
@@ -266,7 +279,7 @@ The `LOCALES` array in [`apps/web/src/i18n/types.ts`](apps/web/src/i18n/types.ts
- ✅ Alt text in images: `alt="Open Design banner"` → `alt="Banner di Open Design"`
- ✅ Badge labels where appropriate: `discord-join` → `discord-unisciti`
- ✅ Code comments in examples (if instructional)
-- ✅ Link text: `[Quickstart](QUICKSTART.md)` → `[Guida rapida](QUICKSTART.it.md)` (if that file exists; otherwise keep `QUICKSTART.md` target)
+- ✅ Link text: `[Quickstart](../../QUICKSTART.md)` → `[Guida rapida](QUICKSTART.it.md)` (sibling translation in `docs/i18n/` if it exists; otherwise keep the English target `../../QUICKSTART.md`)
**What NOT to translate:**
- ❌ Code snippets (commands, file paths, variable names)
@@ -530,20 +543,20 @@ Open your translated README in GitHub's preview or a local Markdown viewer:
Check all internal links point to existing files:
```bash
-# Example: verify Italian links
-grep -o 'README\.[a-z-]*\.md' README.it.md | sort -u
-grep -o 'QUICKSTART\.[a-z-]*\.md' README.it.md | sort -u
-grep -o 'CONTRIBUTING\.[a-z-]*\.md' README.it.md | sort -u
+# Example: verify Italian links (translations live in docs/i18n/)
+grep -o 'README\.[a-z-]*\.md' docs/i18n/README.it.md | sort -u
+grep -o 'QUICKSTART\.[a-z-]*\.md' docs/i18n/README.it.md | sort -u
+grep -o 'CONTRIBUTING\.[a-z-]*\.md' docs/i18n/README.it.md | sort -u
```
-All linked files should exist in the repository. If a translated file doesn't exist yet, link to the English version.
+All linked files should exist in the repository. Sibling translations resolve relative to `docs/i18n/`; English sources resolve via the `../../` prefix. If a translated file doesn't exist yet, link to the English version at `../../`.
### 3. Language Switcher Audit
Verify the language switcher in your new file:
-- ✅ Lists all supported languages (13+)
+- ✅ Lists all supported languages
- ✅ Current language is bolded: `Italiano`
-- ✅ All other languages are links: `Italiano`
+- ✅ All other languages are links (sibling `` from a `docs/i18n/` file; `docs/i18n/`-prefixed from the root `README.md`)
- ✅ Links use correct file names (e.g., `README.ja-JP.md` not `README.ja.md`)
- ✅ Order matches the standard order
@@ -593,27 +606,27 @@ feat(i18n): add [Language] translation
Adds [Language] translation for Open Design documentation.
## Translation Scope
-- [x] README.[lang].md
-- [ ] QUICKSTART.[lang].md (optional)
-- [ ] CONTRIBUTING.[lang].md (optional)
+- [x] docs/i18n/README.[lang].md
+- [ ] docs/i18n/QUICKSTART.[lang].md (optional)
+- [ ] docs/i18n/CONTRIBUTING.[lang].md (optional)
- [x] UI dictionary (`apps/web/src/i18n/locales/[lang].ts`)
- [x] Language switcher updated in all existing READMEs
## Files Modified
Updated language switcher in:
-- [x] README.md
-- [x] README.ar.md
-- [x] README.de.md
-- [x] README.es.md
-- [x] README.fr.md
-- [x] README.ja-JP.md
-- [x] README.ko.md
-- [x] README.pt-BR.md
-- [x] README.ru.md
-- [x] README.tr.md
-- [x] README.uk.md
-- [x] README.zh-CN.md
-- [x] README.zh-TW.md
+- [x] README.md (root)
+- [x] docs/i18n/README.ar.md
+- [x] docs/i18n/README.de.md
+- [x] docs/i18n/README.es.md
+- [x] docs/i18n/README.fr.md
+- [x] docs/i18n/README.ja-JP.md
+- [x] docs/i18n/README.ko.md
+- [x] docs/i18n/README.pt-BR.md
+- [x] docs/i18n/README.ru.md
+- [x] docs/i18n/README.tr.md
+- [x] docs/i18n/README.uk.md
+- [x] docs/i18n/README.zh-CN.md
+- [x] docs/i18n/README.zh-TW.md
## Translation Notes
[Any regional choices, terminology decisions, or context for reviewers]
@@ -663,8 +676,8 @@ Translations are **not automatically updated** when the English source changes.
When a PR changes English copy, check which surface changed and update the matching translated surfaces deliberately:
- **UI chrome:** Update `apps/web/src/i18n/locales/en.ts` first, then add translated values to active locale dictionaries when the PR owns that refresh. Partial dictionaries may inherit from English with `...en`.
-- **Root README:** Keep root README language switchers in sync across all root `README*.md` files. Check badge counts, Quickstart links, supported agent lists, and release/download links against `README.md` during a refresh.
-- **Core docs:** Keep translated `QUICKSTART.*.md` and `CONTRIBUTING.*.md` aligned with their English source when the locale owns those docs.
+- **README:** Keep language switchers in sync across the root `README.md` and every `docs/i18n/README.*.md`. Check badge counts, Quickstart links, supported agent lists, and release/download links against the English `README.md` during a refresh.
+- **Core docs:** Keep translated `docs/i18n/QUICKSTART.*.md` and `docs/i18n/CONTRIBUTING.*.md` aligned with their English source (`QUICKSTART.md`, `CONTRIBUTING.md` in root) when the locale owns those docs.
- **Display metadata:** Update `apps/web/src/i18n/content*.ts` alongside `content.ts` when that locale maintains display metadata.
### Automated Checks
@@ -730,9 +743,9 @@ It's okay to translate only README initially. Add QUICKSTART and CONTRIBUTING la
**Mark partial translations in your PR:**
```markdown
## Translation Status
-- [x] README.it.md (complete)
-- [ ] QUICKSTART.it.md (planned)
-- [ ] CONTRIBUTING.it.md (planned)
+- [x] docs/i18n/README.it.md (complete)
+- [ ] docs/i18n/QUICKSTART.it.md (planned)
+- [ ] docs/i18n/CONTRIBUTING.it.md (planned)
```
---
diff --git a/CONTRIBUTING.de.md b/docs/i18n/CONTRIBUTING.de.md
similarity index 80%
rename from CONTRIBUTING.de.md
rename to docs/i18n/CONTRIBUTING.de.md
index 17bfd799ae..d7dbf31c8b 100644
--- a/CONTRIBUTING.de.md
+++ b/docs/i18n/CONTRIBUTING.de.md
@@ -4,7 +4,7 @@ Danke, dass Sie über einen Beitrag nachdenken. OD ist bewusst klein gehalten
Dieser Leitfaden zeigt, wo Sie für welche Art Beitrag suchen sollten und welche Messlatte ein PR vor dem Merge erfüllen muss.
-English · Português (Brasil) · Deutsch · Français · 简体中文 · 日本語
+English · Português (Brasil) · Deutsch · Français · 简体中文 · 日本語
---
@@ -12,9 +12,9 @@ Dieser Leitfaden zeigt, wo Sie für welche Art Beitrag suchen sollten und welche
| Wenn Sie möchten… | Fügen Sie eigentlich hinzu | Ort | Umfang |
|---|---|---|---|
-| OD eine neue Artifact-Art rendern lassen (Rechnung, iOS Settings Screen, One-Pager…) | einen **Skill** | [`skills//`](skills/) | ein Ordner, ca. 2 Dateien |
-| OD die visuelle Sprache einer neuen Marke sprechen lassen | ein **Design System** | [`design-systems//DESIGN.md`](design-systems/) | eine Markdown-Datei |
-| Eine neue coding-agent CLI anbinden | einen **Agent adapter** | [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts) | ca. 10 Zeilen in einem Array |
+| OD eine neue Artifact-Art rendern lassen (Rechnung, iOS Settings Screen, One-Pager…) | einen **Skill** | [`skills//`](../../skills/) | ein Ordner, ca. 2 Dateien |
+| OD die visuelle Sprache einer neuen Marke sprechen lassen | ein **Design System** | [`design-systems//DESIGN.md`](../../design-systems/) | eine Markdown-Datei |
+| Eine neue coding-agent CLI anbinden | einen **Agent adapter** | [`apps/daemon/src/agents.ts`](../../apps/daemon/src/agents.ts) | ca. 10 Zeilen in einem Array |
| Feature ergänzen, Bug fixen, UX-Pattern aus [`open-codesign`][ocod] übernehmen | Code | `apps/web/src/`, `apps/daemon/` | normaler PR |
| Dokumentation verbessern, Französisch / Deutsch / 中文 ergänzen, Tippfehler fixen | Dokumentation | `README.md`, `README.fr.md`, `README.de.md`, `README.zh-CN.md`, `docs/`, `QUICKSTART.md` | ein PR |
@@ -36,7 +36,7 @@ pnpm typecheck # tsc -b --noEmit
pnpm --filter @open-design/web build # Web-Paket bei Bedarf bauen
```
-Node `~24` und pnpm `10.33.x` sind erforderlich. `nvm` / `fnm` sind optional; nutzen Sie `nvm install 24 && nvm use 24` oder `fnm install 24 && fnm use 24`, wenn Sie Node so verwalten. macOS, Linux und WSL2 sind die primären Pfade. Windows nativ wird unterstützt; siehe [`docs/windows-troubleshooting.md`](docs/windows-troubleshooting.md) für die häufigsten Setup-Stolpersteine.
+Node `~24` und pnpm `10.33.x` sind erforderlich. `nvm` / `fnm` sind optional; nutzen Sie `nvm install 24 && nvm use 24` oder `fnm install 24 && fnm use 24`, wenn Sie Node so verwalten. macOS, Linux und WSL2 sind die primären Pfade. Windows nativ wird unterstützt; siehe [`docs/windows-troubleshooting.md`](../../docs/windows-troubleshooting.md) für die häufigsten Setup-Stolpersteine.
Sie brauchen keine Agent-CLI im `PATH`, um OD selbst zu entwickeln. Der daemon meldet dann "no agents found" und fällt auf den **Anthropic API · BYOK** Pfad zurück, der oft die schnellste Dev-Schleife ist.
@@ -44,7 +44,7 @@ Sie brauchen keine Agent-CLI im `PATH`, um OD selbst zu entwickeln. Der daemon m
## Einen neuen Skill hinzufügen
-Ein Skill ist ein Ordner unter [`skills/`](skills/) mit `SKILL.md` im Root. Er folgt der Claude Code [`SKILL.md` Konvention][skill] plus optionaler `od:` Erweiterung. **Keine Registrierung nötig.** Ordner ablegen, daemon neu starten, der Picker zeigt ihn an.
+Ein Skill ist ein Ordner unter [`skills/`](../../skills/) mit `SKILL.md` im Root. Er folgt der Claude Code [`SKILL.md` Konvention][skill] plus optionaler `od:` Erweiterung. **Keine Registrierung nötig.** Ordner ablegen, daemon neu starten, der Picker zeigt ihn an.
### Skill-Ordnerlayout
@@ -93,14 +93,14 @@ od:
Body is free-form Markdown describing the workflow the agent should follow…
```
-Die vollständige Grammatik — typed inputs, Slider-Parameter, capability gating — steht in [`docs/skills-protocol.md`](docs/skills-protocol.md).
+Die vollständige Grammatik — typed inputs, Slider-Parameter, capability gating — steht in [`docs/skills-protocol.md`](../../docs/skills-protocol.md).
### Merge-Messlatte für einen neuen Skill
1. **Ein echtes `example.html`.** Handgebaut, direkt von Disk öffnend, mit Designer-Qualität. Kein Lorem ipsum, kein `` Placeholder-Hero.
2. **Anti-AI-slop Checklist bestehen.** Keine violetten Gradients, keine generischen Emoji-Icons, keine runde Karte mit linkem Border-Akzent, kein Inter als Display-Font, keine erfundenen Zahlen.
3. **Ehrliche Platzhalter.** Wenn der Agent keine echte Zahl hat, schreiben Sie `—` oder einen beschrifteten grauen Block, nicht "10× faster".
-4. **`references/checklist.md` mit mindestens P0 Gates.** Format an [`skills/guizang-ppt/references/checklist.md`](skills/guizang-ppt/) oder [`skills/dating-web/references/checklist.md`](skills/dating-web/) anlehnen.
+4. **`references/checklist.md` mit mindestens P0 Gates.** Format an [`skills/guizang-ppt/references/checklist.md`](../../skills/guizang-ppt/) oder [`skills/dating-web/references/checklist.md`](../../skills/dating-web/) anlehnen.
5. **Screenshot unter `docs/screenshots/skills/.png`**, wenn der Skill featured ist. PNG, ca. 1024×640 retina, aus dem echten `example.html`.
6. **Ein einzelner, in sich geschlossener Ordner.** Keine CDN-Imports außer bereits verwendeten, keine unlizenzierte Fonts, keine Bilder über ca. 250 KB.
@@ -108,16 +108,16 @@ Wenn Sie einen vorhandenen Skill forken, behalten Sie LICENSE und Autorenschaft
### Vorhandene Skills zum Nachahmen
-- Visuelle Single-Screen-Prototypen: [`skills/dating-web/`](skills/dating-web/), [`skills/digital-eguide/`](skills/digital-eguide/)
-- Multi-Frame Mobile-Flows: [`skills/mobile-onboarding/`](skills/mobile-onboarding/), [`skills/gamified-app/`](skills/gamified-app/)
-- Dokument / Template: [`skills/pm-spec/`](skills/pm-spec/), [`skills/weekly-update/`](skills/weekly-update/)
-- Deck-Modus: [`skills/guizang-ppt/`](skills/guizang-ppt/) und [`skills/simple-deck/`](skills/simple-deck/)
+- Visuelle Single-Screen-Prototypen: [`skills/dating-web/`](../../skills/dating-web/), [`skills/digital-eguide/`](../../skills/digital-eguide/)
+- Multi-Frame Mobile-Flows: [`skills/mobile-onboarding/`](../../skills/mobile-onboarding/), [`skills/gamified-app/`](../../skills/gamified-app/)
+- Dokument / Template: [`skills/pm-spec/`](../../skills/pm-spec/), [`skills/weekly-update/`](../../skills/weekly-update/)
+- Deck-Modus: [`skills/guizang-ppt/`](../../skills/guizang-ppt/) und [`skills/simple-deck/`](../../skills/simple-deck/)
---
## Ein neues Design System hinzufügen
-Ein Designsystem ist eine einzelne [`DESIGN.md`](design-systems/README.md) Datei unter `design-systems//`. **Eine Datei, kein Code.** Ablegen, daemon neu starten, der Picker gruppiert es nach Kategorie.
+Ein Designsystem ist eine einzelne [`DESIGN.md`](../../design-systems/README.md) Datei unter `design-systems//`. **Eine Datei, kein Code.** Ablegen, daemon neu starten, der Picker gruppiert es nach Kategorie.
### Designsystem-Ordnerlayout
@@ -152,7 +152,7 @@ design-systems/your-brand/
## 9. Anti-patterns
```
-Das 9-Section-Schema ist fest — Skill-Bodies greifen darauf per Suche zu. Das erste H1 wird zum Picker-Label (der Prefix `Design System Inspired by` wird entfernt), und `> Category: …` entscheidet die Gruppe. Bestehende Kategorien stehen in [`design-systems/README.md`](design-systems/README.md); nutzen Sie nach Möglichkeit eine vorhandene.
+Das 9-Section-Schema ist fest — Skill-Bodies greifen darauf per Suche zu. Das erste H1 wird zum Picker-Label (der Prefix `Design System Inspired by` wird entfernt), und `> Category: …` entscheidet die Gruppe. Bestehende Kategorien stehen in [`design-systems/README.md`](../../design-systems/README.md); nutzen Sie nach Möglichkeit eine vorhandene.
### Merge-Messlatte für ein neues Designsystem
@@ -162,13 +162,13 @@ Das 9-Section-Schema ist fest — Skill-Bodies greifen darauf per Suche zu. Das
4. **Kein Marketing-Fluff.** Die Tagline einer Marke ist kein Design Token.
5. **Slug nutzt ASCII** — `linear.app` wird `linear-app`, `x.ai` wird `x-ai`.
-Die gelieferten Produktsysteme werden aus [`VoltAgent/awesome-design-md`][acd2] über [`scripts/sync-design-systems.ts`](scripts/sync-design-systems.ts) importiert. Wenn Ihre Marke upstream passt, schicken Sie den PR zuerst dorthin; OD übernimmt ihn beim nächsten Sync.
+Die gelieferten Produktsysteme werden aus [`VoltAgent/awesome-design-md`][acd2] über [`scripts/sync-design-systems.ts`](../../scripts/sync-design-systems.ts) importiert. Wenn Ihre Marke upstream passt, schicken Sie den PR zuerst dorthin; OD übernimmt ihn beim nächsten Sync.
---
## Eine neue coding-agent CLI hinzufügen
-Eine neue Agent-CLI ist ein Eintrag in [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts):
+Eine neue Agent-CLI ist ein Eintrag in [`apps/daemon/src/agents.ts`](../../apps/daemon/src/agents.ts):
```javascript
{
@@ -181,7 +181,7 @@ Eine neue Agent-CLI ist ein Eintrag in [`apps/daemon/src/agents.ts`](apps/daemon
}
```
-Der daemon erkennt sie im `PATH`, der Picker zeigt sie an und der Chat-Pfad funktioniert. Wenn die CLI **typed events** ausgibt, ergänzen Sie einen Parser in [`apps/daemon/src/claude-stream.ts`](apps/daemon/src/claude-stream.ts) und setzen `streamFormat`.
+Der daemon erkennt sie im `PATH`, der Picker zeigt sie an und der Chat-Pfad funktioniert. Wenn die CLI **typed events** ausgibt, ergänzen Sie einen Parser in [`apps/daemon/src/claude-stream.ts`](../../apps/daemon/src/claude-stream.ts) und setzen `streamFormat`.
Merge-Bar:
@@ -217,7 +217,7 @@ Außerdem:
- **Ein Anliegen pro PR.**
- **Titel ist imperativ + Scope.** `add dating-web skill`, `fix daemon SSE backpressure when CLI hangs`, `docs: clarify .od layout`.
-- **Nutzen Sie das PR-Template.** Füllen Sie jeden Abschnitt von [`.github/pull_request_template.md`](.github/pull_request_template.md) aus — Why, What users will see, Surface area, Screenshots (bei UI), Bug fix verification (bei Bugfix), Validation. Leere Abschnitte ergeben einen "please fill in"-Kommentar.
+- **Nutzen Sie das PR-Template.** Füllen Sie jeden Abschnitt von [`.github/pull_request_template.md`](../../.github/pull_request_template.md) aus — Why, What users will see, Surface area, Screenshots (bei UI), Bug fix verification (bei Bugfix), Validation. Leere Abschnitte ergeben einen "please fill in"-Kommentar.
- **Body erklärt das Warum.** Der Diff zeigt oft das Was, aber selten den Grund.
- **Issue referenzieren**, falls vorhanden. Bei nicht-trivialen PRs ohne Issue bitte zuerst eines öffnen.
- **Während Review nicht squashen.** Fixups pushen; wir squashen beim Merge.
@@ -244,7 +244,7 @@ Für Prompt-Stack-Bugs fügen Sie die **vollständige Assistant Message** bei, d
## Fragen stellen
- Architekturfrage, Designfrage, "Bug oder Fehlbenutzung?" → [GitHub Discussions](https://github.com/nexu-io/open-design/discussions) (bevorzugt, weil suchbar).
-- "Wie schreibe ich einen Skill für X?" → Discussion öffnen. Wir beantworten sie und übernehmen fehlende Muster in [`docs/skills-protocol.md`](docs/skills-protocol.md).
+- "Wie schreibe ich einen Skill für X?" → Discussion öffnen. Wir beantworten sie und übernehmen fehlende Muster in [`docs/skills-protocol.md`](../../docs/skills-protocol.md).
---
@@ -265,12 +265,12 @@ Wenn Sie nicht sicher sind, ob eine Idee passt, öffnen Sie vor dem Code eine Di
## Maintainer werden
-Wenn Sie kontinuierlich beigetragen haben und wissen möchten, wie der Weg zum Maintainer aussieht, finden Sie die Regeln in **[`MAINTAINERS.md`](MAINTAINERS.md)**. Die Kurzfassung:
+Wenn Sie kontinuierlich beigetragen haben und wissen möchten, wie der Weg zum Maintainer aussieht, finden Sie die Regeln in **[`MAINTAINERS.md`](../../MAINTAINERS.md)**. Die Kurzfassung:
- Ein Maintainer kann Issues prüfen, freigeben und schließen. Der Merge-Button bleibt beim Core Team — Ihre Freigabe zählt jedoch als die für den Merge erforderliche Freigabe.
- Die Hürde liegt bei **≥ 20 merged PRs** plus einer veröffentlichten Account-Qualitätsprüfung (Anti-Bot, Anti-Sock-Puppet) plus einer Einschätzung des Core Teams zur Qualität der Beiträge. Es gibt kein Bewerbungsformular; das Core Team bringt Kandidatinnen und Kandidaten intern zur Sprache und meldet sich.
- Es gibt **keine Quoten, keine SLAs und keine feste Amtszeit.** Ein Rücktritt ist einfach und reversibel (Emeritus → Rückkehr, sobald sich das Leben wieder beruhigt).
-- Alle Schwellenwerte, der Nominierungsablauf, die Regeln zum Rücktritt und die Ausnahmeregelung für die frühe Projektphase stehen in [`MAINTAINERS.md`](MAINTAINERS.md). Lesen Sie dieses Dokument, falls Sie etwas davon interessiert.
+- Alle Schwellenwerte, der Nominierungsablauf, die Regeln zum Rücktritt und die Ausnahmeregelung für die frühe Projektphase stehen in [`MAINTAINERS.md`](../../MAINTAINERS.md). Lesen Sie dieses Dokument, falls Sie etwas davon interessiert.
Das tl;dr: Liefern Sie gute PRs, prüfen Sie sorgfältig, halten Sie sich in [Discussions][discussions] / [Discord][discord] auf — und der Rest ergibt sich von selbst.
@@ -281,7 +281,7 @@ Das tl;dr: Liefern Sie gute PRs, prüfen Sie sorgfältig, halten Sie sich in [Di
## Lizenz
-Mit Ihrem Beitrag erklären Sie sich einverstanden, dass er unter der [Apache-2.0-Lizenz](LICENSE) dieses Repositories steht. Ausnahme sind Dateien in [`skills/guizang-ppt/`](skills/guizang-ppt/), die ihre ursprüngliche MIT-Lizenz und Autorenschaft von [op7418](https://github.com/op7418) behalten.
+Mit Ihrem Beitrag erklären Sie sich einverstanden, dass er unter der [Apache-2.0-Lizenz](../../LICENSE) dieses Repositories steht. Ausnahme sind Dateien in [`skills/guizang-ppt/`](../../skills/guizang-ppt/), die ihre ursprüngliche MIT-Lizenz und Autorenschaft von [op7418](https://github.com/op7418) behalten.
[skill]: https://docs.anthropic.com/en/docs/claude-code/skills
[guizang]: https://github.com/op7418/guizang-ppt-skill
diff --git a/CONTRIBUTING.fr.md b/docs/i18n/CONTRIBUTING.fr.md
similarity index 88%
rename from CONTRIBUTING.fr.md
rename to docs/i18n/CONTRIBUTING.fr.md
index 1bbe8917dc..73a986ecb8 100644
--- a/CONTRIBUTING.fr.md
+++ b/docs/i18n/CONTRIBUTING.fr.md
@@ -9,7 +9,7 @@ dans une PR.
Ce guide indique où intervenir pour chaque type de contribution et quel niveau
une PR doit atteindre avant d’être mergée.
-English · Português (Brasil) · Deutsch · Français · 简体中文 · 日本語
+English · Português (Brasil) · Deutsch · Français · 简体中文 · 日本語
---
@@ -17,9 +17,9 @@ une PR doit atteindre avant d’être mergée.
| Si vous voulez… | Vous ajoutez en réalité | Où cela vit | Taille |
|---|---|---|---|
-| Faire générer à OD un nouveau type d'artifact (facture, écran iOS Settings, one-pager…) | un **Skill** | [`skills//`](skills/) | un dossier, ~2 fichiers |
-| Faire parler à OD le langage visuel d'une nouvelle marque | un **Design System** | [`design-systems//DESIGN.md`](design-systems/) | un fichier Markdown |
-| Brancher une nouvelle CLI de coding agent | un **Agent adapter** | [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts) | ~10 lignes dans un tableau |
+| Faire générer à OD un nouveau type d'artifact (facture, écran iOS Settings, one-pager…) | un **Skill** | [`skills//`](../../skills/) | un dossier, ~2 fichiers |
+| Faire parler à OD le langage visuel d'une nouvelle marque | un **Design System** | [`design-systems//DESIGN.md`](../../design-systems/) | un fichier Markdown |
+| Brancher une nouvelle CLI de coding agent | un **Agent adapter** | [`apps/daemon/src/agents.ts`](../../apps/daemon/src/agents.ts) | ~10 lignes dans un tableau |
| Ajouter une feature, corriger un bug, reprendre un pattern UX de [`open-codesign`][ocod] | du code | `apps/web/src/`, `apps/daemon/` | PR classique |
| Améliorer la doc, porter une section en Français / Deutsch / 中文, corriger une faute | documentation | `README.md`, `README.fr.md`, `README.de.md`, `README.zh-CN.md`, `docs/`, `QUICKSTART.md` | une PR |
@@ -48,7 +48,7 @@ Node `~24` et pnpm `10.33.x` sont requis. `nvm` / `fnm` sont optionnels ;
utilisez `nvm install 24 && nvm use 24` ou `fnm install 24 && fnm use 24` si
vous gérez Node comme cela. macOS, Linux et WSL2 sont les environnements
principaux pris en charge.
-Windows natif est supporté ; voir [`docs/windows-troubleshooting.md`](docs/windows-troubleshooting.md)
+Windows natif est supporté ; voir [`docs/windows-troubleshooting.md`](../../docs/windows-troubleshooting.md)
pour les pièges de configuration les plus courants.
Vous n'avez pas besoin d'une CLI d'agent dans votre `PATH` pour développer OD.
@@ -60,7 +60,7 @@ de dev la plus rapide.
## Ajouter un nouveau Skill
-Un Skill est un dossier sous [`skills/`](skills/) avec un `SKILL.md` à la
+Un Skill est un dossier sous [`skills/`](../../skills/) avec un `SKILL.md` à la
racine. Il suit la convention Claude Code [`SKILL.md`][skill], plus notre
extension optionnelle `od:`. **Aucune étape d'enregistrement.** Déposez le
dossier, redémarrez le daemon, et le picker l'affiche.
@@ -117,7 +117,7 @@ Body is free-form Markdown describing the workflow the agent should follow…
```
La grammaire complète — typed inputs, paramètres de sliders, capability gating
-— se trouve dans [`docs/skills-protocol.md`](docs/skills-protocol.md).
+— se trouve dans [`docs/skills-protocol.md`](../../docs/skills-protocol.md).
### Critères de merge pour un nouveau Skill
@@ -137,8 +137,8 @@ visible pour l'utilisateur. Un nouveau Skill doit :
écrivez `—` ou un bloc gris libellé, pas "10× faster".
4. **Avoir un `references/checklist.md`** avec au moins les gates P0, c'est-à-dire
ce que l'agent doit vérifier avant d'émettre ``. Reprenez le format
- de [`skills/guizang-ppt/references/checklist.md`](skills/guizang-ppt/) ou
- [`skills/dating-web/references/checklist.md`](skills/dating-web/).
+ de [`skills/guizang-ppt/references/checklist.md`](../../skills/guizang-ppt/) ou
+ [`skills/dating-web/references/checklist.md`](../../skills/dating-web/).
5. **Ajouter une capture** sous `docs/screenshots/skills/.png` si le Skill
est featured. PNG, environ 1024×640 retina, capturé depuis le vrai
`example.html` avec un zoom navigateur adapté.
@@ -152,21 +152,21 @@ faire `recruiting-web`), conservez la LICENSE et l'attribution d'auteur dans
### Skills existants à imiter
-- Prototype visuel single-screen : [`skills/dating-web/`](skills/dating-web/),
- [`skills/digital-eguide/`](skills/digital-eguide/)
-- Flow mobile multi-frame : [`skills/mobile-onboarding/`](skills/mobile-onboarding/),
- [`skills/gamified-app/`](skills/gamified-app/)
-- Document / template sans Design System requis : [`skills/pm-spec/`](skills/pm-spec/),
- [`skills/weekly-update/`](skills/weekly-update/)
-- Deck mode : [`skills/guizang-ppt/`](skills/guizang-ppt/) (bundle repris tel
+- Prototype visuel single-screen : [`skills/dating-web/`](../../skills/dating-web/),
+ [`skills/digital-eguide/`](../../skills/digital-eguide/)
+- Flow mobile multi-frame : [`skills/mobile-onboarding/`](../../skills/mobile-onboarding/),
+ [`skills/gamified-app/`](../../skills/gamified-app/)
+- Document / template sans Design System requis : [`skills/pm-spec/`](../../skills/pm-spec/),
+ [`skills/weekly-update/`](../../skills/weekly-update/)
+- Deck mode : [`skills/guizang-ppt/`](../../skills/guizang-ppt/) (bundle repris tel
quel depuis [op7418/guizang-ppt-skill][guizang]) et
- [`skills/simple-deck/`](skills/simple-deck/)
+ [`skills/simple-deck/`](../../skills/simple-deck/)
---
## Ajouter un nouveau Design System
-Un design system est un seul fichier [`DESIGN.md`](design-systems/README.md)
+Un design system est un seul fichier [`DESIGN.md`](../../design-systems/README.md)
sous `design-systems//`. **Un fichier, pas de code.** Déposez-le,
redémarrez le daemon, le picker l'affiche dans sa catégorie.
@@ -206,7 +206,7 @@ design-systems/your-brand/
Le schéma à 9 sections est fixe : c'est ce que les Skill bodies cherchent. Le
premier H1 devient le label dans le picker (le préfixe `Design System Inspired by`
est retiré automatiquement), et la ligne `> Category: …` décide du groupe.
-Les catégories existantes sont listées dans [`design-systems/README.md`](design-systems/README.md) ;
+Les catégories existantes sont listées dans [`design-systems/README.md`](../../design-systems/README.md) ;
si votre marque ne rentre vraiment nulle part, vous pouvez en introduire une
nouvelle, mais **essayez d'abord les catégories existantes**.
@@ -229,7 +229,7 @@ nouvelle, mais **essayez d'abord les catégories existantes**.
imitez-la.
Les product systems livrés sont importés depuis [`VoltAgent/awesome-design-md`][acd2]
-via [`scripts/sync-design-systems.ts`](scripts/sync-design-systems.ts). Si votre
+via [`scripts/sync-design-systems.ts`](../../scripts/sync-design-systems.ts). Si votre
marque appartient à cet upstream, **envoyez d'abord la PR là-bas** : OD le
récupérera au prochain sync. Le dossier `design-systems/` sert aux systèmes qui
ne rentrent pas upstream, plus nos starters écrits à la main.
@@ -239,7 +239,7 @@ ne rentrent pas upstream, plus nos starters écrits à la main.
## Ajouter une nouvelle CLI de coding agent
Brancher un nouvel agent (par exemple une CLI `foo-coder`) revient à ajouter
-une entrée dans [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts) :
+une entrée dans [`apps/daemon/src/agents.ts`](../../apps/daemon/src/agents.ts) :
```javascript
{
@@ -255,7 +255,7 @@ une entrée dans [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts) :
C'est tout : le daemon la détecte dans le `PATH`, le picker l'affiche et le
chemin chat fonctionne. Si la CLI émet des **typed events** (comme
`--output-format stream-json` de Claude Code), ajoutez un parser dans
-[`apps/daemon/src/claude-stream.ts`](apps/daemon/src/claude-stream.ts) et mettez
+[`apps/daemon/src/claude-stream.ts`](../../apps/daemon/src/claude-stream.ts) et mettez
`streamFormat: 'claude-stream-json'`.
Critères de merge :
@@ -272,10 +272,10 @@ Critères de merge :
En mode API, le chat envoie `max_tokens` au provider upstream à chaque requête.
Le client web choisit ce nombre avec une lookup à trois niveaux dans
-[`apps/web/src/state/maxTokens.ts`](apps/web/src/state/maxTokens.ts) :
+[`apps/web/src/state/maxTokens.ts`](../../apps/web/src/state/maxTokens.ts) :
1. L'override explicite de l'utilisateur dans Settings, s'il existe.
-2. Sinon, la valeur par modèle dans [`apps/web/src/state/litellm-models.json`](apps/web/src/state/litellm-models.json),
+2. Sinon, la valeur par modèle dans [`apps/web/src/state/litellm-models.json`](../../apps/web/src/state/litellm-models.json),
un extrait vendored du `model_prices_and_context_window.json` de
[BerriAI/litellm][litellm] (MIT). Il couvre environ 2k modèles chat chez
Anthropic, OpenAI, DeepSeek, Groq, Together, Mistral, Gemini, Bedrock,
@@ -317,7 +317,7 @@ d'export et textes d'artifact générés par agent restent des limites connues,
sauf si une PR les inclut explicitement.
Pour les étapes détaillées d'ajout d'une locale (dictionnaire UI, README,
-language switcher, terminologie régionale), voir [`TRANSLATIONS.md`](TRANSLATIONS.md).
+language switcher, terminologie régionale), voir [`TRANSLATIONS.md`](../../TRANSLATIONS.md).
---
@@ -345,7 +345,7 @@ Au-delà de ça :
compatibility explicite.
- **Pas de nouvelle dépendance top-level** sans paragraphe dans la description
de la PR expliquant ce qu'elle apporte et combien d'octets elle coûte. La liste
- des dépendances dans [`package.json`](package.json) est petite volontairement.
+ des dépendances dans [`package.json`](../../package.json) est petite volontairement.
- **Lancez `pnpm typecheck`** avant de push. CI le lance aussi ; s'il échoue,
vous aurez un commentaire "please fix".
@@ -358,7 +358,7 @@ Au-delà de ça :
- **Titre impératif + scope.** `add dating-web skill`,
`fix daemon SSE backpressure when CLI hangs`, `docs: clarify .od layout`.
- **Utilisez le template de PR.** Remplissez chaque section de
- [`.github/pull_request_template.md`](.github/pull_request_template.md) — Why,
+ [`.github/pull_request_template.md`](../../.github/pull_request_template.md) — Why,
What users will see, Surface area, Screenshots (si UI), Bug fix verification
(si correctif), Validation. Les sections vides recevront un commentaire
« please fill in ».
@@ -400,7 +400,7 @@ afin de voir si la violation vient du modèle ou du prompt.
(préféré, car searchable pour la personne suivante).
- "Comment écrire un Skill qui fait X ?" → ouvrez une discussion. Nous y
répondrons et transformerons la réponse en ajout dans
- [`docs/skills-protocol.md`](docs/skills-protocol.md) si c'est un pattern manquant.
+ [`docs/skills-protocol.md`](../../docs/skills-protocol.md) si c'est un pattern manquant.
---
@@ -432,7 +432,7 @@ discussion avant d'écrire le code.
Si vous contribuez régulièrement et que vous souhaitez savoir à quoi
ressemble le chemin pour devenir Mainteneur, les règles se trouvent dans
-**[`MAINTAINERS.md`](MAINTAINERS.md)**. La version courte :
+**[`MAINTAINERS.md`](../../MAINTAINERS.md)**. La version courte :
- Un Mainteneur peut examiner, approuver et fermer des issues. Le bouton
de merge reste à la Core Team — votre approbation compte tout de même
@@ -446,7 +446,7 @@ ressemble le chemin pour devenir Mainteneur, les règles se trouvent dans
est facile et réversible (Emeritus → retour quand la vie se calme).
- Tous les seuils, le flux de nomination, les règles de retrait et la
dérogation pour les projets en phase initiale se trouvent dans
- [`MAINTAINERS.md`](MAINTAINERS.md). Lisez ce document si l'un des
+ [`MAINTAINERS.md`](../../MAINTAINERS.md). Lisez ce document si l'un des
points ci-dessus vous intéresse.
Le tl;dr : livrez de bonnes PR, faites des reviews réfléchies, traînez
@@ -461,8 +461,8 @@ se fait tout seul.
## Licence
En contribuant, vous acceptez que votre contribution soit licenciée sous la
-[licence Apache-2.0](LICENSE) de ce repo, à l'exception des fichiers dans
-[`skills/guizang-ppt/`](skills/guizang-ppt/), qui conservent leur licence MIT
+[licence Apache-2.0](../../LICENSE) de ce repo, à l'exception des fichiers dans
+[`skills/guizang-ppt/`](../../skills/guizang-ppt/), qui conservent leur licence MIT
originale et l'attribution d'auteur à [op7418](https://github.com/op7418).
[skill]: https://docs.anthropic.com/en/docs/claude-code/skills
diff --git a/CONTRIBUTING.ja-JP.md b/docs/i18n/CONTRIBUTING.ja-JP.md
similarity index 80%
rename from CONTRIBUTING.ja-JP.md
rename to docs/i18n/CONTRIBUTING.ja-JP.md
index 14d748ab15..be4daa4705 100644
--- a/CONTRIBUTING.ja-JP.md
+++ b/docs/i18n/CONTRIBUTING.ja-JP.md
@@ -4,7 +4,7 @@
このガイドでは、各種コントリビューションの対象場所と、PR がマージされるために満たすべき基準を正確に説明します。
-English · Português (Brasil) · Deutsch · Français · 简体中文 · 日本語
+English · Português (Brasil) · Deutsch · Français · 简体中文 · 日本語
---
@@ -12,9 +12,9 @@
| やりたいこと | 実際に追加するもの | 配置場所 | 規模 |
|---|---|---|---|
-| OD に新しい種類の artifact をレンダリングさせる(請求書、iOS Settings 画面、ワンページャー…) | **Skill** | [`skills//`](skills/) | フォルダ 1 つ、約 2 ファイル |
-| OD に新しいブランドのビジュアル言語を話させる | **Design System** | [`design-systems//DESIGN.md`](design-systems/) | Markdown ファイル 1 つ |
-| 新しい coding-agent CLI を接続する | **Agent adapter** | [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts) | 1 つの配列に約 10 行 |
+| OD に新しい種類の artifact をレンダリングさせる(請求書、iOS Settings 画面、ワンページャー…) | **Skill** | [`skills//`](../../skills/) | フォルダ 1 つ、約 2 ファイル |
+| OD に新しいブランドのビジュアル言語を話させる | **Design System** | [`design-systems//DESIGN.md`](../../design-systems/) | Markdown ファイル 1 つ |
+| 新しい coding-agent CLI を接続する | **Agent adapter** | [`apps/daemon/src/agents.ts`](../../apps/daemon/src/agents.ts) | 1 つの配列に約 10 行 |
| 機能追加、バグ修正、[`open-codesign`][ocod] から UX パターンを移植 | コード | `apps/web/src/`、`apps/daemon/` | 通常の PR |
| ドキュメント改善、Français / Deutsch / 中文 への翻訳、タイポ修正 | ドキュメント | `README.md`、`README.fr.md`、`README.de.md`、`README.zh-CN.md`、`docs/`、`QUICKSTART.md` | PR 1 つ |
@@ -24,7 +24,7 @@
## ローカル環境セットアップ
-完全なセットアップ手順は [`QUICKSTART.md`](QUICKSTART.md) にあります。コントリビューター向けの要約:
+完全なセットアップ手順は [`QUICKSTART.md`](../../QUICKSTART.md) にあります。コントリビューター向けの要約:
```bash
git clone https://github.com/nexu-io/open-design.git
@@ -36,7 +36,7 @@ pnpm typecheck # tsc -b --noEmit
pnpm --filter @open-design/web build # 必要に応じて web パッケージをビルド
```
-Node `~24` と pnpm `10.33.x` が必要です。`nvm` / `fnm` はオプション。使用する場合は `nvm install 24 && nvm use 24` または `fnm install 24 && fnm use 24` を実行してください。macOS、Linux、WSL2 が主要プラットフォームです。Windows ネイティブもサポートされています — 一般的なセットアップ時の落とし穴については [`docs/windows-troubleshooting.md`](docs/windows-troubleshooting.md) を参照してください。
+Node `~24` と pnpm `10.33.x` が必要です。`nvm` / `fnm` はオプション。使用する場合は `nvm install 24 && nvm use 24` または `fnm install 24 && fnm use 24` を実行してください。macOS、Linux、WSL2 が主要プラットフォームです。Windows ネイティブもサポートされています — 一般的なセットアップ時の落とし穴については [`docs/windows-troubleshooting.md`](../../docs/windows-troubleshooting.md) を参照してください。
OD 自体の開発に agent CLI は `PATH` 上に不要です — daemon は「no agents found」と表示し、**Anthropic API · BYOK** パスにフォールバックします。このパスが最も高速な開発ループです。
@@ -44,7 +44,7 @@ OD 自体の開発に agent CLI は `PATH` 上に不要です — daemon は「n
## 新しい Skill の追加
-Skill は [`skills/`](skills/) 配下のフォルダで、ルートに `SKILL.md` を持ち、Claude Code の [`SKILL.md` 規約][skill]とオプションの `od:` 拡張に従います。**登録ステップは不要です。** フォルダを配置して daemon を再起動すれば、ピッカーに表示されます。
+Skill は [`skills/`](../../skills/) 配下のフォルダで、ルートに `SKILL.md` を持ち、Claude Code の [`SKILL.md` 規約][skill]とオプションの `od:` 拡張に従います。**登録ステップは不要です。** フォルダを配置して daemon を再起動すれば、ピッカーに表示されます。
### Skill フォルダ構成
@@ -93,7 +93,7 @@ od:
本文はエージェントが従うべきワークフローを記述する自由形式の Markdown…
```
-型付き入力、スライダーパラメータ、ケイパビリティゲーティングの完全な文法は [`docs/skills-protocol.md`](docs/skills-protocol.md) にあります。
+型付き入力、スライダーパラメータ、ケイパビリティゲーティングの完全な文法は [`docs/skills-protocol.md`](../../docs/skills-protocol.md) にあります。
### 新しい Skill のマージ基準
@@ -102,7 +102,7 @@ Skill はユーザーに直接見える面であるため、厳しく審査し
1. **実際の `example.html` を同梱すること。** 手作りで、ディスクから直接開けて、デザイナーが実際に納品するレベルの見た目であること。Lorem ipsum や `` のプレースホルダー hero は不可。自分で example を作れないなら、その Skill はまだ準備できていません。
2. **本文で anti-AI-slop チェックリストをパスすること。** 紫グラデーション、汎用 emoji アイコン、左ボーダー付き角丸カード、Inter を *display* フォントとして使用、架空の統計データは不可。完全なリストは README の **anti-AI-slop 機構**セクションを参照。
3. **正直なプレースホルダー。** エージェントが実数値を持たない場合は `—` またはラベル付きグレーブロックを書き、「10 倍高速」とは書かない。
-4. **`references/checklist.md` を持つこと。** 少なくとも P0 ゲート(エージェントが `` を出力する前にパスすべき項目)を含む。フォーマットは [`skills/guizang-ppt/references/checklist.md`](skills/guizang-ppt/) または [`skills/dating-web/references/checklist.md`](skills/dating-web/) を参考にしてください。
+4. **`references/checklist.md` を持つこと。** 少なくとも P0 ゲート(エージェントが `` を出力する前にパスすべき項目)を含む。フォーマットは [`skills/guizang-ppt/references/checklist.md`](../../skills/guizang-ppt/) または [`skills/dating-web/references/checklist.md`](../../skills/dating-web/) を参考にしてください。
5. **スクリーンショットを追加。** Skill が featured の場合、`docs/screenshots/skills/.png` に配置。PNG、約 1024×640 Retina、実際の `example.html` からズームアウトしたブラウザ縮尺でキャプチャ。
6. **単一の自己完結フォルダであること。** 他の Skill が既に使用しているもの以外の CDN インポート禁止。ライセンスのないフォント禁止。約 250 KB を超える画像禁止。
@@ -110,16 +110,16 @@ Skill はユーザーに直接見える面であるため、厳しく審査し
### 同梱済み Skill — 模倣するものを選ぶ
-- ビジュアルショーケース、単一画面プロトタイプ:[`skills/dating-web/`](skills/dating-web/)、[`skills/digital-eguide/`](skills/digital-eguide/)
-- マルチフレームモバイルフロー:[`skills/mobile-onboarding/`](skills/mobile-onboarding/)、[`skills/gamified-app/`](skills/gamified-app/)
-- ドキュメント / テンプレート(Design System 不要):[`skills/pm-spec/`](skills/pm-spec/)、[`skills/weekly-update/`](skills/weekly-update/)
-- Deck モード:[`skills/guizang-ppt/`](skills/guizang-ppt/)([op7418/guizang-ppt-skill][guizang] からそのまま同梱)および [`skills/simple-deck/`](skills/simple-deck/)
+- ビジュアルショーケース、単一画面プロトタイプ:[`skills/dating-web/`](../../skills/dating-web/)、[`skills/digital-eguide/`](../../skills/digital-eguide/)
+- マルチフレームモバイルフロー:[`skills/mobile-onboarding/`](../../skills/mobile-onboarding/)、[`skills/gamified-app/`](../../skills/gamified-app/)
+- ドキュメント / テンプレート(Design System 不要):[`skills/pm-spec/`](../../skills/pm-spec/)、[`skills/weekly-update/`](../../skills/weekly-update/)
+- Deck モード:[`skills/guizang-ppt/`](../../skills/guizang-ppt/)([op7418/guizang-ppt-skill][guizang] からそのまま同梱)および [`skills/simple-deck/`](../../skills/simple-deck/)
---
## 新しい Design System の追加
-Design System は `design-systems//` 配下の単一の [`DESIGN.md`](design-systems/README.md) ファイルです。**ファイル 1 つ、コード不要。** 配置して daemon を再起動すれば、ピッカーにカテゴリ別にグループ化されて表示されます。
+Design System は `design-systems//` 配下の単一の [`DESIGN.md`](../../design-systems/README.md) ファイルです。**ファイル 1 つ、コード不要。** 配置して daemon を再起動すれば、ピッカーにカテゴリ別にグループ化されて表示されます。
### Design System フォルダ構成
@@ -154,7 +154,7 @@ design-systems/your-brand/
## 9. Anti-patterns
```
-9 セクションスキーマは固定です — Skill 本文の grep 対象だからです。最初の H1 がピッカーのラベルになり(`Design System Inspired by` プレフィックスは自動的に除去)、`> Category: …` 行がグループを決定します。既存のカテゴリは [`design-systems/README.md`](design-systems/README.md) に記載されています。ブランドが本当にどのカテゴリにも合わない場合は新しいカテゴリを導入できますが、**まず既存カテゴリに合わないか試してください**。
+9 セクションスキーマは固定です — Skill 本文の grep 対象だからです。最初の H1 がピッカーのラベルになり(`Design System Inspired by` プレフィックスは自動的に除去)、`> Category: …` 行がグループを決定します。既存のカテゴリは [`design-systems/README.md`](../../design-systems/README.md) に記載されています。ブランドが本当にどのカテゴリにも合わない場合は新しいカテゴリを導入できますが、**まず既存カテゴリに合わないか試してください**。
### 新しい Design System のマージ基準
@@ -164,13 +164,13 @@ design-systems/your-brand/
4. **マーケティングの美辞麗句は不要。** ブランドのタグラインはデザイントークンではありません。削除してください。
5. **スラッグは ASCII を使用** — `linear.app` は `linear-app`、`x.ai` は `x-ai` になります。インポート済みの 69 システムがこの規約に従っています。それに合わせてください。
-出荷している 69 のプロダクトシステムは [`VoltAgent/awesome-design-md`][acd2] から [`scripts/sync-design-systems.ts`](scripts/sync-design-systems.ts) 経由でインポートされています。ブランドが上流に属する場合は、**まずそちらに PR を送ってください** — 次の sync で自動的に反映されます。`design-systems/` フォルダは上流に合わないシステムと、手作りの 2 つのスターター用です。
+出荷している 69 のプロダクトシステムは [`VoltAgent/awesome-design-md`][acd2] から [`scripts/sync-design-systems.ts`](../../scripts/sync-design-systems.ts) 経由でインポートされています。ブランドが上流に属する場合は、**まずそちらに PR を送ってください** — 次の sync で自動的に反映されます。`design-systems/` フォルダは上流に合わないシステムと、手作りの 2 つのスターター用です。
---
## 新しい coding-agent CLI の追加
-新しいエージェント(例:`foo-coder` CLI)の接続は [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts) にエントリを 1 つ追加するだけです:
+新しいエージェント(例:`foo-coder` CLI)の接続は [`apps/daemon/src/agents.ts`](../../apps/daemon/src/agents.ts) にエントリを 1 つ追加するだけです:
```javascript
{
@@ -183,7 +183,7 @@ design-systems/your-brand/
}
```
-これだけです — daemon が `PATH` 上で検出し、ピッカーに表示され、チャットパスが動作します。CLI が**型付きイベント**を出力する場合(Claude Code の `--output-format stream-json` のように)、[`apps/daemon/src/claude-stream.ts`](apps/daemon/src/claude-stream.ts) にパーサーを追加して `streamFormat: 'claude-stream-json'` を設定してください。
+これだけです — daemon が `PATH` 上で検出し、ピッカーに表示され、チャットパスが動作します。CLI が**型付きイベント**を出力する場合(Claude Code の `--output-format stream-json` のように)、[`apps/daemon/src/claude-stream.ts`](../../apps/daemon/src/claude-stream.ts) にパーサーを追加して `streamFormat: 'claude-stream-json'` を設定してください。
マージ基準:
@@ -204,7 +204,7 @@ design-systems/your-brand/
- **ナレーションしない。** `// import the module`、`// loop through items` は不要。コードが明らかに読める場合、コメントはノイズです。コメントはコードで表現できない非自明な意図や制約のために残してください。
- **TypeScript** は `apps/web/src/` 用。daemon(`apps/daemon/`)は型が重要な箇所で JSDoc 付きのプレーン ESM JavaScript です — そのまま維持してください。
-- **新しいトップレベル依存関係は追加しない**(PR の説明で得られるものと出荷バイト数について 1 段落の説明がない限り)。[`package.json`](package.json) の依存関係リストは意図的に小さく保っています。
+- **新しいトップレベル依存関係は追加しない**(PR の説明で得られるものと出荷バイト数について 1 段落の説明がない限り)。[`package.json`](../../package.json) の依存関係リストは意図的に小さく保っています。
- **プッシュ前に `pnpm typecheck` を実行。** CI で実行されます。失敗すると「please fix」コメントが付きます。
---
@@ -213,7 +213,7 @@ design-systems/your-brand/
- **PR 1 つにつき 1 つの関心事。** Skill の追加 + パーサーのリファクタリング + 依存関係のバンプは 3 つの PR です。
- **タイトルは命令形 + スコープ。** `add dating-web skill`、`fix daemon SSE backpressure when CLI hangs`、`docs: clarify .od layout`。
-- **PR テンプレートを使用する。** [`.github/pull_request_template.md`](.github/pull_request_template.md) の各セクション(Why、What users will see、Surface area、Screenshots(UI の場合)、Bug fix verification(バグ修正の場合)、Validation)をすべて埋めてください。空欄のセクションには "please fill in" のコメントが付きます。
+- **PR テンプレートを使用する。** [`.github/pull_request_template.md`](../../.github/pull_request_template.md) の各セクション(Why、What users will see、Surface area、Screenshots(UI の場合)、Bug fix verification(バグ修正の場合)、Validation)をすべて埋めてください。空欄のセクションには "please fill in" のコメントが付きます。
- **本文は「なぜ」を説明。** 「何をするか」は通常 diff から明らかです。「なぜこれが必要か」はほとんどの場合そうではありません。
- **issue がある場合は参照。** ない場合で、PR が自明でないなら、先に issue を作成して変更が求められていることを合意してから時間を費やしてください。
- **レビュー中にスカッシュしない。** fixup をプッシュしてください。マージ時にスカッシュします。
@@ -240,7 +240,7 @@ CLA は求めません。Apache-2.0 でカバーされます。あなたのコ
## 質問する
- アーキテクチャの質問、設計の質問、「これはバグか使い方の問題か」→ [GitHub Discussions](https://github.com/nexu-io/open-design/discussions)(推奨 — 次の人が検索できます)。
-- 「X をする Skill はどう書けばいい?」→ Discussion を作成してください。回答し、不足しているパターンであれば [`docs/skills-protocol.md`](docs/skills-protocol.md) に反映します。
+- 「X をする Skill はどう書けばいい?」→ Discussion を作成してください。回答し、不足しているパターンであれば [`docs/skills-protocol.md`](../../docs/skills-protocol.md) に反映します。
---
@@ -261,12 +261,12 @@ CLA は求めません。Apache-2.0 でカバーされます。あなたのコ
## メンテナになるには
-継続的にコントリビュートしてきた方で、メンテナになるまでの道のりを知りたい場合、ルールは **[`MAINTAINERS.md`](MAINTAINERS.md)** に記載されています。要点は以下のとおりです:
+継続的にコントリビュートしてきた方で、メンテナになるまでの道のりを知りたい場合、ルールは **[`MAINTAINERS.md`](../../MAINTAINERS.md)** に記載されています。要点は以下のとおりです:
- メンテナは issue のレビュー、承認、クローズが可能です。マージボタンはコアチームが保持しますが、あなたの承認はマージに必要な承認としてカウントされます。
- 基準は **merged PRs が 20 件以上**、加えて公開されているアカウント品質チェック(アンチボット、アンチソックパペット)、さらにコアチームによるコントリビューション品質の判断です。応募フォームはなく、コアチームが内部で候補者を挙げて声をかけます。
- **クォータ、SLAs、固定任期はありません。** ステップダウンは容易かつ可逆的です(Emeritus → 生活が落ち着いたら復帰)。
-- すべての閾値、推薦フロー、ステップダウンルール、初期プロジェクトの免除規定は [`MAINTAINERS.md`](MAINTAINERS.md) に記載されています。上記のいずれかに興味があれば、そのドキュメントを読んでください。
+- すべての閾値、推薦フロー、ステップダウンルール、初期プロジェクトの免除規定は [`MAINTAINERS.md`](../../MAINTAINERS.md) に記載されています。上記のいずれかに興味があれば、そのドキュメントを読んでください。
tl;dr:良い PR を出し、丁寧にレビューし、[Discussions][discussions] / [Discord][discord] に顔を出していれば、あとは自然と道が開けます。
@@ -277,7 +277,7 @@ tl;dr:良い PR を出し、丁寧にレビューし、[Discussions][discussio
## ライセンス
-コントリビューションすることにより、あなたのコントリビューションがこのリポジトリの [Apache-2.0 License](LICENSE) の下でライセンスされることに同意するものとします。ただし、[`skills/guizang-ppt/`](skills/guizang-ppt/) 内のファイルは元の MIT ライセンスと [op7418](https://github.com/op7418) の帰属表示を保持します。
+コントリビューションすることにより、あなたのコントリビューションがこのリポジトリの [Apache-2.0 License](../../LICENSE) の下でライセンスされることに同意するものとします。ただし、[`skills/guizang-ppt/`](../../skills/guizang-ppt/) 内のファイルは元の MIT ライセンスと [op7418](https://github.com/op7418) の帰属表示を保持します。
[skill]: https://docs.anthropic.com/en/docs/claude-code/skills
[guizang]: https://github.com/op7418/guizang-ppt-skill
diff --git a/CONTRIBUTING.ko.md b/docs/i18n/CONTRIBUTING.ko.md
similarity index 83%
rename from CONTRIBUTING.ko.md
rename to docs/i18n/CONTRIBUTING.ko.md
index f1cea97fa0..9e6de58dad 100644
--- a/CONTRIBUTING.ko.md
+++ b/docs/i18n/CONTRIBUTING.ko.md
@@ -12,9 +12,9 @@
| 하고 싶은 일 | 실제로 추가하는 것 | 위치 | 규모 |
|---|---|---|---|
-| OD가 새로운 종류의 artifact를 렌더링하게 만들기 (청구서, iOS 설정 화면, 한 장짜리 문서 등) | **Skill** | [`skills//`](skills/) | 폴더 하나, 파일 약 2개 |
-| OD가 새 브랜드의 비주얼 언어를 구사하게 만들기 | **Design System** | [`design-systems//DESIGN.md`](design-systems/) | Markdown 파일 하나 |
-| 새 coding-agent CLI 연결하기 | **Agent adapter** | [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts) | 배열 하나에 약 10줄 |
+| OD가 새로운 종류의 artifact를 렌더링하게 만들기 (청구서, iOS 설정 화면, 한 장짜리 문서 등) | **Skill** | [`skills//`](../../skills/) | 폴더 하나, 파일 약 2개 |
+| OD가 새 브랜드의 비주얼 언어를 구사하게 만들기 | **Design System** | [`design-systems//DESIGN.md`](../../design-systems/) | Markdown 파일 하나 |
+| 새 coding-agent CLI 연결하기 | **Agent adapter** | [`apps/daemon/src/agents.ts`](../../apps/daemon/src/agents.ts) | 배열 하나에 약 10줄 |
| 기능 추가, 버그 수정, [`open-codesign`][ocod]에서 UX 패턴 가져오기 | 코드 | `apps/web/src/`, `apps/daemon/` | 일반 PR |
| 문서 개선, 일부 섹션을 Français / Deutsch / 中文로 번역, 오타 수정 | 문서 | `README.md`, `README.fr.md`, `README.de.md`, `README.zh-CN.md`, `docs/`, `QUICKSTART.md` | PR 한 건 |
@@ -36,7 +36,7 @@ pnpm typecheck # tsc -b --noEmit
pnpm --filter @open-design/web build # 필요할 때 web 패키지 빌드
```
-Node `~24`와 pnpm `10.33.x`가 필요합니다. `nvm`이나 `fnm`은 선택 사항입니다. Node를 그렇게 관리하는 게 편하다면 `nvm install 24 && nvm use 24` 또는 `fnm install 24 && fnm use 24`를 실행하세요. macOS, Linux, WSL2가 주요 지원 환경입니다. Windows 네이티브도 지원합니다. 흔히 겪는 설정 문제는 [`docs/windows-troubleshooting.md`](docs/windows-troubleshooting.md)를 참고하세요.
+Node `~24`와 pnpm `10.33.x`가 필요합니다. `nvm`이나 `fnm`은 선택 사항입니다. Node를 그렇게 관리하는 게 편하다면 `nvm install 24 && nvm use 24` 또는 `fnm install 24 && fnm use 24`를 실행하세요. macOS, Linux, WSL2가 주요 지원 환경입니다. Windows 네이티브도 지원합니다. 흔히 겪는 설정 문제는 [`docs/windows-troubleshooting.md`](../../docs/windows-troubleshooting.md)를 참고하세요.
## Docker 설정
@@ -101,9 +101,9 @@ OPEN_DESIGN_IMAGE=docker.io/vanjayak/open-design:latest
## 새 Skill 추가하기
-skill은 [`skills/`](skills/) 아래에 두는 폴더로, 루트에 `SKILL.md`를 두고 Claude Code의 [`SKILL.md` 규약][skill]에 우리의 선택적 `od:` 확장을 더한 형태입니다. **등록 절차는 없습니다.** 폴더를 넣고 daemon을 재시작하면 picker에 바로 나타납니다.
+skill은 [`skills/`](../../skills/) 아래에 두는 폴더로, 루트에 `SKILL.md`를 두고 Claude Code의 [`SKILL.md` 규약][skill]에 우리의 선택적 `od:` 확장을 더한 형태입니다. **등록 절차는 없습니다.** 폴더를 넣고 daemon을 재시작하면 picker에 바로 나타납니다.
-### → 전체 가이드는 [`docs/skills-contributing.md`](docs/skills-contributing.md)를 보세요
+### → 전체 가이드는 [`docs/skills-contributing.md`](../../docs/skills-contributing.md)를 보세요
이 문서가 다음 내용을 단계별로 안내합니다.
@@ -115,13 +115,13 @@ skill은 [`skills/`](skills/) 아래에 두는 폴더로, 루트에 `SKILL.md`
- **PR 설명 템플릿** — PR 본문에 붙여넣고 채우면 됩니다.
- **자주 거절되는 패턴** — 최근 실제로 사용한 거절 사유와 구체적인 예시.
-프로토콜 명세(전체 frontmatter 문법 — 타입이 지정된 입력, 슬라이더 파라미터, craft 참조, 테스트 프리미티브)는 [`docs/skills-protocol.md`](docs/skills-protocol.md)에 별도로 정리되어 있습니다.
+프로토콜 명세(전체 frontmatter 문법 — 타입이 지정된 입력, 슬라이더 파라미터, craft 참조, 테스트 프리미티브)는 [`docs/skills-protocol.md`](../../docs/skills-protocol.md)에 별도로 정리되어 있습니다.
---
## 새 Design System 추가하기
-design system은 `design-systems//` 아래에 두는 [`DESIGN.md`](design-systems/README.md) 파일 하나입니다. **파일 하나뿐, 코드는 없습니다.** 넣고 daemon을 재시작하면 picker에 카테고리별로 묶여 나타납니다.
+design system은 `design-systems//` 아래에 두는 [`DESIGN.md`](../../design-systems/README.md) 파일 하나입니다. **파일 하나뿐, 코드는 없습니다.** 넣고 daemon을 재시작하면 picker에 카테고리별로 묶여 나타납니다.
### design system 폴더 구성
@@ -156,7 +156,7 @@ design-systems/your-brand/
## 9. Anti-patterns
```
-9개 섹션 구조는 고정입니다. skill 본문이 이 구조를 grep으로 찾기 때문입니다. 첫 H1이 picker 라벨이 되고(`Design System Inspired by` 접두사는 자동으로 제거됩니다), `> Category: …` 줄이 어느 그룹에 들어갈지 결정합니다. 기존 카테고리는 [`design-systems/README.md`](design-systems/README.md)에 정리되어 있습니다. 브랜드가 정말 어디에도 안 맞으면 새 카테고리를 만들 수 있지만, **먼저 기존 카테고리부터 검토하세요**.
+9개 섹션 구조는 고정입니다. skill 본문이 이 구조를 grep으로 찾기 때문입니다. 첫 H1이 picker 라벨이 되고(`Design System Inspired by` 접두사는 자동으로 제거됩니다), `> Category: …` 줄이 어느 그룹에 들어갈지 결정합니다. 기존 카테고리는 [`design-systems/README.md`](../../design-systems/README.md)에 정리되어 있습니다. 브랜드가 정말 어디에도 안 맞으면 새 카테고리를 만들 수 있지만, **먼저 기존 카테고리부터 검토하세요**.
### 새 design system 머지 기준
@@ -166,13 +166,13 @@ design-systems/your-brand/
4. **마케팅 문구는 빼세요.** 브랜드 슬로건은 design 토큰이 아닙니다. 잘라내세요.
5. **slug는 ASCII로 작성하세요.** `linear.app`은 `linear-app`이 되고 `x.ai`는 `x-ai`가 됩니다. 이미 가져온 69개 시스템이 이 규칙을 따르니 그대로 맞추세요.
-우리가 제공하는 69개 제품 시스템은 [`scripts/sync-design-systems.ts`](scripts/sync-design-systems.ts)를 통해 [`VoltAgent/awesome-design-md`][acd2]에서 가져온 것입니다. 브랜드가 그 upstream에 속한다면 **그쪽에 먼저 PR을 보내세요.** 다음 동기화 때 자동으로 반영됩니다. `design-systems/` 폴더는 upstream에 맞지 않는 시스템과, 우리가 직접 작성한 스타터 2개를 위한 곳입니다.
+우리가 제공하는 69개 제품 시스템은 [`scripts/sync-design-systems.ts`](../../scripts/sync-design-systems.ts)를 통해 [`VoltAgent/awesome-design-md`][acd2]에서 가져온 것입니다. 브랜드가 그 upstream에 속한다면 **그쪽에 먼저 PR을 보내세요.** 다음 동기화 때 자동으로 반영됩니다. `design-systems/` 폴더는 upstream에 맞지 않는 시스템과, 우리가 직접 작성한 스타터 2개를 위한 곳입니다.
---
## 새 coding-agent CLI 추가하기
-새 agent(예: 어느 신생 업체의 `foo-coder` CLI)를 연결하는 일은 [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts)에 항목 하나를 추가하는 것입니다.
+새 agent(예: 어느 신생 업체의 `foo-coder` CLI)를 연결하는 일은 [`apps/daemon/src/agents.ts`](../../apps/daemon/src/agents.ts)에 항목 하나를 추가하는 것입니다.
```javascript
{
@@ -185,7 +185,7 @@ design-systems/your-brand/
}
```
-이게 전부입니다. daemon이 `PATH`에서 감지하고, picker에 나타나며, 채팅 경로가 동작합니다. CLI가 (Claude Code의 `--output-format stream-json`처럼) **타입이 지정된 이벤트**를 내보낸다면 [`apps/daemon/src/claude-stream.ts`](apps/daemon/src/claude-stream.ts)에 파서를 연결하고 `streamFormat: 'claude-stream-json'`으로 설정하세요.
+이게 전부입니다. daemon이 `PATH`에서 감지하고, picker에 나타나며, 채팅 경로가 동작합니다. CLI가 (Claude Code의 `--output-format stream-json`처럼) **타입이 지정된 이벤트**를 내보낸다면 [`apps/daemon/src/claude-stream.ts`](../../apps/daemon/src/claude-stream.ts)에 파서를 연결하고 `streamFormat: 'claude-stream-json'`으로 설정하세요.
머지 기준:
@@ -197,10 +197,10 @@ design-systems/your-brand/
## 모델 `max_tokens` 메타데이터 갱신하기
-API 모드 채팅은 매 요청마다 upstream provider에 `max_tokens`를 보냅니다. web 클라이언트는 [`apps/web/src/state/maxTokens.ts`](apps/web/src/state/maxTokens.ts)의 3단계 조회로 이 값을 정합니다.
+API 모드 채팅은 매 요청마다 upstream provider에 `max_tokens`를 보냅니다. web 클라이언트는 [`apps/web/src/state/maxTokens.ts`](../../apps/web/src/state/maxTokens.ts)의 3단계 조회로 이 값을 정합니다.
1. 설정에서 사용자가 직접 지정한 값(있는 경우).
-2. 없으면 [`apps/web/src/state/litellm-models.json`](apps/web/src/state/litellm-models.json)의 모델별 기본값. 이는 [BerriAI/litellm][litellm]의 `model_prices_and_context_window.json`(MIT)에서 잘라온 vendored 데이터로, Anthropic, OpenAI, DeepSeek, Groq, Together, Mistral, Gemini, Bedrock, Vertex, OpenRouter 등 약 2천 개의 채팅 모델을 포함합니다.
+2. 없으면 [`apps/web/src/state/litellm-models.json`](../../apps/web/src/state/litellm-models.json)의 모델별 기본값. 이는 [BerriAI/litellm][litellm]의 `model_prices_and_context_window.json`(MIT)에서 잘라온 vendored 데이터로, Anthropic, OpenAI, DeepSeek, Groq, Together, Mistral, Gemini, Bedrock, Vertex, OpenRouter 등 약 2천 개의 채팅 모델을 포함합니다.
3. 그래도 없으면 `FALLBACK_MAX_TOKENS = 8192`.
새로 출시된 모델을 반영하려면 vendored JSON을 다시 생성하세요.
@@ -221,7 +221,7 @@ node --experimental-strip-types scripts/sync-litellm-models.ts
독일어는 격식 있는 `Sie`를 씁니다. OD는 1인 창작자, 에이전시, 엔지니어링 팀이 뒤섞인 사용자층에 말을 걸기 때문입니다. 비격식 `du` 어조가 더 잘 맞는다는 프로젝트 피드백이 나오기 전까지는, 격식 독일어가 가장 무난한 기본값입니다. 로케일 PR은 UI 요소, 핵심 문서, 그리고 `apps/web/src/i18n/content.ts`의 표시 전용 갤러리 메타데이터를 번역해야 하지만, `skills/`나 `design-systems/`, 또는 agent가 실행하는 프롬프트 본문은 번역하면 안 됩니다. 이런 원본 프롬프트는 워크플로우 입력으로 관리되며, 원본 언어를 하나로 유지해야 로케일마다 프롬프트 QA가 늘어나는 일을 막을 수 있습니다. skill, design system, 프롬프트 템플릿을 추가하거나 이름을 바꿀 때는 독일어 표시 메타데이터를 갱신하고 `pnpm --filter @open-design/web test`를 실행하세요. 독일어 표시 항목이 누락되면 `content.test.ts`가 실패합니다. daemon 오류, export 파일명, agent가 생성한 artifact 텍스트는 PR이 명시적으로 범위에 넣지 않는 한 알려진 한계로 둡니다.
-새 로케일을 추가하는 단계별 안내(UI 사전, README, 언어 전환기, 지역별 용어)는 [`TRANSLATIONS.md`](TRANSLATIONS.md)를 참고하세요.
+새 로케일을 추가하는 단계별 안내(UI 사전, README, 언어 전환기, 지역별 용어)는 [`TRANSLATIONS.md`](../../TRANSLATIONS.md)를 참고하세요.
---
@@ -236,7 +236,7 @@ node --experimental-strip-types scripts/sync-litellm-models.ts
- **설명조 주석은 쓰지 마세요.** `// import the module`이나 `// loop through items` 같은 것 말입니다. 코드만 봐도 명백하다면 그 주석은 잡음입니다. 주석은 코드로 표현할 수 없는 의도나 제약에만 쓰세요.
- **`apps/web/src/`는 TypeScript를 씁니다.** daemon(`apps/daemon/`)은 타입이 중요한 곳에 JSDoc을 붙인 순수 ESM JavaScript입니다. 그대로 유지하세요.
-- **새 최상위 의존성을 추가하지 마세요.** 추가한다면 얻는 것과 늘어나는 번들 크기를 PR 설명에 한 단락으로 적으세요. [`package.json`](package.json)의 의존성 목록은 일부러 작게 둡니다.
+- **새 최상위 의존성을 추가하지 마세요.** 추가한다면 얻는 것과 늘어나는 번들 크기를 PR 설명에 한 단락으로 적으세요. [`package.json`](../../package.json)의 의존성 목록은 일부러 작게 둡니다.
- **푸시 전에 `pnpm typecheck`를 실행하세요.** CI에서도 돌립니다. 실패하면 "고쳐주세요" 코멘트를 받게 됩니다.
---
@@ -245,7 +245,7 @@ node --experimental-strip-types scripts/sync-litellm-models.ts
- **PR 하나에 관심사 하나.** skill 추가 + 파서 리팩터링 + 의존성 버전 업은 PR 세 개입니다.
- **제목은 명령형 + 범위.** `add dating-web skill`, `fix daemon SSE backpressure when CLI hangs`, `docs: clarify .od layout`처럼 씁니다.
-- **PR 템플릿을 사용하세요.** [`.github/pull_request_template.md`](.github/pull_request_template.md)의 모든 섹션(Why, What users will see, Surface area, Screenshots(UI인 경우), Bug fix verification(버그 수정인 경우), Validation)을 채우세요. 빈 섹션에는 "채워주세요" 답변이 달립니다.
+- **PR 템플릿을 사용하세요.** [`.github/pull_request_template.md`](../../.github/pull_request_template.md)의 모든 섹션(Why, What users will see, Surface area, Screenshots(UI인 경우), Bug fix verification(버그 수정인 경우), Validation)을 채우세요. 빈 섹션에는 "채워주세요" 답변이 달립니다.
- **본문에는 이유를 적으세요.** "이게 뭘 하는지"는 보통 diff만 봐도 알 수 있습니다. 정작 드러나지 않는 것은 "이게 왜 있어야 하는지"입니다.
- **issue가 있다면 연결하세요.** issue가 없고 PR이 사소하지 않다면 먼저 issue를 열어주세요. 시간을 쏟기 전에 그 변경을 원하는지 합의할 수 있습니다.
- **리뷰 중에는 squash하지 마세요.** fixup 커밋을 푸시하면 머지할 때 우리가 squash합니다.
@@ -272,7 +272,7 @@ CLA는 요구하지 않습니다. Apache-2.0으로 충분하며, 당신의 기
## 질문하기
- 아키텍처 질문, 설계 질문, "이게 버그인지 오용인지" → [GitHub Discussions](https://github.com/nexu-io/open-design/discussions) (권장 — 다음 사람이 검색할 수 있습니다).
-- "X를 하는 skill을 어떻게 작성하나요" → discussion을 열어주세요. 답해드리고, 빠져 있던 패턴이라면 그 답을 [`docs/skills-protocol.md`](docs/skills-protocol.md)에 정리합니다.
+- "X를 하는 skill을 어떻게 작성하나요" → discussion을 열어주세요. 답해드리고, 빠져 있던 패턴이라면 그 답을 [`docs/skills-protocol.md`](../../docs/skills-protocol.md)에 정리합니다.
---
@@ -308,7 +308,7 @@ CLA는 요구하지 않습니다. Apache-2.0으로 충분하며, 당신의 기
## 라이선스
-기여하면, 당신의 기여가 이 저장소의 [Apache-2.0 License](LICENSE)를 따른다는 데 동의하는 것입니다. 단 [`design-templates/guizang-ppt/`](design-templates/guizang-ppt/) 안의 파일은 예외로, 원래의 MIT 라이선스와 [op7418](https://github.com/op7418)에 대한 저작자 표기를 그대로 유지합니다.
+기여하면, 당신의 기여가 이 저장소의 [Apache-2.0 License](../../LICENSE)를 따른다는 데 동의하는 것입니다. 단 [`design-templates/guizang-ppt/`](../../design-templates/guizang-ppt/) 안의 파일은 예외로, 원래의 MIT 라이선스와 [op7418](https://github.com/op7418)에 대한 저작자 표기를 그대로 유지합니다.
[skill]: https://docs.anthropic.com/en/docs/claude-code/skills
[guizang]: https://github.com/op7418/guizang-ppt-skill
diff --git a/CONTRIBUTING.pt-BR.md b/docs/i18n/CONTRIBUTING.pt-BR.md
similarity index 81%
rename from CONTRIBUTING.pt-BR.md
rename to docs/i18n/CONTRIBUTING.pt-BR.md
index 3524911267..6df1756d52 100644
--- a/CONTRIBUTING.pt-BR.md
+++ b/docs/i18n/CONTRIBUTING.pt-BR.md
@@ -4,7 +4,7 @@ Obrigado por considerar contribuir. O OD é pequeno de propósito — a maior pa
Este guia diz exatamente onde olhar para cada tipo de contribuição e qual a barra que um PR precisa atingir antes do merge.
-English · Português (Brasil) · Deutsch · Français · 简体中文 · 日本語
+English · Português (Brasil) · Deutsch · Français · 简体中文 · 日本語
---
@@ -12,9 +12,9 @@ Este guia diz exatamente onde olhar para cada tipo de contribuição e qual a ba
| Se você quer… | Você está adicionando | Onde mora | Tamanho da entrega |
|---|---|---|---|
-| Fazer o OD renderizar um novo tipo de artifact (uma nota fiscal, uma tela de Settings do iOS, um one-pager…) | uma **Skill** | [`skills//`](skills/) | uma pasta, ~2 arquivos |
-| Fazer o OD falar a linguagem visual de uma nova marca | um **Design System** | [`design-systems//DESIGN.md`](design-systems/) | um arquivo Markdown |
-| Plugar um novo CLI de agente de código | um **Adapter de agente** | [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts) | ~10 linhas em um array |
+| Fazer o OD renderizar um novo tipo de artifact (uma nota fiscal, uma tela de Settings do iOS, um one-pager…) | uma **Skill** | [`skills//`](../../skills/) | uma pasta, ~2 arquivos |
+| Fazer o OD falar a linguagem visual de uma nova marca | um **Design System** | [`design-systems//DESIGN.md`](../../design-systems/) | um arquivo Markdown |
+| Plugar um novo CLI de agente de código | um **Adapter de agente** | [`apps/daemon/src/agents.ts`](../../apps/daemon/src/agents.ts) | ~10 linhas em um array |
| Adicionar uma feature, corrigir um bug, trazer um padrão de UX do [`open-codesign`][ocod] | código | `apps/web/src/`, `apps/daemon/` | PR normal |
| Melhorar docs, traduzir uma seção para Français / Deutsch / 中文, corrigir typos | docs | `README.md`, `README.fr.md`, `README.de.md`, `README.zh-CN.md`, `docs/`, `QUICKSTART.md` | um PR |
@@ -36,7 +36,7 @@ pnpm typecheck # tsc -b --noEmit
pnpm --filter @open-design/web build # build do pacote web quando necessário
```
-Node `~24` e pnpm `10.33.x` são obrigatórios. `nvm` / `fnm` são opcionais; use `nvm install 24 && nvm use 24` ou `fnm install 24 && fnm use 24` se preferir gerenciar Node assim. macOS, Linux e WSL2 são os caminhos principais. Windows nativo é suportado; veja [`docs/windows-troubleshooting.md`](docs/windows-troubleshooting.md) para os tropeços de configuração mais comuns.
+Node `~24` e pnpm `10.33.x` são obrigatórios. `nvm` / `fnm` são opcionais; use `nvm install 24 && nvm use 24` ou `fnm install 24 && fnm use 24` se preferir gerenciar Node assim. macOS, Linux e WSL2 são os caminhos principais. Windows nativo é suportado; veja [`docs/windows-troubleshooting.md`](../../docs/windows-troubleshooting.md) para os tropeços de configuração mais comuns.
Você não precisa de nenhum CLI de agente no `PATH` para desenvolver o próprio OD — o daemon dirá "no agents found" e cairá no caminho **Anthropic API · BYOK**, que é o loop de dev mais rápido de qualquer jeito.
@@ -44,7 +44,7 @@ Você não precisa de nenhum CLI de agente no `PATH` para desenvolver o próprio
## Adicionando uma nova Skill
-Uma skill é uma pasta sob [`skills/`](skills/) com um `SKILL.md` na raiz, seguindo a [convenção `SKILL.md`][skill] do Claude Code mais nossa extensão opcional `od:`. **Não há passo de registro.** Coloque a pasta, reinicie o daemon e o picker mostra.
+Uma skill é uma pasta sob [`skills/`](../../skills/) com um `SKILL.md` na raiz, seguindo a [convenção `SKILL.md`][skill] do Claude Code mais nossa extensão opcional `od:`. **Não há passo de registro.** Coloque a pasta, reinicie o daemon e o picker mostra.
### Layout da pasta da skill
@@ -93,7 +93,7 @@ od:
Body is free-form Markdown describing the workflow the agent should follow…
```
-A gramática completa — inputs tipados, parâmetros de slider, gating de capacidades — vive em [`docs/skills-protocol.md`](docs/skills-protocol.md).
+A gramática completa — inputs tipados, parâmetros de slider, gating de capacidades — vive em [`docs/skills-protocol.md`](../../docs/skills-protocol.md).
### Barra para mergear uma nova skill
@@ -102,7 +102,7 @@ Somos exigentes com skills porque elas são a superfície voltada para o usuári
1. **Trazer um `example.html` real.** Feito à mão, abre direto do disco e parece algo que um designer entregaria. Sem lorem ipsum, sem hero placeholder ``. Se você não consegue construir o exemplo, provavelmente a skill ainda não está pronta.
2. **Passar no checklist anti-AI-slop** no corpo. Sem gradiente roxo, sem ícones genéricos de emoji, sem card arredondado com borda lateral de destaque, sem Inter como fonte de *display*, sem stats inventados. Leia a seção **Anti-AI-slop machinery** do README para a lista completa.
3. **Placeholders honestos.** Quando o agente não tem um número real, escreva `—` ou um bloco cinza com label, não "10× mais rápido".
-4. **Ter um `references/checklist.md`** com pelo menos os gates P0 (o que o agente precisa passar antes de emitir ``). Pegue o formato em [`skills/guizang-ppt/references/checklist.md`](skills/guizang-ppt/) ou [`skills/dating-web/references/checklist.md`](skills/dating-web/).
+4. **Ter um `references/checklist.md`** com pelo menos os gates P0 (o que o agente precisa passar antes de emitir ``). Pegue o formato em [`skills/guizang-ppt/references/checklist.md`](../../skills/guizang-ppt/) ou [`skills/dating-web/references/checklist.md`](../../skills/dating-web/).
5. **Adicionar um screenshot** em `docs/screenshots/skills/.png` se a skill for featured. PNG, ~1024×640 retina, capturado do `example.html` real em zoom-out do navegador.
6. **Ser uma única pasta self-contained.** Sem imports de CDN além do que outras skills já usam; sem fontes que você não licenciou; sem imagens maiores que ~250 KB.
@@ -110,16 +110,16 @@ Se você forkar uma skill existente (por exemplo, partir do `dating-web` e remix
### Skills já entregues — pegue uma para imitar
-- Showcase visual, protótipo de tela única: [`skills/dating-web/`](skills/dating-web/), [`skills/digital-eguide/`](skills/digital-eguide/)
-- Fluxo mobile multi-frame: [`skills/mobile-onboarding/`](skills/mobile-onboarding/), [`skills/gamified-app/`](skills/gamified-app/)
-- Documento / template (sem design system obrigatório): [`skills/pm-spec/`](skills/pm-spec/), [`skills/weekly-update/`](skills/weekly-update/)
-- Modo deck: [`skills/guizang-ppt/`](skills/guizang-ppt/) (bundled literalmente de [op7418/guizang-ppt-skill][guizang]) e [`skills/simple-deck/`](skills/simple-deck/)
+- Showcase visual, protótipo de tela única: [`skills/dating-web/`](../../skills/dating-web/), [`skills/digital-eguide/`](../../skills/digital-eguide/)
+- Fluxo mobile multi-frame: [`skills/mobile-onboarding/`](../../skills/mobile-onboarding/), [`skills/gamified-app/`](../../skills/gamified-app/)
+- Documento / template (sem design system obrigatório): [`skills/pm-spec/`](../../skills/pm-spec/), [`skills/weekly-update/`](../../skills/weekly-update/)
+- Modo deck: [`skills/guizang-ppt/`](../../skills/guizang-ppt/) (bundled literalmente de [op7418/guizang-ppt-skill][guizang]) e [`skills/simple-deck/`](../../skills/simple-deck/)
---
## Adicionando um novo Design System
-Um design system é um único arquivo [`DESIGN.md`](design-systems/README.md) sob `design-systems//`. **Um arquivo, sem código.** Coloque, reinicie o daemon, o picker mostra agrupado por categoria.
+Um design system é um único arquivo [`DESIGN.md`](../../design-systems/README.md) sob `design-systems//`. **Um arquivo, sem código.** Coloque, reinicie o daemon, o picker mostra agrupado por categoria.
### Layout da pasta do design system
@@ -154,7 +154,7 @@ design-systems/your-brand/
## 9. Anti-patterns
```
-O schema de 9 seções é fixo — é o que os corpos das skills procuram via grep. O primeiro H1 vira o label do picker (o prefixo `Design System Inspired by` é removido automaticamente) e a linha `> Category: …` decide em qual grupo o sistema cai. As categorias existentes estão em [`design-systems/README.md`](design-systems/README.md); se sua marca realmente não couber, dá pra introduzir uma nova, mas **tente as existentes primeiro**.
+O schema de 9 seções é fixo — é o que os corpos das skills procuram via grep. O primeiro H1 vira o label do picker (o prefixo `Design System Inspired by` é removido automaticamente) e a linha `> Category: …` decide em qual grupo o sistema cai. As categorias existentes estão em [`design-systems/README.md`](../../design-systems/README.md); se sua marca realmente não couber, dá pra introduzir uma nova, mas **tente as existentes primeiro**.
### Barra para mergear um novo design system
@@ -164,13 +164,13 @@ O schema de 9 seções é fixo — é o que os corpos das skills procuram via gr
4. **Sem fluff de marketing.** O slogan da marca não é um design token. Corte.
5. **Slug em ASCII** — `linear.app` vira `linear-app`, `x.ai` vira `x-ai`. Os 69 sistemas importados já seguem essa convenção; espelhe.
-Os 69 sistemas de produto que entregamos são importados de [`VoltAgent/awesome-design-md`][acd2] via [`scripts/sync-design-systems.ts`](scripts/sync-design-systems.ts). Se sua marca pertence ao upstream, **mande o PR para lá primeiro** — pegamos automaticamente no próximo sync. A pasta `design-systems/` é para sistemas que não cabem no upstream, mais nossos dois starters escritos à mão.
+Os 69 sistemas de produto que entregamos são importados de [`VoltAgent/awesome-design-md`][acd2] via [`scripts/sync-design-systems.ts`](../../scripts/sync-design-systems.ts). Se sua marca pertence ao upstream, **mande o PR para lá primeiro** — pegamos automaticamente no próximo sync. A pasta `design-systems/` é para sistemas que não cabem no upstream, mais nossos dois starters escritos à mão.
---
## Adicionando um novo CLI de agente de código
-Plugar um novo agente (por exemplo, o CLI `foo-coder` de alguma loja nova) é uma entrada em [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts):
+Plugar um novo agente (por exemplo, o CLI `foo-coder` de alguma loja nova) é uma entrada em [`apps/daemon/src/agents.ts`](../../apps/daemon/src/agents.ts):
```javascript
{
@@ -183,7 +183,7 @@ Plugar um novo agente (por exemplo, o CLI `foo-coder` de alguma loja nova) é um
}
```
-É só isso — o daemon detecta no `PATH`, o picker mostra, o caminho de chat funciona. Se o CLI emite **eventos tipados** (como o `--output-format stream-json` do Claude Code), conecte um parser em [`apps/daemon/src/claude-stream.ts`](apps/daemon/src/claude-stream.ts) e defina `streamFormat: 'claude-stream-json'`.
+É só isso — o daemon detecta no `PATH`, o picker mostra, o caminho de chat funciona. Se o CLI emite **eventos tipados** (como o `--output-format stream-json` do Claude Code), conecte um parser em [`apps/daemon/src/claude-stream.ts`](../../apps/daemon/src/claude-stream.ts) e defina `streamFormat: 'claude-stream-json'`.
Barra para mergear:
@@ -195,10 +195,10 @@ Barra para mergear:
## Atualizando metadados de `max_tokens` dos modelos
-O chat em modo API envia `max_tokens` para o provider upstream em toda requisição. O cliente web pega esse número de uma busca em três níveis em [`apps/web/src/state/maxTokens.ts`](apps/web/src/state/maxTokens.ts):
+O chat em modo API envia `max_tokens` para o provider upstream em toda requisição. O cliente web pega esse número de uma busca em três níveis em [`apps/web/src/state/maxTokens.ts`](../../apps/web/src/state/maxTokens.ts):
1. O override explícito do usuário em Settings, se definido.
-2. Caso contrário, o default por modelo em [`apps/web/src/state/litellm-models.json`](apps/web/src/state/litellm-models.json) — uma fatia vendored do `model_prices_and_context_window.json` do [BerriAI/litellm][litellm] (MIT). Cobre ~2k modelos de chat de Anthropic, OpenAI, DeepSeek, Groq, Together, Mistral, Gemini, Bedrock, Vertex, OpenRouter etc.
+2. Caso contrário, o default por modelo em [`apps/web/src/state/litellm-models.json`](../../apps/web/src/state/litellm-models.json) — uma fatia vendored do `model_prices_and_context_window.json` do [BerriAI/litellm][litellm] (MIT). Cobre ~2k modelos de chat de Anthropic, OpenAI, DeepSeek, Groq, Together, Mistral, Gemini, Bedrock, Vertex, OpenRouter etc.
3. Caso contrário, `FALLBACK_MAX_TOKENS = 8192`.
Para incluir um modelo recém-lançado, regere o JSON vendored:
@@ -219,7 +219,7 @@ A tabela OVERRIDES em `maxTokens.ts` é para o caso raro em que o LiteLLM está
Alemão usa o formal `Sie` porque o OD fala com uma audiência mista de criadores solo, agências e times de engenharia; até feedback do projeto mostrar que uma voz informal `du` se encaixa melhor, alemão formal é o default menos surpreendente. PRs de locale devem traduzir chrome de UI, docs principais e metadados visuais de galeria em `apps/web/src/i18n/content.ts`, mas não devem traduzir `skills/`, `design-systems/` nem corpos de prompt que os agentes executam. Esses prompts-fonte são mantidos como entradas de workflow, e manter um único idioma de fonte evita multiplicar QA de prompt entre locales. Ao adicionar ou renomear uma skill, design system ou prompt template, atualize os metadados de display em alemão e rode `pnpm --filter @open-design/web test`; o `content.test.ts` falha se a cobertura de display em alemão sair de sincronia. Erros do daemon, nomes de arquivos exportados e texto de artifact gerado pelo agente são limitações conhecidas, a menos que um PR explicitamente os englobe.
-Para instruções passo a passo sobre adicionar um novo locale (dicionário de UI, README, language switcher, terminologia regional), veja [`TRANSLATIONS.md`](TRANSLATIONS.md).
+Para instruções passo a passo sobre adicionar um novo locale (dicionário de UI, README, language switcher, terminologia regional), veja [`TRANSLATIONS.md`](../../TRANSLATIONS.md).
---
@@ -234,7 +234,7 @@ Além disso:
- **Não narre.** Sem `// import the module`, sem `// loop through items`. Se o código se lê obviamente, o comentário é ruído. Reserve comentários para intenção não-óbvia ou restrições que o código não consegue expressar.
- **TypeScript** em `apps/web/src/`. O daemon (`apps/daemon/`) é JavaScript ESM puro com JSDoc onde tipos importam — mantenha assim.
-- **Sem novas dependências top-level** sem um parágrafo na descrição do PR sobre o que ganhamos vs. quantos bytes despachamos. A lista de deps em [`package.json`](package.json) é pequena de propósito.
+- **Sem novas dependências top-level** sem um parágrafo na descrição do PR sobre o que ganhamos vs. quantos bytes despachamos. A lista de deps em [`package.json`](../../package.json) é pequena de propósito.
- **Rode `pnpm typecheck`** antes do push. CI roda; falhar lá rende um comentário "please fix".
---
@@ -243,7 +243,7 @@ Além disso:
- **Uma preocupação por PR.** Adicionar uma skill + refatorar o parser + bumpar uma dep são três PRs.
- **Título é imperativo + escopo.** `add dating-web skill`, `fix daemon SSE backpressure when CLI hangs`, `docs: clarify .od layout`.
-- **Use o template de PR.** Preencha cada seção de [`.github/pull_request_template.md`](.github/pull_request_template.md) — Why, What users will see, Surface area, Screenshots (se UI), Bug fix verification (se correção de bug), Validation. Seções vazias ganham um comentário "please fill in".
+- **Use o template de PR.** Preencha cada seção de [`.github/pull_request_template.md`](../../.github/pull_request_template.md) — Why, What users will see, Surface area, Screenshots (se UI), Bug fix verification (se correção de bug), Validation. Seções vazias ganham um comentário "please fill in".
- **Corpo explica o porquê.** "O que isso faz" geralmente é óbvio do diff; "por que isso precisa existir" raramente é.
- **Referencie uma issue** se houver. Se não houver e o PR for não-trivial, abra uma antes para combinarmos que a mudança é desejada antes de você gastar o tempo.
- **Sem squash durante review.** Empurre fixups; squash no merge.
@@ -270,7 +270,7 @@ Para bugs da pilha de prompt ("o agente emitiu um hero com gradiente roxo, a bla
## Fazendo perguntas
- Pergunta de arquitetura, pergunta de design, "isso é bug ou mau uso" → [GitHub Discussions](https://github.com/nexu-io/open-design/discussions) (preferido — pesquisável para o próximo).
-- "Como escrevo uma skill que faz X" → Abra uma discussion. Respondemos e transformamos a resposta em [`docs/skills-protocol.md`](docs/skills-protocol.md) se for um padrão faltante.
+- "Como escrevo uma skill que faz X" → Abra uma discussion. Respondemos e transformamos a resposta em [`docs/skills-protocol.md`](../../docs/skills-protocol.md) se for um padrão faltante.
---
@@ -291,12 +291,12 @@ Se não tem certeza se sua ideia se encaixa, abra uma discussion antes de escrev
## Tornando-se um Maintainer
-Se você vem contribuindo de forma consistente e quer saber como é o caminho para se tornar um Maintainer, as regras estão em **[`MAINTAINERS.md`](MAINTAINERS.md)**. A versão curta:
+Se você vem contribuindo de forma consistente e quer saber como é o caminho para se tornar um Maintainer, as regras estão em **[`MAINTAINERS.md`](../../MAINTAINERS.md)**. A versão curta:
- Um Maintainer pode revisar, aprovar e fechar issues. O botão de merge continua com o Core Team — sua aprovação ainda conta como a aprovação obrigatória para merge.
- A barra é **≥ 20 merged PRs** mais uma verificação publicada de qualidade da conta (anti-bot, anti-sock-puppet) mais um julgamento do Core Team sobre a qualidade da contribuição. Não há formulário de inscrição; o Core Team levanta candidatos internamente e entra em contato.
- **Não há cotas, nem SLAs, nem mandato fixo.** Sair é fácil e reversível (Emeritus → volte quando a vida acalmar).
-- Todos os limiares, o fluxo de nomeação, as regras de step-down e o waiver de projeto inicial estão em [`MAINTAINERS.md`](MAINTAINERS.md). Leia esse documento se algo acima te interessar.
+- Todos os limiares, o fluxo de nomeação, as regras de step-down e o waiver de projeto inicial estão em [`MAINTAINERS.md`](../../MAINTAINERS.md). Leia esse documento se algo acima te interessar.
O tl;dr: mande bons PRs, revise com cuidado, apareça nas [Discussions][discussions] / no [Discord][discord], e o resto se resolve sozinho.
@@ -307,7 +307,7 @@ O tl;dr: mande bons PRs, revise com cuidado, apareça nas [Discussions][discussi
## Licença
-Ao contribuir, você concorda que sua contribuição é licenciada sob a [Licença Apache-2.0](LICENSE) deste repositório, com a exceção dos arquivos dentro de [`skills/guizang-ppt/`](skills/guizang-ppt/), que mantêm sua licença MIT original e atribuição de autoria a [op7418](https://github.com/op7418).
+Ao contribuir, você concorda que sua contribuição é licenciada sob a [Licença Apache-2.0](../../LICENSE) deste repositório, com a exceção dos arquivos dentro de [`skills/guizang-ppt/`](../../skills/guizang-ppt/), que mantêm sua licença MIT original e atribuição de autoria a [op7418](https://github.com/op7418).
[skill]: https://docs.anthropic.com/en/docs/claude-code/skills
[guizang]: https://github.com/op7418/guizang-ppt-skill
diff --git a/CONTRIBUTING.zh-CN.md b/docs/i18n/CONTRIBUTING.zh-CN.md
similarity index 76%
rename from CONTRIBUTING.zh-CN.md
rename to docs/i18n/CONTRIBUTING.zh-CN.md
index 2437faff56..226dbf8063 100644
--- a/CONTRIBUTING.zh-CN.md
+++ b/docs/i18n/CONTRIBUTING.zh-CN.md
@@ -4,7 +4,7 @@
这份指南会告诉你:每种贡献该往哪里看、合并之前 PR 需要过哪些线。
-English · Português (Brasil) · Deutsch · Français · 简体中文 · 日本語
+English · Português (Brasil) · Deutsch · Français · 简体中文 · 日本語
---
@@ -12,9 +12,9 @@
| 你想要…… | 你其实在加的是 | 它住在哪 | 体量 |
|---|---|---|---|
-| 让 OD 渲染一种新的 artifact(一份发票、一个 iOS 设置页、一张 one-pager……) | 一个 **Skill** | [`skills//`](skills/) | 一个文件夹,约 2 个文件 |
-| 让 OD 说一种新品牌的视觉语言 | 一套 **Design System** | [`design-systems//DESIGN.md`](design-systems/) | 一个 Markdown 文件 |
-| 接入一个新的 coding-agent CLI | 一个 **Agent adapter** | [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts) | 一个数组里 ~10 行 |
+| 让 OD 渲染一种新的 artifact(一份发票、一个 iOS 设置页、一张 one-pager……) | 一个 **Skill** | [`skills//`](../../skills/) | 一个文件夹,约 2 个文件 |
+| 让 OD 说一种新品牌的视觉语言 | 一套 **Design System** | [`design-systems//DESIGN.md`](../../design-systems/) | 一个 Markdown 文件 |
+| 接入一个新的 coding-agent CLI | 一个 **Agent adapter** | [`apps/daemon/src/agents.ts`](../../apps/daemon/src/agents.ts) | 一个数组里 ~10 行 |
| 加功能、修 bug、从 [`open-codesign`][ocod] 移植一个 UX 模式 | 代码 | `apps/web/src/`、`apps/daemon/` | 普通 PR |
| 改文档、补法语 / 德语 / 中文翻译、修错别字 | 文档 | `README.md`、`README.fr.md`、`README.de.md`、`README.zh-CN.md`、`docs/`、`QUICKSTART.zh-CN.md` | 一个 PR |
@@ -36,7 +36,7 @@ pnpm typecheck # tsc -b --noEmit
pnpm --filter @open-design/web build # 需要时构建 web package
```
-要求 Node `~24` 和 pnpm `10.33.x`。`nvm` / `fnm` 是可选路径;如果你习惯用它们,先执行 `nvm install 24 && nvm use 24` 或 `fnm install 24 && fnm use 24`。macOS、Linux、WSL2 是主要路径。Windows 原生已支持;常见的安装与配置坑请参见 [`docs/windows-troubleshooting.md`](docs/windows-troubleshooting.md)。
+要求 Node `~24` 和 pnpm `10.33.x`。`nvm` / `fnm` 是可选路径;如果你习惯用它们,先执行 `nvm install 24 && nvm use 24` 或 `fnm install 24 && fnm use 24`。macOS、Linux、WSL2 是主要路径。Windows 原生已支持;常见的安装与配置坑请参见 [`docs/windows-troubleshooting.md`](../../docs/windows-troubleshooting.md)。
**开发 OD 本身不需要在 `PATH` 上装任何 agent CLI** —— daemon 会告诉你「找不到 agent」并落到 **Anthropic API · BYOK** 路径,反而是最快的开发循环。
@@ -44,7 +44,7 @@ pnpm --filter @open-design/web build # 需要时构建 web package
## 加一个 Skill
-一个 skill 就是 [`skills/`](skills/) 下的一个文件夹,根目录放一个 `SKILL.md`,遵循 Claude Code 的 [`SKILL.md` 规范][skill],再加上我们可选的 `od:` 扩展。**没有注册步骤。** 文件夹丢进来、重启 daemon、picker 里就出现了。
+一个 skill 就是 [`skills/`](../../skills/) 下的一个文件夹,根目录放一个 `SKILL.md`,遵循 Claude Code 的 [`SKILL.md` 规范][skill],再加上我们可选的 `od:` 扩展。**没有注册步骤。** 文件夹丢进来、重启 daemon、picker 里就出现了。
### Skill 文件夹结构
@@ -92,7 +92,7 @@ od:
正文是自由 Markdown,描述 agent 应该走的工作流……
```
-完整 grammar —— 类型化输入、滑块参数、能力 gating —— 在 [`docs/skills-protocol.md`](docs/skills-protocol.md)。
+完整 grammar —— 类型化输入、滑块参数、能力 gating —— 在 [`docs/skills-protocol.md`](../../docs/skills-protocol.md)。
### 合并新 skill 的硬线
@@ -101,7 +101,7 @@ Skill 是用户直接看到的面,所以我们对它挑剔。一个新 skill
1. **附一份真实的 `example.html`。** 手搓的、本地直接打开就能看、像设计师真的会交付的东西。不要 lorem ipsum,不要 `` 占位 hero。如果你自己都不能搓出 example,这个 skill 大概率还没准备好。
2. **过 anti-AI-slop checklist**(写在 body 里)。不准紫色渐变、不准通用 emoji 图标、不准左 border 圆角卡片、不准把 Inter 当 *display* 字体、不准自编数据。完整黑名单看 README 的「Anti-AI-slop machinery」一节。
3. **诚实占位。** Agent 没真数字时写 `—` 或一个标注的灰块,绝不写「快 10 倍」。
-4. **附 `references/checklist.md`**,至少要有 P0 关卡(agent emit `` 之前必须过的硬线)。格式照搬 [`skills/guizang-ppt/references/checklist.md`](skills/guizang-ppt/) 或 [`skills/dating-web/references/checklist.md`](skills/dating-web/)。
+4. **附 `references/checklist.md`**,至少要有 P0 关卡(agent emit `` 之前必须过的硬线)。格式照搬 [`skills/guizang-ppt/references/checklist.md`](../../skills/guizang-ppt/) 或 [`skills/dating-web/references/checklist.md`](../../skills/dating-web/)。
5. **如果是 featured skill,加一张截图** 到 `docs/screenshots/skills/.png`。PNG 格式,约 1024×640 retina,从真实 `example.html` 上以缩小后的浏览器倍率截。
6. **是一个自包含文件夹。** CDN 引入不能超过其他 skill 已经引入的;不准用没授权的字体;图片不要超过约 250 KB。
@@ -109,16 +109,16 @@ Skill 是用户直接看到的面,所以我们对它挑剔。一个新 skill
### 已有的 skill —— 挑一个像的来抄
-- 视觉 showcase、单屏原型:[`skills/dating-web/`](skills/dating-web/)、[`skills/digital-eguide/`](skills/digital-eguide/)
-- 多屏移动流程:[`skills/mobile-onboarding/`](skills/mobile-onboarding/)、[`skills/gamified-app/`](skills/gamified-app/)
-- 文档 / 模板(不需要 design system):[`skills/pm-spec/`](skills/pm-spec/)、[`skills/weekly-update/`](skills/weekly-update/)
-- Deck 模式:[`skills/guizang-ppt/`](skills/guizang-ppt/)(来自 [op7418/guizang-ppt-skill][guizang],原样捆绑)和 [`skills/simple-deck/`](skills/simple-deck/)
+- 视觉 showcase、单屏原型:[`skills/dating-web/`](../../skills/dating-web/)、[`skills/digital-eguide/`](../../skills/digital-eguide/)
+- 多屏移动流程:[`skills/mobile-onboarding/`](../../skills/mobile-onboarding/)、[`skills/gamified-app/`](../../skills/gamified-app/)
+- 文档 / 模板(不需要 design system):[`skills/pm-spec/`](../../skills/pm-spec/)、[`skills/weekly-update/`](../../skills/weekly-update/)
+- Deck 模式:[`skills/guizang-ppt/`](../../skills/guizang-ppt/)(来自 [op7418/guizang-ppt-skill][guizang],原样捆绑)和 [`skills/simple-deck/`](../../skills/simple-deck/)
---
## 加一套 Design System
-一套 design system 就是 `design-systems//` 下的一个 [`DESIGN.md`](design-systems/README.md) 文件。**一个文件,零代码。** 丢进来、重启 daemon、picker 按 category 分组显示出来。
+一套 design system 就是 `design-systems//` 下的一个 [`DESIGN.md`](../../design-systems/README.md) 文件。**一个文件,零代码。** 丢进来、重启 daemon、picker 按 category 分组显示出来。
### Design system 文件夹结构
@@ -153,7 +153,7 @@ design-systems/your-brand/
## 9. Anti-patterns
```
-9 段式 schema 是固定的 —— skill body 会按这个结构 grep 内容。第一行 H1 会成为 picker 的标签(`Design System Inspired by` 前缀会被自动剥掉),`> Category: …` 那一行决定它落到哪个组。已有的 category 列表在 [`design-systems/README.md`](design-systems/README.md);如果你的品牌真的塞不进任何一个,可以新增 category,但**优先尝试现有 category**。
+9 段式 schema 是固定的 —— skill body 会按这个结构 grep 内容。第一行 H1 会成为 picker 的标签(`Design System Inspired by` 前缀会被自动剥掉),`> Category: …` 那一行决定它落到哪个组。已有的 category 列表在 [`design-systems/README.md`](../../design-systems/README.md);如果你的品牌真的塞不进任何一个,可以新增 category,但**优先尝试现有 category**。
### 合并新 design system 的硬线
@@ -163,13 +163,13 @@ design-systems/your-brand/
4. **不要营销废话。** 品牌的 tagline 不是设计 token。删掉。
5. **slug 用 ASCII** —— `linear.app` 写成 `linear-app`,`x.ai` 写成 `x-ai`。已经导入的 69 套都遵循这个约定,跟着写。
-我们内置的 69 套产品系统是通过 [`scripts/sync-design-systems.ts`](scripts/sync-design-systems.ts) 从 [`VoltAgent/awesome-design-md`][acd2] 导入的。如果你的品牌应该归属在上游,**请先把 PR 发到那里** —— 我们下一次同步会自动收上来。`design-systems/` 文件夹用来放那些**不适合归到上游**的系统、加上我们手写的两套 starter。
+我们内置的 69 套产品系统是通过 [`scripts/sync-design-systems.ts`](../../scripts/sync-design-systems.ts) 从 [`VoltAgent/awesome-design-md`][acd2] 导入的。如果你的品牌应该归属在上游,**请先把 PR 发到那里** —— 我们下一次同步会自动收上来。`design-systems/` 文件夹用来放那些**不适合归到上游**的系统、加上我们手写的两套 starter。
---
## 接入一个新的 coding-agent CLI
-接入一个新 agent(比如某个新 shop 的 `foo-coder` CLI)就是在 [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts) 里加一项:
+接入一个新 agent(比如某个新 shop 的 `foo-coder` CLI)就是在 [`apps/daemon/src/agents.ts`](../../apps/daemon/src/agents.ts) 里加一项:
```javascript
{
@@ -182,22 +182,22 @@ design-systems/your-brand/
}
```
-完事 —— daemon 会在 `PATH` 上检测到它、picker 显示出来、对话路径就通了。如果这个 CLI 吐 **类型化事件**(像 Claude Code 的 `--output-format stream-json`),在 [`apps/daemon/src/claude-stream.ts`](apps/daemon/src/claude-stream.ts) 里写一个 parser,并把 `streamFormat` 设成 `'claude-stream-json'`。
+完事 —— daemon 会在 `PATH` 上检测到它、picker 显示出来、对话路径就通了。如果这个 CLI 吐 **类型化事件**(像 Claude Code 的 `--output-format stream-json`),在 [`apps/daemon/src/claude-stream.ts`](../../apps/daemon/src/claude-stream.ts) 里写一个 parser,并把 `streamFormat` 设成 `'claude-stream-json'`。
合并硬线:
1. **真的跑通一次端到端会话** —— 把 daemon 日志贴在 PR 描述里,证明它流出了一个 artifact。
-2. **更新 [`docs/agent-adapters.md`](docs/agent-adapters.md)**,写清楚这个 CLI 的怪癖(要不要 key 文件?支不支持图片输入?非交互模式的 flag 是什么?)。
+2. **更新 [`docs/agent-adapters.md`](../../docs/agent-adapters.md)**,写清楚这个 CLI 的怪癖(要不要 key 文件?支不支持图片输入?非交互模式的 flag 是什么?)。
3. **README 的「Supported coding agents」表里加一行**。
---
## 更新模型 `max_tokens` 元数据
-API 模式下每次请求都会带 `max_tokens` 给上游。Web 端通过 [`apps/web/src/state/maxTokens.ts`](apps/web/src/state/maxTokens.ts) 的三层 lookup 决定这个数字:
+API 模式下每次请求都会带 `max_tokens` 给上游。Web 端通过 [`apps/web/src/state/maxTokens.ts`](../../apps/web/src/state/maxTokens.ts) 的三层 lookup 决定这个数字:
1. 用户在 Settings 里手填的覆盖值(如果有)。
-2. 否则用 [`apps/web/src/state/litellm-models.json`](apps/web/src/state/litellm-models.json) 里的 per-model 默认 —— 这是从 [BerriAI/litellm][litellm] 的 `model_prices_and_context_window.json`(MIT)摘的一份切片,覆盖约 2000 个 chat 模型,包括 Anthropic、OpenAI、DeepSeek、Groq、Together、Mistral、Gemini、Bedrock、Vertex、OpenRouter 等。
+2. 否则用 [`apps/web/src/state/litellm-models.json`](../../apps/web/src/state/litellm-models.json) 里的 per-model 默认 —— 这是从 [BerriAI/litellm][litellm] 的 `model_prices_and_context_window.json`(MIT)摘的一份切片,覆盖约 2000 个 chat 模型,包括 Anthropic、OpenAI、DeepSeek、Groq、Together、Mistral、Gemini、Bedrock、Vertex、OpenRouter 等。
3. 都 miss 就走 `FALLBACK_MAX_TOKENS = 8192`。
新模型上线想吃到默认值,重新生成 vendored JSON:
@@ -225,7 +225,7 @@ node --experimental-strip-types scripts/sync-litellm-models.ts
- **不要写废话注释。** 不要 `// 引入这个模块`、不要 `// 遍历元素`。如果代码本身一眼能读,注释就是噪音。注释只用来说明非显而易见的意图、或者代码本身表达不出来的约束。
- **`apps/web/src/` 用 TypeScript。** Daemon (`apps/daemon/`) 是纯 ESM JavaScript,类型重要的地方用 JSDoc —— 保持这样。
-- **不要随便加顶层依赖。** PR 描述里至少要有一段,说明引入它能换到什么、又新增了多少 bundle 字节。[`package.json`](package.json) 的依赖少是有意为之。
+- **不要随便加顶层依赖。** PR 描述里至少要有一段,说明引入它能换到什么、又新增了多少 bundle 字节。[`package.json`](../../package.json) 的依赖少是有意为之。
- **推之前跑 `pnpm typecheck`。** CI 会跑;挂了会换来一句「请修一下」。
---
@@ -234,7 +234,7 @@ node --experimental-strip-types scripts/sync-litellm-models.ts
- **一个 PR 只做一件事。** 加 skill + 重构 parser + 升依赖,是三个 PR。
- **标题用动词起头 + 范围。** `add dating-web skill`、`fix daemon SSE backpressure when CLI hangs`、`docs: clarify .od layout`。
-- **使用 PR 模板。** 把 [`.github/pull_request_template.md`](.github/pull_request_template.md) 的每一节都填上 —— Why、What users will see、Surface area、Screenshots(如果有 UI 改动)、Bug fix verification(如果是修 bug)、Validation。留空的节会被 reviewer 回 "please fill in"。
+- **使用 PR 模板。** 把 [`.github/pull_request_template.md`](../../.github/pull_request_template.md) 的每一节都填上 —— Why、What users will see、Surface area、Screenshots(如果有 UI 改动)、Bug fix verification(如果是修 bug)、Validation。留空的节会被 reviewer 回 "please fill in"。
- **正文解释 why。** 「这个 PR 改了什么」从 diff 一般能看出来;「为什么要改」很少能。
- **如果有 issue,引用它。** 没有、且改动非平凡,请先开 issue 让我们先就「值不值得做」达成一致,再投入时间。
- **Review 期间不要 squash。** 推 fixup commit;merge 时我们会 squash。
@@ -261,7 +261,7 @@ node --experimental-strip-types scripts/sync-litellm-models.ts
## 提问
- 架构问题、设计问题、「这是 bug 还是误用」 → 请用 [GitHub Discussions](https://github.com/nexu-io/open-design/discussions)(首选 —— 下一个人能搜到)。
-- 「我想写一个干 X 的 skill 怎么写」 → 开一个 discussion。我们会回答,且如果是缺失的模式,答案会被收进 [`docs/skills-protocol.md`](docs/skills-protocol.md)。
+- 「我想写一个干 X 的 skill 怎么写」 → 开一个 discussion。我们会回答,且如果是缺失的模式,答案会被收进 [`docs/skills-protocol.md`](../../docs/skills-protocol.md)。
---
@@ -281,12 +281,12 @@ node --experimental-strip-types scripts/sync-litellm-models.ts
## 想成为 Maintainer
-如果你已经在持续贡献并想了解成为 Maintainer 的路径——完整规则在 **[`MAINTAINERS.md`](MAINTAINERS.md)**。简版如下:
+如果你已经在持续贡献并想了解成为 Maintainer 的路径——完整规则在 **[`MAINTAINERS.md`](../../MAINTAINERS.md)**。简版如下:
- Maintainer 可以 review、approve、关闭 issue。Merge 按钮保留在 Core Team——**你的 approve 仍算作 merge 所需的那一个 approve**。
- 门槛:**≥ 20 个 merged PR** + 公开的账号质量检查(防 bot / 防小号)+ Core Team 对贡献质量的判断。**没有申请表**——Core Team 在内部识别候选人后会主动联系。
- **没有 quota,没有 SLA,没有固定任期。** 退出很容易也可逆(Emeritus → 生活忙完后回归)。
-- 全部门槛阈值、提名流程、退出规则、早期项目例外条款都在 [`MAINTAINERS.md`](MAINTAINERS.md)——上面任何一条勾起兴趣的话,去读那份文档。
+- 全部门槛阈值、提名流程、退出规则、早期项目例外条款都在 [`MAINTAINERS.md`](../../MAINTAINERS.md)——上面任何一条勾起兴趣的话,去读那份文档。
tl;dr:好好提 PR、认真 review、在 [Discussions][discussions] / [Discord][discord] 多冒泡,剩下的自然会发生。
@@ -297,7 +297,7 @@ tl;dr:好好提 PR、认真 review、在 [Discussions][discussions] / [Discord
## License
-提交贡献即代表你同意你的贡献按本仓库的 [Apache-2.0 License](LICENSE) 授权。例外是 [`skills/guizang-ppt/`](skills/guizang-ppt/) 下的所有文件,保留它们原始的 MIT license 和原作者 [op7418](https://github.com/op7418) 的归属。
+提交贡献即代表你同意你的贡献按本仓库的 [Apache-2.0 License](../../LICENSE) 授权。例外是 [`skills/guizang-ppt/`](../../skills/guizang-ppt/) 下的所有文件,保留它们原始的 MIT license 和原作者 [op7418](https://github.com/op7418) 的归属。
[skill]: https://docs.anthropic.com/en/docs/claude-code/skills
[guizang]: https://github.com/op7418/guizang-ppt-skill
diff --git a/MAINTAINERS.de.md b/docs/i18n/MAINTAINERS.de.md
similarity index 96%
rename from MAINTAINERS.de.md
rename to docs/i18n/MAINTAINERS.de.md
index 5ed952ceb9..dcd8c0f0cc 100644
--- a/MAINTAINERS.de.md
+++ b/docs/i18n/MAINTAINERS.de.md
@@ -1,11 +1,11 @@
# Maintainer
-English · Português (Brasil) · Deutsch · Français · 简体中文 · 日本語
+English · Português (Brasil) · Deutsch · Français · 简体中文 · 日本語
Dieses Dokument legt die Regeln dafür fest, wie man Maintainer von `nexu-io/open-design` wird, diese Rolle ausübt und sich aus ihr zurückzieht. Die individuelle Zusammensetzung des Core Teams wird intern verwaltet und ist hier nicht aufgeführt — was öffentlich zählt, sind die Regeln, an die sich alle halten.
-> **Status**: v1, entworfen am 2026-05-11. Begleitdokument zu [`CONTRIBUTING.md`](CONTRIBUTING.md#becoming-a-maintainer) — diese Datei verweist Beitragende für die vollständigen Regeln hierher.
+> **Status**: v1, entworfen am 2026-05-11. Begleitdokument zu [`CONTRIBUTING.md`](../../CONTRIBUTING.md#becoming-a-maintainer) — diese Datei verweist Beitragende für die vollständigen Regeln hierher.
---
diff --git a/MAINTAINERS.fr.md b/docs/i18n/MAINTAINERS.fr.md
similarity index 96%
rename from MAINTAINERS.fr.md
rename to docs/i18n/MAINTAINERS.fr.md
index b0d0b7b1a3..47fa138d67 100644
--- a/MAINTAINERS.fr.md
+++ b/docs/i18n/MAINTAINERS.fr.md
@@ -1,11 +1,11 @@
# Mainteneurs
-English · Português (Brasil) · Deutsch · Français · 简体中文 · 日本語
+English · Português (Brasil) · Deutsch · Français · 简体中文 · 日本語
Ce document définit les règles pour devenir Maintainer de `nexu-io/open-design`, exercer ce rôle et y renoncer. La liste nominative du Core Team est tenue en interne et n'est pas énumérée ici — ce qui compte publiquement, ce sont les règles que tout le monde respecte.
-> **Statut** : v1, rédigé le 2026-05-11. Document complémentaire à [`CONTRIBUTING.md`](CONTRIBUTING.md#becoming-a-maintainer) — ce fichier renvoie les contributeurs ici pour les règles complètes.
+> **Statut** : v1, rédigé le 2026-05-11. Document complémentaire à [`CONTRIBUTING.md`](../../CONTRIBUTING.md#becoming-a-maintainer) — ce fichier renvoie les contributeurs ici pour les règles complètes.
---
diff --git a/MAINTAINERS.ja-JP.md b/docs/i18n/MAINTAINERS.ja-JP.md
similarity index 96%
rename from MAINTAINERS.ja-JP.md
rename to docs/i18n/MAINTAINERS.ja-JP.md
index 4729d0c843..6529c99454 100644
--- a/MAINTAINERS.ja-JP.md
+++ b/docs/i18n/MAINTAINERS.ja-JP.md
@@ -1,11 +1,11 @@
# Maintainers
-English · Português (Brasil) · Deutsch · Français · 简体中文 · 日本語
+English · Português (Brasil) · Deutsch · Français · 简体中文 · 日本語
このドキュメントは、`nexu-io/open-design` の Maintainer になるため、その役割を務めるため、そして退任するためのルールを定めるものです。Core Team の個別のメンバー一覧は内部で管理されており、ここには列挙していません。公に重要なのは、全員が従うルールそのものです。
-> **ステータス**: v1、2026-05-11 にドラフト作成。[`CONTRIBUTING.md`](CONTRIBUTING.md#becoming-a-maintainer) のコンパニオン文書です。CONTRIBUTING.md は、コントリビューターを完全なルールのためにこちらへ案内しています。
+> **ステータス**: v1、2026-05-11 にドラフト作成。[`CONTRIBUTING.md`](../../CONTRIBUTING.md#becoming-a-maintainer) のコンパニオン文書です。CONTRIBUTING.md は、コントリビューターを完全なルールのためにこちらへ案内しています。
---
diff --git a/MAINTAINERS.ko.md b/docs/i18n/MAINTAINERS.ko.md
similarity index 100%
rename from MAINTAINERS.ko.md
rename to docs/i18n/MAINTAINERS.ko.md
diff --git a/MAINTAINERS.pt-BR.md b/docs/i18n/MAINTAINERS.pt-BR.md
similarity index 96%
rename from MAINTAINERS.pt-BR.md
rename to docs/i18n/MAINTAINERS.pt-BR.md
index ba7ee2c301..1d94a1e982 100644
--- a/MAINTAINERS.pt-BR.md
+++ b/docs/i18n/MAINTAINERS.pt-BR.md
@@ -1,14 +1,14 @@
# Maintainers
-English · Português (Brasil) · Deutsch · Français · 简体中文 · 日本語
+English · Português (Brasil) · Deutsch · Français · 简体中文 · 日本語
Este documento define as regras para se tornar, atuar como e deixar o cargo de
Maintainer de `nexu-io/open-design`. A composição individual do Core Team é
mantida internamente e não é enumerada aqui — o que importa publicamente são
as regras pelas quais todos jogam.
-> **Status**: v1, redigido em 2026-05-11. Documento complementar ao [`CONTRIBUTING.md`](CONTRIBUTING.md#becoming-a-maintainer) — esse arquivo direciona contribuidores para cá em busca das regras completas.
+> **Status**: v1, redigido em 2026-05-11. Documento complementar ao [`CONTRIBUTING.md`](../../CONTRIBUTING.md#becoming-a-maintainer) — esse arquivo direciona contribuidores para cá em busca das regras completas.
---
diff --git a/MAINTAINERS.zh-CN.md b/docs/i18n/MAINTAINERS.zh-CN.md
similarity index 95%
rename from MAINTAINERS.zh-CN.md
rename to docs/i18n/MAINTAINERS.zh-CN.md
index 1fc4f932a9..e6e9d9f473 100644
--- a/MAINTAINERS.zh-CN.md
+++ b/docs/i18n/MAINTAINERS.zh-CN.md
@@ -1,10 +1,10 @@
# Maintainers
-English · Português (Brasil) · Deutsch · Français · 简体中文 · 日本語
+English · Português (Brasil) · Deutsch · Français · 简体中文 · 日本語
本文档定义了 `nexu-io/open-design` 项目中**成为、担任、退出 Maintainer** 的规则。Core Team 个人名册由内部维护,本文档不公开列出——对外公开的是大家共同遵守的规则。
-> **状态**:v1,2026-05-11 起草。配套文档 [`CONTRIBUTING.md`](CONTRIBUTING.md#becoming-a-maintainer) 会把贡献者引到这里读完整规则。
+> **状态**:v1,2026-05-11 起草。配套文档 [`CONTRIBUTING.md`](../../CONTRIBUTING.md#becoming-a-maintainer) 会把贡献者引到这里读完整规则。
---
diff --git a/QUICKSTART.de.md b/docs/i18n/QUICKSTART.de.md
similarity index 97%
rename from QUICKSTART.de.md
rename to docs/i18n/QUICKSTART.de.md
index a78fa281b8..9439d1a44c 100644
--- a/QUICKSTART.de.md
+++ b/docs/i18n/QUICKSTART.de.md
@@ -1,6 +1,6 @@
# Schnellstart
-English · Português (Brasil) · Deutsch · Français · 日本語 · 简体中文 · 繁體中文
+English · Português (Brasil) · Deutsch · Français · 日本語 · 简体中文 · 繁體中文
Führen Sie das vollständige Produkt lokal aus.
@@ -371,9 +371,9 @@ open-design/
## Bezug zur Vision
-Dieser Schnellstart ist der lauffähige Einstieg zur Spec in [`docs/`](docs/). Die Spec beschreibt, wohin das Projekt wächst (siehe [`docs/roadmap.md`](docs/roadmap.md)). Highlights:
+Dieser Schnellstart ist der lauffähige Einstieg zur Spec in [`docs/`](../../docs/). Die Spec beschreibt, wohin das Projekt wächst (siehe [`docs/roadmap.md`](../../docs/roadmap.md)). Highlights:
- `docs/architecture.md` beschreibt den ausgelieferten Stack: Next.js 16 App Router vorne, lokaler daemon dahinter und `apps/web/next.config.ts` Rewrites in dev, damit der Browser mit derselben `/api` Oberfläche spricht.
-- `docs/skills-protocol.md` beschreibt das vollständige `od:` Frontmatter (typed inputs, sliders, capability gating). Dieses MVP liest nur `name` / `description` / `triggers` / `od.mode` / `od.design_system.requires`; erweitern Sie [`apps/daemon/src/skills.ts`](apps/daemon/src/skills.ts), um den Rest hinzuzufügen.
+- `docs/skills-protocol.md` beschreibt das vollständige `od:` Frontmatter (typed inputs, sliders, capability gating). Dieses MVP liest nur `name` / `description` / `triggers` / `od.mode` / `od.design_system.requires`; erweitern Sie [`apps/daemon/src/skills.ts`](../../apps/daemon/src/skills.ts), um den Rest hinzuzufügen.
- `docs/agent-adapters.md` sieht reicheren Dispatch vor (capability detection, streaming tool-calls). Unser `apps/daemon/src/agents.ts` ist ein minimaler Dispatcher: genug, um die Verdrahtung zu beweisen.
- `docs/modes.md` listet vier Modi: prototype / deck / template / design-system. Wir liefern Skills für die ersten beiden; der Picker filtert bereits nach `mode`.
diff --git a/QUICKSTART.fr.md b/docs/i18n/QUICKSTART.fr.md
similarity index 96%
rename from QUICKSTART.fr.md
rename to docs/i18n/QUICKSTART.fr.md
index 63af7c4e9f..827de1165a 100644
--- a/QUICKSTART.fr.md
+++ b/docs/i18n/QUICKSTART.fr.md
@@ -1,6 +1,6 @@
# Quickstart
-English · Português (Brasil) · Deutsch · Français · 日本語 · 简体中文 · 繁體中文
+English · Português (Brasil) · Deutsch · Français · 日本語 · 简体中文 · 繁體中文
Exécutez le produit complet localement.
@@ -49,7 +49,7 @@ Au premier chargement, l’app détecte votre CLI de coding agent installée (Cl
Le menu déroulant **Design System** charge les Design Systems depuis `design-systems/*/DESIGN.md` : starters écrits à la main, product systems intégrés et design skills normalisés. Choisissez-en un pour habiller chaque prototype dans l’esthétique de cette marque.
-Le menu déroulant **Skill** regroupe les entrées par `mode` / `surface` et affiche le Skill par défaut de chaque mode avec un suffixe `· default`. Le catalogue live vient de [`skills/`](skills/) et couvre les workflows web, deck, Design System, image, vidéo et audio. Exemples inclus :
+Le menu déroulant **Skill** regroupe les entrées par `mode` / `surface` et affiche le Skill par défaut de chaque mode avec un suffixe `· default`. Le catalogue live vient de [`skills/`](../../skills/) et couvre les workflows web, deck, Design System, image, vidéo et audio. Exemples inclus :
- **Prototype** — `web-prototype` (générique), `saas-landing`, `dashboard`, `pricing-page`, `docs-page`, `blog-post`, `mobile-app`.
- **Deck / PPT** — `simple-deck` (swipe horizontal single-file) et `magazine-web-ppt` (le bundle `guizang-ppt` depuis [`op7418/guizang-ppt-skill`](https://github.com/op7418/guizang-ppt-skill), par défaut en mode deck, avec ses propres assets/template + 4 références). Les Skills avec side files reçoivent automatiquement un préambule "Skill root (absolute)" pour que l’agent puisse résoudre `assets/template.html` et `references/*.md` depuis le vrai chemin disque au lieu de son CWD.
@@ -372,7 +372,7 @@ open-design/
## Retour à la vision
-Ce Quickstart est la graine exécutable de la spec dans [`docs/`](docs/). La spec décrit vers quoi le projet grandit (voir [`docs/roadmap.md`](docs/roadmap.md)). Points clés :
+Ce Quickstart est la graine exécutable de la spec dans [`docs/`](../../docs/). La spec décrit vers quoi le projet grandit (voir [`docs/roadmap.md`](../../docs/roadmap.md)). Points clés :
- `docs/architecture.md` décrit le stack livré : Next.js 16 App Router devant, daemon local derrière, et rewrites `apps/web/next.config.ts` en dev pour que le navigateur parle toujours à la même surface `/api`.
- `docs/skills-protocol.md` décrit le schéma `od:` complet. Le daemon lit les métadonnées runtime utiles depuis `SKILL.md` pour router les Skills, composer le prompt, afficher les exemples et configurer les surfaces web / image / vidéo / audio ; le protocole reste la référence pour les champs avancés.
diff --git a/QUICKSTART.ja-JP.md b/docs/i18n/QUICKSTART.ja-JP.md
similarity index 97%
rename from QUICKSTART.ja-JP.md
rename to docs/i18n/QUICKSTART.ja-JP.md
index 42ef451632..5b26b554cc 100644
--- a/QUICKSTART.ja-JP.md
+++ b/docs/i18n/QUICKSTART.ja-JP.md
@@ -1,6 +1,6 @@
# クイックスタート
-English · Português (Brasil) · Deutsch · Français · 日本語 · 简体中文 · 繁體中文
+English · Português (Brasil) · Deutsch · Français · 日本語 · 简体中文 · 繁體中文
製品全体をローカルで実行します。
@@ -371,7 +371,7 @@ open-design/
## ビジョンへのマッピング
-このクイックスタートは [`docs/`](docs/) にある仕様の実行可能なシードです。仕様は、これがどこへ成長するかを記述しています([`docs/roadmap.md`](docs/roadmap.md) を参照)。ハイライト:
+このクイックスタートは [`docs/`](../../docs/) にある仕様の実行可能なシードです。仕様は、これがどこへ成長するかを記述しています([`docs/roadmap.md`](../../docs/roadmap.md) を参照)。ハイライト:
- `docs/architecture.md` は、出荷されたスタックを説明しています:前面に Next.js 16 App Router、その背後にローカル daemon、そして `apps/web/next.config.ts` の dev 時 rewrites によってブラウザが同じ `/api` 表面と通信し続けるようにします。
- `docs/skills-protocol.md` は、完全な `od:` フロントマター(型付き入力、スライダー、機能ゲーティング)について説明しています。この MVP は `name` / `description` / `triggers` / `od.mode` / `od.design_system.requires` のみを読み取ります — 残りを追加するには `apps/daemon/src/skills.ts` を拡張してください。
diff --git a/QUICKSTART.ko.md b/docs/i18n/QUICKSTART.ko.md
similarity index 98%
rename from QUICKSTART.ko.md
rename to docs/i18n/QUICKSTART.ko.md
index 5249a57dbb..0d7c1ed882 100644
--- a/QUICKSTART.ko.md
+++ b/docs/i18n/QUICKSTART.ko.md
@@ -8,7 +8,7 @@
- **Node.js:** `~24`(Node 24.x). `package.json#engines`로 버전을 강제합니다.
- **pnpm:** `10.33.x`. `packageManager`에 `pnpm@10.33.2`를 고정해 두었으니, Corepack을 쓰면 고정된 버전이 자동으로 선택됩니다.
-- **OS:** macOS, Linux, WSL2가 주요 지원 환경입니다. Windows 네이티브도 지원합니다. 자주 겪는 설치 문제는 [`docs/windows-troubleshooting.md`](docs/windows-troubleshooting.md)를 참고하세요.
+- **OS:** macOS, Linux, WSL2가 주요 지원 환경입니다. Windows 네이티브도 지원합니다. 자주 겪는 설치 문제는 [`docs/windows-troubleshooting.md`](../../docs/windows-troubleshooting.md)를 참고하세요.
- **선택: 로컬 에이전트 CLI:** Claude Code, Codex, Devin for Terminal, Gemini CLI, OpenCode, Cursor Agent, Qwen, Qoder CLI, GitHub Copilot CLI 등. 설치된 CLI가 없으면 Settings에서 BYOK API 모드를 쓰면 됩니다.
### 로컬 에이전트 CLI와 PATH
@@ -383,7 +383,7 @@ open-design/
## 비전과 다시 잇기
-이 빠른 시작은 [`docs/`](docs/)에 담긴 스펙을 실제로 돌릴 수 있게 만든 씨앗입니다. 스펙은 이것이 어디로 자라날지 설명합니다([`docs/roadmap.md`](docs/roadmap.md) 참고). 핵심만 짚으면 다음과 같습니다.
+이 빠른 시작은 [`docs/`](../../docs/)에 담긴 스펙을 실제로 돌릴 수 있게 만든 씨앗입니다. 스펙은 이것이 어디로 자라날지 설명합니다([`docs/roadmap.md`](../../docs/roadmap.md) 참고). 핵심만 짚으면 다음과 같습니다.
- `docs/architecture.md`는 출시된 스택을 설명합니다. 앞단의 Next.js 16 App Router, 그 뒤의 로컬 daemon, 그리고 dev에서 `apps/web/next.config.ts`의 rewrite가 브라우저를 같은 `/api` 표면과 계속 통신하게 유지하는 구조입니다.
- `docs/skills-protocol.md`는 `od:` frontmatter 전체(타입 입력, 슬라이더, 기능 게이팅)를 설명합니다. 이 MVP는 `name` / `description` / `triggers` / `od.mode` / `od.design_system.requires`만 읽습니다. 나머지를 추가하려면 `apps/daemon/src/skills.ts`를 확장하세요.
diff --git a/QUICKSTART.pt-BR.md b/docs/i18n/QUICKSTART.pt-BR.md
similarity index 97%
rename from QUICKSTART.pt-BR.md
rename to docs/i18n/QUICKSTART.pt-BR.md
index 8234a99bff..32e3a826e7 100644
--- a/QUICKSTART.pt-BR.md
+++ b/docs/i18n/QUICKSTART.pt-BR.md
@@ -1,6 +1,6 @@
# Início rápido
-English · Português (Brasil) · Deutsch · Français · 日本語 · 简体中文 · 繁體中文
+English · Português (Brasil) · Deutsch · Français · 日本語 · 简体中文 · 繁體中文
Rode o produto inteiro localmente.
@@ -371,7 +371,7 @@ open-design/
## Voltando à visão
-Este Início rápido é a semente executável da spec em [`docs/`](docs/). A spec descreve para onde isso evolui (veja [`docs/roadmap.md`](docs/roadmap.md)). Destaques:
+Este Início rápido é a semente executável da spec em [`docs/`](../../docs/). A spec descreve para onde isso evolui (veja [`docs/roadmap.md`](../../docs/roadmap.md)). Destaques:
- `docs/architecture.md` descreve a stack entregue: Next.js 16 App Router na frente, daemon local atrás, e os rewrites de `apps/web/next.config.ts` em dev mantendo o navegador conversando com a mesma superfície `/api`.
- `docs/skills-protocol.md` descreve o frontmatter `od:` completo (inputs tipados, sliders, gating de capacidades). Este MVP lê apenas `name` / `description` / `triggers` / `od.mode` / `od.design_system.requires` — estenda `apps/daemon/src/skills.ts` para cobrir o resto.
diff --git a/QUICKSTART.zh-CN.md b/docs/i18n/QUICKSTART.zh-CN.md
similarity index 97%
rename from QUICKSTART.zh-CN.md
rename to docs/i18n/QUICKSTART.zh-CN.md
index b5e1ac3d72..eb34f7939e 100644
--- a/QUICKSTART.zh-CN.md
+++ b/docs/i18n/QUICKSTART.zh-CN.md
@@ -1,6 +1,6 @@
# 快速上手 · Quickstart
-English · Português (Brasil) · Deutsch · Français · 日本語 · 简体中文 · 繁體中文
+English · Português (Brasil) · Deutsch · Français · 日本語 · 简体中文 · 繁體中文
在本地运行完整的产品。
@@ -371,7 +371,7 @@ open-design/
## 回到产品愿景
-本 Quickstart 对应 [`docs/`](docs/) 中 spec 的可运行起点;spec 描述了其演进方向(见 [`docs/roadmap.md`](docs/roadmap.md))。要点如下:
+本 Quickstart 对应 [`docs/`](../../docs/) 中 spec 的可运行起点;spec 描述了其演进方向(见 [`docs/roadmap.md`](../../docs/roadmap.md))。要点如下:
- `docs/architecture.md` 描述了当前已交付的 stack:前端为 Next.js 16 App Router,后端为本地 daemon;`apps/web/next.config.ts` 在 dev 模式下进行 rewrite,使浏览器始终通过同一套 `/api` 入口通信。
- `docs/skills-protocol.md` 描述了完整的 `od:` frontmatter(类型化输入、slider、能力 gating)。当前 MVP 仅读取 `name` / `description` / `triggers` / `od.mode` / `od.design_system.requires` —— 如需支持更多字段,请扩展 `apps/daemon/src/skills.ts`。
diff --git a/QUICKSTART.zh-TW.md b/docs/i18n/QUICKSTART.zh-TW.md
similarity index 97%
rename from QUICKSTART.zh-TW.md
rename to docs/i18n/QUICKSTART.zh-TW.md
index 97cefcbee3..29d6678560 100644
--- a/QUICKSTART.zh-TW.md
+++ b/docs/i18n/QUICKSTART.zh-TW.md
@@ -1,6 +1,6 @@
# 快速上手 · Quickstart
-English · Português (Brasil) · Deutsch · Français · 日本語 · 简体中文 · 繁體中文
+English · Português (Brasil) · Deutsch · Français · 日本語 · 简体中文 · 繁體中文
在本地執行完整的產品。
@@ -371,7 +371,7 @@ open-design/
## 回到產品願景
-本 Quickstart 對應 [`docs/`](docs/) 中 spec 的可執行起點;spec 描述了其演進方向(見 [`docs/roadmap.md`](docs/roadmap.md))。要點如下:
+本 Quickstart 對應 [`docs/`](../../docs/) 中 spec 的可執行起點;spec 描述了其演進方向(見 [`docs/roadmap.md`](../../docs/roadmap.md))。要點如下:
- `docs/architecture.md` 描述了目前這套已交付的 stack:前端為 Next.js 16 App Router,後端為本地 daemon;`apps/web/next.config.ts` 在 dev 模式下進行 rewrite,使瀏覽器始終透過同一套 `/api` 入口通訊。
- `docs/skills-protocol.md` 描述了完整的 `od:` frontmatter(型別化輸入、slider、能力 gating)。目前 MVP 僅讀取 `name` / `description` / `triggers` / `od.mode` / `od.design_system.requires` —— 如需支援更多欄位,請擴展 `apps/daemon/src/skills.ts`。
diff --git a/README.ar.md b/docs/i18n/README.ar.md
similarity index 76%
rename from README.ar.md
rename to docs/i18n/README.ar.md
index 179bc31e4f..a784525452 100644
--- a/README.ar.md
+++ b/docs/i18n/README.ar.md
@@ -4,7 +4,7 @@
> 🔥 **Open Design 0.9.0 وصل: أنشئ دون أي إعداد.** [Model Router الرسمي](https://open-design.ai/amr) مدمج مباشرة في التطبيق — لا إعدادات إضافية، ولا CLI لتثبيته، ولا مفتاح API لتجهيزه. ما عليك سوى فتح التطبيق وتسجيل الدخول والبدء فورًا في التصميم والإنشاء. [حمّل 0.9.0](https://github.com/nexu-io/open-design/releases) · [انضم إلى النقاش](https://github.com/nexu-io/open-design/discussions/3524)
>
-> 🏅 **برنامج Open Design Fellow مفتوح الآن.** إن كنت تؤمن أنت أيضًا بأن التصميم يجب أن يكون مفتوحًا — كُن Open Design Fellow، وشارك في تشكيل المنتج جنبًا إلى جنب مع الفريق الأساسي، وساعد المزيد من الناس على المشاركة في تحديد مستقبل التصميم. التفاصيل ← [`MAINTAINERS.md`](MAINTAINERS.md) و[Discord](https://discord.gg/qhbcCH8Am4).
+> 🏅 **برنامج Open Design Fellow مفتوح الآن.** إن كنت تؤمن أنت أيضًا بأن التصميم يجب أن يكون مفتوحًا — كُن Open Design Fellow، وشارك في تشكيل المنتج جنبًا إلى جنب مع الفريق الأساسي، وساعد المزيد من الناس على المشاركة في تحديد مستقبل التصميم. التفاصيل ← [`MAINTAINERS.md`](../../MAINTAINERS.md) و[Discord](https://discord.gg/qhbcCH8Am4).
@@ -19,12 +19,12 @@
-English · Español · Português · Deutsch · Français · 简体中文 · 繁體中文 · 한국어 · 日本語 · العربية · Русский · Українська · Türkçe
+English · Español · Português · Deutsch · Français · 简体中文 · 繁體中文 · 한국어 · 日本語 · العربية · Русский · Українська · Türkçe
---
@@ -137,7 +137,7 @@
**لا توجد واجهة CLI مثبَّتة؟** يمنحك وكيل BYOK على `POST /api/proxy/{anthropic,openai,azure,google,ollama,senseaudio}/stream` الحلقة نفسها (دون إنشاء عملية) — الصق `baseUrl` + `apiKey` + `model`، مع دعم OpenAI وAnthropic وAzure OpenAI وGoogle Gemini وOllama وLM Studio وvLLM، أو أي نقطة نهاية متوافقة مع OpenAI. تمنع حماية SSRF لكل هدف عناوين IP الداخلية / link-local / CGNAT عند حافة الـ daemon.
-يقيم عقد المحوّل ومحلّلات البثّ في [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts). إضافة واجهة CLI جديدة تتطلب مدخلًا واحدًا — راجع [`docs/agent-adapters.md`](docs/agent-adapters.md).
+يقيم عقد المحوّل ومحلّلات البثّ في [`apps/daemon/src/agents.ts`](../../apps/daemon/src/agents.ts). إضافة واجهة CLI جديدة تتطلب مدخلًا واحدًا — راجع [`docs/agent-adapters.md`](../../docs/agent-adapters.md).
---
@@ -152,21 +152,21 @@
-
+
واجهة الدخول — اختر مهارة، اختر نظام تصميم، اكتب الموجز. سطح واحد للنماذج الأولية ولوحات المعلومات والعروض التقديمية وتطبيقات الجوال وصفحات المجلات.
-
+
نموذج أولي للجوال — هيكل iPhone 15 Pro دقيق بالبكسل، وتدفقات متعددة الشاشات. لا يعيد الوكيل أبدًا رسم إطار الهاتف؛ إذ تقيم إطارات الأجهزة المشتركة في assets/frames/.
-
+
نموذج أولي للويب — لوحة معلومات تحريرية بأشرطة تمرير ومؤشرات أداء رئيسية ومخططات. مُصيَّرة مباشرة من design-templates/dating-web/.
-
+
نموذج أولي لتطبيق جوال — تدفق مُلعَّب بثلاث شاشات مع أشرطة XP وتفاصيل المهام. سلّمه مباشرة إلى Cursor / Codex / Claude Code لتحويله إلى React/Next/Vue.
@@ -179,21 +179,21 @@
-
+
لوحة معلومات حية — جدار مؤشرات أداء قابل للتحرير تُظهِر لوحة تعديلاته المعاملات الجديرة بالضبط. يصدر الوكيل بيان manifest، ويُعاد عرض iframe دون إعادة تحميل.
-
+
غرفة اتخاذ القرار — مخرَج إحاطة متعدد المصادر لاجتماعات المنتج / البحث / العمليات.
-
+
لوحة معلومات بأسلوب GitHub — مقاييس المستودع معروضة كمخرَج حي.
-
+
قالب لوحة معلومات حية من Flow — قالب مؤشرات أداء خاص بمجال محدد، مُعلَّم وفق DESIGN.md النشِط.
@@ -204,11 +204,11 @@
-
+
وضع العرض التقديمي (guizang-ppt) — تخطيطات بأسلوب المجلات، عنصر WebGL رئيسي، قوائم تحقق P0/P1/P2. مُجمَّع حرفيًا من op7418/guizang-ppt-skill مع الحفاظ على ترخيصه الأصلي.
-
+
عرض تقديمي بأسلوب Swiss International — مرتكز على الشبكة، بلمسات أحادية اللون. واحد من 15 قالب عرض تقديمي و36 سمة ضمن design-templates/html-ppt-*/.
@@ -228,7 +228,7 @@
-**93 موجّهًا جاهزًا لإعادة الإنتاج** تقيم في [`prompt-templates/`](prompt-templates/) — صور مصغّرة للمعاينة، ونصّ الموجّه الكامل، والنموذج المستهدف، ونسبة الأبعاد، وإسناد المصدر. نقرة واحدة تُسقِط موجزًا في أداة الإنشاء.
+**93 موجّهًا جاهزًا لإعادة الإنتاج** تقيم في [`prompt-templates/`](../../prompt-templates/) — صور مصغّرة للمعاينة، ونصّ الموجّه الكامل، والنموذج المستهدف، ونسبة الأبعاد، وإسناد المصدر. نقرة واحدة تُسقِط موجزًا في أداة الإنشاء.
### 5 · الفيديو وHyperFrames — رسوميات حركية أصيلة للوكلاء
@@ -236,20 +236,20 @@
/open-design.json` (أو ما يكافئه على المنصة) إضافة إلى مقتطف MCP جاهز للصق. يحصل Cursor على رابط عميق بنقرة واحدة؛ ويحصل Claude Code على سطر `claude mcp add-json` واحد؛ ويحصل كل وكيل آخر على JSON بالمخطط الذي تتوقعه إعداداته. سير العمل الكامل لكل وكيل ← **Settings → MCP server** في تطبيق سطح المكتب، أو [`docs/agent-adapters.md`](docs/agent-adapters.md).
+**بالنسبة لوكيل يبدأ من الصفر،** يضع المثبِّت `~/.config//open-design.json` (أو ما يكافئه على المنصة) إضافة إلى مقتطف MCP جاهز للصق. يحصل Cursor على رابط عميق بنقرة واحدة؛ ويحصل Claude Code على سطر `claude mcp add-json` واحد؛ ويحصل كل وكيل آخر على JSON بالمخطط الذي تتوقعه إعداداته. سير العمل الكامل لكل وكيل ← **Settings → MCP server** في تطبيق سطح المكتب، أو [`docs/agent-adapters.md`](../../docs/agent-adapters.md).
**نموذج الأمان.** للقراءة فقط افتراضيًا، ويرتبط الـ daemon بـ `127.0.0.1`، ويُمنع SSRF عند حافة الوكيل. يتطلب الكشف على الشبكة المحلية تعيين `OD_BIND_HOST` صريح إضافة إلى `OD_ALLOWED_ORIGINS`. تبقى بيانات اعتماد الموصِّلات ومسارات معاينة المخرجات الحية على loopback فقط أيًا كان.
@@ -374,34 +374,34 @@ od skill list --scenario marketing
## المهارات
-**أكثر من 100 مهارة تُشحَن جاهزة** — كل منها مجلد ضمن [`skills/`](skills/) يتبع اصطلاح [`SKILL.md`][skill] الخاص بـ Claude Code، موسَّعًا بترويسة `od:` (`mode` و`platform` و`scenario` و`preview.type` و`design_system.requires` و`default_for` و`fidelity` و`example_prompt`). أسقِط مجلدًا، وأعِد تشغيل الـ daemon، فيظهر في المُنتقي.
+**أكثر من 100 مهارة تُشحَن جاهزة** — كل منها مجلد ضمن [`skills/`](../../skills/) يتبع اصطلاح [`SKILL.md`][skill] الخاص بـ Claude Code، موسَّعًا بترويسة `od:` (`mode` و`platform` و`scenario` و`preview.type` و`design_system.requires` و`default_for` و`fidelity` و`example_prompt`). أسقِط مجلدًا، وأعِد تشغيل الـ daemon، فيظهر في المُنتقي.
يرسي **وضعان** أساس الكتالوج: `prototype` (مخرجات من صفحة واحدة للويب/الجوال/سطح المكتب) و`deck` (عروض تقديمية بالسحب الأفقي). إضافة إلى أوضاع `image` و`video` و`audio` و`template` و`design-system` و`utility`. ويجمّعها حقل **`scenario`** حسب الجمهور: `design` · `marketing` · `operation` · `engineering` · `product` · `finance` · `hr` · `sale` · `personal`.
| المهارة | الوضع | السيناريو | ما تنتجه |
|---|---|---|---|
-| [`web-prototype`](design-templates/web-prototype/) | prototype | design | صفحة هبوط / عنصر رئيسي افتراضي |
-| [`saas-landing`](design-templates/saas-landing/) | prototype | marketing | عنصر رئيسي / ميزات / تسعير / دعوة لاتخاذ إجراء |
-| [`dashboard`](design-templates/dashboard/) | prototype | operation | إدارة / تحليلات (مع شريط جانبي) |
-| [`mobile-app`](design-templates/mobile-app/) | prototype | design | تطبيق مؤطَّر بـ iPhone 15 Pro / Pixel |
-| [`mobile-onboarding`](design-templates/mobile-onboarding/) | prototype | design | تدفق شاشة بداية · عرض القيمة · تسجيل دخول |
-| [`social-carousel`](design-templates/social-carousel/) | prototype | marketing | عرض دوّار من 3 بطاقات 1080×1080 |
-| [`email-marketing`](design-templates/email-marketing/) | prototype | marketing | بريد علامة تجارية آمن مع بديل جدولي |
-| [`magazine-poster`](design-templates/magazine-poster/) | prototype | marketing | تخطيط مجلة من صفحة واحدة |
-| [`motion-frames`](design-templates/motion-frames/) | prototype | marketing | عنصر رئيسي بحركة CSS متكررة |
-| [`sprite-animation`](design-templates/sprite-animation/) | prototype | marketing | شرح متحرك ببكسل 8-bit |
-| [`pm-spec`](design-templates/pm-spec/) | prototype | product | مستند مواصفة منتج (مع جدول محتويات + سجل قرارات) |
-| [`team-okrs`](design-templates/team-okrs/) | prototype | product | بطاقة نتائج OKR |
-| [`eng-runbook`](design-templates/eng-runbook/) | prototype | engineering | دليل إجراءات الحوادث |
-| [`finance-report`](design-templates/finance-report/) | prototype | finance | ملخّص مالي تنفيذي |
-| [`hr-onboarding`](design-templates/hr-onboarding/) | prototype | hr | خطة إعداد دور وظيفي |
-| [`guizang-ppt`](design-templates/guizang-ppt/) | deck | marketing | عرض ويب بأسلوب المجلات (افتراضي لوضع العرض التقديمي) |
-| [`html-ppt-*`](design-templates/) | deck | marketing | 15 قالب عرض تقديمي × 36 سمة (القالب الرئيسي في [`design-templates/html-ppt/`](design-templates/html-ppt/)) |
-| [`hyperframes`](design-templates/hyperframes/) | video | marketing | رسوميات حركية HTML → MP4 (إطار HeyGen مفتوح المصدر) |
-| [`critique`](design-templates/critique/) | utility | design | ورقة نقد ذاتي بخمسة أبعاد |
-| [`tweaks`](design-templates/tweaks/) | utility | design | بيان لوحة تعديلات يصدره الذكاء الاصطناعي |
+| [`web-prototype`](../../design-templates/web-prototype/) | prototype | design | صفحة هبوط / عنصر رئيسي افتراضي |
+| [`saas-landing`](../../design-templates/saas-landing/) | prototype | marketing | عنصر رئيسي / ميزات / تسعير / دعوة لاتخاذ إجراء |
+| [`dashboard`](../../design-templates/dashboard/) | prototype | operation | إدارة / تحليلات (مع شريط جانبي) |
+| [`mobile-app`](../../design-templates/mobile-app/) | prototype | design | تطبيق مؤطَّر بـ iPhone 15 Pro / Pixel |
+| [`mobile-onboarding`](../../design-templates/mobile-onboarding/) | prototype | design | تدفق شاشة بداية · عرض القيمة · تسجيل دخول |
+| [`social-carousel`](../../design-templates/social-carousel/) | prototype | marketing | عرض دوّار من 3 بطاقات 1080×1080 |
+| [`email-marketing`](../../design-templates/email-marketing/) | prototype | marketing | بريد علامة تجارية آمن مع بديل جدولي |
+| [`magazine-poster`](../../design-templates/magazine-poster/) | prototype | marketing | تخطيط مجلة من صفحة واحدة |
+| [`motion-frames`](../../design-templates/motion-frames/) | prototype | marketing | عنصر رئيسي بحركة CSS متكررة |
+| [`sprite-animation`](../../design-templates/sprite-animation/) | prototype | marketing | شرح متحرك ببكسل 8-bit |
+| [`pm-spec`](../../design-templates/pm-spec/) | prototype | product | مستند مواصفة منتج (مع جدول محتويات + سجل قرارات) |
+| [`team-okrs`](../../design-templates/team-okrs/) | prototype | product | بطاقة نتائج OKR |
+| [`eng-runbook`](../../design-templates/eng-runbook/) | prototype | engineering | دليل إجراءات الحوادث |
+| [`finance-report`](../../design-templates/finance-report/) | prototype | finance | ملخّص مالي تنفيذي |
+| [`hr-onboarding`](../../design-templates/hr-onboarding/) | prototype | hr | خطة إعداد دور وظيفي |
+| [`guizang-ppt`](../../design-templates/guizang-ppt/) | deck | marketing | عرض ويب بأسلوب المجلات (افتراضي لوضع العرض التقديمي) |
+| [`html-ppt-*`](../../design-templates/) | deck | marketing | 15 قالب عرض تقديمي × 36 سمة (القالب الرئيسي في [`design-templates/html-ppt/`](../../design-templates/html-ppt/)) |
+| [`hyperframes`](../../design-templates/hyperframes/) | video | marketing | رسوميات حركية HTML → MP4 (إطار HeyGen مفتوح المصدر) |
+| [`critique`](../../design-templates/critique/) | utility | design | ورقة نقد ذاتي بخمسة أبعاد |
+| [`tweaks`](../../design-templates/tweaks/) | utility | design | بيان لوحة تعديلات يصدره الذكاء الاصطناعي |
-بروتوكول المهارات الكامل ← [`docs/skills-protocol.md`](docs/skills-protocol.md). نقطة نهاية سجل المهارات: `GET /api/skills`.
+بروتوكول المهارات الكامل ← [`docs/skills-protocol.md`](../../docs/skills-protocol.md). نقطة نهاية سجل المهارات: `GET /api/skills`.
---
@@ -432,7 +432,7 @@ od skill list --scenario marketing
-أعِد استيراد المكتبة عبر [`scripts/sync-design-systems.ts`](scripts/sync-design-systems.ts). أضف علامتك التجارية الخاصة ← أسقِط ملف `DESIGN.md` في `design-systems//`. الدليل الكامل ← [`design-systems/README.md`](design-systems/README.md).
+أعِد استيراد المكتبة عبر [`scripts/sync-design-systems.ts`](../../scripts/sync-design-systems.ts). أضف علامتك التجارية الخاصة ← أسقِط ملف `DESIGN.md` في `design-systems//`. الدليل الكامل ← [`design-systems/README.md`](../../design-systems/README.md).
[acd2]: https://github.com/VoltAgent/awesome-design-md
@@ -440,24 +440,24 @@ od skill list --scenario marketing
## الإضافات
-**261 إضافة رسمية** تقيم في [`plugins/_official/`](plugins/_official/). كل إضافة هي **مجلد مهارة-وكيل قابل للنقل** — ملف `SKILL.md` (قابل للقراءة من أي وكيل يدعم Agent Skills)، إضافة إلى بيان `open-design.json` اختياري يمنح Open Design بيانات وصفية للسوق، ومدخلات، ومعاينات، وخطوط أنابيب، وتصريحات قدرات. انتقل مباشرة إلى فئة:
+**261 إضافة رسمية** تقيم في [`plugins/_official/`](../../plugins/_official/). كل إضافة هي **مجلد مهارة-وكيل قابل للنقل** — ملف `SKILL.md` (قابل للقراءة من أي وكيل يدعم Agent Skills)، إضافة إلى بيان `open-design.json` اختياري يمنح Open Design بيانات وصفية للسوق، ومدخلات، ومعاينات، وخطوط أنابيب، وتصريحات قدرات. انتقل مباشرة إلى فئة:
| الفئة | العدد | المحتويات |
|---|---|---|
-| [`scenarios/`](plugins/_official/scenarios/) | 11 | سيناريوهات تصميم كاملة — [`od-default`](plugins/_official/scenarios/od-default/)، [`od-design-refine`](plugins/_official/scenarios/od-design-refine/)، [`od-figma-migration`](plugins/_official/scenarios/od-figma-migration/)، [`od-code-migration`](plugins/_official/scenarios/od-code-migration/)، [`od-react-export`](plugins/_official/scenarios/od-react-export/)، [`od-nextjs-export`](plugins/_official/scenarios/od-nextjs-export/)، [`od-vue-export`](plugins/_official/scenarios/od-vue-export/)، [`od-media-generation`](plugins/_official/scenarios/od-media-generation/)، [`od-new-generation`](plugins/_official/scenarios/od-new-generation/)، [`od-tune-collab`](plugins/_official/scenarios/od-tune-collab/)، [`od-plugin-authoring`](plugins/_official/scenarios/od-plugin-authoring/) |
-| [`image-templates/`](plugins/_official/image-templates/) | 45 | موجّهات صور بلقطة واحدة — تحريرية، سينمائية، منتجات، بورتريه |
-| [`video-templates/`](plugins/_official/video-templates/) | 50 | قوالب حركة HyperFrames / Seedance / Veo |
-| [`design-systems/`](plugins/_official/design-systems/) | 142 | ملفات `DESIGN.md` للعلامات التجارية مغلَّفة كإضافات |
-| [`atoms/`](plugins/_official/atoms/) | 13 | أجزاء واجهة قابلة لإعادة الاستخدام (أزرار، عناصر رئيسية، بطاقات مؤشرات أداء) |
-| [`examples/`](plugins/_official/examples/) | 140 | مخرجات مرجعية قابلة لإعادة المزج |
+| [`scenarios/`](../../plugins/_official/scenarios/) | 11 | سيناريوهات تصميم كاملة — [`od-default`](../../plugins/_official/scenarios/od-default/)، [`od-design-refine`](../../plugins/_official/scenarios/od-design-refine/)، [`od-figma-migration`](../../plugins/_official/scenarios/od-figma-migration/)، [`od-code-migration`](../../plugins/_official/scenarios/od-code-migration/)، [`od-react-export`](../../plugins/_official/scenarios/od-react-export/)، [`od-nextjs-export`](../../plugins/_official/scenarios/od-nextjs-export/)، [`od-vue-export`](../../plugins/_official/scenarios/od-vue-export/)، [`od-media-generation`](../../plugins/_official/scenarios/od-media-generation/)، [`od-new-generation`](../../plugins/_official/scenarios/od-new-generation/)، [`od-tune-collab`](../../plugins/_official/scenarios/od-tune-collab/)، [`od-plugin-authoring`](../../plugins/_official/scenarios/od-plugin-authoring/) |
+| [`image-templates/`](../../plugins/_official/image-templates/) | 45 | موجّهات صور بلقطة واحدة — تحريرية، سينمائية، منتجات، بورتريه |
+| [`video-templates/`](../../plugins/_official/video-templates/) | 50 | قوالب حركة HyperFrames / Seedance / Veo |
+| [`design-systems/`](../../plugins/_official/design-systems/) | 142 | ملفات `DESIGN.md` للعلامات التجارية مغلَّفة كإضافات |
+| [`atoms/`](../../plugins/_official/atoms/) | 13 | أجزاء واجهة قابلة لإعادة الاستخدام (أزرار، عناصر رئيسية، بطاقات مؤشرات أداء) |
+| [`examples/`](../../plugins/_official/examples/) | 140 | مخرجات مرجعية قابلة لإعادة المزج |
-كذلك [`plugins/community/`](plugins/community/) لإضافات المجتمع و[`plugins/registry/`](plugins/registry/) لسير النشر.
+كذلك [`plugins/community/`](../../plugins/community/) لإضافات المجتمع و[`plugins/registry/`](../../plugins/registry/) لسير النشر.
### ما يمكن للإضافات فعله
-- 🤖 **التشغيل في أي وكيل برمجة** — [Claude Code](docs/agent-adapters.md) وCodex وCursor وCopilot و[OpenClaw](https://github.com/openclaw/openclaw) و[Antigravity](https://antigravity.google) وHermes وKimi… عبر بروتوكول المهارات نفسه الذي يعرفه الوكيل أصلًا.
-- 🔁 **نقل سير عمل Figma / Pencil** ← شفرة React أو Next.js أو Vue. راجع [`od-figma-migration`](plugins/_official/scenarios/od-figma-migration/).
-- 🛠️ **تحديث قاعدة شفرة موجودة وفق مواصفة علامة تجارية** — وجّه إضافة نحو مستودع `git` + ملف `DESIGN.md`، واحصل على PR. راجع [`od-code-migration`](plugins/_official/scenarios/od-code-migration/).
+- 🤖 **التشغيل في أي وكيل برمجة** — [Claude Code](../../docs/agent-adapters.md) وCodex وCursor وCopilot و[OpenClaw](https://github.com/openclaw/openclaw) و[Antigravity](https://antigravity.google) وHermes وKimi… عبر بروتوكول المهارات نفسه الذي يعرفه الوكيل أصلًا.
+- 🔁 **نقل سير عمل Figma / Pencil** ← شفرة React أو Next.js أو Vue. راجع [`od-figma-migration`](../../plugins/_official/scenarios/od-figma-migration/).
+- 🛠️ **تحديث قاعدة شفرة موجودة وفق مواصفة علامة تجارية** — وجّه إضافة نحو مستودع `git` + ملف `DESIGN.md`، واحصل على PR. راجع [`od-code-migration`](../../plugins/_official/scenarios/od-code-migration/).
- 💾 **الاحتفاظ بسير عمل مخصّص** — تجلس قوالب فريقك القابلة لإعادة الاستخدام بجوار القوالب المشحونة.
### استخدام الإضافات
@@ -503,16 +503,16 @@ od plugin validate ./my-plugin # check manifest / file
pnpm guard && pnpm --filter @open-design/plugin-runtime typecheck
```
-مجموعة الحقول الكاملة وعقد وقت التشغيل ← [`plugins/spec/SPEC.md`](plugins/spec/SPEC.md)؛ تطوير إضافة بوكيل برمجة ← [`plugins/spec/AGENT-DEVELOPMENT.md`](plugins/spec/AGENT-DEVELOPMENT.md)؛ قوالب دنيا جاهزة للصق ← [`plugins/spec/examples/`](plugins/spec/examples/).
+مجموعة الحقول الكاملة وعقد وقت التشغيل ← [`plugins/spec/SPEC.md`](../../plugins/spec/SPEC.md)؛ تطوير إضافة بوكيل برمجة ← [`plugins/spec/AGENT-DEVELOPMENT.md`](../../plugins/spec/AGENT-DEVELOPMENT.md)؛ قوالب دنيا جاهزة للصق ← [`plugins/spec/examples/`](../../plugins/spec/examples/).
### المساهمة بإضافة
-1. أسقِط مجلد الإضافة في [`plugins/community/`](plugins/community/) (الإضافات الخارجية)، أو — لشحنها مجمَّعة مع Open Design — في المستوى المطابق ضمن [`plugins/_official/`](plugins/_official/).
+1. أسقِط مجلد الإضافة في [`plugins/community/`](../../plugins/community/) (الإضافات الخارجية)، أو — لشحنها مجمَّعة مع Open Design — في المستوى المطابق ضمن [`plugins/_official/`](../../plugins/_official/).
2. اجتز التحقق: `od plugin validate` و`pnpm guard` و`pnpm --filter @open-design/plugin-runtime typecheck`.
-3. املأ الـ PR باستخدام القالب في [`plugins/spec/CONTRIBUTING.md`](plugins/spec/CONTRIBUTING.md) (المعرّف، الإصدار، المسار، الوضع، القدرات، أمثلة التشغيل؛ أرفِق لقطة شاشة / معاينة للإضافات البصرية).
-4. للنشر على سجل خارجي (skills.sh / ClawHub / GitHub مستقل) ← [`plugins/spec/PUBLISHING-REGISTRIES.md`](plugins/spec/PUBLISHING-REGISTRIES.md).
+3. املأ الـ PR باستخدام القالب في [`plugins/spec/CONTRIBUTING.md`](../../plugins/spec/CONTRIBUTING.md) (المعرّف، الإصدار، المسار، الوضع، القدرات، أمثلة التشغيل؛ أرفِق لقطة شاشة / معاينة للإضافات البصرية).
+4. للنشر على سجل خارجي (skills.sh / ClawHub / GitHub مستقل) ← [`plugins/spec/PUBLISHING-REGISTRIES.md`](../../plugins/spec/PUBLISHING-REGISTRIES.md).
-نقطة نهاية سجل الإضافات: `GET /api/plugins`. نظرة عامة على الدليل ← [`plugins/README.md`](plugins/README.md) ([简体中文](plugins/README.zh-CN.md)).
+نقطة نهاية سجل الإضافات: `GET /api/plugins`. نظرة عامة على الدليل ← [`plugins/README.md`](../../plugins/README.md) ([简体中文](../../plugins/README.zh-CN.md)).
---
@@ -555,7 +555,7 @@ pnpm guard && pnpm --filter @open-design/plugin-runtime typecheck
| سطح المكتب | غلاف Electron + مُصيِّر معزول + IPC جانبي (STATUS · EVAL · SCREENSHOT · CONSOLE · CLICK · SHUTDOWN) |
| دورة الحياة | نقطة دخول واحدة: `pnpm tools-dev` (start / stop / run / status / logs / inspect / check) |
-البنية المعمارية الكاملة ← [`docs/architecture.md`](docs/architecture.md). بروتوكول المهارات ← [`docs/skills-protocol.md`](docs/skills-protocol.md). عقد محوّل الوكلاء ← [`docs/agent-adapters.md`](docs/agent-adapters.md).
+البنية المعمارية الكاملة ← [`docs/architecture.md`](../../docs/architecture.md). بروتوكول المهارات ← [`docs/skills-protocol.md`](../../docs/skills-protocol.md). عقد محوّل الوكلاء ← [`docs/agent-adapters.md`](../../docs/agent-adapters.md).
---
@@ -579,7 +579,7 @@ pnpm guard && pnpm --filter @open-design/plugin-runtime typecheck
- [ ] إضافات نقل Figma / Pencil ← React / Next / Vue (ألفا)
- [ ] إضافة تحديث قاعدة شفرة موجودة (وجّهها نحو مستودع git + ملف `DESIGN.md`)
-التسليم المرحلي ← [`docs/roadmap.md`](docs/roadmap.md).
+التسليم المرحلي ← [`docs/roadmap.md`](../../docs/roadmap.md).
---
@@ -604,12 +604,12 @@ pnpm guard && pnpm --filter @open-design/plugin-runtime typecheck
| تريد أن تشحن… | كيف | أين |
|---|---|---|
-| **مهارة** جديدة | أسقِط مجلدًا يحوي `SKILL.md` + `assets/` + `references/` | [`skills/`](skills/) · المواصفة في [`docs/skills-protocol.md`](docs/skills-protocol.md) |
-| **نظام تصميم** جديد | أسقِط ملف `DESIGN.md` باستخدام مخطط الأقسام التسعة | [`design-systems//`](design-systems/) |
-| **إضافة** جديدة | أسقِط `open-design.json` + بيانًا ضمن مجلد فئة | [`plugins/community/`](plugins/community/) · المواصفة في [`plugins/spec/SPEC.md`](plugins/spec/SPEC.md) · دليل تطوير الوكيل في [`plugins/spec/AGENT-DEVELOPMENT.md`](plugins/spec/AGENT-DEVELOPMENT.md) |
-| دعم **واجهة CLI** جديدة لوكيل برمجة | مدخل محوّل واحد + محلّل بثّ | [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts) |
+| **مهارة** جديدة | أسقِط مجلدًا يحوي `SKILL.md` + `assets/` + `references/` | [`skills/`](../../skills/) · المواصفة في [`docs/skills-protocol.md`](../../docs/skills-protocol.md) |
+| **نظام تصميم** جديد | أسقِط ملف `DESIGN.md` باستخدام مخطط الأقسام التسعة | [`design-systems//`](../../design-systems/) |
+| **إضافة** جديدة | أسقِط `open-design.json` + بيانًا ضمن مجلد فئة | [`plugins/community/`](../../plugins/community/) · المواصفة في [`plugins/spec/SPEC.md`](../../plugins/spec/SPEC.md) · دليل تطوير الوكيل في [`plugins/spec/AGENT-DEVELOPMENT.md`](../../plugins/spec/AGENT-DEVELOPMENT.md) |
+| دعم **واجهة CLI** جديدة لوكيل برمجة | مدخل محوّل واحد + محلّل بثّ | [`apps/daemon/src/agents.ts`](../../apps/daemon/src/agents.ts) |
| إصلاح خطأ أو تحسين الواجهة | تصفّح تصنيف [`good-first-issue`](https://github.com/nexu-io/open-design/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) | [Issues ←](https://github.com/nexu-io/open-design/issues) |
-| ترجمة الوثائق | حدّث ملفات `README..md` | [`TRANSLATIONS.md`](TRANSLATIONS.md) |
+| ترجمة الوثائق | حدّث ملفات `README..md` | [`TRANSLATIONS.md`](../../TRANSLATIONS.md) |
### 🤖 المساهمة بصفتك وكيلًا
@@ -633,11 +633,11 @@ pnpm --filter @open-design/ test
gh pr create --fill
```
-سير المساهمة الكامل الصديق للوكلاء، وأسلوب الشفرة، ومستوى الـ PR ← [`CONTRIBUTING.md`](CONTRIBUTING.md) ([Deutsch](CONTRIBUTING.de.md) · [Français](CONTRIBUTING.fr.md) · [简体中文](CONTRIBUTING.zh-CN.md) · [日本語](CONTRIBUTING.ja-JP.md) · [Português](CONTRIBUTING.pt-BR.md)).
+سير المساهمة الكامل الصديق للوكلاء، وأسلوب الشفرة، ومستوى الـ PR ← [`CONTRIBUTING.md`](../../CONTRIBUTING.md) ([Deutsch](CONTRIBUTING.de.md) · [Français](CONTRIBUTING.fr.md) · [简体中文](CONTRIBUTING.zh-CN.md) · [日本語](CONTRIBUTING.ja-JP.md) · [Português](CONTRIBUTING.pt-BR.md)).
### 🏅 برنامج Open Design Fellow
-نوظّف **Open Design Fellows** حول العالم — يشكّل الزملاء المنتج جنبًا إلى جنب مع الفريق الأساسي، ويمثّلون Open Design رسميًا في منطقتهم، وينمّون المجتمع محليًا، مدعومين بدعم مموَّل ($1,000 / MR)، ورصيد LLM مجاني، ومسار مراجعة مباشر. التفاصيل ← [`MAINTAINERS.md`](MAINTAINERS.md) والإعلان على [Discord](https://discord.gg/qhbcCH8Am4).
+نوظّف **Open Design Fellows** حول العالم — يشكّل الزملاء المنتج جنبًا إلى جنب مع الفريق الأساسي، ويمثّلون Open Design رسميًا في منطقتهم، وينمّون المجتمع محليًا، مدعومين بدعم مموَّل ($1,000 / MR)، ورصيد LLM مجاني، ومسار مراجعة مباشر. التفاصيل ← [`MAINTAINERS.md`](../../MAINTAINERS.md) والإعلان على [Discord](https://discord.gg/qhbcCH8Am4).
---
@@ -664,7 +664,7 @@ gh pr create --fill
-قواعد المشرفين، ومعايير الترقية، وبروتوكول الخروج ← [`MAINTAINERS.md`](MAINTAINERS.md) (كذلك [Deutsch](MAINTAINERS.de.md) · [Français](MAINTAINERS.fr.md) · [简体中文](MAINTAINERS.zh-CN.md) · [日本語](MAINTAINERS.ja-JP.md) · [Português](MAINTAINERS.pt-BR.md)).
+قواعد المشرفين، ومعايير الترقية، وبروتوكول الخروج ← [`MAINTAINERS.md`](../../MAINTAINERS.md) (كذلك [Deutsch](MAINTAINERS.de.md) · [Français](MAINTAINERS.fr.md) · [简体中文](MAINTAINERS.zh-CN.md) · [日本語](MAINTAINERS.ja-JP.md) · [Português](MAINTAINERS.pt-BR.md)).
## المساهمون
@@ -682,7 +682,7 @@ gh pr create --fill
-يُعاد توليد ملف SVG أعلاه يوميًا بواسطة [`.github/workflows/metrics.yml`](.github/workflows/metrics.yml) باستخدام [`lowlighter/metrics`](https://github.com/lowlighter/metrics).
+يُعاد توليد ملف SVG أعلاه يوميًا بواسطة [`.github/workflows/metrics.yml`](../../.github/workflows/metrics.yml) باستخدام [`lowlighter/metrics`](https://github.com/lowlighter/metrics).
---
@@ -710,7 +710,7 @@ gh pr create --fill
|---|---|
| [Claude Design][cd] | المنتج مغلق المصدر الذي يُعدّ هذا المستودع البديل مفتوح المصدر له. |
| [`alchaincyf/huashu-design`](https://github.com/alchaincyf/huashu-design) | بوصلة فلسفة التصميم — سير عمل المصمم المبتدئ، بروتوكول أصول العلامة التجارية، قائمة تحقق ضد الركاكة بالذكاء الاصطناعي، نقد بخمسة أبعاد. |
-| [`op7418/guizang-ppt-skill`](https://github.com/op7418/guizang-ppt-skill) | مهارة عرض الويب بأسلوب المجلات، مجمَّعة حرفيًا ضمن [`design-templates/guizang-ppt/`](design-templates/guizang-ppt/). افتراضية لوضع العرض التقديمي. |
+| [`op7418/guizang-ppt-skill`](https://github.com/op7418/guizang-ppt-skill) | مهارة عرض الويب بأسلوب المجلات، مجمَّعة حرفيًا ضمن [`design-templates/guizang-ppt/`](../../design-templates/guizang-ppt/). افتراضية لوضع العرض التقديمي. |
| [`lewislulu/html-ppt-skill`](https://github.com/lewislulu/html-ppt-skill) | عائلة HTML PPT Studio — 15 قالب عرض تقديمي، 36 سمة، 31 تخطيط صفحة، وقت تشغيل للحركة، وضع عرض ببطاقات مغناطيسية. |
| [`OpenCoworkAI/open-codesign`](https://github.com/OpenCoworkAI/open-codesign) | أول بديل مفتوح المصدر لـ Claude Design؛ أنماط تجربة الاستخدام التي نستعيرها (حلقة بثّ المخرجات، iframe المعزول، لوحة الوكيل الحية). |
| [`multica-ai/multica`](https://github.com/multica-ai/multica) | بنية الـ daemon + المحوّل — اكتشاف الوكلاء بمسح PATH، الـ daemon المحلي بصفته العملية المميَّزة الوحيدة. |
@@ -719,12 +719,12 @@ gh pr create --fill
| [`heygen-com/hyperframes`](https://github.com/heygen-com/hyperframes) | إطار الرسوميات الحركية HTML→MP4، مدمج بصفته `hyperframes-html` من الدرجة الأولى في Open Design. |
| [Claude Code skills][skill] | اصطلاح `SKILL.md` الذي نعتمده حرفيًا. |
-النَّسَب التفصيلي ← [`docs/references.md`](docs/references.md).
+النَّسَب التفصيلي ← [`docs/references.md`](../../docs/references.md).
[skill]: https://docs.anthropic.com/en/docs/claude-code/skills
## الترخيص
-Apache-2.0. يحتفظ المجمَّع `design-templates/guizang-ppt/` بترخيصه الأصلي [LICENSE](design-templates/guizang-ppt/LICENSE) (MIT، [@op7418](https://github.com/op7418)). ويحتفظ المجمَّع `design-templates/html-ppt/` بترخيصه الأصلي [LICENSE](design-templates/html-ppt/LICENSE) (MIT، [@lewislulu](https://github.com/lewislulu)).
+Apache-2.0. يحتفظ المجمَّع `design-templates/guizang-ppt/` بترخيصه الأصلي [LICENSE](../../design-templates/guizang-ppt/LICENSE) (MIT، [@op7418](https://github.com/op7418)). ويحتفظ المجمَّع `design-templates/html-ppt/` بترخيصه الأصلي [LICENSE](../../design-templates/html-ppt/LICENSE) (MIT، [@lewislulu](https://github.com/lewislulu)).
diff --git a/README.de.md b/docs/i18n/README.de.md
similarity index 75%
rename from README.de.md
rename to docs/i18n/README.de.md
index 8220138b3d..87bdfd7b24 100644
--- a/README.de.md
+++ b/docs/i18n/README.de.md
@@ -2,7 +2,7 @@
> 🔥 **Open Design 0.9.0 ist da: gestalten ohne Einrichtung.** Der [offizielle Model Router](https://open-design.ai/amr) ist direkt in die App integriert — keine zusätzliche Konfiguration, kein zu installierendes CLI, kein vorzubereitender API-Schlüssel. Einfach die App öffnen, anmelden und sofort mit dem Gestalten und Erstellen loslegen. [0.9.0 herunterladen](https://github.com/nexu-io/open-design/releases) · [An der Diskussion teilnehmen](https://github.com/nexu-io/open-design/discussions/3524)
>
-> 🏅 **Das Open Design Fellow-Programm ist jetzt offen.** Wenn auch du glaubst, dass Design offen sein sollte — werde Open Design Fellow, gestalte das Produkt gemeinsam mit dem Kernteam und hilf mehr Menschen dabei, die Zukunft des Designs mitzubestimmen. Details → [`MAINTAINERS.md`](MAINTAINERS.md) und [Discord](https://discord.gg/qhbcCH8Am4).
+> 🏅 **Das Open Design Fellow-Programm ist jetzt offen.** Wenn auch du glaubst, dass Design offen sein sollte — werde Open Design Fellow, gestalte das Produkt gemeinsam mit dem Kernteam und hilf mehr Menschen dabei, die Zukunft des Designs mitzubestimmen. Details → [`MAINTAINERS.md`](../../MAINTAINERS.md) und [Discord](https://discord.gg/qhbcCH8Am4).
@@ -17,12 +17,12 @@
-English · Español · Português · Deutsch · Français · 简体中文 · 繁體中文 · 한국어 · 日本語 · العربية · Русский · Українська · Türkçe
+English · Español · Português · Deutsch · Français · 简体中文 · 繁體中文 · 한국어 · 日本語 · العربية · Русский · Українська · Türkçe
---
@@ -135,7 +135,7 @@ Im Studio eines Projekts streamt dasselbe Designsystem mehrere Artefakttypen her
**Kein CLI installiert?** Der BYOK-Proxy unter `POST /api/proxy/{anthropic,openai,azure,google,ollama,senseaudio}/stream` gibt dir dieselbe Schleife (ohne Prozess-Spawn) — füge `baseUrl` + `apiKey` + `model` ein, mit Unterstützung für OpenAI, Anthropic, Azure OpenAI, Google Gemini, Ollama, LM Studio, vLLM oder jeden OpenAI-kompatiblen Endpunkt. Pro-Ziel-SSRF-Schutz blockiert interne IPs / Link-Local / CGNAT am Daemon-Rand.
-Der Adapter-Vertrag und die Stream-Parser liegen in [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts). Ein neues CLI hinzuzufügen ist ein einziger Eintrag — siehe [`docs/agent-adapters.md`](docs/agent-adapters.md).
+Der Adapter-Vertrag und die Stream-Parser liegen in [`apps/daemon/src/agents.ts`](../../apps/daemon/src/agents.ts). Ein neues CLI hinzuzufügen ist ein einziger Eintrag — siehe [`docs/agent-adapters.md`](../../docs/agent-adapters.md).
---
@@ -150,21 +150,21 @@ Die Standard-Ausgabefläche. Einseitige HTML-Artefakte, die deine `DESIGN.md` le
-
+
Einstiegsansicht — wähle einen Skill, wähle ein Designsystem, tippe das Briefing. Eine Fläche für Prototypen, Dashboards, Präsentationen, Mobile-Apps, Magazinseiten.
-
+
Mobile-Prototyp — pixelgenaues iPhone 15 Pro-Chrome, mehrbildschirmige Flows. Der Agent zeichnet den Telefonrahmen nie neu; geteilte Geräterahmen liegen in assets/frames/.
-
+
Web-Prototyp — ein redaktionelles Dashboard mit Scrollbalken, KPIs und Diagrammen. Direkt aus design-templates/dating-web/ gerendert.
-
+
Mobile-App-Prototyp — ein dreibildschirmiger, gamifizierter Flow mit XP-Bändern und Quest-Detail. Direkt an Cursor / Codex / Claude Code übergeben, um ihn in React/Next/Vue umzuwandeln.
@@ -177,21 +177,21 @@ Live-Dashboards, Entscheidungsräume, KPI-Wände — einseitige Artefakte, die D
-
+
Live-Dashboard — eine editierbare KPI-Wand, deren Tweaks-Panel die Parameter offenlegt, die sich zu justieren lohnen. Der Agent gibt ein Manifest aus, und der iframe rendert ohne Neuladen neu.
-
+
Entscheidungsraum — ein Mehrquellen-Briefing-Artefakt für Produkt- / Forschungs- / Ops-Meetings.
-
+
Dashboard im GitHub-Stil — Repo-Metriken, präsentiert als Live-Artefakt.
-
+
Flow-Live-Dashboard-Vorlage — eine domänenspezifische KPI-Vorlage, gebrandet durch die aktive DESIGN.md.
@@ -202,11 +202,11 @@ Live-Dashboards, Entscheidungsräume, KPI-Wände — einseitige Artefakte, die D
-
+
Deck-Modus (guizang-ppt) — Magazin-Layouts, WebGL-Hero, P0/P1/P2-Checklisten. Wortgetreu gebündelt aus op7418/guizang-ppt-skill unter Beibehaltung der ursprünglichen Lizenz.
-
+
Deck im Swiss-International-Stil — rasterverankert, monochrome Akzente. Eines von 15 Deck-Vorlagen und 36 Themes unter design-templates/html-ppt-*/.
@@ -226,7 +226,7 @@ Jedes Deck exportiert als **HTML** (einzelne Datei, eingebettete Assets), **PDF*
-**93 sofort reproduzierbare Prompts** liegen in [`prompt-templates/`](prompt-templates/) — Vorschau-Miniaturen, vollständiger Prompt-Text, Zielmodell, Seitenverhältnis und Quellenangabe. Ein Klick legt ein Briefing in den Composer.
+**93 sofort reproduzierbare Prompts** liegen in [`prompt-templates/`](../../prompt-templates/) — Vorschau-Miniaturen, vollständiger Prompt-Text, Zielmodell, Seitenverhältnis und Quellenangabe. Ein Klick legt ein Briefing in den Composer.
### 5 · Video & HyperFrames — agent-native Motion-Graphics
@@ -234,20 +234,20 @@ Jedes Deck exportiert als **HTML** (einzelne Datei, eingebettete Assets), **PDF*
/open-design.json` (oder das Plattform-Äquivalent) plus ein Copy-Paste-MCP-Snippet. Cursor bekommt einen Ein-Klick-Deeplink; Claude Code bekommt einen `claude mcp add-json`-Einzeiler; jeder andere Agent bekommt JSON in dem Schema, das seine Konfiguration erwartet. Vollständiger Ablauf pro Agent → **Settings → MCP server** in der Desktop-App, oder [`docs/agent-adapters.md`](docs/agent-adapters.md).
+**Für einen Agent, der bei null startet,** platziert der Installer `~/.config//open-design.json` (oder das Plattform-Äquivalent) plus ein Copy-Paste-MCP-Snippet. Cursor bekommt einen Ein-Klick-Deeplink; Claude Code bekommt einen `claude mcp add-json`-Einzeiler; jeder andere Agent bekommt JSON in dem Schema, das seine Konfiguration erwartet. Vollständiger Ablauf pro Agent → **Settings → MCP server** in der Desktop-App, oder [`docs/agent-adapters.md`](../../docs/agent-adapters.md).
**Sicherheitsmodell.** Standardmäßig schreibgeschützt, der Daemon bindet an `127.0.0.1`, und SSRF wird am Proxy-Rand blockiert. LAN-Freigabe erfordert ein explizites `OD_BIND_HOST` plus `OD_ALLOWED_ORIGINS`. Connector-Anmeldedaten und Live-Artefakt-Vorschau-Routen bleiben unabhängig davon nur über Loopback erreichbar.
@@ -372,34 +372,34 @@ od skill list --scenario marketing
## Skills
-**100+ Skills sind direkt enthalten** — jeder ist ein Ordner unter [`skills/`](skills/), der der Claude Code [`SKILL.md`][skill]-Konvention folgt, erweitert um ein `od:`-Frontmatter (`mode`, `platform`, `scenario`, `preview.type`, `design_system.requires`, `default_for`, `fidelity`, `example_prompt`). Lege einen Ordner ab, starte den Daemon neu, und er erscheint im Picker.
+**100+ Skills sind direkt enthalten** — jeder ist ein Ordner unter [`skills/`](../../skills/), der der Claude Code [`SKILL.md`][skill]-Konvention folgt, erweitert um ein `od:`-Frontmatter (`mode`, `platform`, `scenario`, `preview.type`, `design_system.requires`, `default_for`, `fidelity`, `example_prompt`). Lege einen Ordner ab, starte den Daemon neu, und er erscheint im Picker.
Zwei **Modi** verankern den Katalog: `prototype` (einseitige Web-/Mobile-/Desktop-Artefakte) und `deck` (Präsentationen mit horizontalem Wischen). Außerdem die Modi `image`, `video`, `audio`, `template`, `design-system` und `utility`. Das Feld **`scenario`** gruppiert sie nach Zielgruppe: `design` · `marketing` · `operation` · `engineering` · `product` · `finance` · `hr` · `sale` · `personal`.
| Skill | Modus | Szenario | Was er erzeugt |
|---|---|---|---|
-| [`web-prototype`](design-templates/web-prototype/) | prototype | design | Standard-Landingpage / Hero |
-| [`saas-landing`](design-templates/saas-landing/) | prototype | marketing | Hero / Features / Pricing / CTA |
-| [`dashboard`](design-templates/dashboard/) | prototype | operation | Admin / Analytics (mit Sidebar) |
-| [`mobile-app`](design-templates/mobile-app/) | prototype | design | iPhone 15 Pro / Pixel-gerahmte App |
-| [`mobile-onboarding`](design-templates/mobile-onboarding/) | prototype | design | Splash · Value-Prop · Anmelde-Flow |
-| [`social-carousel`](design-templates/social-carousel/) | prototype | marketing | 3-Karten-1080×1080-Karussell |
-| [`email-marketing`](design-templates/email-marketing/) | prototype | marketing | Tabellen-fallback-sichere Marken-E-Mail |
-| [`magazine-poster`](design-templates/magazine-poster/) | prototype | marketing | Einseitiges Magazin-Layout |
-| [`motion-frames`](design-templates/motion-frames/) | prototype | marketing | Loopendes CSS-Motion-Hero |
-| [`sprite-animation`](design-templates/sprite-animation/) | prototype | marketing | 8-Bit-Pixel-animierter Explainer |
-| [`pm-spec`](design-templates/pm-spec/) | prototype | product | PM-Spec-Dokument (mit Inhaltsverzeichnis + Entscheidungsprotokoll) |
-| [`team-okrs`](design-templates/team-okrs/) | prototype | product | OKR-Scorecard |
-| [`eng-runbook`](design-templates/eng-runbook/) | prototype | engineering | Incident-Runbook |
-| [`finance-report`](design-templates/finance-report/) | prototype | finance | Finanz-Zusammenfassung für die Führungsebene |
-| [`hr-onboarding`](design-templates/hr-onboarding/) | prototype | hr | Rollen-Onboarding-Plan |
-| [`guizang-ppt`](design-templates/guizang-ppt/) | deck | marketing | Web-PPT im Magazin-Stil (Deck-Standard) |
-| [`html-ppt-*`](design-templates/) | deck | marketing | 15 Deck-Vorlagen × 36 Themes (Master-Vorlage in [`design-templates/html-ppt/`](design-templates/html-ppt/)) |
-| [`hyperframes`](design-templates/hyperframes/) | video | marketing | HTML → MP4 Motion-Graphics (HeyGen-OSS-Framework) |
-| [`critique`](design-templates/critique/) | utility | design | Fünfdimensionale Selbstkritik-Scorekarte |
-| [`tweaks`](design-templates/tweaks/) | utility | design | KI-ausgegebenes Tweaks-Panel-Manifest |
+| [`web-prototype`](../../design-templates/web-prototype/) | prototype | design | Standard-Landingpage / Hero |
+| [`saas-landing`](../../design-templates/saas-landing/) | prototype | marketing | Hero / Features / Pricing / CTA |
+| [`dashboard`](../../design-templates/dashboard/) | prototype | operation | Admin / Analytics (mit Sidebar) |
+| [`mobile-app`](../../design-templates/mobile-app/) | prototype | design | iPhone 15 Pro / Pixel-gerahmte App |
+| [`mobile-onboarding`](../../design-templates/mobile-onboarding/) | prototype | design | Splash · Value-Prop · Anmelde-Flow |
+| [`social-carousel`](../../design-templates/social-carousel/) | prototype | marketing | 3-Karten-1080×1080-Karussell |
+| [`email-marketing`](../../design-templates/email-marketing/) | prototype | marketing | Tabellen-fallback-sichere Marken-E-Mail |
+| [`magazine-poster`](../../design-templates/magazine-poster/) | prototype | marketing | Einseitiges Magazin-Layout |
+| [`motion-frames`](../../design-templates/motion-frames/) | prototype | marketing | Loopendes CSS-Motion-Hero |
+| [`sprite-animation`](../../design-templates/sprite-animation/) | prototype | marketing | 8-Bit-Pixel-animierter Explainer |
+| [`pm-spec`](../../design-templates/pm-spec/) | prototype | product | PM-Spec-Dokument (mit Inhaltsverzeichnis + Entscheidungsprotokoll) |
+| [`team-okrs`](../../design-templates/team-okrs/) | prototype | product | OKR-Scorecard |
+| [`eng-runbook`](../../design-templates/eng-runbook/) | prototype | engineering | Incident-Runbook |
+| [`finance-report`](../../design-templates/finance-report/) | prototype | finance | Finanz-Zusammenfassung für die Führungsebene |
+| [`hr-onboarding`](../../design-templates/hr-onboarding/) | prototype | hr | Rollen-Onboarding-Plan |
+| [`guizang-ppt`](../../design-templates/guizang-ppt/) | deck | marketing | Web-PPT im Magazin-Stil (Deck-Standard) |
+| [`html-ppt-*`](../../design-templates/) | deck | marketing | 15 Deck-Vorlagen × 36 Themes (Master-Vorlage in [`design-templates/html-ppt/`](../../design-templates/html-ppt/)) |
+| [`hyperframes`](../../design-templates/hyperframes/) | video | marketing | HTML → MP4 Motion-Graphics (HeyGen-OSS-Framework) |
+| [`critique`](../../design-templates/critique/) | utility | design | Fünfdimensionale Selbstkritik-Scorekarte |
+| [`tweaks`](../../design-templates/tweaks/) | utility | design | KI-ausgegebenes Tweaks-Panel-Manifest |
-Vollständiges Skill-Protokoll → [`docs/skills-protocol.md`](docs/skills-protocol.md). Skill-Registry-Endpunkt: `GET /api/skills`.
+Vollständiges Skill-Protokoll → [`docs/skills-protocol.md`](../../docs/skills-protocol.md). Skill-Registry-Endpunkt: `GET /api/skills`.
---
@@ -430,7 +430,7 @@ Vollständiges Skill-Protokoll → [`docs/skills-protocol.md`](docs/skills-proto
-Importiere die Bibliothek erneut über [`scripts/sync-design-systems.ts`](scripts/sync-design-systems.ts). Eigene Marke hinzufügen → lege eine `DESIGN.md` in `design-systems//` ab. Vollständige Anleitung → [`design-systems/README.md`](design-systems/README.md).
+Importiere die Bibliothek erneut über [`scripts/sync-design-systems.ts`](../../scripts/sync-design-systems.ts). Eigene Marke hinzufügen → lege eine `DESIGN.md` in `design-systems//` ab. Vollständige Anleitung → [`design-systems/README.md`](../../design-systems/README.md).
[acd2]: https://github.com/VoltAgent/awesome-design-md
@@ -438,24 +438,24 @@ Importiere die Bibliothek erneut über [`scripts/sync-design-systems.ts`](script
## Plugins
-**261 offizielle Plugins** liegen in [`plugins/_official/`](plugins/_official/). Jedes Plugin ist ein **portabler Agent-Skill-Ordner** — eine `SKILL.md` (von jedem Agent lesbar, der Agent Skills unterstützt), plus ein optionales `open-design.json`-Manifest, das Open Design Marktplatz-Metadaten, Eingaben, Vorschauen, Pipelines und Capability-Deklarationen liefert. Springe direkt zu einer Kategorie:
+**261 offizielle Plugins** liegen in [`plugins/_official/`](../../plugins/_official/). Jedes Plugin ist ein **portabler Agent-Skill-Ordner** — eine `SKILL.md` (von jedem Agent lesbar, der Agent Skills unterstützt), plus ein optionales `open-design.json`-Manifest, das Open Design Marktplatz-Metadaten, Eingaben, Vorschauen, Pipelines und Capability-Deklarationen liefert. Springe direkt zu einer Kategorie:
| Kategorie | Anzahl | Inhalt |
|---|---|---|
-| [`scenarios/`](plugins/_official/scenarios/) | 11 | Vollständige Design-Szenarien — [`od-default`](plugins/_official/scenarios/od-default/), [`od-design-refine`](plugins/_official/scenarios/od-design-refine/), [`od-figma-migration`](plugins/_official/scenarios/od-figma-migration/), [`od-code-migration`](plugins/_official/scenarios/od-code-migration/), [`od-react-export`](plugins/_official/scenarios/od-react-export/), [`od-nextjs-export`](plugins/_official/scenarios/od-nextjs-export/), [`od-vue-export`](plugins/_official/scenarios/od-vue-export/), [`od-media-generation`](plugins/_official/scenarios/od-media-generation/), [`od-new-generation`](plugins/_official/scenarios/od-new-generation/), [`od-tune-collab`](plugins/_official/scenarios/od-tune-collab/), [`od-plugin-authoring`](plugins/_official/scenarios/od-plugin-authoring/) |
-| [`image-templates/`](plugins/_official/image-templates/) | 45 | One-Shot-Bild-Prompts — redaktionell, filmisch, Produkt, Porträt |
-| [`video-templates/`](plugins/_official/video-templates/) | 50 | HyperFrames- / Seedance- / Veo-Motion-Vorlagen |
-| [`design-systems/`](plugins/_official/design-systems/) | 142 | Marken-`DESIGN.md` als Plugins verpackt |
-| [`atoms/`](plugins/_official/atoms/) | 13 | Wiederverwendbare UI-Fragmente (Buttons, Heroes, KPI-Karten) |
-| [`examples/`](plugins/_official/examples/) | 140 | Neu kombinierbare Referenz-Ausgaben |
+| [`scenarios/`](../../plugins/_official/scenarios/) | 11 | Vollständige Design-Szenarien — [`od-default`](../../plugins/_official/scenarios/od-default/), [`od-design-refine`](../../plugins/_official/scenarios/od-design-refine/), [`od-figma-migration`](../../plugins/_official/scenarios/od-figma-migration/), [`od-code-migration`](../../plugins/_official/scenarios/od-code-migration/), [`od-react-export`](../../plugins/_official/scenarios/od-react-export/), [`od-nextjs-export`](../../plugins/_official/scenarios/od-nextjs-export/), [`od-vue-export`](../../plugins/_official/scenarios/od-vue-export/), [`od-media-generation`](../../plugins/_official/scenarios/od-media-generation/), [`od-new-generation`](../../plugins/_official/scenarios/od-new-generation/), [`od-tune-collab`](../../plugins/_official/scenarios/od-tune-collab/), [`od-plugin-authoring`](../../plugins/_official/scenarios/od-plugin-authoring/) |
+| [`image-templates/`](../../plugins/_official/image-templates/) | 45 | One-Shot-Bild-Prompts — redaktionell, filmisch, Produkt, Porträt |
+| [`video-templates/`](../../plugins/_official/video-templates/) | 50 | HyperFrames- / Seedance- / Veo-Motion-Vorlagen |
+| [`design-systems/`](../../plugins/_official/design-systems/) | 142 | Marken-`DESIGN.md` als Plugins verpackt |
+| [`atoms/`](../../plugins/_official/atoms/) | 13 | Wiederverwendbare UI-Fragmente (Buttons, Heroes, KPI-Karten) |
+| [`examples/`](../../plugins/_official/examples/) | 140 | Neu kombinierbare Referenz-Ausgaben |
-Außerdem [`plugins/community/`](plugins/community/) für Community-Plugins und [`plugins/registry/`](plugins/registry/) für den Veröffentlichungsablauf.
+Außerdem [`plugins/community/`](../../plugins/community/) für Community-Plugins und [`plugins/registry/`](../../plugins/registry/) für den Veröffentlichungsablauf.
### Was Plugins können
-- 🤖 **In jedem Coding-Agent laufen** — [Claude Code](docs/agent-adapters.md), Codex, Cursor, Copilot, [OpenClaw](https://github.com/openclaw/openclaw), [Antigravity](https://antigravity.google), Hermes, Kimi… über dasselbe Skill-Protokoll, das der Agent bereits kennt.
-- 🔁 **Figma- / Pencil-Workflows migrieren** → React-, Next.js- oder Vue-Quellcode. Siehe [`od-figma-migration`](plugins/_official/scenarios/od-figma-migration/).
-- 🛠️ **Eine bestehende Codebasis auf eine Markenvorgabe auffrischen** — richte ein Plugin auf ein `git`-Repo + `DESIGN.md`, erhalte einen PR. Siehe [`od-code-migration`](plugins/_official/scenarios/od-code-migration/).
+- 🤖 **In jedem Coding-Agent laufen** — [Claude Code](../../docs/agent-adapters.md), Codex, Cursor, Copilot, [OpenClaw](https://github.com/openclaw/openclaw), [Antigravity](https://antigravity.google), Hermes, Kimi… über dasselbe Skill-Protokoll, das der Agent bereits kennt.
+- 🔁 **Figma- / Pencil-Workflows migrieren** → React-, Next.js- oder Vue-Quellcode. Siehe [`od-figma-migration`](../../plugins/_official/scenarios/od-figma-migration/).
+- 🛠️ **Eine bestehende Codebasis auf eine Markenvorgabe auffrischen** — richte ein Plugin auf ein `git`-Repo + `DESIGN.md`, erhalte einen PR. Siehe [`od-code-migration`](../../plugins/_official/scenarios/od-code-migration/).
- 💾 **Eigene Workflows beibehalten** — die wiederverwendbaren Vorlagen deines Teams liegen neben den mitgelieferten.
### Plugins verwenden
@@ -501,16 +501,16 @@ od plugin validate ./my-plugin # check manifest / file
pnpm guard && pnpm --filter @open-design/plugin-runtime typecheck
```
-Vollständiger Feldsatz und Laufzeitvertrag → [`plugins/spec/SPEC.md`](plugins/spec/SPEC.md); ein Plugin mit einem Coding-Agent entwickeln → [`plugins/spec/AGENT-DEVELOPMENT.md`](plugins/spec/AGENT-DEVELOPMENT.md); minimale Copy-Paste-Vorlagen → [`plugins/spec/examples/`](plugins/spec/examples/).
+Vollständiger Feldsatz und Laufzeitvertrag → [`plugins/spec/SPEC.md`](../../plugins/spec/SPEC.md); ein Plugin mit einem Coding-Agent entwickeln → [`plugins/spec/AGENT-DEVELOPMENT.md`](../../plugins/spec/AGENT-DEVELOPMENT.md); minimale Copy-Paste-Vorlagen → [`plugins/spec/examples/`](../../plugins/spec/examples/).
### Ein Plugin beitragen
-1. Lege den Plugin-Ordner in [`plugins/community/`](plugins/community/) (Drittanbieter-Plugins) ab, oder — um es gebündelt mit Open Design auszuliefern — in die passende Stufe von [`plugins/_official/`](plugins/_official/).
+1. Lege den Plugin-Ordner in [`plugins/community/`](../../plugins/community/) (Drittanbieter-Plugins) ab, oder — um es gebündelt mit Open Design auszuliefern — in die passende Stufe von [`plugins/_official/`](../../plugins/_official/).
2. Bestehe die Validierung: `od plugin validate`, `pnpm guard`, `pnpm --filter @open-design/plugin-runtime typecheck`.
-3. Fülle den PR mithilfe der Vorlage in [`plugins/spec/CONTRIBUTING.md`](plugins/spec/CONTRIBUTING.md) (ID, Version, Spur, Modus, Capabilities, Trigger-Beispiele; füge für visuelle Plugins einen Screenshot / eine Vorschau bei).
-4. Um in einer externen Registry zu veröffentlichen (skills.sh / ClawHub / eigenständiges GitHub) → [`plugins/spec/PUBLISHING-REGISTRIES.md`](plugins/spec/PUBLISHING-REGISTRIES.md).
+3. Fülle den PR mithilfe der Vorlage in [`plugins/spec/CONTRIBUTING.md`](../../plugins/spec/CONTRIBUTING.md) (ID, Version, Spur, Modus, Capabilities, Trigger-Beispiele; füge für visuelle Plugins einen Screenshot / eine Vorschau bei).
+4. Um in einer externen Registry zu veröffentlichen (skills.sh / ClawHub / eigenständiges GitHub) → [`plugins/spec/PUBLISHING-REGISTRIES.md`](../../plugins/spec/PUBLISHING-REGISTRIES.md).
-Plugin-Registry-Endpunkt: `GET /api/plugins`. Verzeichnisübersicht → [`plugins/README.md`](plugins/README.md) ([简体中文](plugins/README.zh-CN.md)).
+Plugin-Registry-Endpunkt: `GET /api/plugins`. Verzeichnisübersicht → [`plugins/README.md`](../../plugins/README.md) ([简体中文](../../plugins/README.zh-CN.md)).
---
@@ -553,7 +553,7 @@ Plugin-Registry-Endpunkt: `GET /api/plugins`. Verzeichnisübersicht → [`plugin
| Desktop | Electron-Shell + Sandboxed Renderer + Sidecar-IPC (STATUS · EVAL · SCREENSHOT · CONSOLE · CLICK · SHUTDOWN) |
| Lebenszyklus | Ein Einstiegspunkt: `pnpm tools-dev` (start / stop / run / status / logs / inspect / check) |
-Vollständige Architektur → [`docs/architecture.md`](docs/architecture.md). Skill-Protokoll → [`docs/skills-protocol.md`](docs/skills-protocol.md). Agent-Adapter-Vertrag → [`docs/agent-adapters.md`](docs/agent-adapters.md).
+Vollständige Architektur → [`docs/architecture.md`](../../docs/architecture.md). Skill-Protokoll → [`docs/skills-protocol.md`](../../docs/skills-protocol.md). Agent-Adapter-Vertrag → [`docs/agent-adapters.md`](../../docs/agent-adapters.md).
---
@@ -577,7 +577,7 @@ Vollständige Architektur → [`docs/architecture.md`](docs/architecture.md). Sk
- [ ] Figma- / Pencil- → React- / Next- / Vue-Migrations-Plugins (Alpha)
- [ ] Plugin zum Auffrischen einer bestehenden Codebasis (auf ein git-Repo + `DESIGN.md` gerichtet)
-Phasenweise Auslieferung → [`docs/roadmap.md`](docs/roadmap.md).
+Phasenweise Auslieferung → [`docs/roadmap.md`](../../docs/roadmap.md).
---
@@ -602,12 +602,12 @@ Open Design kommt voran, weil Mitwirkende — Designer, Ingenieure, Prompt-Autor
| Du willst … ausliefern | Wie | Wo |
|---|---|---|
-| Einen neuen **Skill** | Lege einen Ordner mit `SKILL.md` + `assets/` + `references/` ab | [`skills/`](skills/) · Spezifikation in [`docs/skills-protocol.md`](docs/skills-protocol.md) |
-| Ein neues **Designsystem** | Lege eine `DESIGN.md` mit dem 9-teiligen Schema ab | [`design-systems//`](design-systems/) |
-| Ein neues **Plugin** | Lege `open-design.json` + Manifest unter einem Kategorie-Ordner ab | [`plugins/community/`](plugins/community/) · Spezifikation in [`plugins/spec/SPEC.md`](plugins/spec/SPEC.md) · Agent-Entwicklungsleitfaden in [`plugins/spec/AGENT-DEVELOPMENT.md`](plugins/spec/AGENT-DEVELOPMENT.md) |
-| Ein neues **Coding-Agent-CLI** unterstützen | Ein Adapter-Eintrag + Stream-Parser | [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts) |
+| Einen neuen **Skill** | Lege einen Ordner mit `SKILL.md` + `assets/` + `references/` ab | [`skills/`](../../skills/) · Spezifikation in [`docs/skills-protocol.md`](../../docs/skills-protocol.md) |
+| Ein neues **Designsystem** | Lege eine `DESIGN.md` mit dem 9-teiligen Schema ab | [`design-systems//`](../../design-systems/) |
+| Ein neues **Plugin** | Lege `open-design.json` + Manifest unter einem Kategorie-Ordner ab | [`plugins/community/`](../../plugins/community/) · Spezifikation in [`plugins/spec/SPEC.md`](../../plugins/spec/SPEC.md) · Agent-Entwicklungsleitfaden in [`plugins/spec/AGENT-DEVELOPMENT.md`](../../plugins/spec/AGENT-DEVELOPMENT.md) |
+| Ein neues **Coding-Agent-CLI** unterstützen | Ein Adapter-Eintrag + Stream-Parser | [`apps/daemon/src/agents.ts`](../../apps/daemon/src/agents.ts) |
| Einen Fehler beheben oder die UI verfeinern | Durchsuche das Label [`good-first-issue`](https://github.com/nexu-io/open-design/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) | [Issues →](https://github.com/nexu-io/open-design/issues) |
-| Die Dokumentation übersetzen | Aktualisiere die `README..md`-Dateien | [`TRANSLATIONS.md`](TRANSLATIONS.md) |
+| Die Dokumentation übersetzen | Aktualisiere die `README..md`-Dateien | [`TRANSLATIONS.md`](../../TRANSLATIONS.md) |
### 🤖 Als Agent mitwirken
@@ -631,11 +631,11 @@ pnpm --filter @open-design/ test
gh pr create --fill
```
-Vollständiger agentenfreundlicher Beitragsablauf, Code-Stil und PR-Maßstab → [English](CONTRIBUTING.md) ([Deutsch](CONTRIBUTING.de.md) · [Français](CONTRIBUTING.fr.md) · [简体中文](CONTRIBUTING.zh-CN.md) · [日本語](CONTRIBUTING.ja-JP.md) · [Português](CONTRIBUTING.pt-BR.md)).
+Vollständiger agentenfreundlicher Beitragsablauf, Code-Stil und PR-Maßstab → [English](../../CONTRIBUTING.md) ([Deutsch](CONTRIBUTING.de.md) · [Français](CONTRIBUTING.fr.md) · [简体中文](CONTRIBUTING.zh-CN.md) · [日本語](CONTRIBUTING.ja-JP.md) · [Português](CONTRIBUTING.pt-BR.md)).
### 🏅 Open Design Fellow-Programm
-Wir rekrutieren weltweit **Open Design Fellows** — Fellows gestalten das Produkt gemeinsam mit dem Kernteam, vertreten Open Design offiziell in ihrer Region und lassen die Community vor Ort wachsen, unterstützt durch finanzielle Förderung ($1,000 / MR), kostenlose LLM-Credits und einen direkten Review-Track. Details → [`MAINTAINERS.md`](MAINTAINERS.md) und die Ankündigung auf [Discord](https://discord.gg/qhbcCH8Am4).
+Wir rekrutieren weltweit **Open Design Fellows** — Fellows gestalten das Produkt gemeinsam mit dem Kernteam, vertreten Open Design offiziell in ihrer Region und lassen die Community vor Ort wachsen, unterstützt durch finanzielle Förderung ($1,000 / MR), kostenlose LLM-Credits und einen direkten Review-Track. Details → [`MAINTAINERS.md`](../../MAINTAINERS.md) und die Ankündigung auf [Discord](https://discord.gg/qhbcCH8Am4).
---
@@ -662,7 +662,7 @@ Sie tragen einen Großteil der Last — tägliche Wartung, Review und Community-
-Maintainer-Regeln, Beförderungskriterien und das Ausstiegsprotokoll → [`MAINTAINERS.md`](MAINTAINERS.md) (auch [Deutsch](MAINTAINERS.de.md) · [Français](MAINTAINERS.fr.md) · [简体中文](MAINTAINERS.zh-CN.md) · [日本語](MAINTAINERS.ja-JP.md) · [Português](MAINTAINERS.pt-BR.md)).
+Maintainer-Regeln, Beförderungskriterien und das Ausstiegsprotokoll → [`MAINTAINERS.md`](../../MAINTAINERS.md) (auch [Deutsch](MAINTAINERS.de.md) · [Français](MAINTAINERS.fr.md) · [简体中文](MAINTAINERS.zh-CN.md) · [日本語](MAINTAINERS.ja-JP.md) · [Português](MAINTAINERS.pt-BR.md)).
## Mitwirkende
@@ -680,7 +680,7 @@ Dank an alle, die teilgenommen haben — Code, Doku, Feedback, ein scharfsinnige
-Das obige SVG wird täglich von [`.github/workflows/metrics.yml`](.github/workflows/metrics.yml) mit [`lowlighter/metrics`](https://github.com/lowlighter/metrics) neu generiert.
+Das obige SVG wird täglich von [`.github/workflows/metrics.yml`](../../.github/workflows/metrics.yml) mit [`lowlighter/metrics`](https://github.com/lowlighter/metrics) neu generiert.
---
@@ -708,7 +708,7 @@ Wenn dir das dreißig Minuten gespart hat, gib ihm ein ★. Sterne zahlen keine
|---|---|
| [Claude Design][cd] | Das Closed-Source-Produkt, zu dem dieses Repo die quelloffene Alternative ist. |
| [`alchaincyf/huashu-design`](https://github.com/alchaincyf/huashu-design) | Der Design-Philosophie-Kompass — Junior-Designer-Workflow, Markenasset-Protokoll, Anti-AI-Slop-Checkliste, fünfdimensionale Kritik. |
-| [`op7418/guizang-ppt-skill`](https://github.com/op7418/guizang-ppt-skill) | Der Web-PPT-Skill im Magazin-Stil, wortgetreu gebündelt unter [`design-templates/guizang-ppt/`](design-templates/guizang-ppt/). Standard für den Deck-Modus. |
+| [`op7418/guizang-ppt-skill`](https://github.com/op7418/guizang-ppt-skill) | Der Web-PPT-Skill im Magazin-Stil, wortgetreu gebündelt unter [`design-templates/guizang-ppt/`](../../design-templates/guizang-ppt/). Standard für den Deck-Modus. |
| [`lewislulu/html-ppt-skill`](https://github.com/lewislulu/html-ppt-skill) | Die HTML-PPT-Studio-Familie — 15 Deck-Vorlagen, 36 Themes, 31 Seitenlayouts, Animations-Runtime, Magnetic-Card-Presenter-Modus. |
| [`OpenCoworkAI/open-codesign`](https://github.com/OpenCoworkAI/open-codesign) | Die erste quelloffene Claude-Design-Alternative; UX-Muster, die wir übernehmen (Streaming-Artefakt-Schleife, Sandboxed iframe, Live-Agent-Panel). |
| [`multica-ai/multica`](https://github.com/multica-ai/multica) | Die Daemon- + Adapter-Architektur — PATH-Scan-Agent-Erkennung, lokaler Daemon als einziger privilegierter Prozess. |
@@ -717,10 +717,10 @@ Wenn dir das dreißig Minuten gespart hat, gib ihm ein ★. Sterne zahlen keine
| [`heygen-com/hyperframes`](https://github.com/heygen-com/hyperframes) | Das HTML→MP4-Motion-Graphics-Framework, integriert als vollwertiges `hyperframes-html` in Open Design. |
| [Claude Code skills][skill] | Die `SKILL.md`-Konvention, die wir wortgetreu übernehmen. |
-Detaillierte Herkunft → [`docs/references.md`](docs/references.md).
+Detaillierte Herkunft → [`docs/references.md`](../../docs/references.md).
[skill]: https://docs.anthropic.com/en/docs/claude-code/skills
## Lizenz
-Apache-2.0. Das gebündelte `design-templates/guizang-ppt/` behält seine ursprüngliche [LICENSE](design-templates/guizang-ppt/LICENSE) (MIT, [@op7418](https://github.com/op7418)). Das gebündelte `design-templates/html-ppt/` behält seine ursprüngliche [LICENSE](design-templates/html-ppt/LICENSE) (MIT, [@lewislulu](https://github.com/lewislulu)).
+Apache-2.0. Das gebündelte `design-templates/guizang-ppt/` behält seine ursprüngliche [LICENSE](../../design-templates/guizang-ppt/LICENSE) (MIT, [@op7418](https://github.com/op7418)). Das gebündelte `design-templates/html-ppt/` behält seine ursprüngliche [LICENSE](../../design-templates/html-ppt/LICENSE) (MIT, [@lewislulu](https://github.com/lewislulu)).
diff --git a/README.es.md b/docs/i18n/README.es.md
similarity index 74%
rename from README.es.md
rename to docs/i18n/README.es.md
index 397aaf706c..24a27858ea 100644
--- a/README.es.md
+++ b/docs/i18n/README.es.md
@@ -2,7 +2,7 @@
> 🔥 **Open Design 0.9.0 ya está aquí: crea sin configuración previa.** El [Model Router oficial](https://open-design.ai/amr) viene integrado directamente en la app — sin configuración adicional, sin CLI que instalar, sin clave de API que preparar. Solo abre la app, inicia sesión y empieza a diseñar y crear de inmediato. [Descargar 0.9.0](https://github.com/nexu-io/open-design/releases) · [Únete a la conversación](https://github.com/nexu-io/open-design/discussions/3524)
>
-> 🏅 **El programa Open Design Fellow ya está abierto.** Si tú también crees que el diseño debe ser abierto, conviértete en Open Design Fellow, da forma al producto junto al equipo principal y ayuda a que más personas participen en definir el futuro del diseño. Detalles → [`MAINTAINERS.md`](MAINTAINERS.md) y [Discord](https://discord.gg/qhbcCH8Am4).
+> 🏅 **El programa Open Design Fellow ya está abierto.** Si tú también crees que el diseño debe ser abierto, conviértete en Open Design Fellow, da forma al producto junto al equipo principal y ayuda a que más personas participen en definir el futuro del diseño. Detalles → [`MAINTAINERS.md`](../../MAINTAINERS.md) y [Discord](https://discord.gg/qhbcCH8Am4).
@@ -17,12 +17,12 @@
-English · Español · Português · Deutsch · Français · 简体中文 · 繁體中文 · 한국어 · 日本語 · العربية · Русский · Українська · Türkçe
+English · Español · Português · Deutsch · Français · 简体中文 · 繁體中文 · 한국어 · 日本語 · العربية · Русский · Українська · Türkçe
---
@@ -135,7 +135,7 @@ Dentro del Studio de un proyecto, el mismo sistema de diseño produce múltiples
**¿No tienes una CLI instalada?** El proxy BYOK en `POST /api/proxy/{anthropic,openai,azure,google,ollama,senseaudio}/stream` te da el mismo bucle (sin crear procesos): pega `baseUrl` + `apiKey` + `model`, con soporte para OpenAI, Anthropic, Azure OpenAI, Google Gemini, Ollama, LM Studio, vLLM o cualquier endpoint compatible con OpenAI. La protección SSRF por destino bloquea IPs internas / link-local / CGNAT en el borde del daemon.
-El contrato del adaptador y los analizadores de stream viven en [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts). Añadir una nueva CLI es una sola entrada — consulta [`docs/agent-adapters.md`](docs/agent-adapters.md).
+El contrato del adaptador y los analizadores de stream viven en [`apps/daemon/src/agents.ts`](../../apps/daemon/src/agents.ts). Añadir una nueva CLI es una sola entrada — consulta [`docs/agent-adapters.md`](../../docs/agent-adapters.md).
---
@@ -150,21 +150,21 @@ La superficie de salida por defecto. Artefactos HTML de una sola página que lee
-
+
Vista de entrada — elige un skill, elige un sistema de diseño, escribe el brief. Una sola superficie para prototipos, dashboards, presentaciones, apps móviles y páginas de revista.
-
+
Prototipo móvil — chrome de iPhone 15 Pro con precisión de píxel, flujos multipantalla. El agente nunca redibuja el marco del teléfono; los marcos de dispositivo compartidos viven en assets/frames/.
-
+
Prototipo web — un dashboard editorial con barras de desplazamiento, KPIs y gráficos. Renderizado directamente desde design-templates/dating-web/.
-
+
Prototipo de app móvil — un flujo gamificado de tres pantallas con cintas de XP y detalle de misiones. Entrégalo directamente a Cursor / Codex / Claude Code para convertirlo en React/Next/Vue.
@@ -177,21 +177,21 @@ Dashboards en vivo, salas de decisión, muros de KPI — artefactos de una sola
-
+
Dashboard en vivo — un muro de KPI editable cuyo panel de ajustes expone los parámetros que vale la pena modificar. El agente emite un manifiesto y el iframe se vuelve a renderizar sin recargar.
-
+
Sala de decisión — un artefacto de briefing multifuente para reuniones de producto / investigación / operaciones.
-
+
Dashboard estilo GitHub — métricas del repo presentadas como un artefacto en vivo.
-
+
Plantilla de dashboard en vivo Flow — una plantilla de KPI específica de un dominio, con marca aplicada a través del DESIGN.md activo.
@@ -202,11 +202,11 @@ Dashboards en vivo, salas de decisión, muros de KPI — artefactos de una sola
-
+
Modo presentación (guizang-ppt) — diseños tipo revista, hero WebGL, checklists P0/P1/P2. Empaquetado textualmente desde op7418/guizang-ppt-skill con su licencia original preservada.
-
+
Presentación estilo Swiss International — anclada a una cuadrícula, con acentos monocromáticos. Una de las 15 plantillas de presentación y 36 temas bajo design-templates/html-ppt-*/.
@@ -226,7 +226,7 @@ Cada presentación se exporta a **HTML** (un solo archivo, recursos incorporados
-**93 prompts listos para replicar** viven en [`prompt-templates/`](prompt-templates/) — miniaturas de vista previa, cuerpo completo del prompt, modelo objetivo, relación de aspecto y atribución de origen. Un clic deja un brief en el compositor.
+**93 prompts listos para replicar** viven en [`prompt-templates/`](../../prompt-templates/) — miniaturas de vista previa, cuerpo completo del prompt, modelo objetivo, relación de aspecto y atribución de origen. Un clic deja un brief en el compositor.
### 5 · Video y HyperFrames — gráficos en movimiento agent-native
@@ -234,20 +234,20 @@ Cada presentación se exporta a **HTML** (un solo archivo, recursos incorporados
/open-design.json` (o el equivalente de la plataforma) más un fragmento MCP para copiar y pegar. Cursor obtiene un deeplink de un clic; Claude Code obtiene un comando `claude mcp add-json` de una línea; cada otro agente obtiene JSON en el esquema que su configuración espera. Flujo completo por agente → **Settings → MCP server** en la app de escritorio, o [`docs/agent-adapters.md`](docs/agent-adapters.md).
+**Para un agente que empieza desde cero,** el instalador coloca `~/.config//open-design.json` (o el equivalente de la plataforma) más un fragmento MCP para copiar y pegar. Cursor obtiene un deeplink de un clic; Claude Code obtiene un comando `claude mcp add-json` de una línea; cada otro agente obtiene JSON en el esquema que su configuración espera. Flujo completo por agente → **Settings → MCP server** en la app de escritorio, o [`docs/agent-adapters.md`](../../docs/agent-adapters.md).
**Modelo de seguridad.** De solo lectura por defecto, el daemon se enlaza a `127.0.0.1` y el SSRF se bloquea en el borde del proxy. La exposición a la LAN requiere un `OD_BIND_HOST` explícito más `OD_ALLOWED_ORIGINS`. Las credenciales de conectores y las rutas de vista previa de artefactos en vivo permanecen solo en loopback independientemente de ello.
@@ -372,34 +372,34 @@ od skill list --scenario marketing
## Skills
-**Más de 100 skills vienen incluidos** — cada uno es una carpeta bajo [`skills/`](skills/) que sigue la convención [`SKILL.md`][skill] de Claude Code, extendida con un frontmatter `od:` (`mode`, `platform`, `scenario`, `preview.type`, `design_system.requires`, `default_for`, `fidelity`, `example_prompt`). Suelta una carpeta, reinicia el daemon y aparece en el selector.
+**Más de 100 skills vienen incluidos** — cada uno es una carpeta bajo [`skills/`](../../skills/) que sigue la convención [`SKILL.md`][skill] de Claude Code, extendida con un frontmatter `od:` (`mode`, `platform`, `scenario`, `preview.type`, `design_system.requires`, `default_for`, `fidelity`, `example_prompt`). Suelta una carpeta, reinicia el daemon y aparece en el selector.
Dos **modos** anclan el catálogo: `prototype` (artefactos de una sola página para web/móvil/escritorio) y `deck` (presentaciones de deslizamiento horizontal). También los modos `image`, `video`, `audio`, `template`, `design-system` y `utility`. El campo **`scenario`** los agrupa por audiencia: `design` · `marketing` · `operation` · `engineering` · `product` · `finance` · `hr` · `sale` · `personal`.
| Skill | Modo | Escenario | Qué produce |
|---|---|---|---|
-| [`web-prototype`](design-templates/web-prototype/) | prototype | design | Landing page / hero por defecto |
-| [`saas-landing`](design-templates/saas-landing/) | prototype | marketing | Hero / características / precios / CTA |
-| [`dashboard`](design-templates/dashboard/) | prototype | operation | Admin / analítica (con barra lateral) |
-| [`mobile-app`](design-templates/mobile-app/) | prototype | design | App enmarcada en iPhone 15 Pro / Pixel |
-| [`mobile-onboarding`](design-templates/mobile-onboarding/) | prototype | design | Flujo de splash · propuesta de valor · inicio de sesión |
-| [`social-carousel`](design-templates/social-carousel/) | prototype | marketing | Carrusel de 3 tarjetas 1080×1080 |
-| [`email-marketing`](design-templates/email-marketing/) | prototype | marketing | Email de marca con respaldo seguro en tablas |
-| [`magazine-poster`](design-templates/magazine-poster/) | prototype | marketing | Diseño de revista de una sola página |
-| [`motion-frames`](design-templates/motion-frames/) | prototype | marketing | Hero de movimiento CSS en bucle |
-| [`sprite-animation`](design-templates/sprite-animation/) | prototype | marketing | Explicación animada en píxeles de 8 bits |
-| [`pm-spec`](design-templates/pm-spec/) | prototype | product | Documento de spec de PM (con TOC + registro de decisiones) |
-| [`team-okrs`](design-templates/team-okrs/) | prototype | product | Scorecard de OKR |
-| [`eng-runbook`](design-templates/eng-runbook/) | prototype | engineering | Runbook de incidentes |
-| [`finance-report`](design-templates/finance-report/) | prototype | finance | Resumen financiero ejecutivo |
-| [`hr-onboarding`](design-templates/hr-onboarding/) | prototype | hr | Plan de onboarding por rol |
-| [`guizang-ppt`](design-templates/guizang-ppt/) | deck | marketing | PPT web estilo revista (presentación por defecto) |
-| [`html-ppt-*`](design-templates/) | deck | marketing | 15 plantillas de presentación × 36 temas (plantilla maestra en [`design-templates/html-ppt/`](design-templates/html-ppt/)) |
-| [`hyperframes`](design-templates/hyperframes/) | video | marketing | Gráficos en movimiento HTML → MP4 (framework OSS de HeyGen) |
-| [`critique`](design-templates/critique/) | utility | design | Hoja de puntuación de autocrítica de cinco dimensiones |
-| [`tweaks`](design-templates/tweaks/) | utility | design | Manifiesto de panel de ajustes emitido por IA |
+| [`web-prototype`](../../design-templates/web-prototype/) | prototype | design | Landing page / hero por defecto |
+| [`saas-landing`](../../design-templates/saas-landing/) | prototype | marketing | Hero / características / precios / CTA |
+| [`dashboard`](../../design-templates/dashboard/) | prototype | operation | Admin / analítica (con barra lateral) |
+| [`mobile-app`](../../design-templates/mobile-app/) | prototype | design | App enmarcada en iPhone 15 Pro / Pixel |
+| [`mobile-onboarding`](../../design-templates/mobile-onboarding/) | prototype | design | Flujo de splash · propuesta de valor · inicio de sesión |
+| [`social-carousel`](../../design-templates/social-carousel/) | prototype | marketing | Carrusel de 3 tarjetas 1080×1080 |
+| [`email-marketing`](../../design-templates/email-marketing/) | prototype | marketing | Email de marca con respaldo seguro en tablas |
+| [`magazine-poster`](../../design-templates/magazine-poster/) | prototype | marketing | Diseño de revista de una sola página |
+| [`motion-frames`](../../design-templates/motion-frames/) | prototype | marketing | Hero de movimiento CSS en bucle |
+| [`sprite-animation`](../../design-templates/sprite-animation/) | prototype | marketing | Explicación animada en píxeles de 8 bits |
+| [`pm-spec`](../../design-templates/pm-spec/) | prototype | product | Documento de spec de PM (con TOC + registro de decisiones) |
+| [`team-okrs`](../../design-templates/team-okrs/) | prototype | product | Scorecard de OKR |
+| [`eng-runbook`](../../design-templates/eng-runbook/) | prototype | engineering | Runbook de incidentes |
+| [`finance-report`](../../design-templates/finance-report/) | prototype | finance | Resumen financiero ejecutivo |
+| [`hr-onboarding`](../../design-templates/hr-onboarding/) | prototype | hr | Plan de onboarding por rol |
+| [`guizang-ppt`](../../design-templates/guizang-ppt/) | deck | marketing | PPT web estilo revista (presentación por defecto) |
+| [`html-ppt-*`](../../design-templates/) | deck | marketing | 15 plantillas de presentación × 36 temas (plantilla maestra en [`design-templates/html-ppt/`](../../design-templates/html-ppt/)) |
+| [`hyperframes`](../../design-templates/hyperframes/) | video | marketing | Gráficos en movimiento HTML → MP4 (framework OSS de HeyGen) |
+| [`critique`](../../design-templates/critique/) | utility | design | Hoja de puntuación de autocrítica de cinco dimensiones |
+| [`tweaks`](../../design-templates/tweaks/) | utility | design | Manifiesto de panel de ajustes emitido por IA |
-Protocolo de skills completo → [`docs/skills-protocol.md`](docs/skills-protocol.md). Endpoint del registro de skills: `GET /api/skills`.
+Protocolo de skills completo → [`docs/skills-protocol.md`](../../docs/skills-protocol.md). Endpoint del registro de skills: `GET /api/skills`.
---
@@ -430,7 +430,7 @@ Protocolo de skills completo → [`docs/skills-protocol.md`](docs/skills-protoco
-Vuelve a importar la biblioteca con [`scripts/sync-design-systems.ts`](scripts/sync-design-systems.ts). Añade tu propia marca → suelta un `DESIGN.md` en `design-systems//`. Guía completa → [`design-systems/README.md`](design-systems/README.md).
+Vuelve a importar la biblioteca con [`scripts/sync-design-systems.ts`](../../scripts/sync-design-systems.ts). Añade tu propia marca → suelta un `DESIGN.md` en `design-systems//`. Guía completa → [`design-systems/README.md`](../../design-systems/README.md).
[acd2]: https://github.com/VoltAgent/awesome-design-md
@@ -438,24 +438,24 @@ Vuelve a importar la biblioteca con [`scripts/sync-design-systems.ts`](scripts/s
## Plugins
-**261 plugins oficiales** viven en [`plugins/_official/`](plugins/_official/). Cada plugin es una **carpeta portátil de agent-skill** — un `SKILL.md` (legible por cualquier agente que admita Agent Skills), más un manifiesto opcional `open-design.json` que le da a Open Design metadatos de marketplace, entradas, vistas previas, pipelines y declaraciones de capacidades. Salta directamente a una categoría:
+**261 plugins oficiales** viven en [`plugins/_official/`](../../plugins/_official/). Cada plugin es una **carpeta portátil de agent-skill** — un `SKILL.md` (legible por cualquier agente que admita Agent Skills), más un manifiesto opcional `open-design.json` que le da a Open Design metadatos de marketplace, entradas, vistas previas, pipelines y declaraciones de capacidades. Salta directamente a una categoría:
| Categoría | Cantidad | Contenido |
|---|---|---|
-| [`scenarios/`](plugins/_official/scenarios/) | 11 | Escenarios de diseño completos — [`od-default`](plugins/_official/scenarios/od-default/), [`od-design-refine`](plugins/_official/scenarios/od-design-refine/), [`od-figma-migration`](plugins/_official/scenarios/od-figma-migration/), [`od-code-migration`](plugins/_official/scenarios/od-code-migration/), [`od-react-export`](plugins/_official/scenarios/od-react-export/), [`od-nextjs-export`](plugins/_official/scenarios/od-nextjs-export/), [`od-vue-export`](plugins/_official/scenarios/od-vue-export/), [`od-media-generation`](plugins/_official/scenarios/od-media-generation/), [`od-new-generation`](plugins/_official/scenarios/od-new-generation/), [`od-tune-collab`](plugins/_official/scenarios/od-tune-collab/), [`od-plugin-authoring`](plugins/_official/scenarios/od-plugin-authoring/) |
-| [`image-templates/`](plugins/_official/image-templates/) | 45 | Prompts de imagen de una sola toma — editorial, cinematográfico, producto, retrato |
-| [`video-templates/`](plugins/_official/video-templates/) | 50 | Plantillas de movimiento HyperFrames / Seedance / Veo |
-| [`design-systems/`](plugins/_official/design-systems/) | 142 | `DESIGN.md` de marca empaquetados como plugins |
-| [`atoms/`](plugins/_official/atoms/) | 13 | Fragmentos de UI reutilizables (botones, heroes, tarjetas de KPI) |
-| [`examples/`](plugins/_official/examples/) | 140 | Salidas de referencia remezclables |
+| [`scenarios/`](../../plugins/_official/scenarios/) | 11 | Escenarios de diseño completos — [`od-default`](../../plugins/_official/scenarios/od-default/), [`od-design-refine`](../../plugins/_official/scenarios/od-design-refine/), [`od-figma-migration`](../../plugins/_official/scenarios/od-figma-migration/), [`od-code-migration`](../../plugins/_official/scenarios/od-code-migration/), [`od-react-export`](../../plugins/_official/scenarios/od-react-export/), [`od-nextjs-export`](../../plugins/_official/scenarios/od-nextjs-export/), [`od-vue-export`](../../plugins/_official/scenarios/od-vue-export/), [`od-media-generation`](../../plugins/_official/scenarios/od-media-generation/), [`od-new-generation`](../../plugins/_official/scenarios/od-new-generation/), [`od-tune-collab`](../../plugins/_official/scenarios/od-tune-collab/), [`od-plugin-authoring`](../../plugins/_official/scenarios/od-plugin-authoring/) |
+| [`image-templates/`](../../plugins/_official/image-templates/) | 45 | Prompts de imagen de una sola toma — editorial, cinematográfico, producto, retrato |
+| [`video-templates/`](../../plugins/_official/video-templates/) | 50 | Plantillas de movimiento HyperFrames / Seedance / Veo |
+| [`design-systems/`](../../plugins/_official/design-systems/) | 142 | `DESIGN.md` de marca empaquetados como plugins |
+| [`atoms/`](../../plugins/_official/atoms/) | 13 | Fragmentos de UI reutilizables (botones, heroes, tarjetas de KPI) |
+| [`examples/`](../../plugins/_official/examples/) | 140 | Salidas de referencia remezclables |
-También [`plugins/community/`](plugins/community/) para plugins de la comunidad y [`plugins/registry/`](plugins/registry/) para el flujo de publicación.
+También [`plugins/community/`](../../plugins/community/) para plugins de la comunidad y [`plugins/registry/`](../../plugins/registry/) para el flujo de publicación.
### Qué pueden hacer los plugins
-- 🤖 **Ejecutarse en cualquier agente de codificación** — [Claude Code](docs/agent-adapters.md), Codex, Cursor, Copilot, [OpenClaw](https://github.com/openclaw/openclaw), [Antigravity](https://antigravity.google), Hermes, Kimi… a través del mismo protocolo de skills que el agente ya conoce.
-- 🔁 **Migrar flujos de trabajo de Figma / Pencil** → código fuente React, Next.js o Vue. Consulta [`od-figma-migration`](plugins/_official/scenarios/od-figma-migration/).
-- 🛠️ **Renovar una base de código existente a una especificación de marca** — apunta un plugin a un repo `git` + `DESIGN.md`, obtén un PR. Consulta [`od-code-migration`](plugins/_official/scenarios/od-code-migration/).
+- 🤖 **Ejecutarse en cualquier agente de codificación** — [Claude Code](../../docs/agent-adapters.md), Codex, Cursor, Copilot, [OpenClaw](https://github.com/openclaw/openclaw), [Antigravity](https://antigravity.google), Hermes, Kimi… a través del mismo protocolo de skills que el agente ya conoce.
+- 🔁 **Migrar flujos de trabajo de Figma / Pencil** → código fuente React, Next.js o Vue. Consulta [`od-figma-migration`](../../plugins/_official/scenarios/od-figma-migration/).
+- 🛠️ **Renovar una base de código existente a una especificación de marca** — apunta un plugin a un repo `git` + `DESIGN.md`, obtén un PR. Consulta [`od-code-migration`](../../plugins/_official/scenarios/od-code-migration/).
- 💾 **Persistir flujos de trabajo personalizados** — las plantillas reutilizables de tu equipo conviven junto a las incluidas.
### Usar plugins
@@ -501,16 +501,16 @@ od plugin validate ./my-plugin # check manifest / file
pnpm guard && pnpm --filter @open-design/plugin-runtime typecheck
```
-Conjunto completo de campos y contrato de runtime → [`plugins/spec/SPEC.md`](plugins/spec/SPEC.md); desarrollar un plugin con un agente de codificación → [`plugins/spec/AGENT-DEVELOPMENT.md`](plugins/spec/AGENT-DEVELOPMENT.md); plantillas mínimas para copiar y pegar → [`plugins/spec/examples/`](plugins/spec/examples/).
+Conjunto completo de campos y contrato de runtime → [`plugins/spec/SPEC.md`](../../plugins/spec/SPEC.md); desarrollar un plugin con un agente de codificación → [`plugins/spec/AGENT-DEVELOPMENT.md`](../../plugins/spec/AGENT-DEVELOPMENT.md); plantillas mínimas para copiar y pegar → [`plugins/spec/examples/`](../../plugins/spec/examples/).
### Contribuir un plugin
-1. Suelta la carpeta del plugin en [`plugins/community/`](plugins/community/) (plugins de terceros), o — para distribuirlo empaquetado con Open Design — en el nivel correspondiente de [`plugins/_official/`](plugins/_official/).
+1. Suelta la carpeta del plugin en [`plugins/community/`](../../plugins/community/) (plugins de terceros), o — para distribuirlo empaquetado con Open Design — en el nivel correspondiente de [`plugins/_official/`](../../plugins/_official/).
2. Pasa la validación: `od plugin validate`, `pnpm guard`, `pnpm --filter @open-design/plugin-runtime typecheck`.
-3. Completa el PR usando la plantilla en [`plugins/spec/CONTRIBUTING.md`](plugins/spec/CONTRIBUTING.md) (ID, versión, vía, modo, capacidades, ejemplos de disparadores; adjunta una captura / vista previa para plugins visuales).
-4. Para publicar en un registro externo (skills.sh / ClawHub / GitHub independiente) → [`plugins/spec/PUBLISHING-REGISTRIES.md`](plugins/spec/PUBLISHING-REGISTRIES.md).
+3. Completa el PR usando la plantilla en [`plugins/spec/CONTRIBUTING.md`](../../plugins/spec/CONTRIBUTING.md) (ID, versión, vía, modo, capacidades, ejemplos de disparadores; adjunta una captura / vista previa para plugins visuales).
+4. Para publicar en un registro externo (skills.sh / ClawHub / GitHub independiente) → [`plugins/spec/PUBLISHING-REGISTRIES.md`](../../plugins/spec/PUBLISHING-REGISTRIES.md).
-Endpoint del registro de plugins: `GET /api/plugins`. Resumen del directorio → [`plugins/README.md`](plugins/README.md) ([简体中文](plugins/README.zh-CN.md)).
+Endpoint del registro de plugins: `GET /api/plugins`. Resumen del directorio → [`plugins/README.md`](../../plugins/README.md) ([简体中文](../../plugins/README.zh-CN.md)).
---
@@ -553,7 +553,7 @@ Endpoint del registro de plugins: `GET /api/plugins`. Resumen del directorio →
| Escritorio | Electron shell + renderizador en entorno aislado + IPC de sidecar (STATUS · EVAL · SCREENSHOT · CONSOLE · CLICK · SHUTDOWN) |
| Ciclo de vida | Un único punto de entrada: `pnpm tools-dev` (start / stop / run / status / logs / inspect / check) |
-Arquitectura completa → [`docs/architecture.md`](docs/architecture.md). Protocolo de skills → [`docs/skills-protocol.md`](docs/skills-protocol.md). Contrato del adaptador de agentes → [`docs/agent-adapters.md`](docs/agent-adapters.md).
+Arquitectura completa → [`docs/architecture.md`](../../docs/architecture.md). Protocolo de skills → [`docs/skills-protocol.md`](../../docs/skills-protocol.md). Contrato del adaptador de agentes → [`docs/agent-adapters.md`](../../docs/agent-adapters.md).
---
@@ -577,7 +577,7 @@ Arquitectura completa → [`docs/architecture.md`](docs/architecture.md). Protoc
- [ ] Plugins de migración Figma / Pencil → React / Next / Vue (alfa)
- [ ] Plugin de renovación de base de código existente (apuntar a un repo git + `DESIGN.md`)
-Entrega por fases → [`docs/roadmap.md`](docs/roadmap.md).
+Entrega por fases → [`docs/roadmap.md`](../../docs/roadmap.md).
---
@@ -602,12 +602,12 @@ Open Design sigue avanzando porque los colaboradores — diseñadores, ingeniero
| Quieres lanzar… | Cómo | Dónde |
|---|---|---|
-| Un nuevo **skill** | Suelta una carpeta con `SKILL.md` + `assets/` + `references/` | [`skills/`](skills/) · especificación en [`docs/skills-protocol.md`](docs/skills-protocol.md) |
-| Un nuevo **sistema de diseño** | Suelta un `DESIGN.md` usando el esquema de 9 secciones | [`design-systems//`](design-systems/) |
-| Un nuevo **plugin** | Suelta `open-design.json` + manifiesto bajo una carpeta de categoría | [`plugins/community/`](plugins/community/) · especificación en [`plugins/spec/SPEC.md`](plugins/spec/SPEC.md) · guía de desarrollo con agente en [`plugins/spec/AGENT-DEVELOPMENT.md`](plugins/spec/AGENT-DEVELOPMENT.md) |
-| Dar soporte a una nueva **CLI de agente de codificación** | Una entrada de adaptador + analizador de stream | [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts) |
+| Un nuevo **skill** | Suelta una carpeta con `SKILL.md` + `assets/` + `references/` | [`skills/`](../../skills/) · especificación en [`docs/skills-protocol.md`](../../docs/skills-protocol.md) |
+| Un nuevo **sistema de diseño** | Suelta un `DESIGN.md` usando el esquema de 9 secciones | [`design-systems//`](../../design-systems/) |
+| Un nuevo **plugin** | Suelta `open-design.json` + manifiesto bajo una carpeta de categoría | [`plugins/community/`](../../plugins/community/) · especificación en [`plugins/spec/SPEC.md`](../../plugins/spec/SPEC.md) · guía de desarrollo con agente en [`plugins/spec/AGENT-DEVELOPMENT.md`](../../plugins/spec/AGENT-DEVELOPMENT.md) |
+| Dar soporte a una nueva **CLI de agente de codificación** | Una entrada de adaptador + analizador de stream | [`apps/daemon/src/agents.ts`](../../apps/daemon/src/agents.ts) |
| Corregir un bug o pulir la UI | Explora la etiqueta [`good-first-issue`](https://github.com/nexu-io/open-design/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) | [Issues →](https://github.com/nexu-io/open-design/issues) |
-| Traducir la documentación | Actualiza los archivos `README..md` | [`TRANSLATIONS.md`](TRANSLATIONS.md) |
+| Traducir la documentación | Actualiza los archivos `README..md` | [`TRANSLATIONS.md`](../../TRANSLATIONS.md) |
### 🤖 Contribuir como agente
@@ -631,11 +631,11 @@ pnpm --filter @open-design/ test
gh pr create --fill
```
-Flujo de contribución completo y amigable para agentes, estilo de código y nivel exigido para el PR → [`CONTRIBUTING.md`](CONTRIBUTING.md) ([Deutsch](CONTRIBUTING.de.md) · [Français](CONTRIBUTING.fr.md) · [简体中文](CONTRIBUTING.zh-CN.md) · [日本語](CONTRIBUTING.ja-JP.md) · [Português](CONTRIBUTING.pt-BR.md)).
+Flujo de contribución completo y amigable para agentes, estilo de código y nivel exigido para el PR → [`CONTRIBUTING.md`](../../CONTRIBUTING.md) ([Deutsch](CONTRIBUTING.de.md) · [Français](CONTRIBUTING.fr.md) · [简体中文](CONTRIBUTING.zh-CN.md) · [日本語](CONTRIBUTING.ja-JP.md) · [Português](CONTRIBUTING.pt-BR.md)).
### 🏅 Programa Open Design Fellow
-Estamos reclutando **Open Design Fellows** en todo el mundo — los Fellows dan forma al producto junto al equipo principal, representan oficialmente a Open Design en su región y hacen crecer la comunidad localmente, respaldados por apoyo financiado ($1,000 / MR), créditos LLM gratuitos y una vía de revisión directa. Detalles → [`MAINTAINERS.md`](MAINTAINERS.md) y el anuncio en [Discord](https://discord.gg/qhbcCH8Am4).
+Estamos reclutando **Open Design Fellows** en todo el mundo — los Fellows dan forma al producto junto al equipo principal, representan oficialmente a Open Design en su región y hacen crecer la comunidad localmente, respaldados por apoyo financiado ($1,000 / MR), créditos LLM gratuitos y una vía de revisión directa. Detalles → [`MAINTAINERS.md`](../../MAINTAINERS.md) y el anuncio en [Discord](https://discord.gg/qhbcCH8Am4).
---
@@ -662,7 +662,7 @@ Cargan con gran parte del trabajo — mantenimiento diario, revisión y apoyo a
-Reglas de los mantenedores, criterios de promoción y el protocolo de salida → [`MAINTAINERS.md`](MAINTAINERS.md) (también [Deutsch](MAINTAINERS.de.md) · [Français](MAINTAINERS.fr.md) · [简体中文](MAINTAINERS.zh-CN.md) · [日本語](MAINTAINERS.ja-JP.md) · [Português](MAINTAINERS.pt-BR.md)).
+Reglas de los mantenedores, criterios de promoción y el protocolo de salida → [`MAINTAINERS.md`](../../MAINTAINERS.md) (también [Deutsch](MAINTAINERS.de.md) · [Français](MAINTAINERS.fr.md) · [简体中文](MAINTAINERS.zh-CN.md) · [日本語](MAINTAINERS.ja-JP.md) · [Português](MAINTAINERS.pt-BR.md)).
## Colaboradores
@@ -680,7 +680,7 @@ Gracias a todos los que han participado — código, documentación, comentarios
-El SVG de arriba se regenera diariamente mediante [`.github/workflows/metrics.yml`](.github/workflows/metrics.yml) usando [`lowlighter/metrics`](https://github.com/lowlighter/metrics).
+El SVG de arriba se regenera diariamente mediante [`.github/workflows/metrics.yml`](../../.github/workflows/metrics.yml) usando [`lowlighter/metrics`](https://github.com/lowlighter/metrics).
---
@@ -708,7 +708,7 @@ Si esto te ahorró treinta minutos, dale una ★. Las estrellas no pagan el alqu
|---|---|
| [Claude Design][cd] | El producto de código cerrado del que este repo es la alternativa de código abierto. |
| [`alchaincyf/huashu-design`](https://github.com/alchaincyf/huashu-design) | La brújula de la filosofía de diseño — flujo de trabajo de diseñador junior, protocolo de recursos de marca, checklist anti-AI-slop, crítica de cinco dimensiones. |
-| [`op7418/guizang-ppt-skill`](https://github.com/op7418/guizang-ppt-skill) | El skill de PPT web estilo revista, empaquetado textualmente bajo [`design-templates/guizang-ppt/`](design-templates/guizang-ppt/). Por defecto para el modo presentación. |
+| [`op7418/guizang-ppt-skill`](https://github.com/op7418/guizang-ppt-skill) | El skill de PPT web estilo revista, empaquetado textualmente bajo [`design-templates/guizang-ppt/`](../../design-templates/guizang-ppt/). Por defecto para el modo presentación. |
| [`lewislulu/html-ppt-skill`](https://github.com/lewislulu/html-ppt-skill) | La familia HTML PPT Studio — 15 plantillas de presentación, 36 temas, 31 layouts de página, runtime de animación, modo presentador de tarjetas magnéticas. |
| [`OpenCoworkAI/open-codesign`](https://github.com/OpenCoworkAI/open-codesign) | La primera alternativa de código abierto a Claude Design; patrones de UX que tomamos prestados (bucle de artefacto en streaming, iframe en entorno aislado, panel de agente en vivo). |
| [`multica-ai/multica`](https://github.com/multica-ai/multica) | La arquitectura de daemon + adaptador — detección de agentes por escaneo del PATH, daemon local como único proceso privilegiado. |
@@ -717,10 +717,10 @@ Si esto te ahorró treinta minutos, dale una ★. Las estrellas no pagan el alqu
| [`heygen-com/hyperframes`](https://github.com/heygen-com/hyperframes) | El framework de gráficos en movimiento HTML→MP4, integrado como el `hyperframes-html` de primera clase en Open Design. |
| [Claude Code skills][skill] | La convención `SKILL.md` que adoptamos textualmente. |
-Procedencia detallada → [`docs/references.md`](docs/references.md).
+Procedencia detallada → [`docs/references.md`](../../docs/references.md).
[skill]: https://docs.anthropic.com/en/docs/claude-code/skills
## Licencia
-Apache-2.0. El `design-templates/guizang-ppt/` incluido conserva su [LICENSE](design-templates/guizang-ppt/LICENSE) original (MIT, [@op7418](https://github.com/op7418)). El `design-templates/html-ppt/` incluido conserva su [LICENSE](design-templates/html-ppt/LICENSE) original (MIT, [@lewislulu](https://github.com/lewislulu)).
+Apache-2.0. El `design-templates/guizang-ppt/` incluido conserva su [LICENSE](../../design-templates/guizang-ppt/LICENSE) original (MIT, [@op7418](https://github.com/op7418)). El `design-templates/html-ppt/` incluido conserva su [LICENSE](../../design-templates/html-ppt/LICENSE) original (MIT, [@lewislulu](https://github.com/lewislulu)).
diff --git a/README.fr.md b/docs/i18n/README.fr.md
similarity index 75%
rename from README.fr.md
rename to docs/i18n/README.fr.md
index 5438367644..09912f5630 100644
--- a/README.fr.md
+++ b/docs/i18n/README.fr.md
@@ -2,7 +2,7 @@
> 🔥 **Open Design 0.9.0 est là : créez sans la moindre configuration.** Le [Model Router officiel](https://open-design.ai/amr) est intégré directement dans l'application — aucune configuration supplémentaire, aucun CLI à installer, aucune clé API à préparer. Ouvrez simplement l'application, connectez-vous et commencez à concevoir et à créer immédiatement. [Télécharger 0.9.0](https://github.com/nexu-io/open-design/releases) · [Rejoindre la discussion](https://github.com/nexu-io/open-design/discussions/3524)
>
-> 🏅 **Le programme Open Design Fellow est désormais ouvert.** Si vous croyez vous aussi que le design devrait être ouvert — devenez Open Design Fellow, façonnez le produit aux côtés de l'équipe principale et aidez davantage de personnes à participer à la définition de l'avenir du design. Détails → [`MAINTAINERS.md`](MAINTAINERS.md) et [Discord](https://discord.gg/qhbcCH8Am4).
+> 🏅 **Le programme Open Design Fellow est désormais ouvert.** Si vous croyez vous aussi que le design devrait être ouvert — devenez Open Design Fellow, façonnez le produit aux côtés de l'équipe principale et aidez davantage de personnes à participer à la définition de l'avenir du design. Détails → [`MAINTAINERS.md`](../../MAINTAINERS.md) et [Discord](https://discord.gg/qhbcCH8Am4).
@@ -17,12 +17,12 @@
-English · Español · Português · Deutsch · Français · 简体中文 · 繁體中文 · 한국어 · 日本語 · العربية · Русский · Українська · Türkçe
+English · Español · Português · Deutsch · Français · 简体中文 · 繁體中文 · 한국어 · 日本語 · العربية · Русский · Українська · Türkçe
---
@@ -135,7 +135,7 @@ Un aperçu rapide de ce qu'est Open Design et de ce qu'il fait. Partez de la pag
**Aucun CLI installé ?** Le proxy BYOK à `POST /api/proxy/{anthropic,openai,azure,google,ollama,senseaudio}/stream` vous offre la même boucle (sans spawn de processus) — collez `baseUrl` + `apiKey` + `model`, avec prise en charge d'OpenAI, Anthropic, Azure OpenAI, Google Gemini, Ollama, LM Studio, vLLM ou tout point de terminaison compatible OpenAI. Une protection SSRF par cible bloque les IP internes / link-local / CGNAT à la périphérie du daemon.
-Le contrat d'adaptateur et les parseurs de flux se trouvent dans [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts). Ajouter un nouveau CLI tient en une seule entrée — voir [`docs/agent-adapters.md`](docs/agent-adapters.md).
+Le contrat d'adaptateur et les parseurs de flux se trouvent dans [`apps/daemon/src/agents.ts`](../../apps/daemon/src/agents.ts). Ajouter un nouveau CLI tient en une seule entrée — voir [`docs/agent-adapters.md`](../../docs/agent-adapters.md).
---
@@ -150,21 +150,21 @@ La surface de sortie par défaut. Des artefacts HTML d'une seule page qui lisent
-
+
Vue d'entrée — choisissez un skill, choisissez un système de design, saisissez le brief. Une seule surface pour les prototypes, les tableaux de bord, les présentations, les applications mobiles, les pages de magazine.
-
+
Prototype mobile — habillage iPhone 15 Pro au pixel près, parcours multi-écrans. L'agent ne redessine jamais le cadre du téléphone ; les cadres d'appareils partagés se trouvent dans assets/frames/.
-
+
Prototype web — un tableau de bord éditorial avec barres de défilement, KPI et graphiques. Rendu directement à partir de design-templates/dating-web/.
-
+
Prototype d'application mobile — un parcours gamifié sur trois écrans avec rubans d'XP et détail de quête. Transmettez-le directement à Cursor / Codex / Claude Code pour le transformer en React/Next/Vue.
@@ -177,21 +177,21 @@ Tableaux de bord en direct, salles de décision, murs de KPI — des artefacts d
-
+
Tableau de bord en direct — un mur de KPI modifiable dont le panneau de réglages fait apparaître les paramètres qui méritent un ajustement. L'agent émet un manifeste, et l'iframe se réaffiche sans rechargement.
-
+
Salle de décision — un artefact de briefing multi-sources pour les réunions produit / recherche / opérations.
-
+
Tableau de bord façon GitHub — des métriques de dépôt présentées sous forme d'artefact en direct.
-
+
Modèle de tableau de bord en direct Flow — un modèle de KPI spécifique à un domaine, mis aux couleurs de la marque via le DESIGN.md actif.
@@ -202,11 +202,11 @@ Tableaux de bord en direct, salles de décision, murs de KPI — des artefacts d
-
+
Mode présentation (guizang-ppt) — mises en page magazine, héro WebGL, checklists P0/P1/P2. Intégré tel quel depuis op7418/guizang-ppt-skill avec sa licence d'origine préservée.
-
+
Présentation de style Swiss International — ancrée sur une grille, accents monochromes. L'un des 15 modèles de présentation et 36 thèmes sous design-templates/html-ppt-*/.
@@ -226,7 +226,7 @@ Chaque présentation s'exporte en **HTML** (fichier unique, ressources intégré
-**93 prompts prêts à reproduire** se trouvent dans [`prompt-templates/`](prompt-templates/) — vignettes d'aperçu, corps complet du prompt, modèle cible, ratio d'aspect et attribution de la source. Un clic dépose un brief dans le compositeur.
+**93 prompts prêts à reproduire** se trouvent dans [`prompt-templates/`](../../prompt-templates/) — vignettes d'aperçu, corps complet du prompt, modèle cible, ratio d'aspect et attribution de la source. Un clic dépose un brief dans le compositeur.
### 5 · Vidéo et HyperFrames — motion graphics agent-native
@@ -234,20 +234,20 @@ Chaque présentation s'exporte en **HTML** (fichier unique, ressources intégré
/open-design.json` (ou l'équivalent de la plateforme) plus un extrait MCP à copier-coller. Cursor obtient un deeplink en un clic ; Claude Code obtient une ligne `claude mcp add-json` ; chaque autre agent obtient du JSON dans le schéma attendu par sa configuration. Flux complet par agent → **Settings → MCP server** dans l'application de bureau, ou [`docs/agent-adapters.md`](docs/agent-adapters.md).
+**Pour un agent partant de zéro,** l'installeur place `~/.config//open-design.json` (ou l'équivalent de la plateforme) plus un extrait MCP à copier-coller. Cursor obtient un deeplink en un clic ; Claude Code obtient une ligne `claude mcp add-json` ; chaque autre agent obtient du JSON dans le schéma attendu par sa configuration. Flux complet par agent → **Settings → MCP server** dans l'application de bureau, ou [`docs/agent-adapters.md`](../../docs/agent-adapters.md).
**Modèle de sécurité.** En lecture seule par défaut, le daemon se lie à `127.0.0.1`, et la SSRF est bloquée à la périphérie du proxy. L'exposition au réseau local nécessite un `OD_BIND_HOST` explicite plus `OD_ALLOWED_ORIGINS`. Les identifiants de connecteurs et les routes d'aperçu d'artefacts en direct restent en loopback uniquement, quoi qu'il en soit.
@@ -372,34 +372,34 @@ od skill list --scenario marketing
## Skills
-**Plus de 100 skills fournis prêts à l'emploi** — chacun est un dossier sous [`skills/`](skills/) suivant la convention [`SKILL.md`][skill] de Claude Code, étendue d'un frontmatter `od:` (`mode`, `platform`, `scenario`, `preview.type`, `design_system.requires`, `default_for`, `fidelity`, `example_prompt`). Déposez un dossier, redémarrez le daemon, il apparaît dans le sélecteur.
+**Plus de 100 skills fournis prêts à l'emploi** — chacun est un dossier sous [`skills/`](../../skills/) suivant la convention [`SKILL.md`][skill] de Claude Code, étendue d'un frontmatter `od:` (`mode`, `platform`, `scenario`, `preview.type`, `design_system.requires`, `default_for`, `fidelity`, `example_prompt`). Déposez un dossier, redémarrez le daemon, il apparaît dans le sélecteur.
Deux **modes** ancrent le catalogue : `prototype` (artefacts d'une seule page web/mobile/bureau) et `deck` (présentations à balayage horizontal). Également les modes `image`, `video`, `audio`, `template`, `design-system` et `utility`. Le champ **`scenario`** les regroupe par audience : `design` · `marketing` · `operation` · `engineering` · `product` · `finance` · `hr` · `sale` · `personal`.
| Skill | Mode | Scénario | Ce qu'il produit |
|---|---|---|---|
-| [`web-prototype`](design-templates/web-prototype/) | prototype | design | Landing page / héro par défaut |
-| [`saas-landing`](design-templates/saas-landing/) | prototype | marketing | Héro / fonctionnalités / tarifs / CTA |
-| [`dashboard`](design-templates/dashboard/) | prototype | operation | Admin / analytique (avec barre latérale) |
-| [`mobile-app`](design-templates/mobile-app/) | prototype | design | Application encadrée iPhone 15 Pro / Pixel |
-| [`mobile-onboarding`](design-templates/mobile-onboarding/) | prototype | design | Parcours splash · proposition de valeur · connexion |
-| [`social-carousel`](design-templates/social-carousel/) | prototype | marketing | Carrousel 3 cartes 1080×1080 |
-| [`email-marketing`](design-templates/email-marketing/) | prototype | marketing | E-mail de marque sûr en repli sur tableaux |
-| [`magazine-poster`](design-templates/magazine-poster/) | prototype | marketing | Mise en page magazine d'une seule page |
-| [`motion-frames`](design-templates/motion-frames/) | prototype | marketing | Héro en mouvement CSS en boucle |
-| [`sprite-animation`](design-templates/sprite-animation/) | prototype | marketing | Explainer animé en pixels 8 bits |
-| [`pm-spec`](design-templates/pm-spec/) | prototype | product | Document de spec PM (avec sommaire + journal de décisions) |
-| [`team-okrs`](design-templates/team-okrs/) | prototype | product | Tableau de scores OKR |
-| [`eng-runbook`](design-templates/eng-runbook/) | prototype | engineering | Runbook d'incident |
-| [`finance-report`](design-templates/finance-report/) | prototype | finance | Synthèse financière pour dirigeants |
-| [`hr-onboarding`](design-templates/hr-onboarding/) | prototype | hr | Plan d'onboarding de poste |
-| [`guizang-ppt`](design-templates/guizang-ppt/) | deck | marketing | PPT web de style magazine (présentation par défaut) |
-| [`html-ppt-*`](design-templates/) | deck | marketing | 15 modèles de présentation × 36 thèmes (modèle maître dans [`design-templates/html-ppt/`](design-templates/html-ppt/)) |
-| [`hyperframes`](design-templates/hyperframes/) | video | marketing | Motion graphics HTML → MP4 (framework OSS de HeyGen) |
-| [`critique`](design-templates/critique/) | utility | design | Grille d'auto-critique en cinq dimensions |
-| [`tweaks`](design-templates/tweaks/) | utility | design | Manifeste de panneau de réglages émis par l'IA |
+| [`web-prototype`](../../design-templates/web-prototype/) | prototype | design | Landing page / héro par défaut |
+| [`saas-landing`](../../design-templates/saas-landing/) | prototype | marketing | Héro / fonctionnalités / tarifs / CTA |
+| [`dashboard`](../../design-templates/dashboard/) | prototype | operation | Admin / analytique (avec barre latérale) |
+| [`mobile-app`](../../design-templates/mobile-app/) | prototype | design | Application encadrée iPhone 15 Pro / Pixel |
+| [`mobile-onboarding`](../../design-templates/mobile-onboarding/) | prototype | design | Parcours splash · proposition de valeur · connexion |
+| [`social-carousel`](../../design-templates/social-carousel/) | prototype | marketing | Carrousel 3 cartes 1080×1080 |
+| [`email-marketing`](../../design-templates/email-marketing/) | prototype | marketing | E-mail de marque sûr en repli sur tableaux |
+| [`magazine-poster`](../../design-templates/magazine-poster/) | prototype | marketing | Mise en page magazine d'une seule page |
+| [`motion-frames`](../../design-templates/motion-frames/) | prototype | marketing | Héro en mouvement CSS en boucle |
+| [`sprite-animation`](../../design-templates/sprite-animation/) | prototype | marketing | Explainer animé en pixels 8 bits |
+| [`pm-spec`](../../design-templates/pm-spec/) | prototype | product | Document de spec PM (avec sommaire + journal de décisions) |
+| [`team-okrs`](../../design-templates/team-okrs/) | prototype | product | Tableau de scores OKR |
+| [`eng-runbook`](../../design-templates/eng-runbook/) | prototype | engineering | Runbook d'incident |
+| [`finance-report`](../../design-templates/finance-report/) | prototype | finance | Synthèse financière pour dirigeants |
+| [`hr-onboarding`](../../design-templates/hr-onboarding/) | prototype | hr | Plan d'onboarding de poste |
+| [`guizang-ppt`](../../design-templates/guizang-ppt/) | deck | marketing | PPT web de style magazine (présentation par défaut) |
+| [`html-ppt-*`](../../design-templates/) | deck | marketing | 15 modèles de présentation × 36 thèmes (modèle maître dans [`design-templates/html-ppt/`](../../design-templates/html-ppt/)) |
+| [`hyperframes`](../../design-templates/hyperframes/) | video | marketing | Motion graphics HTML → MP4 (framework OSS de HeyGen) |
+| [`critique`](../../design-templates/critique/) | utility | design | Grille d'auto-critique en cinq dimensions |
+| [`tweaks`](../../design-templates/tweaks/) | utility | design | Manifeste de panneau de réglages émis par l'IA |
-Protocole complet des skills → [`docs/skills-protocol.md`](docs/skills-protocol.md). Point de terminaison du registre des skills : `GET /api/skills`.
+Protocole complet des skills → [`docs/skills-protocol.md`](../../docs/skills-protocol.md). Point de terminaison du registre des skills : `GET /api/skills`.
---
@@ -430,7 +430,7 @@ Protocole complet des skills → [`docs/skills-protocol.md`](docs/skills-protoco
-Réimportez la bibliothèque via [`scripts/sync-design-systems.ts`](scripts/sync-design-systems.ts). Ajoutez votre propre marque → déposez un `DESIGN.md` dans `design-systems//`. Guide complet → [`design-systems/README.md`](design-systems/README.md).
+Réimportez la bibliothèque via [`scripts/sync-design-systems.ts`](../../scripts/sync-design-systems.ts). Ajoutez votre propre marque → déposez un `DESIGN.md` dans `design-systems//`. Guide complet → [`design-systems/README.md`](../../design-systems/README.md).
[acd2]: https://github.com/VoltAgent/awesome-design-md
@@ -438,24 +438,24 @@ Réimportez la bibliothèque via [`scripts/sync-design-systems.ts`](scripts/sync
## Plugins
-**261 plugins officiels** se trouvent dans [`plugins/_official/`](plugins/_official/). Chaque plugin est un **dossier d'agent-skill portable** — un `SKILL.md` (lisible par tout agent prenant en charge les Agent Skills), plus un manifeste `open-design.json` optionnel qui donne à Open Design des métadonnées de marketplace, des entrées, des aperçus, des pipelines et des déclarations de capacités. Accédez directement à une catégorie :
+**261 plugins officiels** se trouvent dans [`plugins/_official/`](../../plugins/_official/). Chaque plugin est un **dossier d'agent-skill portable** — un `SKILL.md` (lisible par tout agent prenant en charge les Agent Skills), plus un manifeste `open-design.json` optionnel qui donne à Open Design des métadonnées de marketplace, des entrées, des aperçus, des pipelines et des déclarations de capacités. Accédez directement à une catégorie :
| Catégorie | Nombre | Contenu |
|---|---|---|
-| [`scenarios/`](plugins/_official/scenarios/) | 11 | Scénarios de design complets — [`od-default`](plugins/_official/scenarios/od-default/), [`od-design-refine`](plugins/_official/scenarios/od-design-refine/), [`od-figma-migration`](plugins/_official/scenarios/od-figma-migration/), [`od-code-migration`](plugins/_official/scenarios/od-code-migration/), [`od-react-export`](plugins/_official/scenarios/od-react-export/), [`od-nextjs-export`](plugins/_official/scenarios/od-nextjs-export/), [`od-vue-export`](plugins/_official/scenarios/od-vue-export/), [`od-media-generation`](plugins/_official/scenarios/od-media-generation/), [`od-new-generation`](plugins/_official/scenarios/od-new-generation/), [`od-tune-collab`](plugins/_official/scenarios/od-tune-collab/), [`od-plugin-authoring`](plugins/_official/scenarios/od-plugin-authoring/) |
-| [`image-templates/`](plugins/_official/image-templates/) | 45 | Prompts d'image en un coup — éditorial, cinématographique, produit, portrait |
-| [`video-templates/`](plugins/_official/video-templates/) | 50 | Modèles de mouvement HyperFrames / Seedance / Veo |
-| [`design-systems/`](plugins/_official/design-systems/) | 142 | `DESIGN.md` de marque emballés en plugins |
-| [`atoms/`](plugins/_official/atoms/) | 13 | Fragments d'UI réutilisables (boutons, héros, cartes de KPI) |
-| [`examples/`](plugins/_official/examples/) | 140 | Sorties de référence remixables |
+| [`scenarios/`](../../plugins/_official/scenarios/) | 11 | Scénarios de design complets — [`od-default`](../../plugins/_official/scenarios/od-default/), [`od-design-refine`](../../plugins/_official/scenarios/od-design-refine/), [`od-figma-migration`](../../plugins/_official/scenarios/od-figma-migration/), [`od-code-migration`](../../plugins/_official/scenarios/od-code-migration/), [`od-react-export`](../../plugins/_official/scenarios/od-react-export/), [`od-nextjs-export`](../../plugins/_official/scenarios/od-nextjs-export/), [`od-vue-export`](../../plugins/_official/scenarios/od-vue-export/), [`od-media-generation`](../../plugins/_official/scenarios/od-media-generation/), [`od-new-generation`](../../plugins/_official/scenarios/od-new-generation/), [`od-tune-collab`](../../plugins/_official/scenarios/od-tune-collab/), [`od-plugin-authoring`](../../plugins/_official/scenarios/od-plugin-authoring/) |
+| [`image-templates/`](../../plugins/_official/image-templates/) | 45 | Prompts d'image en un coup — éditorial, cinématographique, produit, portrait |
+| [`video-templates/`](../../plugins/_official/video-templates/) | 50 | Modèles de mouvement HyperFrames / Seedance / Veo |
+| [`design-systems/`](../../plugins/_official/design-systems/) | 142 | `DESIGN.md` de marque emballés en plugins |
+| [`atoms/`](../../plugins/_official/atoms/) | 13 | Fragments d'UI réutilisables (boutons, héros, cartes de KPI) |
+| [`examples/`](../../plugins/_official/examples/) | 140 | Sorties de référence remixables |
-Voir aussi [`plugins/community/`](plugins/community/) pour les plugins communautaires et [`plugins/registry/`](plugins/registry/) pour le flux de publication.
+Voir aussi [`plugins/community/`](../../plugins/community/) pour les plugins communautaires et [`plugins/registry/`](../../plugins/registry/) pour le flux de publication.
### Ce que les plugins peuvent faire
-- 🤖 **S'exécuter dans n'importe quel agent de code** — [Claude Code](docs/agent-adapters.md), Codex, Cursor, Copilot, [OpenClaw](https://github.com/openclaw/openclaw), [Antigravity](https://antigravity.google), Hermes, Kimi… via le même protocole de skill que l'agent connaît déjà.
-- 🔁 **Migrer les workflows Figma / Pencil** → source React, Next.js ou Vue. Voir [`od-figma-migration`](plugins/_official/scenarios/od-figma-migration/).
-- 🛠️ **Rafraîchir une base de code existante selon des spécifications de marque** — pointez un plugin vers un dépôt `git` + un `DESIGN.md`, obtenez une PR. Voir [`od-code-migration`](plugins/_official/scenarios/od-code-migration/).
+- 🤖 **S'exécuter dans n'importe quel agent de code** — [Claude Code](../../docs/agent-adapters.md), Codex, Cursor, Copilot, [OpenClaw](https://github.com/openclaw/openclaw), [Antigravity](https://antigravity.google), Hermes, Kimi… via le même protocole de skill que l'agent connaît déjà.
+- 🔁 **Migrer les workflows Figma / Pencil** → source React, Next.js ou Vue. Voir [`od-figma-migration`](../../plugins/_official/scenarios/od-figma-migration/).
+- 🛠️ **Rafraîchir une base de code existante selon des spécifications de marque** — pointez un plugin vers un dépôt `git` + un `DESIGN.md`, obtenez une PR. Voir [`od-code-migration`](../../plugins/_official/scenarios/od-code-migration/).
- 💾 **Persister des workflows personnalisés** — les modèles réutilisables de votre équipe côtoient ceux livrés d'origine.
### Utiliser les plugins
@@ -501,16 +501,16 @@ od plugin validate ./my-plugin # check manifest / file
pnpm guard && pnpm --filter @open-design/plugin-runtime typecheck
```
-Ensemble complet des champs et contrat d'exécution → [`plugins/spec/SPEC.md`](plugins/spec/SPEC.md) ; développer un plugin avec un agent de code → [`plugins/spec/AGENT-DEVELOPMENT.md`](plugins/spec/AGENT-DEVELOPMENT.md) ; modèles minimaux à copier-coller → [`plugins/spec/examples/`](plugins/spec/examples/).
+Ensemble complet des champs et contrat d'exécution → [`plugins/spec/SPEC.md`](../../plugins/spec/SPEC.md) ; développer un plugin avec un agent de code → [`plugins/spec/AGENT-DEVELOPMENT.md`](../../plugins/spec/AGENT-DEVELOPMENT.md) ; modèles minimaux à copier-coller → [`plugins/spec/examples/`](../../plugins/spec/examples/).
### Contribuer un plugin
-1. Déposez le dossier du plugin dans [`plugins/community/`](plugins/community/) (plugins tiers), ou — pour le livrer empaqueté avec Open Design — dans le tier correspondant de [`plugins/_official/`](plugins/_official/).
+1. Déposez le dossier du plugin dans [`plugins/community/`](../../plugins/community/) (plugins tiers), ou — pour le livrer empaqueté avec Open Design — dans le tier correspondant de [`plugins/_official/`](../../plugins/_official/).
2. Passez la validation : `od plugin validate`, `pnpm guard`, `pnpm --filter @open-design/plugin-runtime typecheck`.
-3. Remplissez la PR à l'aide du modèle dans [`plugins/spec/CONTRIBUTING.md`](plugins/spec/CONTRIBUTING.md) (ID, version, voie, mode, capacités, exemples de déclencheurs ; joignez une capture d'écran / un aperçu pour les plugins visuels).
-4. Pour publier sur un registre externe (skills.sh / ClawHub / GitHub autonome) → [`plugins/spec/PUBLISHING-REGISTRIES.md`](plugins/spec/PUBLISHING-REGISTRIES.md).
+3. Remplissez la PR à l'aide du modèle dans [`plugins/spec/CONTRIBUTING.md`](../../plugins/spec/CONTRIBUTING.md) (ID, version, voie, mode, capacités, exemples de déclencheurs ; joignez une capture d'écran / un aperçu pour les plugins visuels).
+4. Pour publier sur un registre externe (skills.sh / ClawHub / GitHub autonome) → [`plugins/spec/PUBLISHING-REGISTRIES.md`](../../plugins/spec/PUBLISHING-REGISTRIES.md).
-Point de terminaison du registre des plugins : `GET /api/plugins`. Vue d'ensemble du répertoire → [`plugins/README.md`](plugins/README.md) ([简体中文](plugins/README.zh-CN.md)).
+Point de terminaison du registre des plugins : `GET /api/plugins`. Vue d'ensemble du répertoire → [`plugins/README.md`](../../plugins/README.md) ([简体中文](../../plugins/README.zh-CN.md)).
---
@@ -553,7 +553,7 @@ Point de terminaison du registre des plugins : `GET /api/plugins`. Vue d'ensembl
| Bureau | Coque Electron + renderer sandboxé + IPC sidecar (STATUS · EVAL · SCREENSHOT · CONSOLE · CLICK · SHUTDOWN) |
| Cycle de vie | Un seul point d'entrée : `pnpm tools-dev` (start / stop / run / status / logs / inspect / check) |
-Architecture complète → [`docs/architecture.md`](docs/architecture.md). Protocole des skills → [`docs/skills-protocol.md`](docs/skills-protocol.md). Contrat d'adaptateur d'agent → [`docs/agent-adapters.md`](docs/agent-adapters.md).
+Architecture complète → [`docs/architecture.md`](../../docs/architecture.md). Protocole des skills → [`docs/skills-protocol.md`](../../docs/skills-protocol.md). Contrat d'adaptateur d'agent → [`docs/agent-adapters.md`](../../docs/agent-adapters.md).
---
@@ -577,7 +577,7 @@ Architecture complète → [`docs/architecture.md`](docs/architecture.md). Proto
- [ ] Plugins de migration Figma / Pencil → React / Next / Vue (alpha)
- [ ] Plugin de rafraîchissement de base de code existante (pointer vers un dépôt git + un `DESIGN.md`)
-Livraison par phases → [`docs/roadmap.md`](docs/roadmap.md).
+Livraison par phases → [`docs/roadmap.md`](../../docs/roadmap.md).
---
@@ -602,12 +602,12 @@ Open Design continue d'avancer parce que des contributeurs — designers, ingén
| Vous voulez livrer… | Comment | Où |
|---|---|---|
-| Un nouveau **skill** | Déposez un dossier avec `SKILL.md` + `assets/` + `references/` | [`skills/`](skills/) · spec dans [`docs/skills-protocol.md`](docs/skills-protocol.md) |
-| Un nouveau **système de design** | Déposez un `DESIGN.md` utilisant le schéma en 9 sections | [`design-systems//`](design-systems/) |
-| Un nouveau **plugin** | Déposez `open-design.json` + manifeste sous un dossier de catégorie | [`plugins/community/`](plugins/community/) · spec dans [`plugins/spec/SPEC.md`](plugins/spec/SPEC.md) · guide de dev agent dans [`plugins/spec/AGENT-DEVELOPMENT.md`](plugins/spec/AGENT-DEVELOPMENT.md) |
-| Prendre en charge un nouveau **CLI d'agent de code** | Une entrée d'adaptateur + un parseur de flux | [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts) |
+| Un nouveau **skill** | Déposez un dossier avec `SKILL.md` + `assets/` + `references/` | [`skills/`](../../skills/) · spec dans [`docs/skills-protocol.md`](../../docs/skills-protocol.md) |
+| Un nouveau **système de design** | Déposez un `DESIGN.md` utilisant le schéma en 9 sections | [`design-systems//`](../../design-systems/) |
+| Un nouveau **plugin** | Déposez `open-design.json` + manifeste sous un dossier de catégorie | [`plugins/community/`](../../plugins/community/) · spec dans [`plugins/spec/SPEC.md`](../../plugins/spec/SPEC.md) · guide de dev agent dans [`plugins/spec/AGENT-DEVELOPMENT.md`](../../plugins/spec/AGENT-DEVELOPMENT.md) |
+| Prendre en charge un nouveau **CLI d'agent de code** | Une entrée d'adaptateur + un parseur de flux | [`apps/daemon/src/agents.ts`](../../apps/daemon/src/agents.ts) |
| Corriger un bug ou peaufiner l'UI | Parcourez le label [`good-first-issue`](https://github.com/nexu-io/open-design/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) | [Issues →](https://github.com/nexu-io/open-design/issues) |
-| Traduire la documentation | Mettez à jour les fichiers `README..md` | [`TRANSLATIONS.md`](TRANSLATIONS.md) |
+| Traduire la documentation | Mettez à jour les fichiers `README..md` | [`TRANSLATIONS.md`](../../TRANSLATIONS.md) |
### 🤖 Contribuer en tant qu'agent
@@ -631,11 +631,11 @@ pnpm --filter @open-design/ test
gh pr create --fill
```
-Flux complet de contribution adapté aux agents, style de code et exigences pour les PR → [English](CONTRIBUTING.md) ([Deutsch](CONTRIBUTING.de.md) · [Français](CONTRIBUTING.fr.md) · [简体中文](CONTRIBUTING.zh-CN.md) · [日本語](CONTRIBUTING.ja-JP.md) · [Português](CONTRIBUTING.pt-BR.md)).
+Flux complet de contribution adapté aux agents, style de code et exigences pour les PR → [English](../../CONTRIBUTING.md) ([Deutsch](CONTRIBUTING.de.md) · [Français](CONTRIBUTING.fr.md) · [简体中文](CONTRIBUTING.zh-CN.md) · [日本語](CONTRIBUTING.ja-JP.md) · [Português](CONTRIBUTING.pt-BR.md)).
### 🏅 Programme Open Design Fellow
-Nous recrutons des **Open Design Fellows** dans le monde entier — les Fellows façonnent le produit aux côtés de l'équipe principale, représentent officiellement Open Design dans leur région et font grandir la communauté localement, avec le soutien d'un financement ($1,000 / MR), de crédits LLM gratuits et d'une voie de revue directe. Détails → [`MAINTAINERS.md`](MAINTAINERS.md) et l'annonce sur [Discord](https://discord.gg/qhbcCH8Am4).
+Nous recrutons des **Open Design Fellows** dans le monde entier — les Fellows façonnent le produit aux côtés de l'équipe principale, représentent officiellement Open Design dans leur région et font grandir la communauté localement, avec le soutien d'un financement ($1,000 / MR), de crédits LLM gratuits et d'une voie de revue directe. Détails → [`MAINTAINERS.md`](../../MAINTAINERS.md) et l'annonce sur [Discord](https://discord.gg/qhbcCH8Am4).
---
@@ -662,7 +662,7 @@ Ils portent une grande partie de la charge — maintenance quotidienne, revue et
-Règles des mainteneurs, critères de promotion et protocole de départ → [`MAINTAINERS.md`](MAINTAINERS.md) (aussi [Deutsch](MAINTAINERS.de.md) · [Français](MAINTAINERS.fr.md) · [简体中文](MAINTAINERS.zh-CN.md) · [日本語](MAINTAINERS.ja-JP.md) · [Português](MAINTAINERS.pt-BR.md)).
+Règles des mainteneurs, critères de promotion et protocole de départ → [`MAINTAINERS.md`](../../MAINTAINERS.md) (aussi [Deutsch](MAINTAINERS.de.md) · [Français](MAINTAINERS.fr.md) · [简体中文](MAINTAINERS.zh-CN.md) · [日本語](MAINTAINERS.ja-JP.md) · [Português](MAINTAINERS.pt-BR.md)).
## Contributeurs
@@ -680,7 +680,7 @@ Merci à toutes les personnes qui ont pris part — code, documentation, retours
-Le SVG ci-dessus est régénéré quotidiennement par [`.github/workflows/metrics.yml`](.github/workflows/metrics.yml) à l'aide de [`lowlighter/metrics`](https://github.com/lowlighter/metrics).
+Le SVG ci-dessus est régénéré quotidiennement par [`.github/workflows/metrics.yml`](../../.github/workflows/metrics.yml) à l'aide de [`lowlighter/metrics`](https://github.com/lowlighter/metrics).
---
@@ -708,7 +708,7 @@ Si cela vous a fait gagner trente minutes, mettez-lui une ★. Les étoiles ne p
|---|---|
| [Claude Design][cd] | Le produit propriétaire dont ce dépôt est l'alternative open source. |
| [`alchaincyf/huashu-design`](https://github.com/alchaincyf/huashu-design) | La boussole de la philosophie de design — workflow de designer junior, protocole de ressources de marque, checklist anti-AI-slop, critique en cinq dimensions. |
-| [`op7418/guizang-ppt-skill`](https://github.com/op7418/guizang-ppt-skill) | Le skill de PPT web de style magazine, intégré tel quel sous [`design-templates/guizang-ppt/`](design-templates/guizang-ppt/). Par défaut pour le mode présentation. |
+| [`op7418/guizang-ppt-skill`](https://github.com/op7418/guizang-ppt-skill) | Le skill de PPT web de style magazine, intégré tel quel sous [`design-templates/guizang-ppt/`](../../design-templates/guizang-ppt/). Par défaut pour le mode présentation. |
| [`lewislulu/html-ppt-skill`](https://github.com/lewislulu/html-ppt-skill) | La famille HTML PPT Studio — 15 modèles de présentation, 36 thèmes, 31 mises en page de page, runtime d'animation, mode présentateur à cartes magnétiques. |
| [`OpenCoworkAI/open-codesign`](https://github.com/OpenCoworkAI/open-codesign) | La première alternative open source à Claude Design ; des patterns UX que nous empruntons (boucle d'artefact en flux, iframe sandboxée, panneau d'agent en direct). |
| [`multica-ai/multica`](https://github.com/multica-ai/multica) | L'architecture daemon + adaptateur — détection d'agents par scan du PATH, daemon local comme unique processus privilégié. |
@@ -717,10 +717,10 @@ Si cela vous a fait gagner trente minutes, mettez-lui une ★. Les étoiles ne p
| [`heygen-com/hyperframes`](https://github.com/heygen-com/hyperframes) | Le framework de motion graphics HTML→MP4, intégré comme `hyperframes-html` de première classe dans Open Design. |
| [Claude Code skills][skill] | La convention `SKILL.md` que nous adoptons telle quelle. |
-Provenance détaillée → [`docs/references.md`](docs/references.md).
+Provenance détaillée → [`docs/references.md`](../../docs/references.md).
[skill]: https://docs.anthropic.com/en/docs/claude-code/skills
## Licence
-Apache-2.0. Le `design-templates/guizang-ppt/` intégré conserve sa [LICENSE](design-templates/guizang-ppt/LICENSE) d'origine (MIT, [@op7418](https://github.com/op7418)). Le `design-templates/html-ppt/` intégré conserve sa [LICENSE](design-templates/html-ppt/LICENSE) d'origine (MIT, [@lewislulu](https://github.com/lewislulu)).
+Apache-2.0. Le `design-templates/guizang-ppt/` intégré conserve sa [LICENSE](../../design-templates/guizang-ppt/LICENSE) d'origine (MIT, [@op7418](https://github.com/op7418)). Le `design-templates/html-ppt/` intégré conserve sa [LICENSE](../../design-templates/html-ppt/LICENSE) d'origine (MIT, [@lewislulu](https://github.com/lewislulu)).
diff --git a/README.ja-JP.md b/docs/i18n/README.ja-JP.md
similarity index 76%
rename from README.ja-JP.md
rename to docs/i18n/README.ja-JP.md
index d8369d77ad..792f60661a 100644
--- a/README.ja-JP.md
+++ b/docs/i18n/README.ja-JP.md
@@ -2,7 +2,7 @@
> 🔥 **Open Design 0.9.0 が登場——セットアップなしで創作を。** [公式 Model Router](https://open-design.ai/amr) がアプリに直接組み込まれました。追加設定も、インストールする CLI も、用意する API キーも不要。アプリを開いてサインインするだけで、すぐにデザインと創作を始められます。[0.9.0 をダウンロード](https://github.com/nexu-io/open-design/releases) · [ディスカッションに参加](https://github.com/nexu-io/open-design/discussions/3524)
>
-> 🏅 **Open Design Fellow プログラムの募集を開始しました。** あなたもデザインはオープンであるべきだと信じるなら——Open Design Fellow となり、コアチームとともにプロダクトを形づくり、より多くの人がデザインの未来を定義することに参加できるよう手助けしてください。詳細 → [`MAINTAINERS.md`](MAINTAINERS.md) と [Discord](https://discord.gg/qhbcCH8Am4)。
+> 🏅 **Open Design Fellow プログラムの募集を開始しました。** あなたもデザインはオープンであるべきだと信じるなら——Open Design Fellow となり、コアチームとともにプロダクトを形づくり、より多くの人がデザインの未来を定義することに参加できるよう手助けしてください。詳細 → [`MAINTAINERS.md`](../../MAINTAINERS.md) と [Discord](https://discord.gg/qhbcCH8Am4)。
@@ -17,12 +17,12 @@
-English · Español · Português · Deutsch · Français · 简体中文 · 繁體中文 · 한국어 · 日本語 · العربية · Русский · Українська · Türkçe
+English · Español · Português · Deutsch · Français · 简体中文 · 繁體中文 · 한국어 · 日本語 · العربية · Русский · Українська · Türkçe
---
@@ -135,7 +135,7 @@ Open Design が何であり、何ができるのかを手早く見ていきま
**CLI を一つもインストールしていない場合は?** `POST /api/proxy/{anthropic,openai,azure,google,ollama,senseaudio}/stream` の BYOK プロキシが同じループ(プロセスのスポーンなし)を提供します——`baseUrl` + `apiKey` + `model` を貼り付けるだけで、OpenAI、Anthropic、Azure OpenAI、Google Gemini、Ollama、LM Studio、vLLM、または任意の OpenAI 互換エンドポイントに対応します。ターゲットごとの SSRF 保護が、内部 IP/リンクローカル/CGNAT をデーモンのエッジでブロックします。
-アダプターの契約とストリームパーサーは [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts) にあります。新しい CLI の追加はエントリー 1 つだけです——[`docs/agent-adapters.md`](docs/agent-adapters.md) を参照してください。
+アダプターの契約とストリームパーサーは [`apps/daemon/src/agents.ts`](../../apps/daemon/src/agents.ts) にあります。新しい CLI の追加はエントリー 1 つだけです——[`docs/agent-adapters.md`](../../docs/agent-adapters.md) を参照してください。
---
@@ -150,21 +150,21 @@ Open Design が何であり、何ができるのかを手早く見ていきま
-
+
エントリービュー — スキルを選び、デザインシステムを選び、ブリーフを入力します。プロトタイプ、ダッシュボード、スライド、モバイルアプリ、雑誌風ページのための単一のサーフェスです。
-
+
モバイルプロトタイプ — ピクセル精度の iPhone 15 Pro のクロームと、マルチスクリーンのフロー。エージェントは決して電話のフレームを描き直しません。共有されるデバイスフレームは assets/frames/ にあります。
-
+
ウェブプロトタイプ — スクロールバー、KPI、チャートを備えたエディトリアルなダッシュボード。design-templates/dating-web/ から直接レンダリングされています。
-
+
モバイルアプリのプロトタイプ — XP リボンとクエスト詳細を備えた 3 画面のゲーミフィケーションフロー。Cursor / Codex / Claude Code に直接引き渡して React/Next/Vue に変換できます。
@@ -177,21 +177,21 @@ Open Design が何であり、何ができるのかを手早く見ていきま
-
+
ライブダッシュボード — 編集可能な KPI ウォールで、その tweaks パネルが調整に値するパラメーターを浮かび上がらせます。エージェントがマニフェストを発行し、iframe はリロードなしで再レンダリングします。
-
+
意思決定ルーム — プロダクト/リサーチ/オペレーションの会議向けの、マルチソースのブリーフィングアーティファクト。
-
+
GitHub スタイルのダッシュボード — リポジトリのメトリクスをライブアーティファクトとして提示します。
-
+
Flow ライブダッシュボードテンプレート — アクティブな DESIGN.md によってブランド化された、ドメイン特化型の KPI テンプレート。
@@ -202,11 +202,11 @@ Open Design が何であり、何ができるのかを手早く見ていきま
-
+
Deck モード (guizang-ppt) — 雑誌風レイアウト、WebGL ヒーロー、P0/P1/P2 チェックリスト。op7418/guizang-ppt-skill からそのままバンドルされ、元のライセンスを保持しています。
-
+
スイス・インターナショナルスタイルのスライド — グリッドに固定され、モノクロのアクセントを効かせています。design-templates/html-ppt-*/ 配下の 15 のスライドテンプレートと 36 のテーマのうちの 1 つです。
@@ -226,7 +226,7 @@ Open Design が何であり、何ができるのかを手早く見ていきま
-**93 のすぐに再現できるプロンプト**が [`prompt-templates/`](prompt-templates/) にあります——プレビューサムネイル、プロンプト全文、対象モデル、アスペクト比、出典の帰属付きです。ワンクリックでブリーフをコンポーザーに投入できます。
+**93 のすぐに再現できるプロンプト**が [`prompt-templates/`](../../prompt-templates/) にあります——プレビューサムネイル、プロンプト全文、対象モデル、アスペクト比、出典の帰属付きです。ワンクリックでブリーフをコンポーザーに投入できます。
### 5 · 動画と HyperFrames — エージェントネイティブなモーショングラフィックス
@@ -234,20 +234,20 @@ Open Design が何であり、何ができるのかを手早く見ていきま
/open-design.json`(またはプラットフォーム相当のもの)と、コピー&ペースト用の MCP スニペットを配置します。Cursor にはワンクリックのディープリンク、Claude Code には `claude mcp add-json` のワンライナー、その他すべてのエージェントには、その設定が期待するスキーマの JSON が提供されます。エージェントごとの完全なフロー → デスクトップアプリの **Settings → MCP server**、または [`docs/agent-adapters.md`](docs/agent-adapters.md)。
+**ゼロから始めるエージェントのために、**インストーラーは `~/.config//open-design.json`(またはプラットフォーム相当のもの)と、コピー&ペースト用の MCP スニペットを配置します。Cursor にはワンクリックのディープリンク、Claude Code には `claude mcp add-json` のワンライナー、その他すべてのエージェントには、その設定が期待するスキーマの JSON が提供されます。エージェントごとの完全なフロー → デスクトップアプリの **Settings → MCP server**、または [`docs/agent-adapters.md`](../../docs/agent-adapters.md)。
**セキュリティモデル。** デフォルトで読み取り専用、デーモンは `127.0.0.1` にバインドし、SSRF はプロキシのエッジでブロックされます。LAN への公開には、明示的な `OD_BIND_HOST` と `OD_ALLOWED_ORIGINS` が必要です。コネクターの認証情報とライブアーティファクトのプレビュールートは、いずれにせよループバック専用のままです。
@@ -372,34 +372,34 @@ od skill list --scenario marketing
## スキル
-**100 種類以上のスキルが標準で同梱されています**——それぞれが [`skills/`](skills/) 配下のフォルダで、Claude Code の [`SKILL.md`][skill] 規約に従い、`od:` フロントマター(`mode`、`platform`、`scenario`、`preview.type`、`design_system.requires`、`default_for`、`fidelity`、`example_prompt`)で拡張されています。フォルダをドロップしてデーモンを再起動すれば、ピッカーに表示されます。
+**100 種類以上のスキルが標準で同梱されています**——それぞれが [`skills/`](../../skills/) 配下のフォルダで、Claude Code の [`SKILL.md`][skill] 規約に従い、`od:` フロントマター(`mode`、`platform`、`scenario`、`preview.type`、`design_system.requires`、`default_for`、`fidelity`、`example_prompt`)で拡張されています。フォルダをドロップしてデーモンを再起動すれば、ピッカーに表示されます。
2 つの**モード**がカタログの軸になります: `prototype`(ウェブ/モバイル/デスクトップの単一ページアーティファクト)と `deck`(横スワイプのプレゼンテーション)。さらに `image`、`video`、`audio`、`template`、`design-system`、`utility` の各モードもあります。**`scenario`** フィールドは、それらを対象者ごとにグループ化します: `design` · `marketing` · `operation` · `engineering` · `product` · `finance` · `hr` · `sale` · `personal`。
| スキル | モード | シナリオ | 生成するもの |
|---|---|---|---|
-| [`web-prototype`](design-templates/web-prototype/) | prototype | design | デフォルトのランディングページ/ヒーロー |
-| [`saas-landing`](design-templates/saas-landing/) | prototype | marketing | ヒーロー/機能/価格/CTA |
-| [`dashboard`](design-templates/dashboard/) | prototype | operation | 管理画面/アナリティクス(サイドバー付き) |
-| [`mobile-app`](design-templates/mobile-app/) | prototype | design | iPhone 15 Pro / Pixel フレーム付きアプリ |
-| [`mobile-onboarding`](design-templates/mobile-onboarding/) | prototype | design | スプラッシュ · 価値提案 · サインインフロー |
-| [`social-carousel`](design-templates/social-carousel/) | prototype | marketing | 3 カードの 1080×1080 カルーセル |
-| [`email-marketing`](design-templates/email-marketing/) | prototype | marketing | テーブルフォールバック対応のブランドメール |
-| [`magazine-poster`](design-templates/magazine-poster/) | prototype | marketing | 単一ページの雑誌レイアウト |
-| [`motion-frames`](design-templates/motion-frames/) | prototype | marketing | ループする CSS モーションヒーロー |
-| [`sprite-animation`](design-templates/sprite-animation/) | prototype | marketing | 8 ビットのピクセルアニメーション解説 |
-| [`pm-spec`](design-templates/pm-spec/) | prototype | product | PM スペック文書(目次 + 意思決定ログ付き) |
-| [`team-okrs`](design-templates/team-okrs/) | prototype | product | OKR スコアカード |
-| [`eng-runbook`](design-templates/eng-runbook/) | prototype | engineering | インシデントランブック |
-| [`finance-report`](design-templates/finance-report/) | prototype | finance | 経営向け財務サマリー |
-| [`hr-onboarding`](design-templates/hr-onboarding/) | prototype | hr | 役割別オンボーディング計画 |
-| [`guizang-ppt`](design-templates/guizang-ppt/) | deck | marketing | 雑誌風のウェブ PPT(deck のデフォルト) |
-| [`html-ppt-*`](design-templates/) | deck | marketing | 15 のスライドテンプレート × 36 のテーマ(マスターテンプレートは [`design-templates/html-ppt/`](design-templates/html-ppt/)) |
-| [`hyperframes`](design-templates/hyperframes/) | video | marketing | HTML → MP4 のモーショングラフィックス(HeyGen OSS フレームワーク) |
-| [`critique`](design-templates/critique/) | utility | design | 5 次元の自己批評スコアシート |
-| [`tweaks`](design-templates/tweaks/) | utility | design | AI が発行する tweaks パネルのマニフェスト |
+| [`web-prototype`](../../design-templates/web-prototype/) | prototype | design | デフォルトのランディングページ/ヒーロー |
+| [`saas-landing`](../../design-templates/saas-landing/) | prototype | marketing | ヒーロー/機能/価格/CTA |
+| [`dashboard`](../../design-templates/dashboard/) | prototype | operation | 管理画面/アナリティクス(サイドバー付き) |
+| [`mobile-app`](../../design-templates/mobile-app/) | prototype | design | iPhone 15 Pro / Pixel フレーム付きアプリ |
+| [`mobile-onboarding`](../../design-templates/mobile-onboarding/) | prototype | design | スプラッシュ · 価値提案 · サインインフロー |
+| [`social-carousel`](../../design-templates/social-carousel/) | prototype | marketing | 3 カードの 1080×1080 カルーセル |
+| [`email-marketing`](../../design-templates/email-marketing/) | prototype | marketing | テーブルフォールバック対応のブランドメール |
+| [`magazine-poster`](../../design-templates/magazine-poster/) | prototype | marketing | 単一ページの雑誌レイアウト |
+| [`motion-frames`](../../design-templates/motion-frames/) | prototype | marketing | ループする CSS モーションヒーロー |
+| [`sprite-animation`](../../design-templates/sprite-animation/) | prototype | marketing | 8 ビットのピクセルアニメーション解説 |
+| [`pm-spec`](../../design-templates/pm-spec/) | prototype | product | PM スペック文書(目次 + 意思決定ログ付き) |
+| [`team-okrs`](../../design-templates/team-okrs/) | prototype | product | OKR スコアカード |
+| [`eng-runbook`](../../design-templates/eng-runbook/) | prototype | engineering | インシデントランブック |
+| [`finance-report`](../../design-templates/finance-report/) | prototype | finance | 経営向け財務サマリー |
+| [`hr-onboarding`](../../design-templates/hr-onboarding/) | prototype | hr | 役割別オンボーディング計画 |
+| [`guizang-ppt`](../../design-templates/guizang-ppt/) | deck | marketing | 雑誌風のウェブ PPT(deck のデフォルト) |
+| [`html-ppt-*`](../../design-templates/) | deck | marketing | 15 のスライドテンプレート × 36 のテーマ(マスターテンプレートは [`design-templates/html-ppt/`](../../design-templates/html-ppt/)) |
+| [`hyperframes`](../../design-templates/hyperframes/) | video | marketing | HTML → MP4 のモーショングラフィックス(HeyGen OSS フレームワーク) |
+| [`critique`](../../design-templates/critique/) | utility | design | 5 次元の自己批評スコアシート |
+| [`tweaks`](../../design-templates/tweaks/) | utility | design | AI が発行する tweaks パネルのマニフェスト |
-完全なスキルプロトコル → [`docs/skills-protocol.md`](docs/skills-protocol.md)。スキルレジストリのエンドポイント: `GET /api/skills`。
+完全なスキルプロトコル → [`docs/skills-protocol.md`](../../docs/skills-protocol.md)。スキルレジストリのエンドポイント: `GET /api/skills`。
---
@@ -430,7 +430,7 @@ od skill list --scenario marketing
-ライブラリの再インポートは [`scripts/sync-design-systems.ts`](scripts/sync-design-systems.ts) で行えます。独自のブランドを追加する → `design-systems//` に `DESIGN.md` をドロップします。完全なガイド → [`design-systems/README.md`](design-systems/README.md)。
+ライブラリの再インポートは [`scripts/sync-design-systems.ts`](../../scripts/sync-design-systems.ts) で行えます。独自のブランドを追加する → `design-systems//` に `DESIGN.md` をドロップします。完全なガイド → [`design-systems/README.md`](../../design-systems/README.md)。
[acd2]: https://github.com/VoltAgent/awesome-design-md
@@ -438,24 +438,24 @@ od skill list --scenario marketing
## プラグイン
-**261 の公式プラグイン**が [`plugins/_official/`](plugins/_official/) にあります。各プラグインは**ポータブルなエージェントスキルのフォルダ**です——`SKILL.md`(Agent Skills をサポートする任意のエージェントが読める)に加え、Open Design にマーケットプレイスのメタデータ、入力、プレビュー、パイプライン、機能宣言を与える任意の `open-design.json` マニフェストを備えています。カテゴリーに直接ジャンプ:
+**261 の公式プラグイン**が [`plugins/_official/`](../../plugins/_official/) にあります。各プラグインは**ポータブルなエージェントスキルのフォルダ**です——`SKILL.md`(Agent Skills をサポートする任意のエージェントが読める)に加え、Open Design にマーケットプレイスのメタデータ、入力、プレビュー、パイプライン、機能宣言を与える任意の `open-design.json` マニフェストを備えています。カテゴリーに直接ジャンプ:
| カテゴリー | 数 | 内容 |
|---|---|---|
-| [`scenarios/`](plugins/_official/scenarios/) | 11 | 完全なデザインシナリオ — [`od-default`](plugins/_official/scenarios/od-default/), [`od-design-refine`](plugins/_official/scenarios/od-design-refine/), [`od-figma-migration`](plugins/_official/scenarios/od-figma-migration/), [`od-code-migration`](plugins/_official/scenarios/od-code-migration/), [`od-react-export`](plugins/_official/scenarios/od-react-export/), [`od-nextjs-export`](plugins/_official/scenarios/od-nextjs-export/), [`od-vue-export`](plugins/_official/scenarios/od-vue-export/), [`od-media-generation`](plugins/_official/scenarios/od-media-generation/), [`od-new-generation`](plugins/_official/scenarios/od-new-generation/), [`od-tune-collab`](plugins/_official/scenarios/od-tune-collab/), [`od-plugin-authoring`](plugins/_official/scenarios/od-plugin-authoring/) |
-| [`image-templates/`](plugins/_official/image-templates/) | 45 | ワンショットの画像プロンプト — エディトリアル、シネマティック、プロダクト、ポートレート |
-| [`video-templates/`](plugins/_official/video-templates/) | 50 | HyperFrames / Seedance / Veo のモーションテンプレート |
-| [`design-systems/`](plugins/_official/design-systems/) | 142 | プラグインとしてラップされたブランド `DESIGN.md` |
-| [`atoms/`](plugins/_official/atoms/) | 13 | 再利用可能な UI フラグメント(ボタン、ヒーロー、KPI カード) |
-| [`examples/`](plugins/_official/examples/) | 140 | リミックス可能なリファレンス出力 |
+| [`scenarios/`](../../plugins/_official/scenarios/) | 11 | 完全なデザインシナリオ — [`od-default`](../../plugins/_official/scenarios/od-default/), [`od-design-refine`](../../plugins/_official/scenarios/od-design-refine/), [`od-figma-migration`](../../plugins/_official/scenarios/od-figma-migration/), [`od-code-migration`](../../plugins/_official/scenarios/od-code-migration/), [`od-react-export`](../../plugins/_official/scenarios/od-react-export/), [`od-nextjs-export`](../../plugins/_official/scenarios/od-nextjs-export/), [`od-vue-export`](../../plugins/_official/scenarios/od-vue-export/), [`od-media-generation`](../../plugins/_official/scenarios/od-media-generation/), [`od-new-generation`](../../plugins/_official/scenarios/od-new-generation/), [`od-tune-collab`](../../plugins/_official/scenarios/od-tune-collab/), [`od-plugin-authoring`](../../plugins/_official/scenarios/od-plugin-authoring/) |
+| [`image-templates/`](../../plugins/_official/image-templates/) | 45 | ワンショットの画像プロンプト — エディトリアル、シネマティック、プロダクト、ポートレート |
+| [`video-templates/`](../../plugins/_official/video-templates/) | 50 | HyperFrames / Seedance / Veo のモーションテンプレート |
+| [`design-systems/`](../../plugins/_official/design-systems/) | 142 | プラグインとしてラップされたブランド `DESIGN.md` |
+| [`atoms/`](../../plugins/_official/atoms/) | 13 | 再利用可能な UI フラグメント(ボタン、ヒーロー、KPI カード) |
+| [`examples/`](../../plugins/_official/examples/) | 140 | リミックス可能なリファレンス出力 |
-コミュニティプラグインは [`plugins/community/`](plugins/community/)、公開フローは [`plugins/registry/`](plugins/registry/) もご覧ください。
+コミュニティプラグインは [`plugins/community/`](../../plugins/community/)、公開フローは [`plugins/registry/`](../../plugins/registry/) もご覧ください。
### プラグインにできること
-- 🤖 **任意のコーディングエージェントで実行** — [Claude Code](docs/agent-adapters.md)、Codex、Cursor、Copilot、[OpenClaw](https://github.com/openclaw/openclaw)、[Antigravity](https://antigravity.google)、Hermes、Kimi… エージェントがすでに知っている同じスキルプロトコルを通じて。
-- 🔁 **Figma / Pencil のワークフローを移行** → React、Next.js、または Vue のソースへ。[`od-figma-migration`](plugins/_official/scenarios/od-figma-migration/) を参照。
-- 🛠️ **既存のコードベースをブランド仕様にリフレッシュ** — プラグインを `git` リポジトリ + `DESIGN.md` に向ければ、PR が得られます。[`od-code-migration`](plugins/_official/scenarios/od-code-migration/) を参照。
+- 🤖 **任意のコーディングエージェントで実行** — [Claude Code](../../docs/agent-adapters.md)、Codex、Cursor、Copilot、[OpenClaw](https://github.com/openclaw/openclaw)、[Antigravity](https://antigravity.google)、Hermes、Kimi… エージェントがすでに知っている同じスキルプロトコルを通じて。
+- 🔁 **Figma / Pencil のワークフローを移行** → React、Next.js、または Vue のソースへ。[`od-figma-migration`](../../plugins/_official/scenarios/od-figma-migration/) を参照。
+- 🛠️ **既存のコードベースをブランド仕様にリフレッシュ** — プラグインを `git` リポジトリ + `DESIGN.md` に向ければ、PR が得られます。[`od-code-migration`](../../plugins/_official/scenarios/od-code-migration/) を参照。
- 💾 **カスタムワークフローを永続化** — チームの再利用可能なテンプレートが、同梱されたものの隣に並びます。
### プラグインを使う
@@ -501,16 +501,16 @@ od plugin validate ./my-plugin # check manifest / file
pnpm guard && pnpm --filter @open-design/plugin-runtime typecheck
```
-完全なフィールドセットとランタイム契約 → [`plugins/spec/SPEC.md`](plugins/spec/SPEC.md)。コーディングエージェントでプラグインを開発する → [`plugins/spec/AGENT-DEVELOPMENT.md`](plugins/spec/AGENT-DEVELOPMENT.md)。コピー&ペースト用の最小テンプレート → [`plugins/spec/examples/`](plugins/spec/examples/)。
+完全なフィールドセットとランタイム契約 → [`plugins/spec/SPEC.md`](../../plugins/spec/SPEC.md)。コーディングエージェントでプラグインを開発する → [`plugins/spec/AGENT-DEVELOPMENT.md`](../../plugins/spec/AGENT-DEVELOPMENT.md)。コピー&ペースト用の最小テンプレート → [`plugins/spec/examples/`](../../plugins/spec/examples/)。
### プラグインを貢献する
-1. プラグインフォルダを [`plugins/community/`](plugins/community/)(サードパーティプラグイン)にドロップするか、または——Open Design に同梱して提供するには——[`plugins/_official/`](plugins/_official/) の該当するティアにドロップします。
+1. プラグインフォルダを [`plugins/community/`](../../plugins/community/)(サードパーティプラグイン)にドロップするか、または——Open Design に同梱して提供するには——[`plugins/_official/`](../../plugins/_official/) の該当するティアにドロップします。
2. 検証を通過させます: `od plugin validate`、`pnpm guard`、`pnpm --filter @open-design/plugin-runtime typecheck`。
-3. [`plugins/spec/CONTRIBUTING.md`](plugins/spec/CONTRIBUTING.md) のテンプレートを使って PR を記入します(ID、バージョン、レーン、モード、機能、トリガー例。ビジュアルプラグインにはスクリーンショット/プレビューを添付)。
-4. 外部レジストリ(skills.sh / ClawHub / スタンドアロンの GitHub)に公開する → [`plugins/spec/PUBLISHING-REGISTRIES.md`](plugins/spec/PUBLISHING-REGISTRIES.md)。
+3. [`plugins/spec/CONTRIBUTING.md`](../../plugins/spec/CONTRIBUTING.md) のテンプレートを使って PR を記入します(ID、バージョン、レーン、モード、機能、トリガー例。ビジュアルプラグインにはスクリーンショット/プレビューを添付)。
+4. 外部レジストリ(skills.sh / ClawHub / スタンドアロンの GitHub)に公開する → [`plugins/spec/PUBLISHING-REGISTRIES.md`](../../plugins/spec/PUBLISHING-REGISTRIES.md)。
-プラグインレジストリのエンドポイント: `GET /api/plugins`。ディレクトリ概要 → [`plugins/README.md`](plugins/README.md)([简体中文](plugins/README.zh-CN.md))。
+プラグインレジストリのエンドポイント: `GET /api/plugins`。ディレクトリ概要 → [`plugins/README.md`](../../plugins/README.md)([简体中文](../../plugins/README.zh-CN.md))。
---
@@ -553,7 +553,7 @@ pnpm guard && pnpm --filter @open-design/plugin-runtime typecheck
| デスクトップ | Electron シェル + サンドボックス化されたレンダラー + サイドカー IPC(STATUS · EVAL · SCREENSHOT · CONSOLE · CLICK · SHUTDOWN) |
| ライフサイクル | 単一のエントリーポイント: `pnpm tools-dev`(start / stop / run / status / logs / inspect / check) |
-完全なアーキテクチャ → [`docs/architecture.md`](docs/architecture.md)。スキルプロトコル → [`docs/skills-protocol.md`](docs/skills-protocol.md)。エージェントアダプターの契約 → [`docs/agent-adapters.md`](docs/agent-adapters.md)。
+完全なアーキテクチャ → [`docs/architecture.md`](../../docs/architecture.md)。スキルプロトコル → [`docs/skills-protocol.md`](../../docs/skills-protocol.md)。エージェントアダプターの契約 → [`docs/agent-adapters.md`](../../docs/agent-adapters.md)。
---
@@ -577,7 +577,7 @@ pnpm guard && pnpm --filter @open-design/plugin-runtime typecheck
- [ ] Figma / Pencil → React / Next / Vue の移行プラグイン(アルファ)
- [ ] 既存コードベースのリフレッシュプラグイン(git リポジトリ + `DESIGN.md` に向ける)
-段階的なデリバリー → [`docs/roadmap.md`](docs/roadmap.md)。
+段階的なデリバリー → [`docs/roadmap.md`](../../docs/roadmap.md)。
---
@@ -602,12 +602,12 @@ Open Design が動き続けるのは、貢献者——デザイナー、エン
| 出したいもの… | 方法 | 場所 |
|---|---|---|
-| 新しい**スキル** | `SKILL.md` + `assets/` + `references/` を備えたフォルダをドロップ | [`skills/`](skills/) · 仕様は [`docs/skills-protocol.md`](docs/skills-protocol.md) |
-| 新しい**デザインシステム** | 9 セクションのスキーマを使った `DESIGN.md` をドロップ | [`design-systems//`](design-systems/) |
-| 新しい**プラグイン** | カテゴリーフォルダの下に `open-design.json` + マニフェストをドロップ | [`plugins/community/`](plugins/community/) · 仕様は [`plugins/spec/SPEC.md`](plugins/spec/SPEC.md) · エージェント開発ガイドは [`plugins/spec/AGENT-DEVELOPMENT.md`](plugins/spec/AGENT-DEVELOPMENT.md) |
-| 新しい**コーディングエージェント CLI** をサポート | アダプターエントリー 1 つ + ストリームパーサー | [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts) |
+| 新しい**スキル** | `SKILL.md` + `assets/` + `references/` を備えたフォルダをドロップ | [`skills/`](../../skills/) · 仕様は [`docs/skills-protocol.md`](../../docs/skills-protocol.md) |
+| 新しい**デザインシステム** | 9 セクションのスキーマを使った `DESIGN.md` をドロップ | [`design-systems//`](../../design-systems/) |
+| 新しい**プラグイン** | カテゴリーフォルダの下に `open-design.json` + マニフェストをドロップ | [`plugins/community/`](../../plugins/community/) · 仕様は [`plugins/spec/SPEC.md`](../../plugins/spec/SPEC.md) · エージェント開発ガイドは [`plugins/spec/AGENT-DEVELOPMENT.md`](../../plugins/spec/AGENT-DEVELOPMENT.md) |
+| 新しい**コーディングエージェント CLI** をサポート | アダプターエントリー 1 つ + ストリームパーサー | [`apps/daemon/src/agents.ts`](../../apps/daemon/src/agents.ts) |
| バグ修正や UI の磨き上げ | [`good-first-issue`](https://github.com/nexu-io/open-design/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) ラベルを閲覧 | [Issues →](https://github.com/nexu-io/open-design/issues) |
-| ドキュメントを翻訳 | `README..md` ファイルを更新 | [`TRANSLATIONS.md`](TRANSLATIONS.md) |
+| ドキュメントを翻訳 | `README..md` ファイルを更新 | [`TRANSLATIONS.md`](../../TRANSLATIONS.md) |
### 🤖 エージェントとして貢献する
@@ -631,11 +631,11 @@ pnpm --filter @open-design/ test
gh pr create --fill
```
-完全なエージェントフレンドリーな貢献フロー、コードスタイル、PR の基準 → [English](CONTRIBUTING.md)([Deutsch](CONTRIBUTING.de.md) · [Français](CONTRIBUTING.fr.md) · [简体中文](CONTRIBUTING.zh-CN.md) · [日本語](CONTRIBUTING.ja-JP.md) · [Português](CONTRIBUTING.pt-BR.md))。
+完全なエージェントフレンドリーな貢献フロー、コードスタイル、PR の基準 → [English](../../CONTRIBUTING.md)([Deutsch](CONTRIBUTING.de.md) · [Français](CONTRIBUTING.fr.md) · [简体中文](CONTRIBUTING.zh-CN.md) · [日本語](CONTRIBUTING.ja-JP.md) · [Português](CONTRIBUTING.pt-BR.md))。
### 🏅 Open Design Fellow プログラム
-私たちは世界中で **Open Design Fellow** を募集しています——Fellow はコアチームとともにプロダクトを形づくり、各地域で Open Design を公式に代表し、資金面のサポート($1,000 / MR)、無料の LLM クレジット、直通のレビュートラックに支えられながら、ローカルでコミュニティを育てます。詳細 → [`MAINTAINERS.md`](MAINTAINERS.md) と [Discord](https://discord.gg/qhbcCH8Am4) のアナウンス。
+私たちは世界中で **Open Design Fellow** を募集しています——Fellow はコアチームとともにプロダクトを形づくり、各地域で Open Design を公式に代表し、資金面のサポート($1,000 / MR)、無料の LLM クレジット、直通のレビュートラックに支えられながら、ローカルでコミュニティを育てます。詳細 → [`MAINTAINERS.md`](../../MAINTAINERS.md) と [Discord](https://discord.gg/qhbcCH8Am4) のアナウンス。
---
@@ -662,7 +662,7 @@ gh pr create --fill
-メンテナーのルール、昇格基準、退任プロトコル → [`MAINTAINERS.md`](MAINTAINERS.md)([Deutsch](MAINTAINERS.de.md) · [Français](MAINTAINERS.fr.md) · [简体中文](MAINTAINERS.zh-CN.md) · [日本語](MAINTAINERS.ja-JP.md) · [Português](MAINTAINERS.pt-BR.md) も)。
+メンテナーのルール、昇格基準、退任プロトコル → [`MAINTAINERS.md`](../../MAINTAINERS.md)([Deutsch](MAINTAINERS.de.md) · [Français](MAINTAINERS.fr.md) · [简体中文](MAINTAINERS.zh-CN.md) · [日本語](MAINTAINERS.ja-JP.md) · [Português](MAINTAINERS.pt-BR.md) も)。
## コントリビューター
@@ -680,7 +680,7 @@ gh pr create --fill
-上の SVG は、[`lowlighter/metrics`](https://github.com/lowlighter/metrics) を使って [`.github/workflows/metrics.yml`](.github/workflows/metrics.yml) によって毎日再生成されます。
+上の SVG は、[`lowlighter/metrics`](https://github.com/lowlighter/metrics) を使って [`.github/workflows/metrics.yml`](../../.github/workflows/metrics.yml) によって毎日再生成されます。
---
@@ -708,7 +708,7 @@ gh pr create --fill
|---|---|
| [Claude Design][cd] | このリポジトリがオープンソースの代替ツールとなっている、クローズドソースのプロダクト。 |
| [`alchaincyf/huashu-design`](https://github.com/alchaincyf/huashu-design) | デザイン哲学の羅針盤——ジュニアデザイナーのワークフロー、ブランドアセットのプロトコル、アンチ AI スロップのチェックリスト、5 次元の批評。 |
-| [`op7418/guizang-ppt-skill`](https://github.com/op7418/guizang-ppt-skill) | 雑誌風のウェブ PPT スキルで、[`design-templates/guizang-ppt/`](design-templates/guizang-ppt/) の下にそのままバンドルされています。deck モードのデフォルト。 |
+| [`op7418/guizang-ppt-skill`](https://github.com/op7418/guizang-ppt-skill) | 雑誌風のウェブ PPT スキルで、[`design-templates/guizang-ppt/`](../../design-templates/guizang-ppt/) の下にそのままバンドルされています。deck モードのデフォルト。 |
| [`lewislulu/html-ppt-skill`](https://github.com/lewislulu/html-ppt-skill) | HTML PPT Studio ファミリー——15 のスライドテンプレート、36 のテーマ、31 のページレイアウト、アニメーションランタイム、マグネティックカードのプレゼンターモード。 |
| [`OpenCoworkAI/open-codesign`](https://github.com/OpenCoworkAI/open-codesign) | 最初のオープンソース Claude Design 代替ツール。私たちが借用している UX パターン(ストリーミングアーティファクトのループ、サンドボックス化された iframe、ライブエージェントパネル)。 |
| [`multica-ai/multica`](https://github.com/multica-ai/multica) | デーモン + アダプターのアーキテクチャ——PATH スキャンによるエージェント検出、唯一の特権プロセスとしてのローカルデーモン。 |
@@ -717,10 +717,10 @@ gh pr create --fill
| [`heygen-com/hyperframes`](https://github.com/heygen-com/hyperframes) | HTML→MP4 のモーショングラフィックスフレームワークで、Open Design に第一級の `hyperframes-html` として統合されています。 |
| [Claude Code skills][skill] | 私たちがそのまま採用している `SKILL.md` 規約。 |
-詳細な来歴 → [`docs/references.md`](docs/references.md)。
+詳細な来歴 → [`docs/references.md`](../../docs/references.md)。
[skill]: https://docs.anthropic.com/en/docs/claude-code/skills
## ライセンス
-Apache-2.0。同梱の `design-templates/guizang-ppt/` は元の [LICENSE](design-templates/guizang-ppt/LICENSE)(MIT、[@op7418](https://github.com/op7418))を保持しています。同梱の `design-templates/html-ppt/` は元の [LICENSE](design-templates/html-ppt/LICENSE)(MIT、[@lewislulu](https://github.com/lewislulu))を保持しています。
+Apache-2.0。同梱の `design-templates/guizang-ppt/` は元の [LICENSE](../../design-templates/guizang-ppt/LICENSE)(MIT、[@op7418](https://github.com/op7418))を保持しています。同梱の `design-templates/html-ppt/` は元の [LICENSE](../../design-templates/html-ppt/LICENSE)(MIT、[@lewislulu](https://github.com/lewislulu))を保持しています。
diff --git a/README.ko.md b/docs/i18n/README.ko.md
similarity index 76%
rename from README.ko.md
rename to docs/i18n/README.ko.md
index 9d923ea6b7..ae7d937448 100644
--- a/README.ko.md
+++ b/docs/i18n/README.ko.md
@@ -2,7 +2,7 @@
> 🔥 **Open Design 0.9.0 출시: 설정 없이 바로 창작하세요.** [공식 Model Router](https://open-design.ai/amr)가 앱에 그대로 내장되어 있습니다 — 추가 설정도, 설치할 CLI도, 준비할 API 키도 필요 없습니다. 앱을 열고 로그인한 뒤 곧바로 디자인하고 창작하세요. [0.9.0 다운로드](https://github.com/nexu-io/open-design/releases) · [토론 참여하기](https://github.com/nexu-io/open-design/discussions/3524)
>
-> 🏅 **Open Design Fellow 프로그램이 지금 열렸습니다.** 디자인은 열려 있어야 한다고 믿으신다면 — Open Design Fellow가 되어 핵심 팀과 함께 제품을 빚어내고, 더 많은 사람이 디자인의 미래를 정의하는 일에 참여하도록 도와주세요. 자세히 → [`MAINTAINERS.md`](MAINTAINERS.md) 및 [Discord](https://discord.gg/qhbcCH8Am4).
+> 🏅 **Open Design Fellow 프로그램이 지금 열렸습니다.** 디자인은 열려 있어야 한다고 믿으신다면 — Open Design Fellow가 되어 핵심 팀과 함께 제품을 빚어내고, 더 많은 사람이 디자인의 미래를 정의하는 일에 참여하도록 도와주세요. 자세히 → [`MAINTAINERS.md`](../../MAINTAINERS.md) 및 [Discord](https://discord.gg/qhbcCH8Am4).
@@ -17,12 +17,12 @@
-English · Español · Português · Deutsch · Français · 简体中文 · 繁體中文 · 한국어 · 日本語 · العربية · Русский · Українська · Türkçe
+English · Español · Português · Deutsch · Français · 简体中文 · 繁體中文 · 한국어 · 日本語 · العربية · Русский · Українська · Türkçe
---
@@ -135,7 +135,7 @@ Open Design가 무엇이고 무엇을 하는지 빠르게 살펴봅니다. **Hom
**CLI를 설치하지 않았다고요?** `POST /api/proxy/{anthropic,openai,azure,google,ollama,senseaudio}/stream`의 BYOK 프록시가 동일한 루프(프로세스 스폰 없이)를 제공합니다 — `baseUrl` + `apiKey` + `model`을 붙여넣기만 하면 되며, OpenAI, Anthropic, Azure OpenAI, Google Gemini, Ollama, LM Studio, vLLM 또는 OpenAI 호환 엔드포인트라면 무엇이든 지원합니다. 대상별 SSRF 보호가 데몬 경계에서 내부 IP / 링크 로컬 / CGNAT를 차단합니다.
-어댑터 계약과 스트림 파서는 [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts)에 있습니다. 새 CLI를 추가하는 일은 항목 하나면 됩니다 — [`docs/agent-adapters.md`](docs/agent-adapters.md)를 참고하세요.
+어댑터 계약과 스트림 파서는 [`apps/daemon/src/agents.ts`](../../apps/daemon/src/agents.ts)에 있습니다. 새 CLI를 추가하는 일은 항목 하나면 됩니다 — [`docs/agent-adapters.md`](../../docs/agent-adapters.md)를 참고하세요.
---
@@ -150,21 +150,21 @@ Open Design가 무엇이고 무엇을 하는지 빠르게 살펴봅니다. **Hom
-
+
Entry view — 스킬을 고르고, 디자인 시스템을 고르고, 브리프를 입력합니다. 프로토타입, 대시보드, 덱, 모바일 앱, 매거진 페이지를 위한 하나의 표면입니다.
-
+
모바일 프로토타입 — 픽셀 단위로 정확한 iPhone 15 Pro 크롬과 다중 화면 흐름. 에이전트는 폰 프레임을 다시 그리는 법이 없으며, 공유 디바이스 프레임은 assets/frames/에 있습니다.
-
+
웹 프로토타입 — 스크롤바, KPI, 차트가 있는 에디토리얼 대시보드. design-templates/dating-web/에서 곧바로 렌더링됩니다.
-
+
모바일 앱 프로토타입 — XP 리본과 퀘스트 상세가 있는 3화면 게임화 흐름. Cursor / Codex / Claude Code로 곧바로 넘겨 React/Next/Vue로 전환하세요.
@@ -177,21 +177,21 @@ Open Design가 무엇이고 무엇을 하는지 빠르게 살펴봅니다. **Hom
-
+
라이브 대시보드 — tweaks 패널이 조정할 만한 가치가 있는 파라미터를 드러내는 편집 가능한 KPI 월. 에이전트가 매니페스트를 내보내면 iframe이 새로고침 없이 다시 렌더링됩니다.
-
+
디시전 룸 — 제품 / 리서치 / 운영 회의를 위한 다중 소스 브리핑 아티팩트.
-
+
GitHub 스타일 대시보드 — 라이브 아티팩트로 표현된 저장소 지표.
-
+
Flow 라이브 대시보드 템플릿 — 활성 DESIGN.md를 통해 브랜딩된 도메인 특화 KPI 템플릿.
@@ -202,11 +202,11 @@ Open Design가 무엇이고 무엇을 하는지 빠르게 살펴봅니다. **Hom
-
+
Deck 모드 (guizang-ppt) — 매거진 레이아웃, WebGL 히어로, P0/P1/P2 체크리스트. op7418/guizang-ppt-skill에서 원본 라이선스를 그대로 보존한 채 똑같이 번들로 제공됩니다.
-
+
Swiss International 스타일 덱 — 그리드에 고정되고 모노크롬 강조색을 쓴 디자인. design-templates/html-ppt-*/ 아래의 15개 덱 템플릿과 36개 테마 중 하나입니다.
@@ -226,7 +226,7 @@ Open Design가 무엇이고 무엇을 하는지 빠르게 살펴봅니다. **Hom
-**바로 복제할 수 있는 93개의 프롬프트**가 [`prompt-templates/`](prompt-templates/)에 있습니다 — 미리보기 썸네일, 전체 프롬프트 본문, 대상 모델, 화면 비율, 출처 표기 포함. 한 번의 클릭으로 브리프가 컴포저에 들어갑니다.
+**바로 복제할 수 있는 93개의 프롬프트**가 [`prompt-templates/`](../../prompt-templates/)에 있습니다 — 미리보기 썸네일, 전체 프롬프트 본문, 대상 모델, 화면 비율, 출처 표기 포함. 한 번의 클릭으로 브리프가 컴포저에 들어갑니다.
### 5 · 비디오 & HyperFrames — 에이전트 네이티브 모션 그래픽
@@ -234,20 +234,20 @@ Open Design가 무엇이고 무엇을 하는지 빠르게 살펴봅니다. **Hom
/open-design.json`(또는 플랫폼에 해당하는 경로)과 복사해 붙여넣을 수 있는 MCP 스니펫을 배치합니다. Cursor는 원클릭 딥링크를, Claude Code는 `claude mcp add-json` 한 줄을, 그 외 모든 에이전트는 각자의 설정이 기대하는 스키마의 JSON을 받습니다. 전체 에이전트별 흐름 → 데스크톱 앱의 **Settings → MCP server**, 또는 [`docs/agent-adapters.md`](docs/agent-adapters.md).
+**처음부터 시작하는 에이전트라면,** 설치 프로그램이 `~/.config//open-design.json`(또는 플랫폼에 해당하는 경로)과 복사해 붙여넣을 수 있는 MCP 스니펫을 배치합니다. Cursor는 원클릭 딥링크를, Claude Code는 `claude mcp add-json` 한 줄을, 그 외 모든 에이전트는 각자의 설정이 기대하는 스키마의 JSON을 받습니다. 전체 에이전트별 흐름 → 데스크톱 앱의 **Settings → MCP server**, 또는 [`docs/agent-adapters.md`](../../docs/agent-adapters.md).
**보안 모델.** 기본은 읽기 전용이며, 데몬은 `127.0.0.1`에 바인딩되고, SSRF는 프록시 경계에서 차단됩니다. LAN 노출에는 명시적인 `OD_BIND_HOST`와 `OD_ALLOWED_ORIGINS`가 필요합니다. 커넥터 자격 증명과 라이브 아티팩트 미리보기 경로는 어떤 경우에도 루프백 전용으로 유지됩니다.
@@ -372,34 +372,34 @@ od skill list --scenario marketing
## 스킬
-**100개 이상의 스킬이 기본으로 제공됩니다** — 각각은 Claude Code [`SKILL.md`][skill] 관례를 따르는 [`skills/`](skills/) 아래의 폴더이며, `od:` 프론트매터(`mode`, `platform`, `scenario`, `preview.type`, `design_system.requires`, `default_for`, `fidelity`, `example_prompt`)로 확장되어 있습니다. 폴더 하나를 넣고 데몬을 재시작하면 피커에 나타납니다.
+**100개 이상의 스킬이 기본으로 제공됩니다** — 각각은 Claude Code [`SKILL.md`][skill] 관례를 따르는 [`skills/`](../../skills/) 아래의 폴더이며, `od:` 프론트매터(`mode`, `platform`, `scenario`, `preview.type`, `design_system.requires`, `default_for`, `fidelity`, `example_prompt`)로 확장되어 있습니다. 폴더 하나를 넣고 데몬을 재시작하면 피커에 나타납니다.
두 가지 **모드**가 카탈로그를 떠받칩니다: `prototype`(웹/모바일/데스크톱 단일 페이지 아티팩트)와 `deck`(가로 스와이프 프레젠테이션). 그 밖에도 `image`, `video`, `audio`, `template`, `design-system`, `utility` 모드가 있습니다. **`scenario`** 필드는 대상에 따라 그것들을 묶습니다: `design` · `marketing` · `operation` · `engineering` · `product` · `finance` · `hr` · `sale` · `personal`.
| 스킬 | 모드 | 시나리오 | 생성하는 것 |
|---|---|---|---|
-| [`web-prototype`](design-templates/web-prototype/) | prototype | design | 기본 랜딩 페이지 / 히어로 |
-| [`saas-landing`](design-templates/saas-landing/) | prototype | marketing | 히어로 / 기능 / 가격 / CTA |
-| [`dashboard`](design-templates/dashboard/) | prototype | operation | 관리자 / 분석(사이드바 포함) |
-| [`mobile-app`](design-templates/mobile-app/) | prototype | design | iPhone 15 Pro / Pixel 프레임 앱 |
-| [`mobile-onboarding`](design-templates/mobile-onboarding/) | prototype | design | 스플래시 · 가치 제안 · 로그인 흐름 |
-| [`social-carousel`](design-templates/social-carousel/) | prototype | marketing | 3카드 1080×1080 캐러셀 |
-| [`email-marketing`](design-templates/email-marketing/) | prototype | marketing | 테이블 폴백 안전 브랜드 이메일 |
-| [`magazine-poster`](design-templates/magazine-poster/) | prototype | marketing | 단일 페이지 매거진 레이아웃 |
-| [`motion-frames`](design-templates/motion-frames/) | prototype | marketing | 반복되는 CSS 모션 히어로 |
-| [`sprite-animation`](design-templates/sprite-animation/) | prototype | marketing | 8비트 픽셀 애니메이션 설명 |
-| [`pm-spec`](design-templates/pm-spec/) | prototype | product | PM 스펙 문서(TOC + 결정 로그 포함) |
-| [`team-okrs`](design-templates/team-okrs/) | prototype | product | OKR 스코어카드 |
-| [`eng-runbook`](design-templates/eng-runbook/) | prototype | engineering | 인시던트 런북 |
-| [`finance-report`](design-templates/finance-report/) | prototype | finance | 경영진 재무 요약 |
-| [`hr-onboarding`](design-templates/hr-onboarding/) | prototype | hr | 직무 온보딩 계획 |
-| [`guizang-ppt`](design-templates/guizang-ppt/) | deck | marketing | 매거진 스타일 웹 PPT(덱 기본값) |
-| [`html-ppt-*`](design-templates/) | deck | marketing | 15개 덱 템플릿 × 36개 테마(마스터 템플릿은 [`design-templates/html-ppt/`](design-templates/html-ppt/)에) |
-| [`hyperframes`](design-templates/hyperframes/) | video | marketing | HTML → MP4 모션 그래픽(HeyGen OSS 프레임워크) |
-| [`critique`](design-templates/critique/) | utility | design | 5차원 자가 비평 점수표 |
-| [`tweaks`](design-templates/tweaks/) | utility | design | AI가 내보낸 tweaks 패널 매니페스트 |
+| [`web-prototype`](../../design-templates/web-prototype/) | prototype | design | 기본 랜딩 페이지 / 히어로 |
+| [`saas-landing`](../../design-templates/saas-landing/) | prototype | marketing | 히어로 / 기능 / 가격 / CTA |
+| [`dashboard`](../../design-templates/dashboard/) | prototype | operation | 관리자 / 분석(사이드바 포함) |
+| [`mobile-app`](../../design-templates/mobile-app/) | prototype | design | iPhone 15 Pro / Pixel 프레임 앱 |
+| [`mobile-onboarding`](../../design-templates/mobile-onboarding/) | prototype | design | 스플래시 · 가치 제안 · 로그인 흐름 |
+| [`social-carousel`](../../design-templates/social-carousel/) | prototype | marketing | 3카드 1080×1080 캐러셀 |
+| [`email-marketing`](../../design-templates/email-marketing/) | prototype | marketing | 테이블 폴백 안전 브랜드 이메일 |
+| [`magazine-poster`](../../design-templates/magazine-poster/) | prototype | marketing | 단일 페이지 매거진 레이아웃 |
+| [`motion-frames`](../../design-templates/motion-frames/) | prototype | marketing | 반복되는 CSS 모션 히어로 |
+| [`sprite-animation`](../../design-templates/sprite-animation/) | prototype | marketing | 8비트 픽셀 애니메이션 설명 |
+| [`pm-spec`](../../design-templates/pm-spec/) | prototype | product | PM 스펙 문서(TOC + 결정 로그 포함) |
+| [`team-okrs`](../../design-templates/team-okrs/) | prototype | product | OKR 스코어카드 |
+| [`eng-runbook`](../../design-templates/eng-runbook/) | prototype | engineering | 인시던트 런북 |
+| [`finance-report`](../../design-templates/finance-report/) | prototype | finance | 경영진 재무 요약 |
+| [`hr-onboarding`](../../design-templates/hr-onboarding/) | prototype | hr | 직무 온보딩 계획 |
+| [`guizang-ppt`](../../design-templates/guizang-ppt/) | deck | marketing | 매거진 스타일 웹 PPT(덱 기본값) |
+| [`html-ppt-*`](../../design-templates/) | deck | marketing | 15개 덱 템플릿 × 36개 테마(마스터 템플릿은 [`design-templates/html-ppt/`](../../design-templates/html-ppt/)에) |
+| [`hyperframes`](../../design-templates/hyperframes/) | video | marketing | HTML → MP4 모션 그래픽(HeyGen OSS 프레임워크) |
+| [`critique`](../../design-templates/critique/) | utility | design | 5차원 자가 비평 점수표 |
+| [`tweaks`](../../design-templates/tweaks/) | utility | design | AI가 내보낸 tweaks 패널 매니페스트 |
-전체 스킬 프로토콜 → [`docs/skills-protocol.md`](docs/skills-protocol.md). 스킬 레지스트리 엔드포인트: `GET /api/skills`.
+전체 스킬 프로토콜 → [`docs/skills-protocol.md`](../../docs/skills-protocol.md). 스킬 레지스트리 엔드포인트: `GET /api/skills`.
---
@@ -430,7 +430,7 @@ od skill list --scenario marketing
-라이브러리를 다시 가져오려면 [`scripts/sync-design-systems.ts`](scripts/sync-design-systems.ts)를 사용하세요. 자신의 브랜드를 추가하려면 → `design-systems//`에 `DESIGN.md`를 넣으세요. 전체 가이드 → [`design-systems/README.md`](design-systems/README.md).
+라이브러리를 다시 가져오려면 [`scripts/sync-design-systems.ts`](../../scripts/sync-design-systems.ts)를 사용하세요. 자신의 브랜드를 추가하려면 → `design-systems//`에 `DESIGN.md`를 넣으세요. 전체 가이드 → [`design-systems/README.md`](../../design-systems/README.md).
[acd2]: https://github.com/VoltAgent/awesome-design-md
@@ -438,24 +438,24 @@ od skill list --scenario marketing
## 플러그인
-**261개의 공식 플러그인**이 [`plugins/_official/`](plugins/_official/)에 있습니다. 각 플러그인은 **이식 가능한 에이전트 스킬 폴더**입니다 — `SKILL.md`(Agent Skills를 지원하는 어떤 에이전트든 읽을 수 있음)와, Open Design에 마켓플레이스 메타데이터, 입력, 미리보기, 파이프라인, 기능 선언을 제공하는 선택적 `open-design.json` 매니페스트로 구성됩니다. 카테고리로 바로 이동하세요:
+**261개의 공식 플러그인**이 [`plugins/_official/`](../../plugins/_official/)에 있습니다. 각 플러그인은 **이식 가능한 에이전트 스킬 폴더**입니다 — `SKILL.md`(Agent Skills를 지원하는 어떤 에이전트든 읽을 수 있음)와, Open Design에 마켓플레이스 메타데이터, 입력, 미리보기, 파이프라인, 기능 선언을 제공하는 선택적 `open-design.json` 매니페스트로 구성됩니다. 카테고리로 바로 이동하세요:
| 카테고리 | 개수 | 내용 |
|---|---|---|
-| [`scenarios/`](plugins/_official/scenarios/) | 11 | 완전한 디자인 시나리오 — [`od-default`](plugins/_official/scenarios/od-default/), [`od-design-refine`](plugins/_official/scenarios/od-design-refine/), [`od-figma-migration`](plugins/_official/scenarios/od-figma-migration/), [`od-code-migration`](plugins/_official/scenarios/od-code-migration/), [`od-react-export`](plugins/_official/scenarios/od-react-export/), [`od-nextjs-export`](plugins/_official/scenarios/od-nextjs-export/), [`od-vue-export`](plugins/_official/scenarios/od-vue-export/), [`od-media-generation`](plugins/_official/scenarios/od-media-generation/), [`od-new-generation`](plugins/_official/scenarios/od-new-generation/), [`od-tune-collab`](plugins/_official/scenarios/od-tune-collab/), [`od-plugin-authoring`](plugins/_official/scenarios/od-plugin-authoring/) |
-| [`image-templates/`](plugins/_official/image-templates/) | 45 | 원샷 이미지 프롬프트 — 에디토리얼, 시네마틱, 제품, 인물 |
-| [`video-templates/`](plugins/_official/video-templates/) | 50 | HyperFrames / Seedance / Veo 모션 템플릿 |
-| [`design-systems/`](plugins/_official/design-systems/) | 142 | 플러그인으로 감싼 브랜드 `DESIGN.md` |
-| [`atoms/`](plugins/_official/atoms/) | 13 | 재사용 가능한 UI 조각(버튼, 히어로, KPI 카드) |
-| [`examples/`](plugins/_official/examples/) | 140 | 리믹스 가능한 참조 출력물 |
+| [`scenarios/`](../../plugins/_official/scenarios/) | 11 | 완전한 디자인 시나리오 — [`od-default`](../../plugins/_official/scenarios/od-default/), [`od-design-refine`](../../plugins/_official/scenarios/od-design-refine/), [`od-figma-migration`](../../plugins/_official/scenarios/od-figma-migration/), [`od-code-migration`](../../plugins/_official/scenarios/od-code-migration/), [`od-react-export`](../../plugins/_official/scenarios/od-react-export/), [`od-nextjs-export`](../../plugins/_official/scenarios/od-nextjs-export/), [`od-vue-export`](../../plugins/_official/scenarios/od-vue-export/), [`od-media-generation`](../../plugins/_official/scenarios/od-media-generation/), [`od-new-generation`](../../plugins/_official/scenarios/od-new-generation/), [`od-tune-collab`](../../plugins/_official/scenarios/od-tune-collab/), [`od-plugin-authoring`](../../plugins/_official/scenarios/od-plugin-authoring/) |
+| [`image-templates/`](../../plugins/_official/image-templates/) | 45 | 원샷 이미지 프롬프트 — 에디토리얼, 시네마틱, 제품, 인물 |
+| [`video-templates/`](../../plugins/_official/video-templates/) | 50 | HyperFrames / Seedance / Veo 모션 템플릿 |
+| [`design-systems/`](../../plugins/_official/design-systems/) | 142 | 플러그인으로 감싼 브랜드 `DESIGN.md` |
+| [`atoms/`](../../plugins/_official/atoms/) | 13 | 재사용 가능한 UI 조각(버튼, 히어로, KPI 카드) |
+| [`examples/`](../../plugins/_official/examples/) | 140 | 리믹스 가능한 참조 출력물 |
-또한 커뮤니티 플러그인을 위한 [`plugins/community/`](plugins/community/)와 게시 흐름을 위한 [`plugins/registry/`](plugins/registry/)가 있습니다.
+또한 커뮤니티 플러그인을 위한 [`plugins/community/`](../../plugins/community/)와 게시 흐름을 위한 [`plugins/registry/`](../../plugins/registry/)가 있습니다.
### 플러그인이 할 수 있는 일
-- 🤖 **어떤 코딩 에이전트에서든 실행** — [Claude Code](docs/agent-adapters.md), Codex, Cursor, Copilot, [OpenClaw](https://github.com/openclaw/openclaw), [Antigravity](https://antigravity.google), Hermes, Kimi… 에이전트가 이미 알고 있는 동일한 스킬 프로토콜을 통해.
-- 🔁 **Figma / Pencil 워크플로 마이그레이션** → React, Next.js, 또는 Vue 소스. [`od-figma-migration`](plugins/_official/scenarios/od-figma-migration/)을 참고하세요.
-- 🛠️ **기존 코드베이스를 브랜드 사양에 맞게 새롭게** — 플러그인을 `git` 저장소 + `DESIGN.md`에 겨누면 PR을 받습니다. [`od-code-migration`](plugins/_official/scenarios/od-code-migration/)을 참고하세요.
+- 🤖 **어떤 코딩 에이전트에서든 실행** — [Claude Code](../../docs/agent-adapters.md), Codex, Cursor, Copilot, [OpenClaw](https://github.com/openclaw/openclaw), [Antigravity](https://antigravity.google), Hermes, Kimi… 에이전트가 이미 알고 있는 동일한 스킬 프로토콜을 통해.
+- 🔁 **Figma / Pencil 워크플로 마이그레이션** → React, Next.js, 또는 Vue 소스. [`od-figma-migration`](../../plugins/_official/scenarios/od-figma-migration/)을 참고하세요.
+- 🛠️ **기존 코드베이스를 브랜드 사양에 맞게 새롭게** — 플러그인을 `git` 저장소 + `DESIGN.md`에 겨누면 PR을 받습니다. [`od-code-migration`](../../plugins/_official/scenarios/od-code-migration/)을 참고하세요.
- 💾 **커스텀 워크플로 영구 저장** — 팀의 재사용 가능한 템플릿이 기본 제공 템플릿 옆에 놓입니다.
### 플러그인 사용하기
@@ -501,16 +501,16 @@ od plugin validate ./my-plugin # check manifest / file
pnpm guard && pnpm --filter @open-design/plugin-runtime typecheck
```
-전체 필드 집합과 런타임 계약 → [`plugins/spec/SPEC.md`](plugins/spec/SPEC.md); 코딩 에이전트로 플러그인 개발하기 → [`plugins/spec/AGENT-DEVELOPMENT.md`](plugins/spec/AGENT-DEVELOPMENT.md); 복사해 붙여넣을 최소 템플릿 → [`plugins/spec/examples/`](plugins/spec/examples/).
+전체 필드 집합과 런타임 계약 → [`plugins/spec/SPEC.md`](../../plugins/spec/SPEC.md); 코딩 에이전트로 플러그인 개발하기 → [`plugins/spec/AGENT-DEVELOPMENT.md`](../../plugins/spec/AGENT-DEVELOPMENT.md); 복사해 붙여넣을 최소 템플릿 → [`plugins/spec/examples/`](../../plugins/spec/examples/).
### 플러그인 기여하기
-1. 플러그인 폴더를 [`plugins/community/`](plugins/community/)(서드파티 플러그인)에 넣거나 — Open Design와 함께 번들로 제공하려면 — [`plugins/_official/`](plugins/_official/)의 알맞은 티어에 넣으세요.
+1. 플러그인 폴더를 [`plugins/community/`](../../plugins/community/)(서드파티 플러그인)에 넣거나 — Open Design와 함께 번들로 제공하려면 — [`plugins/_official/`](../../plugins/_official/)의 알맞은 티어에 넣으세요.
2. 검증 통과: `od plugin validate`, `pnpm guard`, `pnpm --filter @open-design/plugin-runtime typecheck`.
-3. [`plugins/spec/CONTRIBUTING.md`](plugins/spec/CONTRIBUTING.md)의 템플릿을 사용해 PR을 작성하세요(ID, 버전, 레인, 모드, 기능, 트리거 예시; 비주얼 플러그인에는 스크린샷 / 미리보기 첨부).
-4. 외부 레지스트리(skills.sh / ClawHub / 독립 GitHub)에 게시하려면 → [`plugins/spec/PUBLISHING-REGISTRIES.md`](plugins/spec/PUBLISHING-REGISTRIES.md).
+3. [`plugins/spec/CONTRIBUTING.md`](../../plugins/spec/CONTRIBUTING.md)의 템플릿을 사용해 PR을 작성하세요(ID, 버전, 레인, 모드, 기능, 트리거 예시; 비주얼 플러그인에는 스크린샷 / 미리보기 첨부).
+4. 외부 레지스트리(skills.sh / ClawHub / 독립 GitHub)에 게시하려면 → [`plugins/spec/PUBLISHING-REGISTRIES.md`](../../plugins/spec/PUBLISHING-REGISTRIES.md).
-플러그인 레지스트리 엔드포인트: `GET /api/plugins`. 디렉터리 개요 → [`plugins/README.md`](plugins/README.md) ([简体中文](plugins/README.zh-CN.md)).
+플러그인 레지스트리 엔드포인트: `GET /api/plugins`. 디렉터리 개요 → [`plugins/README.md`](../../plugins/README.md) ([简体中文](../../plugins/README.zh-CN.md)).
---
@@ -553,7 +553,7 @@ pnpm guard && pnpm --filter @open-design/plugin-runtime typecheck
| 데스크톱 | Electron 셸 + 샌드박스 렌더러 + 사이드카 IPC(STATUS · EVAL · SCREENSHOT · CONSOLE · CLICK · SHUTDOWN) |
| 라이프사이클 | 단일 진입점: `pnpm tools-dev` (start / stop / run / status / logs / inspect / check) |
-전체 아키텍처 → [`docs/architecture.md`](docs/architecture.md). 스킬 프로토콜 → [`docs/skills-protocol.md`](docs/skills-protocol.md). 에이전트 어댑터 계약 → [`docs/agent-adapters.md`](docs/agent-adapters.md).
+전체 아키텍처 → [`docs/architecture.md`](../../docs/architecture.md). 스킬 프로토콜 → [`docs/skills-protocol.md`](../../docs/skills-protocol.md). 에이전트 어댑터 계약 → [`docs/agent-adapters.md`](../../docs/agent-adapters.md).
---
@@ -577,7 +577,7 @@ pnpm guard && pnpm --filter @open-design/plugin-runtime typecheck
- [ ] Figma / Pencil → React / Next / Vue 마이그레이션 플러그인(알파)
- [ ] 기존 코드베이스 새롭게 하기 플러그인(git 저장소 + `DESIGN.md`에 겨눔)
-단계별 제공 → [`docs/roadmap.md`](docs/roadmap.md).
+단계별 제공 → [`docs/roadmap.md`](../../docs/roadmap.md).
---
@@ -602,12 +602,12 @@ Open Design가 계속 나아가는 것은 기여자들 — 디자이너, 엔지
| 만들고 싶은 것… | 방법 | 위치 |
|---|---|---|
-| 새 **스킬** | `SKILL.md` + `assets/` + `references/`가 있는 폴더를 넣기 | [`skills/`](skills/) · 사양은 [`docs/skills-protocol.md`](docs/skills-protocol.md)에 |
-| 새 **디자인 시스템** | 9개 섹션 스키마를 쓴 `DESIGN.md`를 넣기 | [`design-systems//`](design-systems/) |
-| 새 **플러그인** | 카테고리 폴더 아래에 `open-design.json` + 매니페스트를 넣기 | [`plugins/community/`](plugins/community/) · 사양은 [`plugins/spec/SPEC.md`](plugins/spec/SPEC.md)에 · 에이전트 개발 가이드는 [`plugins/spec/AGENT-DEVELOPMENT.md`](plugins/spec/AGENT-DEVELOPMENT.md)에 |
-| 새 **코딩 에이전트 CLI** 지원 | 어댑터 항목 하나 + 스트림 파서 | [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts) |
+| 새 **스킬** | `SKILL.md` + `assets/` + `references/`가 있는 폴더를 넣기 | [`skills/`](../../skills/) · 사양은 [`docs/skills-protocol.md`](../../docs/skills-protocol.md)에 |
+| 새 **디자인 시스템** | 9개 섹션 스키마를 쓴 `DESIGN.md`를 넣기 | [`design-systems//`](../../design-systems/) |
+| 새 **플러그인** | 카테고리 폴더 아래에 `open-design.json` + 매니페스트를 넣기 | [`plugins/community/`](../../plugins/community/) · 사양은 [`plugins/spec/SPEC.md`](../../plugins/spec/SPEC.md)에 · 에이전트 개발 가이드는 [`plugins/spec/AGENT-DEVELOPMENT.md`](../../plugins/spec/AGENT-DEVELOPMENT.md)에 |
+| 새 **코딩 에이전트 CLI** 지원 | 어댑터 항목 하나 + 스트림 파서 | [`apps/daemon/src/agents.ts`](../../apps/daemon/src/agents.ts) |
| 버그 수정 또는 UI 다듬기 | [`good-first-issue`](https://github.com/nexu-io/open-design/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) 라벨 둘러보기 | [Issues →](https://github.com/nexu-io/open-design/issues) |
-| 문서 번역 | `README..md` 파일 업데이트 | [`TRANSLATIONS.md`](TRANSLATIONS.md) |
+| 문서 번역 | `README..md` 파일 업데이트 | [`TRANSLATIONS.md`](../../TRANSLATIONS.md) |
### 🤖 에이전트로서 기여하기
@@ -635,7 +635,7 @@ gh pr create --fill
### 🏅 Open Design Fellow 프로그램
-우리는 전 세계에서 **Open Design Fellow**를 모집하고 있습니다 — Fellow는 핵심 팀과 함께 제품을 빚어내고, 자신의 지역에서 Open Design를 공식적으로 대표하며, 지역 커뮤니티를 키웁니다. 여기에는 자금 지원($1,000 / MR), 무료 LLM 크레딧, 직통 리뷰 트랙이 뒷받침됩니다. 자세히 → [`MAINTAINERS.md`](MAINTAINERS.md) 및 [Discord](https://discord.gg/qhbcCH8Am4)의 공지.
+우리는 전 세계에서 **Open Design Fellow**를 모집하고 있습니다 — Fellow는 핵심 팀과 함께 제품을 빚어내고, 자신의 지역에서 Open Design를 공식적으로 대표하며, 지역 커뮤니티를 키웁니다. 여기에는 자금 지원($1,000 / MR), 무료 LLM 크레딧, 직통 리뷰 트랙이 뒷받침됩니다. 자세히 → [`MAINTAINERS.md`](../../MAINTAINERS.md) 및 [Discord](https://discord.gg/qhbcCH8Am4)의 공지.
---
@@ -662,7 +662,7 @@ gh pr create --fill
-메인테이너 규칙, 승급 기준, 그리고 이탈 프로토콜 → [`MAINTAINERS.md`](MAINTAINERS.md) (또한 [Deutsch](MAINTAINERS.de.md) · [Français](MAINTAINERS.fr.md) · [简体中文](MAINTAINERS.zh-CN.md) · [日本語](MAINTAINERS.ja-JP.md) · [Português](MAINTAINERS.pt-BR.md)).
+메인테이너 규칙, 승급 기준, 그리고 이탈 프로토콜 → [`MAINTAINERS.md`](../../MAINTAINERS.md) (또한 [Deutsch](MAINTAINERS.de.md) · [Français](MAINTAINERS.fr.md) · [简体中文](MAINTAINERS.zh-CN.md) · [日本語](MAINTAINERS.ja-JP.md) · [Português](MAINTAINERS.pt-BR.md)).
## 기여자
@@ -680,7 +680,7 @@ gh pr create --fill
-위의 SVG는 [`lowlighter/metrics`](https://github.com/lowlighter/metrics)를 사용해 [`.github/workflows/metrics.yml`](.github/workflows/metrics.yml)에 의해 매일 다시 생성됩니다.
+위의 SVG는 [`lowlighter/metrics`](https://github.com/lowlighter/metrics)를 사용해 [`.github/workflows/metrics.yml`](../../.github/workflows/metrics.yml)에 의해 매일 다시 생성됩니다.
---
@@ -708,7 +708,7 @@ gh pr create --fill
|---|---|
| [Claude Design][cd] | 이 저장소가 오픈소스 대안으로 삼는 폐쇄 소스 제품. |
| [`alchaincyf/huashu-design`](https://github.com/alchaincyf/huashu-design) | 디자인 철학의 나침반 — 주니어 디자이너 워크플로, 브랜드 에셋 프로토콜, 안티 AI 슬롭 체크리스트, 5차원 비평. |
-| [`op7418/guizang-ppt-skill`](https://github.com/op7418/guizang-ppt-skill) | 매거진 스타일 웹 PPT 스킬로, [`design-templates/guizang-ppt/`](design-templates/guizang-ppt/) 아래에 똑같이 번들로 제공됨. 덱 모드의 기본값. |
+| [`op7418/guizang-ppt-skill`](https://github.com/op7418/guizang-ppt-skill) | 매거진 스타일 웹 PPT 스킬로, [`design-templates/guizang-ppt/`](../../design-templates/guizang-ppt/) 아래에 똑같이 번들로 제공됨. 덱 모드의 기본값. |
| [`lewislulu/html-ppt-skill`](https://github.com/lewislulu/html-ppt-skill) | HTML PPT Studio 제품군 — 15개 덱 템플릿, 36개 테마, 31개 페이지 레이아웃, 애니메이션 런타임, 마그네틱 카드 프레젠터 모드. |
| [`OpenCoworkAI/open-codesign`](https://github.com/OpenCoworkAI/open-codesign) | 최초의 오픈소스 Claude Design 대안; 우리가 빌려온 UX 패턴(스트리밍 아티팩트 루프, 샌드박스 iframe, 라이브 에이전트 패널). |
| [`multica-ai/multica`](https://github.com/multica-ai/multica) | 데몬 + 어댑터 아키텍처 — PATH 스캔 에이전트 감지, 유일한 특권 프로세스로서의 로컬 데몬. |
@@ -717,10 +717,10 @@ gh pr create --fill
| [`heygen-com/hyperframes`](https://github.com/heygen-com/hyperframes) | HTML→MP4 모션 그래픽 프레임워크로, Open Design에 일급 `hyperframes-html`로 통합됨. |
| [Claude Code skills][skill] | 우리가 그대로 채택한 `SKILL.md` 관례. |
-자세한 출처 → [`docs/references.md`](docs/references.md).
+자세한 출처 → [`docs/references.md`](../../docs/references.md).
[skill]: https://docs.anthropic.com/en/docs/claude-code/skills
## 라이선스
-Apache-2.0. 번들로 제공되는 `design-templates/guizang-ppt/`는 원본 [LICENSE](design-templates/guizang-ppt/LICENSE)(MIT, [@op7418](https://github.com/op7418))를 유지합니다. 번들로 제공되는 `design-templates/html-ppt/`는 원본 [LICENSE](design-templates/html-ppt/LICENSE)(MIT, [@lewislulu](https://github.com/lewislulu))를 유지합니다.
+Apache-2.0. 번들로 제공되는 `design-templates/guizang-ppt/`는 원본 [LICENSE](../../design-templates/guizang-ppt/LICENSE)(MIT, [@op7418](https://github.com/op7418))를 유지합니다. 번들로 제공되는 `design-templates/html-ppt/`는 원본 [LICENSE](../../design-templates/html-ppt/LICENSE)(MIT, [@lewislulu](https://github.com/lewislulu))를 유지합니다.
diff --git a/README.pt-BR.md b/docs/i18n/README.pt-BR.md
similarity index 75%
rename from README.pt-BR.md
rename to docs/i18n/README.pt-BR.md
index 04d0e1c58d..90bbf2c980 100644
--- a/README.pt-BR.md
+++ b/docs/i18n/README.pt-BR.md
@@ -2,7 +2,7 @@
> 🔥 **O Open Design 0.9.0 chegou: crie sem precisar configurar nada.** O [Model Router oficial](https://open-design.ai/amr) está embutido direto no app — sem configuração extra, sem CLI para instalar, sem chave de API para preparar. É só abrir o app, entrar e começar a desenhar e criar na hora. [Baixar 0.9.0](https://github.com/nexu-io/open-design/releases) · [Participar da discussão](https://github.com/nexu-io/open-design/discussions/3524)
>
-> 🏅 **O programa Open Design Fellow está aberto.** Se você também acredita que o design deveria ser aberto — torne-se um Open Design Fellow, ajude a moldar o produto ao lado do time central e contribua para que mais pessoas participem da definição do futuro do design. Detalhes → [`MAINTAINERS.md`](MAINTAINERS.md) e [Discord](https://discord.gg/qhbcCH8Am4).
+> 🏅 **O programa Open Design Fellow está aberto.** Se você também acredita que o design deveria ser aberto — torne-se um Open Design Fellow, ajude a moldar o produto ao lado do time central e contribua para que mais pessoas participem da definição do futuro do design. Detalhes → [`MAINTAINERS.md`](../../MAINTAINERS.md) e [Discord](https://discord.gg/qhbcCH8Am4).
@@ -17,12 +17,12 @@
-English · Español · Português · Deutsch · Français · 简体中文 · 繁體中文 · 한국어 · 日本語 · العربية · Русский · Українська · Türkçe
+English · Español · Português · Deutsch · Français · 简体中文 · 繁體中文 · 한국어 · 日本語 · العربية · Русский · Українська · Türkçe
---
@@ -135,7 +135,7 @@ Dentro do Studio de um projeto, o mesmo design system produz múltiplos tipos de
**Nenhuma CLI instalada?** O proxy BYOK em `POST /api/proxy/{anthropic,openai,azure,google,ollama,senseaudio}/stream` te dá o mesmo loop (sem spawn de processo) — cole `baseUrl` + `apiKey` + `model`, com suporte a OpenAI, Anthropic, Azure OpenAI, Google Gemini, Ollama, LM Studio, vLLM ou qualquer endpoint compatível com OpenAI. A proteção SSRF por alvo bloqueia IPs internos / link-local / CGNAT na borda do daemon.
-O contrato do adaptador e os parsers de stream ficam em [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts). Adicionar uma nova CLI é uma única entrada — veja [`docs/agent-adapters.md`](docs/agent-adapters.md).
+O contrato do adaptador e os parsers de stream ficam em [`apps/daemon/src/agents.ts`](../../apps/daemon/src/agents.ts). Adicionar uma nova CLI é uma única entrada — veja [`docs/agent-adapters.md`](../../docs/agent-adapters.md).
---
@@ -150,21 +150,21 @@ A superfície de saída padrão. Artefatos HTML de página única que leem seu `
-
+
Tela de entrada — escolha uma skill, escolha um design system, digite o briefing. Uma única superfície para protótipos, dashboards, decks, apps mobile e páginas de revista.
-
+
Protótipo mobile — chrome do iPhone 15 Pro com precisão de pixel, fluxos multitela. O agente nunca redesenha o frame do celular; frames de dispositivo compartilhados ficam em assets/frames/.
-
+
Protótipo web — um dashboard editorial com barras de rolagem, KPIs e gráficos. Renderizado direto de design-templates/dating-web/.
-
+
Protótipo de app mobile — um fluxo gamificado de três telas com faixas de XP e detalhe de quest. Faça o handoff direto para Cursor / Codex / Claude Code para transformar em React/Next/Vue.
@@ -177,21 +177,21 @@ Dashboards ao vivo, decision rooms, painéis de KPI — artefatos de página ún
-
+
Dashboard ao vivo — um painel de KPI editável cujo painel de tweaks expõe os parâmetros que vale a pena ajustar. O agente emite um manifesto, e o iframe re-renderiza sem recarregar.
-
+
Decision room — um artefato de briefing multifonte para reuniões de produto / pesquisa / operações.
-
+
Dashboard no estilo GitHub — métricas de repositório apresentadas como um artefato ao vivo.
-
+
Template de dashboard ao vivo Flow — um template de KPI específico de domínio, com a marca aplicada pelo DESIGN.md ativo.
@@ -202,11 +202,11 @@ Dashboards ao vivo, decision rooms, painéis de KPI — artefatos de página ún
-
+
Modo deck (guizang-ppt) — layouts de revista, hero em WebGL, checklists P0/P1/P2. Empacotado na íntegra a partir de op7418/guizang-ppt-skill com sua licença original preservada.
-
+
Deck no estilo Swiss International — ancorado em grid, com acentos monocromáticos. Um dos 15 templates de deck e 36 temas em design-templates/html-ppt-*/.
@@ -226,7 +226,7 @@ Todo deck exporta para **HTML** (arquivo único, assets embutidos), **PDF** (imp
-**93 prompts prontos para replicar** ficam em [`prompt-templates/`](prompt-templates/) — miniaturas de prévia, corpo completo do prompt, modelo de destino, proporção de tela e atribuição de origem. Um clique solta um briefing no composer.
+**93 prompts prontos para replicar** ficam em [`prompt-templates/`](../../prompt-templates/) — miniaturas de prévia, corpo completo do prompt, modelo de destino, proporção de tela e atribuição de origem. Um clique solta um briefing no composer.
### 5 · Vídeo & HyperFrames — motion graphics agent-native
@@ -234,20 +234,20 @@ O **[HyperFrames][hyperframes]** é o framework de vídeo open-source e agent-na
/open-design.json` (ou o equivalente da plataforma) além de um snippet MCP de copiar e colar. O Cursor recebe um deeplink de um clique; o Claude Code recebe um one-liner `claude mcp add-json`; todo outro agente recebe JSON no schema que sua configuração espera. Fluxo completo por agente → **Settings → MCP server** no app de desktop, ou [`docs/agent-adapters.md`](docs/agent-adapters.md).
+**Para um agente começando do zero,** o instalador coloca `~/.config//open-design.json` (ou o equivalente da plataforma) além de um snippet MCP de copiar e colar. O Cursor recebe um deeplink de um clique; o Claude Code recebe um one-liner `claude mcp add-json`; todo outro agente recebe JSON no schema que sua configuração espera. Fluxo completo por agente → **Settings → MCP server** no app de desktop, ou [`docs/agent-adapters.md`](../../docs/agent-adapters.md).
**Modelo de segurança.** Somente leitura por padrão, o daemon faz bind em `127.0.0.1` e o SSRF é bloqueado na borda do proxy. A exposição na LAN exige um `OD_BIND_HOST` explícito mais `OD_ALLOWED_ORIGINS`. Credenciais de conector e rotas de preview de artefatos ao vivo permanecem somente em loopback, independentemente disso.
@@ -372,34 +372,34 @@ od skill list --scenario marketing
## Skills
-**Mais de 100 skills vêm na caixa** — cada uma é uma pasta em [`skills/`](skills/) seguindo a convenção [`SKILL.md`][skill] do Claude Code, estendida com um frontmatter `od:` (`mode`, `platform`, `scenario`, `preview.type`, `design_system.requires`, `default_for`, `fidelity`, `example_prompt`). Solte uma pasta, reinicie o daemon e ela aparece no seletor.
+**Mais de 100 skills vêm na caixa** — cada uma é uma pasta em [`skills/`](../../skills/) seguindo a convenção [`SKILL.md`][skill] do Claude Code, estendida com um frontmatter `od:` (`mode`, `platform`, `scenario`, `preview.type`, `design_system.requires`, `default_for`, `fidelity`, `example_prompt`). Solte uma pasta, reinicie o daemon e ela aparece no seletor.
Dois **modes** ancoram o catálogo: `prototype` (artefatos de página única web/mobile/desktop) e `deck` (apresentações com swipe horizontal). Também há os modes `image`, `video`, `audio`, `template`, `design-system` e `utility`. O campo **`scenario`** os agrupa por público: `design` · `marketing` · `operation` · `engineering` · `product` · `finance` · `hr` · `sale` · `personal`.
| Skill | Mode | Scenario | O que produz |
|---|---|---|---|
-| [`web-prototype`](design-templates/web-prototype/) | prototype | design | Landing page / hero padrão |
-| [`saas-landing`](design-templates/saas-landing/) | prototype | marketing | Hero / features / preços / CTA |
-| [`dashboard`](design-templates/dashboard/) | prototype | operation | Admin / analytics (com sidebar) |
-| [`mobile-app`](design-templates/mobile-app/) | prototype | design | App enquadrado em iPhone 15 Pro / Pixel |
-| [`mobile-onboarding`](design-templates/mobile-onboarding/) | prototype | design | Splash · proposta de valor · fluxo de login |
-| [`social-carousel`](design-templates/social-carousel/) | prototype | marketing | Carrossel de 3 cards 1080×1080 |
-| [`email-marketing`](design-templates/email-marketing/) | prototype | marketing | E-mail de marca seguro com fallback de tabela |
-| [`magazine-poster`](design-templates/magazine-poster/) | prototype | marketing | Layout de revista em página única |
-| [`motion-frames`](design-templates/motion-frames/) | prototype | marketing | Hero de motion CSS em loop |
-| [`sprite-animation`](design-templates/sprite-animation/) | prototype | marketing | Explainer animado em pixel art 8-bit |
-| [`pm-spec`](design-templates/pm-spec/) | prototype | product | Doc de spec de PM (com sumário + log de decisões) |
-| [`team-okrs`](design-templates/team-okrs/) | prototype | product | Scorecard de OKR |
-| [`eng-runbook`](design-templates/eng-runbook/) | prototype | engineering | Runbook de incidentes |
-| [`finance-report`](design-templates/finance-report/) | prototype | finance | Resumo financeiro executivo |
-| [`hr-onboarding`](design-templates/hr-onboarding/) | prototype | hr | Plano de onboarding de cargo |
-| [`guizang-ppt`](design-templates/guizang-ppt/) | deck | marketing | PPT web no estilo revista (padrão de deck) |
-| [`html-ppt-*`](design-templates/) | deck | marketing | 15 templates de deck × 36 temas (template mestre em [`design-templates/html-ppt/`](design-templates/html-ppt/)) |
-| [`hyperframes`](design-templates/hyperframes/) | video | marketing | Motion graphics HTML → MP4 (framework OSS da HeyGen) |
-| [`critique`](design-templates/critique/) | utility | design | Scoresheet de autocrítica em cinco dimensões |
-| [`tweaks`](design-templates/tweaks/) | utility | design | Manifesto de painel de tweaks emitido por IA |
+| [`web-prototype`](../../design-templates/web-prototype/) | prototype | design | Landing page / hero padrão |
+| [`saas-landing`](../../design-templates/saas-landing/) | prototype | marketing | Hero / features / preços / CTA |
+| [`dashboard`](../../design-templates/dashboard/) | prototype | operation | Admin / analytics (com sidebar) |
+| [`mobile-app`](../../design-templates/mobile-app/) | prototype | design | App enquadrado em iPhone 15 Pro / Pixel |
+| [`mobile-onboarding`](../../design-templates/mobile-onboarding/) | prototype | design | Splash · proposta de valor · fluxo de login |
+| [`social-carousel`](../../design-templates/social-carousel/) | prototype | marketing | Carrossel de 3 cards 1080×1080 |
+| [`email-marketing`](../../design-templates/email-marketing/) | prototype | marketing | E-mail de marca seguro com fallback de tabela |
+| [`magazine-poster`](../../design-templates/magazine-poster/) | prototype | marketing | Layout de revista em página única |
+| [`motion-frames`](../../design-templates/motion-frames/) | prototype | marketing | Hero de motion CSS em loop |
+| [`sprite-animation`](../../design-templates/sprite-animation/) | prototype | marketing | Explainer animado em pixel art 8-bit |
+| [`pm-spec`](../../design-templates/pm-spec/) | prototype | product | Doc de spec de PM (com sumário + log de decisões) |
+| [`team-okrs`](../../design-templates/team-okrs/) | prototype | product | Scorecard de OKR |
+| [`eng-runbook`](../../design-templates/eng-runbook/) | prototype | engineering | Runbook de incidentes |
+| [`finance-report`](../../design-templates/finance-report/) | prototype | finance | Resumo financeiro executivo |
+| [`hr-onboarding`](../../design-templates/hr-onboarding/) | prototype | hr | Plano de onboarding de cargo |
+| [`guizang-ppt`](../../design-templates/guizang-ppt/) | deck | marketing | PPT web no estilo revista (padrão de deck) |
+| [`html-ppt-*`](../../design-templates/) | deck | marketing | 15 templates de deck × 36 temas (template mestre em [`design-templates/html-ppt/`](../../design-templates/html-ppt/)) |
+| [`hyperframes`](../../design-templates/hyperframes/) | video | marketing | Motion graphics HTML → MP4 (framework OSS da HeyGen) |
+| [`critique`](../../design-templates/critique/) | utility | design | Scoresheet de autocrítica em cinco dimensões |
+| [`tweaks`](../../design-templates/tweaks/) | utility | design | Manifesto de painel de tweaks emitido por IA |
-Protocolo completo de skills → [`docs/skills-protocol.md`](docs/skills-protocol.md). Endpoint do registry de skills: `GET /api/skills`.
+Protocolo completo de skills → [`docs/skills-protocol.md`](../../docs/skills-protocol.md). Endpoint do registry de skills: `GET /api/skills`.
---
@@ -430,7 +430,7 @@ Protocolo completo de skills → [`docs/skills-protocol.md`](docs/skills-protoco
-Reimporte a biblioteca via [`scripts/sync-design-systems.ts`](scripts/sync-design-systems.ts). Adicione sua própria marca → solte um `DESIGN.md` em `design-systems//`. Guia completo → [`design-systems/README.md`](design-systems/README.md).
+Reimporte a biblioteca via [`scripts/sync-design-systems.ts`](../../scripts/sync-design-systems.ts). Adicione sua própria marca → solte um `DESIGN.md` em `design-systems//`. Guia completo → [`design-systems/README.md`](../../design-systems/README.md).
[acd2]: https://github.com/VoltAgent/awesome-design-md
@@ -438,24 +438,24 @@ Reimporte a biblioteca via [`scripts/sync-design-systems.ts`](scripts/sync-desig
## Plugins
-**261 plugins oficiais** ficam em [`plugins/_official/`](plugins/_official/). Cada plugin é uma **pasta portátil de agent-skill** — um `SKILL.md` (legível por qualquer agente que suporte Agent Skills), além de um manifesto opcional `open-design.json` que dá ao Open Design metadados de marketplace, inputs, prévias, pipelines e declarações de capacidades. Vá direto para uma categoria:
+**261 plugins oficiais** ficam em [`plugins/_official/`](../../plugins/_official/). Cada plugin é uma **pasta portátil de agent-skill** — um `SKILL.md` (legível por qualquer agente que suporte Agent Skills), além de um manifesto opcional `open-design.json` que dá ao Open Design metadados de marketplace, inputs, prévias, pipelines e declarações de capacidades. Vá direto para uma categoria:
| Categoria | Quantidade | Conteúdo |
|---|---|---|
-| [`scenarios/`](plugins/_official/scenarios/) | 11 | Cenários de design completos — [`od-default`](plugins/_official/scenarios/od-default/), [`od-design-refine`](plugins/_official/scenarios/od-design-refine/), [`od-figma-migration`](plugins/_official/scenarios/od-figma-migration/), [`od-code-migration`](plugins/_official/scenarios/od-code-migration/), [`od-react-export`](plugins/_official/scenarios/od-react-export/), [`od-nextjs-export`](plugins/_official/scenarios/od-nextjs-export/), [`od-vue-export`](plugins/_official/scenarios/od-vue-export/), [`od-media-generation`](plugins/_official/scenarios/od-media-generation/), [`od-new-generation`](plugins/_official/scenarios/od-new-generation/), [`od-tune-collab`](plugins/_official/scenarios/od-tune-collab/), [`od-plugin-authoring`](plugins/_official/scenarios/od-plugin-authoring/) |
-| [`image-templates/`](plugins/_official/image-templates/) | 45 | Prompts de imagem one-shot — editorial, cinematográfico, produto, retrato |
-| [`video-templates/`](plugins/_official/video-templates/) | 50 | Templates de motion HyperFrames / Seedance / Veo |
-| [`design-systems/`](plugins/_official/design-systems/) | 142 | `DESIGN.md` de marca empacotados como plugins |
-| [`atoms/`](plugins/_official/atoms/) | 13 | Fragmentos de UI reutilizáveis (botões, heroes, cards de KPI) |
-| [`examples/`](plugins/_official/examples/) | 140 | Outputs de referência remixáveis |
+| [`scenarios/`](../../plugins/_official/scenarios/) | 11 | Cenários de design completos — [`od-default`](../../plugins/_official/scenarios/od-default/), [`od-design-refine`](../../plugins/_official/scenarios/od-design-refine/), [`od-figma-migration`](../../plugins/_official/scenarios/od-figma-migration/), [`od-code-migration`](../../plugins/_official/scenarios/od-code-migration/), [`od-react-export`](../../plugins/_official/scenarios/od-react-export/), [`od-nextjs-export`](../../plugins/_official/scenarios/od-nextjs-export/), [`od-vue-export`](../../plugins/_official/scenarios/od-vue-export/), [`od-media-generation`](../../plugins/_official/scenarios/od-media-generation/), [`od-new-generation`](../../plugins/_official/scenarios/od-new-generation/), [`od-tune-collab`](../../plugins/_official/scenarios/od-tune-collab/), [`od-plugin-authoring`](../../plugins/_official/scenarios/od-plugin-authoring/) |
+| [`image-templates/`](../../plugins/_official/image-templates/) | 45 | Prompts de imagem one-shot — editorial, cinematográfico, produto, retrato |
+| [`video-templates/`](../../plugins/_official/video-templates/) | 50 | Templates de motion HyperFrames / Seedance / Veo |
+| [`design-systems/`](../../plugins/_official/design-systems/) | 142 | `DESIGN.md` de marca empacotados como plugins |
+| [`atoms/`](../../plugins/_official/atoms/) | 13 | Fragmentos de UI reutilizáveis (botões, heroes, cards de KPI) |
+| [`examples/`](../../plugins/_official/examples/) | 140 | Outputs de referência remixáveis |
-Também [`plugins/community/`](plugins/community/) para plugins da comunidade e [`plugins/registry/`](plugins/registry/) para o fluxo de publicação.
+Também [`plugins/community/`](../../plugins/community/) para plugins da comunidade e [`plugins/registry/`](../../plugins/registry/) para o fluxo de publicação.
### O que os plugins podem fazer
-- 🤖 **Rodar em qualquer coding agent** — [Claude Code](docs/agent-adapters.md), Codex, Cursor, Copilot, [OpenClaw](https://github.com/openclaw/openclaw), [Antigravity](https://antigravity.google), Hermes, Kimi… pelo mesmo protocolo de skill que o agente já conhece.
-- 🔁 **Migrar fluxos do Figma / Pencil** → código React, Next.js ou Vue. Veja [`od-figma-migration`](plugins/_official/scenarios/od-figma-migration/).
-- 🛠️ **Renovar uma base de código existente para uma especificação de marca** — aponte um plugin para um repositório `git` + `DESIGN.md` e receba um PR. Veja [`od-code-migration`](plugins/_official/scenarios/od-code-migration/).
+- 🤖 **Rodar em qualquer coding agent** — [Claude Code](../../docs/agent-adapters.md), Codex, Cursor, Copilot, [OpenClaw](https://github.com/openclaw/openclaw), [Antigravity](https://antigravity.google), Hermes, Kimi… pelo mesmo protocolo de skill que o agente já conhece.
+- 🔁 **Migrar fluxos do Figma / Pencil** → código React, Next.js ou Vue. Veja [`od-figma-migration`](../../plugins/_official/scenarios/od-figma-migration/).
+- 🛠️ **Renovar uma base de código existente para uma especificação de marca** — aponte um plugin para um repositório `git` + `DESIGN.md` e receba um PR. Veja [`od-code-migration`](../../plugins/_official/scenarios/od-code-migration/).
- 💾 **Persistir fluxos de trabalho personalizados** — os templates reutilizáveis do seu time ficam ao lado dos que já vêm na caixa.
### Usando plugins
@@ -501,16 +501,16 @@ od plugin validate ./my-plugin # check manifest / file
pnpm guard && pnpm --filter @open-design/plugin-runtime typecheck
```
-Conjunto completo de campos e contrato de runtime → [`plugins/spec/SPEC.md`](plugins/spec/SPEC.md); desenvolver um plugin com um coding agent → [`plugins/spec/AGENT-DEVELOPMENT.md`](plugins/spec/AGENT-DEVELOPMENT.md); templates mínimos de copiar e colar → [`plugins/spec/examples/`](plugins/spec/examples/).
+Conjunto completo de campos e contrato de runtime → [`plugins/spec/SPEC.md`](../../plugins/spec/SPEC.md); desenvolver um plugin com um coding agent → [`plugins/spec/AGENT-DEVELOPMENT.md`](../../plugins/spec/AGENT-DEVELOPMENT.md); templates mínimos de copiar e colar → [`plugins/spec/examples/`](../../plugins/spec/examples/).
### Contribuindo com um plugin
-1. Solte a pasta do plugin em [`plugins/community/`](plugins/community/) (plugins de terceiros), ou — para entregá-lo empacotado com o Open Design — no tier correspondente de [`plugins/_official/`](plugins/_official/).
+1. Solte a pasta do plugin em [`plugins/community/`](../../plugins/community/) (plugins de terceiros), ou — para entregá-lo empacotado com o Open Design — no tier correspondente de [`plugins/_official/`](../../plugins/_official/).
2. Passe na validação: `od plugin validate`, `pnpm guard`, `pnpm --filter @open-design/plugin-runtime typecheck`.
-3. Preencha o PR usando o template em [`plugins/spec/CONTRIBUTING.md`](plugins/spec/CONTRIBUTING.md) (ID, versão, lane, mode, capacidades, exemplos de trigger; anexe um screenshot / prévia para plugins visuais).
-4. Para publicar em um registry externo (skills.sh / ClawHub / GitHub standalone) → [`plugins/spec/PUBLISHING-REGISTRIES.md`](plugins/spec/PUBLISHING-REGISTRIES.md).
+3. Preencha o PR usando o template em [`plugins/spec/CONTRIBUTING.md`](../../plugins/spec/CONTRIBUTING.md) (ID, versão, lane, mode, capacidades, exemplos de trigger; anexe um screenshot / prévia para plugins visuais).
+4. Para publicar em um registry externo (skills.sh / ClawHub / GitHub standalone) → [`plugins/spec/PUBLISHING-REGISTRIES.md`](../../plugins/spec/PUBLISHING-REGISTRIES.md).
-Endpoint do registry de plugins: `GET /api/plugins`. Visão geral do diretório → [`plugins/README.md`](plugins/README.md) ([简体中文](plugins/README.zh-CN.md)).
+Endpoint do registry de plugins: `GET /api/plugins`. Visão geral do diretório → [`plugins/README.md`](../../plugins/README.md) ([简体中文](../../plugins/README.zh-CN.md)).
---
@@ -553,7 +553,7 @@ Endpoint do registry de plugins: `GET /api/plugins`. Visão geral do diretório
| Desktop | Electron shell + renderer em sandbox + IPC sidecar (STATUS · EVAL · SCREENSHOT · CONSOLE · CLICK · SHUTDOWN) |
| Ciclo de vida | Um único ponto de entrada: `pnpm tools-dev` (start / stop / run / status / logs / inspect / check) |
-Arquitetura completa → [`docs/architecture.md`](docs/architecture.md). Protocolo de skills → [`docs/skills-protocol.md`](docs/skills-protocol.md). Contrato do adaptador de agentes → [`docs/agent-adapters.md`](docs/agent-adapters.md).
+Arquitetura completa → [`docs/architecture.md`](../../docs/architecture.md). Protocolo de skills → [`docs/skills-protocol.md`](../../docs/skills-protocol.md). Contrato do adaptador de agentes → [`docs/agent-adapters.md`](../../docs/agent-adapters.md).
---
@@ -577,7 +577,7 @@ Arquitetura completa → [`docs/architecture.md`](docs/architecture.md). Protoco
- [ ] Plugins de migração Figma / Pencil → React / Next / Vue (alpha)
- [ ] Plugin de renovar base de código existente (apontar para um repositório git + `DESIGN.md`)
-Entrega faseada → [`docs/roadmap.md`](docs/roadmap.md).
+Entrega faseada → [`docs/roadmap.md`](../../docs/roadmap.md).
---
@@ -602,12 +602,12 @@ O Open Design continua avançando porque os contribuidores — designers, engenh
| Quer entregar… | Como | Onde |
|---|---|---|
-| Uma nova **skill** | Solte uma pasta com `SKILL.md` + `assets/` + `references/` | [`skills/`](skills/) · spec em [`docs/skills-protocol.md`](docs/skills-protocol.md) |
-| Um novo **design system** | Solte um `DESIGN.md` usando o schema de 9 seções | [`design-systems//`](design-systems/) |
-| Um novo **plugin** | Solte `open-design.json` + manifesto numa pasta de categoria | [`plugins/community/`](plugins/community/) · spec em [`plugins/spec/SPEC.md`](plugins/spec/SPEC.md) · guia de dev por agente em [`plugins/spec/AGENT-DEVELOPMENT.md`](plugins/spec/AGENT-DEVELOPMENT.md) |
-| Suportar uma nova **CLI de coding agent** | Uma entrada de adaptador + parser de stream | [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts) |
+| Uma nova **skill** | Solte uma pasta com `SKILL.md` + `assets/` + `references/` | [`skills/`](../../skills/) · spec em [`docs/skills-protocol.md`](../../docs/skills-protocol.md) |
+| Um novo **design system** | Solte um `DESIGN.md` usando o schema de 9 seções | [`design-systems//`](../../design-systems/) |
+| Um novo **plugin** | Solte `open-design.json` + manifesto numa pasta de categoria | [`plugins/community/`](../../plugins/community/) · spec em [`plugins/spec/SPEC.md`](../../plugins/spec/SPEC.md) · guia de dev por agente em [`plugins/spec/AGENT-DEVELOPMENT.md`](../../plugins/spec/AGENT-DEVELOPMENT.md) |
+| Suportar uma nova **CLI de coding agent** | Uma entrada de adaptador + parser de stream | [`apps/daemon/src/agents.ts`](../../apps/daemon/src/agents.ts) |
| Corrigir um bug ou polir a UI | Explore a label [`good-first-issue`](https://github.com/nexu-io/open-design/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) | [Issues →](https://github.com/nexu-io/open-design/issues) |
-| Traduzir a documentação | Atualize os arquivos `README..md` | [`TRANSLATIONS.md`](TRANSLATIONS.md) |
+| Traduzir a documentação | Atualize os arquivos `README..md` | [`TRANSLATIONS.md`](../../TRANSLATIONS.md) |
### 🤖 Contribuindo como agente
@@ -631,11 +631,11 @@ pnpm --filter @open-design/ test
gh pr create --fill
```
-Fluxo completo de contribuição amigável a agentes, estilo de código e barra de qualidade de PR → [English](CONTRIBUTING.md) ([Deutsch](CONTRIBUTING.de.md) · [Français](CONTRIBUTING.fr.md) · [简体中文](CONTRIBUTING.zh-CN.md) · [日本語](CONTRIBUTING.ja-JP.md) · [Português](CONTRIBUTING.pt-BR.md)).
+Fluxo completo de contribuição amigável a agentes, estilo de código e barra de qualidade de PR → [English](../../CONTRIBUTING.md) ([Deutsch](CONTRIBUTING.de.md) · [Français](CONTRIBUTING.fr.md) · [简体中文](CONTRIBUTING.zh-CN.md) · [日本語](CONTRIBUTING.ja-JP.md) · [Português](CONTRIBUTING.pt-BR.md)).
### 🏅 Programa Open Design Fellow
-Estamos recrutando **Open Design Fellows** ao redor do mundo — os Fellows moldam o produto ao lado do time central, representam oficialmente o Open Design em sua região e fazem a comunidade crescer localmente, com suporte financiado ($1,000 / MR), créditos gratuitos de LLM e uma trilha de revisão direta. Detalhes → [`MAINTAINERS.md`](MAINTAINERS.md) e o anúncio no [Discord](https://discord.gg/qhbcCH8Am4).
+Estamos recrutando **Open Design Fellows** ao redor do mundo — os Fellows moldam o produto ao lado do time central, representam oficialmente o Open Design em sua região e fazem a comunidade crescer localmente, com suporte financiado ($1,000 / MR), créditos gratuitos de LLM e uma trilha de revisão direta. Detalhes → [`MAINTAINERS.md`](../../MAINTAINERS.md) e o anúncio no [Discord](https://discord.gg/qhbcCH8Am4).
---
@@ -662,7 +662,7 @@ Eles carregam boa parte do peso — manutenção diária, revisão e suporte à
-Regras dos mantenedores, critérios de promoção e o protocolo de saída → [`MAINTAINERS.md`](MAINTAINERS.md) (também [Deutsch](MAINTAINERS.de.md) · [Français](MAINTAINERS.fr.md) · [简体中文](MAINTAINERS.zh-CN.md) · [日本語](MAINTAINERS.ja-JP.md) · [Português](MAINTAINERS.pt-BR.md)).
+Regras dos mantenedores, critérios de promoção e o protocolo de saída → [`MAINTAINERS.md`](../../MAINTAINERS.md) (também [Deutsch](MAINTAINERS.de.md) · [Français](MAINTAINERS.fr.md) · [简体中文](MAINTAINERS.zh-CN.md) · [日本語](MAINTAINERS.ja-JP.md) · [Português](MAINTAINERS.pt-BR.md)).
## Contribuidores
@@ -680,7 +680,7 @@ Obrigado a todas as pessoas que participaram — código, docs, feedback, uma is
-O SVG acima é regenerado diariamente por [`.github/workflows/metrics.yml`](.github/workflows/metrics.yml) usando [`lowlighter/metrics`](https://github.com/lowlighter/metrics).
+O SVG acima é regenerado diariamente por [`.github/workflows/metrics.yml`](../../.github/workflows/metrics.yml) usando [`lowlighter/metrics`](https://github.com/lowlighter/metrics).
---
@@ -708,7 +708,7 @@ Se isto te poupou trinta minutos, dê um ★. Estrelas não pagam o aluguel —
|---|---|
| [Claude Design][cd] | O produto closed-source ao qual este repositório é a alternativa open-source. |
| [`alchaincyf/huashu-design`](https://github.com/alchaincyf/huashu-design) | A bússola da filosofia de design — fluxo de trabalho de designer júnior, protocolo de brand-asset, checklist anti-AI-slop, crítica em cinco dimensões. |
-| [`op7418/guizang-ppt-skill`](https://github.com/op7418/guizang-ppt-skill) | A skill de PPT web no estilo revista, empacotada na íntegra em [`design-templates/guizang-ppt/`](design-templates/guizang-ppt/). Padrão para o modo deck. |
+| [`op7418/guizang-ppt-skill`](https://github.com/op7418/guizang-ppt-skill) | A skill de PPT web no estilo revista, empacotada na íntegra em [`design-templates/guizang-ppt/`](../../design-templates/guizang-ppt/). Padrão para o modo deck. |
| [`lewislulu/html-ppt-skill`](https://github.com/lewislulu/html-ppt-skill) | A família HTML PPT Studio — 15 templates de deck, 36 temas, 31 layouts de página, runtime de animação, modo apresentador com cards magnéticos. |
| [`OpenCoworkAI/open-codesign`](https://github.com/OpenCoworkAI/open-codesign) | A primeira alternativa open-source ao Claude Design; padrões de UX que tomamos emprestados (loop de artefato em streaming, iframe em sandbox, painel de agente ao vivo). |
| [`multica-ai/multica`](https://github.com/multica-ai/multica) | A arquitetura de daemon + adaptador — detecção de agentes por scan do PATH, daemon local como o único processo privilegiado. |
@@ -717,10 +717,10 @@ Se isto te poupou trinta minutos, dê um ★. Estrelas não pagam o aluguel —
| [`heygen-com/hyperframes`](https://github.com/heygen-com/hyperframes) | O framework de motion graphics HTML→MP4, integrado como o `hyperframes-html` de primeira classe no Open Design. |
| [Claude Code skills][skill] | A convenção `SKILL.md` que adotamos na íntegra. |
-Proveniência detalhada → [`docs/references.md`](docs/references.md).
+Proveniência detalhada → [`docs/references.md`](../../docs/references.md).
[skill]: https://docs.anthropic.com/en/docs/claude-code/skills
## Licença
-Apache-2.0. O `design-templates/guizang-ppt/` empacotado mantém sua [LICENSE](design-templates/guizang-ppt/LICENSE) original (MIT, [@op7418](https://github.com/op7418)). O `design-templates/html-ppt/` empacotado mantém sua [LICENSE](design-templates/html-ppt/LICENSE) original (MIT, [@lewislulu](https://github.com/lewislulu)).
+Apache-2.0. O `design-templates/guizang-ppt/` empacotado mantém sua [LICENSE](../../design-templates/guizang-ppt/LICENSE) original (MIT, [@op7418](https://github.com/op7418)). O `design-templates/html-ppt/` empacotado mantém sua [LICENSE](../../design-templates/html-ppt/LICENSE) original (MIT, [@lewislulu](https://github.com/lewislulu)).
diff --git a/README.ru.md b/docs/i18n/README.ru.md
similarity index 77%
rename from README.ru.md
rename to docs/i18n/README.ru.md
index 5ebfc5af39..341b8d7e23 100644
--- a/README.ru.md
+++ b/docs/i18n/README.ru.md
@@ -2,7 +2,7 @@
> 🔥 **Open Design 0.9.0 уже здесь: создавайте без настройки.** [официальный Model Router](https://open-design.ai/amr) встроен прямо в приложение — никакой дополнительной конфигурации, никакого CLI для установки, никакого API-ключа заранее. Просто откройте приложение, войдите в систему и сразу начинайте проектировать и творить. [Скачать 0.9.0](https://github.com/nexu-io/open-design/releases) · [Присоединиться к обсуждению](https://github.com/nexu-io/open-design/discussions/3524)
>
-> 🏅 **Программа Open Design Fellow теперь открыта.** Если вы тоже верите, что дизайн должен быть открытым — станьте Open Design Fellow, формируйте продукт вместе с основной командой и помогайте большему числу людей участвовать в определении будущего дизайна. Подробности → [`MAINTAINERS.md`](MAINTAINERS.md) и [Discord](https://discord.gg/qhbcCH8Am4).
+> 🏅 **Программа Open Design Fellow теперь открыта.** Если вы тоже верите, что дизайн должен быть открытым — станьте Open Design Fellow, формируйте продукт вместе с основной командой и помогайте большему числу людей участвовать в определении будущего дизайна. Подробности → [`MAINTAINERS.md`](../../MAINTAINERS.md) и [Discord](https://discord.gg/qhbcCH8Am4).
@@ -17,12 +17,12 @@
-English · Español · Português · Deutsch · Français · 简体中文 · 繁體中文 · 한국어 · 日本語 · العربية · Русский · Українська · Türkçe
+English · Español · Português · Deutsch · Français · 简体中文 · 繁體中文 · 한국어 · 日本語 · العربية · Русский · Українська · Türkçe
---
@@ -135,7 +135,7 @@ Open Design — это то, что получается, когда **аген
**Нет установленного CLI?** BYOK-прокси по адресу `POST /api/proxy/{anthropic,openai,azure,google,ollama,senseaudio}/stream` даёт вам тот же цикл (без запуска процессов) — вставьте `baseUrl` + `apiKey` + `model`, с поддержкой OpenAI, Anthropic, Azure OpenAI, Google Gemini, Ollama, LM Studio, vLLM или любого OpenAI-совместимого эндпоинта. Защита от SSRF для каждой цели блокирует внутренние IP / link-local / CGNAT на границе демона.
-Контракт адаптера и парсеры потоков находятся в [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts). Добавление нового CLI — это одна запись, см. [`docs/agent-adapters.md`](docs/agent-adapters.md).
+Контракт адаптера и парсеры потоков находятся в [`apps/daemon/src/agents.ts`](../../apps/daemon/src/agents.ts). Добавление нового CLI — это одна запись, см. [`docs/agent-adapters.md`](../../docs/agent-adapters.md).
---
@@ -150,21 +150,21 @@ Open Design — это то, что получается, когда **аген
-
+
Экран входа — выберите навык, выберите дизайн-систему, введите бриф. Одна поверхность для прототипов, дашбордов, презентаций, мобильных приложений, журнальных страниц.
-
+
Мобильный прототип — пиксельно точный интерфейс iPhone 15 Pro, многоэкранные потоки. Агент никогда не перерисовывает рамку телефона; общие рамки устройств находятся в assets/frames/.
-
+
Веб-прототип — редакционный дашборд со скроллбарами, KPI и графиками. Отрендерен напрямую из design-templates/dating-web/.
-
+
Прототип мобильного приложения — трёхэкранный геймифицированный поток с лентами XP и деталями квеста. Передавайте напрямую в Cursor / Codex / Claude Code, чтобы превратить в React/Next/Vue.
@@ -177,21 +177,21 @@ Open Design — это то, что получается, когда **аген
-
+
Живой дашборд — редактируемая KPI-стена, чья панель настроек выводит параметры, которые стоит подкручивать. Агент выдаёт манифест, и iframe перерисовывается без перезагрузки.
-
+
Комната принятия решений — артефакт-брифинг из множества источников для встреч по продукту / исследованиям / операциям.
-
+
Дашборд в стиле GitHub — метрики репозитория, представленные как живой артефакт.
-
+
Шаблон живого дашборда Flow — доменно-специфичный KPI-шаблон, оформленный через активный DESIGN.md.
@@ -202,11 +202,11 @@ Open Design — это то, что получается, когда **аген
-
+
Режим презентации (guizang-ppt) — журнальные макеты, WebGL-герой, чек-листы P0/P1/P2. Включён дословно из op7418/guizang-ppt-skill с сохранением оригинальной лицензии.
-
+
Презентация в швейцарском интернациональном стиле — привязанная к сетке, монохромные акценты. Один из 15 шаблонов презентаций и 36 тем в design-templates/html-ppt-*/.
@@ -226,7 +226,7 @@ Open Design — это то, что получается, когда **аген
-**93 готовых к воспроизведению промпта** находятся в [`prompt-templates/`](prompt-templates/) — миниатюры предпросмотра, полное тело промпта, целевая модель, соотношение сторон и указание источника. Один клик помещает бриф в композер.
+**93 готовых к воспроизведению промпта** находятся в [`prompt-templates/`](../../prompt-templates/) — миниатюры предпросмотра, полное тело промпта, целевая модель, соотношение сторон и указание источника. Один клик помещает бриф в композер.
### 5 · Видео и HyperFrames — агентно-нативная моушн-графика
@@ -234,20 +234,20 @@ Open Design — это то, что получается, когда **аген
/open-design.json` (или эквивалент для платформы) плюс готовый к копированию MCP-сниппет. Cursor получает диплинк в один клик; Claude Code получает однострочник `claude mcp add-json`; каждый другой агент получает JSON в той схеме, которую ожидает его конфигурация. Полный процесс для каждого агента → **Settings → MCP server** в десктопном приложении или [`docs/agent-adapters.md`](docs/agent-adapters.md).
+**Для агента, начинающего с нуля,** установщик размещает `~/.config//open-design.json` (или эквивалент для платформы) плюс готовый к копированию MCP-сниппет. Cursor получает диплинк в один клик; Claude Code получает однострочник `claude mcp add-json`; каждый другой агент получает JSON в той схеме, которую ожидает его конфигурация. Полный процесс для каждого агента → **Settings → MCP server** в десктопном приложении или [`docs/agent-adapters.md`](../../docs/agent-adapters.md).
**Модель безопасности.** Только для чтения по умолчанию, демон привязывается к `127.0.0.1`, а SSRF блокируется на границе прокси. Доступ из LAN требует явного `OD_BIND_HOST` плюс `OD_ALLOWED_ORIGINS`. Учётные данные коннекторов и маршруты предпросмотра живых артефактов остаются только loopback в любом случае.
@@ -372,34 +372,34 @@ od skill list --scenario marketing
## Навыки
-**100+ навыков поставляются из коробки** — каждый представляет собой папку в [`skills/`](skills/), следующую конвенции Claude Code [`SKILL.md`][skill], расширенной фронтматтером `od:` (`mode`, `platform`, `scenario`, `preview.type`, `design_system.requires`, `default_for`, `fidelity`, `example_prompt`). Положите папку, перезапустите демон, и она появится в выборе.
+**100+ навыков поставляются из коробки** — каждый представляет собой папку в [`skills/`](../../skills/), следующую конвенции Claude Code [`SKILL.md`][skill], расширенной фронтматтером `od:` (`mode`, `platform`, `scenario`, `preview.type`, `design_system.requires`, `default_for`, `fidelity`, `example_prompt`). Положите папку, перезапустите демон, и она появится в выборе.
Два **режима** закрепляют каталог: `prototype` (одностраничные веб-/мобильные/десктопные артефакты) и `deck` (горизонтально-листаемые презентации). Также режимы `image`, `video`, `audio`, `template`, `design-system` и `utility`. Поле **`scenario`** группирует их по аудитории: `design` · `marketing` · `operation` · `engineering` · `product` · `finance` · `hr` · `sale` · `personal`.
| Навык | Режим | Сценарий | Что производит |
|---|---|---|---|
-| [`web-prototype`](design-templates/web-prototype/) | prototype | design | Лендинг / герой по умолчанию |
-| [`saas-landing`](design-templates/saas-landing/) | prototype | marketing | Герой / фичи / прайсинг / CTA |
-| [`dashboard`](design-templates/dashboard/) | prototype | operation | Админка / аналитика (с сайдбаром) |
-| [`mobile-app`](design-templates/mobile-app/) | prototype | design | Приложение в рамке iPhone 15 Pro / Pixel |
-| [`mobile-onboarding`](design-templates/mobile-onboarding/) | prototype | design | Сплеш · ценностное предложение · поток входа |
-| [`social-carousel`](design-templates/social-carousel/) | prototype | marketing | Карусель из 3 карточек 1080×1080 |
-| [`email-marketing`](design-templates/email-marketing/) | prototype | marketing | Брендовое письмо с безопасным табличным фолбэком |
-| [`magazine-poster`](design-templates/magazine-poster/) | prototype | marketing | Одностраничный журнальный макет |
-| [`motion-frames`](design-templates/motion-frames/) | prototype | marketing | Зацикленный CSS-моушн-герой |
-| [`sprite-animation`](design-templates/sprite-animation/) | prototype | marketing | 8-битный пиксельный анимированный объяснитель |
-| [`pm-spec`](design-templates/pm-spec/) | prototype | product | PM-спецификация (с оглавлением + журналом решений) |
-| [`team-okrs`](design-templates/team-okrs/) | prototype | product | OKR-карта |
-| [`eng-runbook`](design-templates/eng-runbook/) | prototype | engineering | Runbook по инцидентам |
-| [`finance-report`](design-templates/finance-report/) | prototype | finance | Финансовая сводка для руководства |
-| [`hr-onboarding`](design-templates/hr-onboarding/) | prototype | hr | План онбординга на роль |
-| [`guizang-ppt`](design-templates/guizang-ppt/) | deck | marketing | Веб-PPT в журнальном стиле (презентация по умолчанию) |
-| [`html-ppt-*`](design-templates/) | deck | marketing | 15 шаблонов презентаций × 36 тем (мастер-шаблон в [`design-templates/html-ppt/`](design-templates/html-ppt/)) |
-| [`hyperframes`](design-templates/hyperframes/) | video | marketing | Моушн-графика HTML → MP4 (OSS-фреймворк HeyGen) |
-| [`critique`](design-templates/critique/) | utility | design | Пятимерный лист самокритики с оценками |
-| [`tweaks`](design-templates/tweaks/) | utility | design | Манифест панели настроек, выдаваемый ИИ |
+| [`web-prototype`](../../design-templates/web-prototype/) | prototype | design | Лендинг / герой по умолчанию |
+| [`saas-landing`](../../design-templates/saas-landing/) | prototype | marketing | Герой / фичи / прайсинг / CTA |
+| [`dashboard`](../../design-templates/dashboard/) | prototype | operation | Админка / аналитика (с сайдбаром) |
+| [`mobile-app`](../../design-templates/mobile-app/) | prototype | design | Приложение в рамке iPhone 15 Pro / Pixel |
+| [`mobile-onboarding`](../../design-templates/mobile-onboarding/) | prototype | design | Сплеш · ценностное предложение · поток входа |
+| [`social-carousel`](../../design-templates/social-carousel/) | prototype | marketing | Карусель из 3 карточек 1080×1080 |
+| [`email-marketing`](../../design-templates/email-marketing/) | prototype | marketing | Брендовое письмо с безопасным табличным фолбэком |
+| [`magazine-poster`](../../design-templates/magazine-poster/) | prototype | marketing | Одностраничный журнальный макет |
+| [`motion-frames`](../../design-templates/motion-frames/) | prototype | marketing | Зацикленный CSS-моушн-герой |
+| [`sprite-animation`](../../design-templates/sprite-animation/) | prototype | marketing | 8-битный пиксельный анимированный объяснитель |
+| [`pm-spec`](../../design-templates/pm-spec/) | prototype | product | PM-спецификация (с оглавлением + журналом решений) |
+| [`team-okrs`](../../design-templates/team-okrs/) | prototype | product | OKR-карта |
+| [`eng-runbook`](../../design-templates/eng-runbook/) | prototype | engineering | Runbook по инцидентам |
+| [`finance-report`](../../design-templates/finance-report/) | prototype | finance | Финансовая сводка для руководства |
+| [`hr-onboarding`](../../design-templates/hr-onboarding/) | prototype | hr | План онбординга на роль |
+| [`guizang-ppt`](../../design-templates/guizang-ppt/) | deck | marketing | Веб-PPT в журнальном стиле (презентация по умолчанию) |
+| [`html-ppt-*`](../../design-templates/) | deck | marketing | 15 шаблонов презентаций × 36 тем (мастер-шаблон в [`design-templates/html-ppt/`](../../design-templates/html-ppt/)) |
+| [`hyperframes`](../../design-templates/hyperframes/) | video | marketing | Моушн-графика HTML → MP4 (OSS-фреймворк HeyGen) |
+| [`critique`](../../design-templates/critique/) | utility | design | Пятимерный лист самокритики с оценками |
+| [`tweaks`](../../design-templates/tweaks/) | utility | design | Манифест панели настроек, выдаваемый ИИ |
-Полный протокол навыков → [`docs/skills-protocol.md`](docs/skills-protocol.md). Эндпоинт реестра навыков: `GET /api/skills`.
+Полный протокол навыков → [`docs/skills-protocol.md`](../../docs/skills-protocol.md). Эндпоинт реестра навыков: `GET /api/skills`.
---
@@ -430,7 +430,7 @@ od skill list --scenario marketing
-Переимпортируйте библиотеку через [`scripts/sync-design-systems.ts`](scripts/sync-design-systems.ts). Добавьте свой бренд → бросьте `DESIGN.md` в `design-systems//`. Полное руководство → [`design-systems/README.md`](design-systems/README.md).
+Переимпортируйте библиотеку через [`scripts/sync-design-systems.ts`](../../scripts/sync-design-systems.ts). Добавьте свой бренд → бросьте `DESIGN.md` в `design-systems//`. Полное руководство → [`design-systems/README.md`](../../design-systems/README.md).
[acd2]: https://github.com/VoltAgent/awesome-design-md
@@ -438,24 +438,24 @@ od skill list --scenario marketing
## Плагины
-**261 официальный плагин** находится в [`plugins/_official/`](plugins/_official/). Каждый плагин — это **переносимая папка агентского навыка** — `SKILL.md` (читаемый любым агентом, поддерживающим Agent Skills), плюс опциональный манифест `open-design.json`, который даёт Open Design метаданные маркетплейса, входы, предпросмотры, пайплайны и декларации возможностей. Перейдите сразу к категории:
+**261 официальный плагин** находится в [`plugins/_official/`](../../plugins/_official/). Каждый плагин — это **переносимая папка агентского навыка** — `SKILL.md` (читаемый любым агентом, поддерживающим Agent Skills), плюс опциональный манифест `open-design.json`, который даёт Open Design метаданные маркетплейса, входы, предпросмотры, пайплайны и декларации возможностей. Перейдите сразу к категории:
| Категория | Кол-во | Содержимое |
|---|---|---|
-| [`scenarios/`](plugins/_official/scenarios/) | 11 | Полные дизайн-сценарии — [`od-default`](plugins/_official/scenarios/od-default/), [`od-design-refine`](plugins/_official/scenarios/od-design-refine/), [`od-figma-migration`](plugins/_official/scenarios/od-figma-migration/), [`od-code-migration`](plugins/_official/scenarios/od-code-migration/), [`od-react-export`](plugins/_official/scenarios/od-react-export/), [`od-nextjs-export`](plugins/_official/scenarios/od-nextjs-export/), [`od-vue-export`](plugins/_official/scenarios/od-vue-export/), [`od-media-generation`](plugins/_official/scenarios/od-media-generation/), [`od-new-generation`](plugins/_official/scenarios/od-new-generation/), [`od-tune-collab`](plugins/_official/scenarios/od-tune-collab/), [`od-plugin-authoring`](plugins/_official/scenarios/od-plugin-authoring/) |
-| [`image-templates/`](plugins/_official/image-templates/) | 45 | Одношаговые промпты для изображений — редакционные, кинематографичные, продуктовые, портретные |
-| [`video-templates/`](plugins/_official/video-templates/) | 50 | Моушн-шаблоны HyperFrames / Seedance / Veo |
-| [`design-systems/`](plugins/_official/design-systems/) | 142 | Брендовые `DESIGN.md`, обёрнутые в плагины |
-| [`atoms/`](plugins/_official/atoms/) | 13 | Переиспользуемые UI-фрагменты (кнопки, герои, KPI-карточки) |
-| [`examples/`](plugins/_official/examples/) | 140 | Ремиксуемые эталонные результаты |
+| [`scenarios/`](../../plugins/_official/scenarios/) | 11 | Полные дизайн-сценарии — [`od-default`](../../plugins/_official/scenarios/od-default/), [`od-design-refine`](../../plugins/_official/scenarios/od-design-refine/), [`od-figma-migration`](../../plugins/_official/scenarios/od-figma-migration/), [`od-code-migration`](../../plugins/_official/scenarios/od-code-migration/), [`od-react-export`](../../plugins/_official/scenarios/od-react-export/), [`od-nextjs-export`](../../plugins/_official/scenarios/od-nextjs-export/), [`od-vue-export`](../../plugins/_official/scenarios/od-vue-export/), [`od-media-generation`](../../plugins/_official/scenarios/od-media-generation/), [`od-new-generation`](../../plugins/_official/scenarios/od-new-generation/), [`od-tune-collab`](../../plugins/_official/scenarios/od-tune-collab/), [`od-plugin-authoring`](../../plugins/_official/scenarios/od-plugin-authoring/) |
+| [`image-templates/`](../../plugins/_official/image-templates/) | 45 | Одношаговые промпты для изображений — редакционные, кинематографичные, продуктовые, портретные |
+| [`video-templates/`](../../plugins/_official/video-templates/) | 50 | Моушн-шаблоны HyperFrames / Seedance / Veo |
+| [`design-systems/`](../../plugins/_official/design-systems/) | 142 | Брендовые `DESIGN.md`, обёрнутые в плагины |
+| [`atoms/`](../../plugins/_official/atoms/) | 13 | Переиспользуемые UI-фрагменты (кнопки, герои, KPI-карточки) |
+| [`examples/`](../../plugins/_official/examples/) | 140 | Ремиксуемые эталонные результаты |
-Также [`plugins/community/`](plugins/community/) для плагинов сообщества и [`plugins/registry/`](plugins/registry/) для процесса публикации.
+Также [`plugins/community/`](../../plugins/community/) для плагинов сообщества и [`plugins/registry/`](../../plugins/registry/) для процесса публикации.
### Что умеют плагины
-- 🤖 **Работают в любом кодинг-агенте** — [Claude Code](docs/agent-adapters.md), Codex, Cursor, Copilot, [OpenClaw](https://github.com/openclaw/openclaw), [Antigravity](https://antigravity.google), Hermes, Kimi… через тот же протокол навыков, который агент уже знает.
-- 🔁 **Мигрируют рабочие процессы Figma / Pencil** → исходники React, Next.js или Vue. См. [`od-figma-migration`](plugins/_official/scenarios/od-figma-migration/).
-- 🛠️ **Обновляют существующую кодовую базу под спецификацию бренда** — направьте плагин на `git`-репозиторий + `DESIGN.md`, получите PR. См. [`od-code-migration`](plugins/_official/scenarios/od-code-migration/).
+- 🤖 **Работают в любом кодинг-агенте** — [Claude Code](../../docs/agent-adapters.md), Codex, Cursor, Copilot, [OpenClaw](https://github.com/openclaw/openclaw), [Antigravity](https://antigravity.google), Hermes, Kimi… через тот же протокол навыков, который агент уже знает.
+- 🔁 **Мигрируют рабочие процессы Figma / Pencil** → исходники React, Next.js или Vue. См. [`od-figma-migration`](../../plugins/_official/scenarios/od-figma-migration/).
+- 🛠️ **Обновляют существующую кодовую базу под спецификацию бренда** — направьте плагин на `git`-репозиторий + `DESIGN.md`, получите PR. См. [`od-code-migration`](../../plugins/_official/scenarios/od-code-migration/).
- 💾 **Сохраняют кастомные рабочие процессы** — переиспользуемые шаблоны вашей команды лежат рядом с поставляемыми.
### Использование плагинов
@@ -501,16 +501,16 @@ od plugin validate ./my-plugin # check manifest / file
pnpm guard && pnpm --filter @open-design/plugin-runtime typecheck
```
-Полный набор полей и рантайм-контракт → [`plugins/spec/SPEC.md`](plugins/spec/SPEC.md); разработка плагина с кодинг-агентом → [`plugins/spec/AGENT-DEVELOPMENT.md`](plugins/spec/AGENT-DEVELOPMENT.md); готовые к копированию минимальные шаблоны → [`plugins/spec/examples/`](plugins/spec/examples/).
+Полный набор полей и рантайм-контракт → [`plugins/spec/SPEC.md`](../../plugins/spec/SPEC.md); разработка плагина с кодинг-агентом → [`plugins/spec/AGENT-DEVELOPMENT.md`](../../plugins/spec/AGENT-DEVELOPMENT.md); готовые к копированию минимальные шаблоны → [`plugins/spec/examples/`](../../plugins/spec/examples/).
### Вклад в виде плагина
-1. Бросьте папку плагина в [`plugins/community/`](plugins/community/) (сторонние плагины), или — чтобы поставлять его вместе с Open Design — в соответствующий уровень [`plugins/_official/`](plugins/_official/).
+1. Бросьте папку плагина в [`plugins/community/`](../../plugins/community/) (сторонние плагины), или — чтобы поставлять его вместе с Open Design — в соответствующий уровень [`plugins/_official/`](../../plugins/_official/).
2. Пройдите валидацию: `od plugin validate`, `pnpm guard`, `pnpm --filter @open-design/plugin-runtime typecheck`.
-3. Заполните PR, используя шаблон в [`plugins/spec/CONTRIBUTING.md`](plugins/spec/CONTRIBUTING.md) (ID, версия, линия, режим, возможности, примеры триггеров; приложите скриншот / предпросмотр для визуальных плагинов).
-4. Чтобы опубликовать во внешнем реестре (skills.sh / ClawHub / отдельный GitHub) → [`plugins/spec/PUBLISHING-REGISTRIES.md`](plugins/spec/PUBLISHING-REGISTRIES.md).
+3. Заполните PR, используя шаблон в [`plugins/spec/CONTRIBUTING.md`](../../plugins/spec/CONTRIBUTING.md) (ID, версия, линия, режим, возможности, примеры триггеров; приложите скриншот / предпросмотр для визуальных плагинов).
+4. Чтобы опубликовать во внешнем реестре (skills.sh / ClawHub / отдельный GitHub) → [`plugins/spec/PUBLISHING-REGISTRIES.md`](../../plugins/spec/PUBLISHING-REGISTRIES.md).
-Эндпоинт реестра плагинов: `GET /api/plugins`. Обзор директории → [`plugins/README.md`](plugins/README.md) ([简体中文](plugins/README.zh-CN.md)).
+Эндпоинт реестра плагинов: `GET /api/plugins`. Обзор директории → [`plugins/README.md`](../../plugins/README.md) ([简体中文](../../plugins/README.zh-CN.md)).
---
@@ -553,7 +553,7 @@ pnpm guard && pnpm --filter @open-design/plugin-runtime typecheck
| Десктоп | Electron-оболочка + изолированный рендерер + sidecar IPC (STATUS · EVAL · SCREENSHOT · CONSOLE · CLICK · SHUTDOWN) |
| Жизненный цикл | Одна точка входа: `pnpm tools-dev` (start / stop / run / status / logs / inspect / check) |
-Полная архитектура → [`docs/architecture.md`](docs/architecture.md). Протокол навыков → [`docs/skills-protocol.md`](docs/skills-protocol.md). Контракт адаптера агента → [`docs/agent-adapters.md`](docs/agent-adapters.md).
+Полная архитектура → [`docs/architecture.md`](../../docs/architecture.md). Протокол навыков → [`docs/skills-protocol.md`](../../docs/skills-protocol.md). Контракт адаптера агента → [`docs/agent-adapters.md`](../../docs/agent-adapters.md).
---
@@ -577,7 +577,7 @@ pnpm guard && pnpm --filter @open-design/plugin-runtime typecheck
- [ ] Плагины миграции Figma / Pencil → React / Next / Vue (alpha)
- [ ] Плагин обновления существующей кодовой базы (направить на git-репозиторий + `DESIGN.md`)
-Поэтапная поставка → [`docs/roadmap.md`](docs/roadmap.md).
+Поэтапная поставка → [`docs/roadmap.md`](../../docs/roadmap.md).
---
@@ -602,12 +602,12 @@ Open Design продолжает двигаться, потому что кон
| Хотите выпустить… | Как | Где |
|---|---|---|
-| Новый **навык** | Бросьте папку с `SKILL.md` + `assets/` + `references/` | [`skills/`](skills/) · спецификация в [`docs/skills-protocol.md`](docs/skills-protocol.md) |
-| Новую **дизайн-систему** | Бросьте `DESIGN.md`, используя схему из 9 разделов | [`design-systems//`](design-systems/) |
-| Новый **плагин** | Бросьте `open-design.json` + манифест в папку категории | [`plugins/community/`](plugins/community/) · спецификация в [`plugins/spec/SPEC.md`](plugins/spec/SPEC.md) · руководство по разработке для агентов в [`plugins/spec/AGENT-DEVELOPMENT.md`](plugins/spec/AGENT-DEVELOPMENT.md) |
-| Поддержку нового **CLI кодинг-агента** | Одна запись адаптера + парсер потока | [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts) |
+| Новый **навык** | Бросьте папку с `SKILL.md` + `assets/` + `references/` | [`skills/`](../../skills/) · спецификация в [`docs/skills-protocol.md`](../../docs/skills-protocol.md) |
+| Новую **дизайн-систему** | Бросьте `DESIGN.md`, используя схему из 9 разделов | [`design-systems//`](../../design-systems/) |
+| Новый **плагин** | Бросьте `open-design.json` + манифест в папку категории | [`plugins/community/`](../../plugins/community/) · спецификация в [`plugins/spec/SPEC.md`](../../plugins/spec/SPEC.md) · руководство по разработке для агентов в [`plugins/spec/AGENT-DEVELOPMENT.md`](../../plugins/spec/AGENT-DEVELOPMENT.md) |
+| Поддержку нового **CLI кодинг-агента** | Одна запись адаптера + парсер потока | [`apps/daemon/src/agents.ts`](../../apps/daemon/src/agents.ts) |
| Исправить баг или отполировать UI | Просмотрите метку [`good-first-issue`](https://github.com/nexu-io/open-design/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) | [Issues →](https://github.com/nexu-io/open-design/issues) |
-| Перевести документацию | Обновите файлы `README..md` | [`TRANSLATIONS.md`](TRANSLATIONS.md) |
+| Перевести документацию | Обновите файлы `README..md` | [`TRANSLATIONS.md`](../../TRANSLATIONS.md) |
### 🤖 Вклад в роли агента
@@ -631,11 +631,11 @@ pnpm --filter @open-design/ test
gh pr create --fill
```
-Полный процесс вклада, дружественный к агентам, стиль кода и планка PR → [`CONTRIBUTING.md`](CONTRIBUTING.md) ([Deutsch](CONTRIBUTING.de.md) · [Français](CONTRIBUTING.fr.md) · [简体中文](CONTRIBUTING.zh-CN.md) · [日本語](CONTRIBUTING.ja-JP.md) · [Português](CONTRIBUTING.pt-BR.md)).
+Полный процесс вклада, дружественный к агентам, стиль кода и планка PR → [`CONTRIBUTING.md`](../../CONTRIBUTING.md) ([Deutsch](CONTRIBUTING.de.md) · [Français](CONTRIBUTING.fr.md) · [简体中文](CONTRIBUTING.zh-CN.md) · [日本語](CONTRIBUTING.ja-JP.md) · [Português](CONTRIBUTING.pt-BR.md)).
### 🏅 Программа Open Design Fellow
-Мы набираем **Open Design Fellows** по всему миру — Fellows формируют продукт вместе с основной командой, официально представляют Open Design в своём регионе и развивают сообщество локально, при финансовой поддержке ($1,000 / MR), бесплатных кредитах на LLM и прямом треке ревью. Подробности → [`MAINTAINERS.md`](MAINTAINERS.md) и анонс в [Discord](https://discord.gg/qhbcCH8Am4).
+Мы набираем **Open Design Fellows** по всему миру — Fellows формируют продукт вместе с основной командой, официально представляют Open Design в своём регионе и развивают сообщество локально, при финансовой поддержке ($1,000 / MR), бесплатных кредитах на LLM и прямом треке ревью. Подробности → [`MAINTAINERS.md`](../../MAINTAINERS.md) и анонс в [Discord](https://discord.gg/qhbcCH8Am4).
---
@@ -662,7 +662,7 @@ gh pr create --fill
-Правила мейнтейнеров, критерии повышения и протокол выхода → [`MAINTAINERS.md`](MAINTAINERS.md) (также [Deutsch](MAINTAINERS.de.md) · [Français](MAINTAINERS.fr.md) · [简体中文](MAINTAINERS.zh-CN.md) · [日本語](MAINTAINERS.ja-JP.md) · [Português](MAINTAINERS.pt-BR.md)).
+Правила мейнтейнеров, критерии повышения и протокол выхода → [`MAINTAINERS.md`](../../MAINTAINERS.md) (также [Deutsch](MAINTAINERS.de.md) · [Français](MAINTAINERS.fr.md) · [简体中文](MAINTAINERS.zh-CN.md) · [日本語](MAINTAINERS.ja-JP.md) · [Português](MAINTAINERS.pt-BR.md)).
## Контрибьюторы
@@ -680,7 +680,7 @@ gh pr create --fill
-SVG выше регенерируется ежедневно через [`.github/workflows/metrics.yml`](.github/workflows/metrics.yml) с помощью [`lowlighter/metrics`](https://github.com/lowlighter/metrics).
+SVG выше регенерируется ежедневно через [`.github/workflows/metrics.yml`](../../.github/workflows/metrics.yml) с помощью [`lowlighter/metrics`](https://github.com/lowlighter/metrics).
---
@@ -708,7 +708,7 @@ SVG выше регенерируется ежедневно через [`.githu
|---|---|
| [Claude Design][cd] | Закрытый продукт, открытой альтернативой которому является этот репозиторий. |
| [`alchaincyf/huashu-design`](https://github.com/alchaincyf/huashu-design) | Компас дизайн-философии — рабочий процесс джуниор-дизайнера, протокол брендовых ассетов, чек-лист против AI-слопа, пятимерная критика. |
-| [`op7418/guizang-ppt-skill`](https://github.com/op7418/guizang-ppt-skill) | Навык веб-PPT в журнальном стиле, включённый дословно в [`design-templates/guizang-ppt/`](design-templates/guizang-ppt/). По умолчанию для режима презентаций. |
+| [`op7418/guizang-ppt-skill`](https://github.com/op7418/guizang-ppt-skill) | Навык веб-PPT в журнальном стиле, включённый дословно в [`design-templates/guizang-ppt/`](../../design-templates/guizang-ppt/). По умолчанию для режима презентаций. |
| [`lewislulu/html-ppt-skill`](https://github.com/lewislulu/html-ppt-skill) | Семейство HTML PPT Studio — 15 шаблонов презентаций, 36 тем, 31 макет страниц, рантайм анимации, режим презентера с магнитными карточками. |
| [`OpenCoworkAI/open-codesign`](https://github.com/OpenCoworkAI/open-codesign) | Первая открытая альтернатива Claude Design; UX-паттерны, которые мы заимствуем (цикл стриминга артефактов, изолированный iframe, живая панель агента). |
| [`multica-ai/multica`](https://github.com/multica-ai/multica) | Архитектура демона + адаптеров — обнаружение агентов сканированием PATH, локальный демон как единственный привилегированный процесс. |
@@ -717,10 +717,10 @@ SVG выше регенерируется ежедневно через [`.githu
| [`heygen-com/hyperframes`](https://github.com/heygen-com/hyperframes) | Фреймворк моушн-графики HTML→MP4, интегрированный как полноправный `hyperframes-html` в Open Design. |
| [Claude Code skills][skill] | Конвенция `SKILL.md`, которую мы перенимаем дословно. |
-Подробное происхождение → [`docs/references.md`](docs/references.md).
+Подробное происхождение → [`docs/references.md`](../../docs/references.md).
[skill]: https://docs.anthropic.com/en/docs/claude-code/skills
## Лицензия
-Apache-2.0. Включённый `design-templates/guizang-ppt/` сохраняет свою оригинальную [LICENSE](design-templates/guizang-ppt/LICENSE) (MIT, [@op7418](https://github.com/op7418)). Включённый `design-templates/html-ppt/` сохраняет свою оригинальную [LICENSE](design-templates/html-ppt/LICENSE) (MIT, [@lewislulu](https://github.com/lewislulu)).
+Apache-2.0. Включённый `design-templates/guizang-ppt/` сохраняет свою оригинальную [LICENSE](../../design-templates/guizang-ppt/LICENSE) (MIT, [@op7418](https://github.com/op7418)). Включённый `design-templates/html-ppt/` сохраняет свою оригинальную [LICENSE](../../design-templates/html-ppt/LICENSE) (MIT, [@lewislulu](https://github.com/lewislulu)).
diff --git a/README.tr.md b/docs/i18n/README.tr.md
similarity index 74%
rename from README.tr.md
rename to docs/i18n/README.tr.md
index 239e526cb4..d111692ffa 100644
--- a/README.tr.md
+++ b/docs/i18n/README.tr.md
@@ -2,7 +2,7 @@
> 🔥 **Open Design 0.9.0 burada: kurulum olmadan üret.** [Resmî Model Router](https://open-design.ai/amr) doğrudan uygulamaya gömülü — ek yapılandırma yok, kurulacak CLI yok, hazırlanacak API anahtarı yok. Sadece uygulamayı açın, oturum açın ve hemen tasarlamaya ve üretmeye başlayın. [0.9.0'ı indir](https://github.com/nexu-io/open-design/releases) · [Tartışmaya katıl](https://github.com/nexu-io/open-design/discussions/3524)
>
-> 🏅 **Open Design Fellow programı artık açık.** Siz de tasarımın açık olması gerektiğine inanıyorsanız — bir Open Design Fellow olun, ürünü çekirdek ekiple birlikte şekillendirin ve daha fazla insanın tasarımın geleceğini tanımlamaya katılmasına yardımcı olun. Ayrıntılar → [`MAINTAINERS.md`](MAINTAINERS.md) ve [Discord](https://discord.gg/qhbcCH8Am4).
+> 🏅 **Open Design Fellow programı artık açık.** Siz de tasarımın açık olması gerektiğine inanıyorsanız — bir Open Design Fellow olun, ürünü çekirdek ekiple birlikte şekillendirin ve daha fazla insanın tasarımın geleceğini tanımlamaya katılmasına yardımcı olun. Ayrıntılar → [`MAINTAINERS.md`](../../MAINTAINERS.md) ve [Discord](https://discord.gg/qhbcCH8Am4).
@@ -17,12 +17,12 @@
-English · Español · Português · Deutsch · Français · 简体中文 · 繁體中文 · 한국어 · 日本語 · العربية · Русский · Українська · Türkçe
+English · Español · Português · Deutsch · Français · 简体中文 · 繁體中文 · 한국어 · 日本語 · العربية · Русский · Українська · Türkçe
---
@@ -135,7 +135,7 @@ Kuru çalıştırma önizlemesi için `od mcp install --print` · kaldı
**Kurulu CLI yok mu?** `POST /api/proxy/{anthropic,openai,azure,google,ollama,senseaudio}/stream` adresindeki BYOK proxy size aynı döngüyü verir (süreç başlatma yok) — `baseUrl` + `apiKey` + `model` yapıştırın; OpenAI, Anthropic, Azure OpenAI, Google Gemini, Ollama, LM Studio, vLLM veya herhangi bir OpenAI uyumlu uç nokta desteğiyle. Hedef bazlı SSRF koruması, daemon kenarında dahili IP'leri / link-local / CGNAT adreslerini engeller.
-Adaptör sözleşmesi ve akış ayrıştırıcıları [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts) içinde yer alır. Yeni bir CLI eklemek tek bir girdidir — bkz. [`docs/agent-adapters.md`](docs/agent-adapters.md).
+Adaptör sözleşmesi ve akış ayrıştırıcıları [`apps/daemon/src/agents.ts`](../../apps/daemon/src/agents.ts) içinde yer alır. Yeni bir CLI eklemek tek bir girdidir — bkz. [`docs/agent-adapters.md`](../../docs/agent-adapters.md).
---
@@ -150,21 +150,21 @@ Varsayılan çıktı yüzeyi. `DESIGN.md` dosyanızı okuyan ve yalıtılmış b
-
+
Giriş görünümü — bir beceri seçin, bir tasarım sistemi seçin, özeti yazın. Prototipler, panolar, sunum desteleri, mobil uygulamalar, dergi sayfaları için tek bir yüzey.
-
+
Mobil prototip — piksel hassasiyetinde iPhone 15 Pro çerçevesi, çok ekranlı akışlar. Ajan telefon çerçevesini asla yeniden çizmez; paylaşılan cihaz çerçeveleri assets/frames/ içinde yer alır.
-
+
Web prototip — kaydırma çubukları, KPI'lar ve grafiklerle editöryel bir pano. Doğrudan design-templates/dating-web/ dizininden işlenmiştir.
-
+
Mobil uygulama prototipi — XP şeritleri ve görev detayı olan üç ekranlı oyunlaştırılmış bir akış. React/Next/Vue'ya dönüştürmek için doğrudan Cursor / Codex / Claude Code'a devredin.
@@ -177,21 +177,21 @@ Canlı panolar, karar odaları, KPI duvarları — verileri bir ayar paneli arac
-
+
Canlı pano — ayar paneli üzerinde ince ayar yapmaya değer parametreleri ortaya çıkaran, düzenlenebilir bir KPI duvarı. Ajan bir manifest yayar ve iframe yeniden yükleme olmadan yeniden işlenir.
-
+
Karar odası — ürün / araştırma / operasyon toplantıları için çok kaynaklı bir brifing artifact'i.
-
+
GitHub tarzı pano — depo metrikleri canlı bir artifact olarak sunulur.
-
+
Flow canlı pano şablonu — etkin DESIGN.md ile markalanmış, alana özgü bir KPI şablonu.
@@ -202,11 +202,11 @@ Canlı panolar, karar odaları, KPI duvarları — verileri bir ayar paneli arac
-
+
Deste modu (guizang-ppt) — dergi düzenleri, WebGL hero, P0/P1/P2 kontrol listeleri. Orijinal lisansı korunarak op7418/guizang-ppt-skill deposundan birebir paketlenmiştir.
-
+
Swiss International tarzı deste — ızgaraya sabitlenmiş, monokrom vurgular. design-templates/html-ppt-*/ altındaki 15 deste şablonundan ve 36 temadan biri.
@@ -226,7 +226,7 @@ Her deste **HTML** (tek dosya, gömülü varlıklar), **PDF** (tarayıcı yazdı
-**93 çoğaltmaya hazır komut** [`prompt-templates/`](prompt-templates/) içinde yer alır — önizleme küçük resimleri, tam komut metni, hedef model, en boy oranı ve kaynak atıfı. Tek tıkla composer'a bir özet bırakır.
+**93 çoğaltmaya hazır komut** [`prompt-templates/`](../../prompt-templates/) içinde yer alır — önizleme küçük resimleri, tam komut metni, hedef model, en boy oranı ve kaynak atıfı. Tek tıkla composer'a bir özet bırakır.
### 5 · Video ve HyperFrames — ajan-yerel hareket grafikleri
@@ -234,20 +234,20 @@ Her deste **HTML** (tek dosya, gömülü varlıklar), **PDF** (tarayıcı yazdı
/open-design.json` dosyasını (veya platform eşdeğerini) artı kopyala-yapıştır bir MCP parçacığını yerleştirir. Cursor tek tıklık bir deeplink alır; Claude Code bir `claude mcp add-json` tek satırlık komut alır; diğer her ajan, yapılandırmasının beklediği şemada JSON alır. Ajan başına tam akış → masaüstü uygulamasında **Settings → MCP server** veya [`docs/agent-adapters.md`](docs/agent-adapters.md).
+**Sıfırdan başlayan bir ajan için,** yükleyici `~/.config//open-design.json` dosyasını (veya platform eşdeğerini) artı kopyala-yapıştır bir MCP parçacığını yerleştirir. Cursor tek tıklık bir deeplink alır; Claude Code bir `claude mcp add-json` tek satırlık komut alır; diğer her ajan, yapılandırmasının beklediği şemada JSON alır. Ajan başına tam akış → masaüstü uygulamasında **Settings → MCP server** veya [`docs/agent-adapters.md`](../../docs/agent-adapters.md).
**Güvenlik modeli.** Varsayılan olarak salt okunur, daemon `127.0.0.1` adresine bağlanır ve SSRF, proxy kenarında engellenir. LAN erişimi açık bir `OD_BIND_HOST` artı `OD_ALLOWED_ORIGINS` gerektirir. Bağlayıcı kimlik bilgileri ve canlı artifact önizleme rotaları ne olursa olsun yalnızca loopback'te kalır.
@@ -372,34 +372,34 @@ od skill list --scenario marketing
## Beceriler
-**Kutudan çıktığı gibi 100+ beceri gelir** — her biri [`skills/`](skills/) altında, Claude Code [`SKILL.md`][skill] kuralını takip eden ve bir `od:` frontmatter (`mode`, `platform`, `scenario`, `preview.type`, `design_system.requires`, `default_for`, `fidelity`, `example_prompt`) ile genişletilmiş bir klasördür. Bir klasör bırakın, daemon'u yeniden başlatın, seçicide belirir.
+**Kutudan çıktığı gibi 100+ beceri gelir** — her biri [`skills/`](../../skills/) altında, Claude Code [`SKILL.md`][skill] kuralını takip eden ve bir `od:` frontmatter (`mode`, `platform`, `scenario`, `preview.type`, `design_system.requires`, `default_for`, `fidelity`, `example_prompt`) ile genişletilmiş bir klasördür. Bir klasör bırakın, daemon'u yeniden başlatın, seçicide belirir.
İki **mod** kataloğa zemin oluşturur: `prototype` (web/mobil/masaüstü tek sayfalık artifact'ler) ve `deck` (yatay kaydırmalı sunumlar). Ayrıca `image`, `video`, `audio`, `template`, `design-system` ve `utility` modları. **`scenario`** alanı bunları kitleye göre gruplar: `design` · `marketing` · `operation` · `engineering` · `product` · `finance` · `hr` · `sale` · `personal`.
| Beceri | Mod | Senaryo | Ne ürettiği |
|---|---|---|---|
-| [`web-prototype`](design-templates/web-prototype/) | prototype | design | Varsayılan açılış sayfası / hero |
-| [`saas-landing`](design-templates/saas-landing/) | prototype | marketing | Hero / özellikler / fiyatlandırma / CTA |
-| [`dashboard`](design-templates/dashboard/) | prototype | operation | Yönetim / analitik (kenar çubuklu) |
-| [`mobile-app`](design-templates/mobile-app/) | prototype | design | iPhone 15 Pro / Pixel çerçeveli uygulama |
-| [`mobile-onboarding`](design-templates/mobile-onboarding/) | prototype | design | Açılış · değer önerisi · oturum açma akışı |
-| [`social-carousel`](design-templates/social-carousel/) | prototype | marketing | 3 kartlı 1080×1080 karusel |
-| [`email-marketing`](design-templates/email-marketing/) | prototype | marketing | Tablo yedeği güvenli marka e-postası |
-| [`magazine-poster`](design-templates/magazine-poster/) | prototype | marketing | Tek sayfalık dergi düzeni |
-| [`motion-frames`](design-templates/motion-frames/) | prototype | marketing | Döngüsel CSS hareket hero'su |
-| [`sprite-animation`](design-templates/sprite-animation/) | prototype | marketing | 8-bit piksel animasyonlu açıklayıcı |
-| [`pm-spec`](design-templates/pm-spec/) | prototype | product | PM spesifikasyon belgesi (TOC + karar günlüğü ile) |
-| [`team-okrs`](design-templates/team-okrs/) | prototype | product | OKR puan kartı |
-| [`eng-runbook`](design-templates/eng-runbook/) | prototype | engineering | Olay müdahale kılavuzu |
-| [`finance-report`](design-templates/finance-report/) | prototype | finance | Yönetici finans özeti |
-| [`hr-onboarding`](design-templates/hr-onboarding/) | prototype | hr | Rol başlatma planı |
-| [`guizang-ppt`](design-templates/guizang-ppt/) | deck | marketing | Dergi tarzı web PPT (deste varsayılanı) |
-| [`html-ppt-*`](design-templates/) | deck | marketing | 15 deste şablonu × 36 tema (ana şablon [`design-templates/html-ppt/`](design-templates/html-ppt/) içinde) |
-| [`hyperframes`](design-templates/hyperframes/) | video | marketing | HTML → MP4 hareket grafikleri (HeyGen OSS çerçevesi) |
-| [`critique`](design-templates/critique/) | utility | design | Beş boyutlu öz-eleştiri puan tablosu |
-| [`tweaks`](design-templates/tweaks/) | utility | design | AI tarafından yayılan ayar paneli manifesti |
+| [`web-prototype`](../../design-templates/web-prototype/) | prototype | design | Varsayılan açılış sayfası / hero |
+| [`saas-landing`](../../design-templates/saas-landing/) | prototype | marketing | Hero / özellikler / fiyatlandırma / CTA |
+| [`dashboard`](../../design-templates/dashboard/) | prototype | operation | Yönetim / analitik (kenar çubuklu) |
+| [`mobile-app`](../../design-templates/mobile-app/) | prototype | design | iPhone 15 Pro / Pixel çerçeveli uygulama |
+| [`mobile-onboarding`](../../design-templates/mobile-onboarding/) | prototype | design | Açılış · değer önerisi · oturum açma akışı |
+| [`social-carousel`](../../design-templates/social-carousel/) | prototype | marketing | 3 kartlı 1080×1080 karusel |
+| [`email-marketing`](../../design-templates/email-marketing/) | prototype | marketing | Tablo yedeği güvenli marka e-postası |
+| [`magazine-poster`](../../design-templates/magazine-poster/) | prototype | marketing | Tek sayfalık dergi düzeni |
+| [`motion-frames`](../../design-templates/motion-frames/) | prototype | marketing | Döngüsel CSS hareket hero'su |
+| [`sprite-animation`](../../design-templates/sprite-animation/) | prototype | marketing | 8-bit piksel animasyonlu açıklayıcı |
+| [`pm-spec`](../../design-templates/pm-spec/) | prototype | product | PM spesifikasyon belgesi (TOC + karar günlüğü ile) |
+| [`team-okrs`](../../design-templates/team-okrs/) | prototype | product | OKR puan kartı |
+| [`eng-runbook`](../../design-templates/eng-runbook/) | prototype | engineering | Olay müdahale kılavuzu |
+| [`finance-report`](../../design-templates/finance-report/) | prototype | finance | Yönetici finans özeti |
+| [`hr-onboarding`](../../design-templates/hr-onboarding/) | prototype | hr | Rol başlatma planı |
+| [`guizang-ppt`](../../design-templates/guizang-ppt/) | deck | marketing | Dergi tarzı web PPT (deste varsayılanı) |
+| [`html-ppt-*`](../../design-templates/) | deck | marketing | 15 deste şablonu × 36 tema (ana şablon [`design-templates/html-ppt/`](../../design-templates/html-ppt/) içinde) |
+| [`hyperframes`](../../design-templates/hyperframes/) | video | marketing | HTML → MP4 hareket grafikleri (HeyGen OSS çerçevesi) |
+| [`critique`](../../design-templates/critique/) | utility | design | Beş boyutlu öz-eleştiri puan tablosu |
+| [`tweaks`](../../design-templates/tweaks/) | utility | design | AI tarafından yayılan ayar paneli manifesti |
-Tam beceri protokolü → [`docs/skills-protocol.md`](docs/skills-protocol.md). Beceri kayıt uç noktası: `GET /api/skills`.
+Tam beceri protokolü → [`docs/skills-protocol.md`](../../docs/skills-protocol.md). Beceri kayıt uç noktası: `GET /api/skills`.
---
@@ -430,7 +430,7 @@ Tam beceri protokolü → [`docs/skills-protocol.md`](docs/skills-protocol.md).
-Kütüphaneyi [`scripts/sync-design-systems.ts`](scripts/sync-design-systems.ts) ile yeniden içe aktarın. Kendi markanızı ekleyin → `design-systems//` içine bir `DESIGN.md` bırakın. Tam kılavuz → [`design-systems/README.md`](design-systems/README.md).
+Kütüphaneyi [`scripts/sync-design-systems.ts`](../../scripts/sync-design-systems.ts) ile yeniden içe aktarın. Kendi markanızı ekleyin → `design-systems//` içine bir `DESIGN.md` bırakın. Tam kılavuz → [`design-systems/README.md`](../../design-systems/README.md).
[acd2]: https://github.com/VoltAgent/awesome-design-md
@@ -438,24 +438,24 @@ Kütüphaneyi [`scripts/sync-design-systems.ts`](scripts/sync-design-systems.ts)
## Eklentiler
-**261 resmî eklenti** [`plugins/_official/`](plugins/_official/) içinde yer alır. Her eklenti **taşınabilir bir ajan-beceri klasörüdür** — bir `SKILL.md` (Agent Skills'i destekleyen herhangi bir ajan tarafından okunabilir), artı Open Design'a pazar yeri meta verisi, girdiler, önizlemeler, işlem hatları ve yetenek bildirimleri veren isteğe bağlı bir `open-design.json` manifesti. Doğrudan bir kategoriye atlayın:
+**261 resmî eklenti** [`plugins/_official/`](../../plugins/_official/) içinde yer alır. Her eklenti **taşınabilir bir ajan-beceri klasörüdür** — bir `SKILL.md` (Agent Skills'i destekleyen herhangi bir ajan tarafından okunabilir), artı Open Design'a pazar yeri meta verisi, girdiler, önizlemeler, işlem hatları ve yetenek bildirimleri veren isteğe bağlı bir `open-design.json` manifesti. Doğrudan bir kategoriye atlayın:
| Kategori | Sayı | İçerik |
|---|---|---|
-| [`scenarios/`](plugins/_official/scenarios/) | 11 | Eksiksiz tasarım senaryoları — [`od-default`](plugins/_official/scenarios/od-default/), [`od-design-refine`](plugins/_official/scenarios/od-design-refine/), [`od-figma-migration`](plugins/_official/scenarios/od-figma-migration/), [`od-code-migration`](plugins/_official/scenarios/od-code-migration/), [`od-react-export`](plugins/_official/scenarios/od-react-export/), [`od-nextjs-export`](plugins/_official/scenarios/od-nextjs-export/), [`od-vue-export`](plugins/_official/scenarios/od-vue-export/), [`od-media-generation`](plugins/_official/scenarios/od-media-generation/), [`od-new-generation`](plugins/_official/scenarios/od-new-generation/), [`od-tune-collab`](plugins/_official/scenarios/od-tune-collab/), [`od-plugin-authoring`](plugins/_official/scenarios/od-plugin-authoring/) |
-| [`image-templates/`](plugins/_official/image-templates/) | 45 | Tek seferlik görsel komutları — editöryel, sinematik, ürün, portre |
-| [`video-templates/`](plugins/_official/video-templates/) | 50 | HyperFrames / Seedance / Veo hareket şablonları |
-| [`design-systems/`](plugins/_official/design-systems/) | 142 | Eklenti olarak sarmalanmış marka `DESIGN.md` dosyaları |
-| [`atoms/`](plugins/_official/atoms/) | 13 | Yeniden kullanılabilir UI parçaları (düğmeler, hero'lar, KPI kartları) |
-| [`examples/`](plugins/_official/examples/) | 140 | Yeniden harmanlanabilir referans çıktıları |
+| [`scenarios/`](../../plugins/_official/scenarios/) | 11 | Eksiksiz tasarım senaryoları — [`od-default`](../../plugins/_official/scenarios/od-default/), [`od-design-refine`](../../plugins/_official/scenarios/od-design-refine/), [`od-figma-migration`](../../plugins/_official/scenarios/od-figma-migration/), [`od-code-migration`](../../plugins/_official/scenarios/od-code-migration/), [`od-react-export`](../../plugins/_official/scenarios/od-react-export/), [`od-nextjs-export`](../../plugins/_official/scenarios/od-nextjs-export/), [`od-vue-export`](../../plugins/_official/scenarios/od-vue-export/), [`od-media-generation`](../../plugins/_official/scenarios/od-media-generation/), [`od-new-generation`](../../plugins/_official/scenarios/od-new-generation/), [`od-tune-collab`](../../plugins/_official/scenarios/od-tune-collab/), [`od-plugin-authoring`](../../plugins/_official/scenarios/od-plugin-authoring/) |
+| [`image-templates/`](../../plugins/_official/image-templates/) | 45 | Tek seferlik görsel komutları — editöryel, sinematik, ürün, portre |
+| [`video-templates/`](../../plugins/_official/video-templates/) | 50 | HyperFrames / Seedance / Veo hareket şablonları |
+| [`design-systems/`](../../plugins/_official/design-systems/) | 142 | Eklenti olarak sarmalanmış marka `DESIGN.md` dosyaları |
+| [`atoms/`](../../plugins/_official/atoms/) | 13 | Yeniden kullanılabilir UI parçaları (düğmeler, hero'lar, KPI kartları) |
+| [`examples/`](../../plugins/_official/examples/) | 140 | Yeniden harmanlanabilir referans çıktıları |
-Ayrıca topluluk eklentileri için [`plugins/community/`](plugins/community/) ve yayınlama akışı için [`plugins/registry/`](plugins/registry/).
+Ayrıca topluluk eklentileri için [`plugins/community/`](../../plugins/community/) ve yayınlama akışı için [`plugins/registry/`](../../plugins/registry/).
### Eklentiler ne yapabilir
-- 🤖 **Herhangi bir kodlama ajanında çalışın** — [Claude Code](docs/agent-adapters.md), Codex, Cursor, Copilot, [OpenClaw](https://github.com/openclaw/openclaw), [Antigravity](https://antigravity.google), Hermes, Kimi… ajanın zaten bildiği aynı beceri protokolü aracılığıyla.
-- 🔁 **Figma / Pencil iş akışlarını taşıyın** → React, Next.js veya Vue kaynağı. Bkz. [`od-figma-migration`](plugins/_official/scenarios/od-figma-migration/).
-- 🛠️ **Mevcut bir kod tabanını bir marka spesifikasyonuna yenileyin** — bir eklentiyi bir `git` deposu + `DESIGN.md` dosyasına yönlendirin, bir PR alın. Bkz. [`od-code-migration`](plugins/_official/scenarios/od-code-migration/).
+- 🤖 **Herhangi bir kodlama ajanında çalışın** — [Claude Code](../../docs/agent-adapters.md), Codex, Cursor, Copilot, [OpenClaw](https://github.com/openclaw/openclaw), [Antigravity](https://antigravity.google), Hermes, Kimi… ajanın zaten bildiği aynı beceri protokolü aracılığıyla.
+- 🔁 **Figma / Pencil iş akışlarını taşıyın** → React, Next.js veya Vue kaynağı. Bkz. [`od-figma-migration`](../../plugins/_official/scenarios/od-figma-migration/).
+- 🛠️ **Mevcut bir kod tabanını bir marka spesifikasyonuna yenileyin** — bir eklentiyi bir `git` deposu + `DESIGN.md` dosyasına yönlendirin, bir PR alın. Bkz. [`od-code-migration`](../../plugins/_official/scenarios/od-code-migration/).
- 💾 **Özel iş akışlarını kalıcı kılın** — ekibinizin yeniden kullanılabilir şablonları, sunulanların yanında durur.
### Eklentileri kullanma
@@ -501,16 +501,16 @@ od plugin validate ./my-plugin # check manifest / file
pnpm guard && pnpm --filter @open-design/plugin-runtime typecheck
```
-Tam alan kümesi ve çalışma zamanı sözleşmesi → [`plugins/spec/SPEC.md`](plugins/spec/SPEC.md); bir kodlama ajanıyla eklenti geliştirme → [`plugins/spec/AGENT-DEVELOPMENT.md`](plugins/spec/AGENT-DEVELOPMENT.md); kopyala-yapıştır minimal şablonlar → [`plugins/spec/examples/`](plugins/spec/examples/).
+Tam alan kümesi ve çalışma zamanı sözleşmesi → [`plugins/spec/SPEC.md`](../../plugins/spec/SPEC.md); bir kodlama ajanıyla eklenti geliştirme → [`plugins/spec/AGENT-DEVELOPMENT.md`](../../plugins/spec/AGENT-DEVELOPMENT.md); kopyala-yapıştır minimal şablonlar → [`plugins/spec/examples/`](../../plugins/spec/examples/).
### Bir eklentiye katkıda bulunma
-1. Eklenti klasörünü [`plugins/community/`](plugins/community/) içine (üçüncü taraf eklentiler) veya — onu Open Design ile birlikte paketlenmiş olarak sunmak için — [`plugins/_official/`](plugins/_official/) içindeki eşleşen katmana bırakın.
+1. Eklenti klasörünü [`plugins/community/`](../../plugins/community/) içine (üçüncü taraf eklentiler) veya — onu Open Design ile birlikte paketlenmiş olarak sunmak için — [`plugins/_official/`](../../plugins/_official/) içindeki eşleşen katmana bırakın.
2. Doğrulamayı geçin: `od plugin validate`, `pnpm guard`, `pnpm --filter @open-design/plugin-runtime typecheck`.
-3. PR'ı [`plugins/spec/CONTRIBUTING.md`](plugins/spec/CONTRIBUTING.md) içindeki şablonu kullanarak doldurun (kimlik, sürüm, hat, mod, yetenekler, tetikleme örnekleri; görsel eklentiler için bir ekran görüntüsü / önizleme ekleyin).
-4. Harici bir kayda yayınlamak için (skills.sh / ClawHub / bağımsız GitHub) → [`plugins/spec/PUBLISHING-REGISTRIES.md`](plugins/spec/PUBLISHING-REGISTRIES.md).
+3. PR'ı [`plugins/spec/CONTRIBUTING.md`](../../plugins/spec/CONTRIBUTING.md) içindeki şablonu kullanarak doldurun (kimlik, sürüm, hat, mod, yetenekler, tetikleme örnekleri; görsel eklentiler için bir ekran görüntüsü / önizleme ekleyin).
+4. Harici bir kayda yayınlamak için (skills.sh / ClawHub / bağımsız GitHub) → [`plugins/spec/PUBLISHING-REGISTRIES.md`](../../plugins/spec/PUBLISHING-REGISTRIES.md).
-Eklenti kayıt uç noktası: `GET /api/plugins`. Dizin genel bakışı → [`plugins/README.md`](plugins/README.md) ([简体中文](plugins/README.zh-CN.md)).
+Eklenti kayıt uç noktası: `GET /api/plugins`. Dizin genel bakışı → [`plugins/README.md`](../../plugins/README.md) ([简体中文](../../plugins/README.zh-CN.md)).
---
@@ -553,7 +553,7 @@ Eklenti kayıt uç noktası: `GET /api/plugins`. Dizin genel bakışı → [`plu
| Masaüstü | Electron shell + yalıtılmış renderer + sidecar IPC (STATUS · EVAL · SCREENSHOT · CONSOLE · CLICK · SHUTDOWN) |
| Yaşam döngüsü | Tek giriş noktası: `pnpm tools-dev` (start / stop / run / status / logs / inspect / check) |
-Tam mimari → [`docs/architecture.md`](docs/architecture.md). Beceri protokolü → [`docs/skills-protocol.md`](docs/skills-protocol.md). Ajan adaptör sözleşmesi → [`docs/agent-adapters.md`](docs/agent-adapters.md).
+Tam mimari → [`docs/architecture.md`](../../docs/architecture.md). Beceri protokolü → [`docs/skills-protocol.md`](../../docs/skills-protocol.md). Ajan adaptör sözleşmesi → [`docs/agent-adapters.md`](../../docs/agent-adapters.md).
---
@@ -577,7 +577,7 @@ Tam mimari → [`docs/architecture.md`](docs/architecture.md). Beceri protokolü
- [ ] Figma / Pencil → React / Next / Vue taşıma eklentileri (alpha)
- [ ] Mevcut kod tabanını yenileme eklentisi (bir git deposu + `DESIGN.md` dosyasına yönlendirin)
-Aşamalı teslimat → [`docs/roadmap.md`](docs/roadmap.md).
+Aşamalı teslimat → [`docs/roadmap.md`](../../docs/roadmap.md).
---
@@ -602,12 +602,12 @@ Open Design, katkıda bulunanlar — tasarımcılar, mühendisler, komut yazarla
| Ne sunmak istiyorsun… | Nasıl | Nerede |
|---|---|---|
-| Yeni bir **beceri** | `SKILL.md` + `assets/` + `references/` içeren bir klasör bırakın | [`skills/`](skills/) · spesifikasyon [`docs/skills-protocol.md`](docs/skills-protocol.md) içinde |
-| Yeni bir **tasarım sistemi** | 9 bölümlük şemayı kullanan bir `DESIGN.md` bırakın | [`design-systems//`](design-systems/) |
-| Yeni bir **eklenti** | Bir kategori klasörü altına `open-design.json` + manifest bırakın | [`plugins/community/`](plugins/community/) · spesifikasyon [`plugins/spec/SPEC.md`](plugins/spec/SPEC.md) içinde · ajan geliştirme kılavuzu [`plugins/spec/AGENT-DEVELOPMENT.md`](plugins/spec/AGENT-DEVELOPMENT.md) içinde |
-| Yeni bir **kodlama ajanı CLI'si** destekleyin | Bir adaptör girdisi + akış ayrıştırıcı | [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts) |
+| Yeni bir **beceri** | `SKILL.md` + `assets/` + `references/` içeren bir klasör bırakın | [`skills/`](../../skills/) · spesifikasyon [`docs/skills-protocol.md`](../../docs/skills-protocol.md) içinde |
+| Yeni bir **tasarım sistemi** | 9 bölümlük şemayı kullanan bir `DESIGN.md` bırakın | [`design-systems//`](../../design-systems/) |
+| Yeni bir **eklenti** | Bir kategori klasörü altına `open-design.json` + manifest bırakın | [`plugins/community/`](../../plugins/community/) · spesifikasyon [`plugins/spec/SPEC.md`](../../plugins/spec/SPEC.md) içinde · ajan geliştirme kılavuzu [`plugins/spec/AGENT-DEVELOPMENT.md`](../../plugins/spec/AGENT-DEVELOPMENT.md) içinde |
+| Yeni bir **kodlama ajanı CLI'si** destekleyin | Bir adaptör girdisi + akış ayrıştırıcı | [`apps/daemon/src/agents.ts`](../../apps/daemon/src/agents.ts) |
| Bir hatayı düzeltin veya UI'yi cilalayın | [`good-first-issue`](https://github.com/nexu-io/open-design/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) etiketine göz atın | [Issues →](https://github.com/nexu-io/open-design/issues) |
-| Belgeleri çevirin | `README..md` dosyalarını güncelleyin | [`TRANSLATIONS.md`](TRANSLATIONS.md) |
+| Belgeleri çevirin | `README..md` dosyalarını güncelleyin | [`TRANSLATIONS.md`](../../TRANSLATIONS.md) |
### 🤖 Bir ajan olarak katkıda bulunma
@@ -631,11 +631,11 @@ pnpm --filter @open-design/ test
gh pr create --fill
```
-Tam ajan dostu katkı akışı, kod stili ve PR çıtası → [`CONTRIBUTING.md`](CONTRIBUTING.md) ([Deutsch](CONTRIBUTING.de.md) · [Français](CONTRIBUTING.fr.md) · [简体中文](CONTRIBUTING.zh-CN.md) · [日本語](CONTRIBUTING.ja-JP.md) · [Português](CONTRIBUTING.pt-BR.md)).
+Tam ajan dostu katkı akışı, kod stili ve PR çıtası → [`CONTRIBUTING.md`](../../CONTRIBUTING.md) ([Deutsch](CONTRIBUTING.de.md) · [Français](CONTRIBUTING.fr.md) · [简体中文](CONTRIBUTING.zh-CN.md) · [日本語](CONTRIBUTING.ja-JP.md) · [Português](CONTRIBUTING.pt-BR.md)).
### 🏅 Open Design Fellow programı
-Dünya çapında **Open Design Fellow'ları** alıyoruz — Fellow'lar ürünü çekirdek ekiple birlikte şekillendirir, kendi bölgelerinde Open Design'ı resmî olarak temsil eder ve topluluğu yerel olarak büyütür; fonlu destek ($1,000 / MR), ücretsiz LLM kredileri ve doğrudan inceleme hattıyla desteklenir. Ayrıntılar → [`MAINTAINERS.md`](MAINTAINERS.md) ve [Discord](https://discord.gg/qhbcCH8Am4) üzerindeki duyuru.
+Dünya çapında **Open Design Fellow'ları** alıyoruz — Fellow'lar ürünü çekirdek ekiple birlikte şekillendirir, kendi bölgelerinde Open Design'ı resmî olarak temsil eder ve topluluğu yerel olarak büyütür; fonlu destek ($1,000 / MR), ücretsiz LLM kredileri ve doğrudan inceleme hattıyla desteklenir. Ayrıntılar → [`MAINTAINERS.md`](../../MAINTAINERS.md) ve [Discord](https://discord.gg/qhbcCH8Am4) üzerindeki duyuru.
---
@@ -662,7 +662,7 @@ Yükün çoğunu onlar taşıyor — günlük bakım, inceleme ve topluluk deste
-Bakımcı kuralları, terfi kriterleri ve çıkış protokolü → [`MAINTAINERS.md`](MAINTAINERS.md) (ayrıca [Deutsch](MAINTAINERS.de.md) · [Français](MAINTAINERS.fr.md) · [简体中文](MAINTAINERS.zh-CN.md) · [日本語](MAINTAINERS.ja-JP.md) · [Português](MAINTAINERS.pt-BR.md)).
+Bakımcı kuralları, terfi kriterleri ve çıkış protokolü → [`MAINTAINERS.md`](../../MAINTAINERS.md) (ayrıca [Deutsch](MAINTAINERS.de.md) · [Français](MAINTAINERS.fr.md) · [简体中文](MAINTAINERS.zh-CN.md) · [日本語](MAINTAINERS.ja-JP.md) · [Português](MAINTAINERS.pt-BR.md)).
## Katkıda bulunanlar
@@ -680,7 +680,7 @@ Katılan herkese teşekkürler — kod, belge, geri bildirim, keskin bir issue,
-Yukarıdaki SVG, [`lowlighter/metrics`](https://github.com/lowlighter/metrics) kullanılarak [`.github/workflows/metrics.yml`](.github/workflows/metrics.yml) tarafından günlük olarak yeniden oluşturulur.
+Yukarıdaki SVG, [`lowlighter/metrics`](https://github.com/lowlighter/metrics) kullanılarak [`.github/workflows/metrics.yml`](../../.github/workflows/metrics.yml) tarafından günlük olarak yeniden oluşturulur.
---
@@ -708,7 +708,7 @@ Bu size otuz dakika kazandırdıysa, bir ★ verin. Yıldızlar kira ödemez —
|---|---|
| [Claude Design][cd] | Bu deponun açık kaynaklı alternatifi olduğu kapalı kaynaklı ürün. |
| [`alchaincyf/huashu-design`](https://github.com/alchaincyf/huashu-design) | Tasarım felsefesi pusulası — junior-tasarımcı iş akışı, marka-varlığı protokolü, anti-AI-slop kontrol listesi, beş boyutlu eleştiri. |
-| [`op7418/guizang-ppt-skill`](https://github.com/op7418/guizang-ppt-skill) | Dergi tarzı web PPT becerisi, [`design-templates/guizang-ppt/`](design-templates/guizang-ppt/) altında birebir paketlenmiştir. Deste modu için varsayılan. |
+| [`op7418/guizang-ppt-skill`](https://github.com/op7418/guizang-ppt-skill) | Dergi tarzı web PPT becerisi, [`design-templates/guizang-ppt/`](../../design-templates/guizang-ppt/) altında birebir paketlenmiştir. Deste modu için varsayılan. |
| [`lewislulu/html-ppt-skill`](https://github.com/lewislulu/html-ppt-skill) | HTML PPT Studio ailesi — 15 deste şablonu, 36 tema, 31 sayfa düzeni, animasyon çalışma zamanı, manyetik-kart sunucu modu. |
| [`OpenCoworkAI/open-codesign`](https://github.com/OpenCoworkAI/open-codesign) | İlk açık kaynaklı Claude Design alternatifi; ödünç aldığımız UX desenleri (akış-artifact döngüsü, yalıtılmış iframe, canlı ajan paneli). |
| [`multica-ai/multica`](https://github.com/multica-ai/multica) | Daemon + adaptör mimarisi — PATH-tarama ajan algılama, tek ayrıcalıklı süreç olarak yerel daemon. |
@@ -717,10 +717,10 @@ Bu size otuz dakika kazandırdıysa, bir ★ verin. Yıldızlar kira ödemez —
| [`heygen-com/hyperframes`](https://github.com/heygen-com/hyperframes) | HTML→MP4 hareket grafikleri çerçevesi, Open Design'da birinci sınıf `hyperframes-html` olarak entegre edilmiştir. |
| [Claude Code skills][skill] | Birebir benimsediğimiz `SKILL.md` kuralı. |
-Ayrıntılı köken → [`docs/references.md`](docs/references.md).
+Ayrıntılı köken → [`docs/references.md`](../../docs/references.md).
[skill]: https://docs.anthropic.com/en/docs/claude-code/skills
## Lisans
-Apache-2.0. Paketlenmiş `design-templates/guizang-ppt/` orijinal [LICENSE](design-templates/guizang-ppt/LICENSE) dosyasını korur (MIT, [@op7418](https://github.com/op7418)). Paketlenmiş `design-templates/html-ppt/` orijinal [LICENSE](design-templates/html-ppt/LICENSE) dosyasını korur (MIT, [@lewislulu](https://github.com/lewislulu)).
+Apache-2.0. Paketlenmiş `design-templates/guizang-ppt/` orijinal [LICENSE](../../design-templates/guizang-ppt/LICENSE) dosyasını korur (MIT, [@op7418](https://github.com/op7418)). Paketlenmiş `design-templates/html-ppt/` orijinal [LICENSE](../../design-templates/html-ppt/LICENSE) dosyasını korur (MIT, [@lewislulu](https://github.com/lewislulu)).
diff --git a/README.uk.md b/docs/i18n/README.uk.md
similarity index 77%
rename from README.uk.md
rename to docs/i18n/README.uk.md
index 969190fcba..0a642e048c 100644
--- a/README.uk.md
+++ b/docs/i18n/README.uk.md
@@ -2,7 +2,7 @@
> 🔥 **Open Design 0.9.0 вже тут: створюйте без налаштувань.** [Офіційний Model Router](https://open-design.ai/amr) вбудований прямо в застосунок — без додаткової конфігурації, без CLI для встановлення, без потреби готувати API-ключ. Просто відкрийте застосунок, увійдіть і одразу починайте проєктувати та створювати. [Завантажити 0.9.0](https://github.com/nexu-io/open-design/releases) · [Долучитися до обговорення](https://github.com/nexu-io/open-design/discussions/3524)
>
-> 🏅 **Програма Open Design Fellow тепер відкрита.** Якщо ви теж вірите, що дизайн має бути відкритим — станьте Open Design Fellow, формуйте продукт разом із основною командою та допомагайте більшій кількості людей брати участь у визначенні майбутнього дизайну. Деталі → [`MAINTAINERS.md`](MAINTAINERS.md) та [Discord](https://discord.gg/qhbcCH8Am4).
+> 🏅 **Програма Open Design Fellow тепер відкрита.** Якщо ви теж вірите, що дизайн має бути відкритим — станьте Open Design Fellow, формуйте продукт разом із основною командою та допомагайте більшій кількості людей брати участь у визначенні майбутнього дизайну. Деталі → [`MAINTAINERS.md`](../../MAINTAINERS.md) та [Discord](https://discord.gg/qhbcCH8Am4).
@@ -17,12 +17,12 @@
-English · Español · Português · Deutsch · Français · 简体中文 · 繁體中文 · 한국어 · 日本語 · العربية · Русский · Українська · Türkçe
+English · Español · Português · Deutsch · Français · 简体中文 · 繁體中文 · 한국어 · 日本語 · العربية · Русский · Українська · Türkçe
---
@@ -135,7 +135,7 @@ Open Design — це те, що ви отримуєте, коли **agent-native
**Не встановлено жодного CLI?** Проксі BYOK на `POST /api/proxy/{anthropic,openai,azure,google,ollama,senseaudio}/stream` дає вам той самий цикл (без породження процесу) — вставте `baseUrl` + `apiKey` + `model`, з підтримкою OpenAI, Anthropic, Azure OpenAI, Google Gemini, Ollama, LM Studio, vLLM або будь-якої OpenAI-сумісної кінцевої точки. Захист від SSRF для кожної цілі блокує внутрішні IP / link-local / CGNAT на межі демона.
-Контракт адаптера та парсери потоку містяться в [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts). Додавання нового CLI — це один запис, див. [`docs/agent-adapters.md`](docs/agent-adapters.md).
+Контракт адаптера та парсери потоку містяться в [`apps/daemon/src/agents.ts`](../../apps/daemon/src/agents.ts). Додавання нового CLI — це один запис, див. [`docs/agent-adapters.md`](../../docs/agent-adapters.md).
---
@@ -150,21 +150,21 @@ Open Design — це те, що ви отримуєте, коли **agent-native
-
+
Вікно входу — виберіть навичку, виберіть дизайн-систему, введіть бриф. Єдина поверхня для прототипів, дашбордів, презентацій, мобільних застосунків, журнальних сторінок.
-
+
Мобільний прототип — піксельно точна оболонка iPhone 15 Pro, багатоекранні потоки. Агент ніколи не перемальовує рамку телефона; спільні рамки пристроїв містяться в assets/frames/.
-
+
Вебпрототип — редакторський дашборд зі смугами прокрутки, KPI та діаграмами. Відрендерено прямо з design-templates/dating-web/.
-
+
Прототип мобільного застосунку — гейміфікований потік із трьох екранів зі стрічками XP та деталями квестів. Передавайте прямо в Cursor / Codex / Claude Code, щоб перетворити на React/Next/Vue.
@@ -177,21 +177,21 @@ Open Design — це те, що ви отримуєте, коли **agent-native
-
+
Живий дашборд — редагована стіна KPI, чия панель налаштувань виводить на поверхню параметри, які варто підкоригувати. Агент видає маніфест, і iframe перерендерюється без перезавантаження.
-
+
Кімната рішень — багатоджерельний брифінговий артефакт для зустрічей із продукту / досліджень / операцій.
-
+
Дашборд у стилі GitHub — метрики репозиторію, подані як живий артефакт.
-
+
Шаблон живого дашборда Flow — KPI-шаблон для конкретної предметної області, брендований через активний DESIGN.md.
@@ -202,11 +202,11 @@ Open Design — це те, що ви отримуєте, коли **agent-native
-
+
Режим презентації (guizang-ppt) — журнальні макети, WebGL-герой, чеклісти P0/P1/P2. Включено дослівно з op7418/guizang-ppt-skill зі збереженням оригінальної ліцензії.
-
+
Презентація у швейцарському інтернаціональному стилі — закріплена на сітці, монохромні акценти. Один із 15 шаблонів презентацій та 36 тем у design-templates/html-ppt-*/.
@@ -226,7 +226,7 @@ Open Design — це те, що ви отримуєте, коли **agent-native
-**93 готових до відтворення промпти** містяться в [`prompt-templates/`](prompt-templates/) — мініатюри попереднього перегляду, повний текст промпта, цільова модель, співвідношення сторін та зазначення джерела. Один клік скидає бриф у композитор.
+**93 готових до відтворення промпти** містяться в [`prompt-templates/`](../../prompt-templates/) — мініатюри попереднього перегляду, повний текст промпта, цільова модель, співвідношення сторін та зазначення джерела. Один клік скидає бриф у композитор.
### 5 · Відео та HyperFrames — моушн-графіка agent-native
@@ -234,20 +234,20 @@ Open Design — це те, що ви отримуєте, коли **agent-native
/open-design.json` (або платформенний еквівалент) плюс готовий до вставлення фрагмент MCP. Cursor отримує deeplink в один клік; Claude Code отримує однорядкову команду `claude mcp add-json`; кожен інший агент отримує JSON у схемі, якої очікує його конфігурація. Повний процес для кожного агента → **Settings → MCP server** у десктопному застосунку або [`docs/agent-adapters.md`](docs/agent-adapters.md).
+**Для агента, що починає з нуля,** інсталятор розміщує `~/.config//open-design.json` (або платформенний еквівалент) плюс готовий до вставлення фрагмент MCP. Cursor отримує deeplink в один клік; Claude Code отримує однорядкову команду `claude mcp add-json`; кожен інший агент отримує JSON у схемі, якої очікує його конфігурація. Повний процес для кожного агента → **Settings → MCP server** у десктопному застосунку або [`docs/agent-adapters.md`](../../docs/agent-adapters.md).
**Модель безпеки.** За замовчуванням лише для читання, демон прив'язується до `127.0.0.1`, а SSRF блокується на межі проксі. Доступ із LAN вимагає явного `OD_BIND_HOST` плюс `OD_ALLOWED_ORIGINS`. Облікові дані конекторів та маршрути попереднього перегляду живих артефактів залишаються лише на петлевому інтерфейсі незалежно від цього.
@@ -372,34 +372,34 @@ od skill list --scenario marketing
## Навички
-**100+ навичок постачаються «з коробки»** — кожна є текою в [`skills/`](skills/), що дотримується конвенції [`SKILL.md`][skill] Claude Code, розширеної frontmatter `od:` (`mode`, `platform`, `scenario`, `preview.type`, `design_system.requires`, `default_for`, `fidelity`, `example_prompt`). Покладіть теку всередину, перезапустіть демон — і вона з'явиться в селекторі.
+**100+ навичок постачаються «з коробки»** — кожна є текою в [`skills/`](../../skills/), що дотримується конвенції [`SKILL.md`][skill] Claude Code, розширеної frontmatter `od:` (`mode`, `platform`, `scenario`, `preview.type`, `design_system.requires`, `default_for`, `fidelity`, `example_prompt`). Покладіть теку всередину, перезапустіть демон — і вона з'явиться в селекторі.
Два **режими** є основою каталогу: `prototype` (односторінкові артефакти web/mobile/desktop) та `deck` (презентації з горизонтальним гортанням). Також режими `image`, `video`, `audio`, `template`, `design-system` та `utility`. Поле **`scenario`** групує їх за аудиторією: `design` · `marketing` · `operation` · `engineering` · `product` · `finance` · `hr` · `sale` · `personal`.
| Навичка | Режим | Сценарій | Що вона створює |
|---|---|---|---|
-| [`web-prototype`](design-templates/web-prototype/) | prototype | design | Типовий лендинг / герой |
-| [`saas-landing`](design-templates/saas-landing/) | prototype | marketing | Герой / функції / ціни / CTA |
-| [`dashboard`](design-templates/dashboard/) | prototype | operation | Адмін / аналітика (з бічною панеллю) |
-| [`mobile-app`](design-templates/mobile-app/) | prototype | design | Застосунок у рамці iPhone 15 Pro / Pixel |
-| [`mobile-onboarding`](design-templates/mobile-onboarding/) | prototype | design | Заставка · ціннісна пропозиція · потік входу |
-| [`social-carousel`](design-templates/social-carousel/) | prototype | marketing | Карусель із 3 карток 1080×1080 |
-| [`email-marketing`](design-templates/email-marketing/) | prototype | marketing | Брендований email із безпечним табличним фолбеком |
-| [`magazine-poster`](design-templates/magazine-poster/) | prototype | marketing | Односторінковий журнальний макет |
-| [`motion-frames`](design-templates/motion-frames/) | prototype | marketing | Зациклений CSS-моушн-герой |
-| [`sprite-animation`](design-templates/sprite-animation/) | prototype | marketing | 8-бітний піксельний анімований пояснювач |
-| [`pm-spec`](design-templates/pm-spec/) | prototype | product | PM-специфікація (з ToC + журналом рішень) |
-| [`team-okrs`](design-templates/team-okrs/) | prototype | product | Табель OKR |
-| [`eng-runbook`](design-templates/eng-runbook/) | prototype | engineering | Runbook інцидентів |
-| [`finance-report`](design-templates/finance-report/) | prototype | finance | Виконавче фінансове резюме |
-| [`hr-onboarding`](design-templates/hr-onboarding/) | prototype | hr | План онбордингу на посаду |
-| [`guizang-ppt`](design-templates/guizang-ppt/) | deck | marketing | Веб-PPT у журнальному стилі (типовий для презентацій) |
-| [`html-ppt-*`](design-templates/) | deck | marketing | 15 шаблонів презентацій × 36 тем (головний шаблон у [`design-templates/html-ppt/`](design-templates/html-ppt/)) |
-| [`hyperframes`](design-templates/hyperframes/) | video | marketing | Моушн-графіка HTML → MP4 (OSS-платформа HeyGen) |
-| [`critique`](design-templates/critique/) | utility | design | П'ятивимірний табель самокритики |
-| [`tweaks`](design-templates/tweaks/) | utility | design | Маніфест панелі налаштувань, виданий ШІ |
+| [`web-prototype`](../../design-templates/web-prototype/) | prototype | design | Типовий лендинг / герой |
+| [`saas-landing`](../../design-templates/saas-landing/) | prototype | marketing | Герой / функції / ціни / CTA |
+| [`dashboard`](../../design-templates/dashboard/) | prototype | operation | Адмін / аналітика (з бічною панеллю) |
+| [`mobile-app`](../../design-templates/mobile-app/) | prototype | design | Застосунок у рамці iPhone 15 Pro / Pixel |
+| [`mobile-onboarding`](../../design-templates/mobile-onboarding/) | prototype | design | Заставка · ціннісна пропозиція · потік входу |
+| [`social-carousel`](../../design-templates/social-carousel/) | prototype | marketing | Карусель із 3 карток 1080×1080 |
+| [`email-marketing`](../../design-templates/email-marketing/) | prototype | marketing | Брендований email із безпечним табличним фолбеком |
+| [`magazine-poster`](../../design-templates/magazine-poster/) | prototype | marketing | Односторінковий журнальний макет |
+| [`motion-frames`](../../design-templates/motion-frames/) | prototype | marketing | Зациклений CSS-моушн-герой |
+| [`sprite-animation`](../../design-templates/sprite-animation/) | prototype | marketing | 8-бітний піксельний анімований пояснювач |
+| [`pm-spec`](../../design-templates/pm-spec/) | prototype | product | PM-специфікація (з ToC + журналом рішень) |
+| [`team-okrs`](../../design-templates/team-okrs/) | prototype | product | Табель OKR |
+| [`eng-runbook`](../../design-templates/eng-runbook/) | prototype | engineering | Runbook інцидентів |
+| [`finance-report`](../../design-templates/finance-report/) | prototype | finance | Виконавче фінансове резюме |
+| [`hr-onboarding`](../../design-templates/hr-onboarding/) | prototype | hr | План онбордингу на посаду |
+| [`guizang-ppt`](../../design-templates/guizang-ppt/) | deck | marketing | Веб-PPT у журнальному стилі (типовий для презентацій) |
+| [`html-ppt-*`](../../design-templates/) | deck | marketing | 15 шаблонів презентацій × 36 тем (головний шаблон у [`design-templates/html-ppt/`](../../design-templates/html-ppt/)) |
+| [`hyperframes`](../../design-templates/hyperframes/) | video | marketing | Моушн-графіка HTML → MP4 (OSS-платформа HeyGen) |
+| [`critique`](../../design-templates/critique/) | utility | design | П'ятивимірний табель самокритики |
+| [`tweaks`](../../design-templates/tweaks/) | utility | design | Маніфест панелі налаштувань, виданий ШІ |
-Повний протокол навичок → [`docs/skills-protocol.md`](docs/skills-protocol.md). Кінцева точка реєстру навичок: `GET /api/skills`.
+Повний протокол навичок → [`docs/skills-protocol.md`](../../docs/skills-protocol.md). Кінцева точка реєстру навичок: `GET /api/skills`.
---
@@ -430,7 +430,7 @@ od skill list --scenario marketing
-Повторно імпортуйте бібліотеку через [`scripts/sync-design-systems.ts`](scripts/sync-design-systems.ts). Додайте власний бренд → покладіть `DESIGN.md` у `design-systems//`. Повний посібник → [`design-systems/README.md`](design-systems/README.md).
+Повторно імпортуйте бібліотеку через [`scripts/sync-design-systems.ts`](../../scripts/sync-design-systems.ts). Додайте власний бренд → покладіть `DESIGN.md` у `design-systems//`. Повний посібник → [`design-systems/README.md`](../../design-systems/README.md).
[acd2]: https://github.com/VoltAgent/awesome-design-md
@@ -438,24 +438,24 @@ od skill list --scenario marketing
## Плагіни
-**261 офіційний плагін** міститься в [`plugins/_official/`](plugins/_official/). Кожен плагін — це **портативна тека agent-skill** — `SKILL.md` (зчитувана будь-яким агентом, що підтримує Agent Skills), плюс опціональний маніфест `open-design.json`, який надає Open Design метадані маркетплейсу, входи, попередні перегляди, конвеєри та декларації можливостей. Перейдіть одразу до категорії:
+**261 офіційний плагін** міститься в [`plugins/_official/`](../../plugins/_official/). Кожен плагін — це **портативна тека agent-skill** — `SKILL.md` (зчитувана будь-яким агентом, що підтримує Agent Skills), плюс опціональний маніфест `open-design.json`, який надає Open Design метадані маркетплейсу, входи, попередні перегляди, конвеєри та декларації можливостей. Перейдіть одразу до категорії:
| Категорія | Кількість | Вміст |
|---|---|---|
-| [`scenarios/`](plugins/_official/scenarios/) | 11 | Повні дизайн-сценарії — [`od-default`](plugins/_official/scenarios/od-default/), [`od-design-refine`](plugins/_official/scenarios/od-design-refine/), [`od-figma-migration`](plugins/_official/scenarios/od-figma-migration/), [`od-code-migration`](plugins/_official/scenarios/od-code-migration/), [`od-react-export`](plugins/_official/scenarios/od-react-export/), [`od-nextjs-export`](plugins/_official/scenarios/od-nextjs-export/), [`od-vue-export`](plugins/_official/scenarios/od-vue-export/), [`od-media-generation`](plugins/_official/scenarios/od-media-generation/), [`od-new-generation`](plugins/_official/scenarios/od-new-generation/), [`od-tune-collab`](plugins/_official/scenarios/od-tune-collab/), [`od-plugin-authoring`](plugins/_official/scenarios/od-plugin-authoring/) |
-| [`image-templates/`](plugins/_official/image-templates/) | 45 | Одношотові промпти зображень — редакторські, кінематографічні, продуктові, портретні |
-| [`video-templates/`](plugins/_official/video-templates/) | 50 | Моушн-шаблони HyperFrames / Seedance / Veo |
-| [`design-systems/`](plugins/_official/design-systems/) | 142 | Брендові `DESIGN.md`, обгорнуті як плагіни |
-| [`atoms/`](plugins/_official/atoms/) | 13 | Багаторазові фрагменти UI (кнопки, герої, KPI-картки) |
-| [`examples/`](plugins/_official/examples/) | 140 | Реміксувані еталонні результати |
+| [`scenarios/`](../../plugins/_official/scenarios/) | 11 | Повні дизайн-сценарії — [`od-default`](../../plugins/_official/scenarios/od-default/), [`od-design-refine`](../../plugins/_official/scenarios/od-design-refine/), [`od-figma-migration`](../../plugins/_official/scenarios/od-figma-migration/), [`od-code-migration`](../../plugins/_official/scenarios/od-code-migration/), [`od-react-export`](../../plugins/_official/scenarios/od-react-export/), [`od-nextjs-export`](../../plugins/_official/scenarios/od-nextjs-export/), [`od-vue-export`](../../plugins/_official/scenarios/od-vue-export/), [`od-media-generation`](../../plugins/_official/scenarios/od-media-generation/), [`od-new-generation`](../../plugins/_official/scenarios/od-new-generation/), [`od-tune-collab`](../../plugins/_official/scenarios/od-tune-collab/), [`od-plugin-authoring`](../../plugins/_official/scenarios/od-plugin-authoring/) |
+| [`image-templates/`](../../plugins/_official/image-templates/) | 45 | Одношотові промпти зображень — редакторські, кінематографічні, продуктові, портретні |
+| [`video-templates/`](../../plugins/_official/video-templates/) | 50 | Моушн-шаблони HyperFrames / Seedance / Veo |
+| [`design-systems/`](../../plugins/_official/design-systems/) | 142 | Брендові `DESIGN.md`, обгорнуті як плагіни |
+| [`atoms/`](../../plugins/_official/atoms/) | 13 | Багаторазові фрагменти UI (кнопки, герої, KPI-картки) |
+| [`examples/`](../../plugins/_official/examples/) | 140 | Реміксувані еталонні результати |
-Також [`plugins/community/`](plugins/community/) для плагінів спільноти та [`plugins/registry/`](plugins/registry/) для процесу публікації.
+Також [`plugins/community/`](../../plugins/community/) для плагінів спільноти та [`plugins/registry/`](../../plugins/registry/) для процесу публікації.
### Що можуть робити плагіни
-- 🤖 **Працюють у будь-якому кодувальному агенті** — [Claude Code](docs/agent-adapters.md), Codex, Cursor, Copilot, [OpenClaw](https://github.com/openclaw/openclaw), [Antigravity](https://antigravity.google), Hermes, Kimi… через той самий протокол навичок, який агент уже знає.
-- 🔁 **Мігрують робочі процеси Figma / Pencil** → вихідний код React, Next.js або Vue. Див. [`od-figma-migration`](plugins/_official/scenarios/od-figma-migration/).
-- 🛠️ **Оновлюють наявну кодову базу до специфікації бренду** — спрямуйте плагін на репозиторій `git` + `DESIGN.md`, отримайте PR. Див. [`od-code-migration`](plugins/_official/scenarios/od-code-migration/).
+- 🤖 **Працюють у будь-якому кодувальному агенті** — [Claude Code](../../docs/agent-adapters.md), Codex, Cursor, Copilot, [OpenClaw](https://github.com/openclaw/openclaw), [Antigravity](https://antigravity.google), Hermes, Kimi… через той самий протокол навичок, який агент уже знає.
+- 🔁 **Мігрують робочі процеси Figma / Pencil** → вихідний код React, Next.js або Vue. Див. [`od-figma-migration`](../../plugins/_official/scenarios/od-figma-migration/).
+- 🛠️ **Оновлюють наявну кодову базу до специфікації бренду** — спрямуйте плагін на репозиторій `git` + `DESIGN.md`, отримайте PR. Див. [`od-code-migration`](../../plugins/_official/scenarios/od-code-migration/).
- 💾 **Зберігають користувацькі робочі процеси** — багаторазові шаблони вашої команди стоять поряд із тими, що постачаються.
### Використання плагінів
@@ -501,16 +501,16 @@ od plugin validate ./my-plugin # check manifest / file
pnpm guard && pnpm --filter @open-design/plugin-runtime typecheck
```
-Повний набір полів та рантайм-контракт → [`plugins/spec/SPEC.md`](plugins/spec/SPEC.md); розробка плагіна з кодувальним агентом → [`plugins/spec/AGENT-DEVELOPMENT.md`](plugins/spec/AGENT-DEVELOPMENT.md); мінімальні шаблони для копіювання → [`plugins/spec/examples/`](plugins/spec/examples/).
+Повний набір полів та рантайм-контракт → [`plugins/spec/SPEC.md`](../../plugins/spec/SPEC.md); розробка плагіна з кодувальним агентом → [`plugins/spec/AGENT-DEVELOPMENT.md`](../../plugins/spec/AGENT-DEVELOPMENT.md); мінімальні шаблони для копіювання → [`plugins/spec/examples/`](../../plugins/spec/examples/).
### Внесок плагіна
-1. Покладіть теку плагіна в [`plugins/community/`](plugins/community/) (сторонні плагіни), або — щоб постачати його в комплекті з Open Design — у відповідний рівень [`plugins/_official/`](plugins/_official/).
+1. Покладіть теку плагіна в [`plugins/community/`](../../plugins/community/) (сторонні плагіни), або — щоб постачати його в комплекті з Open Design — у відповідний рівень [`plugins/_official/`](../../plugins/_official/).
2. Пройдіть валідацію: `od plugin validate`, `pnpm guard`, `pnpm --filter @open-design/plugin-runtime typecheck`.
-3. Заповніть PR за шаблоном у [`plugins/spec/CONTRIBUTING.md`](plugins/spec/CONTRIBUTING.md) (ID, версія, лінія, режим, можливості, приклади тригерів; додайте скриншот / попередній перегляд для візуальних плагінів).
-4. Щоб опублікувати у зовнішньому реєстрі (skills.sh / ClawHub / окремий GitHub) → [`plugins/spec/PUBLISHING-REGISTRIES.md`](plugins/spec/PUBLISHING-REGISTRIES.md).
+3. Заповніть PR за шаблоном у [`plugins/spec/CONTRIBUTING.md`](../../plugins/spec/CONTRIBUTING.md) (ID, версія, лінія, режим, можливості, приклади тригерів; додайте скриншот / попередній перегляд для візуальних плагінів).
+4. Щоб опублікувати у зовнішньому реєстрі (skills.sh / ClawHub / окремий GitHub) → [`plugins/spec/PUBLISHING-REGISTRIES.md`](../../plugins/spec/PUBLISHING-REGISTRIES.md).
-Кінцева точка реєстру плагінів: `GET /api/plugins`. Огляд директорій → [`plugins/README.md`](plugins/README.md) ([简体中文](plugins/README.zh-CN.md)).
+Кінцева точка реєстру плагінів: `GET /api/plugins`. Огляд директорій → [`plugins/README.md`](../../plugins/README.md) ([简体中文](../../plugins/README.zh-CN.md)).
---
@@ -553,7 +553,7 @@ pnpm guard && pnpm --filter @open-design/plugin-runtime typecheck
| Десктоп | Оболонка Electron + рендерер у пісочниці + sidecar IPC (STATUS · EVAL · SCREENSHOT · CONSOLE · CLICK · SHUTDOWN) |
| Життєвий цикл | Одна точка входу: `pnpm tools-dev` (start / stop / run / status / logs / inspect / check) |
-Повна архітектура → [`docs/architecture.md`](docs/architecture.md). Протокол навичок → [`docs/skills-protocol.md`](docs/skills-protocol.md). Контракт адаптера агента → [`docs/agent-adapters.md`](docs/agent-adapters.md).
+Повна архітектура → [`docs/architecture.md`](../../docs/architecture.md). Протокол навичок → [`docs/skills-protocol.md`](../../docs/skills-protocol.md). Контракт адаптера агента → [`docs/agent-adapters.md`](../../docs/agent-adapters.md).
---
@@ -577,7 +577,7 @@ pnpm guard && pnpm --filter @open-design/plugin-runtime typecheck
- [ ] Плагіни міграції Figma / Pencil → React / Next / Vue (alpha)
- [ ] Плагін оновлення наявної кодової бази (спрямувати на репозиторій git + `DESIGN.md`)
-Поетапна доставка → [`docs/roadmap.md`](docs/roadmap.md).
+Поетапна доставка → [`docs/roadmap.md`](../../docs/roadmap.md).
---
@@ -602,12 +602,12 @@ Open Design продовжує рухатися, бо контриб'ютори
| Хочете випустити… | Як | Де |
|---|---|---|
-| Нову **навичку** | Покладіть теку з `SKILL.md` + `assets/` + `references/` | [`skills/`](skills/) · специфікація в [`docs/skills-protocol.md`](docs/skills-protocol.md) |
-| Нову **дизайн-систему** | Покладіть `DESIGN.md` за схемою з 9 розділів | [`design-systems//`](design-systems/) |
-| Новий **плагін** | Покладіть `open-design.json` + маніфест під текою категорії | [`plugins/community/`](plugins/community/) · специфікація в [`plugins/spec/SPEC.md`](plugins/spec/SPEC.md) · посібник із розробки агентом у [`plugins/spec/AGENT-DEVELOPMENT.md`](plugins/spec/AGENT-DEVELOPMENT.md) |
-| Підтримку нового **CLI кодувального агента** | Один запис адаптера + парсер потоку | [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts) |
+| Нову **навичку** | Покладіть теку з `SKILL.md` + `assets/` + `references/` | [`skills/`](../../skills/) · специфікація в [`docs/skills-protocol.md`](../../docs/skills-protocol.md) |
+| Нову **дизайн-систему** | Покладіть `DESIGN.md` за схемою з 9 розділів | [`design-systems//`](../../design-systems/) |
+| Новий **плагін** | Покладіть `open-design.json` + маніфест під текою категорії | [`plugins/community/`](../../plugins/community/) · специфікація в [`plugins/spec/SPEC.md`](../../plugins/spec/SPEC.md) · посібник із розробки агентом у [`plugins/spec/AGENT-DEVELOPMENT.md`](../../plugins/spec/AGENT-DEVELOPMENT.md) |
+| Підтримку нового **CLI кодувального агента** | Один запис адаптера + парсер потоку | [`apps/daemon/src/agents.ts`](../../apps/daemon/src/agents.ts) |
| Виправити баг або відполірувати UI | Перегляньте мітку [`good-first-issue`](https://github.com/nexu-io/open-design/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) | [Issues →](https://github.com/nexu-io/open-design/issues) |
-| Перекласти документацію | Оновіть файли `README..md` | [`TRANSLATIONS.md`](TRANSLATIONS.md) |
+| Перекласти документацію | Оновіть файли `README..md` | [`TRANSLATIONS.md`](../../TRANSLATIONS.md) |
### 🤖 Внесок як агент
@@ -631,11 +631,11 @@ pnpm --filter @open-design/ test
gh pr create --fill
```
-Повний дружній до агентів процес внеску, стиль коду та планка PR → [`CONTRIBUTING.md`](CONTRIBUTING.md) ([Deutsch](CONTRIBUTING.de.md) · [Français](CONTRIBUTING.fr.md) · [简体中文](CONTRIBUTING.zh-CN.md) · [日本語](CONTRIBUTING.ja-JP.md) · [Português](CONTRIBUTING.pt-BR.md)).
+Повний дружній до агентів процес внеску, стиль коду та планка PR → [`CONTRIBUTING.md`](../../CONTRIBUTING.md) ([Deutsch](CONTRIBUTING.de.md) · [Français](CONTRIBUTING.fr.md) · [简体中文](CONTRIBUTING.zh-CN.md) · [日本語](CONTRIBUTING.ja-JP.md) · [Português](CONTRIBUTING.pt-BR.md)).
### 🏅 Програма Open Design Fellow
-Ми набираємо **Open Design Fellows** по всьому світу — Fellows формують продукт разом із основною командою, офіційно представляють Open Design у своєму регіоні та розвивають спільноту локально, маючи фінансовану підтримку ($1,000 / MR), безкоштовні LLM-кредити та прямий трек рев'ю. Деталі → [`MAINTAINERS.md`](MAINTAINERS.md) та анонс у [Discord](https://discord.gg/qhbcCH8Am4).
+Ми набираємо **Open Design Fellows** по всьому світу — Fellows формують продукт разом із основною командою, офіційно представляють Open Design у своєму регіоні та розвивають спільноту локально, маючи фінансовану підтримку ($1,000 / MR), безкоштовні LLM-кредити та прямий трек рев'ю. Деталі → [`MAINTAINERS.md`](../../MAINTAINERS.md) та анонс у [Discord](https://discord.gg/qhbcCH8Am4).
---
@@ -662,7 +662,7 @@ gh pr create --fill
-Правила для maintainer'ів, критерії підвищення та протокол виходу → [`MAINTAINERS.md`](MAINTAINERS.md) (також [Deutsch](MAINTAINERS.de.md) · [Français](MAINTAINERS.fr.md) · [简体中文](MAINTAINERS.zh-CN.md) · [日本語](MAINTAINERS.ja-JP.md) · [Português](MAINTAINERS.pt-BR.md)).
+Правила для maintainer'ів, критерії підвищення та протокол виходу → [`MAINTAINERS.md`](../../MAINTAINERS.md) (також [Deutsch](MAINTAINERS.de.md) · [Français](MAINTAINERS.fr.md) · [简体中文](MAINTAINERS.zh-CN.md) · [日本語](MAINTAINERS.ja-JP.md) · [Português](MAINTAINERS.pt-BR.md)).
## Контриб'ютори
@@ -680,7 +680,7 @@ gh pr create --fill
-SVG вище щодня перегенеровується [`.github/workflows/metrics.yml`](.github/workflows/metrics.yml) за допомогою [`lowlighter/metrics`](https://github.com/lowlighter/metrics).
+SVG вище щодня перегенеровується [`.github/workflows/metrics.yml`](../../.github/workflows/metrics.yml) за допомогою [`lowlighter/metrics`](https://github.com/lowlighter/metrics).
---
@@ -708,7 +708,7 @@ SVG вище щодня перегенеровується [`.github/workflows/m
|---|---|
| [Claude Design][cd] | Закритий продукт, відкритою альтернативою якому є цей репозиторій. |
| [`alchaincyf/huashu-design`](https://github.com/alchaincyf/huashu-design) | Компас дизайн-філософії — робочий процес джуніор-дизайнера, протокол брендових ресурсів, чекліст проти AI-slop, п'ятивимірна критика. |
-| [`op7418/guizang-ppt-skill`](https://github.com/op7418/guizang-ppt-skill) | Навичка веб-PPT у журнальному стилі, включена дослівно під [`design-templates/guizang-ppt/`](design-templates/guizang-ppt/). Типова для режиму презентацій. |
+| [`op7418/guizang-ppt-skill`](https://github.com/op7418/guizang-ppt-skill) | Навичка веб-PPT у журнальному стилі, включена дослівно під [`design-templates/guizang-ppt/`](../../design-templates/guizang-ppt/). Типова для режиму презентацій. |
| [`lewislulu/html-ppt-skill`](https://github.com/lewislulu/html-ppt-skill) | Сімейство HTML PPT Studio — 15 шаблонів презентацій, 36 тем, 31 макет сторінки, рантайм анімації, режим презентера з магнітними картками. |
| [`OpenCoworkAI/open-codesign`](https://github.com/OpenCoworkAI/open-codesign) | Перша відкрита альтернатива Claude Design; UX-патерни, які ми запозичуємо (цикл потокового артефакта, iframe-пісочниця, жива панель агента). |
| [`multica-ai/multica`](https://github.com/multica-ai/multica) | Архітектура демон + адаптер — виявлення агентів скануванням PATH, локальний демон як єдиний привілейований процес. |
@@ -717,10 +717,10 @@ SVG вище щодня перегенеровується [`.github/workflows/m
| [`heygen-com/hyperframes`](https://github.com/heygen-com/hyperframes) | Платформа моушн-графіки HTML→MP4, інтегрована як повноправний `hyperframes-html` в Open Design. |
| [Claude Code skills][skill] | Конвенція `SKILL.md`, яку ми приймаємо дослівно. |
-Детальне походження → [`docs/references.md`](docs/references.md).
+Детальне походження → [`docs/references.md`](../../docs/references.md).
[skill]: https://docs.anthropic.com/en/docs/claude-code/skills
## Ліцензія
-Apache-2.0. Включений `design-templates/guizang-ppt/` зберігає свою оригінальну [LICENSE](design-templates/guizang-ppt/LICENSE) (MIT, [@op7418](https://github.com/op7418)). Включений `design-templates/html-ppt/` зберігає свою оригінальну [LICENSE](design-templates/html-ppt/LICENSE) (MIT, [@lewislulu](https://github.com/lewislulu)).
+Apache-2.0. Включений `design-templates/guizang-ppt/` зберігає свою оригінальну [LICENSE](../../design-templates/guizang-ppt/LICENSE) (MIT, [@op7418](https://github.com/op7418)). Включений `design-templates/html-ppt/` зберігає свою оригінальну [LICENSE](../../design-templates/html-ppt/LICENSE) (MIT, [@lewislulu](https://github.com/lewislulu)).
diff --git a/README.zh-CN.md b/docs/i18n/README.zh-CN.md
similarity index 73%
rename from README.zh-CN.md
rename to docs/i18n/README.zh-CN.md
index bb16d8512e..1d26c6d2d2 100644
--- a/README.zh-CN.md
+++ b/docs/i18n/README.zh-CN.md
@@ -2,7 +2,7 @@
> 🔥 **Open Design 0.9.0 正式发布:创作,从此无需准备。** [官方 Model Router](https://open-design.ai/amr) 直接内置于应用,无需额外配置、不用安装 CLI,也不必准备 API Key。只需打开应用,登录账号,就能立刻开始设计与创作。[下载 0.9.0](https://github.com/nexu-io/open-design/releases) · [参与讨论](https://github.com/nexu-io/open-design/discussions/3524)
>
-> 🏅 **Open Design Fellow 计划正式开放。** 如果你也相信设计应该是开放的,欢迎成为 Open Design Fellow,和核心团队一起打磨产品,让更多人参与并定义设计的未来。详情 → [`MAINTAINERS.md`](MAINTAINERS.md) 与 [Discord](https://discord.gg/qhbcCH8Am4)。
+> 🏅 **Open Design Fellow 计划正式开放。** 如果你也相信设计应该是开放的,欢迎成为 Open Design Fellow,和核心团队一起打磨产品,让更多人参与并定义设计的未来。详情 → [`MAINTAINERS.md`](../../MAINTAINERS.md) 与 [Discord](https://discord.gg/qhbcCH8Am4)。
@@ -17,12 +17,12 @@
-English · Español · Português · Deutsch · Français · 简体中文 · 繁體中文 · 한국어 · 日本語 · العربية · Русский · Українська · Türkçe
+English · Español · Português · Deutsch · Français · 简体中文 · 繁體中文 · 한국어 · 日本語 · العربية · Русский · Українська · Türkçe
---
@@ -135,7 +135,7 @@ Open Design 是这样一种产物:Anthropic 随 Claude Design 推出的 **Agen
**未安装任何 CLI?** `POST /api/proxy/{anthropic,openai,azure,google,ollama,senseaudio}/stream` 的 BYOK 代理提供同样的循环(无需 spawn 进程)——粘贴 `baseUrl` + `apiKey` + `model`,支持 OpenAI、Anthropic、Azure OpenAI、Google Gemini、Ollama、LM Studio、vLLM 或任何 OpenAI 兼容端点。每个目标的 SSRF 防护在守护进程边缘拦截内网 IP / link-local / CGNAT。
-适配器契约和流解析器位于 [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts)。添加新 CLI 只需一条记录——参见 [`docs/agent-adapters.md`](docs/agent-adapters.md)。
+适配器契约和流解析器位于 [`apps/daemon/src/agents.ts`](../../apps/daemon/src/agents.ts)。添加新 CLI 只需一条记录——参见 [`docs/agent-adapters.md`](../../docs/agent-adapters.md)。
---
@@ -150,21 +150,21 @@ Open Design 是这样一种产物:Anthropic 随 Claude Design 推出的 **Agen
-
+
入口视图——选择技能、选择设计系统、输入需求。一个界面承载原型、仪表盘、演示文稿、移动应用、杂志页面。
-
+
移动端原型——像素级精确的 iPhone 15 Pro 外框、多屏流程。Agent 不会重绘手机外框;共享设备边框位于 assets/frames/。
-
+
Web 原型——带滚动条、KPI、图表的编辑类仪表盘。直接从 design-templates/dating-web/ 渲染。
-
+
移动端应用原型——三屏游戏化流程,含 XP 绶带和任务详情。可直接交付给 Cursor / Codex / Claude Code 转为 React/Next/Vue。
@@ -177,21 +177,21 @@ Open Design 是这样一种产物:Anthropic 随 Claude Design 推出的 **Agen
-
+
实时仪表盘——可编辑的 KPI 大屏,调参面板暴露值得调整的参数。Agent 输出一份 manifest,iframe 无需刷新即可重新渲染。
-
+
决策室——面向产品 / 研究 / 运营会议的多源简报工件。
-
+
GitHub 风格仪表盘——以实时工件形式展示仓库指标。
-
+
Flow 实时仪表盘模板——领域专属 KPI 模板,通过当前激活的 DESIGN.md 品牌化。
@@ -202,11 +202,11 @@ Open Design 是这样一种产物:Anthropic 随 Claude Design 推出的 **Agen
-
+
Deck 模式 (guizang-ppt)——杂志版式、WebGL 主视觉、P0/P1/P2 清单。从 op7418/guizang-ppt-skill 完整打包,保留原始许可证。
-
+
瑞士国际风格 Deck——网格锚定、单色强调。15 套 Deck 模板和 36 个主题之一,位于 design-templates/html-ppt-*/。
@@ -226,7 +226,7 @@ Open Design 是这样一种产物:Anthropic 随 Claude Design 推出的 **Agen
-**93 个可复刻提示词**位于 [`prompt-templates/`](prompt-templates/)——预览缩略图、完整提示词、目标模型、宽高比和来源归属。一键将需求放入编辑器。
+**93 个可复刻提示词**位于 [`prompt-templates/`](../../prompt-templates/)——预览缩略图、完整提示词、目标模型、宽高比和来源归属。一键将需求放入编辑器。
### 5 · 视频与 HyperFrames——Agent 原生动态图形
@@ -234,20 +234,20 @@ Open Design 是这样一种产物:Anthropic 随 Claude Design 推出的 **Agen
/open-design.json`(或平台等效路径)以及可复制粘贴的 MCP 代码片段。Cursor 获得一键深层链接;Claude Code 获得 `claude mcp add-json` 一行命令;其他所有 Agent 获得其配置所需 schema 格式的 JSON。完整的逐 Agent 流程 → 桌面应用中的**设置 → MCP 服务器**,或 [`docs/agent-adapters.md`](docs/agent-adapters.md)。
+**对于从零开始的 Agent**,安装器会放置 `~/.config//open-design.json`(或平台等效路径)以及可复制粘贴的 MCP 代码片段。Cursor 获得一键深层链接;Claude Code 获得 `claude mcp add-json` 一行命令;其他所有 Agent 获得其配置所需 schema 格式的 JSON。完整的逐 Agent 流程 → 桌面应用中的**设置 → MCP 服务器**,或 [`docs/agent-adapters.md`](../../docs/agent-adapters.md)。
**安全模型。** 默认只读,守护进程绑定到 `127.0.0.1`,SSRF 在代理边缘拦截。局域网暴露需要 `OD_BIND_HOST` 显式启用加 `OD_ALLOWED_ORIGINS`。连接器凭证和实时工件预览路由无论如何都保持仅本地回环。
@@ -372,34 +372,34 @@ od skill list --scenario marketing
## 技能
-**100+ 个技能开箱即用**——每个技能是 [`skills/`](skills/) 下的一个文件夹,遵循 Claude Code [`SKILL.md`][skill] 约定,并扩展了 `od:` frontmatter(`mode`、`platform`、`scenario`、`preview.type`、`design_system.requires`、`default_for`、`fidelity`、`example_prompt`)。放入文件夹,重启守护进程,它就出现在选择器中。
+**100+ 个技能开箱即用**——每个技能是 [`skills/`](../../skills/) 下的一个文件夹,遵循 Claude Code [`SKILL.md`][skill] 约定,并扩展了 `od:` frontmatter(`mode`、`platform`、`scenario`、`preview.type`、`design_system.requires`、`default_for`、`fidelity`、`example_prompt`)。放入文件夹,重启守护进程,它就出现在选择器中。
两种**模式**构成目录主线:`prototype`(Web/移动端/桌面单页工件)和 `deck`(横向滑动演示文稿)。另有 `image`、`video`、`audio`、`template`、`design-system` 和 `utility` 模式。**`scenario`** 字段按受众分组:`design` · `marketing` · `operation` · `engineering` · `product` · `finance` · `hr` · `sale` · `personal`。
| 技能 | 模式 | 场景 | 产出物 |
|---|---|---|---|
-| [`web-prototype`](design-templates/web-prototype/) | prototype | design | 默认落地页 / 主视觉 |
-| [`saas-landing`](design-templates/saas-landing/) | prototype | marketing | 主视觉 / 功能 / 定价 / CTA |
-| [`dashboard`](design-templates/dashboard/) | prototype | operation | 管理后台 / 数据分析(带侧边栏) |
-| [`mobile-app`](design-templates/mobile-app/) | prototype | design | iPhone 15 Pro / Pixel 外框应用 |
-| [`mobile-onboarding`](design-templates/mobile-onboarding/) | prototype | design | 启动页 · 价值主张 · 登录流程 |
-| [`social-carousel`](design-templates/social-carousel/) | prototype | marketing | 3 卡 1080×1080 轮播图 |
-| [`email-marketing`](design-templates/email-marketing/) | prototype | marketing | 表格降级安全的品牌邮件 |
-| [`magazine-poster`](design-templates/magazine-poster/) | prototype | marketing | 单页杂志版面 |
-| [`motion-frames`](design-templates/motion-frames/) | prototype | marketing | 循环 CSS 动效主视觉 |
-| [`sprite-animation`](design-templates/sprite-animation/) | prototype | marketing | 8-bit 像素动画讲解 |
-| [`pm-spec`](design-templates/pm-spec/) | prototype | product | PM 规范文档(含目录 + 决策日志) |
-| [`team-okrs`](design-templates/team-okrs/) | prototype | product | OKR 记分表 |
-| [`eng-runbook`](design-templates/eng-runbook/) | prototype | engineering | 事故应急手册 |
-| [`finance-report`](design-templates/finance-report/) | prototype | finance | 高管财务摘要 |
-| [`hr-onboarding`](design-templates/hr-onboarding/) | prototype | hr | 角色入职计划 |
-| [`guizang-ppt`](design-templates/guizang-ppt/) | deck | marketing | 杂志风格 Web PPT(deck 默认) |
-| [`html-ppt-*`](design-templates/) | deck | marketing | 15 套 Deck 模板 × 36 个主题(主模板在 [`design-templates/html-ppt/`](design-templates/html-ppt/)) |
-| [`hyperframes`](design-templates/hyperframes/) | video | marketing | HTML → MP4 动态图形(HeyGen OSS 框架) |
-| [`critique`](design-templates/critique/) | utility | design | 五维自评记分表 |
-| [`tweaks`](design-templates/tweaks/) | utility | design | AI 输出的调参面板 manifest |
+| [`web-prototype`](../../design-templates/web-prototype/) | prototype | design | 默认落地页 / 主视觉 |
+| [`saas-landing`](../../design-templates/saas-landing/) | prototype | marketing | 主视觉 / 功能 / 定价 / CTA |
+| [`dashboard`](../../design-templates/dashboard/) | prototype | operation | 管理后台 / 数据分析(带侧边栏) |
+| [`mobile-app`](../../design-templates/mobile-app/) | prototype | design | iPhone 15 Pro / Pixel 外框应用 |
+| [`mobile-onboarding`](../../design-templates/mobile-onboarding/) | prototype | design | 启动页 · 价值主张 · 登录流程 |
+| [`social-carousel`](../../design-templates/social-carousel/) | prototype | marketing | 3 卡 1080×1080 轮播图 |
+| [`email-marketing`](../../design-templates/email-marketing/) | prototype | marketing | 表格降级安全的品牌邮件 |
+| [`magazine-poster`](../../design-templates/magazine-poster/) | prototype | marketing | 单页杂志版面 |
+| [`motion-frames`](../../design-templates/motion-frames/) | prototype | marketing | 循环 CSS 动效主视觉 |
+| [`sprite-animation`](../../design-templates/sprite-animation/) | prototype | marketing | 8-bit 像素动画讲解 |
+| [`pm-spec`](../../design-templates/pm-spec/) | prototype | product | PM 规范文档(含目录 + 决策日志) |
+| [`team-okrs`](../../design-templates/team-okrs/) | prototype | product | OKR 记分表 |
+| [`eng-runbook`](../../design-templates/eng-runbook/) | prototype | engineering | 事故应急手册 |
+| [`finance-report`](../../design-templates/finance-report/) | prototype | finance | 高管财务摘要 |
+| [`hr-onboarding`](../../design-templates/hr-onboarding/) | prototype | hr | 角色入职计划 |
+| [`guizang-ppt`](../../design-templates/guizang-ppt/) | deck | marketing | 杂志风格 Web PPT(deck 默认) |
+| [`html-ppt-*`](../../design-templates/) | deck | marketing | 15 套 Deck 模板 × 36 个主题(主模板在 [`design-templates/html-ppt/`](../../design-templates/html-ppt/)) |
+| [`hyperframes`](../../design-templates/hyperframes/) | video | marketing | HTML → MP4 动态图形(HeyGen OSS 框架) |
+| [`critique`](../../design-templates/critique/) | utility | design | 五维自评记分表 |
+| [`tweaks`](../../design-templates/tweaks/) | utility | design | AI 输出的调参面板 manifest |
-完整技能协议 → [`docs/skills-protocol.md`](docs/skills-protocol.md)。技能注册端点:`GET /api/skills`。
+完整技能协议 → [`docs/skills-protocol.md`](../../docs/skills-protocol.md)。技能注册端点:`GET /api/skills`。
---
@@ -430,7 +430,7 @@ od skill list --scenario marketing
-通过 [`scripts/sync-design-systems.ts`](scripts/sync-design-systems.ts) 重新导入库。添加自有品牌 → 将 `DESIGN.md` 放入 `design-systems//`。完整指南 → [`design-systems/README.md`](design-systems/README.md)。
+通过 [`scripts/sync-design-systems.ts`](../../scripts/sync-design-systems.ts) 重新导入库。添加自有品牌 → 将 `DESIGN.md` 放入 `design-systems//`。完整指南 → [`design-systems/README.md`](../../design-systems/README.md)。
[acd2]: https://github.com/VoltAgent/awesome-design-md
@@ -438,24 +438,24 @@ od skill list --scenario marketing
## 插件
-**261 个官方插件**位于 [`plugins/_official/`](plugins/_official/)。每个插件就是一个**可移植的 agent skill 文件夹**——一个 `SKILL.md`(任何支持 Agent Skills 的 Agent 都能读),外加一个可选的 `open-design.json` manifest(给 Open Design 提供 marketplace 元数据、输入参数、预览、流水线与权限声明)。直接跳转到分类浏览:
+**261 个官方插件**位于 [`plugins/_official/`](../../plugins/_official/)。每个插件就是一个**可移植的 agent skill 文件夹**——一个 `SKILL.md`(任何支持 Agent Skills 的 Agent 都能读),外加一个可选的 `open-design.json` manifest(给 Open Design 提供 marketplace 元数据、输入参数、预览、流水线与权限声明)。直接跳转到分类浏览:
| 分类 | 数量 | 内容 |
|---|---|---|
-| [`scenarios/`](plugins/_official/scenarios/) | 11 | 完整设计方案——[`od-default`](plugins/_official/scenarios/od-default/)、[`od-design-refine`](plugins/_official/scenarios/od-design-refine/)、[`od-figma-migration`](plugins/_official/scenarios/od-figma-migration/)、[`od-code-migration`](plugins/_official/scenarios/od-code-migration/)、[`od-react-export`](plugins/_official/scenarios/od-react-export/)、[`od-nextjs-export`](plugins/_official/scenarios/od-nextjs-export/)、[`od-vue-export`](plugins/_official/scenarios/od-vue-export/)、[`od-media-generation`](plugins/_official/scenarios/od-media-generation/)、[`od-new-generation`](plugins/_official/scenarios/od-new-generation/)、[`od-tune-collab`](plugins/_official/scenarios/od-tune-collab/)、[`od-plugin-authoring`](plugins/_official/scenarios/od-plugin-authoring/) |
-| [`image-templates/`](plugins/_official/image-templates/) | 45 | 一次性图片提示词——编辑、电影、产品、人像 |
-| [`video-templates/`](plugins/_official/video-templates/) | 50 | HyperFrames / Seedance / Veo 动态模板 |
-| [`design-systems/`](plugins/_official/design-systems/) | 142 | 品牌 `DESIGN.md` 包装为插件 |
-| [`atoms/`](plugins/_official/atoms/) | 13 | 可复用 UI 片段(按钮、主视觉、KPI 卡片) |
-| [`examples/`](plugins/_official/examples/) | 140 | 可混搭的参考输出 |
+| [`scenarios/`](../../plugins/_official/scenarios/) | 11 | 完整设计方案——[`od-default`](../../plugins/_official/scenarios/od-default/)、[`od-design-refine`](../../plugins/_official/scenarios/od-design-refine/)、[`od-figma-migration`](../../plugins/_official/scenarios/od-figma-migration/)、[`od-code-migration`](../../plugins/_official/scenarios/od-code-migration/)、[`od-react-export`](../../plugins/_official/scenarios/od-react-export/)、[`od-nextjs-export`](../../plugins/_official/scenarios/od-nextjs-export/)、[`od-vue-export`](../../plugins/_official/scenarios/od-vue-export/)、[`od-media-generation`](../../plugins/_official/scenarios/od-media-generation/)、[`od-new-generation`](../../plugins/_official/scenarios/od-new-generation/)、[`od-tune-collab`](../../plugins/_official/scenarios/od-tune-collab/)、[`od-plugin-authoring`](../../plugins/_official/scenarios/od-plugin-authoring/) |
+| [`image-templates/`](../../plugins/_official/image-templates/) | 45 | 一次性图片提示词——编辑、电影、产品、人像 |
+| [`video-templates/`](../../plugins/_official/video-templates/) | 50 | HyperFrames / Seedance / Veo 动态模板 |
+| [`design-systems/`](../../plugins/_official/design-systems/) | 142 | 品牌 `DESIGN.md` 包装为插件 |
+| [`atoms/`](../../plugins/_official/atoms/) | 13 | 可复用 UI 片段(按钮、主视觉、KPI 卡片) |
+| [`examples/`](../../plugins/_official/examples/) | 140 | 可混搭的参考输出 |
-另有 [`plugins/community/`](plugins/community/) 社区插件和 [`plugins/registry/`](plugins/registry/) 注册发布流程。
+另有 [`plugins/community/`](../../plugins/community/) 社区插件和 [`plugins/registry/`](../../plugins/registry/) 注册发布流程。
### 插件能做什么
-- 🤖 **在任何编码 Agent 中运行**——[Claude Code](docs/agent-adapters.md)、Codex、Cursor、Copilot、[OpenClaw](https://github.com/openclaw/openclaw)、[Antigravity](https://antigravity.google)、Hermes、Kimi……通过 Agent 已知的同一套技能协议。
-- 🔁 **迁移 Figma / Pencil 工作流** → React、Next.js 或 Vue 源码。参见 [`od-figma-migration`](plugins/_official/scenarios/od-figma-migration/)。
-- 🛠️ **将现有代码库刷新到品牌规范**——将插件指向 `git` 仓库 + `DESIGN.md`,获得一个 PR。参见 [`od-code-migration`](plugins/_official/scenarios/od-code-migration/)。
+- 🤖 **在任何编码 Agent 中运行**——[Claude Code](../../docs/agent-adapters.md)、Codex、Cursor、Copilot、[OpenClaw](https://github.com/openclaw/openclaw)、[Antigravity](https://antigravity.google)、Hermes、Kimi……通过 Agent 已知的同一套技能协议。
+- 🔁 **迁移 Figma / Pencil 工作流** → React、Next.js 或 Vue 源码。参见 [`od-figma-migration`](../../plugins/_official/scenarios/od-figma-migration/)。
+- 🛠️ **将现有代码库刷新到品牌规范**——将插件指向 `git` 仓库 + `DESIGN.md`,获得一个 PR。参见 [`od-code-migration`](../../plugins/_official/scenarios/od-code-migration/)。
- 💾 **持久化自定义工作流**——你团队的可复用模板与发布的模板并列。
### 使用插件
@@ -501,16 +501,16 @@ od plugin validate ./my-plugin # 校验 manifest / 文
pnpm guard && pnpm --filter @open-design/plugin-runtime typecheck
```
-字段全集与运行时契约 → [`plugins/spec/SPEC.md`](plugins/spec/SPEC.md);用编码 Agent 自动开发插件 → [`plugins/spec/AGENT-DEVELOPMENT.md`](plugins/spec/AGENT-DEVELOPMENT.md);可复制的最小模板 → [`plugins/spec/examples/`](plugins/spec/examples/)。
+字段全集与运行时契约 → [`plugins/spec/SPEC.md`](../../plugins/spec/SPEC.md);用编码 Agent 自动开发插件 → [`plugins/spec/AGENT-DEVELOPMENT.md`](../../plugins/spec/AGENT-DEVELOPMENT.md);可复制的最小模板 → [`plugins/spec/examples/`](../../plugins/spec/examples/)。
### 贡献插件
-1. 把插件文件夹放到 [`plugins/community/`](plugins/community/)(第三方插件),或——若想随 Open Design 一起内置——放到对应 tier 的 [`plugins/_official/`](plugins/_official/)。
+1. 把插件文件夹放到 [`plugins/community/`](../../plugins/community/)(第三方插件),或——若想随 Open Design 一起内置——放到对应 tier 的 [`plugins/_official/`](../../plugins/_official/)。
2. 跑通校验:`od plugin validate`、`pnpm guard`、`pnpm --filter @open-design/plugin-runtime typecheck`。
-3. 按 [`plugins/spec/CONTRIBUTING.md`](plugins/spec/CONTRIBUTING.md) 的模板填 PR(ID、版本、lane、mode、权限、触发示例,视觉类附截图 / 预览)。
-4. 想发布到外部注册中心(skills.sh / ClawHub / 独立 GitHub)→ [`plugins/spec/PUBLISHING-REGISTRIES.md`](plugins/spec/PUBLISHING-REGISTRIES.md)。
+3. 按 [`plugins/spec/CONTRIBUTING.md`](../../plugins/spec/CONTRIBUTING.md) 的模板填 PR(ID、版本、lane、mode、权限、触发示例,视觉类附截图 / 预览)。
+4. 想发布到外部注册中心(skills.sh / ClawHub / 独立 GitHub)→ [`plugins/spec/PUBLISHING-REGISTRIES.md`](../../plugins/spec/PUBLISHING-REGISTRIES.md)。
-插件注册端点:`GET /api/plugins`。目录概览 → [`plugins/README.md`](plugins/README.md)([简体中文](plugins/README.zh-CN.md))。
+插件注册端点:`GET /api/plugins`。目录概览 → [`plugins/README.md`](../../plugins/README.md)([简体中文](../../plugins/README.zh-CN.md))。
---
@@ -553,7 +553,7 @@ pnpm guard && pnpm --filter @open-design/plugin-runtime typecheck
| 桌面 | Electron 外壳 + 沙箱渲染进程 + sidecar IPC(STATUS · EVAL · SCREENSHOT · CONSOLE · CLICK · SHUTDOWN) |
| 生命周期 | 统一入口:`pnpm tools-dev`(start / stop / run / status / logs / inspect / check) |
-完整架构说明 → [`docs/architecture.md`](docs/architecture.md)。技能协议 → [`docs/skills-protocol.md`](docs/skills-protocol.md)。Agent 适配器契约 → [`docs/agent-adapters.md`](docs/agent-adapters.md)。
+完整架构说明 → [`docs/architecture.md`](../../docs/architecture.md)。技能协议 → [`docs/skills-protocol.md`](../../docs/skills-protocol.md)。Agent 适配器契约 → [`docs/agent-adapters.md`](../../docs/agent-adapters.md)。
---
@@ -576,7 +576,7 @@ pnpm guard && pnpm --filter @open-design/plugin-runtime typecheck
- [ ] Figma / Pencil → React / Next / Vue 迁移插件(alpha)
- [ ] 刷新现有代码库插件(指向 git 仓库 + `DESIGN.md`)
-分阶段交付 → [`docs/roadmap.md`](docs/roadmap.md)。
+分阶段交付 → [`docs/roadmap.md`](../../docs/roadmap.md)。
---
@@ -601,12 +601,12 @@ Open Design 之所以持续前进,是因为贡献者——设计师、工程
| 想要交付…… | 怎么做 | 在哪里 |
|---|---|---|
-| 一个新的**技能** | 放入包含 `SKILL.md` + `assets/` + `references/` 的文件夹 | [`skills/`](skills/) · 规范在 [`docs/skills-protocol.md`](docs/skills-protocol.md) |
-| 一个新的**设计系统** | 使用 9 节 schema 放入 `DESIGN.md` | [`design-systems//`](design-systems/) |
-| 一个新的**插件** | 在分类文件夹下放入 `plugin.json` + manifest | [`plugins/community/`](plugins/community/) · 规范在 [`plugins/spec/SPEC.md`](plugins/spec/SPEC.md) · Agent 开发指南在 [`plugins/spec/AGENT-DEVELOPMENT.md`](plugins/spec/AGENT-DEVELOPMENT.md) |
-| 支持新的**编码 Agent CLI** | 一条适配器记录 + 流解析器 | [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts) |
+| 一个新的**技能** | 放入包含 `SKILL.md` + `assets/` + `references/` 的文件夹 | [`skills/`](../../skills/) · 规范在 [`docs/skills-protocol.md`](../../docs/skills-protocol.md) |
+| 一个新的**设计系统** | 使用 9 节 schema 放入 `DESIGN.md` | [`design-systems//`](../../design-systems/) |
+| 一个新的**插件** | 在分类文件夹下放入 `plugin.json` + manifest | [`plugins/community/`](../../plugins/community/) · 规范在 [`plugins/spec/SPEC.md`](../../plugins/spec/SPEC.md) · Agent 开发指南在 [`plugins/spec/AGENT-DEVELOPMENT.md`](../../plugins/spec/AGENT-DEVELOPMENT.md) |
+| 支持新的**编码 Agent CLI** | 一条适配器记录 + 流解析器 | [`apps/daemon/src/agents.ts`](../../apps/daemon/src/agents.ts) |
| 修复 Bug 或打磨 UI | 浏览 [`good-first-issue`](https://github.com/nexu-io/open-design/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) 标签 | [Issues →](https://github.com/nexu-io/open-design/issues) |
-| 翻译文档 | 更新 `README..md` 文件 | [`TRANSLATIONS.md`](TRANSLATIONS.md) |
+| 翻译文档 | 更新 `README..md` 文件 | [`TRANSLATIONS.md`](../../TRANSLATIONS.md) |
### 🤖 作为 Agent 贡献
@@ -630,11 +630,11 @@ pnpm --filter @open-design/ test
gh pr create --fill
```
-完整的 Agent 友好贡献流程、代码风格和 PR 标准 → [English](CONTRIBUTING.md)([Deutsch](CONTRIBUTING.de.md) · [Français](CONTRIBUTING.fr.md) · [简体中文](CONTRIBUTING.zh-CN.md) · [日本語](CONTRIBUTING.ja-JP.md) · [Português](CONTRIBUTING.pt-BR.md))。
+完整的 Agent 友好贡献流程、代码风格和 PR 标准 → [English](../../CONTRIBUTING.md)([Deutsch](CONTRIBUTING.de.md) · [Français](CONTRIBUTING.fr.md) · [简体中文](CONTRIBUTING.zh-CN.md) · [日本語](CONTRIBUTING.ja-JP.md) · [Português](CONTRIBUTING.pt-BR.md))。
### 🏅 Open Design Fellow 计划
-我们正在全球招募 **Open Design Fellow**——付费维护者,$1,000 / MR 免费 LLM 额度,官方授权在你所在地区推动增长,以及核心团队审查通道。详情 → [`MAINTAINERS.md`](MAINTAINERS.md) 和 [Discord](https://discord.gg/qhbcCH8Am4) 上的公告。
+我们正在全球招募 **Open Design Fellow**——付费维护者,$1,000 / MR 免费 LLM 额度,官方授权在你所在地区推动增长,以及核心团队审查通道。详情 → [`MAINTAINERS.md`](../../MAINTAINERS.md) 和 [Discord](https://discord.gg/qhbcCH8Am4) 上的公告。
---
@@ -661,7 +661,7 @@ gh pr create --fill
-维护者规则、晋升标准和退出协议 → [`MAINTAINERS.md`](MAINTAINERS.md)(另有 [Deutsch](MAINTAINERS.de.md) · [Français](MAINTAINERS.fr.md) · [简体中文](MAINTAINERS.zh-CN.md) · [日本語](MAINTAINERS.ja-JP.md) · [Português](MAINTAINERS.pt-BR.md))。
+维护者规则、晋升标准和退出协议 → [`MAINTAINERS.md`](../../MAINTAINERS.md)(另有 [Deutsch](MAINTAINERS.de.md) · [Français](MAINTAINERS.fr.md) · [简体中文](MAINTAINERS.zh-CN.md) · [日本語](MAINTAINERS.ja-JP.md) · [Português](MAINTAINERS.pt-BR.md))。
## 贡献者
@@ -679,7 +679,7 @@ gh pr create --fill
-上方 SVG 由 [`.github/workflows/metrics.yml`](.github/workflows/metrics.yml) 使用 [`lowlighter/metrics`](https://github.com/lowlighter/metrics) 每日重新生成。
+上方 SVG 由 [`.github/workflows/metrics.yml`](../../.github/workflows/metrics.yml) 使用 [`lowlighter/metrics`](https://github.com/lowlighter/metrics) 每日重新生成。
---
@@ -707,7 +707,7 @@ gh pr create --fill
|---|---|
| [Claude Design][cd] | 本仓库作为开源替代品所对标的闭源产品。 |
| [`alchaincyf/huashu-design`](https://github.com/alchaincyf/huashu-design) | 设计哲学指南针——初级设计师工作流、品牌资产协议、反 AI 泛滥清单、五维评审。 |
-| [`op7418/guizang-ppt-skill`](https://github.com/op7418/guizang-ppt-skill) | 杂志风格 Web PPT 技能,完整打包在 [`design-templates/guizang-ppt/`](design-templates/guizang-ppt/) 下。Deck 模式默认技能。 |
+| [`op7418/guizang-ppt-skill`](https://github.com/op7418/guizang-ppt-skill) | 杂志风格 Web PPT 技能,完整打包在 [`design-templates/guizang-ppt/`](../../design-templates/guizang-ppt/) 下。Deck 模式默认技能。 |
| [`lewislulu/html-ppt-skill`](https://github.com/lewislulu/html-ppt-skill) | HTML PPT Studio 系列——15 套 Deck 模板,36 个主题,31 种页面布局,动画运行时,磁力卡片演示模式。 |
| [`OpenCoworkAI/open-codesign`](https://github.com/OpenCoworkAI/open-codesign) | 首个开源 Claude Design 替代品;我们借鉴的 UX 模式(流式工件循环、沙箱 iframe、实时 Agent 面板)。 |
| [`multica-ai/multica`](https://github.com/multica-ai/multica) | 守护进程 + 适配器架构——PATH 扫描 Agent 检测、本地守护进程作为唯一特权进程。 |
@@ -716,10 +716,10 @@ gh pr create --fill
| [`heygen-com/hyperframes`](https://github.com/heygen-com/hyperframes) | HTML→MP4 动态图形框架,在 Open Design 中作为 `hyperframes-html` 一等公民集成。 |
| [Claude Code skills][skill] | 我们原样采用的 `SKILL.md` 约定。 |
-详细溯源 → [`docs/references.md`](docs/references.md)。
+详细溯源 → [`docs/references.md`](../../docs/references.md)。
[skill]: https://docs.anthropic.com/en/docs/claude-code/skills
## 许可证
-Apache-2.0。打包的 `design-templates/guizang-ppt/` 保留其原始 [LICENSE](design-templates/guizang-ppt/LICENSE)(MIT,[@op7418](https://github.com/op7418))。打包的 `design-templates/html-ppt/` 保留其原始 [LICENSE](design-templates/html-ppt/LICENSE)(MIT,[@lewislulu](https://github.com/lewislulu))。
+Apache-2.0。打包的 `design-templates/guizang-ppt/` 保留其原始 [LICENSE](../../design-templates/guizang-ppt/LICENSE)(MIT,[@op7418](https://github.com/op7418))。打包的 `design-templates/html-ppt/` 保留其原始 [LICENSE](../../design-templates/html-ppt/LICENSE)(MIT,[@lewislulu](https://github.com/lewislulu))。
diff --git a/README.zh-TW.md b/docs/i18n/README.zh-TW.md
similarity index 74%
rename from README.zh-TW.md
rename to docs/i18n/README.zh-TW.md
index cc93957ab3..4f2c6bf4dd 100644
--- a/README.zh-TW.md
+++ b/docs/i18n/README.zh-TW.md
@@ -2,7 +2,7 @@
> 🔥 **Open Design 0.9.0 登場:免設定即可開始創作。** [官方 Model Router](https://open-design.ai/amr) 已直接內建於應用程式中——無須額外設定、無須安裝 CLI、無須準備 API key。只要打開應用程式、登入,就能立刻開始設計與創作。[下載 0.9.0](https://github.com/nexu-io/open-design/releases) · [加入討論](https://github.com/nexu-io/open-design/discussions/3524)
>
-> 🏅 **Open Design Fellow 計畫現已開放。** 如果你也相信設計應該是開放的——歡迎成為 Open Design Fellow,與核心團隊一同形塑這項產品,並協助更多人參與定義設計的未來。詳情請見 → [`MAINTAINERS.md`](MAINTAINERS.md) 與 [Discord](https://discord.gg/qhbcCH8Am4)。
+> 🏅 **Open Design Fellow 計畫現已開放。** 如果你也相信設計應該是開放的——歡迎成為 Open Design Fellow,與核心團隊一同形塑這項產品,並協助更多人參與定義設計的未來。詳情請見 → [`MAINTAINERS.md`](../../MAINTAINERS.md) 與 [Discord](https://discord.gg/qhbcCH8Am4)。
@@ -17,12 +17,12 @@
-English · Español · Português · Deutsch · Français · 简体中文 · 繁體中文 · 한국어 · 日本語 · العربية · Русский · Українська · Türkçe
+English · Español · Português · Deutsch · Français · 简体中文 · 繁體中文 · 한국어 · 日本語 · العربية · Русский · Українська · Türkçe
---
@@ -135,7 +135,7 @@ Open Design 是這樣誕生的:當 Anthropic 隨 Claude Design 推出的那套
**沒有安裝任何 CLI?** 位於 `POST /api/proxy/{anthropic,openai,azure,google,ollama,senseaudio}/stream` 的 BYOK 代理可提供相同的迴圈(不需衍生程序)——貼上 `baseUrl` + `apiKey` + `model` 即可,支援 OpenAI、Anthropic、Azure OpenAI、Google Gemini、Ollama、LM Studio、vLLM,或任何相容 OpenAI 的端點。逐目標的 SSRF 防護會在 daemon 邊界阻擋內部 IP/link-local/CGNAT。
-adapter 契約與 stream parser 位於 [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts)。新增一個 CLI 只需一筆設定——參見 [`docs/agent-adapters.md`](docs/agent-adapters.md)。
+adapter 契約與 stream parser 位於 [`apps/daemon/src/agents.ts`](../../apps/daemon/src/agents.ts)。新增一個 CLI 只需一筆設定——參見 [`docs/agent-adapters.md`](../../docs/agent-adapters.md)。
---
@@ -150,21 +150,21 @@ adapter 契約與 stream parser 位於 [`apps/daemon/src/agents.ts`](apps/daemon
-
+
入口視圖——選一個 skill、選一套設計系統、輸入需求。原型、儀表板、簡報、行動應用程式、雜誌頁面,共用同一個介面。
-
+
行動原型——像素精準的 iPhone 15 Pro 外框,多畫面流程。agent 永遠不會重畫手機外框;共用的裝置外框存放於 assets/frames/。
-
+
網頁原型——一個帶有捲軸、KPI 與圖表的編輯型儀表板。直接從 design-templates/dating-web/ 渲染而成。
-
+
行動應用程式原型——一段三畫面的遊戲化流程,帶有 XP 緞帶與任務細節。可直接交給 Cursor / Codex / Claude Code 轉成 React/Next/Vue。
@@ -177,21 +177,21 @@ adapter 契約與 stream parser 位於 [`apps/daemon/src/agents.ts`](apps/daemon
-
+
即時儀表板——一面可編輯的 KPI 牆,其 tweaks 面板會浮現值得微調的參數。agent 發出一份 manifest,iframe 便會在不重新載入的情況下重新渲染。
-
+
決策室——供產品/研究/營運會議使用的多來源簡報 artifact。
-
+
GitHub 風格儀表板——以即時 artifact 呈現的儲存庫指標。
-
+
Flow 即時儀表板範本——一個特定領域的 KPI 範本,透過目前啟用的 DESIGN.md 套上品牌。
@@ -202,11 +202,11 @@ adapter 契約與 stream parser 位於 [`apps/daemon/src/agents.ts`](apps/daemon
-
+
簡報模式(guizang-ppt)——雜誌型版面、WebGL 主視覺、P0/P1/P2 檢查清單。原封不動地內建自 op7418/guizang-ppt-skill,並保留其原始授權。
-
+
瑞士國際風格簡報——以網格為基礎、單色點綴。是 design-templates/html-ppt-*/ 之下 15 套簡報範本 與 36 種主題 的其中之一。
@@ -226,7 +226,7 @@ adapter 契約與 stream parser 位於 [`apps/daemon/src/agents.ts`](apps/daemon
-**93 組可即刻複製的 prompt** 收錄於 [`prompt-templates/`](prompt-templates/)——含預覽縮圖、完整 prompt 內文、目標模型、長寬比與來源出處。點一下即可把需求放進撰寫框。
+**93 組可即刻複製的 prompt** 收錄於 [`prompt-templates/`](../../prompt-templates/)——含預覽縮圖、完整 prompt 內文、目標模型、長寬比與來源出處。點一下即可把需求放進撰寫框。
### 5 · 影片與 HyperFrames——agent 原生的動態圖像
@@ -234,20 +234,20 @@ adapter 契約與 stream parser 位於 [`apps/daemon/src/agents.ts`](apps/daemon
/open-design.json`(或對應平台的等價檔案),外加一段可複製貼上的 MCP 片段。Cursor 會得到一鍵 deeplink;Claude Code 會得到一行 `claude mcp add-json`;其餘每一個 agent 都會得到符合其設定所需 schema 的 JSON。完整的各 agent 流程 → 桌面應用程式中的 **Settings → MCP server**,或 [`docs/agent-adapters.md`](docs/agent-adapters.md)。
+**對於從零開始的 agent,** 安裝程式會放置 `~/.config//open-design.json`(或對應平台的等價檔案),外加一段可複製貼上的 MCP 片段。Cursor 會得到一鍵 deeplink;Claude Code 會得到一行 `claude mcp add-json`;其餘每一個 agent 都會得到符合其設定所需 schema 的 JSON。完整的各 agent 流程 → 桌面應用程式中的 **Settings → MCP server**,或 [`docs/agent-adapters.md`](../../docs/agent-adapters.md)。
**安全模型。** 預設唯讀,daemon 綁定於 `127.0.0.1`,SSRF 在代理邊界被阻擋。要在區域網路曝露,需明確設定 `OD_BIND_HOST` 加上 `OD_ALLOWED_ORIGINS`。連接器憑證與即時 artifact 預覽路由無論如何都僅限 loopback。
@@ -372,34 +372,34 @@ od skill list --scenario marketing
## Skills
-**100+ 個 skills 開箱即附**——每一個都是 [`skills/`](skills/) 之下的一個資料夾,遵循 Claude Code 的 [`SKILL.md`][skill] 慣例,並以 `od:` frontmatter(`mode`、`platform`、`scenario`、`preview.type`、`design_system.requires`、`default_for`、`fidelity`、`example_prompt`)擴充。放進一個資料夾、重啟 daemon,它就會出現在選擇器中。
+**100+ 個 skills 開箱即附**——每一個都是 [`skills/`](../../skills/) 之下的一個資料夾,遵循 Claude Code 的 [`SKILL.md`][skill] 慣例,並以 `od:` frontmatter(`mode`、`platform`、`scenario`、`preview.type`、`design_system.requires`、`default_for`、`fidelity`、`example_prompt`)擴充。放進一個資料夾、重啟 daemon,它就會出現在選擇器中。
兩種 **mode** 構成型錄的骨幹:`prototype`(網頁/行動/桌面單頁 artifact)與 `deck`(橫向滑動的簡報)。另有 `image`、`video`、`audio`、`template`、`design-system` 與 `utility` 等 mode。**`scenario`** 欄位則依受眾分組:`design` · `marketing` · `operation` · `engineering` · `product` · `finance` · `hr` · `sale` · `personal`。
| Skill | Mode | Scenario | 產出什麼 |
|---|---|---|---|
-| [`web-prototype`](design-templates/web-prototype/) | prototype | design | 預設的著陸頁/主視覺 |
-| [`saas-landing`](design-templates/saas-landing/) | prototype | marketing | 主視覺/功能/定價/CTA |
-| [`dashboard`](design-templates/dashboard/) | prototype | operation | 管理後台/分析(含側欄) |
-| [`mobile-app`](design-templates/mobile-app/) | prototype | design | iPhone 15 Pro / Pixel 外框的應用程式 |
-| [`mobile-onboarding`](design-templates/mobile-onboarding/) | prototype | design | 啟動頁 · 價值主張 · 登入流程 |
-| [`social-carousel`](design-templates/social-carousel/) | prototype | marketing | 3 卡 1080×1080 輪播 |
-| [`email-marketing`](design-templates/email-marketing/) | prototype | marketing | 以 table 後援為安全機制的品牌郵件 |
-| [`magazine-poster`](design-templates/magazine-poster/) | prototype | marketing | 單頁雜誌版面 |
-| [`motion-frames`](design-templates/motion-frames/) | prototype | marketing | 循環 CSS 動態主視覺 |
-| [`sprite-animation`](design-templates/sprite-animation/) | prototype | marketing | 8-bit 像素動畫解說 |
-| [`pm-spec`](design-templates/pm-spec/) | prototype | product | PM 規格文件(含 TOC + 決策紀錄) |
-| [`team-okrs`](design-templates/team-okrs/) | prototype | product | OKR 計分卡 |
-| [`eng-runbook`](design-templates/eng-runbook/) | prototype | engineering | 事件處理 runbook |
-| [`finance-report`](design-templates/finance-report/) | prototype | finance | 高階主管財務摘要 |
-| [`hr-onboarding`](design-templates/hr-onboarding/) | prototype | hr | 職務到職計畫 |
-| [`guizang-ppt`](design-templates/guizang-ppt/) | deck | marketing | 雜誌風格網頁 PPT(簡報預設) |
-| [`html-ppt-*`](design-templates/) | deck | marketing | 15 套簡報範本 × 36 種主題(主範本位於 [`design-templates/html-ppt/`](design-templates/html-ppt/)) |
-| [`hyperframes`](design-templates/hyperframes/) | video | marketing | HTML → MP4 動態圖像(HeyGen OSS 框架) |
-| [`critique`](design-templates/critique/) | utility | design | 五維自我評析計分表 |
-| [`tweaks`](design-templates/tweaks/) | utility | design | AI 發出的 tweaks 面板 manifest |
+| [`web-prototype`](../../design-templates/web-prototype/) | prototype | design | 預設的著陸頁/主視覺 |
+| [`saas-landing`](../../design-templates/saas-landing/) | prototype | marketing | 主視覺/功能/定價/CTA |
+| [`dashboard`](../../design-templates/dashboard/) | prototype | operation | 管理後台/分析(含側欄) |
+| [`mobile-app`](../../design-templates/mobile-app/) | prototype | design | iPhone 15 Pro / Pixel 外框的應用程式 |
+| [`mobile-onboarding`](../../design-templates/mobile-onboarding/) | prototype | design | 啟動頁 · 價值主張 · 登入流程 |
+| [`social-carousel`](../../design-templates/social-carousel/) | prototype | marketing | 3 卡 1080×1080 輪播 |
+| [`email-marketing`](../../design-templates/email-marketing/) | prototype | marketing | 以 table 後援為安全機制的品牌郵件 |
+| [`magazine-poster`](../../design-templates/magazine-poster/) | prototype | marketing | 單頁雜誌版面 |
+| [`motion-frames`](../../design-templates/motion-frames/) | prototype | marketing | 循環 CSS 動態主視覺 |
+| [`sprite-animation`](../../design-templates/sprite-animation/) | prototype | marketing | 8-bit 像素動畫解說 |
+| [`pm-spec`](../../design-templates/pm-spec/) | prototype | product | PM 規格文件(含 TOC + 決策紀錄) |
+| [`team-okrs`](../../design-templates/team-okrs/) | prototype | product | OKR 計分卡 |
+| [`eng-runbook`](../../design-templates/eng-runbook/) | prototype | engineering | 事件處理 runbook |
+| [`finance-report`](../../design-templates/finance-report/) | prototype | finance | 高階主管財務摘要 |
+| [`hr-onboarding`](../../design-templates/hr-onboarding/) | prototype | hr | 職務到職計畫 |
+| [`guizang-ppt`](../../design-templates/guizang-ppt/) | deck | marketing | 雜誌風格網頁 PPT(簡報預設) |
+| [`html-ppt-*`](../../design-templates/) | deck | marketing | 15 套簡報範本 × 36 種主題(主範本位於 [`design-templates/html-ppt/`](../../design-templates/html-ppt/)) |
+| [`hyperframes`](../../design-templates/hyperframes/) | video | marketing | HTML → MP4 動態圖像(HeyGen OSS 框架) |
+| [`critique`](../../design-templates/critique/) | utility | design | 五維自我評析計分表 |
+| [`tweaks`](../../design-templates/tweaks/) | utility | design | AI 發出的 tweaks 面板 manifest |
-完整 skill 協定 → [`docs/skills-protocol.md`](docs/skills-protocol.md)。Skill registry 端點:`GET /api/skills`。
+完整 skill 協定 → [`docs/skills-protocol.md`](../../docs/skills-protocol.md)。Skill registry 端點:`GET /api/skills`。
---
@@ -430,7 +430,7 @@ od skill list --scenario marketing
-透過 [`scripts/sync-design-systems.ts`](scripts/sync-design-systems.ts) 重新匯入這套程式庫。新增你自己的品牌 → 把一份 `DESIGN.md` 放進 `design-systems//`。完整指南 → [`design-systems/README.md`](design-systems/README.md)。
+透過 [`scripts/sync-design-systems.ts`](../../scripts/sync-design-systems.ts) 重新匯入這套程式庫。新增你自己的品牌 → 把一份 `DESIGN.md` 放進 `design-systems//`。完整指南 → [`design-systems/README.md`](../../design-systems/README.md)。
[acd2]: https://github.com/VoltAgent/awesome-design-md
@@ -438,24 +438,24 @@ od skill list --scenario marketing
## 外掛
-**261 個官方外掛** 位於 [`plugins/_official/`](plugins/_official/)。每個外掛都是一個 **可攜的 agent-skill 資料夾**——含一份 `SKILL.md`(任何支援 Agent Skills 的 agent 都能讀取),外加一份選用的 `open-design.json` manifest,為 Open Design 提供市集中繼資料、輸入、預覽、pipeline 與能力宣告。直接跳到某個分類:
+**261 個官方外掛** 位於 [`plugins/_official/`](../../plugins/_official/)。每個外掛都是一個 **可攜的 agent-skill 資料夾**——含一份 `SKILL.md`(任何支援 Agent Skills 的 agent 都能讀取),外加一份選用的 `open-design.json` manifest,為 Open Design 提供市集中繼資料、輸入、預覽、pipeline 與能力宣告。直接跳到某個分類:
| 分類 | 數量 | 內容 |
|---|---|---|
-| [`scenarios/`](plugins/_official/scenarios/) | 11 | 完整的設計情境——[`od-default`](plugins/_official/scenarios/od-default/)、[`od-design-refine`](plugins/_official/scenarios/od-design-refine/)、[`od-figma-migration`](plugins/_official/scenarios/od-figma-migration/)、[`od-code-migration`](plugins/_official/scenarios/od-code-migration/)、[`od-react-export`](plugins/_official/scenarios/od-react-export/)、[`od-nextjs-export`](plugins/_official/scenarios/od-nextjs-export/)、[`od-vue-export`](plugins/_official/scenarios/od-vue-export/)、[`od-media-generation`](plugins/_official/scenarios/od-media-generation/)、[`od-new-generation`](plugins/_official/scenarios/od-new-generation/)、[`od-tune-collab`](plugins/_official/scenarios/od-tune-collab/)、[`od-plugin-authoring`](plugins/_official/scenarios/od-plugin-authoring/) |
-| [`image-templates/`](plugins/_official/image-templates/) | 45 | 一次性圖片 prompt——編輯、電影感、產品、肖像 |
-| [`video-templates/`](plugins/_official/video-templates/) | 50 | HyperFrames / Seedance / Veo 動態範本 |
-| [`design-systems/`](plugins/_official/design-systems/) | 142 | 包裝成外掛的品牌 `DESIGN.md` |
-| [`atoms/`](plugins/_official/atoms/) | 13 | 可重複使用的 UI 片段(按鈕、主視覺、KPI 卡) |
-| [`examples/`](plugins/_official/examples/) | 140 | 可再混搭的參考產出 |
+| [`scenarios/`](../../plugins/_official/scenarios/) | 11 | 完整的設計情境——[`od-default`](../../plugins/_official/scenarios/od-default/)、[`od-design-refine`](../../plugins/_official/scenarios/od-design-refine/)、[`od-figma-migration`](../../plugins/_official/scenarios/od-figma-migration/)、[`od-code-migration`](../../plugins/_official/scenarios/od-code-migration/)、[`od-react-export`](../../plugins/_official/scenarios/od-react-export/)、[`od-nextjs-export`](../../plugins/_official/scenarios/od-nextjs-export/)、[`od-vue-export`](../../plugins/_official/scenarios/od-vue-export/)、[`od-media-generation`](../../plugins/_official/scenarios/od-media-generation/)、[`od-new-generation`](../../plugins/_official/scenarios/od-new-generation/)、[`od-tune-collab`](../../plugins/_official/scenarios/od-tune-collab/)、[`od-plugin-authoring`](../../plugins/_official/scenarios/od-plugin-authoring/) |
+| [`image-templates/`](../../plugins/_official/image-templates/) | 45 | 一次性圖片 prompt——編輯、電影感、產品、肖像 |
+| [`video-templates/`](../../plugins/_official/video-templates/) | 50 | HyperFrames / Seedance / Veo 動態範本 |
+| [`design-systems/`](../../plugins/_official/design-systems/) | 142 | 包裝成外掛的品牌 `DESIGN.md` |
+| [`atoms/`](../../plugins/_official/atoms/) | 13 | 可重複使用的 UI 片段(按鈕、主視覺、KPI 卡) |
+| [`examples/`](../../plugins/_official/examples/) | 140 | 可再混搭的參考產出 |
-另有 [`plugins/community/`](plugins/community/) 收錄社群外掛,以及 [`plugins/registry/`](plugins/registry/) 用於發布流程。
+另有 [`plugins/community/`](../../plugins/community/) 收錄社群外掛,以及 [`plugins/registry/`](../../plugins/registry/) 用於發布流程。
### 外掛能做什麼
-- 🤖 **在任何編碼 agent 中執行**——[Claude Code](docs/agent-adapters.md)、Codex、Cursor、Copilot、[OpenClaw](https://github.com/openclaw/openclaw)、[Antigravity](https://antigravity.google)、Hermes、Kimi…透過 agent 早已熟悉的同一套 skill 協定。
-- 🔁 **遷移 Figma / Pencil 工作流程** → React、Next.js 或 Vue 原始碼。參見 [`od-figma-migration`](plugins/_official/scenarios/od-figma-migration/)。
-- 🛠️ **把既有的程式碼庫翻新至品牌規格**——把一個外掛指向某個 `git` 儲存庫 + `DESIGN.md`,就能得到一個 PR。參見 [`od-code-migration`](plugins/_official/scenarios/od-code-migration/)。
+- 🤖 **在任何編碼 agent 中執行**——[Claude Code](../../docs/agent-adapters.md)、Codex、Cursor、Copilot、[OpenClaw](https://github.com/openclaw/openclaw)、[Antigravity](https://antigravity.google)、Hermes、Kimi…透過 agent 早已熟悉的同一套 skill 協定。
+- 🔁 **遷移 Figma / Pencil 工作流程** → React、Next.js 或 Vue 原始碼。參見 [`od-figma-migration`](../../plugins/_official/scenarios/od-figma-migration/)。
+- 🛠️ **把既有的程式碼庫翻新至品牌規格**——把一個外掛指向某個 `git` 儲存庫 + `DESIGN.md`,就能得到一個 PR。參見 [`od-code-migration`](../../plugins/_official/scenarios/od-code-migration/)。
- 💾 **持久保存自訂工作流程**——你團隊可重複使用的範本,與隨附範本並列放置。
### 使用外掛
@@ -501,16 +501,16 @@ od plugin validate ./my-plugin # check manifest / file
pnpm guard && pnpm --filter @open-design/plugin-runtime typecheck
```
-完整欄位集與執行期契約 → [`plugins/spec/SPEC.md`](plugins/spec/SPEC.md);用編碼 agent 開發外掛 → [`plugins/spec/AGENT-DEVELOPMENT.md`](plugins/spec/AGENT-DEVELOPMENT.md);可複製貼上的最小範本 → [`plugins/spec/examples/`](plugins/spec/examples/)。
+完整欄位集與執行期契約 → [`plugins/spec/SPEC.md`](../../plugins/spec/SPEC.md);用編碼 agent 開發外掛 → [`plugins/spec/AGENT-DEVELOPMENT.md`](../../plugins/spec/AGENT-DEVELOPMENT.md);可複製貼上的最小範本 → [`plugins/spec/examples/`](../../plugins/spec/examples/)。
### 貢獻一個外掛
-1. 把外掛資料夾放進 [`plugins/community/`](plugins/community/)(第三方外掛),或——若要讓它隨 Open Design 一同附帶——放進 [`plugins/_official/`](plugins/_official/) 中對應的層級。
+1. 把外掛資料夾放進 [`plugins/community/`](../../plugins/community/)(第三方外掛),或——若要讓它隨 Open Design 一同附帶——放進 [`plugins/_official/`](../../plugins/_official/) 中對應的層級。
2. 通過驗證:`od plugin validate`、`pnpm guard`、`pnpm --filter @open-design/plugin-runtime typecheck`。
-3. 使用 [`plugins/spec/CONTRIBUTING.md`](plugins/spec/CONTRIBUTING.md) 中的範本填寫 PR(ID、版本、通道、mode、能力、觸發範例;視覺型外掛請附上截圖/預覽)。
-4. 若要發布到外部 registry(skills.sh / ClawHub / 獨立 GitHub)→ [`plugins/spec/PUBLISHING-REGISTRIES.md`](plugins/spec/PUBLISHING-REGISTRIES.md)。
+3. 使用 [`plugins/spec/CONTRIBUTING.md`](../../plugins/spec/CONTRIBUTING.md) 中的範本填寫 PR(ID、版本、通道、mode、能力、觸發範例;視覺型外掛請附上截圖/預覽)。
+4. 若要發布到外部 registry(skills.sh / ClawHub / 獨立 GitHub)→ [`plugins/spec/PUBLISHING-REGISTRIES.md`](../../plugins/spec/PUBLISHING-REGISTRIES.md)。
-外掛 registry 端點:`GET /api/plugins`。目錄總覽 → [`plugins/README.md`](plugins/README.md)([简体中文](plugins/README.zh-CN.md))。
+外掛 registry 端點:`GET /api/plugins`。目錄總覽 → [`plugins/README.md`](../../plugins/README.md)([简体中文](../../plugins/README.zh-CN.md))。
---
@@ -553,7 +553,7 @@ pnpm guard && pnpm --filter @open-design/plugin-runtime typecheck
| 桌面 | Electron shell + 沙箱化 renderer + sidecar IPC(STATUS · EVAL · SCREENSHOT · CONSOLE · CLICK · SHUTDOWN) |
| 生命週期 | 單一進入點:`pnpm tools-dev`(start / stop / run / status / logs / inspect / check) |
-完整架構 → [`docs/architecture.md`](docs/architecture.md)。Skill 協定 → [`docs/skills-protocol.md`](docs/skills-protocol.md)。Agent adapter 契約 → [`docs/agent-adapters.md`](docs/agent-adapters.md)。
+完整架構 → [`docs/architecture.md`](../../docs/architecture.md)。Skill 協定 → [`docs/skills-protocol.md`](../../docs/skills-protocol.md)。Agent adapter 契約 → [`docs/agent-adapters.md`](../../docs/agent-adapters.md)。
---
@@ -577,7 +577,7 @@ pnpm guard && pnpm --filter @open-design/plugin-runtime typecheck
- [ ] Figma / Pencil → React / Next / Vue 遷移外掛(alpha)
- [ ] 翻新既有程式碼庫的外掛(指向一個 git 儲存庫 + `DESIGN.md`)
-分階段交付 → [`docs/roadmap.md`](docs/roadmap.md)。
+分階段交付 → [`docs/roadmap.md`](../../docs/roadmap.md)。
---
@@ -602,12 +602,12 @@ Open Design 之所以能持續前進,是因為貢獻者——設計師、工
| 想交付… | 怎麼做 | 在哪裡 |
|---|---|---|
-| 一個新的 **skill** | 放進一個含 `SKILL.md` + `assets/` + `references/` 的資料夾 | [`skills/`](skills/) · 規格見 [`docs/skills-protocol.md`](docs/skills-protocol.md) |
-| 一套新的 **設計系統** | 放進一份採 9 段式 schema 的 `DESIGN.md` | [`design-systems//`](design-systems/) |
-| 一個新的 **外掛** | 在某個分類資料夾下放進 `open-design.json` + manifest | [`plugins/community/`](plugins/community/) · 規格見 [`plugins/spec/SPEC.md`](plugins/spec/SPEC.md) · agent 開發指南見 [`plugins/spec/AGENT-DEVELOPMENT.md`](plugins/spec/AGENT-DEVELOPMENT.md) |
-| 支援一個新的 **編碼 agent CLI** | 一筆 adapter 設定 + stream parser | [`apps/daemon/src/agents.ts`](apps/daemon/src/agents.ts) |
+| 一個新的 **skill** | 放進一個含 `SKILL.md` + `assets/` + `references/` 的資料夾 | [`skills/`](../../skills/) · 規格見 [`docs/skills-protocol.md`](../../docs/skills-protocol.md) |
+| 一套新的 **設計系統** | 放進一份採 9 段式 schema 的 `DESIGN.md` | [`design-systems//`](../../design-systems/) |
+| 一個新的 **外掛** | 在某個分類資料夾下放進 `open-design.json` + manifest | [`plugins/community/`](../../plugins/community/) · 規格見 [`plugins/spec/SPEC.md`](../../plugins/spec/SPEC.md) · agent 開發指南見 [`plugins/spec/AGENT-DEVELOPMENT.md`](../../plugins/spec/AGENT-DEVELOPMENT.md) |
+| 支援一個新的 **編碼 agent CLI** | 一筆 adapter 設定 + stream parser | [`apps/daemon/src/agents.ts`](../../apps/daemon/src/agents.ts) |
| 修錯誤或打磨 UI | 瀏覽 [`good-first-issue`](https://github.com/nexu-io/open-design/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) 標籤 | [Issues →](https://github.com/nexu-io/open-design/issues) |
-| 翻譯文件 | 更新 `README..md` 檔案 | [`TRANSLATIONS.md`](TRANSLATIONS.md) |
+| 翻譯文件 | 更新 `README..md` 檔案 | [`TRANSLATIONS.md`](../../TRANSLATIONS.md) |
### 🤖 以 agent 身分貢獻
@@ -631,11 +631,11 @@ pnpm --filter @open-design/ test
gh pr create --fill
```
-完整的 agent 友善貢獻流程、程式碼風格與 PR 標準 → [`CONTRIBUTING.md`](CONTRIBUTING.md)([Deutsch](CONTRIBUTING.de.md) · [Français](CONTRIBUTING.fr.md) · [简体中文](CONTRIBUTING.zh-CN.md) · [日本語](CONTRIBUTING.ja-JP.md) · [Português](CONTRIBUTING.pt-BR.md))。
+完整的 agent 友善貢獻流程、程式碼風格與 PR 標準 → [`CONTRIBUTING.md`](../../CONTRIBUTING.md)([Deutsch](CONTRIBUTING.de.md) · [Français](CONTRIBUTING.fr.md) · [简体中文](CONTRIBUTING.zh-CN.md) · [日本語](CONTRIBUTING.ja-JP.md) · [Português](CONTRIBUTING.pt-BR.md))。
### 🏅 Open Design Fellow 計畫
-我們正在全球招募 **Open Design Fellows**——Fellows 與核心團隊一同形塑產品、在各自地區正式代表 Open Design,並在當地壯大社群,背後有經費支援($1,000 / MR)、免費的 LLM credits,以及一條直通的審查通道。詳情請見 → [`MAINTAINERS.md`](MAINTAINERS.md) 與 [Discord](https://discord.gg/qhbcCH8Am4) 上的公告。
+我們正在全球招募 **Open Design Fellows**——Fellows 與核心團隊一同形塑產品、在各自地區正式代表 Open Design,並在當地壯大社群,背後有經費支援($1,000 / MR)、免費的 LLM credits,以及一條直通的審查通道。詳情請見 → [`MAINTAINERS.md`](../../MAINTAINERS.md) 與 [Discord](https://discord.gg/qhbcCH8Am4) 上的公告。
---
@@ -662,7 +662,7 @@ gh pr create --fill
-維護者規則、升任標準與退出流程 → [`MAINTAINERS.md`](MAINTAINERS.md)(亦有 [Deutsch](MAINTAINERS.de.md) · [Français](MAINTAINERS.fr.md) · [简体中文](MAINTAINERS.zh-CN.md) · [日本語](MAINTAINERS.ja-JP.md) · [Português](MAINTAINERS.pt-BR.md))。
+維護者規則、升任標準與退出流程 → [`MAINTAINERS.md`](../../MAINTAINERS.md)(亦有 [Deutsch](MAINTAINERS.de.md) · [Français](MAINTAINERS.fr.md) · [简体中文](MAINTAINERS.zh-CN.md) · [日本語](MAINTAINERS.ja-JP.md) · [Português](MAINTAINERS.pt-BR.md))。
## 貢獻者
@@ -680,7 +680,7 @@ gh pr create --fill
-上方的 SVG 由 [`.github/workflows/metrics.yml`](.github/workflows/metrics.yml) 使用 [`lowlighter/metrics`](https://github.com/lowlighter/metrics) 每日重新生成。
+上方的 SVG 由 [`.github/workflows/metrics.yml`](../../.github/workflows/metrics.yml) 使用 [`lowlighter/metrics`](https://github.com/lowlighter/metrics) 每日重新生成。
---
@@ -708,7 +708,7 @@ gh pr create --fill
|---|---|
| [Claude Design][cd] | 本儲存庫作為開源替代方案所對應的那個閉源產品。 |
| [`alchaincyf/huashu-design`](https://github.com/alchaincyf/huashu-design) | 設計哲學的指南針——junior 設計師工作流程、品牌素材協定、反 AI-slop 檢查清單、五維評析。 |
-| [`op7418/guizang-ppt-skill`](https://github.com/op7418/guizang-ppt-skill) | 雜誌風格網頁 PPT skill,原封不動地內建於 [`design-templates/guizang-ppt/`](design-templates/guizang-ppt/) 之下。為簡報模式的預設。 |
+| [`op7418/guizang-ppt-skill`](https://github.com/op7418/guizang-ppt-skill) | 雜誌風格網頁 PPT skill,原封不動地內建於 [`design-templates/guizang-ppt/`](../../design-templates/guizang-ppt/) 之下。為簡報模式的預設。 |
| [`lewislulu/html-ppt-skill`](https://github.com/lewislulu/html-ppt-skill) | HTML PPT Studio 家族——15 套簡報範本、36 種主題、31 種頁面版面、動畫執行期、磁吸卡片簡報模式。 |
| [`OpenCoworkAI/open-codesign`](https://github.com/OpenCoworkAI/open-codesign) | 第一個開源的 Claude Design 替代方案;我們借鏡的 UX 模式(串流 artifact 迴圈、沙箱化 iframe、即時 agent 面板)。 |
| [`multica-ai/multica`](https://github.com/multica-ai/multica) | daemon + adapter 架構——PATH 掃描的 agent 偵測、把本地 daemon 作為唯一的特權程序。 |
@@ -717,10 +717,10 @@ gh pr create --fill
| [`heygen-com/hyperframes`](https://github.com/heygen-com/hyperframes) | HTML→MP4 動態圖像框架,在 Open Design 中整合為一等公民的 `hyperframes-html`。 |
| [Claude Code skills][skill] | 我們原封不動採用的 `SKILL.md` 慣例。 |
-詳細出處 → [`docs/references.md`](docs/references.md)。
+詳細出處 → [`docs/references.md`](../../docs/references.md)。
[skill]: https://docs.anthropic.com/en/docs/claude-code/skills
## 授權
-Apache-2.0。內建的 `design-templates/guizang-ppt/` 保留其原始 [LICENSE](design-templates/guizang-ppt/LICENSE)(MIT,[@op7418](https://github.com/op7418))。內建的 `design-templates/html-ppt/` 保留其原始 [LICENSE](design-templates/html-ppt/LICENSE)(MIT,[@lewislulu](https://github.com/lewislulu))。
+Apache-2.0。內建的 `design-templates/guizang-ppt/` 保留其原始 [LICENSE](../../design-templates/guizang-ppt/LICENSE)(MIT,[@op7418](https://github.com/op7418))。內建的 `design-templates/html-ppt/` 保留其原始 [LICENSE](../../design-templates/html-ppt/LICENSE)(MIT,[@lewislulu](https://github.com/lewislulu))。
diff --git a/scripts/approve-fork-pr-workflows.ts b/scripts/approve-fork-pr-workflows.ts
index 76de7e875c..c6e7ac5bcc 100644
--- a/scripts/approve-fork-pr-workflows.ts
+++ b/scripts/approve-fork-pr-workflows.ts
@@ -145,9 +145,7 @@ export function isDeniedChangedPath(path: string): boolean {
function isDocsPath(path: string): boolean {
return (
path === "README.md" ||
- path === "README.zh-CN.md" ||
path === "CONTRIBUTING.md" ||
- path === "CONTRIBUTING.zh-CN.md" ||
path === "QUICKSTART.md" ||
path.startsWith("docs/")
);
diff --git a/scripts/i18n-check.ts b/scripts/i18n-check.ts
index 8d9ef4def7..abf157881e 100644
--- a/scripts/i18n-check.ts
+++ b/scripts/i18n-check.ts
@@ -5,6 +5,9 @@ import { LOCALE_LABEL, LOCALES, type Locale } from "../apps/web/src/i18n/types.t
const repoRoot = path.resolve(import.meta.dirname, "..");
const localesDirectory = path.join(repoRoot, "apps/web/src/i18n/locales");
const i18nIndexPath = path.join(repoRoot, "apps/web/src/i18n/index.tsx");
+// English canonical docs (README.md, CONTRIBUTING.md, ...) stay at repo root for
+// GitHub project-page visibility; their translations live under docs/i18n/.
+const translationsDir = "docs/i18n";
type CheckResult = {
name: string;
@@ -23,7 +26,8 @@ type CoreDocLink = {
syntax: "html" | "markdown";
};
-const coreDocTargetPattern = "(QUICKSTART(?:\\.[A-Za-z0-9-]+)?\\.md|CONTRIBUTING(?:\\.[A-Za-z0-9-]+)?\\.md)";
+const coreDocTargetPattern =
+ "((?:(?:\\.\\./\\.\\./|docs/i18n/))?(?:QUICKSTART(?:\\.[A-Za-z0-9-]+)?\\.md|CONTRIBUTING(?:\\.[A-Za-z0-9-]+)?\\.md))";
function repositoryPath(filePath: string): string {
return path.relative(repoRoot, filePath).split(path.sep).join("/");
@@ -90,12 +94,43 @@ async function checkUiLocaleRegistration(): Promise {
return { name: "UI locale registration", errors };
}
+// README.md (English) lives at repo root; README..md live under docs/i18n/.
+// Returns canonical names (README.md, README.zh-CN.md, ...) sorted with English first.
async function rootReadmeFiles(): Promise {
- const entries = await readdir(repoRoot, { withFileTypes: true });
- return entries
- .filter((entry) => entry.isFile() && /^README(?:\.[A-Za-z0-9-]+)?\.md$/.test(entry.name))
- .map((entry) => entry.name)
- .sort((left, right) => (left === "README.md" ? -1 : right === "README.md" ? 1 : left.localeCompare(right)));
+ const names = new Set();
+ const rootEntries = await readdir(repoRoot, { withFileTypes: true });
+ for (const entry of rootEntries) {
+ if (entry.isFile() && entry.name === "README.md") names.add(entry.name);
+ }
+ const translationEntries = await readdir(path.join(repoRoot, translationsDir), { withFileTypes: true });
+ for (const entry of translationEntries) {
+ if (entry.isFile() && /^README\.[A-Za-z0-9-]+\.md$/.test(entry.name)) names.add(entry.name);
+ }
+ return Array.from(names).sort((left, right) =>
+ left === "README.md" ? -1 : right === "README.md" ? 1 : left.localeCompare(right),
+ );
+}
+
+// Physical path of a canonical doc name: English (no locale) at root, translations under docs/i18n/.
+function docPhysicalPath(canonicalName: string): string {
+ const isEnglish = /^(README|CONTRIBUTING|QUICKSTART|MAINTAINERS)\.md$/.test(canonicalName);
+ return isEnglish ? path.join(repoRoot, canonicalName) : path.join(repoRoot, translationsDir, canonicalName);
+}
+
+// The href a document at `fromName` should use to link to canonical doc `toName`.
+// Same directory (both translations, or both root English) → bare name.
+// Translation → English root → ../../NAME. English root → translation → docs/i18n/NAME.
+function expectedDocHref(fromName: string, toName: string): string {
+ const fromEnglish = /^(README|CONTRIBUTING|QUICKSTART|MAINTAINERS)\.md$/.test(fromName);
+ const toEnglish = /^(README|CONTRIBUTING|QUICKSTART|MAINTAINERS)\.md$/.test(toName);
+ if (fromEnglish === toEnglish) return toName;
+ if (!fromEnglish && toEnglish) return `../../${toName}`;
+ return `${translationsDir}/${toName}`;
+}
+
+// Strip any docs/i18n/ or ../../ prefix to recover the canonical doc name from a link target.
+function canonicalDocName(target: string): string {
+ return target.replace(/^(?:\.\.\/\.\.\/|docs\/i18n\/)/, "");
}
function extractReadmeSwitcher(source: string): ReadmeSwitcherEntry[] | null {
@@ -165,38 +200,40 @@ async function checkReadmeSwitchers(): Promise {
const readmes = await rootReadmeFiles();
const readmeSet = new Set(readmes);
const canonicalName = "README.md";
- const canonicalSource = await readFile(path.join(repoRoot, canonicalName), "utf8");
+ const canonicalSource = await readFile(docPhysicalPath(canonicalName), "utf8");
const canonicalEntries = extractReadmeSwitcher(canonicalSource);
if (!canonicalEntries) {
return { name: "root README language switchers", errors: [`${canonicalName} has no root README language switcher.`] };
}
- const canonicalTargets = canonicalEntries.map((entry) => entry.href ?? canonicalName);
+ // Normalize each switcher entry's href to a canonical README name, so files in
+ // different directories (root English vs docs/i18n translations) compare equal.
+ const canonicalOrder = canonicalEntries.map((entry) => (entry.href == null ? canonicalName : canonicalDocName(entry.href)));
const expectedTargets = new Set(readmes.map(readmeTarget));
- const canonicalTargetSet = new Set(canonicalTargets);
+ const canonicalTargetSet = new Set(canonicalOrder);
if (
canonicalTargetSet.size !== expectedTargets.size ||
- canonicalTargets.some((target) => !expectedTargets.has(target)) ||
+ canonicalOrder.some((target) => !expectedTargets.has(target)) ||
Array.from(expectedTargets).some((target) => !canonicalTargetSet.has(target))
) {
errors.push(
- `${canonicalName} switcher targets differ from root README files. Expected ${Array.from(expectedTargets).join(", ")}; found ${canonicalTargets.join(", ")}.`,
+ `${canonicalName} switcher targets differ from README files. Expected ${Array.from(expectedTargets).join(", ")}; found ${canonicalOrder.join(", ")}.`,
);
}
for (const readme of readmes) {
- const source = await readFile(path.join(repoRoot, readme), "utf8");
+ const source = await readFile(docPhysicalPath(readme), "utf8");
const entries = extractReadmeSwitcher(source);
if (!entries) {
errors.push(`${readme} has no root README language switcher.`);
continue;
}
- const targets = entries.map((entry) => entry.href ?? readme);
- if (targets.join("\n") !== canonicalTargets.join("\n")) {
- errors.push(`${readme} switcher order differs. Expected ${canonicalTargets.join(", ")}; found ${targets.join(", ")}.`);
+ const order = entries.map((entry) => (entry.href == null ? readme : canonicalDocName(entry.href)));
+ if (order.join("\n") !== canonicalOrder.join("\n")) {
+ errors.push(`${readme} switcher order differs. Expected ${canonicalOrder.join(", ")}; found ${order.join(", ")}.`);
}
const boldEntries = entries.filter((entry) => entry.bold);
@@ -206,8 +243,14 @@ async function checkReadmeSwitchers(): Promise {
for (const entry of entries) {
if (entry.href == null) continue;
- if (!readmeSet.has(entry.href)) {
- errors.push(`${readme} links to missing root README ${entry.href}.`);
+ const targetName = canonicalDocName(entry.href);
+ if (!readmeSet.has(targetName)) {
+ errors.push(`${readme} links to missing README ${entry.href}.`);
+ continue;
+ }
+ const expectedHref = expectedDocHref(readme, targetName);
+ if (entry.href !== expectedHref) {
+ errors.push(`${readme} switcher links to ${entry.href} but should use ${expectedHref} from its location.`);
}
}
}
@@ -220,15 +263,16 @@ async function checkCoreDocLinks(): Promise {
const readmes = await rootReadmeFiles();
for (const readme of readmes) {
- const source = await readFile(path.join(repoRoot, readme), "utf8");
+ const source = await readFile(docPhysicalPath(readme), "utf8");
const locale = readmeLocale(readme);
const links = extractCoreDocLinks(source);
- const linkedTargets = new Set(links.map((link) => link.target));
+ // Normalize link targets to canonical doc names, dropping any docs/i18n/ or ../../ prefix.
+ const linkedTargets = new Set(links.map((link) => canonicalDocName(link.target)));
for (const link of links) {
- const target = link.target;
- if (!(await pathExists(path.join(repoRoot, target)))) {
- errors.push(`${readme} links to missing core doc ${target}.`);
+ const target = canonicalDocName(link.target);
+ if (!(await pathExists(docPhysicalPath(target)))) {
+ errors.push(`${readme} links to missing core doc ${link.target}.`);
}
if (locale == null) continue;
@@ -237,7 +281,7 @@ async function checkCoreDocLinks(): Promise {
if (sourceName == null || target !== sourceName || isExplicitEnglishCoreDocLink(link)) continue;
const localizedName = localizedCoreDocName(sourceName, locale);
- if (await pathExists(path.join(repoRoot, localizedName))) {
+ if (await pathExists(docPhysicalPath(localizedName))) {
errors.push(`${readme} links to ${sourceName}, but ${localizedName} exists for this README locale.`);
}
}
@@ -245,7 +289,7 @@ async function checkCoreDocLinks(): Promise {
if (locale == null) continue;
for (const sourceName of ["QUICKSTART.md", "CONTRIBUTING.md"] as const) {
const localizedName = localizedCoreDocName(sourceName, locale);
- if ((await pathExists(path.join(repoRoot, localizedName))) && links.some((link) => coreDocSourceName(link.target) === sourceName)) {
+ if ((await pathExists(docPhysicalPath(localizedName))) && links.some((link) => coreDocSourceName(canonicalDocName(link.target)) === sourceName)) {
if (!linkedTargets.has(localizedName)) {
errors.push(`${readme} links to ${sourceName} docs, but does not link to localized ${localizedName}.`);
}