I use a series of stop hook [0] scripts. For example, I have a script [1] that forces Claude to execute tests whenever code files are changed. The stop hook runs automatically and will force Claude to continue working until the script passes.
I also have a script that forces Claude to generate a summary of work [2] if it hadn't done so on it's own.
I also have a script that forces Claude to generate a summary of work [2] if it hadn't done so on it's own.
[0]: https://code.claude.com/docs/en/hooks
[1]: https://gist.github.com/Looking4OffSwitch/c3d5848935fec5ac3b...
[2]: https://gist.github.com/Looking4OffSwitch/3b13b65e40284be899...