proposal draft

APEX Amendment: Level of Effort (LOE) Field for Proposals

Bob Matsuoka Updated 2026-03-11
apex schema proposals loe process

APEX Amendment: Level of Effort (LOE) Field for Proposals

Date: 2026-03-06 Author: Bob Matsuoka Status: DRAFT Audience: Engineering Leadership, APEX contributors


Problem

APEX proposals have no structured place to record a Level of Effort estimate. This creates two gaps:

  1. Proposals that gate initiative creation — e.g. the go-dre staging test — require an ops/coordination LOE before a formal initiative can be opened, but there is no field to capture it, no owner to assign it to, and no way to see at a glance which proposals are blocked on a missing LOE.

  2. Proposals in the dashboard — the Docusaurus status page and any future tooling cannot surface "how big is this?" without parsing free-form prose.

Currently, type: proposal is not even in schemas/frontmatter.schema.json — proposals are freeform markdown with no required fields. This amendment formalises the proposal type and adds LOE as a structured field.


Proposal

1. Add proposal to the frontmatter schema

Add a proposal branch to frontmatter.schema.json alongside initiative, experiment, prd, team-charter, and decision.

Required fields:

type: proposal
title: "..."
status: draft | review | approved | implemented | rejected
author: "..."
created: YYYY-MM-DD
updated: YYYY-MM-DD

Optional fields:

loe: XS | S | M | L | XL | TBD
loe_owner: "Name"           # who provides the estimate
loe_notes: "..."            # free-form context (1 line)

LOE t-shirt sizing:

Size Meaning
XS < 1 day of coordination / ops work
S 1–3 days
M 1–2 weeks
L 2–6 weeks
XL > 6 weeks or scope unclear
TBD Estimate not yet provided — proposal blocked

2. Update the proposal template

Add a standard ## Level of Effort section to templates/proposal.md (create if not present) with the LOE table pattern established in the go-dre proposal.

3. Validation rule: proposals gating initiatives

When a proposal is referenced by an initiative's related_proposal field (future), the validator should warn if the proposal's loe is TBD and status is still draft. This surfaced the problem before the initiative is opened.

4. Frontmatter migration for existing proposals

Five existing proposals lacked the minimal type: proposal frontmatter required for schema validation. This PR includes the migration — each of the five files now has type, status, author, created, and updated fields added. The loe field is left as TBD on migrated proposals since retroactive sizing is speculative.

Migrated in this PR: - APEX-WORKFLOW-REVISIONS-PROPOSAL.md - CURSOR-INTEGRATION.md - MONOREPO-HIERARCHY.md - PDP-SPEC-PROCESS-PROPOSAL.md - TOOLING-IMPLEMENTATION-PROPOSAL.md

Two existing proposals (POLARIS-ARCHITECTURE.md, SHADOW-VAMPIRE-PIPELINE.md) already have full frontmatter — no changes needed. All archived proposals are also compliant.


What This Does Not Cover

  • Adding loe to initiatives or experiments (those already have explicit milestone-based sizing)
  • Automated LOE calculation or integration with Jira story points
  • Requiring LOE on all proposals — only those that gate initiative creation

Implementation

Step Owner Size
Add proposal type to schemas/frontmatter.schema.json Engineering XS
Create / update templates/proposal.md Engineering XS
Update scripts/apex/validate.py (or apex-tools) to recognise proposal type Engineering S
Update APEX docs (docs/CONTRIBUTING.md) with LOE convention Engineering XS

Total: S (1–2 days end-to-end)


Alternatives Considered

Put LOE in the initiative instead of the proposal. The initiative is where commitments live, so LOE could live there as loe_estimate. Rejected because the LOE is needed before the initiative is opened — it is the gate, not the output. Putting it in the initiative would allow initiatives to be created without the estimate, defeating the purpose.

Use numeric days instead of t-shirt sizes. More precise but harder to maintain — estimates get stale, and point precision implies false accuracy. T-shirt sizes age better and are consistent with how teams communicate effort in practice.