Skip to content

OxydeMark Enhancement Proposals (OMEPs)

OMEPs are design documents that capture important architectural and tooling decisions for the OxydeMark project. They follow the MADR (Markdown Any Decision Records) format.

What is an OMEP?

An OMEP records the context, options considered, and rationale behind a significant decision. Think of them as the project's institutional memory -- they explain why things are the way they are, not just what they are.

OMEPs are inspired by Python PEPs and Zensical ZEPs but scoped to project-level decisions rather than language design.

When to Write an OMEP

Write an OMEP when you are:

  • Introducing a new tool, framework, or major dependency.
  • Changing the project architecture or pipeline design.
  • Establishing a new convention or process.
  • Making a decision that future contributors will wonder about.

For small, self-evident changes (typo fixes, minor refactors), an OMEP is not necessary.

OMEP Lifecycle

Status Meaning
proposed Under discussion; PR is open
accepted Decision has been approved and is in effect
rejected Proposal was considered but not adopted
deprecated Decision is no longer relevant
superseded Replaced by another OMEP (link to successor)

Numbering

OMEPs are numbered sequentially: OMEP-0001, OMEP-0002, etc. The filename follows the pattern:

OMEP-NNNN-short-title.md

Template

Use the template below when creating a new OMEP. All sections marked "optional" may be removed if they do not apply.


---
status: proposed
date: YYYY-MM-DD
decision-makers: [list of people]
---

# OMEP-NNNN: Short Title

## Context and Problem Statement

Describe the context, the problem, and why a decision is needed.

## Decision Drivers

* Driver 1
* Driver 2

## Considered Options

* Option A
* Option B
* Option C

## Decision Outcome

Chosen option: "Option X", because [justification].

### Consequences

* Good, because ...
* Bad, because ...

### Confirmation

How will we verify this decision is working?

## Pros and Cons of the Options

### Option A

* Good, because ...
* Bad, because ...

### Option B

* Good, because ...
* Bad, because ...

## More Information

Links, references, follow-up actions.

Index

OMEP Title Status
0001 Project Architecture accepted
0002 Task Management with mise accepted
0003 Changelog Management with git-cliff accepted
0004 Pre-commit Hooks with prek accepted
0005 CI/CD Pipeline accepted
0006 Markdown Parser -- Rushdown accepted
0007 Extended Syntax -- Comark Specification accepted
0008 Public API Stability & Versioning Policy accepted
0009 Publishing & Distribution (crates.io + PyPI) accepted
0010 Structured metadata extraction (TOC / anchors / summary) accepted
0011 Documentation Site & API Reference accepted
0012 Code Coverage Reporting accepted