Skip to content

skills/objectstack-i18n: the _actions row and the translation-target-unknown paragraph omit the action-entry keys os validate judges (param options, outcomeMessages, resultDialog leaves and fields) #21583

Description

@objectstack-fleet

Filed on the maintainer's instruction, given in session session_01UtnxvdiN376GF3sgXwAw4d's chat and quoted verbatim: 「1. 一处技能文档修改等您动手: skills/objectstack-i18n/SKILL.md 有一处修改没有建卡,你应该创建issue」. Until now this was a debt without a card, recorded on the domain:spec seat post #6017 under "Owed by this seat, no card". Filed by domain:spec seat 1 after stand-down. ⛔ Filed bare: routing and grading are triage's. ⛔ Not a claim.

What is wrong (read on origin/main cc645f2385)

The published skill skills/objectstack-i18n/SKILL.md teaches the translation-bundle shape that agents write. It lags what os validate / os lint / os compile now judge under an action entry. Those rules came with #21216 (PR #21258), #21264 (PR #21304) and #21261. The reference page, content/docs/protocol/kernel/i18n-standard.mdx :1039–:1058, already states every rule. The skill states only part of them.

  1. The _actions.{action_name} row (:164) lists label, description, confirmText, successMessage, params.{param_name} and a bare resultDialog. Missing:

    • params.{param}.options.{value}: a param's inline option values. A wrong key is a translation-option-key-unknown warning. A param that references a field with no inline options is not judged.
    • outcomeMessages.{outcome}: an outcome the action's own outcomeMessages declares.
    • resultDialog.title / .description / .acknowledge: valid only when the action declares a resultDialog. Under an action that declares none, they are a translation-target-unknown error (checkActionResultDialogLeaves, packages/lint/src/validate-translation-references.ts :2065).
    • resultDialog.fields.{path}: the literal path of a field in resultDialog.fields[], dots included (client.secret is one key).
    • The same sub-keys hold under globalActions.{action} (checkActionEntry, called from both loops).
  2. The globalActions line (:170) reads "(object-less actions)". It matches lint: os validate refuses a bound action's globalActions translation key as "never read", but the spec's own i18n resolver reads it as the object-scoped key's fallback #21261. It does not say that a globalActions key naming a bound action is an error, or that the message names the objects.{owner}._actions.{action} key to write instead (i18n-standard.mdx :1053).

  3. The translation-target-unknown paragraph (:198–:202) lists what a key can fail to name: "object, field, view, tab, action, param, section, validation rule, app, nav item, dashboard, widget or flow screen". It omits three cases that are now errors:

    • an outcome the action does not declare;
    • a result-dialog field path the action does not declare;
    • result-dialog copy under an action with no resultDialog.

    It also does not say that param option keys share the option warning.

Reach: an agent that authors a bundle from this skill gets no warning about any of these shapes:

  • it has no way to learn that outcomeMessages and resultDialog.fields copy is keyable;
  • it gets no warning that dialog copy under a dialog-less action fails os validate with an error;
  • it is not told that a bound action's copy under globalActions is refused.

The skill's own pointer to translation.zod.ts does not cover the lint's cross-reference rules.

Direction (for triage, not a ruling)

Dedupe

All 134 open issues and PRs were listed over REST, and the 300 most recently updated closed ones. Their titles and bodies were grepped for objectstack-i18n, i18n/SKILL, resultDialog and outcomeMessages. The hits are:

None carries this edit.

Dedupe words: objectstack-i18n skill _actions outcomeMessages resultDialog · translation-target-unknown skill paragraph · i18n SKILL.md Tier H action keys

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:i18nThe customer's own language, across UI, metadata and notificationsdocumentationImprovements or additions to documentationdomain:skillspriority:p2Medium: important, M3

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions