zireael-platform-boundary

star 45

Enforce the strict platform boundary where core/unicode/util stay OS-header-free.

RtlZeroMemory By RtlZeroMemory schedule Updated 2/2/2026

name: zireael-platform-boundary description: Enforce the strict platform boundary where core/unicode/util stay OS-header-free. metadata: short-description: Platform interface + backend rules

When to use

Use this skill when working on:

  • the platform interface header (src/platform/zr_platform.h)
  • Win32 or POSIX backend implementation
  • event loop blocking/wake strategy
  • terminal raw mode lifecycle and restoration

Non-negotiable boundary rules

  • src/core, src/unicode, src/util MUST NOT include OS headers (Win32 or POSIX).
  • OS-specific code MUST be isolated to:
    • src/platform/win32/
    • src/platform/posix/
  • Avoid #ifdef in core/unicode/util; allowed only in platform backends and minimal selection glue.

Platform interface design

Goal: a core-facing platform interface that is:

  • POD-only (fixed-width integer types; no OS types)
  • opaque handle based (plat_t*)
  • allocation-free in hot paths
  • supports a "wake" primitive to interrupt blocking waits

Interface categories:

  • lifecycle: create/destroy, enter/leave raw (idempotent best-effort restore)
  • I/O: read input bytes, write output bytes (single flush per present)
  • wait/wake: block until input or wake event, wake from other threads
  • caps/size: get terminal size, capabilities (color/mouse/paste)

Source of truth

  • docs/REPO_LAYOUT.md — boundary rules and #ifdef policy
  • docs/modules/PLATFORM_INTERFACE.md — core-facing interface spec
  • src/platform/zr_platform.h — actual interface header

Backend notes

POSIX:

  • raw mode: termios; restore on exit; best-effort restore on signals
  • blocking: poll/select on stdin + wake fd (eventfd/self-pipe)
  • resize: SIGWINCH + ioctl(TIOCGWINSZ) when flagged

Win32:

  • enable VT output (ENABLE_VIRTUAL_TERMINAL_PROCESSING)
  • prefer VT input bytes (ENABLE_VIRTUAL_TERMINAL_INPUT)
  • blocking: wait on input handle + wake event handle
  • restore modes on teardown; handle console close events

Testing

Platform correctness is validated via integration tests:

  • POSIX: PTY-based tests (headless)
  • Windows: ConPTY-based tests where possible
Install via CLI
npx skills add https://github.com/RtlZeroMemory/Zireael --skill zireael-platform-boundary
Repository Details
star Stars 45
call_split Forks 3
navigation Branch main
article Path SKILL.md
More from Creator
RtlZeroMemory
RtlZeroMemory Explore all skills →