feat/wiki-astro #214

Merged
clawdie merged 19 commits from feat/wiki-astro into main 2026-06-26 14:16:50 +02:00

19 commits

Author SHA1 Message Date
d002e480c3 localization(sl): demon→ozadnji proces, krajevni→lokalni, oprema→vprega, vrata→preverjanje
Some checks are pending
CI / rust (pull_request) Waiting to run
CI / markdown (pull_request) Waiting to run
CI / port (pull_request) Waiting to run
CI / agent-jail-pkgs (pull_request) Waiting to run
Glossary alignment — demon (devil) replaced with the established ozadnji
proces (background process) per okrajsave.md glossary. Full sweep across
all sl/ wiki and guide files (61 replacements in 18 files).

  demon→ozadnji proces (nominative, 15 instances)
  demona→ozadnjega procesa (genitive, 42 instances)
  demonom→ozadnjim procesom (instrumental, 1 instance)
  demonov→ozadnjih procesov, demonovem/demonovim rephrased (3 instances)
  krajevni→lokalni (7 instances across 4 files)
  oprema→vprega (agent harness context, 3 instances)
  vrata→preverjanje (quality gate context, 1 instance)
2026-06-26 14:15:47 +02:00
fba3f24267 skill: positive framing pass — nginx, setup, update, astro, docs-deployment
nginx:   broken config→valid config, fails→reports error, won't start→status check,
         BIO_new_file() failed→certificate file missing, common causes→things to check
setup:   broken/missing→needs repair, failed to load→need build tools,
         fix each→resolve each, Common causes→What to check
update:  broken state→consistent state, tests fail→tests don't pass,
         unfixable→not immediately resolvable, won't start→needs attention
astro:   fails because→requires
docs-deployment: broken→needs rollback, Check for broken symlinks→Verify symlinks
2026-06-26 14:15:47 +02:00
d6147bf6a9 skill(debug): positive framing — failure modes→resolution patterns, broken→errors 2026-06-26 14:15:47 +02:00
6c37022380 skill(astro-wiki-deploy): reframe pitfalls as build checklist
Positive framing — each former "pitfall" is now a prescriptive step:

  1. Quote all YAML frontmatter values
  2. Declare content-path constants inside getStaticPaths()
  3. Create explicit routes for SL content
  4. Clean the dist cache before every build
  5. Resolve content paths with path.resolve("src/content")
  6. Extract markdown H1 as a title fallback
  7. Placeholder TLS cert for first deploy (reference)

Every step follows Why → What → Result. No "broken/failed/symptom/cause"
language. An agent reading this gets a recipe, not a post-mortem.
2026-06-26 14:15:47 +02:00
1793ea0a75 skill(astro-wiki-deploy): full deploy flow + 6 pitfalls from live deployment
Captures the wiki.clawdie.si deployment experience (26.jun.2026):

Pitfalls documented:
1. const declarations outside function scope fail in Astro SSR
2. YAML frontmatter with unquoted colons breaks content parsing
3. SL content auto-generates stale routes (explicit sl/ routes needed)
4. Stale dist cache preserves old route generation (rm -rf dist)
5. import.meta.url path resolution fails in Astro SSR
6. H1 fallback for pages without YAML frontmatter
7. Nginx SSL cert placeholder (referenced, in nginx skill)

Full deploy flow: stage → jail → build → deploy → verify.
First-time setup instructions for CMS jail.
2026-06-26 14:15:47 +02:00
834197e2ae fix(wiki): agent harness title — pi, zot & Colibri (not just zot + Colibri)
The agent harness page describes THREE agents: pi (fallback), zot (default),
and Colibri (supervisor). Title updated in both EN and SL.

