H3 Context Audit Override
Hand-edit a prompt without burning the paper trail
- report
- edited_prompt
- updated_report
- override
- prompt_document
Every prompt pipeline eventually hits the same wall: the compiler produced something 95% right, and you want to fix the other 5% by typing. The usual outcome is that you edit the prompt, and now your validated report - the thing that told you the plan was coherent - describes a prompt that no longer exists. The Audit Override node exists to make that edit legible instead of quietly destructive.
What it does
It takes the report that H3 Context Compiler (or H3 Context Preview) handed you, plus your own replacement prompt text, and emits an edited prompt with a fresh report that carries the original diagnostics forward. Nothing is deleted. The plan behind the prompt stays intact and typed, and the override itself becomes a first-class value you can see.
The node name oversells it slightly - it does not override validation. Validation runs again on your text. The override is a record: "a human deliberately edited this, here's the revision number, here's why."
How it works
The mechanism is fingerprinting. Every report has a SHA-256 identity, and base_report_fingerprint is checked against the report actually connected to the node. If they don't match, you get stale_report - the source pipeline moved since you copied the fingerprint, and your edit was written against a prompt that's gone. Fail closed, no guessing. revision is a positive integer you bump on each manual edit; the core caps it at 1,000,000 and rejects anything lower than 1.
reason is scanned, not trusted. It's length-bounded and rejected if it contains URLs, file paths, credential-ish tokens (api_key, bearer, secret, token=), or unusual code points. That's a deliberate choice: this string ends up in reports, and reports get shared in screenshots and forum posts. Same instinct behind the sidebar's "Copy diagnostics," which strips prompts and paths.
The edited text is re-parsed and re-linted, then wrapped into a prompt document - so what comes out the far side has the same shape as what the Compiler produces, just authored by you.
Inputs and outputs
Five inputs, all required, none of which are creative:
- report - the source report from Compiler or Preview. This is the thing you're editing.
- base_report_fingerprint - the exact fingerprint from that report. Its tooltip is a warning: stale edits fail.
- revision - 1..1000000, bumps per manual edit.
- reason - why you're doing this. Keep it boring and factual; it's a note to a future reader, not a commit message from a poet.
- prompt_text - the exact prompt you want used. It is revalidated unchanged, so don't expect it to be tidied up for you.
Four outputs. edited_prompt is what you route onward to H3 Native MiniMax H3 Adapter or a preview. updated_report is the same report identity with your edit folded in and validation re-run. override is the audit record itself - the receipt that says this prompt is not the machine's. prompt_document is the structured form for downstream validation.
Installing it
Nothing special, and that includes the whole pack:
cd ComfyUI/custom_nodes
git clone https://github.com/rookiestar28/ComfyUI-MiniMaxH3-Studio.git
# restart ComfyUI, then find the node under Add Node > h3_context > audit
The pack declares no Python dependencies (dependencies = []), doesn't download anything at install time, and the browser extension ships prebuilt. You do need Python 3.10+ and the native ComfyUI MiniMax H3 nodes if you intend to actually generate; building and auditing prompts needs no model weights at all.
The trap
The most common way to get stale_report is completely mundane: you grabbed the fingerprint, then changed the Request node (duration, task mode, a hard constraint), and the report identity moved under you. Re-run the pipeline, reopen the preview, copy the new fingerprint.
The second trap is philosophical. It is tempting to use this node as an escape hatch from a validation error you don't understand. The node will happily record that decision - that's what it's for - but a warning you overrode is still true. Overrides are for "I know better than the template," not "I don't want to read this."
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| report | H3_CONTEXT_REPORT | Source report shown by H3 Context Preview. | |
| base_report_fingerprint | STRING | Exact report fingerprint from the audit preview; stale edits fail. | |
| revision | INT | 11–1000000 | Positive operator revision for this manual edit. |
| reason | STRING | Operator-approved audit edit | Why the manual edit is being made; no credentials or URLs. |
| prompt_text | STRING | Exact caller-authored prompt text; it is revalidated unchanged. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| edited_prompt | H3_PROMPT_STRING | — |
| updated_report | H3_CONTEXT_REPORT | — |
| override | H3_AUDIT_OVERRIDE | — |
| prompt_document | H3_PROMPT_DOCUMENT | — |