v3/docs/adr/ADR-322B-darwin-proposer-adapter.md
RUFLO_FLYWHEEL_DARWIN_V1This specification defines proposer selection, Darwin invocation, archive translation, sandbox and resource controls, substitution behavior, and comparison with the local proposer. A proposer produces untrusted candidates only. It cannot issue promotion decisions or mutate active policy.
proposeCandidates({
proposerMode,
baselinePolicy,
policySchemaVersion,
selectionCorpusRef,
safetyEnvelopeRef,
budget,
seed
}) -> CandidateArchive
CandidateArchive records:
archiveVersion
requestedProposer
effectiveProposer
substitutionReason
packageName
packageVersion
packageIntegrity
invocationHash
baselineRef
selectionCorpusRef
safetyEnvelopeRef
seed
candidates[]
resourceUsage
completed
Each candidate has a canonical candidateId, mutation description, parent references, surface, raw proposer score, and policy-schema validation result. Proposer scores are selection metadata, not ruflo promotion evidence.
local: run the deterministic local proposer.darwin: require a compatible Darwin package and complete archive; any absence, incompatibility, timeout, malformed output, safety exit, or budget violation fails closed.auto: prefer Darwin. If it cannot complete, record the failure and permit local evaluation-only substitution.An auto substitution cannot promote unless the active administrator-signed substitution policy explicitly allows darwin -> local for the current gate and safety-envelope versions. Default policy denies promotion.
The initial adapter invokes:
@metaharness/darwin@~0.8.0
metaharness-darwin evolve
--sandbox real|mock|agent
--selection pareto
--mutator deterministic|ruvllm
The adapter verifies package version, resolved package integrity, supported command/API shape, exit classification, complete archive schema, and candidate count before accepting output.
No model credential means only the deterministic mutator is permitted. ruvllm requires explicit confirmation and immutable ceilings for USD, requests, tokens, concurrency, wall time, and sandbox resources. Budget exhaustion cancels the run and produces no promotable archive.
SafetyEnvelope are rejected before execution.Hard envelope limits for authorization, latency, cost, tokens, failure rate, evaluation cost, network, and concurrency are evaluated before Pareto ranking. Only admissible candidates enter the archive presented to ADR-322A.
Darwin is described as broader, not inherently superior. Any superiority claim requires a controlled comparison using identical baselines, selection budgets, sealed holdouts, gate versions, seeds, and resource accounting. Report quality lift, accepted-candidate rate, wall time, tokens, USD, and reproducibility for both Darwin and local modes.
auto substitution is fully recorded and evaluation-only by default.