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

No activity

Activity on this issue will appear here.

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