Inspecting compiled semantics
No matching nodes
Choose up to two semantic kinds. One reveals its real traffic; two compare only direct authored relationships.
Choose a kind to inspect its nodes and touching relationships.
Semantic radar needs more MAP space.
What does polywatch do between one Claude turn and the next prompt?
polywatch has to stay out of Claude's way. A review takes seconds to minutes, and a hook that waited for it would stall every turn. The design question is where the review runs and when its result reaches anyone.
Read the diagram top to bottom. During the turn, every time Claude edits or writes a file, Claude Code runs the PostToolUse hook. The hook appends the edit to a turn log on disk and returns; it does no review.
When the turn ends, Claude Code runs the Stop hook. The hook writes a job (the turn's edits and the last thing the user asked) and spawns the review worker as a detached process. Then it returns, and Claude is free. This is the only place the two timelines split: from here on, Claude and the worker run independently.
In the background, the worker reads the job and sends the changed files to DeepSeek Flash, which lists the defects it sees. The worker sends up to two of the most serious claims, one at a time, to Claude Opus 5.5, which says whether each holds against the code and gives its evidence. Refuted claims are dropped, the rest are scored, and the ranked result is written to the results folder.
The result waits there until the user sends the next prompt. The UserPromptSubmit hook asks the delivery module for undelivered results and prints two things back to Claude Code: a short message for the user with at most two findings, and, for Claude, only the confirmed ones, so Claude can fix them in its next turn.