-
Notifications
You must be signed in to change notification settings - Fork 11
feat(translation-pipeline): LLM translation pipeline with deterministic preservation gate #568
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from 74 commits
df2698b
acdc7bd
c8fd7d7
4a2f225
8dd74ff
6f9904d
ea3674b
acdcc61
4496269
ef1a6c8
d384d4b
6cc355c
72a3448
9a36b5a
94840b7
dc44d15
4834439
2228418
b2a3995
72a93bc
36d0e14
d14390f
00d6753
46cf601
6d79b15
3d67f87
2d5c98d
5f36d06
83bb1f7
6fe4a92
2470663
cbfe5ac
a70b50f
a6ede3b
0964d0f
d75e052
0949c3f
48eea39
8995621
8ed7f94
f2c62fb
1f6c9e4
4018ad1
89b2729
87fd2a2
6d8ede1
1fec000
bfeade4
8baf22f
8a62f18
6a718bc
6a44a11
b404b92
ae7234c
d0de4f1
81ea3e5
8c020eb
b35b6ef
751e43e
8e65ef7
34198d4
9bd6f54
d499b5f
d64b7ab
436d9bd
b76b379
41e2b03
0b6fa28
531d4dc
69dea2d
fe55e6e
ae81d21
ec4a6d0
1e93ff2
b96d2f4
f3b57c8
de03621
d63f6bd
54d8547
0d1daa7
71ef8e4
93ad5d2
22f7fc4
06f9f02
6fd1bd4
742da0d
6ddbf2a
a4d2797
91dfc8c
8ac4730
645c3c8
7959c8a
9a8d185
e75022a
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -39,17 +39,19 @@ Placement depends on the component pattern. See [references/guide.md](references | |
| ## Component summary rules | ||
|
|
||
| 1. One single line — no line breaks inside the summary | ||
| 2. User perspective: what it is → when to use it | ||
| 2. Pattern by role: | ||
| - **Top-level**: `"A [noun] for/that [purpose]. Renders a \`<x>\` element."` | ||
| - **Sub-component**: `"A/An [noun] that [role]. Renders a \`<x>\` element."` | ||
| - **Root/wrapper (no HTML)**: `"Groups/Assembles [parts]. Doesn't render its own HTML element."` | ||
| 3. No internal terms (`memoized`, `wrapper`, `token-based`, etc.) | ||
| 4. End with the rendered HTML element using backticks around the tag: "Renders a `<button>` element." or "Doesn't render its own HTML element.". | ||
| 4. Always end with the rendered HTML element in backticks, or `Doesn't render its own HTML element.` for Root/Provider components. | ||
|
|
||
| ## Prop description rules | ||
|
|
||
| 1. Don't repeat the prop name or its type | ||
| 2. Describe side effects and interactions with other props | ||
| 3. For numeric props: include unit and valid range | ||
| 4. For event handlers: specify the exact trigger condition, not just "handler" | ||
|
Comment on lines
49
to
54
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win 기본값 문서화 규칙을 유지하십시오.
🧰 Tools🪛 SkillSpector (2.4.4)[warning] 21: [MP2] Context Window Stuffing: Skill attempts to fill the context window with filler content, displacing legitimate instructions and safety constraints. This can degrade agent performance or bypass safety boundaries. Remediation: Implement context-window management that detects and rejects padding or stuffing attempts. Prioritize system instructions over user-injected content. (Memory Poisoning (MP2)) 🤖 Prompt for AI Agents |
||
| 5. Use the `@default` JSDoc tag to indicate default values — never write `Default: \`value\`` inline in the description text | ||
|
|
||
| ## Review checklist | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,4 @@ | ||
| # LiteLLM Proxy — required for `pnpm translate` (the @vapor-ui/translation-pipeline package). | ||
| # Both variables must be set before running the translation pipeline. | ||
| LITELLM_BASE_URL= | ||
| LITELLM_API_KEY= |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -3,6 +3,7 @@ | |
|
|
||
| # generated content | ||
| .contentlayer | ||
| **/.i18n-report.md | ||
|
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is a Markdown file that generates a report once verification is complete. As it changes every time it is run and is intended for developers’ reference only, I have marked it as |
||
| .content-collections | ||
| /.source/ | ||
|
|
||
|
|
||
This file was deleted.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -7,12 +7,14 @@ | |
| "build": "next build", | ||
| "clean": "rm -rf node_modules .next .turbo .source", | ||
| "dev": "next dev --turbo", | ||
| "extract": "ts-api-extractor --config ./docs-extractor.config.mjs", | ||
| "extract": "ts-api-extractor", | ||
| "format": "prettier --write \"./src/**/*.{ts,tsx,md}\"", | ||
| "format:check": "prettier --check \"./src/**/*.{ts,tsx,md}\"", | ||
| "i18n": "pnpm extract && pnpm translate", | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. [NIT] How about naming that command so that it’s clearly associated with “translate”? The “i18n” command and “translate” are related, but just by looking at the names, it might not be easy to tell they’re connected...! |
||
| "postinstall": "fumadocs-mdx", | ||
| "lint": "eslint ./src", | ||
| "start": "next start", | ||
| "translate": "translation-pipeline --input ./public/components/generated/en --output ./public/components/generated", | ||
| "typecheck": "tsc --noEmit" | ||
| }, | ||
| "dependencies": { | ||
|
|
@@ -62,6 +64,7 @@ | |
| "@types/node": "^22.19.18", | ||
| "@types/react": "catalog:", | ||
| "@types/react-dom": "catalog:", | ||
| "@vapor-ui/translation-pipeline": "workspace:*", | ||
| "@vapor-ui/ts-api-extractor": "workspace:*", | ||
| "eslint": "catalog:", | ||
| "postcss": "^8.5.14", | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Components like Card or Checkbox sometimes have a Root that renders HTML, so we should verify if these parts are being extracted accurately without any discrepancies.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That’s correct. That’s why I’ve included both cases. Furthermore, as basic tag information cannot be extracted statically, I believe this part must always be added via the ‘skill’ feature and then verified by a human.