Usages:
  convention: .goga/usages/conventions.md

Annotations: |
  The `convention` practice is used for:
  - Working with the codebase
  - Organizing the REPL development cycle
  - Debugging and testing
  - Organizing the test infrastructure
  - Understanding the general principles and rules of development and testing in the project

  This cell owns the action catalog — the map of subscription addresses of
  the domains, each carrying its error class. The catalog is the single
  source of known addresses: a registration envelope is validated against
  it and an emitted address resolves through it. The catalog is data only —
  no package enumeration, no subscription state, no delivery. A domain
  opening an action extends the catalog additively; published records are
  never rewritten. The error class of a record states how a failing hook of
  the action is treated — soft failures are skipped with a warning, hard
  failures stop the command. Use relative imports.

---

"Action(domain: str, name: str, error_class: str)":
  location: catalog.py
  annotations: |
    One catalog record — a named subscription address with its error class.

    `domain`: the semantic owner of the action — the domain whose
              checkpoint emits the event
    `name`: the action name within its domain
    `error_class`: the failure treatment of the action's hooks — soft or hard

    Apply the `convention` practice for the data-model rules and
    intra-package imports.

    Requirements:
    - `domain` and `name` are non-empty; the pair is unique in the catalog
    - `error_class` is exactly soft or hard
    - The record carries no behavior — the context form and the event
      moment belong to the contract of the owner domain
  properties:
    "domain -> str": |
      The semantic owner domain of the action.
    "name -> str": |
      The action name within its domain.
    "error_class -> str": |
      The failure treatment of the action's hooks — soft or hard.

