Expand description
What the model is given (ADR 0022).
The grouping stage used to hand the model a fixed string: one block per
shape class, eight lines of diff from the exemplar, six basenames. So a
class of nine hunks was rated skim — “read one, trust the rest” — on the
evidence of one hunk, and the prompt had a character cap that silently
truncated large changes.
Now the engine writes the pre-group document to a file and the model fetches the whole class table from it in one call. Its job is unchanged: it merges class ids, labels and rates, never touching hunks (ADR 0001). What changed is the context it has to do that job with.
Every answer here comes from the document. A hunk entry records where a hunk
is, never what it says, and the text is git diff’s job — so nothing in
this module reaches a repository.
This module owns all of it — building the class graph (graph), and
answering the one question behind dfr agent. It returns data; rendering it
as text is crates/cli’s job, the same as for every other consumer.
Modules§
- graph
- The class dependency graph: definition → use edges between shape classes.
- symbols
- Symbol extraction: the port, and the rule for choosing between readers.
Structs§
- Class
View - One class, resolved: everything a caller needs to describe it.
Functions§
- index
- Every class the model is asked to group, largest first — the order the class ids already carry.