Also: H1 extraction fallback for pages without YAML frontmatter —
content.match(/^#\s+(.+)$/m)?.[1] so pages with only markdown H1 still
get a proper <title> tag instead of the slug.
2026-06-26 14:15:47 +02:00
29796ab102 fix(sl): agentska oprema → agentska vprega, re-enable /sl/ routes
- agent-harness.md: "oprema" → "vprega" (harness, as in ox harness)
  Title: "Agentska vprega: zot + Colibri"
  Content: "Privzeta vprega OOTB je zot"
- index.md: updated table description
- sl/[...slug].astro + sl/index.astro: new dynamic routes for SL wiki pages
- Deployed: 68 pages live (23 EN + 23 SL + 2 indexes)
2026-06-26 14:15:47 +02:00
b867eb9b99 fix: skills directory structure — .agent/skills/ not .agent/
Skills were copied flat (.agent/*/SKILL.md) instead of nested
(.agent/skills/*/SKILL.md). The ISO import script
(import-colibri-skills.sh) expects the nested structure.

Now matches clawdie-ai canonical layout. 52 SKILL.md files verify.
2026-06-26 14:15:47 +02:00
9643790739 skill(nginx): document SSL cert placeholder + ACME challenge ordering hiccups
Three hiccups from the wiki.clawdie.si deployment (26.jun.2026):

1. Placeholder cert — nginx refuses to start when ssl_certificate files
   dont exist yet. Create a temporary self-signed cert first, then
   acme.sh --issue overwrites it with the real cert.

2. ACME challenge location ordering — nginx matches location blocks in
   order. .well-known/acme-challenge/ MUST come before the
   location / { return 301 https://... } redirect, otherwise ACME
   validation returns 301 instead of the challenge file.

3. acme.sh --key-file + --fullchain-file — these flags write directly
   to the nginx SSL paths, replacing the placeholder. The cert paths
   must match between nginx config and acme.sh invocation.

New "Adding a new public static HTTPS site — full flow" section covers
the complete pattern: DNS first → placeholder cert → vhost with ordered
locations → real cert → content deploy → renewal.

Two new troubleshooting entries: BIO_new_file() failed (missing cert),
ACME challenge 404/301 (location ordering or missing directory).
2026-06-26 14:15:47 +02:00
3acb991196 docs(sl): fix quality-gates — vrata→preverjanje, krajevni→lokalni
"Vrata" is a correct translation for TCP/network ports, but wrong for
software quality gates. Changes:

quality-gates.md — rewritten: "kakovostno preverjanje" not "kakovostna vrata"
  vrata → preverjanje (gate → verification)
  krajevna → lokalno (local)
  kljuka → kavelj (door handle → git hook)
  padejo → spodleti (falls → fails)

Scattered fixes in 5 other files:
  cost-model.md, index.md, mother-hive.md, naming-decisions.md,
  store-schema.md — vrata → preverjanje/dovoljenja
  external-mcp.md — vrata → dovoljenja (permissions)

Kept: "vrata" for TCP ports (correct), "vhodna vrata" for front-door
metaphor (works in Slovenian), "vrata za poslušanje" for listening port.

Also fixed: frontmatter quoting for YAML (nested quotes, colons).
2026-06-26 14:15:47 +02:00
cbf707be8f feat(wiki): add Slovenian locale support with unified path pattern
- Remove 'sl' from EXCLUDE — Slovenian wiki pages now served
- Locale-aware link resolver: ./page.md → /sl/page/ in sl/ context
- Language switcher in nav bar (English ↔ Slovenščina)
- Slovenian index at /sl/ with translated prose
- lang attribute dynamic per locale
- Matches docs.clawdie.si Starlight pattern: /<lang>/<page>/
2026-06-26 14:15:47 +02:00
f704abc782 feat(wiki): minimal Astro site for wiki.clawdie.si
Plain Astro — no Starlight. Five files:
  - package.json (astro only, v0.12.0)
  - astro.config.mjs (wiki.clawdie.si, static output)
  - src/pages/index.astro (flat list of all decision pages)
  - src/pages/[...slug].astro (dynamic route: reads docs/wiki/*.md)
  - build-wiki.sh (npm ci + astro build)

Design decisions:
  - No Starlight — 23 pages, rarely changing, primary audience is LLMs
  - Dynamic routes — add a .md to docs/wiki/, it automatically gets a page
  - Markdown rendered at build time (frontmatter, tables, code blocks, links)
  - Wiki links [label](./page.md) auto-resolve to [/page/]
  - Dark mode via prefers-color-scheme, no JS

Guide keeps Starlight (structured sidebar, human operators).
Wiki gets plain Astro (flat list, agent audience).

See: docs/PLAN-WIKI-CLAWDIE-SI.md
2026-06-26 14:15:47 +02:00
3145a725c6 docs(sl): add 23 Slovenian terminology mappings to glossary
New Izrazoslovje section — English concept → Slovenian name mapping:
  jail/ječa, warden/paznik, confinement/zaprtost, prisoner/zapornik,
  cell/celica, hive/panj, mother/matično vozlišče, node/vozlišče,
  glasspane/steklena plošča, spawn/(samodejni) zagon, seed/seme,
  vault/trezor, tenant/najemnik, skill/veščina, snapshot/posnetek,
  rollback/povratek, harvest/žetev, bridge/most, daemon/ozadnji proces,
  board/tabla nalog, scheduler/razporejevalnik, Bastille (trdnjava),
  jailed/zaprt v ječi.

Cross-links added from existing ZFS, PF, and UI entries.
Total anchors: 38 (15 abbreviations + 23 terminology).
2026-06-26 14:15:47 +02:00
c38b5f1e5b docs(guide): trim install Scope paragraph to one-liner
Match the lean SL style: one terse sentence, no legacy narration.
"clawdie provisions the host service. Jail, DB, CMS, and Git
provisioning are not yet in the installer."
2026-06-26 14:15:47 +02:00
9fd323b092 docs(sl): translate wiki group 3 — runtime-inventory, jail-confinement, skills-catalog, vault-provision, agent-events-reference, external-mcp
Completes Slovenian wiki translation: all 23 pages now have sl/ mirrors.
2026-06-26 14:15:11 +02:00
8f84eb51c2 docs(sl): translate wiki group 2 — deployment, operator-cli, terminal, tui, headroom-sidecar 2026-06-26 14:15:11 +02:00
3ec68ff860 docs(sl): translate wiki group 1 — glasspane, agent-harness, naming, quality-gates, store-schema 2026-06-26 14:15:11 +02:00
Sam & Claude
d9ef0a94e2 docs(sl): install pages use clawdie flow (drop just install)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-26 14:15:11 +02:00
412364bf74 docs(sl): translate wiki batch 1 — 7 core pages
- mother-hive (matični hive): forced-command SSH, single home,
  peer auth, key-on-seed, daemon user
- task-board (tabla opravil): capability scoring, cron/interval/once,
  intake drain, SQLite backing
- operator-attention (operaterska pozornost): attention bar,
  jump/filter keys, edge-triggered alerts, NO_COLOR pitfall
- contracts (JSON pogodbe): stable schemas, golden tests,
  evolution rules
- cost-model (model stroškov): cache-hit metering, fast/smart/max,
  T14 compaction, DeepSeek probe
- layered-soul (plastovita duša): import path, deferred stores,
  one-way direction
- index (wiki kazalo): conventions, lint workflow, full page table

Commands/JSON/code paths kept in English; prose + frontmatter
translated.
2026-06-26 14:15:11 +02:00