"The AI says so" is not evidence inside a company. Enterprises got burned by AI not because it was wrong, but because it pretended to know when it did not. We designed for the opposite.
Mechanism 1. Every answer brings its source
Platty's answers come with the code location behind them. Under an answer like "settlement runs on the 1st and 16th of each month" you get the location of that scheduler and when it last changed. We do not ask you to believe it. We show you so you can check.
Mechanism 2. Say so when it does not know
Platty's documents come with a list of "things not confirmed by evidence." Areas the code alone cannot settle, such as permission rules, are marked as boundaries. When a question reaches one of those areas, the answer is "not confirmed." Not pretending to know is half of trust.
Mechanism 3. Confirmed vs. inferred
Here is the honest part. Static analysis does not connect everything either, because some dynamic patterns are only determined at runtime. Instead of hiding that, we made the distinction explicit.
- Confirmed connections - connections static analysis proved from the structure of the code. Trustworthy on their own.
- Inferred connections - connections static analysis could not close, which an LLM joined by inference. Marked separately.
Every connection carries this source, and every answer shows whether its evidence is confirmed or inferred. An inferred connection is promoted to confirmed once a person verifies it. Rather than claiming perfection, we draw an honest line between confirmed and inferred. And that line only gets stronger over time, because the confirmed area widens as confirmations accumulate.
Stale answers are marked stale
Every piece of knowledge carries its source commit. When code changes, only the affected parts are re-analyzed. So you always know which version of the code an answer is based on. That is something human-written documentation can never do.