Locale Phase 1: output_language_pair contract and provisional es-ES ownership record

Author: Imbad0202Created Sep 13, 2026Updated Sep 16, 2026
Labelsenhancement

Follow-up to #850 (closed as completed). This issue carries two things: the Phase 1 design sketch for the output-language pair, and the provisional es-ES ownership record.

Phase 1 scope (from the maintainer's acceptance spec on #850)

A default-preserving abstract-pair refactor:

  • a new shared/output_language_pair.md contract with the current pair (English + Traditional Chinese) as the default;
  • the per-run field in shared/handoff_schemas.md (Schema 4), with legacy serialized fields preserved;
  • consumers updated: academic-paper/SKILL.md, intake_agent.md, abstract_bilingual_agent.md, structure_architect_agent.md, formatter_agent.md, references/abstract_writing_guide.md, references/workflow_phase_details.md, references/mode_selection_guide.md, templates/bilingual_abstract_template.md, commands/ars-abstract.md;
  • an unsupported-pair value that fails visibly rather than silently falling back;
  • a lint in scripts/check_spec_consistency.py with tests;
  • a fixture under tests/fixtures/output_language_pair/ covering omitted, default, and unsupported values;
  • CHANGELOG entry.

Acceptance criterion: byte-equivalent behaviour when the field is absent.

Process: post the design sketch here first. The schema change is agreed on this issue before any PR opens. Out of Phase 1 scope (deferred, see #850 answer 2): citation-guide mapping, example sets, fonts. Trigger phrases are their own track (#856).

Provisional es-ES ownership record

Per the CONTRIBUTING.md amendment in #863:

  • Primary owner (provisional): @didacrios, pending explicit acceptance of the locale-pack responsibilities on this issue once the amendment merges.
  • Backup owner: not yet named.
  • Status: provisional application. Not a supported pack until two owners have accepted and the pack carries current validation evidence.
  • Backup deadline: opens with the first minor release after both (a) Phase 1 has shipped and (b) primary ownership is confirmed here. The release that ships Phase 1 does not count. The maintainer records the qualifying release and the 14-day deadline on this issue when that release is tagged.
  • If the window closes without a backup: the application lapses. Reapplication requires two accepted owners and current evidence.

Related

  • #850 design discussion and the four answers
  • #861 locale-pack policy
  • #855 es-ES README (merged), #856 es-ES trigger phrases (open)

Source: Imbad0202/academic-research-skills