pub enum LedgerKind {
Show 18 variants
Decision,
Assumption,
Constraint,
Rationale,
Hazard,
Tradeoff,
Invariant,
Ownership,
Proof,
ValidationScenario,
KnownBug,
Concept,
Mapping,
FollowUp,
Hypothesis,
MentalModel,
FailedAttempt,
OpenQuestion,
}Variants§
Decision
A design or implementation decision that was made.
Assumption
An assumption that was made (may need validation).
Constraint
A hard constraint this symbol must always satisfy.
Rationale
Rationale for why something was done a particular way.
Hazard
A known danger: what can go wrong if this changes.
Tradeoff
A tradeoff accepted to gain some benefit.
Invariant
An invariant that must always hold at this symbol.
Ownership
Ownership declaration: which subsystem/team owns this symbol.
Proof
Evidence that an invariant holds (test, review, trace, etc.).
ValidationScenario
A concrete scenario that should be validated (behaviour + expected outcome).
KnownBug
A known bug or defect that has not been fixed yet.
Concept
A domain concept (e.g. “Drift Pad clip playhead”) — first-class queryable entity.
Mapping
Plan B t-002: replacement-coverage mapping. “Legacy SIDFileParserTests
coverage now lives in SIDParserAndPlayerTests.” Body holds the cross-
reference in JSON (from_qname, to_qname, rationale).
FollowUp
Plan B t-002: open follow-up tied to an external task system.
“SID real-file diagnostics still need migration under t-024.” The
command field on LedgerEntry may carry the closing command; the
external_task_id evidence variant carries the task pointer.
Hypothesis
Plan G t-002: a speculative claim with confidence. Uses the
existing LedgerEntry.confidence: Option<f64> (0.0-1.0). Promoted
to Decision once validated. Distinct from Assumption: Assumption
= “we proceed as if true”; Hypothesis = “I suspect, evidence
pending”.
MentalModel
Plan G t-002: multi-symbol structural understanding (“the audio
pipeline flows input → mix → out”). Body MAY carry JSON
{"symbols": [qname...], "diagram": "..."}. Distinct from
Concept (single domain entity) — MentalModel spans symbols.
FailedAttempt
Plan G t-002: negative evidence. “I tried X; failed because Y;
pivoting to Z.” Body MAY carry JSON {"tried": "...", "because": "..."}. Saves the next session from re-treading the same path.
OpenQuestion
Plan G t-002: a known unknown blocking confident action. “What does this magic constant 4096 mean? Need to ask before changing.” Summary is the question; body MAY hold partial findings. Distinct from FollowUp: FollowUp is “do X under task T-024”; OpenQuestion is “what does this mean?”.
Implementations§
Source§impl LedgerKind
impl LedgerKind
Sourcepub fn conclusion_class(self) -> ConclusionClass
pub fn conclusion_class(self) -> ConclusionClass
Plan B t-001/t-002: map a LedgerKind to its conclusion class. Drives export bucketing into .asd/conclusions/{class}.jsonl.
Trait Implementations§
Source§impl Clone for LedgerKind
impl Clone for LedgerKind
impl Copy for LedgerKind
Source§impl Debug for LedgerKind
impl Debug for LedgerKind
Source§impl<'de> Deserialize<'de> for LedgerKind
impl<'de> Deserialize<'de> for LedgerKind
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for LedgerKind
Source§impl PartialEq for LedgerKind
impl PartialEq for LedgerKind
Source§impl Serialize for LedgerKind
impl Serialize for LedgerKind
impl StructuralPartialEq for LedgerKind
Auto Trait Implementations§
impl Freeze for LedgerKind
impl RefUnwindSafe for LedgerKind
impl Send for LedgerKind
impl Sync for LedgerKind
impl Unpin for LedgerKind
impl UnsafeUnpin for LedgerKind
impl UnwindSafe for LedgerKind
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.