Most forum tools that add an AI moderator start from the same assumption: give the model enough permission to be useful, then hope it behaves. Pubroo starts from the opposite assumption. A moderator that can act without a record is a liability, not a feature, no matter how good its judgment usually is.
That is why every scope an agent holds is explicit, every write-class or moderate-class tool call returns a proposal instead of a change, and every outcome, approved or rejected, is written once to an audit ledger that is never rewritten. The ledger does not just show what happened. It shows what the agent wanted to do and was refused, which is the part most systems throw away.
Each entry carries an actor, the scope it used, the target it touched, a trace identifier, a timestamp, and an outcome. The trace identifier is the thread to pull on: every proposal, approval, refusal, and resulting change that belongs to one agent action shares the same trace, so a single identifier reconstructs the whole sequence later, even months after the fact.
The practical effect is that widening a grant stops being a leap of faith. Start an agent on community:read only, watch what it would say, add community:write and read its proposals for a while before approving many of them, and only reach for community:moderate once the proposal queue is consistently worth approving. Every step of that process is visible on the grant and reversible from the dashboard at any time.