Grammar Engine
☰ Menu
R007 ISOLATED DIAGNOSTIC: LOADED
R006 OPTIONAL: LOADED

ACE Morphological Analysis — R003

Analyze Qur'anic Surah or Ayah
Quranic passage analysis

Paste one ayah or an entire surah, preserving the original Arabic orthography. The analysis runs on every token in order.

Return to fixture tests

Input: ACE controller Arabic passage | 2 tokens

MOD-111 — Single-token display audit
Token #1: فَأَتْبَعَ — 2 display group(s)
Matched
Matched
Token #2: سَبَبًا — 2 display group(s)
Matched
Matched

← Flashcard view

Token navigation
#1فَأَتْبَعَROOT VALIDATED · Record 304R008 candidates: 1.1.1, 4.1.1Native R008: AMBIGUOUSSuffix: َ | Pronoun: | Role: | Stem: أَتْبَعR009 STRUCTURAL_PASS: 4.1.1 — تبعR009 dictionary 4.1.1: VALIDATED · Record 304تبع
Suffixَ
Preserved stemأَتْبَع
Form.T.Index candidates (MOD-035)4.1.1
R008 finalized index hypotheses (MOD-068; read-only)1.1.1, 4.1.1
R009 execution status (MOD-099)STRUCTURAL_PASS
R009 structural passes by address (MOD-099)4.1.1 — STRUCTURAL_PASS — تبع
R008 diagnostic status (MOD-068)AMBIGUOUS
Morphology & segmentation (9 fields)
Root typesurface-test
VoiceUndetermined
Normalized stemأتبع
Prefixفَ
Internal vowelsa · sukun · a
Length4
Analysis statusMatched
Analysis token (normalized input)أَتْبَعَ
Root candidates (all)تبع
Verification & records (7 fields)
Dictionary root statusVALIDATED
Matching record IDs304
Root-associated record IDs (legacy verification)304
Dictionary root verification explanationExtracted root found in dictionary; no full-token comparison required
Legacy token records tested (no match)0
Legacy token records not testable1
Roots after Form.T.Index (MOD-085; existing candidates)تبع
Rule diagnostics (9 fields)
Legacy R007 (reference only)Legacy R007 isolated
New R007 (isolated diagnostic)R006 Forms: 1, 4; Voice: active-perfect; T: 1, 22, 23; AMBIGUOUS + MOD-043 exact vowel patterns: 4.1
R009 dictionary verification (MOD-103; exact root only)4.1.1 — تبع — VALIDATED — Record 304
R009 other evidence (MOD-099)1.1.1 — ORDER_COMPATIBLE — تبع
MOD-105 native R008 statusAMBIGUOUS
MOD-105 native R008 candidates1.1.1, 4.1.1
R008 diagnostic comments (MOD-068)Form 1 T22: declension membership index unavailable; Form 1 T22: no index verified; Form 1 T23: declension membership index unavailable; Form 1 T23: no index verified
R008 full-pattern guard (MOD-068)accepted=0; rejected=0; unverified=2 (counts reflect R008 hypotheses; authoritative expected_surface_units not supplied)
Structural patternsتبع: Form I T22-1/T23-1, prefix + radicals
Extended diagnostics: patterns, traces and source evidence
Suffix-family evidence (MOD-032)
suff1: physically detected; full Form/T pattern required
suff3: physically detected; full Form/T pattern required
suff_nouns: physically detected; full Form/T pattern required
ace_nominal_accusative: physically detected; full Form/T pattern required
NDCL / DCL Step Trace (expand)
NDCL-01Exact NDNO MATCHAlternative not matched
NDCL-02Prepend + NDNO MATCHAlternative not matched
NDCL-03ND + AppendNO MATCHAlternative not matched
NDCL-04Prepend + ND + AppendNO MATCHAlternative not matched
DCL-01Token LengthEVIDENCEToken: أَتْبَعَ; source length field: 4
DCL-02Suffix RemovalEVIDENCEPhysical suffix: َ; families/indices: suff1 [1]; suff3 [1, 4, 7, 13, 14]; suff_nouns [5]; ace_nominal_accusative [5]
DCL-03Length After Suffix RemovalEVIDENCEPreserved stem after suffix removal: أَتْبَع
DCL-04Length Without VowelsEVIDENCENormalized stem: أتبع; reported structural length: 4
DCL-05Root CandidatesEVIDENCERoot candidates: تبع
DCL-06Form CandidatesEVIDENCER006 Form candidates: 1, 4
DCL-07Form IdentifierEVIDENCER006 forms: 1, 4; R007 voice: active-perfect
DCL-08T CategoriesEVIDENCER007 T candidates: 1, 22, 23
DCL-09Person / Declension IndexEVIDENCEActual prefix: فَ; compatible Form.T.Index: 4.1.1; prefix-person compatibility applied by MOD-038
DCL-10Dictionary VerificationEVIDENCEDictionary ROOT status: VALIDATED; matching record IDs: 304; no full-token validation required
تبع — Base English translation
Record 304 · to follow, to pursue
ACE Structural Diagnostics (actual trace; unique values)
FeatureExisting / trace value
Full Tokenفَأَتْبَعَ
R-L — Raw Length (code points including marks)10
R-L — Raw Letter Count5
Suffix Removed (upstream R001/R002)َ
R-U — Preserved Stem (with marks)أَتْبَع
R-U — Normalized Stemأتبع
R-U Length (existing controller)4
R006 Actual Prefix Removedأَ
R006 Actual After Prefixتْبَع
R006 Actual Prefix Arithmetic4 − 1 = 3 (أَ)
R006 Actual Form-Specific Marker RemovedNone
R006 Actual After Form Removalتْبَع
R006 Actual Form Arithmetic3 − 0 = 3
R006 Form-Specific Adjustment RationaleForm I imperfect: remove the matched person prefix; no Form-specific marker.
F-I — R006 Form Candidates[1,4]
I-V — Internal Vowels (existing output)NOT AVAILABLE
S-T — Physical Suffix Families["suff1","suff3","suff_nouns","ace_nominal_accusative"]
S-I — Physical Suffix Indices{"suff1":[1],"suff3":[1,4,7,13,14],"suff_nouns":[5],"ace_nominal_accusative":[5]}
P-R — Existing Pattern Evidence{"تبع":{"Form I T22-1\/T23-1":"Form I T22-1\/T23-1","prefix + radicals":"prefix + radicals"}}
R007 T Candidates[1,22,23]
R008 Index (parsed from existing candidates)[1]
R008 Form.T.Index Candidates["1.1.1","4.1.1"]
R008 StatusAMBIGUOUS
R008 Guard Accepted[]
R008 Guard Rejected[]
R008 Guard Unverified[{"address":"1.1.1","r007_consistency":"SUPPORTED AS INDEX HYPOTHESIS","structural_guard":"UNVERIFIED: no complete pattern supplied"},{"address":"4.1.1","r007_consistency":"SUPPORTED AS INDEX HYPOTHESIS","structural_guard":"UNVERIFIED: no complete pattern supplied"}]
Authoritative Full PatternNOT AVAILABLE
Authoritative Full Structural UnitsNOT AVAILABLE
Prefix / S-I Synchronization (existing verdict)NOT AVAILABLE
Read-only. R006 removal rows use only the actual trace captured by R006; no display-only stripping or morphology matching. The suffix-stripped stem is supplied upstream. The R008 index is parsed for display from existing Form.T.Index candidates, not independently recognized. Missing authoritative fields remain NOT AVAILABLE. [] is an observed empty result.

