Summary
Create a step-by-step guide showing how to write a custom ODS-E transform for a new data source (inverter brand, SCADA historian, API format). This is the key contributor funnel — turning users into contributors.
Motivation
MCP's growth was partly driven by community-contributed servers. ODS-E needs the same contributor flywheel for transforms. Currently, adding a new transform requires reading existing transformer source code and reverse-engineering the pattern. A clear guide lowers the barrier to contribution.
Proposed Content
- When to write a transform — Your data source isn't covered by the generic CSV mapper
- Transform anatomy — BaseTransformer class, required methods, record output format
- Step-by-step:
- Copy the template transform
- Implement
parse_row() and get_metadata()
- Register the source alias
- Add test fixtures
- Run the test suite
- Testing your transform — Required test cases, fixture format, CI expectations
- Submitting your transform — PR checklist, SEP process for new transforms
Acceptance Criteria
- Published at
/docs/guides/add-transform/
- Includes a downloadable transform template
- A developer unfamiliar with the codebase can follow it to add a new transform
- Covers testing requirements and PR checklist
Dependencies
- SEP-020 (generic CSV transform — explains when custom > generic)
- SEP-032 (architecture page — referenced for context)
Summary
Create a step-by-step guide showing how to write a custom ODS-E transform for a new data source (inverter brand, SCADA historian, API format). This is the key contributor funnel — turning users into contributors.
Motivation
MCP's growth was partly driven by community-contributed servers. ODS-E needs the same contributor flywheel for transforms. Currently, adding a new transform requires reading existing transformer source code and reverse-engineering the pattern. A clear guide lowers the barrier to contribution.
Proposed Content
parse_row()andget_metadata()Acceptance Criteria
/docs/guides/add-transform/Dependencies