oh-my-agent-commandcode 0.0.0-stage → 20.38.4

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 (334) hide show
  1. package/README.md +35 -2
  2. package/filter-test-output.sh +52 -0
  3. package/mods/oma.ts +347 -0
  4. package/package.json +30 -4
  5. package/skills/_shared/conditional/experiment-ledger.md +28 -0
  6. package/skills/_shared/conditional/exploration-loop.md +22 -0
  7. package/skills/_shared/conditional/quality-score.md +33 -0
  8. package/skills/_shared/core/anti-ai-prose.md +191 -0
  9. package/skills/_shared/core/api-contracts/README.md +28 -0
  10. package/skills/_shared/core/api-contracts/template.md +90 -0
  11. package/skills/_shared/core/clarification-protocol.md +23 -0
  12. package/skills/_shared/core/code-intelligence.md +46 -0
  13. package/skills/_shared/core/collaboration-policy.md +28 -0
  14. package/skills/_shared/core/common-checklist.md +28 -0
  15. package/skills/_shared/core/context-budget.md +22 -0
  16. package/skills/_shared/core/context-loading.md +34 -0
  17. package/skills/_shared/core/difficulty-guide.md +26 -0
  18. package/skills/_shared/core/execution-policy.md +31 -0
  19. package/skills/_shared/core/lessons-learned.md +33 -0
  20. package/skills/_shared/core/prompt-structure.md +18 -0
  21. package/skills/_shared/core/quality-principles.md +11 -0
  22. package/skills/_shared/core/session-metrics.md +35 -0
  23. package/skills/_shared/core/skill-routing.md +39 -0
  24. package/skills/_shared/core/test-approach.md +54 -0
  25. package/skills/_shared/core/vendor-detection.md +52 -0
  26. package/skills/_shared/runtime/memory-protocol.md +118 -0
  27. package/skills/_shared/runtime/result-contract.md +64 -0
  28. package/skills/_shared/ui-interaction-quality.md +133 -0
  29. package/skills/oma-academic-writing/SKILL.md +181 -0
  30. package/skills/oma-academic-writing/resources/abstract-guide.md +51 -0
  31. package/skills/oma-academic-writing/resources/academic-verb-tiers.md +42 -0
  32. package/skills/oma-academic-writing/resources/anti-ai-checklist.md +52 -0
  33. package/skills/oma-academic-writing/resources/hedging-guide.md +132 -0
  34. package/skills/oma-academic-writing/resources/sentence-structure-reference.md +151 -0
  35. package/skills/oma-architecture/SKILL.md +203 -0
  36. package/skills/oma-architecture/resources/api-evolution.md +41 -0
  37. package/skills/oma-architecture/resources/checklist.md +42 -0
  38. package/skills/oma-architecture/resources/execution-protocol.md +115 -0
  39. package/skills/oma-architecture/resources/methodology-selection.md +92 -0
  40. package/skills/oma-architecture/resources/migration-patterns.md +28 -0
  41. package/skills/oma-architecture/resources/output-templates.md +111 -0
  42. package/skills/oma-architecture/resources/stakeholder-synthesis.md +80 -0
  43. package/skills/oma-backend/SKILL.md +202 -0
  44. package/skills/oma-backend/resources/checklist.md +45 -0
  45. package/skills/oma-backend/resources/error-playbook.md +97 -0
  46. package/skills/oma-backend/resources/execution-protocol.md +39 -0
  47. package/skills/oma-backend/resources/orm-reference.md +61 -0
  48. package/skills/oma-backend/variants/node/api-template.ts +315 -0
  49. package/skills/oma-backend/variants/node/snippets.md +475 -0
  50. package/skills/oma-backend/variants/node/stack.yaml +21 -0
  51. package/skills/oma-backend/variants/node/tech-stack.md +33 -0
  52. package/skills/oma-backend/variants/python/api-template.py +378 -0
  53. package/skills/oma-backend/variants/python/snippets.md +199 -0
  54. package/skills/oma-backend/variants/python/stack.yaml +18 -0
  55. package/skills/oma-backend/variants/python/tech-stack.md +45 -0
  56. package/skills/oma-backend/variants/rust/api-template.rs +635 -0
  57. package/skills/oma-backend/variants/rust/snippets.md +471 -0
  58. package/skills/oma-backend/variants/rust/stack.yaml +20 -0
  59. package/skills/oma-backend/variants/rust/tech-stack.md +36 -0
  60. package/skills/oma-backend/variants/stack.schema.json +73 -0
  61. package/skills/oma-brainstorm/SKILL.md +166 -0
  62. package/skills/oma-brainstorm/resources/triz-lite.md +117 -0
  63. package/skills/oma-coordination/SKILL.md +171 -0
  64. package/skills/oma-db/SKILL.md +201 -0
  65. package/skills/oma-db/resources/anti-patterns.md +177 -0
  66. package/skills/oma-db/resources/checklist.md +67 -0
  67. package/skills/oma-db/resources/document-templates.md +107 -0
  68. package/skills/oma-db/resources/error-playbook.md +50 -0
  69. package/skills/oma-db/resources/examples.md +170 -0
  70. package/skills/oma-db/resources/execution-protocol.md +127 -0
  71. package/skills/oma-db/resources/iso-controls.md +98 -0
  72. package/skills/oma-db/resources/migration-playbook.md +93 -0
  73. package/skills/oma-db/resources/query-tuning.md +57 -0
  74. package/skills/oma-db/resources/vector-db.md +159 -0
  75. package/skills/oma-debug/SKILL.md +146 -0
  76. package/skills/oma-debug/resources/bug-report-template.md +327 -0
  77. package/skills/oma-debug/resources/checklist.md +31 -0
  78. package/skills/oma-debug/resources/common-patterns.md +734 -0
  79. package/skills/oma-debug/resources/debugging-checklist.md +364 -0
  80. package/skills/oma-debug/resources/error-playbook.md +94 -0
  81. package/skills/oma-debug/resources/execution-protocol.md +40 -0
  82. package/skills/oma-design/SKILL.md +135 -0
  83. package/skills/oma-design/resources/asset-strategy.md +34 -0
  84. package/skills/oma-design/resources/checklist.md +63 -0
  85. package/skills/oma-design/resources/data-grid.md +48 -0
  86. package/skills/oma-design/resources/design-md-spec.md +107 -0
  87. package/skills/oma-design/resources/design-tokens.md +53 -0
  88. package/skills/oma-design/resources/error-playbook.md +18 -0
  89. package/skills/oma-design/resources/execution-protocol.md +95 -0
  90. package/skills/oma-design/resources/external-design-skills.md +130 -0
  91. package/skills/oma-design/resources/getdesign-fetcher.md +104 -0
  92. package/skills/oma-design/resources/product-interface-review.md +59 -0
  93. package/skills/oma-design/resources/redesign-protocol.md +52 -0
  94. package/skills/oma-design/resources/stitch-integration.md +244 -0
  95. package/skills/oma-dev-workflow/SKILL.md +375 -0
  96. package/skills/oma-dev-workflow/resources/affected-checks.py +58 -0
  97. package/skills/oma-dev-workflow/resources/api-workflows.md +58 -0
  98. package/skills/oma-dev-workflow/resources/database-patterns.md +107 -0
  99. package/skills/oma-dev-workflow/resources/i18n-patterns.md +63 -0
  100. package/skills/oma-dev-workflow/resources/release-coordination.md +240 -0
  101. package/skills/oma-dev-workflow/resources/tooling-profiles.md +217 -0
  102. package/skills/oma-dev-workflow/resources/troubleshooting.md +78 -0
  103. package/skills/oma-dev-workflow/resources/validation-pipeline.md +246 -0
  104. package/skills/oma-docs/SKILL.md +77 -0
  105. package/skills/oma-docs/resources/commands.md +76 -0
  106. package/skills/oma-explanation/SKILL.md +212 -0
  107. package/skills/oma-explanation/resources/document-structure.md +115 -0
  108. package/skills/oma-explanation/resources/draft-format.md +199 -0
  109. package/skills/oma-explanation/resources/html-contract.md +102 -0
  110. package/skills/oma-frontend/SKILL.md +227 -0
  111. package/skills/oma-frontend/resources/angular-rules.md +110 -0
  112. package/skills/oma-frontend/resources/checklist.md +76 -0
  113. package/skills/oma-frontend/resources/error-playbook.md +125 -0
  114. package/skills/oma-frontend/resources/execution-protocol.md +46 -0
  115. package/skills/oma-frontend/resources/snippets.md +354 -0
  116. package/skills/oma-frontend/resources/specialized-visual-implementation.md +193 -0
  117. package/skills/oma-frontend/resources/tailwind-rules.md +83 -0
  118. package/skills/oma-frontend/resources/tech-stack.md +156 -0
  119. package/skills/oma-hwp/SKILL.md +166 -0
  120. package/skills/oma-hwp/config/hwp-config.yaml +35 -0
  121. package/skills/oma-hwp/resources/balanced-tables.ts +39 -0
  122. package/skills/oma-hwp/resources/execution-protocol.md +145 -0
  123. package/skills/oma-hwp/resources/flatten-tables.ts +101 -0
  124. package/skills/oma-hwp/resources/package.json +13 -0
  125. package/skills/oma-hwp/resources/troubleshooting.md +70 -0
  126. package/skills/oma-hwp/resources/tsconfig.json +10 -0
  127. package/skills/oma-hwp/resources/turndown-plugin-gfm.d.ts +9 -0
  128. package/skills/oma-image/SKILL.md +142 -0
  129. package/skills/oma-image/config/image-config.yaml +70 -0
  130. package/skills/oma-image/resources/checklist.md +18 -0
  131. package/skills/oma-image/resources/execution-protocol.md +117 -0
  132. package/skills/oma-image/resources/invocation.md +105 -0
  133. package/skills/oma-image/resources/prompt-tips.md +71 -0
  134. package/skills/oma-image/resources/vendor-matrix.md +90 -0
  135. package/skills/oma-market/SKILL.md +142 -0
  136. package/skills/oma-market/resources/checklist.md +12 -0
  137. package/skills/oma-market/resources/error-playbook.md +12 -0
  138. package/skills/oma-market/resources/execution-protocol.md +60 -0
  139. package/skills/oma-market/resources/frameworks/pestel.md +101 -0
  140. package/skills/oma-market/resources/frameworks/porters-5f.md +90 -0
  141. package/skills/oma-market/resources/frameworks/swot.md +61 -0
  142. package/skills/oma-market/resources/intent-rules.md +35 -0
  143. package/skills/oma-market/resources/output-laws.md +53 -0
  144. package/skills/oma-mobile/SKILL.md +168 -0
  145. package/skills/oma-mobile/resources/checklist.md +77 -0
  146. package/skills/oma-mobile/resources/error-playbook.md +198 -0
  147. package/skills/oma-mobile/resources/execution-protocol.md +47 -0
  148. package/skills/oma-mobile/resources/screen-template.dart +331 -0
  149. package/skills/oma-mobile/resources/screen-template.swift +239 -0
  150. package/skills/oma-mobile/resources/screen-template.tsx +179 -0
  151. package/skills/oma-mobile/resources/tech-stack.md +69 -0
  152. package/skills/oma-mobile/variants/README.md +45 -0
  153. package/skills/oma-mobile/variants/flutter/api-template.dart +461 -0
  154. package/skills/oma-mobile/variants/flutter/snippets.md +1353 -0
  155. package/skills/oma-mobile/variants/flutter/stack.yaml +21 -0
  156. package/skills/oma-mobile/variants/flutter/tech-stack.md +201 -0
  157. package/skills/oma-mobile/variants/kotlin-android/api-template.kt +182 -0
  158. package/skills/oma-mobile/variants/kotlin-android/snippets.md +871 -0
  159. package/skills/oma-mobile/variants/kotlin-android/stack.yaml +32 -0
  160. package/skills/oma-mobile/variants/kotlin-android/tech-stack.md +159 -0
  161. package/skills/oma-mobile/variants/react-native/api-template.ts +531 -0
  162. package/skills/oma-mobile/variants/react-native/snippets.md +1014 -0
  163. package/skills/oma-mobile/variants/react-native/stack.yaml +22 -0
  164. package/skills/oma-mobile/variants/react-native/tech-stack.md +192 -0
  165. package/skills/oma-mobile/variants/stack.schema.json +68 -0
  166. package/skills/oma-mobile/variants/swift-ios/api-template.swift +165 -0
  167. package/skills/oma-mobile/variants/swift-ios/snippets.md +1028 -0
  168. package/skills/oma-mobile/variants/swift-ios/stack.yaml +25 -0
  169. package/skills/oma-mobile/variants/swift-ios/tech-stack.md +174 -0
  170. package/skills/oma-observability/SKILL.md +225 -0
  171. package/skills/oma-observability/resources/anti-patterns.md +555 -0
  172. package/skills/oma-observability/resources/boundaries/cross-application.md +348 -0
  173. package/skills/oma-observability/resources/boundaries/multi-tenant.md +290 -0
  174. package/skills/oma-observability/resources/boundaries/release.md +372 -0
  175. package/skills/oma-observability/resources/boundaries/slo.md +225 -0
  176. package/skills/oma-observability/resources/checklist.md +123 -0
  177. package/skills/oma-observability/resources/examples.md +448 -0
  178. package/skills/oma-observability/resources/execution-protocol.md +166 -0
  179. package/skills/oma-observability/resources/incident-forensics.md +348 -0
  180. package/skills/oma-observability/resources/intent-rules.md +307 -0
  181. package/skills/oma-observability/resources/layers/L3-network.md +281 -0
  182. package/skills/oma-observability/resources/layers/L4-transport.md +299 -0
  183. package/skills/oma-observability/resources/layers/L7-application/crash-analytics.md +359 -0
  184. package/skills/oma-observability/resources/layers/L7-application/mobile-rum.md +278 -0
  185. package/skills/oma-observability/resources/layers/L7-application/waf.md +246 -0
  186. package/skills/oma-observability/resources/layers/L7-application/web-rum.md +350 -0
  187. package/skills/oma-observability/resources/layers/mesh.md +368 -0
  188. package/skills/oma-observability/resources/matrix.md +177 -0
  189. package/skills/oma-observability/resources/meta-observability.md +605 -0
  190. package/skills/oma-observability/resources/observability-as-code.md +666 -0
  191. package/skills/oma-observability/resources/signals/audit.md +310 -0
  192. package/skills/oma-observability/resources/signals/cost.md +303 -0
  193. package/skills/oma-observability/resources/signals/logs.md +263 -0
  194. package/skills/oma-observability/resources/signals/metrics.md +478 -0
  195. package/skills/oma-observability/resources/signals/privacy.md +351 -0
  196. package/skills/oma-observability/resources/signals/profiles.md +245 -0
  197. package/skills/oma-observability/resources/signals/traces.md +360 -0
  198. package/skills/oma-observability/resources/standards.md +214 -0
  199. package/skills/oma-observability/resources/transport/collector-topology.md +308 -0
  200. package/skills/oma-observability/resources/transport/otlp-grpc-vs-http.md +256 -0
  201. package/skills/oma-observability/resources/transport/sampling-recipes.md +297 -0
  202. package/skills/oma-observability/resources/transport/udp-statsd-mtu.md +167 -0
  203. package/skills/oma-observability/resources/vendor-categories.md +352 -0
  204. package/skills/oma-orchestration/SKILL.md +302 -0
  205. package/skills/oma-orchestration/config/cli-config.yaml +92 -0
  206. package/skills/oma-orchestration/resources/memory-schema.md +232 -0
  207. package/skills/oma-orchestration/resources/subagent-prompt-template.md +30 -0
  208. package/skills/oma-orchestration/scripts/parallel-run.sh +6 -0
  209. package/skills/oma-orchestration/scripts/spawn-agent.sh +5 -0
  210. package/skills/oma-orchestration/scripts/verify.sh +20 -0
  211. package/skills/oma-orchestration/templates/backend-task.md +19 -0
  212. package/skills/oma-orchestration/templates/debug-task.md +16 -0
  213. package/skills/oma-orchestration/templates/frontend-task.md +18 -0
  214. package/skills/oma-orchestration/templates/mobile-task.md +18 -0
  215. package/skills/oma-orchestration/templates/qa-task.md +16 -0
  216. package/skills/oma-orchestration/templates/tasks-example.yaml +15 -0
  217. package/skills/oma-pdf/SKILL.md +162 -0
  218. package/skills/oma-pdf/config/pdf-config.yaml +27 -0
  219. package/skills/oma-pdf/resources/execution-protocol.md +127 -0
  220. package/skills/oma-pm/SKILL.md +157 -0
  221. package/skills/oma-pm/resources/error-playbook.md +75 -0
  222. package/skills/oma-pm/resources/examples.md +439 -0
  223. package/skills/oma-pm/resources/execution-protocol.md +62 -0
  224. package/skills/oma-pm/resources/iso-planning.md +110 -0
  225. package/skills/oma-pm/resources/plan-phase-protocol.md +66 -0
  226. package/skills/oma-pm/resources/task-template.json +86 -0
  227. package/skills/oma-qa/SKILL.md +141 -0
  228. package/skills/oma-qa/resources/checklist.md +339 -0
  229. package/skills/oma-qa/resources/error-playbook.md +98 -0
  230. package/skills/oma-qa/resources/execution-protocol.md +169 -0
  231. package/skills/oma-qa/resources/iso-quality.md +82 -0
  232. package/skills/oma-qa/resources/verify-ship-protocol.md +116 -0
  233. package/skills/oma-recap/SKILL.md +245 -0
  234. package/skills/oma-recap/resources/output-formats.md +83 -0
  235. package/skills/oma-refactor/SKILL.md +184 -0
  236. package/skills/oma-refactor/resources/definition.md +108 -0
  237. package/skills/oma-refactor/resources/governance.md +33 -0
  238. package/skills/oma-refactor/resources/hotspots.py +44 -0
  239. package/skills/oma-refactor/resources/measurement.md +93 -0
  240. package/skills/oma-scholar/SKILL.md +276 -0
  241. package/skills/oma-scholar/config/scholar-config.yaml +79 -0
  242. package/skills/oma-scholar/resources/api-endpoints.md +174 -0
  243. package/skills/oma-scholar/resources/checklist.md +92 -0
  244. package/skills/oma-scholar/resources/execution-protocol.md +224 -0
  245. package/skills/oma-scholar/resources/fallback-providers.md +143 -0
  246. package/skills/oma-scholar/resources/setup-openalex.md +85 -0
  247. package/skills/oma-scholar/resources/sidecar-spec.md +341 -0
  248. package/skills/oma-scholar/resources/upstream-spec-cache.md +972 -0
  249. package/skills/oma-scm/SKILL.md +103 -0
  250. package/skills/oma-scm/resources/cm-operations.md +56 -0
  251. package/skills/oma-scm/resources/codeowners-playbook.md +45 -0
  252. package/skills/oma-scm/resources/conventional-commits.md +108 -0
  253. package/skills/oma-scm/resources/merge-risk.md +76 -0
  254. package/skills/oma-scm/resources/onboarding-risk-signals.md +71 -0
  255. package/skills/oma-search/SKILL.md +125 -0
  256. package/skills/oma-search/resources/checklist.md +36 -0
  257. package/skills/oma-search/resources/error-playbook.md +66 -0
  258. package/skills/oma-search/resources/examples.md +80 -0
  259. package/skills/oma-search/resources/execution-protocol.md +86 -0
  260. package/skills/oma-search/resources/intent-rules.md +47 -0
  261. package/skills/oma-search/resources/trust-registry.md +53 -0
  262. package/skills/oma-security/SKILL.md +172 -0
  263. package/skills/oma-security/resources/artex.md +108 -0
  264. package/skills/oma-security/resources/ci.md +134 -0
  265. package/skills/oma-security/resources/cisco-source.md +108 -0
  266. package/skills/oma-security/resources/deepsec-config.md +45 -0
  267. package/skills/oma-security/resources/deepsec-matchers.md +35 -0
  268. package/skills/oma-security/resources/deepsec-scanning.md +45 -0
  269. package/skills/oma-security/resources/deepsec-setup.md +41 -0
  270. package/skills/oma-security/resources/findings-contract.md +408 -0
  271. package/skills/oma-security/resources/mcp-scanning.md +122 -0
  272. package/skills/oma-security/resources/skill-scanning.md +106 -0
  273. package/skills/oma-security/resources/validation.md +71 -0
  274. package/skills/oma-skill-creation/SKILL.md +84 -0
  275. package/skills/oma-skill-creation/resources/prompt-evaluation.md +36 -0
  276. package/skills/oma-skill-creation/resources/ssl-lite-template.md +108 -0
  277. package/skills/oma-skill-creation/resources/validation-checklist.md +101 -0
  278. package/skills/oma-slide/SKILL.md +277 -0
  279. package/skills/oma-slide/resources/animation-patterns.md +245 -0
  280. package/skills/oma-slide/resources/assets/deck-stage.js +514 -0
  281. package/skills/oma-slide/resources/assets/viewport-base.css +257 -0
  282. package/skills/oma-slide/resources/canva-integration.md +203 -0
  283. package/skills/oma-slide/resources/checklist.md +46 -0
  284. package/skills/oma-slide/resources/design-doctrine.md +260 -0
  285. package/skills/oma-slide/resources/fixed-stage.md +232 -0
  286. package/skills/oma-slide/resources/generation-protocol.md +393 -0
  287. package/skills/oma-slide/resources/native-pptx.md +84 -0
  288. package/skills/oma-slide/resources/selection-index.json +461 -0
  289. package/skills/oma-slide/resources/style-presets.LICENSE +10 -0
  290. package/skills/oma-slide/resources/style-presets.md +520 -0
  291. package/skills/oma-tf-infra/SKILL.md +201 -0
  292. package/skills/oma-tf-infra/resources/checklist.md +53 -0
  293. package/skills/oma-tf-infra/resources/cost-optimization.md +574 -0
  294. package/skills/oma-tf-infra/resources/error-playbook.md +68 -0
  295. package/skills/oma-tf-infra/resources/examples.md +38 -0
  296. package/skills/oma-tf-infra/resources/execution-protocol.md +129 -0
  297. package/skills/oma-tf-infra/resources/iso-42001-infra.md +229 -0
  298. package/skills/oma-tf-infra/resources/multi-cloud-examples.md +241 -0
  299. package/skills/oma-tf-infra/resources/policy-testing-examples.md +332 -0
  300. package/skills/oma-translation/SKILL.md +229 -0
  301. package/skills/oma-translation/resources/anti-ai-patterns.md +104 -0
  302. package/skills/oma-translation/resources/lang/_template.md +73 -0
  303. package/skills/oma-translation/resources/lang/en.md +123 -0
  304. package/skills/oma-translation/resources/lang/ja.md +274 -0
  305. package/skills/oma-translation/resources/lang/ko.md +228 -0
  306. package/skills/oma-translation/resources/lang/zh.md +285 -0
  307. package/skills/oma-translation/resources/style-skills.md +104 -0
  308. package/skills/oma-translation/resources/translation-rubric.md +126 -0
  309. package/skills/oma-video/SKILL.md +229 -0
  310. package/skills/oma-video/config/video-config.yaml +60 -0
  311. package/skills/oma-video/resources/checklist.md +26 -0
  312. package/skills/oma-video/resources/execution-protocol.md +122 -0
  313. package/skills/oma-video/resources/existing-media.md +185 -0
  314. package/skills/oma-video/resources/hyperframes-authoring/README.md +44 -0
  315. package/skills/oma-video/resources/hyperframes-authoring/demo.md +31 -0
  316. package/skills/oma-video/resources/hyperframes-authoring/explainer.md +10 -0
  317. package/skills/oma-video/resources/hyperframes-authoring/shorts.md +10 -0
  318. package/skills/oma-video/resources/motion-principles.md +81 -0
  319. package/skills/oma-video/resources/mpt/driver.py +301 -0
  320. package/skills/oma-video/resources/prompt-tips.md +75 -0
  321. package/skills/oma-video/resources/script-schema.md +81 -0
  322. package/skills/oma-video/resources/sound-design.md +127 -0
  323. package/skills/oma-video/resources/strudel/package.json +11 -0
  324. package/skills/oma-video/resources/strudel/page.html +87 -0
  325. package/skills/oma-video/resources/strudel/render.mjs +295 -0
  326. package/skills/oma-video/resources/vendor-matrix.md +124 -0
  327. package/skills/oma-voice/SKILL.md +249 -0
  328. package/skills/oma-voice/config/voice-config.yaml +30 -0
  329. package/skills/oma-voice/resources/audio-processing.md +119 -0
  330. package/skills/oma-voice/resources/checklist.md +47 -0
  331. package/skills/oma-voice/resources/execution-protocol.md +215 -0
  332. package/skills/oma-voice/resources/prompt-tips.md +43 -0
  333. package/skills/oma-voice/resources/voice-matrix.md +51 -0
  334. package/skills/oma-voice/resources/voicestudio.md +87 -0
