blun-king-cli 9.1.62 → 9.1.63

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/bin/context-performance-policy.cjs +18 -0
  2. package/bin/launcher-runtime.js +2 -2
  3. package/bin/package-regression-policy.cjs +77 -0
  4. package/bin/provider-idle-timeout-policy.cjs +14 -0
  5. package/bin/skill-listing-performance-policy.cjs +33 -0
  6. package/bin/standard-tools-bootstrap.js +80 -26
  7. package/bin/turn-thinking-policy.cjs +66 -0
  8. package/bin/turn-tool-performance-policy.cjs +141 -0
  9. package/blun.mjs +519 -220
  10. package/package.json +4 -1
  11. package/release-planned-removals.json +4 -0
  12. package/scripts/check-package-regression.js +38 -0
  13. package/standard-skills/agent-browser/SKILL.md +19 -0
  14. package/standard-skills/agent-browser/references/runtime.md +8 -0
  15. package/standard-skills/design-taste-frontend/SKILL.md +1206 -0
  16. package/standard-skills/full-output-enforcement/SKILL.md +49 -0
  17. package/standard-skills/high-end-visual-design/SKILL.md +98 -0
  18. package/standard-skills/image-to-code/SKILL.md +1228 -0
  19. package/standard-skills/industrial-brutalist-ui/SKILL.md +92 -0
  20. package/standard-skills/minimalist-ui/SKILL.md +85 -0
  21. package/standard-skills/motion-design-taste/SKILL.md +74 -0
  22. package/standard-skills/playwright-testing/SKILL.md +19 -0
  23. package/standard-skills/playwright-testing/references/runtime.md +7 -0
  24. package/standard-skills/premortem/SKILL.md +148 -0
  25. package/standard-skills/redesign-existing-projects/SKILL.md +178 -0
  26. package/standard-skills/screenshot-lesen/SKILL.md +52 -0
  27. package/standard-skills/stitch-design-taste/DESIGN.md +121 -0
  28. package/standard-skills/stitch-design-taste/SKILL.md +184 -0
  29. package/standard-skills/telegram-channel/SKILL.md +18 -0
  30. package/standard-skills/telegram-channel/references/runtime.md +7 -0
  31. package/standard-skills/translate-native/LICENSE +21 -0
  32. package/standard-skills/translate-native/SKILL.md +39 -0
  33. package/standard-skills/translate-native/VERSION +1 -0
  34. package/standard-skills/translate-native/provenance.json +7 -0
  35. package/standard-skills/translate-native/references/evaluation-protocol.md +95 -0
  36. package/standard-skills/translate-native/references/native-orthography.md +79 -0
  37. package/standard-skills/translate-native/references/native-translation-standard.md +94 -0
  38. package/standard-skills/translate-native/references/structured-content.md +72 -0
  39. package/standard-skills/translate-native/references/translationese-review.md +77 -0
  40. package/standard-skills/translate-native/scripts/blun_language_guard.py +686 -0
  41. package/standard-skills/translate-native/scripts/check_diacritics.py +353 -0
  42. package/standard-skills/translate-native/scripts/guard_service_client.py +82 -0
  43. package/standard-skills/translate-native/scripts/language_gateway.py +62 -0
  44. package/standard-skills/translate-native/scripts/language_quality.py +172 -0
  45. package/standard-skills/translate-native/scripts/pre_output_guard.py +67 -0
  46. package/standard-skills/translate-native/scripts/translation_guard.py +916 -0
  47. package/standard-skills/web-lesen/SKILL.md +58 -0
  48. package/standard-skills/windows-mcp/SKILL.md +19 -0
  49. package/standard-skills/windows-mcp/references/runtime.md +9 -0
