What Sercrod Is

Status: implemented conceptual model.

Sercrod is an attribute conveyor for HTML. It adds explicit connections between data, DOM, actions, results, and external capabilities without taking ownership of the whole page.

The authored page remains visible. A declaration says what to read, what to write, which capability is requested when one is needed, and where the effect belongs. Sercrod applies those declared connections inside a host boundary.

The boundary

A <serc-rod> custom element is a host. It owns Sercrod processing for its own subtree, while ordinary HTML outside that host remains ordinary HTML. Nested hosts are independent boundaries: a parent does not render through a child host's stored template.

This is why Sercrod can coexist with server-rendered pages, static documents, other tools, browser behavior, and application-owned JavaScript. It is not a virtual-DOM framework or a page-level controller.

Responsibilities stay separate

Responsibility Owner
Declare data flow, actions, and placement in HTML Application author
Evaluate Sercrod declarations and render within a host Sercrod Core
Slot assignment, Shadow DOM scoping, fetch, and WebSocket transport Browser
Library-specific creation, calls, subscriptions, and disposal Capability adapter
Business policy, authentication, persistence policy, and UI policy Application

An adapter does not turn Sercrod into a universal library abstraction. It performs a capability-specific task while Core retains explicit routing, response placement, ownership, and cleanup boundaries.

The visible model

authored HTML
  -> host scope and expression evaluation
  -> rendering or explicit action
  -> optional capability adapter and environment backend
  -> allowed response placement or error reporting
  -> owner-based cleanup when the resource is replaced or removed

The detailed execution steps are in The Runtime Flow.

Important non-assumptions

Evidence

Status: implemented.

Evidence: docs/spec/runtime.md — Scope and Host Model, public Coexistence By Design, public adapter reference, and canonical manual dist/man.json.