Why I made InkWitness Old handwritten documents are often difficult to read. Some letters are faded, damaged or missing. AI can help, but it may also guess a word with too much confidence. In historical records, one wrong name or place can create a lasting mistake. That problem gave me the idea for InkWitness: let the AI help with the investigation, while keeping the final decision with a person. How it works InkWitness uses a synthetic historical ledger with three unclear words. The agent can examine each word, compare it with other letters written by the same hand, check possible answers and suggest a reading. The evidence it uses appears on the page, so the person can understand why that suggestion was made. A suggestion is not automatically accepted. Only the person using InkWitness can accept it, reject it or decide that the word should remain illegible. Why WebMCP matters The person and the agent work on the same visible desk. They are not working with separate copies of the information. The desk also keeps track of revisions. For example, if a person adds a new clue after the agent reads the page, the agent’s old proposal is no longer safe. InkWitness rejects it with STALE_REVISION. The agent must read the latest version and reconsider the evidence. This prevents old AI work from replacing newer human work. How I built it I built the project with HTML, CSS and JavaScript. It has eight native WebMCP tools that allow the agent to read the desk, inspect unclear words, compare handwriting, check possible readings and prepare proposals. The WebMCP tools and the buttons on the page use the same state and functions. I also included manual testing controls so the workflow can still be demonstrated in a normal browser. No real historical documents or personal data are used in the demonstration. The difficult part The hardest part was deciding exactly what the agent should and should not be allowed to do. The agent can investigate and make suggestions, but its tools do not include accepting a reading, declaring a word illegible or sealing the final record. Those actions belong only to the person reviewing the document. I also had to make sure an outdated agent action could not overwrite a newer change. That is why every proposal must include the desk revision that the agent previously read. What I learned This project taught me that making AI safer does not always mean making it less useful. The agent can still do the repetitive work of comparing letters and organizing evidence, while the person handles decisions that require judgment. I also learned how WebMCP can connect an agent directly to the information and controls inside a webpage. Final record After every word has been reviewed, the agent can prepare a provenance packet. The person then chooses whether to seal and export it. The exported receipt includes the evidence, revisions, proposals and human decisions. Its SHA-256 hash helps detect later changes, but it does not prove identity or document authenticity. What I would add next I would like to support real archival collections with permission, multiple human reviewers and export formats used by libraries and researchers. links :-

Built With

Share this project:

Updates

Submission history