Content
75%Weight 40%Scale 1-5Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
A solid, information-dense reference that provides proprietary error-code knowledge with executable multi-language examples and clear retryability rules. The main gaps are the missing browser/observer code examples, the inlined observer table that its own boundaries section defers elsewhere, and a redundant "When to Use" section.
Suggestions
Replace the Browser section's prose with a short executable example showing how to read the engine-provided code/message, matching the Node/Python/Rust pattern.
Compress the Observer Errors table to the few most common codes and defer the full list to iii-observe, consistent with the Pattern Boundaries section that already points there.
Drop the "When to Use" section (it duplicates the frontmatter description) and fold any version-gated notes like "engine older than 0.25" into a clearly labeled version-compatibility note.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The body is dense with proprietary knowledge Claude cannot already know (iii engine/SDK error codes, retryability rules) and assumes competence throughout. Minor trims remain: the "When to Use" section restates the frontmatter description, and version-sensitive numbers ("(0.25)", "engine is older than 0.25") sit outside any old-patterns/deprecated framing. Efficient overall, so 4 rather than the every-token-earns-its-place 5. | 4 / 5 |
Actionability | Copy-paste-ready, executable branching examples for Node ("error instanceof InvocationError && error.code === 'FORBIDDEN'"), Python ("except InvocationError as exc"), and Rust ("Err(iii_sdk::Error::Remote { code, message, .. })"), plus per-code handling columns. The Browser section ("Preserve the engine-provided code/message when present") and observer-error handling are prose/table only with no code, which are minor gaps — the 4 anchor rather than fully-executable 5. | 4 / 5 |
Workflow Clarity | The core action is unambiguous and stated upfront ("Agents should branch on the error code instead of matching only message strings"), with a decision path organized across Error Codes → Handler vs Engine → Retryability. There is no explicit validate-then-act sequence for assembling a diagnosis, and no decision tree, so it sits below the 5 anchor's explicit checkpoints while clearly above the 3 anchor's implicit sequence. | 4 / 5 |
Progressive Disclosure | No bundle files exist and the ~125-line body is well-sectioned with clearly signaled one-level-deep deferrals ("For observer states, filters, and owner hooks, prefer iii-observe"; "For SDK-specific exception classes and syntax, prefer iii-sdk-reference"). Minor gap: the full Observer Errors code table (~10 rows plus obs.call codes) is inlined even though the Pattern Boundaries section defers observer detail to iii-observe, so a leaner summary or a reference file would fit better — good structure overall, matching 4 rather than the well-split 5. | 4 / 5 |
Total | 16 / 20 Passed |