-- lib-core.api-discovery — Pure-Lua surface-discovery + README-parsing. -- See: meta/docs/superpowers/specs/2026-05-16-api-doc-convention-design.md local M = {} -- Extracts public/private surface from Lua source code. -- Convention: `M. = function(...)` is public; `M._ = ...` is private. -- Returns: { public = ["foo","bar",...], private = ["_baz",...] } function M.parse_lua_surface(source_string) local public = {} local private = {} for name in string.gmatch(source_string, "M%.([_%w]+)%s*=%s*function") do if string.sub(name, 1, 1) == "_" then table.insert(private, name) else table.insert(public, name) end end return { public = public, private = private } end return M