I am Kane Lim (telegram@kanelim1997), tech leader of a small private Hong Kong Remote Development Team. We are currently recruiting partners for long-term collaboration to generate revenue.
This is a very solid approach to change-impact analysis, especially the decision to keep the core risk model deterministic and auditable.
The strongest part of Serval, in my view, is that it doesn't confuse “risk scoring” with prediction. Dependency relationships, historical co-change patterns, CI configuration, and repository-specific critical paths are all observable evidence. Combining them gives engineers something much more useful than an opaque AI-generated number.
I also really like the architecture:
repository → deterministic analysis → risk model → optional AI explanation
That boundary is important. An LLM can be valuable for turning findings into something easier to understand, but it shouldn't be responsible for establishing the underlying facts. Otherwise, reproducibility and trust become difficult to maintain.
One area I'd be particularly interested in exploring is diff-level impact correlation. Instead of evaluating each changed file independently, you could model the complete change set and distinguish:
direct vs. transitive impact
independently risky files vs. interacting risky files
shared critical-path dependencies
historical change-set patterns
CI/test coverage affected by the combined diff
Another potentially powerful signal would be observed-vs-expected impact: after a merge, compare Serval's predicted affected surface with the files/modules that actually changed or required fixes. Over time, that could provide an empirical way to calibrate the deterministic weights without turning the core system into an opaque ML model.
The local-first design also makes a lot of sense for proprietary repositories. For teams dealing with sensitive source code, being able to run the complete analysis without exporting repository data is a significant advantage.
This feels less like “another AI coding tool” and more like an engineering observability layer for changes—which is a much more interesting direction.
I'd be interested in following where you take the CI-gating and historical calibration pieces. My team works on development and automation projects across different codebases, so this is exactly the kind of tooling I'd be interested in discussing for longer-term collaboration.
The observed vs expected idea is really interesting. Right now Serval is intentionally deterministic, but using post merge history to understand how well the signals actually predicted the impact could be a really useful next step.
I also like the diff level correlation idea. Moving from analyzing a single file to understanding the change as a whole makes a lot of sense.
The main thing I want to preserve is keeping the score deterministic and explainable. I prefer improving the signals behind the score instead of letting the LLM decide the risk.
Thanks again, definitely something I want to experiment with.
I am Kane Lim (telegram@kanelim1997), tech leader of a small private Hong Kong Remote Development Team. We are currently recruiting partners for long-term collaboration to generate revenue.
This is a very solid approach to change-impact analysis, especially the decision to keep the core risk model deterministic and auditable.
The strongest part of Serval, in my view, is that it doesn't confuse “risk scoring” with prediction. Dependency relationships, historical co-change patterns, CI configuration, and repository-specific critical paths are all observable evidence. Combining them gives engineers something much more useful than an opaque AI-generated number.
I also really like the architecture:
repository → deterministic analysis → risk model → optional AI explanation
That boundary is important. An LLM can be valuable for turning findings into something easier to understand, but it shouldn't be responsible for establishing the underlying facts. Otherwise, reproducibility and trust become difficult to maintain.
One area I'd be particularly interested in exploring is diff-level impact correlation. Instead of evaluating each changed file independently, you could model the complete change set and distinguish:
direct vs. transitive impact
independently risky files vs. interacting risky files
shared critical-path dependencies
historical change-set patterns
CI/test coverage affected by the combined diff
Another potentially powerful signal would be observed-vs-expected impact: after a merge, compare Serval's predicted affected surface with the files/modules that actually changed or required fixes. Over time, that could provide an empirical way to calibrate the deterministic weights without turning the core system into an opaque ML model.
The local-first design also makes a lot of sense for proprietary repositories. For teams dealing with sensitive source code, being able to run the complete analysis without exporting repository data is a significant advantage.
This feels less like “another AI coding tool” and more like an engineering observability layer for changes—which is a much more interesting direction.
I'd be interested in following where you take the CI-gating and historical calibration pieces. My team works on development and automation projects across different codebases, so this is exactly the kind of tooling I'd be interested in discussing for longer-term collaboration.
If you're open to connecting, TG_coolsoftDev.
Thanks, really appreciate the feedback!
The observed vs expected idea is really interesting. Right now Serval is intentionally deterministic, but using post merge history to understand how well the signals actually predicted the impact could be a really useful next step.
I also like the diff level correlation idea. Moving from analyzing a single file to understanding the change as a whole makes a lot of sense.
The main thing I want to preserve is keeping the score deterministic and explainable. I prefer improving the signals behind the score instead of letting the LLM decide the risk.
Thanks again, definitely something I want to experiment with.
Hey friend. Why did you remove me on your address list?