research-document FE-ADR-EXPERIMENT-SYSTEM-001
ADR: Minimal provider-neutral experiment system
ADR: Minimal provider-neutral experiment system
Decision
Use the repository’s existing Node runtime, JSON records, JSON Schema documents, deterministic prompt generation, repository-relative input allowlists, collision-resistant run directories, and separate immutable/derived layers.
The runner is zero-dependency and external calls are explicit opt-in. JSON was selected over YAML to avoid a second parser/runtime and to align with existing registries. One canonical experiment specification generates the human prompt, preventing substantive prompt/spec drift. Historical ECR conventions remain valid; this system is a forward experiment contract, not a competing research taxonomy.
Safety and lineage
The runner rejects repository escapes and prior-result inputs, snapshots prompt and input hashes, uses atomic writes, refuses raw-record overwrites, and records provider invocation truthfully. Normalization requires a matching raw digest. Comparison, adjudication, and synthesis are versioned source-linked artifacts.
Alternatives rejected for this pilot
- A hosted orchestration service: adds authority, secrets, and lifecycle complexity before utility is demonstrated.
- Provider SDK dependencies: unnecessary for manual/dry-run validation and costly to maintain.
- Automatic canonical theory updates: prohibited by current governance evidence.
- Provider-specific substantive prompts: invalidates independent comparison.
- Migrating historical ECR artifacts: high churn with no measured research benefit.
Consequences
Offline structural testing and manual import work now. Provider commands need separate verification. Parallel execution, deterministic semantic normalization, and registry-wide lineage resolution remain future work gated by evidence.