Skip to content

Recurring N/A: feature-loop steps 1-2 (spar AADL -> WIT) have been skipped every release and never filed — #912's rule applied to itself #1136

Description

@avrabe

Recurring N/A: feature-loop steps 1–2 (spar AADL → WIT), skipped every release since the loop was adopted

Filing this because the loop's own rule says to, and because the precedent
worked. [pulseengine-feature-loop]:

Recurring N/A is a backlog item, not an exemption. If you mark either one
N/A for the same reason three features running, file it — that pattern is
exactly how a real-flight MC/DC gap and a missing attestation chain stayed
hidden across ~20 features.

That rule already paid off once here: witness MC/DC (step 5) was N/A four
releases running, was filed as #912, and #978 made it real — synth now has
a BRANCH_POPULATION-pinned MC/DC gate that found genuine defects (#1100).

Steps 1–2 have never been filed. Every release records them as "N/A —
synth is a Rust compiler, not AADL-architected", which is true and has never
been examined.

The honest position, stated so it can be argued with

Steps 1–2 say architecture is modelled in spar (AADL) and WIT is generated
from it, never hand-written. For synth:

So unlike step 5 — which was genuinely skipped and turned out to be
buildable — steps 1–2 may be structurally N/A rather than deferred. If so,
that deserves to be written down once, with the reasoning, instead of
re-asserted per release by whoever is cutting.

What would change my mind

Two things would make this a real gap rather than a genuine N/A:

  1. The compliance envelope is architecture. SafetyBounds::None as the
    default, the reserved-register contract (R9/R10/R11/R12), and the
    linear-memory/globals/stack layout are architectural facts an assessor would
    expect modelled — and Document the complete embedder layout contract for --relocatable on Cortex-M: R9 is specified, the linear-memory base is not #1131 is an integrator blocked precisely because that
    layout contract is only half-written down. If spar can express a memory/
    register layout contract, steps 1–2 are not N/A; they are the missing home
    for the thing we are about to hand-write in RQ-62-EMBEDDER.
  2. DO-333 consumption. The North Star's claim is a CompCert-shaped story
    that DO-178C's formal-methods supplement tells authorities how to consume.
    If that story expects an architecture model as an input artifact, "N/A"
    costs us later, when it is expensive.

Ask

A decision, not necessarily work: are steps 1–2 permanently N/A for a
compiler (record it once in the methodology and stop re-deriving it), or is the
layout/envelope contract the architecture that should live in spar?

Either answer closes this. What should not continue is the third state — N/A
asserted fresh each release by whoever is cutting, which is how the loop's own
rule says gaps stay hidden.

Refs #912 (the precedent), #1131 (the layout contract this bears on)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions