8The ``oct.scaffold`` subpackage: helpers that create a new Option
9C-compliant project tree. This file is the package's public face; the
10CLI entry point (:func:`oct.cli.scaffold`) is a thin dispatcher and the
11real work lives in :func:`oct.scaffold.oct_scaffold.run_scaffold`.
15- Re-export the two names callers need: :class:`ScaffoldResult` (the
16 structured outcome) and :func:`run_scaffold` (the entry point).
17- Keep the import path stable, so a caller writes
18 ``from oct.scaffold import run_scaffold`` and is unaffected when the
19 implementation module is reorganised.
25 L1 - errors: none raised here; run_scaffold owns failure reporting
26 L2 - lifecycle: none; this shell performs no work
28 L4 - deep tracing: the module load, so an import-order problem in the
29 scaffolder is visible in a trace
33- Re-export only. No logic, no IO, no click import.
34- Unlike :mod:`oct.migrate`, this package imports its implementation
35 EAGERLY, because both names are types/functions callers reference
36 directly rather than a lazily-built command group.
37- ``__all__`` is the supported surface; anything else reachable through
38 this module is an implementation detail.
42- oct.scaffold.oct_scaffold (ScaffoldResult, run_scaffold)
43- oct.core.diagnostics (_dbg structured logger)
46from oct.core.diagnostics
import _dbg
49_dbg(
"OCT-SCAFFOLD",
"module",
"loaded", 4)
51__all__ = [
"ScaffoldResult",
"run_scaffold"]