schema: ai-cjm-component-contract/v1 id: process version: 1.0.0 status: stable owner: AI CJM Design purpose: Объясняет последовательность работы от задачи к результату. use_when: - Есть упорядоченные этапы метода или проекта. evidence: - id: production-style url: https://aicjm.ru/edu/styles.css?v=20260811-edu-canon locator: .method-steps, .method-steps li, .method-step-links supports: - anatomy - variant:linear - variant:phase-grid - size:default - state:default - id: production-dom url: https://aicjm.ru/edu/ locator: ol.method-steps > li supports: - approved-example - content anatomy: - id: step-list required: true role: Упорядоченный список. - id: step-index required: true role: Номер этапа. - id: step-title required: true role: Короткий результат этапа. - id: step-body required: true role: Работа и артефакт. - id: connector required: false role: Несмысловая линия последовательности. variants: - id: linear status: stable description: Последовательность этапов. evidence_refs: - production-style - id: phase-grid status: stable description: Группировка этапов по фазам. evidence_refs: - production-style sizes: - id: default status: stable description: Размер определяется содержимым и перечисленными semantic/component tokens; raw dimensions запрещены. evidence_refs: - production-style states: default: status: stable basis: observed description: default is observed at the exact production locator in evidence_refs. evidence_refs: - production-style hover: status: not-applicable basis: not-applicable description: hover is not owned by process. focus-visible: status: not-applicable basis: not-applicable description: focus-visible is not owned by process. active: status: not-applicable basis: not-applicable description: active is not owned by process. selected: status: not-applicable basis: not-applicable description: selected is not owned by process. open: status: not-applicable basis: not-applicable description: open is not owned by process. disabled: status: not-applicable basis: not-applicable description: disabled is not owned by process. loading: status: not-applicable basis: not-applicable description: loading is not owned by process. success: status: not-applicable basis: not-applicable description: success is not owned by process. error: status: not-applicable basis: not-applicable description: error is not owned by process. empty: status: not-applicable basis: not-applicable description: empty is not owned by process. responsive: mode: five-step-grid-to-linear-sequence reading_order: DOM order remains authoritative in every mode. rules: - Keep numbered step order identical to DOM order. - Reflow the five-column sequence through fewer columns and finally one column. - Remove purely decorative connectors when they cannot preserve the sequence. accessibility: pattern: ordered-process-list semantics: - Use an ordered list with headings for steps; decorative numbers remain hidden when repeated. keyboard: - The process owns no keyboard behavior; step links use text-link. focus: - Focus follows the ordered source sequence. motion: - Connector and entrance motion are optional and removed under reduced motion. tokens: - surface.page - surface.subtle - text.primary - text.secondary - action.primary - border.default - type.size.heading-small - type.weight.heading content: required: - Задача. - Работа. - Артефакт. - Результат каждого этапа. constraints: - Порядок не зависит от визуального положения. - Этапы начинаются с результата или действия. do: - Использовать ol для строгой последовательности. dont: - Не заменять этапы абстрактными иконками. examples: approved: status: stable description: Компонент process в указанном scoped production locator. evidence: https://aicjm.ru/edu/ prohibited: description: Не заменять этапы абстрактными иконками. acceptance: - id: process-1 criterion: Screen reader получает правильный порядок. method: manual - id: process-2 criterion: Connector не несёт единственный смысл. method: manual