I am planning to build a self-heal tool to update the locators automatically when developer the changes the UI locators
JDI Light framework aims to do just that - https://github.com/jdi-testing/jdi-light/blob/master/README.md
Develop an automation framework based on AI that can identify and write correct stable PageObject automatically without engineers effort, generate smoke tests for application in seconds and some negative cases too. Run test execution automatically and correct tests if any changes in layout happens provide good reports for test project team and recommendations how Project can be improved
It's call TDD. ;)
On a serious side, computers can only mimic inference - AI systems that impress us with apparent inference are still following an algorithm.
A computer cannot understand what is the meaning of a check nor it can understand the meaning of change in the SUT. These two factors mean that a computer cannot understand how to change a check in order to align it with a change in the SUT.
You can build a very useful tool like the people on Testim do, but you cannot say it can "self-heal" a suite of checks.
Share a Page Object Identification File, or service, or database table, etc.
If necessary add converter(s) to the format either party needs.
This will heavily encourage opinions, discussion and compromise... and the payoff is to achieve the overall goal and reduce (mostly eliminate) the current issue of locators being changed unknowingly from happening.
One consideration that you'll to to work out is how to 'version' changes, specifically to page objects, to environments. Details are beyond the scope of this question but you'll need a process there.
Given there are frequently three different users of the DOM - UI developers, Application developers and UI test engineers, it makes sense to collaborate rather than all 3 groups using their own schema with both overlaps and differences.
There are some AI solutions that can auto fix selectors. I am not yet really sold on it, but might be worth researching.
I would try to create a common model between the UI code and the test page objects. I have never actually done it, but I think this is the way togo. Simple example would be putting the label text of buttons in an central class and let the UI and the PageObject use that class for its text and its XPath. I guess you could make that as complex as you like.