Skip to content

ECO-CANON-1: повний перехід на Canon + мовно-нейтральна таблиця функцій #75

Description

@juv4uk

Рішення власника — 2026-09-11

Повністю перевести my-lisp на Canon як єдину таблицю semantic identities і зробити повну machine-readable таблицю функцій/операцій.

Принцип

CANON = незмінна identity/meaning, не Environment і не display spelling. Назви поверхонь можуть змінюватися; meaning та semantic ID — ні. my-lisp тут є semantic authority.

Робота

  • Аудитувати всі primitive/special-form/builtin/library identities, aliases, hard-coded spellings, локальні registry/table copies та місця, де ASCII-ім'я використовується як identity.
  • Звести authority у Canon/semantic-registry та versioned language contract; generated projections мають походити з authority, а не копіювати факти вручну.
  • Створити/довести до повноти machine-readable таблицю функцій з полями щонайменше: canonical identity, semantic ID, формальна семантична дія, surface/display projections, authority/owner, status (stable/provisional-stable/local-only), implementation projection і executable witness.
  • У людському поданні таблиці surface-колонки мають іти в такому порядку: УкраїнськаПовна українськаEnglishSanskrit → інші наявні projections.
  • Повна українська — окрема projection-колонка тієї самої semantic identity, а не нова identity і не друга реалізація. Вона призначена для повнослівного українського source-стилю: без локальних програмістських скорочень за замовчуванням; міжнародні технічні позначення можуть бути явно дозволені. До ратифікації конкретної назви клітинка може мати статус candidate/needs-review, але не повинна вгадуватися автоматично.
  • Поточна Українська лишається compatibility/stable surface там, де це вже ратифіковано; перехід на повнослівну форму не повинен ламати старий код.
  • Не робити display-рядок identity. Не допускати двох різних таблиць істини для однієї функції.
  • Canon-факти мають формулюватися через спостережувану поведінку, без Rust-лексики як семантичної норми.
  • Додати drift/mutation tests: зміна spelling не змінює identity; невідомий/відсутній semantic ID fail-closed; дубль/колізія identity відхиляється.

Acceptance

  • Для всіх публічних/канонічних функцій є одна machine-readable identity row і чіткий статус.
  • Кожен рядок явно показує Українська і Повна українська поруч; повна форма або заповнена, або чесно позначена як така, що потребує огляду.
  • Surface aliases ведуть до тієї самої identity, а не до дубльованих реалізацій.
  • Споживачі можуть генерувати свої projection tables із Canon без hand-copy.
  • Existing conformance лишається green; нові negative/mutation witnesses доводять, що drift ловиться.

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

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions