Identity Audit Workflow
Use this skill when checking whether function, file, or folder names still match their contents.
The CLI scans files, folders, and graph-level declaration symbols. It does not treat every local variable, parameter, or field as an independent naming target; those can still influence the containing file summary. File names are evaluated with parent scope, and declaration-heavy files should normally be read as evidence-thin until follow-up inspection proves an actual rename or split.
Pipeline
- Run the mechanical scan:
indexion identity audit .
For a machine-readable queue:
indexion identity audit --format=json --output=.indexion/cache/identity/report.json .
- Treat each row as a review candidate, not proof. Compare:
name: the scoped name inferred by the identity packageexpected_summary: what the path/name/scope predictsactual_summary: graph-derived declarations, docs, module notes, and path termsassessment: whether this is actual drift, overbroad content, or insufficient contentrecommendation: first operation to verify
- Verify before editing:
indexion doc graph --format=text <path>
indexion grep --semantic=name:<symbol> .
rg "<name-or-term>" <path>
- Choose the smallest confirmed operation:
- Treat
insufficient-contentas an evidence problem, not a naming-drift proof.
Inspect whether the file is intentionally declarative/thin, unsupported by the graph extractor, empty, or missing doc/declaration material before renaming.
- Rename a symbol when its implementation is cohesive but the name is stale.
- Rename a file when its declarations are cohesive but the file name is stale.
- Rename a folder when contained files share a clearer parent concept.
- Move a file when it fits an existing folder better than its current one.
- Split a file when candidates show multiple dominant responsibilities.
- After changes:
moon info && moon fmt
moon test
indexion identity audit .
The audit is designed to surface review work. Do not maximize the score mechanically; verify the actual code ownership and references first.