ACE Stage Audit (MOD-151)

StageExecutionOutcomeReason
R006HANDOFF_COMPLETESTRUCTURAL HYPOTHESISResult retained in token diagnostic evidence
R007HANDOFF_COMPLETEAMBIGUOUSResult retained in token diagnostic evidence
R008HANDOFF_COMPLETEAMBIGUOUSResult retained in token diagnostic evidence
R009HANDOFF_COMPLETESTRUCTURAL_PASSResult retained in token diagnostic evidence
R010SKIPPEDDictionary review queue is rendered after token loop; not a per-token verifier
R011HANDOFF_COMPLETEDIAGNOSTIC_RESULTRead-only R011 results included in full diagnostic JSON
Full token analysis and diagnostic evidence (all fields)
{
    "r011_mod151_read_only": {
        "تبع": {
            "15": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 1,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1,
                    4
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "16": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 1,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1,
                    4
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "17": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 0,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": "NOT_TESTED",
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1,
                    4
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "18": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 2,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1,
                    4
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "19": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 2,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1,
                    4
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "20": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 18,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1,
                    4
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "21": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 3,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1,
                    4
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "22": {
                "status": "YES",
                "matches": [
                    {
                        "id": "1.22.af3al",
                        "form": 1,
                        "template": "أَ{r0}ْ{r1}َ{r2}",
                        "expected": "أَتْبَع",
                        "status": "confirmed",
                        "matched_stem": "أَتْبَع",
                        "segmentation": [
                            "conjunction",
                            "terminal_case_removed"
                        ]
                    }
                ],
                "tested": 3,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1,
                    4
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "23": {
                "status": "YES",
                "matches": [
                    {
                        "id": "1.23.af3al",
                        "form": 1,
                        "template": "أَ{r0}ْ{r1}َ{r2}",
                        "expected": "أَتْبَع",
                        "status": "confirmed",
                        "matched_stem": "أَتْبَع",
                        "segmentation": [
                            "conjunction",
                            "terminal_case_removed"
                        ]
                    }
                ],
                "tested": 2,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1,
                    4
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "24": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 0,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1,
                    4
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "25": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 0,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1,
                    4
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            }
        }
    },
    "stage_audit_mod151": [
        {
            "stage": "R006",
            "state": "HANDOFF_COMPLETE",
            "outcome": "STRUCTURAL HYPOTHESIS",
            "reason": "Result retained in token diagnostic evidence",
            "calls": 1
        },
        {
            "stage": "R007",
            "state": "HANDOFF_COMPLETE",
            "outcome": "AMBIGUOUS",
            "reason": "Result retained in token diagnostic evidence",
            "calls": 1
        },
        {
            "stage": "R008",
            "state": "HANDOFF_COMPLETE",
            "outcome": "AMBIGUOUS",
            "reason": "Result retained in token diagnostic evidence",
            "calls": 1
        },
        {
            "stage": "R009",
            "state": "HANDOFF_COMPLETE",
            "outcome": "STRUCTURAL_PASS",
            "reason": "Result retained in token diagnostic evidence",
            "calls": 1
        },
        {
            "stage": "R010",
            "state": "SKIPPED",
            "outcome": null,
            "reason": "Dictionary review queue is rendered after token loop; not a per-token verifier",
            "calls": 0
        },
        {
            "stage": "R011",
            "state": "HANDOFF_COMPLETE",
            "outcome": "DIAGNOSTIC_RESULT",
            "reason": "Read-only R011 results included in full diagnostic JSON",
            "calls": 1
        }
    ],
    "original_analysis_group": {
        "token_no": 1,
        "token": "فَأَتْبَعَ",
        "expected": "",
        "form": "",
        "root_type": "surface-test",
        "voice": "Undetermined",
        "suffix": "َ",
        "pronoun": "",
        "pronoun_role": "",
        "analysis_token": "أَتْبَعَ",
        "stem": "أَتْبَع",
        "normalized_stem": "أتبع",
        "prefix": "فَ",
        "nominal_prefix": "",
        "nominal_core": "",
        "stem_length": 4,
        "root_candidates": [
            "تبع"
        ],
        "root_patterns": {
            "تبع": {
                "Form I T22-1\/T23-1": "Form I T22-1\/T23-1",
                "prefix + radicals": "prefix + radicals"
            }
        },
        "findings": {
            "suff1": [
                1
            ],
            "suff3": [
                1,
                4,
                7,
                13,
                14
            ],
            "suff_nouns": [
                5
            ],
            "ace_nominal_accusative": [
                5
            ]
        },
        "status": "Matched"
    },
    "r006": {
        "form_candidates": [
            1,
            4
        ],
        "perfect_forms": [
            4
        ],
        "evidence": {
            "4": [
                "IV perfect strong template",
                "MOD-056 full-token: IV perfect strong template"
            ],
            "1": [
                "I imperfect: person prefix + strong\/hollow template"
            ]
        },
        "structural_trace": {
            "1": [
                {
                    "source": "R006 primary suffix-stripped stem",
                    "matched_form": 1,
                    "matched_pattern": "I imperfect: person prefix + three-radical strong\/hollow template",
                    "stem_input": "أَتْبَع",
                    "physical_suffix_input": "َ",
                    "full_input": "أَتْبَعَ",
                    "prefix_removed": "أَ",
                    "after_prefix": "تْبَع",
                    "form_marker_removed": "None",
                    "after_form_marker": "تْبَع",
                    "prefix_letter_count": 1,
                    "after_prefix_unit_count": 3,
                    "form_marker_letter_count": 0,
                    "remaining_letter_count": 3,
                    "form_marker_kind": "Form I imperfect: no derivational marker"
                }
            ]
        },
        "status": "STRUCTURAL HYPOTHESIS"
    },
    "r008": {
        "form_t_index_candidates": [
            "1.1.1",
            "4.1.1"
        ],
        "index_candidates": [
            1
        ],
        "status": "AMBIGUOUS",
        "comments": [
            "Form 1 T22: declension membership index unavailable",
            "Form 1 T22: no index verified",
            "Form 1 T23: declension membership index unavailable",
            "Form 1 T23: no index verified"
        ],
        "details": [
            {
                "form": 1,
                "t": 1,
                "index": 1,
                "address": "1.1.1",
                "source": "perfect suffix fallback"
            },
            {
                "form": 4,
                "t": 1,
                "index": 1,
                "address": "4.1.1",
                "source": "perfect suffix fallback"
            }
        ]
    },
    "mod105_native_r008": {
        "status": "AMBIGUOUS",
        "candidates": [
            "1.1.1",
            "4.1.1"
        ]
    },
    "mod105_controller_retained_sources": [],
    "r009": {
        "original": "أَتْبَعَ",
        "remaining": "أَتْبَع",
        "r005_root_candidate": "",
        "root_candidate": "تبع",
        "root_length": 3,
        "accepted_root_candidates": [
            "تبع"
        ],
        "accepted_root_count": 1,
        "rejected_root_candidates": [
            "تبع"
        ],
        "rejected_root_count": 1,
        "accepted_details": [
            {
                "address": "4.1.1",
                "form": 4,
                "t": 1,
                "index": 1,
                "expected_radicals": 3,
                "observed_radicals": 3,
                "root_candidate": "تبع",
                "source": "R009 exact full-surface template",
                "prefix": "",
                "introductory": "",
                "structural_body": "أَتْبَعَ",
                "pattern": "Form IV active perfect: hamza prefix",
                "status": "STRUCTURAL_PASS",
                "evidence": [
                    "Form IV active perfect: hamza prefix",
                    "No dictionary or conjugator validation"
                ]
            }
        ],
        "rejected_details": [
            {
                "address": "1.1.1",
                "form": 1,
                "t": 1,
                "index": 1,
                "expected_radicals": 3,
                "observed_radicals": 3,
                "root_candidate": "تبع",
                "source": "R005 root_candidates",
                "prefix": "",
                "introductory": "",
                "structural_body": "",
                "pattern": "",
                "status": "ORDER_COMPATIBLE",
                "evidence": [
                    "Ordered letters compatible; not sufficient for verification",
                    "No dictionary or conjugator validation"
                ]
            }
        ],
        "accepted_roots_by_address": {
            "4.1.1": [
                "تبع"
            ]
        },
        "original_skeleton": "ءتبع",
        "stem_skeleton": "ءتبع",
        "addresses": [
            "1.1.1",
            "4.1.1"
        ],
        "details": [
            {
                "address": "1.1.1",
                "form": 1,
                "t": 1,
                "index": 1,
                "expected_radicals": 3,
                "observed_radicals": 3,
                "root_candidate": "تبع",
                "source": "R005 root_candidates",
                "prefix": "",
                "introductory": "",
                "structural_body": "",
                "pattern": "",
                "status": "ORDER_COMPATIBLE",
                "evidence": [
                    "Ordered letters compatible; not sufficient for verification",
                    "No dictionary or conjugator validation"
                ]
            },
            {
                "address": "4.1.1",
                "form": 4,
                "t": 1,
                "index": 1,
                "expected_radicals": 3,
                "observed_radicals": 3,
                "root_candidate": "تبع",
                "source": "R009 exact full-surface template",
                "prefix": "",
                "introductory": "",
                "structural_body": "أَتْبَعَ",
                "pattern": "Form IV active perfect: hamza prefix",
                "status": "STRUCTURAL_PASS",
                "evidence": [
                    "Form IV active perfect: hamza prefix",
                    "No dictionary or conjugator validation"
                ]
            }
        ],
        "status": "STRUCTURAL_PASS",
        "comments": [
            "Accepted roots: تبع; structural verification only, not dictionary or conjugator validation.",
            "Preliminary\/incomplete candidates: 1 row(s); see rejected_details separately."
        ]
    },
    "r009_dictionary_exact_root_mod103": [
        {
            "address": "4.1.1",
            "root": "تبع",
            "status": "VALIDATED",
            "record_ids": [
                "304"
            ]
        }
    ],
    "r007_text": "R006 Forms: 1, 4; Voice: active-perfect; T: 1, 22, 23; AMBIGUOUS + MOD-043 exact vowel patterns: 4.1",
    "mod035_form_t_index": [
        {
            "code": "4.1.1",
            "form": 4,
            "t": 1,
            "index": 1,
            "family": "suff1",
            "source": "R006 + R007 + physical suffix"
        }
    ],
    "r007_t_candidates": [
        1,
        22,
        23
    ],
    "r007_voice": "active-perfect",
    "r007_status": "AMBIGUOUS + MOD-043 exact vowel patterns: 4.1",
    "nominal_evidence": "",
    "resolved_findings": [],
    "dictionary_root_verification": {
        "status": "VALIDATED",
        "roots": [
            "تبع"
        ],
        "records": [
            {
                "id": 304,
                "root": "تبع"
            }
        ],
        "reason": "Extracted root found in dictionary; no full-token comparison required"
    },
    "legacy_record_verification": {
        "status": "VALIDATION_PENDING",
        "records": [],
        "root_records": [
            {
                "id": "304",
                "root": "تبع"
            }
        ],
        "roots": [
            "تبع"
        ],
        "reason": "Generator adapter not connected or candidate untestable",
        "tested": 0,
        "untestable": 1
    }
}
Dictionary records for candidate roots (1)
Record 304 · root تبع
{
    "root": "تبع",
    "root_type": "triliteral",
    "arabic": "تَبِعَ",
    "english": "to follow, to pursue",
    "urdu": "پیروی کرنا، پیچھا کرنا",
    "verbalnoun117": "تَبَع",
    "verbalnoun2": "تَبِعَة",
    "verbalnoun3": "",
    "activeparticiple115": "تَابِع",
    "passiveparticiple116": "مَتْبُوع",
    "activepast11": "تَبِعَ",
    "activeimperfect12": "يَتْبَعُ",
    "imperative113": "تَبَعْ",
    "passiveperfect17": "تُبِعَ",
    "passiveimperfect18": "يُتْبَعُ",
    "activeheavyemphatic16": "لَيَتْبَعَنَّ",
    "form": 1
}
#1فَأَتْبَعَNO_ROOT_CANDIDATEForm.T.Index: pendingNative R008: UNRESOLVEDSuffix: َ | Pronoun: | Role: | Stem: فَأَتْبَعR009: UNRESOLVEDR008: UNRESOLVEDNo match
Suffixَ
Preserved stemفَأَتْبَع
R009 execution status (MOD-099)UNRESOLVED
R008 diagnostic status (MOD-068)UNRESOLVED
R008 final R006/R007 handoff exclusions (MOD-068)0.1 withheld from final R008 handoff (original R007 hypothesis retained)
Morphology & segmentation (7 fields)
Root typesurface-test
VoiceUndetermined
Normalized stemفأتبع
Internal vowelsa · a · sukun · a
Length5
Analysis statusMatched
Analysis token (normalized input)فَأَتْبَعَ
Verification & records (2 fields)
Dictionary root statusNO_ROOT_CANDIDATE
Dictionary root verification explanationNo extracted root candidate
Rule diagnostics (4 fields)
Legacy R007 (reference only)Legacy R007 isolated
New R007 (isolated diagnostic)R006 Forms: unresolved; Voice: undetermined; T: unresolved; R006 UNRESOLVED
MOD-105 native R008 statusUNRESOLVED
R008 full-pattern guard (MOD-068)accepted=0; rejected=0; unverified=0 (counts reflect R008 hypotheses; authoritative expected_surface_units not supplied)
Extended diagnostics: patterns, traces and source evidence
Suffix-family evidence (MOD-032)
suff1: physically detected; full Form/T pattern required
suff3: physically detected; full Form/T pattern required
suff_nouns: physically detected; full Form/T pattern required
ace_nominal_accusative: physically detected; full Form/T pattern required
NDCL / DCL Step Trace (expand)
NDCL-01Exact NDNO MATCHAlternative not matched
NDCL-02Prepend + NDNO MATCHAlternative not matched
NDCL-03ND + AppendNO MATCHAlternative not matched
NDCL-04Prepend + ND + AppendNO MATCHAlternative not matched
DCL-01Token LengthEVIDENCEToken: فَأَتْبَعَ; source length field: 5
DCL-02Suffix RemovalEVIDENCEPhysical suffix: َ; families/indices: suff1 [1]; suff3 [1, 4, 7, 13, 14]; suff_nouns [5]; ace_nominal_accusative [5]
DCL-03Length After Suffix RemovalEVIDENCEPreserved stem after suffix removal: فَأَتْبَع
DCL-04Length Without VowelsEVIDENCENormalized stem: فأتبع; reported structural length: 5
DCL-05Root CandidatesEVIDENCERoot candidates: none reported
DCL-06Form CandidatesEVIDENCER006 Form candidates: none reported
DCL-07Form IdentifierEVIDENCER006 forms: unresolved; R007 voice: undetermined
DCL-08T CategoriesEVIDENCER007 T candidates: none reported
DCL-09Person / Declension IndexEVIDENCEActual prefix: (none); compatible Form.T.Index: none reported; prefix-person compatibility applied by MOD-038
DCL-10Dictionary VerificationEVIDENCEDictionary ROOT status: NO_ROOT_CANDIDATE; matching record IDs: none; no full-token validation required
ACE Structural Diagnostics (actual trace; unique values)
FeatureExisting / trace value
Full Tokenفَأَتْبَعَ
R-L — Raw Length (code points including marks)10
R-L — Raw Letter Count5
Suffix Removed (upstream R001/R002)َ
R-U — Preserved Stem (with marks)فَأَتْبَع
R-U — Normalized Stemفأتبع
R-U Length (existing controller)5
Prefix (controller fallback)NOT AVAILABLE
R006 Actual Prefix RemovedNOT AVAILABLE
R006 Actual After PrefixNOT AVAILABLE
R006 Actual Prefix ArithmeticNOT AVAILABLE
R006 Actual Form-Specific Marker RemovedNOT AVAILABLE
R006 Actual After Form RemovalNOT AVAILABLE
R006 Actual Form ArithmeticNOT AVAILABLE
R006 Form-Specific Adjustment RationaleNOT AVAILABLE
F-I — R006 Form Candidates[]
I-V — Internal Vowels (existing output)NOT AVAILABLE
S-T — Physical Suffix Families["suff1","suff3","suff_nouns","ace_nominal_accusative"]
S-I — Physical Suffix Indices{"suff1":[1],"suff3":[1,4,7,13,14],"suff_nouns":[5],"ace_nominal_accusative":[5]}
P-R — Existing Pattern Evidence[]
R007 T Candidates[]
R008 Index (parsed from existing candidates)[]
R008 Form.T.Index Candidates[]
R008 StatusUNRESOLVED
R008 Guard Accepted[]
R008 Guard Rejected[]
R008 Guard Unverified[]
Authoritative Full PatternNOT AVAILABLE
Authoritative Full Structural UnitsNOT AVAILABLE
Prefix / S-I Synchronization (existing verdict)NOT AVAILABLE
Read-only. R006 removal rows use only the actual trace captured by R006; no display-only stripping or morphology matching. The suffix-stripped stem is supplied upstream. The R008 index is parsed for display from existing Form.T.Index candidates, not independently recognized. Missing authoritative fields remain NOT AVAILABLE. [] is an observed empty result.

ACE Stage Audit (MOD-151)

StageExecutionOutcomeReason
R006HANDOFF_COMPLETEUNRESOLVEDResult retained in token diagnostic evidence
R007HANDOFF_COMPLETEHYPOTHESISResult retained in token diagnostic evidence
R008HANDOFF_COMPLETEUNRESOLVEDResult retained in token diagnostic evidence
R009HANDOFF_COMPLETEUNRESOLVEDResult retained in token diagnostic evidence
R010SKIPPEDDictionary review queue is rendered after token loop; not a per-token verifier
R011HANDOFF_COMPLETEDIAGNOSTIC_RESULTRead-only R011 results included in full diagnostic JSON
Full token analysis and diagnostic evidence (all fields)
{
    "r011_mod151_read_only": {
        "": {
            "15": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 0,
                "skipped": 1,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "16": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 0,
                "skipped": 1,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "17": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 0,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": "NOT_TESTED",
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "18": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 0,
                "skipped": 2,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "19": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 0,
                "skipped": 2,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "20": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 0,
                "skipped": 18,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "21": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 0,
                "skipped": 3,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "22": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 0,
                "skipped": 3,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "23": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 0,
                "skipped": 2,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "24": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 0,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "25": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 0,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            }
        }
    },
    "stage_audit_mod151": [
        {
            "stage": "R006",
            "state": "HANDOFF_COMPLETE",
            "outcome": "UNRESOLVED",
            "reason": "Result retained in token diagnostic evidence",
            "calls": 1
        },
        {
            "stage": "R007",
            "state": "HANDOFF_COMPLETE",
            "outcome": "HYPOTHESIS",
            "reason": "Result retained in token diagnostic evidence",
            "calls": 1
        },
        {
            "stage": "R008",
            "state": "HANDOFF_COMPLETE",
            "outcome": "UNRESOLVED",
            "reason": "Result retained in token diagnostic evidence",
            "calls": 1
        },
        {
            "stage": "R009",
            "state": "HANDOFF_COMPLETE",
            "outcome": "UNRESOLVED",
            "reason": "Result retained in token diagnostic evidence",
            "calls": 1
        },
        {
            "stage": "R010",
            "state": "SKIPPED",
            "outcome": null,
            "reason": "Dictionary review queue is rendered after token loop; not a per-token verifier",
            "calls": 0
        },
        {
            "stage": "R011",
            "state": "HANDOFF_COMPLETE",
            "outcome": "DIAGNOSTIC_RESULT",
            "reason": "Read-only R011 results included in full diagnostic JSON",
            "calls": 1
        }
    ],
    "original_analysis_group": {
        "token_no": 1,
        "token": "فَأَتْبَعَ",
        "expected": "",
        "form": "",
        "root_type": "surface-test",
        "voice": "Undetermined",
        "suffix": "َ",
        "pronoun": "",
        "pronoun_role": "",
        "analysis_token": "فَأَتْبَعَ",
        "stem": "فَأَتْبَع",
        "normalized_stem": "فأتبع",
        "prefix": "",
        "nominal_prefix": "",
        "nominal_core": "",
        "stem_length": 5,
        "root_candidates": [],
        "root_patterns": [],
        "findings": {
            "suff1": [
                1
            ],
            "suff3": [
                1,
                4,
                7,
                13,
                14
            ],
            "suff_nouns": [
                5
            ],
            "ace_nominal_accusative": [
                5
            ]
        },
        "status": "Matched"
    },
    "r006": {
        "form_candidates": [],
        "perfect_forms": [],
        "evidence": [],
        "structural_trace": [],
        "status": "UNRESOLVED"
    },
    "r008": {
        "form_t_index_candidates": [],
        "index_candidates": [],
        "status": "UNRESOLVED",
        "comments": [],
        "details": []
    },
    "mod105_native_r008": {
        "status": "UNRESOLVED",
        "candidates": []
    },
    "mod105_controller_retained_sources": [],
    "r009": {
        "original": "فَأَتْبَعَ",
        "remaining": "فَأَتْبَع",
        "r005_root_candidate": "",
        "root_candidate": "",
        "root_length": 0,
        "accepted_root_candidates": [],
        "accepted_root_count": 0,
        "rejected_root_candidates": [],
        "rejected_root_count": 0,
        "accepted_details": [],
        "rejected_details": [],
        "accepted_roots_by_address": [],
        "original_skeleton": "فءتبع",
        "stem_skeleton": "فءتبع",
        "addresses": [],
        "details": [],
        "status": "UNRESOLVED",
        "comments": [
            "No R008 Form.T.Index hypothesis to verify"
        ]
    },
    "r009_dictionary_exact_root_mod103": [],
    "r007_text": "R006 Forms: unresolved; Voice: undetermined; T: unresolved; R006 UNRESOLVED",
    "mod035_form_t_index": [],
    "r007_t_candidates": [],
    "r007_voice": "undetermined",
    "r007_status": "R006 UNRESOLVED",
    "nominal_evidence": "",
    "resolved_findings": [],
    "dictionary_root_verification": {
        "status": "NO_ROOT_CANDIDATE",
        "roots": [],
        "records": [],
        "reason": "No extracted root candidate"
    },
    "legacy_record_verification": {
        "status": "NO_ROOT_CANDIDATE",
        "records": [],
        "roots": [],
        "reason": "R005 produced no root candidate"
    }
}
#2سَبَبًاROOT VALIDATED · Record 101Form.T.Index: pendingNative R008: UNRESOLVEDSuffix: ًا | Pronoun: | Role: | Stem: بَبR009: UNRESOLVEDR008: UNRESOLVEDأبب / بوب / بيب
Suffixًا
Preserved stemبَب
R009 execution status (MOD-099)UNRESOLVED
R008 diagnostic status (MOD-068)UNRESOLVED
Morphology & segmentation (9 fields)
Root typesurface-test
VoiceUndetermined
Normalized stemبب
Prefixسَ
Internal vowelsa
Length2
Analysis statusMatched
Analysis token (normalized input)بَبًا
Root candidates (all)أبب / بوب / بيب
Verification & records (6 fields)
Dictionary root statusVALIDATED
Matching record IDs101
Root-associated record IDs (legacy verification)101
Dictionary root verification explanationExtracted root found in dictionary; no full-token comparison required
Legacy token records tested (no match)0
Legacy token records not testable1
Rule diagnostics (5 fields)
Legacy R007 (reference only)Nominal candidate (tanwin)
New R007 (isolated diagnostic)R006 Forms: unresolved; Voice: nominal; T: unresolved; UNRESOLVED + NOMINAL EVIDENCE (overlaps retained)
MOD-105 native R008 statusUNRESOLVED
R008 full-pattern guard (MOD-068)accepted=0; rejected=0; unverified=0 (counts reflect R008 hypotheses; authoritative expected_surface_units not supplied)
Structural patternsأبب: initial hamza restored (contracted) | بوب: hollow w (contracted) | بيب: hollow y (contracted)
Extended diagnostics: patterns, traces and source evidence
Suffix-family evidence (MOD-032)
suff_nouns: physically detected; full Form/T pattern required
nominal accusative tanwin: declension index 2
verbal -an: compare full imperfect prefix and stem; no T5/T6 promoted from ending alone
NDCL / DCL Step Trace (expand)
NDCL-01Exact NDNO MATCHAlternative not matched
NDCL-02Prepend + NDNO MATCHAlternative not matched
NDCL-03ND + AppendNO MATCHAlternative not matched
NDCL-04Prepend + ND + AppendNO MATCHAlternative not matched
DCL-01Token LengthEVIDENCEToken: بَبًا; source length field: 2
DCL-02Suffix RemovalEVIDENCEPhysical suffix: ًا; families/indices: suff_nouns [2]
DCL-03Length After Suffix RemovalEVIDENCEPreserved stem after suffix removal: بَب
DCL-04Length Without VowelsEVIDENCENormalized stem: بب; reported structural length: 2
DCL-05Root CandidatesEVIDENCERoot candidates: أبب, بوب, بيب
DCL-06Form CandidatesEVIDENCER006 Form candidates: none reported
DCL-07Form IdentifierEVIDENCER006 forms: unresolved; R007 voice: nominal
DCL-08T CategoriesEVIDENCER007 T candidates: none reported
DCL-09Person / Declension IndexEVIDENCEActual prefix: سَ; compatible Form.T.Index: none reported; prefix-person compatibility applied by MOD-038
DCL-10Dictionary VerificationEVIDENCEDictionary ROOT status: VALIDATED; matching record IDs: 101; no full-token validation required
أبب — Base English translation
Record 101 · to have intense desire, to crave; to return, to go back repeatedly
بوب — No English translation found in loaded dictionary
بيب — No English translation found in loaded dictionary
ACE Structural Diagnostics (actual trace; unique values)
FeatureExisting / trace value
Full Tokenسَبَبًا
R-L — Raw Length (code points including marks)7
R-L — Raw Letter Count4
Suffix Removed (upstream R001/R002)ًا
R-U — Preserved Stem (with marks)بَب
R-U — Normalized Stemبب
R-U Length (existing controller)2
Prefix (controller fallback)سَ
R006 Actual Prefix RemovedNOT AVAILABLE
R006 Actual After PrefixNOT AVAILABLE
R006 Actual Prefix ArithmeticNOT AVAILABLE
R006 Actual Form-Specific Marker RemovedNOT AVAILABLE
R006 Actual After Form RemovalNOT AVAILABLE
R006 Actual Form ArithmeticNOT AVAILABLE
R006 Form-Specific Adjustment RationaleNOT AVAILABLE
F-I — R006 Form Candidates[]
I-V — Internal Vowels (existing output)NOT AVAILABLE
S-T — Physical Suffix Families["suff_nouns"]
S-I — Physical Suffix Indices{"suff_nouns":[2]}
P-R — Existing Pattern Evidence{"أبب":{"initial hamza restored (contracted)":"initial hamza restored (contracted)"},"بوب":{"hollow w (contracted)":"hollow w (contracted)"},"بيب":{"hollow y (contracted)":"hollow y (contracted)"}}
R007 T Candidates[]
R008 Index (parsed from existing candidates)[]
R008 Form.T.Index Candidates[]
R008 StatusUNRESOLVED
R008 Guard Accepted[]
R008 Guard Rejected[]
R008 Guard Unverified[]
Authoritative Full PatternNOT AVAILABLE
Authoritative Full Structural UnitsNOT AVAILABLE
Prefix / S-I Synchronization (existing verdict)NOT AVAILABLE
Read-only. R006 removal rows use only the actual trace captured by R006; no display-only stripping or morphology matching. The suffix-stripped stem is supplied upstream. The R008 index is parsed for display from existing Form.T.Index candidates, not independently recognized. Missing authoritative fields remain NOT AVAILABLE. [] is an observed empty result.