"declared_actions() -> actions: list[Action]":
  location: catalog.py
  annotations: |
    The declared action catalog — the single source of known addresses.

    `actions`: every declared record, ordered by domain then by name

    Apply the `convention` practice for docstring style and intra-package
    imports.

    Algorithm:
    1. Return the catalog records ordered by domain, then by name

    Requirements:
    - Deterministic — the same records in the same order on every call
    - Complete — no filtering and no partial views
    - The catalog carries the statuses action — the record
      domain="statuses", name="register_statuses", error_class="soft": a
      failing hook of the action is skipped with a warning and the command
      continues
    - The catalog carries the onboarding session-declaration action — the
      record domain="onboarding", name="declare_session", error_class="soft":
      a failing hook of the action is skipped with a warning and the sequence
      continues
    - The catalog carries the onboarding config-amendment action — the
      record domain="onboarding", name="amend_config", error_class="soft": a
      failing hook of the action is skipped with a warning and the sequence
      continues
    - The catalog carries the topics creation-notification action — the
      record domain="topics", name="topic_created", error_class="soft": a
      failing hook of the action is skipped with a warning and the command
      continues
    - The catalog carries the topics publication-notification action — the
      record domain="topics", name="topic_published", error_class="soft": a
      failing hook of the action is skipped with a warning and the command
      continues
    - The catalog carries the topics switch-notification action — the
      record domain="topics", name="topic_switched", error_class="soft": a
      failing hook of the action is skipped with a warning and the command
      continues
    - The catalog carries the topics todo-entry-notification action — the
      record domain="topics", name="topic_todo_entered", error_class="soft":
      a failing hook of the action is skipped with a warning and the command
      continues
    - The catalog carries the topics deletion-notification action — the
      record domain="topics", name="topic_deleted", error_class="soft": a
      failing hook of the action is skipped with a warning and the command
      continues
    - The catalog carries the topics creation-amendment action — the record
      domain="topics", name="amend_creation", error_class="soft": a failing
      hook of the action is skipped with a warning and the command continues
    - The catalog carries the topics todo-entry-amendment action — the
      record domain="topics", name="amend_todo_entry", error_class="soft": a
      failing hook of the action is skipped with a warning and the command
      continues
    - The catalog carries the pipeline workflow-amendment action — the
      record domain="pipeline", name="amend_workflow", error_class="hard":
      the first failing hook of the action stops the command with a clean
      error naming the tool
    - The catalog carries the pipeline run-creation notification action —
      the record domain="pipeline", name="run_created", error_class="soft":
      a failing hook of the action is skipped with a warning and the command
      continues
    - The catalog carries the pipeline run-completion notification action —
      the record domain="pipeline", name="run_completed", error_class="soft":
      a failing hook of the action is skipped with a warning and the command
      continues
    - The catalog carries the build validation-gate action — the record
      domain="build", name="validate_build", error_class="hard": a veto
      stops the build before any pass with one merged error; the domain's
      delivery walk runs every subscribed tool's hooks to completion — a
      deliberate domain-local deviation from the stop-at-first-failure hard
      semantics
    - The catalog carries the build start-notification action — the record
      domain="build", name="build_started", error_class="soft": a failing
      hook of the action is skipped with a warning and the run continues
    - The catalog carries the build pass-start notification action — the
      record domain="build", name="pass_started", error_class="soft": a
      failing hook of the action is skipped with a warning and the pass
      launches
    - The catalog carries the build pass-completion notification action —
      the record domain="build", name="pass_completed", error_class="soft":
      a failing hook of the action is skipped with a warning; the completion
      fact is already delivered
    - The catalog carries the build completion notification action — the
      record domain="build", name="build_completed", error_class="soft": a
      failing hook of the action is skipped with a warning; the run's exit
      code is unaffected
    - The catalog carries the config amendment action — the record
      domain="config", name="amend_config", error_class="hard": the first
      failing tool of the action stops the command with a clean error
      naming the tool and the action; a structurally malformed
      contribution of the delivery is treated identically
    - The catalog carries the schema cell-amendment action — the record
      domain="schema", name="amend_cell", error_class="hard": the first
      failing hook of the action — a crashed hook or a structurally
      malformed contribution — stops the command with a clean error
      naming the tool, the action, and the failing cell path
    - The catalog carries the schema validation-gate action — the
      record domain="schema", name="validate_schema",
      error_class="hard": a veto or a crashed hook of the action stops
      the schema command; the walk runs every subscribed tool's hooks
      to completion and collects one violation per tool
    - The catalog carries the usages sync-start notification action —
      the record domain="usages", name="sync_started", error_class="soft":
      a failing hook of the action is skipped with a warning and the
      operation continues
    - The catalog carries the usages sync-completion notification action
      — the record domain="usages", name="sync_completed",
      error_class="soft": a failing hook of the action is skipped with a
      warning; the completion facts are already delivered
    - The catalog carries the usages status-start notification action —
      the record domain="usages", name="status_started", error_class="soft":
      a failing hook of the action is skipped with a warning and the
      operation continues
    - The catalog carries the usages status-completion notification action
      — the record domain="usages", name="status_completed",
      error_class="soft": a failing hook of the action is skipped with a
      warning; the completion facts are already delivered
    - The catalog carries the topics update-notification action — the
      record domain="topics", name="topic_updated", error_class="soft": a
      failing hook of the action is skipped with a warning and the command
      continues
    - The catalog carries the topics propagate-notification action — the
      record domain="topics", name="topic_propagated", error_class="soft":
      a failing hook of the action is skipped with a warning and the
      command continues
    - The catalog carries the contract amendment action — the record
      domain="contract", name="amend_contract", error_class="hard": the
      first failing hook of the action — a crashed hook, a structurally
      malformed contribution, or a contribution addressed to a type the
      cell does not declare — stops the command with a clean error naming
      the tool, the action, and the failing cell path, and the offending
      type name for a bad address

    Constraints:
    - Do not derive records from installed packages or imports — the
      catalog is maintained data, not discovery

---

Author: Goga
CreatedAt: 31/08/26
Description: |
  Owner of the action catalog — the subscription addresses of the domains
  with their error classes.