@@ -0,0 +1,94 @@
1
+ # Native Translation Standard
2
+
3
+ ## The core distinction
4
+
5
+ A correct translation preserves the source meaning. A native translation also follows the target language's own habits of thought and expression. Both are required.
6
+
7
+ Do not optimize for visible word correspondence. Optimize for semantic equivalence plus native acceptability. A sentence may need to be split, merged, reordered, made implicit, or made explicit where the target grammar conventionally requires it, provided no source claim changes.
8
+
9
+ ## Choose the operating mode
10
+
11
+ | Mode | Primary goal | Permitted adaptation |
12
+ | --- | --- | --- |
13
+ | Faithful native translation | Preserve meaning in fully native language | Syntax, idiom, information order, punctuation |
14
+ | Localization | Make content work in a locale or product | Formats, units, conventions, locally expected labels |
15
+ | Transcreation | Preserve effect in persuasive or creative work | Imagery, wordplay, slogans, cultural framing—with claims intact |
16
+ | Proofreading | Repair target-language text | Grammar, vocabulary, nativeness, consistency |
17
+
18
+ Use faithful native translation by default. Do not silently turn translation into copywriting.
19
+
20
+ ## Specify language beyond its name
21
+
22
+ Represent the target as a bundle:
23
+
24
+ - language and BCP 47 tag where known;
25
+ - region or speech community;
26
+ - script and orthography;
27
+ - formal, informal, honorific, technical, literary, or conversational register;
28
+ - audience age, expertise, and relationship to the writer;
29
+ - medium and space constraints.
30
+
31
+ Language labels can hide materially different choices. “Chinese” requires a script and often a region; “Arabic” can mean Modern Standard Arabic or a spoken variety; “Spanish,” “Portuguese,” “French,” “English,” “Catalan,” “Serbian,” and many others have regional standards. Prefer the user's explicit identity and terminology over assumptions.
32
+
33
+ ## Preserve semantic force
34
+
35
+ Check especially:
36
+
37
+ - scope of negation and quantifiers;
38
+ - can/may/must/should and their degree of obligation;
39
+ - completed, ongoing, habitual, and hypothetical actions;
40
+ - evidentiality, confidence, hearsay, and uncertainty;
41
+ - inclusive/exclusive pronouns and levels of respect;
42
+ - gender, number, animacy, classifiers, and noun classes where relevant;
43
+ - relationships between headings, labels, buttons, and surrounding instructions.
44
+
45
+ Naturalness never licenses stronger claims, extra benefits, removed caveats, or invented politeness.
46
+
47
+ ## Respect the language community
48
+
49
+ - Use the script and orthography used by the requested community, including diacritics, combining marks, contextual forms, native punctuation, spacing, and directionality.
50
+ - Do not treat Latin transliteration as the default for a non-Latin script.
51
+ - Avoid exoticizing minority and Indigenous languages or replacing community terminology with a majority-language label.
52
+ - When multiple standards exist, name the selected standard if that choice matters.
53
+ - Preserve names according to the person's or organization's established form. Transliterate only according to the target convention or explicit request.
54
+
55
+ ## Source hierarchy for verification
56
+
57
+ Use evidence in roughly this order, adjusting for the language and domain:
58
+
59
+ 1. Native-authored or professionally native-edited material in the same domain and locale.
60
+ 2. Language academies, community authorities, government terminology banks, universities, and respected dictionaries or style guides.
61
+ 3. Unicode CLDR and BCP 47 resources for locale identifiers, formats, exemplar characters, plurals, and writing-system conventions.
62
+ 4. Curated monolingual corpora such as the Leipzig Corpora Collection for collocations and contemporary usage.
63
+ 5. Curated evaluation sets such as FLORES+ for cross-language comparison.
64
+ 6. Parallel corpora such as OPUS as supporting evidence only.
65
+ 7. Uncurated web text or anonymous dataset entries only as weak corroboration.
66
+
67
+ A large dataset is not automatically authoritative. It may contain machine translations, subtitles, duplicated text, wrong language tags, domain bias, outdated orthography, or misaligned sentences. Check its dataset card, provenance, license, curation method, date, locale, and intended use.
68
+
69
+ Useful starting points:
70
+
71
+ - FLORES+ multilingual benchmark dataset
72
+ - OPUS: <https://opus.nlpl.eu/>
73
+ - Leipzig Corpora Collection: <https://cls.corpora.uni-leipzig.de/>
74
+ - Unicode CLDR: <https://cldr.unicode.org/>
75
+
76
+ Do not download large corpora for a routine translation. Consult only when the wording or language variety needs verification.
77
+
78
+ ## Detect translationese
79
+
80
+ Revise when any symptom appears:
81
+
82
+ - target sentences mirror source length and clause order without linguistic reason;
83
+ - dictionary synonyms replace established collocations;
84
+ - pronouns are repeated or omitted according to the source rather than target norms;
85
+ - politeness, articles, tense, classifiers, particles, or discourse markers feel imported;
86
+ - headlines and buttons use sentence grammar instead of the target medium's conventions;
87
+ - an idiom is understandable but no native writer would choose it;
88
+ - every sentence is grammatical yet the paragraph does not flow natively.
89
+
90
+ Use a back-translation only as a diagnostic for missing meaning, never as the final naturalness test.
91
+
92
+ ## Handle uncertainty honestly
93
+
94
+ For low-resource languages, fluent-looking output can still be wrong. If evidence is thin, separate what is known from what is inferred, avoid mixing neighboring varieties, and request community or professional review for consequential use. Do not call a translation native merely because it is grammatical.
@@ -0,0 +1,72 @@
1
+ # Translating Structured Content
2
+
3
+ ## General rule
4
+
5
+ Protect machine-readable structure first, then write human-visible values as naturally as free prose. A resource file is a delivery format, not a linguistic style.
6
+
7
+ Before editing, identify:
8
+
9
+ - translatable values and non-translatable identifiers;
10
+ - target locale and product glossary;
11
+ - placeholder syntax and runtime formatter;
12
+ - plural, gender, select, and fallback behavior;
13
+ - markup, links, escapes, accelerator keys, and length limits;
14
+ - context from screenshots, comments, neighboring entries, and call sites.
15
+
16
+ ## Preserve by format
17
+
18
+ | Format | Translate | Preserve exactly |
19
+ | --- | --- | --- |
20
+ | JSON / ARB | User-visible string values and descriptions when intended | Keys, hierarchy, types, arrays, placeholders |
21
+ | YAML | User-visible scalar values | Keys, indentation semantics, anchors, tags, types |
22
+ | PO / POT | `msgstr`; contextual human copy | `msgid`, comments, flags, plural indices, format tokens |
23
+ | Android XML | Text nodes intended for users | Resource names, tags, escapes, `%` placeholders, quantity items |
24
+ | Apple strings | Values | Keys unless product rules say otherwise, format specifiers, escapes |
25
+ | ICU MessageFormat | Text within every branch | Argument names, selector keys, braces, plural/select structure |
26
+ | HTML / JSX | Rendered text and approved linguistic attributes | Tag structure, attribute names, technical values, URLs, expressions, component names |
27
+ | Markdown | Prose, headings, link labels | Link destinations, code fences, inline code, directives |
28
+
29
+ Do not assume every string value is translatable. IDs, paths, enum values, SQL, CSS, commands, hashes, telemetry names, and machine prompts may need to remain exact.
30
+
31
+ ## Translate with whole-file context
32
+
33
+ Read all related strings before translating a label. “Open,” “Close,” “Save,” or “Order” may be a verb, adjective, or noun. Determine grammatical gender, number, object, and screen context. Keep repeated product terms consistent without forcing one translation where the target language requires different inflection.
34
+
35
+ ## Handle ICU and plurals natively
36
+
37
+ Preserve the source argument names and branch selectors, but write each branch as an independent native sentence. The target language may need different plural categories or sentence order. When changing categories is allowed by the platform, follow the target locale's CLDR plural rules; otherwise flag the structural limitation instead of faking grammar.
38
+
39
+ Example source:
40
+
41
+ ```text
42
+ {count, plural, one {# file deleted} other {# files deleted}}
43
+ ```
44
+
45
+ The translated branches need not mirror “number + noun + verb” if the target language naturally orders the information differently. `{count}`, `#`, `one`, and `other` remain formatter syntax.
46
+
47
+ ## Preserve placeholders and markup
48
+
49
+ Treat these as protected unless the runtime specification says otherwise:
50
+
51
+ ```text
52
+ {{user_name}} ${total} %{count} {project} %s %1$d
53
+ https://example.com/path <strong>...</strong> `command --flag`
54
+ ```
55
+
56
+ Placeholders may move to a grammatically natural position but must not be renamed, dropped, duplicated, or malformed. HTML tags may move with the phrase they mark when nesting remains valid. Never expose raw markup to the reader to avoid a difficult grammar problem.
57
+
58
+ ## Validate mechanically and linguistically
59
+
60
+ Run the bundled guard on source and target files:
61
+
62
+ ```bash
63
+ python3 scripts/translation_guard.py source.json target.json --format json
64
+ python3 scripts/translation_guard.py source.md target.md --format text
65
+ python3 scripts/translation_guard.py source.html target.html --format html
66
+ ```
67
+
68
+ The guard checks structure, normalization, and protected tokens; it cannot judge meaning or naturalness. Follow it with the seven-pass quality gate in `SKILL.md`.
69
+
70
+ In HTML mode, the guard allows native translation of `alt`, `title`, `placeholder`, `aria-label`, and `aria-description`. It requires tag order, attribute names, technical attribute values, comments, declarations, scripts, and styles to remain intact. Placeholders, links, code, and other protected tokens inside translatable attributes must still match.
71
+
72
+ For formats not parsed by the guard, use the native parser or project test suite when available. Never rely only on visual inspection for machine-readable output.
@@ -0,0 +1,77 @@
1
+ # Translationese Review
2
+
3
+ ## Non-negotiable release rule
4
+
5
+ Do not ask only whether a native reader can understand the target. Ask whether a native writer, working from the same intent without seeing the source, would naturally choose substantially the same wording.
6
+
7
+ Fail the target when the answer is clearly no. Correct grammar cannot compensate for non-native phrasing, just as fluent phrasing cannot compensate for changed meaning.
8
+
9
+ ## Review agent-written target text
10
+
11
+ 1. Hide the source and read the target as original writing.
12
+ 2. Mark wording that is grammatical but unlikely in the stated locale, register, domain, or medium.
13
+ 3. Check collocations, parallel structure, paragraph flow, terminology, information order, and precision—not only spelling and grammar.
14
+ 4. Distinguish established target-language terminology from unnecessary source-language borrowing. Do not ban loanwords mechanically.
15
+ 5. Replace vague AI filler with the concrete relationship or operation already supported by the source.
16
+ 6. Rewrite from intent at clause or paragraph level. Do not preserve the candidate's sentence skeleton by swapping synonyms.
17
+ 7. Compare the rewrite with the source and restore any omitted limitation, uncertainty, fact, or relationship.
18
+
19
+ ## Common agent failure patterns
20
+
21
+ | Pattern | Why it fails | Required response |
22
+ | --- | --- | --- |
23
+ | Every sentence is grammatical, but the paragraph feels translated | Grammar was checked without a target-only native edit | Rewrite the paragraph from its meaning map |
24
+ | A list mixes products, activities, domains, and abstractions | Source categories were copied instead of expressed natively | Rebuild the list with parallel target-language forms |
25
+ | A source-language technical word appears although native terminology is normal | The model preserved a familiar token instead of choosing for the audience | Use the established target term unless the loanword is conventional |
26
+ | “Smart,” “seamless,” “appropriate,” or similar filler replaces the actual operation | The copy sounds polished while losing precision | Name what the system actually does without inventing a claim |
27
+ | Casual and formal words alternate inside one product paragraph | Sentences were optimized independently | Apply one audience, register, and product voice to the whole passage |
28
+
29
+ ## Swedish regression case: BLUN product copy
30
+
31
+ Target specification: contemporary neutral Swedish, professional European technology product copy, direct address, suitable for a public website.
32
+
33
+ ### Agent-written candidate
34
+
35
+ > BLUN samlar kraftfulla AI-modeller med kompletta arbetsytor för appar, webbplatser, mjukvaruutveckling, språk, bilder och automatiserade flöden. Istället för att byta verktyg för varje steg jobbar modeller, agenter, API:er och MCP-servrar tillsammans på en gemensam europeisk plattform.
36
+ >
37
+ > Med BLUN planerar du komplexa projekt, skriver professionell kod, analyserar dokument, bygger webbappar, skapar desktop- och mobilprogramvara, transkriberar samtal och genererar eller redigerar bilder. Du kan välja modell själv eller låta BLUN fördela uppgiften på ett smart sätt.
38
+
39
+ The candidate is understandable and largely grammatical, but it does not pass the native release gate:
40
+
41
+ - `appar, webbplatser, mjukvaruutveckling, språk, bilder och automatiserade flöden` mixes outputs, an activity, domains, media, and a process in one noun list;
42
+ - `jobbar` is more conversational than the surrounding professional product voice;
43
+ - `desktop- och mobilprogramvara` carries an avoidable English form where native phrasing is clearer;
44
+ - `fördela uppgiften på ett smart sätt` is generic AI filler and does not say what is distributed or how;
45
+ - `Istället` is understandable, while `I stället` is the more conservative choice for polished standard copy; treat this as a style decision, not the main defect.
46
+
47
+ ### Native rewrite
48
+
49
+ > BLUN samlar kraftfulla AI-modeller och kompletta arbetsytor för att bygga appar och webbplatser, utveckla programvara, arbeta med språk och bilder samt automatisera arbetsflöden. I stället för att byta verktyg i varje steg arbetar modeller, agenter, API:er och MCP-servrar tillsammans på en gemensam europeisk plattform.
50
+ >
51
+ > Med BLUN kan du planera komplexa projekt, skriva professionell kod, analysera dokument, bygga webbappar, utveckla programvara för datorer och mobila enheter, transkribera samtal samt generera eller redigera bilder. Du väljer själv vilken modell du vill använda – eller låter BLUN automatiskt fördela arbetet mellan de modeller som passar bäst för uppgiften.
52
+
53
+ The rewrite keeps the supported capabilities and European-platform claim. It rebuilds the mixed list as parallel actions, aligns the register, removes the avoidable Anglicism, and replaces vague “smart” wording with the intended model-selection relationship.
54
+
55
+ ### Second agent-written candidate
56
+
57
+ > BLUN samlar kraftfulla AI-modeller och fullständiga arbetsytor för appar, webbplatser, mjukvaruutveckling, språk, bilder och automatiserade flöden. I stället för att öppna ett nytt verktyg för varje steg samverkar modeller, agenter, API:er och MCP-servrar på en gemensam europeisk plattform.
58
+ >
59
+ > Med BLUN planerar du komplexa projekt, skriver professionell kod, analyserar dokument, bygger webbappar, utvecklar programvara för dator och mobil, transkriberar samtal och skapar eller redigerar bilder. Du väljer modell själv – eller låter BLUN fördela uppgiften till den modell som passar bäst.
60
+
61
+ This revision is smoother but still fails:
62
+
63
+ - the opening list still mixes products, activities, media, and processes instead of using parallel actions;
64
+ - `fullständiga arbetsytor` is possible but sounds more source-shaped here than the established product phrase `kompletta arbetsytor`;
65
+ - `programvara för dator och mobil` is understandable but less polished and precise than `programvara för datorer och mobila enheter`;
66
+ - `fördela uppgiften till den modell` uses `fördela` as if it meant selecting one recipient. Swedish naturally uses `välja` for this relationship;
67
+ - the source claim that model selection happens automatically is no longer explicit.
68
+
69
+ For a system that chooses one suitable model, use:
70
+
71
+ > Du väljer själv vilken modell du vill använda – eller låter BLUN automatiskt välja den modell som passar bäst för uppgiften.
72
+
73
+ This case prevents a common repair failure: improving the rhythm while leaving the underlying verb relationship or source claim incorrect.
74
+
75
+ ## Generalize the lesson
76
+
77
+ Apply the same test in every language and script. Do not memorize the Swedish replacements as a blacklist. Detect the underlying defect: source-shaped wording survived because the agent judged correctness from grammar and word correspondence instead of native usage, paragraph logic, register, and precision.