Introspects modules to build a JSON-serializable API manifest.
Combines Code.fetch_docs/1 and type spec introspection to assemble
a complete description of every public function — docs, hints, specs, and
signatures — suitable for agent discovery, validators, and API generation.
Usage
manifest = Descripex.Manifest.build([MyLib.Funding, MyLib.Risk])
manifest.modules |> hd() |> Map.get(:functions) |> hd()
# => %{name: "annualize", arity: 2, spec: "annualize(...) :: float()", ...}API Functions
| Function | Arity | Description | Param Kinds |
|---|---|---|---|
build | 1 | Build a complete API manifest from the given modules. | modules: value |
Summary
Functions
Build a complete API manifest from the given modules.
Functions
Build a complete API manifest from the given modules.
Parameters
modules- List of module atoms to introspect (value)
Returns
JSON-serializable manifest with version, generated_at, and modules keys (map)
Example
%{version: "1.0", modules: [], generated_at: "2025-01-01T00:00:00Z"}# descripex:contract
%{
params: %{
modules: %{description: "List of module atoms to introspect", kind: :value}
},
returns: %{
type: :map,
description: "JSON-serializable manifest with version, generated_at, and modules keys"
},
returns_example: %{
version: "1.0",
modules: [],
generated_at: "2025-01-01T00:00:00Z"
}
}