Purpose
-------
The ``oct.scaffold`` subpackage: helpers that create a new Option
C-compliant project tree. This file is the package's public face; the
CLI entry point (:func:`oct.cli.scaffold`) is a thin dispatcher and the
real work lives in :func:`oct.scaffold.oct_scaffold.run_scaffold`.
Responsibilities
----------------
- Re-export the two names callers need: :class:`ScaffoldResult` (the
structured outcome) and :func:`run_scaffold` (the entry point).
- Keep the import path stable, so a caller writes
``from oct.scaffold import run_scaffold`` and is unaffected when the
implementation module is reorganised.
Diagnostics
-----------
Domain: OCT-SCAFFOLD
Levels:
L1 - errors: none raised here; run_scaffold owns failure reporting
L2 - lifecycle: none; this shell performs no work
L3 - semantic: none
L4 - deep tracing: the module load, so an import-order problem in the
scaffolder is visible in a trace
Contracts
---------
- Re-export only. No logic, no IO, no click import.
- Unlike :mod:`oct.migrate`, this package imports its implementation
EAGERLY, because both names are types/functions callers reference
directly rather than a lazily-built command group.
- ``__all__`` is the supported surface; anything else reachable through
this module is an implementation detail.
Dependencies
------------
- oct.scaffold.oct_scaffold (ScaffoldResult, run_scaffold)
- oct.core.diagnostics (_dbg structured logger)