Search

PythonReactSEOPDF
GitHub Skill

zireael-error-contracts

Keep ZR_ERR_* codes and "no partial effects" contracts consistent across the engine.

RtlZeroMemory☆ 35 Repository stars3 Repository forks

Installation

Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.

View source ↗Guides

Skill instructions

When to use

Use this skill when:

  • adding/modifying public engine_* APIs
  • writing parsers/validators (drawlist, input, UTF-8)
  • changing cap enforcement (zr_limits_t)
  • changing "no partial effects" behavior

Source of truth

  • docs/ERROR_CODES_CATALOG.md — error semantics and state effects
  • docs/SAFETY_RULESET.md — safety and cleanup rules
  • src/util/zr_result.h — actual error codes

Core rules (must follow)

  • ZR_OK == 0
  • Failures are negative (ZR_ERR_*)
  • Default: no partial effects on failure
  • Only permitted partial output: event batch truncation (success with TRUNCATED flag)

Error codes

Code Meaning
ZR_ERR_INVALID_ARGUMENT NULL or invalid parameter
ZR_ERR_OOM Allocation/arena growth failed
ZR_ERR_LIMIT Caps exceeded or buffer too small
ZR_ERR_FORMAT Malformed input bytes
ZR_ERR_UNSUPPORTED Unknown version/opcode/feature
ZR_ERR_PLATFORM Backend/OS failure

Implementation checklist

  1. Identify failure classes your code can hit
  2. Decide "state mutated?" explicitly
  3. Validators run fully before any mutation
  4. Writers never emit partial records

Test guidance

  • Invalid args → ZR_ERR_INVALID_ARGUMENT, no mutation
  • Caps exceeded → ZR_ERR_LIMIT, no mutation
  • Bad format → ZR_ERR_FORMAT/ZR_ERR_UNSUPPORTED, no partial effects
  • Event truncation → success with TRUNCATED flag, only complete records

Examples

Read the usage examples in the source repository.

View source ↗

Source history

Indexed on
2026-03-11
Index updated
2026-03-11
Branch
main

Index and sync dates describe this directory. View the source repository for code history.

GitHub ↗

chat Comments (0)

chat_bubble_outline

No comments yet. Be the first to share your thoughts!