Codex restructured docs on 5 Apr (cc37d2c) into public/ and internal/
subdirectories. This commit completes the alignment work by updating all
references across skills, agents, and generated files.
Changes:
Skills Documentation:
- docs-deployment/SKILL.md: Update doc paths (docs/INSTALL.md → docs/public/install/install.md)
- docs-deployment/INTEGRATION.md: Update example paths for new structure
- agent-setup/SKILL.md: Update references
- ansible-freebsd/SKILL.md: Update references
Agents & Conventions:
- AGENTS.md: Add tmux "testing" window guideline for long-running commands
- AGENTS.md: Update doc path references (INSTALL.md → install.md lowercase)
- README-CLAWDIE.md: Update doc paths
- CROWDIN.md: Update structure references
Build System:
- setup/cms.ts: Improve frontmatter generation (skip files with existing h1)
- scripts/memory/embed-docs.py: Adjust for new structure
- docs-deployment/DOCUMENTATION-POLICY.md: Update guidelines
HTML/Web Output:
- html/: Version bumps, link fixes, manifest updated
- Reflect new public/ structure in rendered docs
Validation:
- All skills reference docs correctly
- Install/setup docs now at docs/public/install/
- Docs build and serve correctly (verified 6 Apr)
- 603 tests passing (from Codex's build)
Co-Authored-By: Codex (Agent) <codex@clawdie.si>
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
---
Build: pass | Tests: pass — Tests 603 passed (603)
13 KiB
Clawdie-AI: Build to Deployment Integration Guide
Phase: 3.0+ Status: Cross-repo reference (clawdie-ai + clawdie-shell) Created: 24.mar.2026
Overview
This guide shows how clawdie-shell (ISO building) and clawdie-ai (deployment & operations) work together to deliver Clawdie-AI as a complete stack.
clawdie-shell (Build) clawdie-ai (Deploy)
─────────────────────────────────────────────────────────
build-iso skill → docs-deployment skill
build.sh (orchestrate) → docs-sync.cron.sh
firstboot.sh (provision) → nginx (serve)
shell-*.sh modules → Live system
The Journey: Build → Deploy → Serve
Phase 1: ISO Creation (clawdie-shell repo)
Where: clawdie-shell/
Skill: build-iso
What happens:
cd /home/clawdie/clawdie-shell
# Trigger build
npm run build-iso
# What build-iso does:
# 1. Clones clawdie-iso from git jail
# 2. Runs build.sh with cloud/baremetal variants
# 3. Injects config (--target cloud, --domain, --tz, etc.)
# 4. Creates versioned ISO: clawdie-iso-cloud-24.mar.2026.img
# 5. Publishes to https://clawdie.si/downloads/
Output:
clawdie-iso-cloud-24.mar.2026.img (cloud VPS variant)
clawdie-iso-amd-24.mar.2026.img (baremetal AMD GPU)
clawdie-iso-intel-24.mar.2026.img (baremetal Intel GPU)
clawdie-iso-baremetal-24.mar.2026.img (auto-detect)
Baked into ISO:
build.cfg— TARGET, ASSISTANT_NAME, AGENT_DOMAIN, TZ, SSH_PUBLIC_KEY, etc.scripts/docs-compile.sh— markdown → HTML compilerscripts/docs-sync.cron.sh— daily sync orchestrator- Shell modules — gpu.sh, pkg.sh, env.sh, deploy.sh, etc.
Phase 2: ISO Boot & Firstboot (FreeBSD host)
Where: User downloads ISO and boots on target hardware
Scripts: firstboot.sh + shell modules (in ISO payload)
What happens:
User boots ISO
↓
bsddialog wizard (baremetal only)
├─ Basic config (name, domain, timezone)
├─ ZFS RAID selection
├─ Backup destination (optional)
└─ Review + confirm
↓
firstboot.sh orchestrator runs:
├─ clawdie-shell-gpu.sh (GPU detection, cloud: skips)
├─ clawdie-shell-nvidia.sh (NVIDIA setup if needed)
├─ clawdie-shell-pkg.sh (Package repo config, offline cache)
├─ clawdie-shell-env.sh (Generate .env with secrets)
├─ clawdie-shell-system.sh (hostname, rc.conf, services)
└─ clawdie-shell-deploy.sh (Extract tarball, npm install, jails)
↓
System boots into FreeBSD with:
✓ Jails configured
✓ Services running
✓ Documentation source in docs/
✓ Deployment scripts ready
✓ API keys in .env (blank, ready for web UI)
Phase 3: Host-Level Operations (clawdie-ai repo)
Where: /home/clawdie/clawdie-ai/ (on deployed host)
Skill: docs-deployment
What happens:
3a. Author writes documentation
cd /home/clawdie/clawdie-ai
# Write English docs
vim docs/public/install/install.md
git add docs/public/install/install.md
git commit -m "docs: Add installation guide"
git push origin main
# Crowdin webhook detects change
# Translators start working
3b. Crowdin syncs translations
Crowdin auto-fetches (webhook)
↓
Translators work (crowdin.com/project/clawdie-ai)
↓
Translations complete (24-48 hours)
↓
Crowdin auto-commits:
docs/de/INSTALL.md (German)
docs/fr/INSTALL.md (French)
docs/es/INSTALL.md (Spanish)
↓
Git pulls on host
3c. Daily sync @ 05:00 UTC (cron)
# docs-sync.cron.sh runs automatically
1. git pull
✓ Gets latest markdown + translations
2. docs-compile.sh --languages en,de,fr,es
✓ Compiles all languages to versioned dirs:
docs-v0.9.0_24.mar.2026/
├─ en/ (29 HTML files)
├─ de/ (29 HTML files)
├─ fr/ (29 HTML files)
└─ es/ (29 HTML files)
3. Validate output
✓ Check all language indexes exist
✓ Verify HTML structure
4. Atomic symlink swap (zero-downtime)
en-current → docs-v0.9.0_24.mar.2026/en/
de-current → docs-v0.9.0_24.mar.2026/de/
fr-current → docs-v0.9.0_24.mar.2026/fr/
es-current → docs-v0.9.0_24.mar.2026/es/
5. nginx reload
✓ Serves new docs (no downtime)
6. Cleanup
✓ Delete versions older than 30 days
✓ Update metadata
3d. Users access documentation
Browser: https://docs.clawdie.si/
↓
Language selector (root page)
↓
User picks language: /en/, /de/, /fr/, /es/
↓
Nginx resolves symlink:
en-current → docs-v0.9.0_24.mar.2026/en/
↓
User sees English docs (compiled from markdown)
↓
Zero-downtime updates:
- Author commits docs in clawdie-ai
- Cron syncs automatically @ 05:00 UTC
- Symlink swaps (no 404s, no downtime)
Key Integration Points
1. ISO Payload Contains Deployment Scripts
In clawdie-shell build.sh:
# Inject deployment scripts into ISO
cp /home/clawdie/clawdie-ai/scripts/docs-compile.sh \
/mnt/media/scripts/
cp /home/clawdie/clawdie-ai/scripts/docs-sync.cron.sh \
/mnt/media/scripts/
In firstboot.sh:
# Scripts are available on first boot
/usr/local/share/clawdie-iso/scripts/docs-compile.sh --help
/usr/local/share/clawdie-iso/scripts/docs-sync.cron.sh
2. build.cfg Bridges Both Repos
In clawdie-shell (build-time):
# build.cfg is baked into ISO
TARGET="cloud" # cloud | baremetal
ASSISTANT_NAME="natasha" # pre-configured
AGENT_DOMAIN="natasha.internal"
TZ="Europe/Ljubljana"
In clawdie-ai (runtime):
# scripts/docs-compile.sh and docs-sync.cron.sh read LANGUAGES
# Slovenian is primary (prototype default), others follow
LANGUAGES="sl,en,de,fr,es" # Slovenian primary, then English, German, French, Spanish
# Can be overridden by build.cfg or environment for cloud builds:
# LANGUAGES="sl,en" # Cloud: Slovenian primary + English only
3. Crowdin ↔ Documentation Sync
Source of truth: clawdie-ai repo (markdown)
docs/public/install/install.md (English) ──→ Crowdin ──→ docs/sl/INSTALL.md (Slovenian primary)
├→ docs/de/INSTALL.md (German)
├→ docs/fr/INSTALL.md (French)
└→ docs/es/INSTALL.md (Spanish)
Deployment: Both repos pull from clawdie-ai
clawdie-shell (build-iso)
├─ References clawdie-ai/docs/ for docs in ISO?
└─ Or: Operators maintain separate docs for ISO releases
clawdie-ai (docs-deployment)
├─ Compiles docs/ to HTML
├─ Deploys daily @ 05:00 UTC
└─ Crowdin keeps languages in sync
Workflow Scenarios
Scenario 1: Release a New ISO (clawdie-shell)
Operator in clawdie-shell repo:
1. Update build.cfg with new version
2. Run: npm run build-iso
3. build-iso skill:
├─ Clones clawdie-iso
├─ Runs build.sh
├─ Injects docs scripts (from clawdie-ai)
├─ Creates ISO: clawdie-iso-cloud-24.mar.2026.img
└─ Publishes to https://clawdie.si/downloads/
4. Users download and boot ISO
Scenario 2: Update Documentation (clawdie-ai)
Author in clawdie-ai repo:
1. Write English docs: docs/public/install/install.md
2. Commit & push
3. Crowdin detects (webhook)
4. Translators work (24-48 hours)
5. Crowdin commits: docs/de/, docs/fr/, docs/es/
6. Cron @ 05:00 UTC:
├─ git pull (gets translations)
├─ Compile all languages
├─ Symlink swap (zero-downtime)
└─ nginx reload
7. Users see updated docs in all languages
Scenario 3: Add New Language to Docs
Process:
1. Admin adds language to Crowdin project
crowdin.com/project/clawdie-ai → Add: Italian (it)
2. Author adds to docs-sync.cron.sh:
LANGUAGES="en,de,fr,es,it"
3. Crowdin auto-syncs translations to docs/it/
4. Next cron run (05:00 UTC):
├─ Compile includes Italian
├─ Create: docs-v0.9.0_24.mar.2026/it/
└─ Symlink: it-current → docs-v0.9.0_24.mar.2026/it/
5. Nginx location block added (manually or via template):
location /it/ { ... }
6. Users access: https://docs.clawdie.si/it/
Dependency Chain
clawdie-shell (Build)
├─ build-iso skill
├─ build.sh
│ └─ Fetches from clawdie-iso repo
│ └─ Contains: firstboot.sh + shell-*.sh modules
│ └─ Injects into ISO:
│ ├─ build.cfg (TARGET, ASSISTANT_NAME, etc.)
│ ├─ docs-compile.sh (from clawdie-ai)
│ ├─ docs-sync.cron.sh (from clawdie-ai)
│ └─ shell-*.sh modules
│
└─ Output: clawdie-iso-{cloud,amd,baremetal}-24.mar.2026.img
└─ Users download & boot
└─ firstboot.sh runs shell modules
└─ System boots with deployment scripts ready
clawdie-ai (Deploy)
├─ docs-deployment skill
├─ docs-compile.sh (used in ISO and on host)
├─ docs-sync.cron.sh (runs daily @ 05:00 UTC on host)
├─ Crowdin integration (markdown → translations)
│ └─ docs/ + docs/de/, docs/fr/, docs/es/
│
└─ Output: Zero-downtime documented system
└─ Users access: https://docs.clawdie.si/{en,de,fr,es}/
File Cross-References
clawdie-shell must know about:
clawdie-ai/scripts/docs-compile.sh— Injected into ISOclawdie-ai/scripts/docs-sync.cron.sh— Injected into ISOclawdie-ai/docs/— Source of truth for documentationclawdie-ai/.agent/skills/docs-deployment/— Integration guide (this file)
clawdie-ai must know about:
clawdie-shell/skills/build-iso/— How ISOs are createdclawdie-shell/build.sh— What gets baked into ISOclawdie-shell/build.cfg— Template for cloud/baremetal variants
Both repos reference:
clawdie-iso/— FreeBSD ISO build system (not in this guide, external)crowdin.com/project/clawdie-ai— Translation management
Deployment Architectures
Cloud Deployment (VPS)
1. User downloads: clawdie-iso-cloud-24.mar.2026.img
2. Boots in VPS (no GUI, headless)
3. Firstboot runs:
├─ Cloud preset (no GPU detection, no bsddialog)
├─ All values pre-baked (ASSISTANT_NAME, DOMAIN, TZ)
├─ System configures fully automated
└─ Ready for API key injection via web UI
4. Documentation:
└─ docs-sync.cron.sh @ 05:00 UTC
├─ English only (cloud: reduced languages)
└─ Zero-downtime updates
Docs serve: https://docs.natasha.internal/en/
Baremetal Deployment (Physical Hardware)
1. User downloads: clawdie-iso-amd-24.mar.2026.img (GPU-specific)
2. Boots on physical hardware (with GUI desktop)
3. Firstboot runs:
├─ Interactive wizard (bsddialog)
├─ User selects: name, domain, timezone, ZFS RAID config
├─ GPU auto-detected (AMD/Intel/NVIDIA)
├─ System configures interactively
└─ Desktop available for API key entry (browser)
4. Documentation:
└─ docs-sync.cron.sh @ 05:00 UTC
├─ All languages (en, de, fr, es)
└─ Zero-downtime updates
Docs serve: https://docs.natasha.internal/en/ (default)
or /de/, /fr/, /es/ (via language selector)
Version Timeline
v0.9.0 Release (Target)
clawdie-shell:
- ✅ build-iso skill (publish ISO)
- ✅ Cloud vs baremetal variants
- ✅ SSH key + password configuration
- ✅ ZFS RAID selection
clawdie-ai:
- ✅ docs-deployment skill
- ✅ Multi-language (en, de, fr, es)
- ✅ Crowdin integration ready
- ✅ Zero-downtime deployment
- ✅ 30-day version retention
Together:
- ✅ Complete ISO → deployment pipeline
- ✅ Build (clawdie-shell) → Deploy (clawdie-ai)
- ✅ Documentation in 4 languages
- ✅ Automated daily sync @ 05:00 UTC
Quick Links
clawdie-shell:
.agent/skills/build-iso/SKILL.md— ISO buildingbuild.sh— Build orchestratorbuild.cfg— Build configuration
clawdie-ai:
.agent/skills/docs-deployment/SKILL.md— This skill ⬅️scripts/docs-compile.sh— Markdown → HTMLscripts/docs-sync.cron.sh— Daily sync orchestratorCROWDIN.md— Translation workflowdocs/DOCUMENTATION-SYNC-RUNBOOK.md— Operator manual
External:
- Crowdin: https://crowdin.com/project/clawdie-ai
- ISO Downloads: https://clawdie.si/downloads/
- Docs: https://docs.clawdie.si/
Questions & Support
For ISO building issues: See clawdie-shell/.agent/skills/build-iso/SKILL.md
For documentation deployment: See clawdie-ai/.agent/skills/docs-deployment/SKILL.md
For troubleshooting: See clawdie-ai/docs/DOCUMENTATION-SYNC-RUNBOOK.md
For translation workflow: See clawdie-ai/CROWDIN.md
For Crowdin setup (admin): See clawdie-ai/.agent/skills/docs-deployment/CROWDIN-SETUP.md
Last Updated: 24.mar.2026 Phase: 3.5 (Crowdin integration — Phase 3.0 foundation complete, ready for v0.9.0 release)