calendar-plugin/requirements/architecture.md

1.5 KiB

Architecture and Runtime Separation Requirements

Purpose

Define strict boundaries between deployable plugin code and local WordPress emulation/testing support.

Core Separation Rule

  • code/ contains deployable WordPress plugin code only.
  • compatibility-layer/ contains local emulation/shims/test harness support only.

Deployable Code Requirements (code/)

  • Code under code/ must be deployable to real WordPress without modification.
  • Code under code/ must not import, include, or require files from compatibility-layer/.
  • Runtime behavior in code/ must not branch on "test vs production" environment flags.
  • Plugin logic in code/ should depend on WordPress APIs/contracts, not on harness-specific APIs.

Compatibility Layer Requirements (compatibility-layer/)

  • Provides stand-alone/local execution support by emulating required WordPress behavior.
  • Must adapt to code/ contracts; code/ must not adapt to compatibility-layer internals.
  • May include local HTTP harness, fake WP functions, and local data/bootstrap tooling for tests.

Packaging and Deployment Boundary

  • Build/package inputs for production come from code/ (plus approved runtime assets) only.
  • compatibility-layer/, tests/, and local tooling are excluded from production artifacts.

Verification Requirements

Acceptance must verify:

  1. The same code/ content runs in real WordPress without source edits.
  2. Production package contains no files from compatibility-layer/.
  3. No code/ references to compatibility-layer/ paths/symbols are present.