RFCs — Request for Comments¶
RFCs explore open technical questions with deliberation. Each RFC names a question, frames the alternatives honestly, and proposes a path forward. RFCs close into ADRs once a decision is made.
RFCs are not implementation specs and not justifications-after-the-fact. They're real deliberation captured.
Reference¶
../adr/TA.md— technical architecture. Every RFC anchors here viaTA/components/...orTA/constraints.RFC_TEMPLATE.md— the format every RFC follows.
Index¶
| RFC | Title | Status | Closes into |
|---|---|---|---|
| RFC-001 | XMP synthesizer architecture | Decided | ADR-050 (Path A parser + error contract) + ADR-063 (Path B unblocking; resolves the iop_order question) |
| RFC-002 | Canonical XMP serialization for stable hashing | Decided | ADR-054 (closes) |
| RFC-003 | Mask storage in versioning | Decided | ADR-055 (closes) |
| RFC-004 | Default masking provider — coarse vs SAM | Decided | ADR-058 (closes) |
| RFC-005 | Pipeline stage protocol — abstract now or YAGNI | Decided | ADR-052 (closes) |
| RFC-006 | Same-module collision behavior | Decided | ADR-051 (closes); deviated from in-call-collision proposal — see ADR rationale |
| RFC-007 | modversion drift handling | Decided | ADR-082 (closes) |
| RFC-008 | Vocabulary discovery at scale | Draft v0.1 (speculative) | — |
| RFC-009 | Mask provider protocol shape | Decided | ADR-057 (closes) |
| RFC-010 | MCP tool surface — parameter shapes and errors | Decided | ADR-056 (closes) |
| RFC-011 | Agent context loading order and format | Decided | ADR-059 (closes) |
| RFC-012 | Programmatic vocabulary generation (Path C) | Decided | ADR-073 (closes) |
| RFC-013 | Vocabulary gap surfacing format | Decided | ADR-060 (closes) |
| RFC-014 | End-of-session synthesis flow | Decided | ADR-061 (closes) |
| RFC-015 | EXIF auto-binding rules | Decided | ADR-053 (closes) |
| RFC-016 | Versioned prompt system | Decided | ADR-043, ADR-044, ADR-045 |
| RFC-017 | Evaluation harness and auto-research workflow | Accepted (design); built Phase 5 | ADR-046, ADR-047 |
| RFC-018 | Vocabulary expansion for expressive taste articulation | Decided | ADR-063, ADR-064, ADR-073 |
| RFC-019 | Reference-image validation baseline | Decided | ADR-066, ADR-067, ADR-068 |
| RFC-020 | Command-line interface for Chemigram | Decided | ADR-069, ADR-070, ADR-071, ADR-072 |
| RFC-021 | Parameterized vocabulary magnitudes (Path C as default for continuous-magnitude modules) | Decided | ADR-077, ADR-078, ADR-079, ADR-080 (closes) |
| RFC-022 | Bulk parameterization of common-use darktable modules (tiered baseline) | Decided | ADR-081 (closes; explicitly amends ADR-008) |
| RFC-023 | HSL Color Mixer parity (colorzones vs colorequal backing) | Decided | ADR-083 (closes) |
| RFC-024 | Range masks (color-range / luminance-range / depth-range / subject) | Decided | ADR-085 (closes; depth + subject deferred to RFC-026) |
| RFC-025 | Spot removal / heal architecture (retouch byte serialization) | Decided | ADR-087 (closes; AI auto-detection deferred to RFC-030) |
| RFC-026 | LLM-vision-as-provider for AI-derived masks (MVP, conversation-native) | Decided | ADR-086 (closes) |
| RFC-029 | Compositional masks at apply time (build-by-words) | Decided | ADR-084 (closes) |
| RFC-030 | Deployed sibling-provider scaffolding for precision-tier AI masks | Draft v0.1 (deferred) | — |
| RFC-031 | Batched per-region adjustment meta-tool | Draft v0.1 (impl shipped) | — (pending) |
| RFC-032 | Named-mask vocabulary on v1.9.0 mask primitives | Draft v0.1 (impl shipped) | — (pending; possibly two ADRs) |
| RFC-033 | Skin-tone uniformity primitive | Draft v0.1 (Path B impl shipped; gated on visual review) | — (pending; path depends on visual review) |
| RFC-034 | invert flag on named-mask references |
Draft v0.1 (parametric impl shipped) | — (pending) |
| RFC-035 | Parametric L2 strength (opacity-as-amount) | Decided (Path B); ADR-088 Draft until darkroom validation | ADR-088 (closes; flips to Accepted on darkroom-session sign-off) |
| RFC-036 | Mixed-op apply_per_region (un-defer of RFC-031) |
Decided; ADR-089 Draft until darkroom validation | ADR-089 (closes; flips to Accepted on darkroom-session sign-off) |
| RFC-037 | propagate_state MCP verb (anchor-and-sync workflow) |
Decided; ADR-090 Draft until darkroom validation | ADR-090 (closes; flips to Accepted on darkroom-session sign-off) |
| RFC-038 | Mode B autonomous session protocol | Draft v0.1 (v1.11+ pick — biggest next thing) | — (pending; closes into ≥2 ADRs once implementation evidence lands) |
Maturity legend¶
- Draft v0.1 — written; deliberation captured; awaiting implementation evidence to close
- Draft v0.1 (speculative) — question identified but problem isn't real yet (e.g. vocabulary too small to need discovery tooling); placeholder until it becomes pressing
- Draft v0.1 (deferred) — question identified, deliberately not being argued in this round; revisit later
- Accepted — design decision settled; closing ADRs lock the structural pieces. Distinct from "Decided" because the RFC remains a living reference for the rationale.
- Accepted (design); built Phase X — design accepted now, implementation deferred to a named phase
- Decided — closed into one or more ADRs; remains as historical record
Conventions¶
- Numbered sequentially (
RFC-NNN-slug.md) - Every RFC has a "Why this is an RFC" gating sentence in the header
- "Alternatives considered" must list real alternatives with honest reasons for rejection
- An RFC that argues for something already-decided is an ADR; close and start over