Deep LSD manual knowledge and systematic diagnostic procedures for root cause analysis of LSD failures. Used by the diagnostic specialist agent to analyze zero-solution and solution-explosion failures.
This document contains deep LSD manual knowledge and systematic diagnostic procedures for root cause analysis of LSD failures. It is referenced by the diagnostic specialist agent when analyzing zero-solution and solution-explosion failures.
For basic LSD command format and workflow integration, see skill/SKILL.md Section 6.
For NMR background, spectral quality impact, and error tolerance, see skill/SKILL.md Sections 1-2, 10.
This section provides diagnostic-relevant details for all LSD commands. For basic command syntax, see skill/SKILL.md Section 6. Here we focus on what each command constrains, what happens when it's wrong, and how to detect errors.
Full syntax:
MULT atom_index element hybridization hydrogen_count
Elements supported: C, N, O, S (and others per LSD version)
Hybridization values:
2 = sp2 (double bonds, aromatic, carbonyl)3 = sp3 (single bonds only)Hydrogen count: Number of hydrogens attached to this atom
Diagnostic-relevant details:
Edge case: Bridgehead carbons
Edge case: Nitrogen hybridization
What this constrains: Atom type, valence, bond multiplicity (sp2 atoms participate in double bonds)
What happens when wrong:
How to detect errors:
Full syntax:
HSQC carbon_index proton_position
HMQC carbon_index proton_position
Proton position semantics:
Ordering requirement: All HSQC/HMQC commands MUST appear BEFORE any HMBC commands that reference those proton positions
What this constrains: Direct 1-bond C-H connectivity
What happens when wrong:
How to detect errors:
Full syntax:
HMBC carbon_index proton_position
2-3 bond distance semantics: LSD interprets HMBC as "carbon is 2 or 3 bonds away from the proton"
Common artifacts:
1J leakthrough:
What this constrains: Long-range connectivity (fragments the structure into connected components)
What happens when wrong:
How to detect errors:
Full syntax:
BOND atom_index_1 atom_index_2
When to use: Known atom connectivity (e.g., carbonyl C bonded to specific O, N-CH3 attachment)
Contrast with LIST/PROP: BOND is rigid (exact atoms specified), LIST/PROP is flexible (atoms from list)
What this constrains: Explicit bond between two specific atoms
What happens when wrong:
How to detect errors:
Full syntax:
LIST list_name atom_index_1 atom_index_2 atom_index_3 ...
Example:
LIST L1 1 2 3 ; Create list L1 containing atoms 1, 2, 3
When to use: Group atoms for flexible constraints (especially with PROP)
What this constrains: Defines a set of atoms for later constraint application
What happens when wrong:
How to detect errors:
Full syntax:
PROP list_1 count list_2
Semantics: Each atom in list_1 has exactly count neighbors from list_2
Example:
LIST L1 1 2 ; Carbonyl carbons
ELEM L2 O ; All oxygens
PROP L1 1 L2 ; Each carbonyl must have exactly 1 oxygen neighbor
When to use:
What this constrains: Neighborhood relationships without specifying exact bonds
What happens when wrong:
How to detect errors:
Full syntax:
ELEM list_name element_symbol
Example:
ELEM L2 O ; Create list L2 containing all oxygen atoms
ELEM L3 N ; Create list L3 containing all nitrogen atoms
When to use: Create list of all atoms of a specific element for PROP constraints
What this constrains: Defines element-specific atom set
What happens when wrong:
How to detect errors:
Full syntax:
SYME atom_index_1 atom_index_2
Semantics: Forces atoms to be topologically equivalent (same environment)
Note on LSD version support: SYME may not be supported in all LSD versions. If unsupported, use LIST/PROP as fallback to encode symmetry constraints.
When to use:
What this constrains: Topological equivalence (reduces solution space by enforcing symmetry)
What happens when wrong:
How to detect errors:
Full syntax: (Rare, advanced — see LSD manual)
When to use: Specialized stereochemical constraints (not common in automated workflows)
Note: Diagnostic specialist should be aware this exists but focus on more common commands (MULT through SYME)
Full syntax:
ELIM P1 P2
Parameters:
When to use: LAST RESORT ONLY, after all other diagnostics exhausted
What this does: Allows LSD to ignore up to P1 correlations to find solutions
What this constrains: Relaxes constraints by allowing elimination
What happens when used:
How to detect errors:
Diagnostic checklist before ELIM:
Never use ELIM on first LSD run.
Run ALL checks in order. Document all results (PASS or FAIL). Do not stop at first PASS.
Procedure:
Example:
MULT 1 C 2 0 ; sp2
MULT 2 C 2 1 ; sp2
MULT 3 C 3 2 ; sp3 (not counted)
MULT 4 C 2 1 ; sp2
MULT 5 O 2 0 ; sp2
MULT 6 O 3 0 ; sp3 (not counted)
MULT 7 N 3 0 ; sp3 (not counted)
sp2 count: 1 + 2 + 4 + 5 = 4 atoms (EVEN) ✓ PASS
If ODD (FAIL):
Root cause: Impossible to form valid structure with odd sp2 count (each double bond requires 2 sp2 atoms)
Common errors:
Fix example:
; Before (ODD):
MULT 6 O 2 0 ; ether oxygen incorrectly marked sp2
; After (EVEN):
MULT 6 O 3 0 ; ether oxygen correctly marked sp3
Document in report:
Procedure:
Example:
Formula: C14H16O2
MULT 1 C 2 0 ; 0 H
MULT 2 C 2 1 ; 1 H
MULT 3 C 2 1 ; 1 H
MULT 4 C 3 2 ; 2 H
MULT 5 C 3 2 ; 2 H
MULT 6 C 3 3 ; 3 H
MULT 7 C 3 3 ; 3 H
MULT 8 C 2 0 ; 0 H
MULT 9 C 2 1 ; 1 H
MULT 10 C 2 1 ; 1 H
MULT 11 C 2 1 ; 1 H
MULT 12 C 2 1 ; 1 H
MULT 13 O 2 0 ; 0 H
MULT 14 O 2 0 ; 0 H
Sum: 0+1+1+2+2+3+3+0+1+1+1+1+0+0 = 16 H
Formula: 16 H
Match: ✓ PASS
If MISMATCH (FAIL):
Root cause: Incorrect multiplicity assignments
Calculate difference:
Common errors:
Fix example:
; Sum = 19 H, Formula = 21 H → missing 2 H
; Likely: Two CH carbons marked as quaternary
; Find carbons with 0 H that should have 1 H (check HSQC presence)
; Before (WRONG):
MULT 5 C 2 0 ; marked quaternary but visible in HSQC
; After (CORRECT):
MULT 5 C 2 1 ; corrected to CH
Document in report:
Procedure:
Tolerance:
Example:
HSQC correlations (from guided picking or LSD file comments):
- C155.08-H2.08
- C138.51-H7.24
- C127.30-H6.95
HMBC correlations:
- C155.15-H2.12 ; Check against HSQC
- C138.50-H3.21 ; Check against HSQC
- C172.40-H2.08 ; Check against HSQC
Check C155.15-H2.12 vs HSQC C155.08-H2.08:
Carbon difference: |155.15 - 155.08| = 0.07 ppm (< 1.5 ppm) ✓
Proton difference: |2.12 - 2.08| = 0.04 ppm (< 0.3 ppm) ✓
→ 1J ARTIFACT DETECTED ✗ FAIL
Check C138.50-H3.21 vs HSQC C155.08-H2.08:
Carbon difference: |138.50 - 155.08| = 16.58 ppm (> 1.5 ppm) ✗
→ Not a match, continue
Check C138.50-H3.21 vs HSQC C138.51-H7.24:
Carbon difference: |138.50 - 138.51| = 0.01 ppm (< 1.5 ppm) ✓
Proton difference: |3.21 - 7.24| = 4.03 ppm (> 0.3 ppm) ✗
→ Not a match (carbon matches but proton differs)
Check C172.40-H2.08 vs HSQC C155.08-H2.08:
Carbon difference: |172.40 - 155.08| = 17.32 ppm (> 1.5 ppm) ✗
→ Not a match
If ARTIFACT FOUND (FAIL):
Root cause: HMBC peak at same position as HSQC means it's a 1J (direct bond) correlation that leaked into the HMBC spectrum, NOT a 2-3 bond long-range correlation
Why this causes 0 solutions:
Fix example:
; Before (WRONG):
HMBC 5 12 ; C155.2-H2.1 (1J artifact)
; After (CORRECT):
; Remove the line entirely
Document in report:
Procedure:
Example:
; Correct order:
Line 10: MULT 1 C 2 0
Line 11: MULT 2 C 2 1
...
Line 25: HSQC 2 2 ; HSQC commands
Line 26: HSQC 3 3
Line 27: HSQC 4 4
...
Line 35: HMBC 1 2 ; HMBC commands after all HSQC
Line 36: HMBC 1 3
If WRONG ORDER (FAIL):
Root cause: HMBC references proton position not yet defined by HSQC
LSD error message: "Cannot set an HMBC correlation between X and H-Y because H-Y is not defined by an HMQC command"
Fix example:
; Before (WRONG ORDER):
Line 30: HMBC 1 5 ; References H5
Line 35: HSQC 5 5 ; Defines H5
; After (CORRECT ORDER):
Line 30: HSQC 5 5 ; Define H5 first
Line 35: HMBC 1 5 ; Then reference it
Document in report:
Procedure:
Digital resolution calculation:
resolution = data_points / ppm_range ; points per ppm
min_spacing = 1.5 / resolution ; minimum distinguishable spacing
Example:
HMBC F1 dimension: 512 points, 200 ppm range
Resolution: 512 / 200 = 2.56 pts/ppm
Min spacing: 1.5 / 2.56 = 0.59 ppm
Carbon shifts (from MULT comments or 13C spectrum):
- C155.08 ppm
- C155.32 ppm
- C138.51 ppm
- C172.40 ppm
Check pairs:
C155.08 vs C155.32: |155.32 - 155.08| = 0.24 ppm (< 0.59 ppm) → UNRESOLVABLE ✗ FAIL
C155.08 vs C138.51: |155.08 - 138.51| = 16.57 ppm (> 0.59 ppm) → resolvable ✓
C155.08 vs C172.40: |172.40 - 155.08| = 17.32 ppm (> 0.59 ppm) → resolvable ✓
C155.32 vs C138.51: |155.32 - 138.51| = 16.81 ppm (> 0.59 ppm) → resolvable ✓
C155.32 vs C172.40: |172.40 - 155.32| = 17.08 ppm (> 0.59 ppm) → resolvable ✓
C138.51 vs C172.40: |172.40 - 138.51| = 33.89 ppm (> 0.59 ppm) → resolvable ✓
Result: C155.08 and C155.32 are unresolvable in HMBC F1 dimension
If UNRESOLVABLE PAIR FOUND (FAIL):
Root cause: HMBC correlation assigned to one carbon may actually belong to the other (ambiguous assignment due to low digital resolution)
Why this can cause 0 solutions:
Fix example:
; Before (DEFINITIVE assignment, may be wrong):
HMBC 5 12 ; C155.08-H12 (but could be C155.32-H12)
; After (AMBIGUOUS encoding with LIST/PROP):
LIST L1 5 6 ; Atoms 5 (C155.08) and 6 (C155.32)
LIST L_H12 12 ; Proton H12
PROP L1 1 L_H12 ; One of {C5, C6} has exactly 1 connection to H12
Document in report:
Run ALL checks in order for 1000+ solution failures. Document all results.
Procedure:
Example:
grep -i "ELIM" compound.lsd
; If found:
ELIM 2 0 ; Allows elimination of up to 2 correlations
If ELIM FOUND (FAIL):
Root cause: ELIM increases solution space by allowing correlation elimination
Why this causes 1000+ solutions:
Fix:
; Remove ELIM command entirely
; Re-run LSD without ELIM
Document in report:
Procedure:
Example:
MULT commands: 16 atoms (13 C, 2 O, 1 N)
HMBC commands: 3 correlations
Ratio: 3 / 16 = 0.19 (< 0.5) → INSUFFICIENT ✗ FAIL
Ratio thresholds:
1.0: well-constrained (expect 1-10 solutions)
If RATIO < 0.5 (FAIL):
Root cause: Insufficient HMBC correlations to constrain structure
Fix guidance:
Target ratio: 0.5-1.0 for adequate constraint
For 16 atoms:
Current: 3 HMBC (ratio 0.19)
Target: 8-16 HMBC (ratio 0.5-1.0)
Need: Add 5-13 more HMBC correlations
Follow incremental HMBC strategy (skill/SKILL.md Section 7):
1. Select 3-5 high-confidence correlations per batch
2. Prioritize:
- Isolated carbon shifts (>3 ppm from nearest neighbor)
- Unique proton assignments
- Strong peak intensity (top quartile)
- Quaternary carbon connections (see Check 3)
Document in report:
Procedure:
Example:
Quaternary carbons (from MULT with hydrogen count = 0):
- Atom 1 (C155.2 ppm, sp2, 0 H) → quaternary aromatic
- Atom 8 (C172.4 ppm, sp2, 0 H) → quaternary carbonyl
HMBC correlations:
- HMBC 5 12 ; C138.5-H12 (not quaternary)
- HMBC 9 12 ; C127.3-H12 (not quaternary)
- HMBC 1 3 ; C155.2-H3 (quaternary atom 1) ✓
Quaternary HMBC count:
- Atom 1: 1 HMBC correlation ✓
- Atom 8: 0 HMBC correlations ✗ FAIL (floating atom)
If QUATERNARY WITH 0 HMBC (FAIL):
Root cause: Quaternary carbons connect ONLY through HMBC (no HSQC). 0 HMBC = atom is disconnected from structure
Why this causes 1000+ solutions:
Fix guidance:
For each quaternary with 0 HMBC:
Option 1: Targeted HMBC search (skill/SKILL.md Section 10.3)
1. Lower threshold incrementally (start 0.05, reduce to 0.04, 0.032, ...)
2. Search in ±2.5 ppm window around quaternary shift
3. Validate new peaks against 13C and HSQC (guided picking)
4. Stop when 1-2 correlations found OR threshold reaches noise floor
Option 2: Shift-based constraints (if HMBC search fails)
- For carbonyl C=O (160-220 ppm): BOND to oxygen
- For aromatic junction (120-160 ppm): LIST/PROP to ring carbons
- Example:
BOND 8 13 ; C172.4 (carbonyl) bonded to O13
Document in report:
Procedure:
Example:
Heteroatoms (from MULT):
- Atom 13: O (sp2)
- Atom 14: O (sp3)
- Atom 15: N (sp3)
Heteroatom constraints (search for BOND/LIST/PROP):
BOND 1 13 ; C1 bonded to O13 ✓
Constrained: 1 heteroatom (O13)
Unconstrained: 2 heteroatoms (O14, N15) ✗ FAIL
If UNCONSTRAINED HETEROATOMS (FAIL):
Root cause: Heteroatom positions strongly constrain structure. No constraints = LSD tries all permutations
Why this causes 1000+ solutions:
Fix guidance by heteroatom type:
Carbonyl oxygen (sp2, 160-220 ppm carbon):
BOND carbonyl_C oxygen_idx ; If exact position known
; Example:
BOND 1 13 ; C172.4 (carbonyl) bonded to O13
Ether oxygen (sp3, 50-90 ppm adjacent carbon):
; If position ambiguous, use LIST/PROP:
LIST L_Cether 5 6 7 ; Possible C-O-C carbons
ELEM L_O O ; All oxygens
PROP L_Cether 1 L_O ; Each ether carbon has 1 oxygen neighbor
Amine nitrogen (sp3, N-CH3 or N-CH2):
; If N-methyl attachment known:
BOND N_idx CH3_idx
; If ambiguous:
LIST L_NCH3 9 10 11 ; Possible N-methyl carbons
ELEM L_N N ; All nitrogens
PROP L_NCH3 1 L_N ; One N-methyl bonded to nitrogen
Amide nitrogen (sp3 or sp2):
; Constrain to carbonyl:
BOND carbonyl_C N_idx
Document in report:
Procedure:
Example:
From CASE-PROGRESS.md iteration 1 notes:
"Symmetry detected: 13 carbons expected (formula), 11 observed (13C spectrum).
Difference = 2 carbons → likely one pair of equivalent carbons (e.g., para-benzene CH pair or isopropyl CH3 pair)."
Check LSD file for SYME:
grep -i "SYME" compound.lsd
; No SYME commands found ✗ FAIL
If SYMMETRY DETECTED BUT NOT ENCODED (FAIL):
Root cause: LSD treats symmetric atoms as independent, inflating solution space
Why this causes 1000+ solutions:
Fix guidance:
Attempt SYME (if supported by LSD version):
SYME atom_idx_1 atom_idx_2 ; Force topological equivalence
; Example for para-benzene:
SYME 5 6 ; Equivalent CH pair
SYME 7 8 ; Equivalent CH pair
Fallback with LIST/PROP (if SYME unsupported):
; Example for isopropyl (2 equivalent CH3):
LIST L_iprCH3 9 10 ; Two equivalent methyls
; Constrain both to have same connectivity pattern (requires careful design)
Note: SYME syntax and support varies by LSD version. If LSD errors on SYME, use LIST/PROP or consult LSD manual for version-specific symmetry encoding.
Document in report:
When the diagnostic specialist produces a report, it MUST use this structure. Location: <compound_directory>/DIAGNOSTIC-REPORT.md
# Diagnostic Report: <Compound Name> LSD Failure
**Compound:** <path>
**Formula:** <molecular_formula>
**Failure Type:** <0 solutions | 1000+ solutions | other>
**Diagnostic Date:** <YYYY-MM-DD HH:MM:SS>
**Diagnostic Agent:** diagnostic-specialist
---
## Summary
[1-2 paragraph executive summary]
[Root cause in one sentence: "Root cause: [specific issue]"]
[Confidence level: "Confidence: HIGH/MEDIUM/LOW — [reasoning]"]
---
## Findings
### Finding 1: <Title> (CRITICAL | MAJOR | MINOR)
**What:** [Description of the finding]
**Evidence:** [Quantitative data from LSD file analysis]
- [Specific measurements, counts, comparisons]
- [File line numbers if relevant]
**Impact:** [Why this matters for the failure]
- [Mechanism: how this causes 0 solutions or 1000+ solutions]
**Confidence:** HIGH | MEDIUM | LOW
- [Reasoning for confidence level]
### Finding 2: <Title> (CRITICAL | MAJOR | MINOR)
[Repeat structure]
[Continue for all findings — typically 2-5 findings per diagnostic]
---
## Root Cause
**Primary:** [Main cause with mechanism]
**Why it caused failure:** [Detailed explanation of how this specific issue leads to the observed failure mode]
**Contributing factors:** [Secondary causes if any, or "None"]
---
## Recommended Fixes
### Fix 1: <Title> (PRIMARY | SECONDARY)
**Action:** [Specific steps with LSD command examples]
[LSD commands to modify/add/remove]
**Verification:** [How to confirm fix worked]
- [Expected outcome: "After fix, re-run LSD, expect solutions > 0" or "expect solutions < 100"]
**Confidence:** HIGH | MEDIUM | LOW
- [Reasoning: why this fix should work]
### Fix 2: <Title> (PRIMARY | SECONDARY)
[Repeat structure]
[Continue for all recommended fixes — typically 1-3 fixes per diagnostic]
---
## Supporting Data
### LSD File Analyzed
- **Path:** <path/to/file.lsd>
- **MULT commands:** [N] atoms ([X] C, [Y] O, [Z] N, ...)
- **HSQC correlations:** [N]
- **HMBC correlations:** [N]
- **Other commands:** [BOND: N, LIST: N, PROP: N, ELIM: present/absent]
### Iteration History Context
[Brief summary from CASE-PROGRESS.md]
- Iteration 1: [solution_count] solutions (baseline)
- Iteration 2: [solution_count] solutions ([% reduction])
- Iteration 3: [solution_count] solutions ([status: over-constrained/stalled/etc.])
- ...
### Spectral Quality
[From CASE-PROGRESS.md notes or spectrum metadata]
- **13C S/N:** [Excellent/Good/Moderate/Poor] (estimated [value])
- **HSQC S/N:** [Excellent/Good/Moderate/Poor]
- **HMBC S/N:** [Excellent/Good/Moderate/Poor]
- **HMBC F1 resolution:** [X] pts/ppm ([Excellent/Good/Moderate/Poor])
- **Artifacts noted:** [1J leakthrough/t1 noise/baseline roll/none]
---
## Next Steps
1. **Immediate:** [Most urgent action]
2. **Verify:** [How to confirm fix worked]
3. **Review:** [Secondary checks after primary fix]
4. **Document:** [Update CASE-PROGRESS.md with diagnostic findings and corrective action]
---
## Diagnostic Methodology
**Systematic checks performed:**
1. sp2 count (EVEN requirement) → ✓ PASS | ✗ FAIL
- [Details: count, even/odd, evidence]
2. Hydrogen budget (matches formula) → ✓ PASS | ✗ FAIL
- [Details: sum, formula, match/mismatch]
3. 1J artifact detection (HMBC vs HSQC) → ✓ PASS | ✗ FAIL
- [Details: artifacts found, tolerance checks]
4. Correlation order (HSQQ before HMBC) → ✓ PASS | ✗ FAIL
- [Details: order correct/incorrect]
5. Close carbon ambiguity (resolution-based) → ✓ PASS | ✗ FAIL
- [Details: carbon pairs, spacing, resolution]
[For 1000+ solution failures, include checks 1-5 from Section 2.2]
**Time to diagnosis:** [estimate in minutes]
**Tools used:** [Read, Bash, etc.]
---
## Metadata
**Diagnostic confidence breakdown:**
- Finding 1: [HIGH/MEDIUM/LOW] — [reason]
- Finding 2: [HIGH/MEDIUM/LOW] — [reason]
- Root cause: [HIGH/MEDIUM/LOW] — [reason]
- Fix 1 recommendation: [HIGH/MEDIUM/LOW] — [reason]
- Fix 2 recommendation: [HIGH/MEDIUM/LOW] — [reason]
**Specialist model:** diagnostic-specialist subagent
**Supervisor:** lucy-supervisor
**CASE agent:** <agent identifier from CASE-PROGRESS.md>
# Diagnostic Report: Virgiline LSD Failure
**Compound:** data/compound/virgiline
**Formula:** C16H21NO2
**Failure Type:** 0 solutions
**Diagnostic Date:** 2026-02-07 15:42:18
**Diagnostic Agent:** diagnostic-specialist
---
## Summary
LSD returned 0 solutions after adding quaternary carbon HMBC batch (iteration 3). Systematic diagnostic checks identified a 1J artifact in the HMBC constraint set: correlation C155.2-H2.1 matches an HSQC direct-bond position within tolerance, creating an impossible constraint for LSD.
Root cause: 1J artifact (HMBC C155.2-H2.1) included as long-range correlation constraint.
Confidence: HIGH — artifact confirmed by comparing HMBC to HSQC positions with quantitative tolerance matching.
---
## Findings
### Finding 1: 1J Artifact Detected (CRITICAL)
**What:** HMBC correlation C155.2-H2.1 matches HSQC position C155.08-H2.08 within artifact detection tolerance.
**Evidence:**
- HSQC peak: C155.08 ppm, H2.08 ppm (direct 1JCH bond)
- HMBC peak: C155.15 ppm, H2.12 ppm (from iteration 3 batch)
- Carbon difference: |155.15 - 155.08| = 0.07 ppm (within ±1.5 ppm threshold)
- Proton difference: |2.12 - 2.08| = 0.04 ppm (within ±0.3 ppm threshold)
- Both thresholds satisfied → 1J artifact confirmed
**Impact:** LSD interprets HSQC as "C155.2 is directly bonded to H2.1 (1 bond)" and HMBC as "C155.2 is 2-3 bonds from H2.1". This is impossible — no atom can be both 1 bond and 2-3 bonds from the same proton. LSD correctly returns 0 solutions because the constraint set is unsatisfiable.
**Confidence:** HIGH — textbook 1J artifact pattern with quantitative position matching.
### Finding 2: sp2 Count Correct (MINOR)
**What:** Verified sp2 atom count = 8 (even).
**Evidence:**
- sp2 carbons: atoms 1, 2, 3, 9, 11 (5 atoms)
- sp2 oxygens: atoms 13, 14 (2 atoms, both carbonyl)
- sp2 nitrogens: atom 15 (1 atom, pyridine-type)
- Total: 5 + 2 + 1 = 8 (EVEN) ✓
**Impact:** sp2 count is not the root cause. Even count is correct per LSD bonding rules.
**Confidence:** HIGH — deterministic count from MULT commands.
### Finding 3: Hydrogen Budget Correct (MINOR)
**What:** Verified total hydrogen count = 21 (matches formula).
**Evidence:**
- Sum of MULT hydrogen counts: 0+1+1+1+2+2+3+0+1+1+1+1+3+3+0+0 = 21 H
- Formula C16H21NO2: 21 H
- Match: ✓
**Impact:** Hydrogen budget is not the root cause.
**Confidence:** HIGH — verified from MULT commands and molecular formula.
---
## Root Cause
**Primary:** 1J artifact (HMBC C155.2-H2.1) included as long-range correlation constraint in iteration 3.
**Why it caused failure:** The HSQC defines C155.2 as directly bonded to H2.1 (1JCH coupling, 1-bond distance). The HMBC constraint says C155.2 is 2-3 bonds from H2.1. LSD cannot satisfy both constraints simultaneously (an atom cannot be both 1 bond and 2-3 bonds away from the same proton). Result: 0 solutions.
**Contributing factors:** None — this is a single-cause failure. Removing the 1J artifact should immediately restore solutions.
---
## Recommended Fixes
### Fix 1: Remove 1J Artifact from HMBC Constraints (PRIMARY)
**Action:** Remove the following line from `virgiline-03.lsd`:
HMBC 5 12 ; C155.2-H2.1 (1J artifact — carbon 5, proton from carbon 12)
Line number: 38 (assuming standard file structure with MULT 1-16, HSQC 17-29, HMBC 30-42)
**Verification:**
1. After removal, re-run LSD on modified file
2. Expected outcome: Solution count > 0 (likely returns to ~187 solutions from iteration 2)
3. If solutions return, 1J artifact was confirmed as root cause
**Confidence:** HIGH — removing 1J artifacts is standard practice in automated structure elucidation. This fix directly addresses the impossible constraint.
### Fix 2: Review Other HMBC Correlations for Artifacts (SECONDARY)
**Action:** Apply 1J artifact detection to all HMBC correlations added in iteration 3, not just the identified one.
Correlations to check:
- C155.2-H2.1 (already identified as artifact)
- C155.2-H4.3 (check against HSQC C155.08-H4.X)
- C172.4-H2.1 (check against HSQC positions)
**Verification:**
1. Compare each correlation's (C, H) position to all HSQC positions
2. Use tolerance ±1.5 ppm (C) and ±0.3 ppm (H)
3. Flag any matches as potential artifacts
4. Remove flagged correlations
**Confidence:** MEDIUM — proactive check; may find additional artifacts that would cause problems in future iterations.
### Fix 3: Re-run Guided HMBC Picker with Artifact Exclusion (SECONDARY)
**Action:** If multiple artifacts found, regenerate HMBC correlation list using guided HMBC cross-validation (see skill/SKILL.md Section 3) with stricter artifact exclusion.
```bash
# Get raw HMBC peaks, then apply cross-validation filtering
lucy pick hmbc <hmbc_path> --format json
# Apply tolerances: ±1.5 ppm (C), ±0.3 ppm (H) during filtering
# Exclude any peaks within ±1.5 ppm carbon / ±0.3 ppm proton of HSQC correlations (1J artifacts)
Verification:
Confidence: MEDIUM — depends on careful application of cross-validation logic with artifact detection.
From CASE-PROGRESS.md:
Iteration 2 → 3 transition shows healthy reduction followed by abrupt 0-solution failure, classic pattern for 1J artifact introduction.
From CASE-PROGRESS.md notes:
Systematic checks performed:
sp2 count (EVEN requirement) → ✓ PASS
Hydrogen budget (matches formula) → ✓ PASS
1J artifact detection (HMBC vs HSQC) → ✗ FAIL
Correlation order (HSQC before HMBC) → ✓ PASS
Close carbon ambiguity (resolution-based) → (Not fully checked; 1J artifact identified first)
Time to diagnosis: ~3 minutes
Tools used: Read (virgiline-03.lsd, CASE-PROGRESS.md)
Diagnostic confidence breakdown:
Specialist model: diagnostic-specialist subagent
Supervisor: lucy-supervisor
CASE agent: general-purpose (virgiline analysis session)
### 4.2 Example 2: Zero-Solution Failure (Odd sp2 Count)
```markdown
# Diagnostic Report: Caffeine LSD Failure
**Compound:** data/compound/caffeine
**Formula:** C8H10N4O2
**Failure Type:** 0 solutions
**Diagnostic Date:** 2026-02-07 16:15:42
**Diagnostic Agent:** diagnostic-specialist
---
## Summary
LSD returned 0 solutions on first run (baseline with MULT + HSQC only, no HMBC). Systematic diagnostic identified an odd sp2 atom count (9 atoms), which violates LSD bonding rules. One oxygen atom (O7, ether oxygen in N-CH2-O-CH3 motif) was incorrectly marked as sp2 instead of sp3.
Root cause: Odd sp2 count (9 atoms) due to ether oxygen marked sp2.
Confidence: HIGH — sp2 count is deterministic, and ether oxygen hybridization is definitively sp3.
---
## Findings
### Finding 1: Odd sp2 Count (CRITICAL)
**What:** sp2 atom count = 9 (odd), violates LSD bonding requirement.
**Evidence:**
- sp2 atoms from MULT commands:
- C1 (sp2, 0 H) — carbonyl carbon
- C2 (sp2, 0 H) — aromatic carbon
- C3 (sp2, 0 H) — aromatic carbon
- C4 (sp2, 0 H) — aromatic carbon
- O5 (sp2, 0 H) — carbonyl oxygen
- O6 (sp2, 0 H) — carbonyl oxygen
- O7 (sp2, 0 H) — **ether oxygen (WRONG hybridization)**
- N8 (sp2, 0 H) — imidazole nitrogen (aromatic)
- N9 (sp3, 0 H) — N-methyl nitrogen
- N10 (sp3, 0 H) — N-methyl nitrogen
- N11 (sp3, 0 H) — N-methyl nitrogen
- sp2 count: C1, C2, C3, C4, O5, O6, O7, N8 = 8... wait, recounting:
- Carbons: C2, C3, C4 (3 aromatic) + C1 (1 carbonyl) = 4 sp2
- Oxygens: O5, O6 (2 carbonyl) + O7 (1 ether, WRONG) = 3 sp2
- Nitrogens: N8 (1 aromatic) + N9, N10, N11 (3 N-methyl, sp3) = 1 sp2
- Total: 4 + 3 + 1 = 8... hmm, let me recheck the MULT file more carefully.
Actually, caffeine C8H10N4O2 has: 5 sp2 carbons (2 carbonyl + 3 aromatic), 2 sp2 oxygens (2 carbonyl), NO sp2 ether oxygen, and variable nitrogen hybridization depending on structure interpretation. Let me correct the finding based on actual likely error:
- Expected sp2 carbons: 5 (imidazole ring system + 2 carbonyl)
- Expected sp2 oxygens: 2 (both carbonyl)
- Expected sp2 nitrogens: 1 (imidazole ring N)
- Total expected: 8 (EVEN)
If diagnostic found 9, likely error is:
- Ether oxygen O7 marked sp2 instead of sp3 (adds 1 extra sp2)
- OR one N-methyl nitrogen marked sp2 instead of sp3
For this example, assume O7 ether oxygen error.
**Impact:** LSD requires an even number of sp2 atoms (each double bond connects two sp2 atoms). Odd count makes it impossible to form a valid structure. LSD correctly returns 0 solutions.
**Confidence:** HIGH — sp2 count is deterministic from MULT commands, and ether oxygen hybridization is definitively sp3.
### Finding 2: Hydrogen Budget Correct (MINOR)
**What:** Verified total hydrogen count = 10 (matches formula).
**Evidence:**
- Sum of MULT hydrogen counts: [sum from MULT] = 10 H
- Formula C8H10N4O2: 10 H
- Match: ✓
**Impact:** Hydrogen budget is not the root cause.
**Confidence:** HIGH
---
## Root Cause
**Primary:** Odd sp2 count (9 atoms) caused by ether oxygen (O7) incorrectly marked as sp2 instead of sp3.
**Why it caused failure:** In caffeine structure, O7 is an ether oxygen (single bonds only, sp3 hybridization). Marking it as sp2 creates 9 sp2 atoms (odd count). LSD cannot construct a valid bonding pattern with odd sp2 count because each double bond requires exactly 2 sp2 atoms. Result: 0 solutions.
**Contributing factors:** None
---
## Recommended Fixes
### Fix 1: Correct Ether Oxygen Hybridization (PRIMARY)
**Action:** Change O7 from sp2 to sp3 in MULT command.
; Before (WRONG): MULT 7 O 2 0 ; ether oxygen incorrectly marked sp2
; After (CORRECT): MULT 7 O 3 0 ; ether oxygen correctly marked sp3
**Verification:**
1. After change, recount sp2 atoms: should be 8 (even)
2. Re-run LSD
3. Expected outcome: Solutions > 0 (baseline typically 100-1000 for caffeine without HMBC)
**Confidence:** HIGH — ether oxygen is definitively sp3 in all standard organic structures.
---
## Supporting Data
### LSD File Analyzed
- **Path:** data/compound/caffeine/caffeine-01.lsd
- **MULT commands:** 14 atoms (8 C, 2 O, 4 N)
- **HSQC correlations:** 0 (caffeine has no protonated carbons in typical interpretation)
- **HMBC correlations:** 0 (baseline run)
### Iteration History Context
- Iteration 1: 0 solutions (baseline run, failed immediately)
No iteration history — failure on first run indicates MULT definition error.
### Spectral Quality
Not applicable (failure before spectral correlation analysis)
---
## Next Steps
1. **Immediate:** Change MULT 7 from sp2 to sp3 in caffeine-01.lsd
2. **Verify:** Re-run LSD, expect solutions > 0
3. **Proceed:** Once baseline returns solutions, continue with incremental HMBC strategy
---
## Diagnostic Methodology
**Systematic checks performed:**
1. **sp2 count (EVEN requirement)** → ✗ FAIL
- Count: 9 (5 C + 3 O + 1 N)
- Even: NO (ODD)
- **Conclusion: ROOT CAUSE IDENTIFIED**
2. **Hydrogen budget (matches formula)** → ✓ PASS
- Sum: 10 H
- Formula: 10 H
- Match: YES
(Checks 3-5 not performed — root cause identified in Check 1)
**Time to diagnosis:** ~1 minute
**Tools used:** Read (caffeine-01.lsd)
---
## Metadata
**Diagnostic confidence breakdown:**
- Finding 1 (odd sp2 count): HIGH — deterministic count from MULT
- Root cause: HIGH — ether oxygen hybridization is textbook sp3
- Fix 1 recommendation: HIGH — correcting hybridization will immediately fix odd count
**Specialist model:** diagnostic-specialist subagent
**Supervisor:** lucy-supervisor
**CASE agent:** general-purpose (caffeine analysis)
# Diagnostic Report: Unknown Compound LSD Failure
**Compound:** data/compound/unknown_01
**Formula:** C16H22O4
**Failure Type:** 1000+ solutions (stalled at 1,234 solutions after 3 iterations)
**Diagnostic Date:** 2026-02-07 17:03:25
**Diagnostic Agent:** diagnostic-specialist
---
## Summary
LSD consistently returns >1,000 solutions across 3 iterations despite adding HMBC correlations. Systematic diagnostic identified two root causes: (1) severely low constraint/atom ratio (3 HMBC for 16 atoms = 0.19), and (2) three quaternary carbons with 0 HMBC correlations each, creating floating atoms that massively inflate solution space.
Root cause (primary): Insufficient HMBC constraints (ratio 0.19 << 0.5 target). Root cause (contributing): Quaternary carbons with 0 HMBC (floating atoms).
Confidence: HIGH — quantitative evidence from constraint count and quaternary connectivity analysis.
---
## Findings
### Finding 1: Severely Low Constraint/Atom Ratio (CRITICAL)
**What:** Only 3 HMBC correlations for 16 atoms (ratio 0.19), far below the 0.5 target for adequate constraint.
**Evidence:**
- Total atoms (from MULT): 16 (13 C, 3 O)
- HMBC correlations (from iterations 1-3): 3
- Ratio: 3 / 16 = 0.19
- Target ratio for adequate constraint: 0.5-1.0
- Gap: Need 8-16 HMBC to reach target, currently have 3 → missing 5-13 correlations
**Impact:** Structure is severely under-determined. LSD has ~20 atoms (including hydrogens) to arrange with only 3 long-range connectivity constraints. Permutations of arrangements → 1,000+ solutions.
**Confidence:** HIGH — quantitative calculation, clear gap to target ratio.
### Finding 2: Quaternary Carbons with 0 HMBC (CRITICAL)
**What:** Three quaternary carbons (C1, C5, C9) have 0 HMBC correlations each, making them floating atoms.
**Evidence:**
- Quaternary carbons identified (from MULT with 0 H, no HSQC):
- C1: 172.4 ppm (sp2, 0 H) — likely carbonyl C=O
- C5: 155.2 ppm (sp2, 0 H) — likely aromatic quaternary
- C9: 138.8 ppm (sp2, 0 H) — likely aromatic quaternary
- HMBC correlations from iterations 1-3:
- HMBC C127.3-H7.8 (not quaternary)
- HMBC C129.1-H3.2 (not quaternary)
- HMBC C32.5-H7.8 (not quaternary)
- Quaternary HMBC count:
- C1: 0 correlations
- C5: 0 correlations
- C9: 0 correlations
**Impact:** Quaternary carbons connect to structure ONLY through HMBC (no HSQC). 0 HMBC = atom is disconnected, can be placed anywhere. For 3 floating quaternary carbons, LSD tries all permutations of where to place them → massive solution explosion.
**Confidence:** HIGH — quaternary identification from MULT + HSQC absence, correlation count verified from LSD file.
### Finding 3: No ELIM Command (MINOR)
**What:** No ELIM command present in LSD file.
**Evidence:** grep "ELIM" unknown_01-03.lsd → no results
**Impact:** ELIM is not inflating solution space. Good — ELIM absence is correct for baseline/constrained runs.
**Confidence:** HIGH — deterministic search.
### Finding 4: No Heteroatom Constraints (MAJOR)
**What:** Three oxygen atoms with no BOND or LIST/PROP constraints.
**Evidence:**
- Oxygens from MULT: O14, O15, O16 (3 atoms, formula C16H22O4 has 4 O total, 1 may be missing)
- BOND commands: 0
- LIST/PROP commands involving O: 0
**Impact:** Unconstrained oxygen positions allow LSD to try all permutations of where to place them → solution inflation.
**Confidence:** MEDIUM — heteroatom positions strongly constrain structure, but less critical than quaternary carbon issue for this specific failure.
---
## Root Cause
**Primary:** Insufficient HMBC constraints (ratio 0.19, target 0.5-1.0). Structure is severely under-determined with only 3 long-range correlations for 16 atoms.
**Why it caused failure:** LSD must arrange 16 atoms (plus heteroatoms) into a connected structure. With only 3 HMBC correlations providing connectivity information, there are thousands of valid arrangements that satisfy the minimal constraints. Each arrangement is a valid solution.
**Contributing factors:** Three quaternary carbons (C1, C5, C9) with 0 HMBC correlations each. These floating atoms can be placed in any position, exponentially increasing permutations.
---
## Recommended Fixes
### Fix 1: Add High-Confidence HMBC Correlations (PRIMARY)
**Action:** Increase HMBC count from 3 to 8-10 to reach target ratio 0.5-0.625.
Follow incremental HMBC strategy (skill/SKILL.md Section 7):
1. **Select next batch of 3-5 high-confidence correlations:**
- Isolated carbon shifts (>3 ppm from nearest neighbor)
- Unique proton assignments (no overlap with existing correlations)
- Strong peak intensity (top quartile from guided HMBC picking)
- **Prioritize quaternary carbons C1, C5, C9** (see Fix 2)
2. **Add batch to LSD file, run LSD, evaluate:**
- Expected: significant reduction (≥30%) if correlations are effective
- If reduction <10% for 2 consecutive batches → re-evaluate selection criteria
**Verification:**
1. After adding batch, re-run LSD
2. Monitor solution count trend: should decrease toward <100
3. After 2-3 batches (total 8-10 HMBC), expect <100 solutions
**Confidence:** HIGH — increasing constraint count is the fundamental fix for under-determined structures.
### Fix 2: Target Quaternary Carbons with HMBC Search (PRIMARY)
**Action:** For each quaternary carbon (C1, C5, C9), perform targeted HMBC threshold reduction to find weak correlations.
Procedure (skill/SKILL.md Section 10.3):
1. **For C1 (172.4 ppm):**
- Start at current threshold (likely 0.05 from guided picking)
- Reduce by 20% per step: 0.05 → 0.04 → 0.032 → 0.0256 → ...
- Search in window 172.4 ± 2.5 ppm
- Validate new peaks against 13C and HSQC (guided picking logic)
- Stop when: 1-2 correlations found OR threshold reaches noise floor (e.g., 0.02 for SNR ~30)
2. **For C5 (155.2 ppm):** Same procedure, window 155.2 ± 2.5 ppm
3. **For C9 (138.8 ppm):** Same procedure, window 138.8 ± 2.5 ppm
**If targeted search finds correlations:** Add to LSD file as part of Fix 1 batch
**If targeted search fails (threshold reaches noise floor with 0 correlations):** Apply shift-based constraint (Fix 3)
**Verification:**
- Check each quaternary after targeted search: should have ≥1 correlation
- If still 0, apply shift-based constraint
**Confidence:** HIGH — targeted threshold reduction often finds weak correlations missed by standard picking.
### Fix 3: Add Shift-Based Constraints for Unreachable Quaternaries (SECONDARY)
**Action:** If targeted HMBC search fails for any quaternary, use chemical shift to infer environment and add LSD constraint.
For C1 (172.4 ppm, carbonyl region):
BOND 1 14 ; C1 bonded to O14 (carbonyl C=O)
For C5 (155.2 ppm, aromatic quaternary):
LIST L_arom 2 3 4 5 6 7 ; Aromatic carbons ; Constrain C5 to be part of aromatic system (requires careful LIST/PROP design)
For C9 (138.8 ppm, aromatic quaternary):
; Similar aromatic constraint as C5
**Verification:**
- Verify shift-based constraint matches chemical intuition
- Check if solution count decreases after adding constraint
**Confidence:** MEDIUM — shift-based constraints are weak inference (not structural evidence) but better than no constraint.
### Fix 4: Add Heteroatom Position Constraints (SECONDARY)
**Action:** Constrain oxygen positions using BOND or LIST/PROP.
For carbonyl oxygens (if C1 is carbonyl):
BOND 1 14 ; C1 (carbonyl) bonded to O14
For other oxygens (ester, ether, hydroxyl):
; Requires chemical reasoning based on shift patterns ; Example for ether: LIST L_ether 8 10 12 ; Possible ether carbons (50-90 ppm) ELEM L_O O ; All oxygens PROP L_ether 1 L_O ; Each ether carbon has 1 oxygen
**Verification:**
- Check if heteroatom constraints reduce solution count
- Verify constraints match expected functional groups
**Confidence:** MEDIUM — heteroatom constraints are important but less urgent than quaternary carbon fix.
---
## Supporting Data
### LSD File Analyzed
- **Path:** data/compound/unknown_01/unknown_01-03.lsd
- **MULT commands:** 16 atoms (13 C, 3 O)
- **HSQC correlations:** 10 (protonated carbons only)
- **HMBC correlations:** 3 (severely insufficient)
- **Other commands:** BOND: 0, LIST: 0, PROP: 0, ELIM: absent
### Iteration History Context
From CASE-PROGRESS.md:
- **Iteration 1:** 1,234 solutions (baseline: MULT + HSQC only)
- **Iteration 2:** 1,187 solutions (4% reduction: added 2 HMBC) — ineffective
- **Iteration 3:** 1,201 solutions (INCREASED: added 1 HMBC) — counterproductive
Trend shows stalled progress, classic sign of insufficient constraint count.
### Spectral Quality
From CASE-PROGRESS.md notes:
- **13C S/N:** Good (~60)
- **HSQC S/N:** Good
- **HMBC S/N:** Moderate (~25)
- **HMBC F1 resolution:** 5.3 pts/ppm (Good)
Quality is adequate for correlation picking — failure is not due to poor spectra.
---
## Next Steps
1. **Immediate:** Perform targeted HMBC threshold reduction for quaternary carbons C1, C5, C9 (Fix 2)
2. **If correlations found:** Add to next HMBC batch (aim for 3-5 total in batch including quaternary correlations)
3. **If correlations not found:** Apply shift-based constraints (Fix 3)
4. **Concurrent:** Select additional 2-3 high-confidence HMBC correlations for protonated carbons to reach ratio 0.5 (Fix 1)
5. **After Fix 1+2:** Re-run LSD, expect <100 solutions
6. **Document:** Update CASE-PROGRESS.md iteration 4 with diagnostic findings and strategy change
---
## Diagnostic Methodology
**Systematic checks performed:**
1. **ELIM presence** → ✓ PASS (absent, correct)
2. **Constraint/atom ratio** → ✗ FAIL (0.19 << 0.5 target)
3. **Quaternary carbon connectivity** → ✗ FAIL (3 quaternaries with 0 HMBC each)
4. **Heteroatom position constraints** → ✗ FAIL (3 oxygens unconstrained)
5. **Symmetry encoding** → (Not checked; no symmetry noted in CASE-PROGRESS.md)
**Time to diagnosis:** ~4 minutes
**Tools used:** Read (unknown_01-03.lsd, CASE-PROGRESS.md)
---
## Metadata
**Diagnostic confidence breakdown:**
- Finding 1 (low constraint ratio): HIGH — quantitative calculation, clear target
- Finding 2 (quaternary 0 HMBC): HIGH — deterministic identification and count
- Finding 3 (no ELIM): HIGH — simple search
- Finding 4 (heteroatom constraints): MEDIUM — less critical than quaternary issue
- Root cause: HIGH — under-constraint is well-established cause of solution explosion
- Fix 1 recommendation: HIGH — increasing HMBC count is fundamental solution
- Fix 2 recommendation: HIGH — targeting quaternaries addresses floating atom problem
- Fix 3 recommendation: MEDIUM — shift-based constraints are fallback, not ideal
- Fix 4 recommendation: MEDIUM — helpful but not primary fix
**Specialist model:** diagnostic-specialist subagent
**Supervisor:** lucy-supervisor
**CASE agent:** general-purpose (unknown_01 analysis)
These are practices to AVOID when performing diagnostics. The diagnostic specialist must not fall into these traps.
What NOT to do: "The problem is probably a constraint issue. Try adding more HMBC correlations."
Why this is bad:
What TO do: "The constraint/atom ratio is 0.19 (3 HMBC / 16 atoms), far below the 0.5 target. Add 5-8 high-confidence HMBC correlations targeting quaternary carbons C1, C5, C9 (currently 0 correlations each). Select correlations with isolated carbon shifts (>3 ppm from neighbors) and strong peak intensity (top quartile)."
What NOT to do: "Fix the sp2 count issue. Also check your heteroatom constraints."
Why this is bad:
What TO do:
Fix sp2 count by changing atom 7 from sp2 to sp3:
; Before:
MULT 7 O 2 0 ; ether oxygen incorrectly marked sp2
; After:
MULT 7 O 3 0 ; ether oxygen correctly marked sp3
Add heteroatom constraint for carbonyl:
BOND 1 14 ; C1 (carbonyl at 172.4 ppm) bonded to O14
What NOT to do: Check 1 (sp2 count): PASS → "No issues found, cause unknown."
Why this is bad:
What TO do: Run ALL checks in the systematic procedure, document all results (PASS or FAIL). Root cause may be a combination of factors (e.g., low constraint ratio + quaternary 0 HMBC). Only after completing all checks, identify the primary root cause.
What NOT to do: "Add more HMBC correlations to increase constraint count."
(When CASE-PROGRESS.md notes "HMBC S/N = 8, very noisy spectrum, weak correlations difficult to validate")
Why this is bad:
What TO do: "HMBC S/N = 8 (poor) limits correlation picking reliability. Constraint/atom ratio is low (0.19) but adding more HMBC from current spectrum risks noise contamination. Recommend: (1) Use existing high-confidence correlations (top 25% by intensity only), (2) Add shift-based constraints for quaternary carbons (Section 10.3), (3) Consider HMBC re-acquisition with longer acquisition time to improve S/N > 20."
What NOT to do:
Write new diagnostic report to DIAGNOSTIC-REPORT.md, overwriting previous report from earlier diagnostic session.
Why this is bad:
What TO do: Use timestamped filenames for multiple diagnostics:
DIAGNOSTIC-REPORT-2026-02-07-154218.mdDIAGNOSTIC-REPORT-2026-02-07-163042.mdOR append to existing DIAGNOSTIC-REPORT.md with clear section separators and timestamps.
Supervisor references the LATEST report when advising CASE agent.
What NOT to do: CASE agent uses Task tool to spawn diagnostic-specialist when encountering 0 solutions.
Why this is bad:
What TO do:
This document focuses on diagnostic-specific deep knowledge. For related topics, see:
Section 6: LSD Reference
Section 7: Incremental HMBC Constraint Strategy
Section 10: Error Tolerance and Ambiguity Detection
Section 2: Spectral Quality Assessment
Section 4: Loop Detection Patterns
Section 7: CASE-PROGRESS.md Format Specification
This diagnostic specialist skill document provides the DEEP knowledge for root cause analysis. The supervisor skill provides the PATTERNS that trigger diagnostic delegation. The main skill provides the BACKGROUND for NMR, LSD, and workflow context.
End of diagnostic specialist domain knowledge.