diff --git a/goals/G-019-dependency-scan-module-trimming.md b/goals/G-019-dependency-scan-module-trimming.md index 142fe627..f5ac6376 100644 --- a/goals/G-019-dependency-scan-module-trimming.md +++ b/goals/G-019-dependency-scan-module-trimming.md @@ -2,7 +2,7 @@ Status: proposed Scope: src/make.tcl; src/modules/punk/lib-999999.0a1.0.tm (tclparser use); src/vfs/ (kit assembly); scanning module (new or existing punk module - to be determined) -Goal: a package-dependency scan from an executable's entrypoint (candidate basis: the tclparser parse API - currently satisfied only by the c-only tclparser library, with punk::lib's pure-Tcl fallback an unimplemented stub) determines the module closure the executable actually requires, so a build can ship only those modules - while 'batteries included' builds remain a supported alternative, not a casualty. +Goal: a package-dependency scan from an executable's entrypoint (candidate basis: the tclparser parse API - c library preferred where present, punk::lib's parity-tested pure-Tcl fallback engaging automatically otherwise, so the scan can run on any tclsh - G-070) determines the module closure the executable actually requires, so a build can ship only those modules - while 'batteries included' builds remain a supported alternative, not a casualty. Acceptance: for at least one punk-based executable target, the build can run a dependency scan from its entrypoint producing the closure of required packages/modules plus a mechanism to declare dynamically-loaded extras the scan cannot see; a trimmed kit assembled from that closure starts and passes its basic function check (e.g. repl launch or the app's smoke test) with no missing-package errors; the trimmed kit's module listing is a strict subset of the batteries-included equivalent (demonstrating real exclusion); batteries-included builds remain producible unchanged. ## Context @@ -35,9 +35,7 @@ Using the C library inside build tooling previously made the build depend on a native binary - intersecting the G-004/G-005/G-006 binary-provenance story (zig-built or consent-downloaded, never committed). With G-070 achieved that coupling is gone for the parse-command analysis surface: the scan can run on -any tclsh, with the c library an optional performance upgrade. (This goal's -Goal: line still describes the fallback as an unimplemented stub - contract -wording predating the G-070 flip.) +any tclsh, with the c library an optional performance upgrade. ## Approach