ACE Stage Audit (MOD-151)

StageExecutionOutcomeReason
R006HANDOFF_COMPLETEUNRESOLVEDResult retained in token diagnostic evidence
R007HANDOFF_COMPLETEUNRESOLVEDResult retained in token diagnostic evidence
R008HANDOFF_COMPLETEUNRESOLVEDResult retained in token diagnostic evidence
R009HANDOFF_COMPLETEUNRESOLVEDResult retained in token diagnostic evidence
R010SKIPPEDDictionary review queue is rendered after token loop; not a per-token verifier
R011HANDOFF_COMPLETEDIAGNOSTIC_RESULTRead-only R011 results included in full diagnostic JSON
Full token analysis and diagnostic evidence (all fields)
{
    "r011_mod151_read_only": {
        "أبب": {
            "15": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 1,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "16": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 1,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "17": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 0,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": "NOT_TESTED",
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "18": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 2,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "19": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 2,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "20": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 18,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "21": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 3,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "22": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 3,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "23": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 2,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "24": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 0,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "25": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 0,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            }
        },
        "بوب": {
            "15": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 1,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "16": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 1,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "17": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 0,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": "NOT_TESTED",
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "18": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 2,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "19": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 2,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "20": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 18,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "21": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 3,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "22": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 3,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "23": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 2,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "24": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 0,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "25": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 0,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            }
        },
        "بيب": {
            "15": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 1,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "16": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 1,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "17": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 0,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": "NOT_TESTED",
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "18": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 2,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "19": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 2,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "20": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 18,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "21": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 3,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "22": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 3,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "23": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 2,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "24": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 0,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "25": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 0,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            }
        }
    },
    "stage_audit_mod151": [
        {
            "stage": "R006",
            "state": "HANDOFF_COMPLETE",
            "outcome": "UNRESOLVED",
            "reason": "Result retained in token diagnostic evidence",
            "calls": 1
        },
        {
            "stage": "R007",
            "state": "HANDOFF_COMPLETE",
            "outcome": "UNRESOLVED",
            "reason": "Result retained in token diagnostic evidence",
            "calls": 1
        },
        {
            "stage": "R008",
            "state": "HANDOFF_COMPLETE",
            "outcome": "UNRESOLVED",
            "reason": "Result retained in token diagnostic evidence",
            "calls": 1
        },
        {
            "stage": "R009",
            "state": "HANDOFF_COMPLETE",
            "outcome": "UNRESOLVED",
            "reason": "Result retained in token diagnostic evidence",
            "calls": 1
        },
        {
            "stage": "R010",
            "state": "SKIPPED",
            "outcome": null,
            "reason": "Dictionary review queue is rendered after token loop; not a per-token verifier",
            "calls": 0
        },
        {
            "stage": "R011",
            "state": "HANDOFF_COMPLETE",
            "outcome": "DIAGNOSTIC_RESULT",
            "reason": "Read-only R011 results included in full diagnostic JSON",
            "calls": 1
        }
    ],
    "original_analysis_group": {
        "token_no": 2,
        "token": "سَبَبًا",
        "expected": "",
        "form": "",
        "root_type": "surface-test",
        "voice": "Undetermined",
        "suffix": "ًا",
        "pronoun": "",
        "pronoun_role": "",
        "analysis_token": "بَبًا",
        "stem": "بَب",
        "normalized_stem": "بب",
        "prefix": "سَ",
        "nominal_prefix": "",
        "nominal_core": "",
        "stem_length": 2,
        "root_candidates": [
            "أبب",
            "بوب",
            "بيب"
        ],
        "root_patterns": {
            "أبب": {
                "initial hamza restored (contracted)": "initial hamza restored (contracted)"
            },
            "بوب": {
                "hollow w (contracted)": "hollow w (contracted)"
            },
            "بيب": {
                "hollow y (contracted)": "hollow y (contracted)"
            }
        },
        "findings": {
            "suff_nouns": [
                2
            ]
        },
        "status": "Matched"
    },
    "r006": {
        "form_candidates": [],
        "perfect_forms": [],
        "evidence": [],
        "structural_trace": [],
        "status": "UNRESOLVED"
    },
    "r008": {
        "form_t_index_candidates": [],
        "index_candidates": [],
        "status": "UNRESOLVED",
        "comments": [],
        "details": []
    },
    "mod105_native_r008": {
        "status": "UNRESOLVED",
        "candidates": []
    },
    "mod105_controller_retained_sources": [],
    "r009": {
        "original": "بَبًا",
        "remaining": "بَب",
        "r005_root_candidate": "",
        "root_candidate": "",
        "root_length": 0,
        "accepted_root_candidates": [],
        "accepted_root_count": 0,
        "rejected_root_candidates": [],
        "rejected_root_count": 0,
        "accepted_details": [],
        "rejected_details": [],
        "accepted_roots_by_address": [],
        "original_skeleton": "ببا",
        "stem_skeleton": "بب",
        "addresses": [],
        "details": [],
        "status": "UNRESOLVED",
        "comments": [
            "No R008 Form.T.Index hypothesis to verify"
        ]
    },
    "r009_dictionary_exact_root_mod103": [],
    "r007_text": "R006 Forms: unresolved; Voice: nominal; T: unresolved; UNRESOLVED + NOMINAL EVIDENCE (overlaps retained)",
    "mod035_form_t_index": [],
    "r007_t_candidates": [],
    "r007_voice": "nominal",
    "r007_status": "UNRESOLVED + NOMINAL EVIDENCE (overlaps retained)",
    "nominal_evidence": "tanwin",
    "resolved_findings": [],
    "dictionary_root_verification": {
        "status": "VALIDATED",
        "roots": [
            "أبب",
            "بوب",
            "بيب"
        ],
        "records": [
            {
                "id": 101,
                "root": "أبب"
            }
        ],
        "reason": "Extracted root found in dictionary; no full-token comparison required"
    },
    "legacy_record_verification": {
        "status": "VALIDATION_PENDING",
        "records": [],
        "root_records": [
            {
                "id": "101",
                "root": "أبب"
            }
        ],
        "roots": [
            "أبب",
            "بوب",
            "بيب"
        ],
        "reason": "Generator adapter not connected or candidate untestable",
        "tested": 0,
        "untestable": 1
    }
}
Dictionary records for candidate roots (1)
Record 101 · root أبب
{
    "root": "أبب",
    "root_type": "triliteral",
    "arabic": "أَبَّ",
    "english": "to have intense desire, to crave; to return, to go back repeatedly",
    "urdu": "شدید خواہش رکھنا، تڑپنا; بار بار لوٹنا",
    "verbalnoun117": "أَبّ",
    "verbalnoun2": "",
    "verbalnoun3": "",
    "activeparticiple115": "آبّ",
    "passiveparticiple116": "مَأْبُوب",
    "activepast11": "أَبَّ",
    "activeimperfect12": "يَؤُبُّ",
    "imperative113": "أَبِبْ",
    "passiveperfect17": "أُبَّ",
    "passiveimperfect18": "يُؤَبُّ",
    "activeheavyemphatic16": "لَيَؤُبَّنَّ",
    "form": 1
}
#2سَبَبًاROOT VALIDATED · Record 4002Form.T.Index: pendingNative R008: UNRESOLVEDSuffix: ًا | Pronoun: | Role: | Stem: سَبَبR009: UNRESOLVEDR008: UNRESOLVEDسبب
Suffixًا
Preserved stemسَبَب
R009 execution status (MOD-099)UNRESOLVED
R008 diagnostic status (MOD-068)UNRESOLVED
Morphology & segmentation (8 fields)
Root typesurface-test
VoiceUndetermined
Normalized stemسبب
Internal vowelsa · a
Length3
Analysis statusMatched
Analysis token (normalized input)سَبَبًا
Root candidates (all)سبب
Verification & records (6 fields)
Dictionary root statusVALIDATED
Matching record IDs4002
Root-associated record IDs (legacy verification)4002
Dictionary root verification explanationExtracted root found in dictionary; no full-token comparison required
Legacy token records tested (no match)0
Legacy token records not testable1
Rule diagnostics (5 fields)
Legacy R007 (reference only)Nominal candidate (tanwin)
New R007 (isolated diagnostic)R006 Forms: 1; Voice: nominal; T: 1; UNRESOLVED + NOMINAL EVIDENCE (overlaps retained) + MOD-043 exact vowel patterns: 1.1
MOD-105 native R008 statusUNRESOLVED
R008 full-pattern guard (MOD-068)accepted=0; rejected=0; unverified=0 (counts reflect R008 hypotheses; authoritative expected_surface_units not supplied)
Structural patternsسبب: three radicals
Extended diagnostics: patterns, traces and source evidence
Suffix-family evidence (MOD-032)
suff_nouns: physically detected; full Form/T pattern required
nominal accusative tanwin: declension index 2
verbal -an: compare full imperfect prefix and stem; no T5/T6 promoted from ending alone
NDCL / DCL Step Trace (expand)
NDCL-01Exact NDNO MATCHAlternative not matched
NDCL-02Prepend + NDNO MATCHAlternative not matched
NDCL-03ND + AppendNO MATCHAlternative not matched
NDCL-04Prepend + ND + AppendNO MATCHAlternative not matched
DCL-01Token LengthEVIDENCEToken: سَبَبًا; source length field: 3
DCL-02Suffix RemovalEVIDENCEPhysical suffix: ًا; families/indices: suff_nouns [2]
DCL-03Length After Suffix RemovalEVIDENCEPreserved stem after suffix removal: سَبَب
DCL-04Length Without VowelsEVIDENCENormalized stem: سبب; reported structural length: 3
DCL-05Root CandidatesEVIDENCERoot candidates: سبب
DCL-06Form CandidatesEVIDENCER006 Form candidates: 1
DCL-07Form IdentifierEVIDENCER006 forms: 1; R007 voice: nominal
DCL-08T CategoriesEVIDENCER007 T candidates: 1
DCL-09Person / Declension IndexEVIDENCEActual prefix: (none); compatible Form.T.Index: none reported; prefix-person compatibility applied by MOD-038
DCL-10Dictionary VerificationEVIDENCEDictionary ROOT status: VALIDATED; matching record IDs: 4002; no full-token validation required
سبب — Base English translation
Record 4002 · to cause, to insult
ACE Structural Diagnostics (actual trace; unique values)
FeatureExisting / trace value
Full Tokenسَبَبًا
R-L — Raw Length (code points including marks)7
R-L — Raw Letter Count4
Suffix Removed (upstream R001/R002)ًا
R-U — Preserved Stem (with marks)سَبَب
R-U — Normalized Stemسبب
R-U Length (existing controller)3
Prefix (controller fallback)NOT AVAILABLE
R006 Actual Prefix RemovedNOT AVAILABLE
R006 Actual After PrefixNOT AVAILABLE
R006 Actual Prefix ArithmeticNOT AVAILABLE
R006 Actual Form-Specific Marker RemovedNOT AVAILABLE
R006 Actual After Form RemovalNOT AVAILABLE
R006 Actual Form ArithmeticNOT AVAILABLE
R006 Form-Specific Adjustment RationaleNOT AVAILABLE
F-I — R006 Form Candidates[1]
I-V — Internal Vowels (existing output)NOT AVAILABLE
S-T — Physical Suffix Families["suff_nouns"]
S-I — Physical Suffix Indices{"suff_nouns":[2]}
P-R — Existing Pattern Evidence{"سبب":{"three radicals":"three radicals"}}
R007 T Candidates[1]
R008 Index (parsed from existing candidates)[]
R008 Form.T.Index Candidates[]
R008 StatusUNRESOLVED
R008 Guard Accepted[]
R008 Guard Rejected[]
R008 Guard Unverified[]
Authoritative Full PatternNOT AVAILABLE
Authoritative Full Structural UnitsNOT AVAILABLE
Prefix / S-I Synchronization (existing verdict)NOT AVAILABLE
Read-only. R006 removal rows use only the actual trace captured by R006; no display-only stripping or morphology matching. The suffix-stripped stem is supplied upstream. The R008 index is parsed for display from existing Form.T.Index candidates, not independently recognized. Missing authoritative fields remain NOT AVAILABLE. [] is an observed empty result.