@@ -0,0 +1,332 @@
1
+ # Policy and Testing Examples
2
+
3
+ OPA policies, Sentinel rules, and infrastructure testing patterns.
4
+
5
+ ## OPA (Open Policy Agent)
6
+
7
+ ### Required Tags Policy
8
+ ```rego
9
+ # policies/required_tags.rego — OPA >= 1.0
10
+ package terraform.tags
11
+
12
+ # Map-shaped tags only; ASG uses repeated tag blocks and needs a separate rule.
13
+ # Extend this allowlist only after validating the exact provider plan schema.
14
+ taggable := {"aws_instance", "aws_s3_bucket"}
15
+
16
+ deny contains msg if {
17
+ resource := input.resource_changes[_]
18
+ resource.mode == "managed"
19
+ resource.type in taggable
20
+ resource.change.after != null # ignore pure deletions
21
+ tags := object.get(resource.change.after, "tags", {})
22
+ required := {"Environment", "Project", "Owner", "CostCenter"}
23
+ missing := required - object.keys(tags)
24
+ count(missing) > 0
25
+ msg := sprintf("Resource %s missing tags: %v", [resource.address, missing])
26
+ }
27
+ ```
28
+
29
+ ### Encryption Policy
30
+ ```rego
31
+ # policies/encryption_required.rego
32
+ package terraform.encryption
33
+
34
+ # Require the project's configured SSE-KMS algorithm on explicit encryption
35
+ # resources. Bucket creation and existing remote configuration need separate
36
+ # coverage; a change-only plan cannot prove the full estate is encrypted.
37
+ deny contains msg if {
38
+ resource := input.resource_changes[_]
39
+ resource.type == "aws_s3_bucket_server_side_encryption_configuration"
40
+ resource.change.after != null
41
+ rule := resource.change.after.rule[_]
42
+ encryption := rule.apply_server_side_encryption_by_default[_]
43
+ encryption.sse_algorithm != "aws:kms"
44
+ msg := sprintf("%s must use aws:kms", [resource.address])
45
+ }
46
+ ```
47
+
48
+ Also verify every bucket created by the module has a corresponding encryption
49
+ resource (use module tests or the complete planned values/configuration). Unknown
50
+ planned values need explicit handling; field presence in the deprecated inline
51
+ bucket attribute is not proof of the required algorithm/key.
52
+
53
+ ### Cost Control Policy
54
+ ```rego
55
+ # policies/cost_control.rego
56
+ package terraform.cost
57
+
58
+ deny contains msg if {
59
+ resource := input.resource_changes[_]
60
+ resource.type == "aws_instance"
61
+ resource.change.after != null
62
+ resource.change.after.tags.Environment == "dev"
63
+ instance_type := resource.change.after.instance_type
64
+ not startswith(instance_type, "t3.")
65
+ msg := sprintf("Dev EC2 %s uses disallowed type %s", [resource.address, instance_type])
66
+ }
67
+ ```
68
+
69
+ ### Combined Plan Decision
70
+ ```rego
71
+ # policies/guardrails.rego
72
+ package terraform.guardrails
73
+
74
+ deny contains msg if { msg := data.terraform.tags.deny[_] }
75
+ deny contains msg if { msg := data.terraform.encryption.deny[_] }
76
+ deny contains msg if { msg := data.terraform.cost.deny[_] }
77
+ ```
78
+
79
+ Run policy unit tests, then evaluate the actual plan. Evaluating a deny set without
80
+ an exit-code flag does not gate CI. Query individual members with `--fail-defined`
81
+ so an empty set passes and any violation fails.
82
+
83
+ ## Sentinel (Terraform Cloud)
84
+
85
+ ### Require Encryption
86
+
87
+ Use the current `tfplan/v2` or `tfconfig/v2` import and match
88
+ `aws_s3_bucket_server_side_encryption_configuration` to the project's bucket
89
+ resources. Check the required algorithm/key and deletion/unknown-value cases.
90
+ Do not copy an inline `aws_s3_bucket.server_side_encryption_configuration`
91
+ existence check as an encryption guarantee; validate this rule against fixtures
92
+ from the exact provider/plan version before enabling a Sentinel gate.
93
+
94
+ ### Restrict Instance Types
95
+ ```hcl
96
+ # restrict_instance_types.sentinel
97
+ import "tfplan"
98
+
99
+ allowed_types = ["t3.micro", "t3.small", "t3.medium"]
100
+
101
+ main = rule {
102
+ all tfplan.resources.aws_instance as _, instances {
103
+ all instances as _, instance {
104
+ instance.applied.instance_type in allowed_types
105
+ }
106
+ }
107
+ }
108
+ ```
109
+
110
+ ## Native `terraform test` (Terraform >= 1.6)
111
+
112
+ Prefer the built-in HCL test framework for module tests before reaching for Terratest.
113
+
114
+ ```hcl
115
+ # tests/vpc.tftest.hcl
116
+ variables {
117
+ name = "test-vpc"
118
+ cidr_block = "10.0.0.0/16"
119
+ }
120
+
121
+ run "creates_vpc_with_expected_cidr" {
122
+ command = plan
123
+
124
+ assert {
125
+ condition = google_compute_network.main.name == "test-vpc"
126
+ error_message = "VPC name does not match input"
127
+ }
128
+ }
129
+
130
+ run "apply_and_verify_outputs" {
131
+ command = apply
132
+
133
+ assert {
134
+ condition = length(output.private_subnet_ids) == 2
135
+ error_message = "Expected 2 private subnets"
136
+ }
137
+ }
138
+ ```
139
+
140
+ Run with `terraform test`. `command = plan` runs assertion-only checks without creating resources; `command = apply` provisions real (or mocked, via `mock_provider`) resources and destroys them afterward.
141
+
142
+ ## Terratest (Go)
143
+
144
+ ### VPC Module Test
145
+ ```go
146
+ // vpc_test.go
147
+ package test
148
+
149
+ import (
150
+ "testing"
151
+ "github.com/gruntwork-io/terratest/modules/terraform"
152
+ "github.com/stretchr/testify/assert"
153
+ )
154
+
155
+ func TestVpcModule(t *testing.T) {
156
+ terraformOptions := &terraform.Options{
157
+ TerraformDir: "../modules/vpc",
158
+ Vars: map[string]interface{}{
159
+ "name": "test-vpc",
160
+ "cidr_block": "10.0.0.0/16",
161
+ "availability_zones": []string{"us-east-1a", "us-east-1b"},
162
+ },
163
+ }
164
+
165
+ defer terraform.Destroy(t, terraformOptions)
166
+ terraform.InitAndApply(t, terraformOptions)
167
+
168
+ vpcId := terraform.Output(t, terraformOptions, "vpc_id")
169
+ assert.NotEmpty(t, vpcId)
170
+
171
+ privateSubnets := terraform.OutputList(t, terraformOptions, "private_subnet_ids")
172
+ assert.Equal(t, 2, len(privateSubnets))
173
+ }
174
+ ```
175
+
176
+ ### Database Module Test
177
+ ```go
178
+ // database_test.go
179
+ package test
180
+
181
+ import (
182
+ "testing"
183
+ "github.com/gruntwork-io/terratest/modules/terraform"
184
+ "github.com/stretchr/testify/assert"
185
+ )
186
+
187
+ func TestDatabaseModule(t *testing.T) {
188
+ terraformOptions := &terraform.Options{
189
+ TerraformDir: "../modules/database",
190
+ Vars: map[string]interface{}{
191
+ "identifier": "test-db",
192
+ "engine": "postgres",
193
+ "instance_class": "db.t3.micro",
194
+ },
195
+ }
196
+
197
+ defer terraform.Destroy(t, terraformOptions)
198
+ terraform.InitAndApply(t, terraformOptions)
199
+
200
+ endpoint := terraform.Output(t, terraformOptions, "endpoint")
201
+ assert.Contains(t, endpoint, "rds.amazonaws.com")
202
+ }
203
+ ```
204
+
205
+ ## Kitchen-Terraform (Ruby)
206
+
207
+ ### VPC Controls
208
+ ```ruby
209
+ # controls/vpc.rb
210
+ control 'vpc-exists' do
211
+ describe aws_vpc('vpc-12345678') do
212
+ it { should exist }
213
+ its('cidr_block') { should eq '10.0.0.0/16' }
214
+ end
215
+ end
216
+
217
+ control 'subnets-exist' do
218
+ describe aws_subnets do
219
+ its('subnet_ids.count') { should be >= 2 }
220
+ end
221
+ end
222
+ ```
223
+
224
+ ### Security Group Controls
225
+ ```ruby
226
+ # controls/security_group.rb
227
+ control 'no-ssh-from-internet' do
228
+ aws_security_groups.group_ids.each do |sg_id|
229
+ describe aws_security_group(sg_id) do
230
+ it { should_not allow_in(port: 22, ipv4_range: '0.0.0.0/0') }
231
+ end
232
+ end
233
+ end
234
+ ```
235
+
236
+ ## CI/CD Integration
237
+
238
+ ### GitHub Actions Workflow
239
+ ```yaml
240
+ # .github/workflows/terraform.yml
241
+ name: Terraform
242
+
243
+ on: [push, pull_request]
244
+
245
+ jobs:
246
+ validate:
247
+ runs-on: ubuntu-latest
248
+ steps:
249
+ - uses: actions/checkout@v4
250
+
251
+ - name: Setup Terraform
252
+ uses: hashicorp/setup-terraform@v3
253
+
254
+ - name: Terraform Format
255
+ run: terraform fmt -check -recursive
256
+
257
+ - name: Terraform Validate
258
+ run: |
259
+ terraform init -backend=false
260
+ terraform validate
261
+
262
+ - name: Run TFLint
263
+ uses: terraform-linters/setup-tflint@v4
264
+ with:
265
+ tflint_version: latest
266
+ - run: tflint --init && tflint
267
+
268
+ - name: Run Checkov
269
+ uses: bridgecrewio/checkov-action@master
270
+ with:
271
+ directory: .
272
+ framework: terraform
273
+
274
+ - name: Setup OPA
275
+ uses: open-policy-agent/setup-opa@v2
276
+ with:
277
+ version: v1.0.1
278
+
279
+ # Configure project-specific workload identity and backend credentials
280
+ # before this planning step. Never put secrets in the plan artifact.
281
+ - name: Run OPA Tests
282
+ run: |
283
+ terraform init -reconfigure
284
+ terraform plan -out=tfplan
285
+ terraform show -json tfplan > tfplan.json
286
+ opa test policies/ --verbose
287
+ opa eval --fail-defined --data policies/ --input tfplan.json "data.terraform.guardrails.deny[_]"
288
+ ```
289
+
290
+ ### Validation Script
291
+ ```bash
292
+ #!/bin/bash
293
+ # validate.sh
294
+
295
+ set -e
296
+
297
+ echo "Running Terraform validation..."
298
+
299
+ # Format check
300
+ echo " → Checking format..."
301
+ terraform fmt -check -recursive
302
+
303
+ # Initialize
304
+ echo " → Initializing..."
305
+ terraform init -backend=false
306
+
307
+ # Validate
308
+ echo " → Validating..."
309
+ terraform validate
310
+
311
+ # Security scan with Checkov
312
+ echo " → Running Checkov..."
313
+ checkov -d . --framework terraform --quiet
314
+
315
+ # Lint with TFLint
316
+ echo " → Running TFLint..."
317
+ tflint --init
318
+ tflint
319
+
320
+ # Plan and OPA check (if policies exist)
321
+ if [ -d "policies" ]; then
322
+ echo " → Running OPA policy checks..."
323
+ # Requires explicitly configured backend/auth for this project.
324
+ terraform init -reconfigure
325
+ terraform plan -out=tfplan
326
+ terraform show -json tfplan > tfplan.json
327
+ opa test policies/
328
+ opa eval --fail-defined --data policies/ --input tfplan.json "data.terraform.guardrails.deny[_]"
329
+ fi
330
+
331
+ echo "All validation passed!"
332
+ ```
@@ -0,0 +1,229 @@
1
+ ---
2
+ name: oma-translation
3
+ description: Translate or revise localized UI strings and prose while preserving
4
+ meaning, terminology, placeholders, and structure.
5
+ ---
6
+
7
+ # Translation - Context-Aware Localization
8
+
9
+ ## Scheduling
10
+
11
+ ### Goal
12
+ Translate, review, or adapt multilingual content faithfully and naturally while preserving the
13
+ parts that must remain exact: placeholders, code, links, formatting, terminology, and file
14
+ structure.
15
+
16
+ ### Intent signature
17
+ - Translate, localize, review a translation, adapt copy, or create a glossary/style guide.
18
+ - Update target-language files after the source changed.
19
+
20
+ ### When to use
21
+ - UI strings, error messages, locale files, documentation, reports, marketing copy, and prose.
22
+ - Review of existing translations for accuracy, register, terminology, or naturalness.
23
+
24
+ ### When NOT to use
25
+ - i18n infrastructure, locale registration, or key extraction -> use the relevant development skill.
26
+ - Date/pluralization APIs or other code-level localization -> use the owning code-domain skill.
27
+
28
+ ### Expected inputs
29
+ - Source text, target language or locale, content type, and requested output mode.
30
+ - Existing locale files, glossary, surrounding context, and optional author sample.
31
+ - Placeholder and formatting constraints when the source is structured.
32
+
33
+ ### Expected outputs
34
+ - Natural target-language text or evidence-backed review findings.
35
+ - Exact preservation of placeholders, code spans, links, headings, list structure, and locale keys.
36
+ - Translator notes only for meaningful ambiguity or necessary cultural explanation.
37
+
38
+ ### Dependencies
39
+ - Target profile: `resources/lang/{code}.md`, if one exists.
40
+ - `resources/translation-rubric.md` for substantive content or review.
41
+ - Selected external prose-style skills for English and Korean; loading and execution
42
+ are defined in `resources/style-skills.md`.
43
+ - Shared prose diagnostics and translation exceptions for other target languages.
44
+ - Existing siblings and glossary when translating into a project.
45
+
46
+ ### Control-flow features
47
+ - Branches by UI batch versus prose, profile availability, locale variant, ambiguity, and review mode.
48
+ - Loads only the target profile and references required for the content type.
49
+ - Edits files only when the user asked for file changes.
50
+
51
+ ## Structural Flow
52
+
53
+ ### Entry
54
+ 1. Identify source, target locale, content type, and whether this is translate, review, or diff-sync.
55
+ 2. Preserve exact tokens first: placeholders, code, URLs, keys, and structural markers.
56
+ 3. Load the target profile if available; read sibling translations when the target is in a project.
57
+
58
+ ### Scenes
59
+ 1. **PREPARE**: Resolve locale, output mode, target audience, and protected syntax.
60
+ 2. **ACQUIRE**: Read the target profile, relevant siblings, glossary, and source context. Select the substantive prose-style route in the canonical workflow; keep short independent UI strings on the lightweight path.
61
+ 3. **REASON**: Determine meaning, register, terminology, cultural references, and any ambiguity. Decide whether an idiom should be interpreted, substituted, or retained.
62
+ 4. **ACT**: Write natural target-language text. Match established project patterns without adding meaning, opinion, or personality.
63
+ 5. **VERIFY**: Check protected syntax and structure. For substantive text, check meaning, terminology, register, and target-language naturalness against the rubric.
64
+ 6. **FINALIZE**: Return the requested text, patch, or review with only supported findings.
65
+
66
+ ### Transitions
67
+ - A profile exists -> load it; its target-language rules take precedence over shared guidance.
68
+ - A locale variant is required -> resolve it before drafting.
69
+ - No profile exists -> use shared guidance and note that limit once; do not borrow another language's rules.
70
+ - A short independent UI string with established siblings -> use protected-syntax and sibling checks; the full prose review is optional.
71
+ - Long prose, documentation, marketing copy, mixed tables/code, or review mode -> use the rubric.
72
+ - Ambiguous meaning that changes the result -> ask one targeted question or flag the choice.
73
+ - Diff-sync -> modify only source-touched equivalents, located by headings and surrounding context, not line number.
74
+
75
+ ### Failure and recovery
76
+ | Failure | Recovery |
77
+ |---|---|
78
+ | Missing target context | Use the source register and state the assumption, unless the ambiguity changes meaning |
79
+ | Conflicting literal wording and project convention | Follow the established target convention and explain a material difference |
80
+ | Placeholder or structure mismatch | Revise before emitting or applying a patch |
81
+ | Missing profile | Use shared guidance and identify the coverage limit once |
82
+ | Unclear cultural reference | Add a concise note only when the target audience needs it |
83
+ | Selected external style skill unavailable | Complete supported translation checks and report the unavailable style pass; do not substitute another language's style skill or claim it ran |
84
+
85
+ ### Exit
86
+ - Success: the text is faithful, natural, structurally safe, and checked in proportion to content risk.
87
+ - Partial: unresolved ambiguity, missing context, or an unavailable selected style pass
88
+ is stated without inventing an answer or claiming that pass ran.
89
+
90
+ ### Language profile loading
91
+
92
+ Resolve the BCP 47 primary subtag and load one matching profile when present:
93
+
94
+ | Target | Profile |
95
+ |---|---|
96
+ | Korean | `resources/lang/ko.md` |
97
+ | Japanese | `resources/lang/ja.md` |
98
+ | Chinese | `resources/lang/zh.md`; resolve the declared variant |
99
+ | English | `resources/lang/en.md` |
100
+ | Other | no profile; use shared guidance |
101
+
102
+ Profiles define typography, register, and target-language checks. Shared guidance explains common
103
+ risks. A profile wins if they conflict. Add a new profile from `resources/lang/_template.md` only
104
+ when the task is to extend this skill.
105
+
106
+ ### Translation method
107
+
108
+ 1. Read for meaning, intended effect, domain terms, and protected syntax. Identify figurative
109
+ wording as **interpret**, **substitute**, or **retain**. Do not add a new metaphor or remove an
110
+ intentional one without a reason.
111
+ 2. Choose register from the source, target audience, and sibling translations. Apply
112
+ `translation_voice` from `.agents/oma-config.yaml` only as a rhythm/formality preference:
113
+ `formal`, `balanced` (default), or `interpreter`. It never overrides meaning or target norms.
114
+ 3. Reconstruct in the target language. Change word order, split or merge sentences, and omit
115
+ implied subjects only when the target language calls for it.
116
+ 4. Preserve author style only where it belongs: prose, dialogue, adaptation, or explicitly
117
+ user-authored documentation. Match observable rhythm and diction, never add facts, stance,
118
+ jokes, first person, or stronger emotion.
119
+
120
+ ### Verification
121
+
122
+ Always check:
123
+
124
+ - Every placeholder, code span, identifier, URL, and locale key is unchanged.
125
+ - Headings, links, table rows, list nesting, and code blocks retain their structure.
126
+ - The target follows its profile's typography and register rules.
127
+ - Existing siblings are matched when they establish terminology or UI style.
128
+
129
+ For substantive content and review mode, also check the rubric: meaning, naturalness,
130
+ terminology, register, cultural fit, and emotional force. Apply the selected target-language
131
+ style route while preserving intentional source style and content.
132
+
133
+ ### Review mode
134
+
135
+ Review from evidence, not from an expectation that every draft is machine-translated. Record zero
136
+ findings when no material defect is confirmed. Separate:
137
+
138
+ - **Accuracy or safety defects**: changed meaning, broken placeholder, incorrect term, or wrong register.
139
+ - **Supported style findings**: a concrete target-language issue with a reason and proposed fix.
140
+ - **Preferences**: optional alternatives that do not make the existing translation wrong.
141
+
142
+ Do not rewrite a sound translation merely to produce findings.
143
+
144
+ ### Batch and diff-sync work
145
+
146
+ For batches, read the complete set first, translate values only, and maintain one terminology and
147
+ register decision. Verify placeholders and key structure across the set.
148
+
149
+ For diff-sync, map each source hunk by heading and surrounding context. Touch only the affected
150
+ target section; leave unrelated text byte-identical. State updated sections, skipped cosmetic
151
+ hunks, and material terminology decisions.
152
+
153
+ ### Output formats
154
+
155
+ For a single text, present the translation and brief notes for ambiguities or adaptations. For
156
+ files, preserve the input format and modify only requested values. For review, show the original,
157
+ the suggested revision only when warranted, and the evidence for each finding.
158
+
159
+ ## Logical Operations
160
+
161
+ ### Actions
162
+ | Action | SSL primitive | Evidence |
163
+ |---|---|---|
164
+ | Resolve locale and mode | `SELECT` | User request and file context |
165
+ | Read profile and siblings conditionally | `READ` | Target profile, glossary, nearby translations |
166
+ | Protect syntax and structure | `VALIDATE` | Source tokens and structural markers |
167
+ | Infer meaning and register | `INFER` | Source, audience, project convention |
168
+ | Translate or revise | `WRITE` | Target text or requested file patch |
169
+ | Review substantive content | `VALIDATE` | Rubric and concrete findings |
170
+ | Report result and limits | `NOTIFY` | Translation, patch, or review |
171
+
172
+ ### Tools and instruments
173
+ - Native search/read for local source and sibling translations.
174
+ - Configured `code_intelligence` capability when available for code-context navigation; native
175
+ search/read when it is unavailable or times out.
176
+ - Target profile, rubric, selected prose-style implementation, and language-template
177
+ resources as selected by the canonical workflow.
178
+
179
+ ### Canonical workflow path
180
+ 1. Resolve target locale and protect exact syntax.
181
+ 2. Load the one applicable language profile and relevant siblings; load the rubric for substantive
182
+ content or review. For substantive prose, select by the **target** BCP 47 primary subtag:
183
+ - `en` (including regional variants): load `resources/style-skills.md` and resolve `humanizer`.
184
+ - `ko` (including regional variants): load that resource and resolve `humanize-korean`.
185
+ - Other languages: load `../_shared/core/anti-ai-prose.md` with
186
+ `resources/anti-ai-patterns.md` and the target profile.
187
+ Short independent UI strings with established siblings need protected-syntax and
188
+ sibling checks; they do not require an external prose-style pass.
189
+ 3. Infer meaning, register, terminology, and figurative-language handling.
190
+ 4. Draft in natural target order and project style.
191
+ 5. Apply the selected style implementation to the draft, preserving review-only mode
192
+ and translation fidelity. Then verify exact syntax, terminology, source claims,
193
+ structure and diff-sync scope, and check substantive content against the rubric.
194
+ 6. Emit the requested translation, patch, or evidence-backed review. State a missing-profile or
195
+ context limitation when material.
196
+
197
+ ### Resource scope
198
+ | Scope | Resource target |
199
+ |---|---|
200
+ | `LOCAL_FS` | Source/target files, glossaries, language profiles |
201
+ | `CODEBASE` | Sibling translations and code context |
202
+ | `PROCESS` | Syntax checks and selected external-skill acquisition or local gates |
203
+ | `NETWORK` | Upstream style-skill retrieval when not already available |
204
+ | `MEMORY` | Locale, terminology, register, protected syntax, unresolved ambiguity |
205
+
206
+ ### Effects and side effects
207
+ - Produces translated text or review findings.
208
+ - Changes locale/docs files only when explicitly requested.
209
+ - Retains source structure, identifiers, and placeholders.
210
+ - May retrieve a missing selected style-skill bundle; reuses installed or cached
211
+ instructions. Upstream intermediate files stay in a writable scratch workspace.
212
+
213
+ ### Guardrails
214
+ 1. Preserve meaning, protected syntax, and file structure before stylistic preference.
215
+ 2. Do not invent facts, opinions, emotional emphasis, examples, citations, or personality.
216
+ 3. Do not use a different language's profile as a substitute.
217
+ 4. Do not change untouched sections during diff-sync.
218
+ 5. Do not claim completion of a check that the available source cannot support.
219
+
220
+ ## References
221
+
222
+ - Translation rubric: `resources/translation-rubric.md` (load for substantive content or review)
223
+ - Selected style skills: `resources/style-skills.md` (English or Korean substantive prose)
224
+ - Common prose diagnostics: `../_shared/core/anti-ai-prose.md` (other target languages, with translation exceptions when prose style needs review)
225
+ - Translation exceptions and grammar diagnostics: `resources/anti-ai-patterns.md` (other target languages, with common diagnostics when prose style needs review)
226
+ - Target profiles: `resources/lang/{ko,ja,zh,en}.md` (load one matching profile)
227
+ - Profile template: `resources/lang/_template.md` (only when adding a profile)
228
+ - Shared context loading: `../_shared/core/context-loading.md`
229
+ - Shared quality principles: `../_shared/core/quality-principles.md`
@@ -0,0 +1,104 @@
1
+ # Translation prose diagnostics
2
+
3
+ Load this file with `../../_shared/core/anti-ai-prose.md` and the target
4
+ `lang/{code}.md` when reviewing prose in a language without a selected external
5
+ style skill. English and Korean use `style-skills.md` instead. Common pattern
6
+ definitions live in the shared resource; this file owns fidelity exceptions and
7
+ translation-specific rules for the remaining language routes.
8
+
9
+ A target profile takes precedence for target-language usage; do not borrow a
10
+ different language's rules.
11
+
12
+ ## Fidelity exceptions
13
+
14
+ - Preserve meaning, claims, named sources, qualifiers, emotional force, terminology,
15
+ placeholders, code, links, locale keys, and required document structure.
16
+ - Do not add praise, authority, certainty, opinions, jokes, first person, examples,
17
+ numbers, or citations. A portability finding is not permission to invent specifics.
18
+ - Do not remove source content merely because a shared diagnostic flags it. In strict
19
+ translation, preserve the claim and intended emphasis in natural target wording;
20
+ flag a source problem separately when material. Deletion or reorganization belongs
21
+ to authorized adaptation or revision, not automatic translation cleanup.
22
+ - Classify source figurative language as interpret, substitute,
23
+ or retain. Do not add mannered metaphors, and do not flatten intentional source voice.
24
+ - Retain an intentional ending, uncertainty, research
25
+ question, or rhetorical effect when fidelity requires it. Do not intensify it.
26
+ - Preserve headings, lists, tables, formatting, and quoted chatbot
27
+ language when they are source content. Do not introduce decorative structure.
28
+ - Use the target profile's vocabulary examples. Five or more flagged
29
+ terms in one paragraph prompt contextual review, not automatic substitutions.
30
+ - Follow the target profile's dash conventions with at most one per
31
+ paragraph. Reconstruct the clause instead of swapping punctuation;
32
+ compare sibling wording before deciding the target syntax.
33
+ - Preserve source cadence where natural. Do not import academic
34
+ sentence-length targets, first-person bans, or paragraph templates.
35
+
36
+ ## Europeanized / Translation-ese Patterns
37
+
38
+ Patterns where the target text mimics source-language (typically English) grammar
39
+ instead of following native structure.
40
+
41
+ The categories below are shared. **Every example and every fix is
42
+ language-specific**, so the working version of each rule lives in
43
+ `lang/{code}.md` under "Localizations of shared rules". A profile may also
44
+ declare that a category does not apply to its language.
45
+
46
+ ### Unnecessary Connectives
47
+
48
+ AI over-inserts logical connectives (*therefore, however, additionally,
49
+ furthermore, moreover*) where context already implies the relationship. If the
50
+ previous sentence already carries the logic, drop the connective and let the
51
+ clause boundary do the work.
52
+
53
+ ### Passive Voice Abuse
54
+
55
+ English uses the passive far more than most target languages. Restructure to
56
+ active with an explicit agent unless the target genuinely prefers the passive in
57
+ that position, or the agent is unknown or deliberately suppressed.
58
+
59
+ ### Noun Pile-up (Long Modifier Chains)
60
+
61
+ English stacks modifiers before nouns. Most languages read better when the chain
62
+ is broken into shorter clauses.
63
+
64
+ Rule: 3 or more stacked modifiers before a noun → break into clauses. Some
65
+ languages need a tighter threshold; see the profile.
66
+
67
+ ### Over-nominalization
68
+
69
+ English uses abstract nouns plus a light verb ("conduct an analysis") where most
70
+ languages prefer a single verb ("analyze"). Watch for light-verb constructions in
71
+ the target and collapse them.
72
+
73
+ ### Awkward Pronoun Insertion
74
+
75
+ English requires explicit subjects. Pro-drop languages prefer omission when the
76
+ subject is clear from context, so calqued pronouns read as stammering.
77
+
78
+ Rule: if the subject has not changed and is clear from context, omit it. For
79
+ targets that are **not** pro-drop, the inverse applies: supply the subject the
80
+ source omitted rather than leaving a dangling clause.
81
+
82
+ ### Cleft Sentence Calques
83
+
84
+ English "It is X that ..." and "What matters is X" structures should not be
85
+ calqued. Most languages express the same emphasis with word order or a focus
86
+ particle.
87
+
88
+ ### Target-Language Typography and Fragments
89
+
90
+ Sentence-completion requirements, fragment tolerance by position, quotation
91
+ marks, dash glyphs, spacing between scripts, counters, and date and number
92
+ formats are entirely language-specific.
93
+
94
+ There is no shared rule here. See the typography and sentence-completion sections
95
+ of `lang/{code}.md`.
96
+
97
+ ---
98
+
99
+ ## Translation checks
100
+
101
+ Check protected syntax and document structure first. Then use the shared diagnostics
102
+ with the fidelity exceptions above, the translation rubric for substantive text,
103
+ and the target profile's grammar and typography checks. Report only supported accuracy or
104
+ style defects, separate optional preferences, and accept zero findings.