diff --git a/src/crates.md b/src/crates.md
index c950131..b7d68c7 100644
--- a/src/crates.md
+++ b/src/crates.md
@@ -2,17 +2,17 @@
| Crate | Layer | What it does | Docs |
|------------------------------------------------------------------------|----------------------|---------------------------------------------------------------------------------------|------------------------------------------------------|
-| [display-types](https://github.com/DracoWhitefire/display-types) | Shared types | Display capability vocabulary shared across the stack | [docs.rs](https://docs.rs/display-types) |
-| [piaf](https://github.com/DracoWhitefire/piaf) | Parsing | EDID and DisplayID parser | [docs.rs](https://docs.rs/piaf) |
-| [concordance](https://github.com/DracoWhitefire/concordance) | Negotiation | HDMI 2.1 mode negotiation with a full reasoning trace | [docs.rs](https://docs.rs/concordance) |
-| [cartouche](https://github.com/DracoWhitefire/cartouche) | Signaling | InfoFrame encoding and decoding (AVI, Audio, HDR Static, HDMI Forum VSI, Dynamic HDR) | [docs.rs](https://docs.rs/cartouche) |
-| [culvert](https://github.com/DracoWhitefire/culvert) | Signaling | Typed SCDC register access | [docs.rs](https://docs.rs/culvert) |
-| [culvert-async](https://github.com/DracoWhitefire/culvert-async) | Signaling | Async companion to culvert | [docs.rs](https://docs.rs/culvert-async) |
-| [plumbob](https://github.com/DracoWhitefire/plumbob) | Driver-adjacent | FRL link training state machine | [docs.rs](https://docs.rs/plumbob) |
-| [plumbob-async](https://github.com/DracoWhitefire/plumbob-async) | Driver-adjacent | Async companion to plumbob | [docs.rs](https://docs.rs/plumbob-async) |
-| [hdmi-hal](https://github.com/DracoWhitefire/hdmi-hal) | Hardware abstraction | `ScdcTransport` and `HdmiPhy` traits | [docs.rs](https://docs.rs/hdmi-hal) |
-| [hdmi-hal-async](https://github.com/DracoWhitefire/hdmi-hal-async) | Hardware abstraction | Async companion to hdmi-hal | [docs.rs](https://docs.rs/hdmi-hal-async) |
-| [hdmi-hal-i2c-dev](https://github.com/DracoWhitefire/hdmi-hal-i2c-dev) | Hardware abstraction | Linux userspace backend over `/dev/i2c-N`, for development and validation | [docs.rs](https://docs.rs/hdmi-hal-i2c-dev) |
+| [display-types](https://github.com/ashlar-display/display-types) | Shared types | Display capability vocabulary shared across the stack | [docs.rs](https://docs.rs/display-types) |
+| [piaf](https://github.com/ashlar-display/piaf) | Parsing | EDID and DisplayID parser | [docs.rs](https://docs.rs/piaf) |
+| [concordance](https://github.com/ashlar-display/concordance) | Negotiation | HDMI 2.1 mode negotiation with a full reasoning trace | [docs.rs](https://docs.rs/concordance) |
+| [cartouche](https://github.com/ashlar-display/cartouche) | Signaling | InfoFrame encoding and decoding (AVI, Audio, HDR Static, HDMI Forum VSI, Dynamic HDR) | [docs.rs](https://docs.rs/cartouche) |
+| [culvert](https://github.com/ashlar-display/culvert) | Signaling | Typed SCDC register access | [docs.rs](https://docs.rs/culvert) |
+| [culvert-async](https://github.com/ashlar-display/culvert-async) | Signaling | Async companion to culvert | [docs.rs](https://docs.rs/culvert-async) |
+| [plumbob](https://github.com/ashlar-display/plumbob) | Driver-adjacent | FRL link training state machine | [docs.rs](https://docs.rs/plumbob) |
+| [plumbob-async](https://github.com/ashlar-display/plumbob-async) | Driver-adjacent | Async companion to plumbob | [docs.rs](https://docs.rs/plumbob-async) |
+| [hdmi-hal](https://github.com/ashlar-display/hdmi-hal) | Hardware abstraction | `ScdcTransport` and `HdmiPhy` traits | [docs.rs](https://docs.rs/hdmi-hal) |
+| [hdmi-hal-async](https://github.com/ashlar-display/hdmi-hal-async) | Hardware abstraction | Async companion to hdmi-hal | [docs.rs](https://docs.rs/hdmi-hal-async) |
+| [hdmi-hal-i2c-dev](https://github.com/ashlar-display/hdmi-hal-i2c-dev) | Hardware abstraction | Linux userspace backend over `/dev/i2c-N`, for development and validation | [docs.rs](https://docs.rs/hdmi-hal-i2c-dev) |
| [ashlar](https://github.com/ashlar-display/ashlar) | — | Facade: one feature per crate above, re-exported under its own name | [docs.rs](https://docs.rs/ashlar) |
Current versions are on [crates.io](https://crates.io/keywords/ashlar); each crate's
diff --git a/src/stack.md b/src/stack.md
index 436f4ec..e5b30b0 100644
--- a/src/stack.md
+++ b/src/stack.md
@@ -38,28 +38,28 @@ a reasoning trace explaining why.
## End-to-End Data Flow
```mermaid
flowchart TD
-A[Raw EDID bytes] --> B["piaf \nParse EDID / DisplayID"]
+A[Raw EDID bytes] --> B["piaf
Parse EDID / DisplayID"]
B --> C[piaf::DisplayCapabilities]
-C --> C2["Integration Layer\nConvert to SinkCapabilities"]
-C2 --> D["concordance \nNegotiation Layer"]
+C --> C2["Integration Layer
Convert to SinkCapabilities"]
+C2 --> D["concordance
Negotiation Layer"]
- E["SourceCapabilities\ncaller-supplied"] --> D
- F["CableCapabilities\ncaller-supplied"] --> D
+ E["SourceCapabilities
caller-supplied"] --> D
+ F["CableCapabilities
caller-supplied"] --> D
D --> G[Iterator of NegotiatedConfig]
- G --> H["Select Configuration\n(policy / caller)"]
+ G --> H["Select Configuration
(policy / caller)"]
- H --> I["culvert \nSCDC register access"]
- I --> I2["plumbob \nFRL state machine"]
+ H --> I["culvert
SCDC register access"]
+ I --> I2["plumbob
FRL state machine"]
I2 --> J{Training Outcome}
J -->|Success| K[Achieved FRL Rate]
J -->|Fallback Required| D
- K --> L["cartouche \nInfoFrame Encoding"]
+ K --> L["cartouche
InfoFrame Encoding"]
H --> L
L --> M[Encoded HDMI Packets]
- H -.-> LV["cartouche-validate (planned)\nValidate against NegotiatedConfig"]
+ H -.-> LV["cartouche-validate (planned)
Validate against NegotiatedConfig"]
L -.-> LV
M --> N["DRM/KMS Integration (planned)"]