Expand description
Shared data types passed between the pipeline stages.
The data flow is:
introspect → ProjectProfile
interview → Intent
generate consumes both → writes files
verify reads the files → CheckResult per check
has_cli is the single branching point for the pure-library path
(design §5.1 “Pure-library path”). Everything downstream keys off it.
Structs§
- Diag
Note - One decision point recorded during introspection for
skillpack doctor.stageis the function/phase that recorded the note;noteis a short human-readable string doctor prints. - Diag
Trace - A chronological trace of introspection decisions, surfaced by
skillpack doctorto explain whyhas_clicame out the way it did (e.g. “python candidate: scripts entryfoopoints atfoo.cli:mainbut no importable dirfoo/at root — try src-layout orpip install -e .”). The trace is best-effort: every falsy branch in a candidate fn pushes one note before returningNone; happy paths push nothing (doctor’s signal is the negative branches, the success is reflected inhas_cliitself). - Intent
- What
skillpacklearned from the interactive interview (or fromskillpack.tomlwhen re-running non-interactively). Thegenerateandverifystages depend on these answers. - Project
Profile - What
skillpacklearned by reading the repo. Pure filesystem reads; the only side-effectful piece is a guarded--helpspawn, and only when a CLI binary is detected (has_cli = true). - Subcommand
Node - One node in the captured CLI subcommand tree.
nameis the subcommand as--helpadvertises it;helpis the captured<cli> <path...> --help(empty when that spawn failed or timed out — the node still exists because its name came from the parent’s--help);childrenare the sub-subcommands the node’s own--helpadvertises, in declaration order.