ACE Stage Audit (MOD-151)

StageExecutionOutcomeReason
R006HANDOFF_COMPLETEUNRESOLVEDResult retained in token diagnostic evidence
R007HANDOFF_COMPLETEUNRESOLVEDResult retained in token diagnostic evidence
R008HANDOFF_COMPLETEUNRESOLVEDResult retained in token diagnostic evidence
R009HANDOFF_COMPLETEUNRESOLVEDResult retained in token diagnostic evidence
R010SKIPPEDDictionary review queue is rendered after token loop; not a per-token verifier
R011HANDOFF_COMPLETEDIAGNOSTIC_RESULTRead-only R011 results included in full diagnostic JSON
Full token analysis and diagnostic evidence (all fields)
{
    "r011_mod151_read_only": {
        "سبب": {
            "15": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 1,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "16": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 1,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "17": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 0,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": "NOT_TESTED",
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "18": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 2,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "19": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 2,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "20": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 18,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "21": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 3,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "22": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 3,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "23": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 2,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "24": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 0,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            },
            "25": {
                "status": "NOT_TESTED",
                "matches": [],
                "tested": 0,
                "skipped": 0,
                "inventory_complete": false,
                "dictionary_t17": null,
                "dictionary_fields": [],
                "nominal_evidence": [],
                "form_hypotheses": [
                    1
                ],
                "t20_recovered_roots": [],
                "t21_recovered_roots": []
            }
        }
    },
    "stage_audit_mod151": [
        {
            "stage": "R006",
            "state": "HANDOFF_COMPLETE",
            "outcome": "UNRESOLVED",
            "reason": "Result retained in token diagnostic evidence",
            "calls": 1
        },
        {
            "stage": "R007",
            "state": "HANDOFF_COMPLETE",
            "outcome": "UNRESOLVED",
            "reason": "Result retained in token diagnostic evidence",
            "calls": 1
        },
        {
            "stage": "R008",
            "state": "HANDOFF_COMPLETE",
            "outcome": "UNRESOLVED",
            "reason": "Result retained in token diagnostic evidence",
            "calls": 1
        },
        {
            "stage": "R009",
            "state": "HANDOFF_COMPLETE",
            "outcome": "UNRESOLVED",
            "reason": "Result retained in token diagnostic evidence",
            "calls": 1
        },
        {
            "stage": "R010",
            "state": "SKIPPED",
            "outcome": null,
            "reason": "Dictionary review queue is rendered after token loop; not a per-token verifier",
            "calls": 0
        },
        {
            "stage": "R011",
            "state": "HANDOFF_COMPLETE",
            "outcome": "DIAGNOSTIC_RESULT",
            "reason": "Read-only R011 results included in full diagnostic JSON",
            "calls": 1
        }
    ],
    "original_analysis_group": {
        "token_no": 2,
        "token": "سَبَبًا",
        "expected": "",
        "form": "",
        "root_type": "surface-test",
        "voice": "Undetermined",
        "suffix": "ًا",
        "pronoun": "",
        "pronoun_role": "",
        "analysis_token": "سَبَبًا",
        "stem": "سَبَب",
        "normalized_stem": "سبب",
        "prefix": "",
        "nominal_prefix": "",
        "nominal_core": "",
        "stem_length": 3,
        "root_candidates": [
            "سبب"
        ],
        "root_patterns": {
            "سبب": {
                "three radicals": "three radicals"
            }
        },
        "findings": {
            "suff_nouns": [
                2
            ]
        },
        "status": "Matched"
    },
    "r006": {
        "form_candidates": [
            1
        ],
        "perfect_forms": [],
        "evidence": [],
        "structural_trace": [],
        "status": "UNRESOLVED"
    },
    "r008": {
        "form_t_index_candidates": [],
        "index_candidates": [],
        "status": "UNRESOLVED",
        "comments": [],
        "details": []
    },
    "mod105_native_r008": {
        "status": "UNRESOLVED",
        "candidates": []
    },
    "mod105_controller_retained_sources": [],
    "r009": {
        "original": "سَبَبًا",
        "remaining": "سَبَب",
        "r005_root_candidate": "",
        "root_candidate": "",
        "root_length": 0,
        "accepted_root_candidates": [],
        "accepted_root_count": 0,
        "rejected_root_candidates": [],
        "rejected_root_count": 0,
        "accepted_details": [],
        "rejected_details": [],
        "accepted_roots_by_address": [],
        "original_skeleton": "سببا",
        "stem_skeleton": "سبب",
        "addresses": [],
        "details": [],
        "status": "UNRESOLVED",
        "comments": [
            "No R008 Form.T.Index hypothesis to verify"
        ]
    },
    "r009_dictionary_exact_root_mod103": [],
    "r007_text": "R006 Forms: 1; Voice: nominal; T: 1; UNRESOLVED + NOMINAL EVIDENCE (overlaps retained) + MOD-043 exact vowel patterns: 1.1",
    "mod035_form_t_index": [],
    "r007_t_candidates": [
        1
    ],
    "r007_voice": "nominal",
    "r007_status": "UNRESOLVED + NOMINAL EVIDENCE (overlaps retained) + MOD-043 exact vowel patterns: 1.1",
    "nominal_evidence": "tanwin",
    "resolved_findings": [],
    "dictionary_root_verification": {
        "status": "VALIDATED",
        "roots": [
            "سبب"
        ],
        "records": [
            {
                "id": 4002,
                "root": "سبب"
            }
        ],
        "reason": "Extracted root found in dictionary; no full-token comparison required"
    },
    "legacy_record_verification": {
        "status": "VALIDATION_PENDING",
        "records": [],
        "root_records": [
            {
                "id": "4002",
                "root": "سبب"
            }
        ],
        "roots": [
            "سبب"
        ],
        "reason": "Generator adapter not connected or candidate untestable",
        "tested": 0,
        "untestable": 1
    }
}
Dictionary records for candidate roots (1)
Record 4002 · root سبب
{
    "root": "سبب",
    "root_type": "triliteral",
    "arabic": "سبب",
    "english": "to cause, to insult",
    "urdu": "سبب بننا، گالی دینا",
    "verbalnoun117": "سَبّ",
    "verbalnoun2": "تَسْبِيب",
    "verbalnoun3": "",
    "activeparticiple115": "سَابّ",
    "passiveparticiple116": "مَسْبُوب",
    "activepast11": "سَبَّ",
    "activeimperfect12": "يَسُبُّ",
    "imperative113": "سُبَّ",
    "form": 1
}

MOD-152: 0 dictionary-rejected speculative rows hidden when validated siblings exist; original candidate inventory retained.

MOD-014 display consolidation: 0 equivalent R004 rows hidden; raw R004/R001-R003 candidates preserved. Different root, family/index, pronoun role, or R006/R007 results remain separate.

R010 — Dictionary Root Review Queue (MOD-033)

Read-only root lookup. Morphological Form/T/index verification is separate. No dictionary files modified.