feat: builtin skills seed engine + Vietnamese (vi-VN) locale - #635
Open
ngav1491 wants to merge 2 commits into
Open
feat: builtin skills seed engine + Vietnamese (vi-VN) locale#635ngav1491 wants to merge 2 commits into
ngav1491 wants to merge 2 commits into
Conversation
Add EnsureBuiltinSeeds() to the skill service and wire it at app startup
so every deployment ships a usable set of built-in skills out of the box.
Seed engine (backend/internal/application/skill/seed.go):
- Embeds seeddata/*.md (frontmatter: name/title/description/sort)
- Validates limits: title <= 64 chars, description <= 256,
body <= 10,000 runes
- Idempotent on restart:
- missing record -> create
- untouched record (created_by == 0 && updated_by == 0) ->
re-sync content on upgrade
- admin-modified record -> never overwritten
- Wired in backend/internal/app/app.go right after skill service init
Bundled skills (10): diagram-svg, mermaid-diagram, html-artifact,
svg-icon, chart-svg, report-writing, polish-writing, translate,
code-review, slide-outline - authored for DEEIX render stack
(SVG block preview, native mermaid, sandboxed HTML artifacts).
Tests: go test ./internal/application/skill/... PASS
ngav1491
force-pushed
the
feat/vi-vn-i18n-and-builtin-skills
branch
from
August 23, 2026 08:02
b5739c0 to
9ca51d6
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Two features shipped together after a full codebase review (2026-08-23):
1. feat(skills): seed 10 builtin skills with idempotent sync engine
The Skills system previously shipped empty — no built-in skills, admin-only creation via API. This PR adds:
backend/internal/application/skill/seed.go):seeddata/*.mdwith YAML frontmatter (name/title/description/sort)created_by == 0 && updated_by == 0) → re-sync content on upgrade; admin-modified → never overwrittenbackend/internal/app/app.goright after skill service initdiagram-svg,mermaid-diagram,html-artifact,svg-icon,chart-svg,report-writing,polish-writing,translate,code-review,slide-outline— authored for DEEIX's render stack (SVG block preview, native mermaid, sandboxed HTML artifacts)@mentionthanks to the existingscope=builtinfiltergo test ./internal/application/skill/...PASS2. feat(i18n): add Vietnamese (vi-VN) locale
Complete third locale alongside en-US / zh-CN:
frontend/i18n/messages/vi-VN/(~4,600 strings; largest: chat.json 831, settings.json 487, admin-models.json 460). Brand names,{placeholder}tokens and ICU plural structures kept byte-identical with en-US sources — verified programmatically (key structure + placeholder + ICU skeleton checks)APP_LOCALES+ labels;normalizeAppLocale/resolveBrowserLocalemapvi*vilocale for admin-date-time-picker and admin-date-range-filter calendarsapplication/auth/service.gonormalizeLocalewhitelist acceptsvi/vi-VNVerification
pnpm typecheckbiome lint .next build(production)go build ./...go test ./internal/application/auth/...go test ./internal/application/skill/...Notes / known gaps (pre-existing, not addressed here)
auth/registration.go)openai_video_generationsprotocol F4) are tracked separately and intentionally excluded from this PR to keep it reviewable.