# Open Questions **Purpose:** Questions and uncertainties discovered during implementation, with proposed answers and decisions. **Owner:** Development Team **Last Updated:** 2025-12-22 **Status:** active --- ## Template ### Q: [Question Title] **Context:** [What led to this question? What problem are we trying to solve?] **Files Involved:** - `path/to/file1.ts` - `path/to/file2.swift` **Options:** 1. **Option A:** [Description] - Pros: [list] - Cons: [list] 2. **Option B:** [Description] - Pros: [list] - Cons: [list] **Recommendation:** [Which option is recommended and why] **Decision:** [Final decision if made, or "Pending"] --- ## Current Questions *No open questions currently. All architectural decisions have been made.* --- ## Closed Questions ### Q: What is the authoritative CI entrypoint? **Context:** Need to establish a single source of truth for CI to avoid drift and ensure consistency. **Decision:** `./ci/run.sh` is canonical. It wraps `./scripts/verify.sh` and provides a stable interface for: - CI runners - Release gates - Pre-merge checks - Git hooks (`githooks/pre-push`) - Makefile targets (`make ci`) `./scripts/verify.sh` is an implementation detail/library function. External systems should call `./ci/run.sh`. **Rationale:** - Stable interface for automation - Clear separation: entrypoint vs implementation - Easy to add pre/post hooks in the future - Consistent exit codes and output format **Status:** ✅ **RESOLVED** (2025-12-22) --- ### Q: How to enforce core module purity? **Context:** Core module (`src/core/`) must remain platform-agnostic and portable. Need automated enforcement. **Decision:** Enforce via `verify.sh`: - Platform import blocking: comprehensive regex detects Node builtins, Capacitor, React - Export validation: Node-based check ensures `package.json.exports['./core']` exists - Source checks run before build (works on clean checkouts) - Artifact checks run after build (validates build outputs) **Rationale:** - Automated enforcement prevents regressions - Clear error messages guide developers - Policy encoded in tooling, not tribal knowledge **Status:** ✅ **RESOLVED** (2025-12-22) --- **Last Updated:** 2025-12-22