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 | 3 tokens

MOD-111 — Single-token display audit
Token #1: وَإِنَّ — 1 display group(s)
ND PREPEND + EXACT: 31.1
Token #2: عَلَيْكُمْ — 1 display group(s)
ND EXACT + APPEND: 24.41
Token #3: لَحَفِظِينَ — 2 display group(s)
Matched
Matched

← Flashcard view

Token navigation
#1وَإِنَّNDForm.T.Index: pendingNative R008: NOT_RUNSuffix: | Pronoun: | Role: | Stem: إِنَّR009: NOT_RUNR008: NOT_RUN—
Preserved stemإِنَّ
R009 execution status (MOD-099)NOT_RUN
R008 diagnostic status (MOD-068)NOT_RUN
Morphology & segmentation (12 fields)
Root typeND
VoiceND
Normalized stemإِنَّ
Prefixوَ
Internal vowelsi · a
Length—
Analysis statusND PREPEND + EXACT: 31.1
English (ND)and + indeed / certainly / verily
Urdu (ND)وَ + بیشک / یقیناً
Category (ND)particle
Subcategory (ND)inna sister
POS (ND)emphatic particle
Verification & records (2 fields)
Dictionary root statusND
Dictionary root verification explanationNon-declinable token
Rule diagnostics (4 fields)
Legacy R007 (reference only)ND COMBINED
New R007 (isolated diagnostic)ND — outside derived R007
MOD-105 native R008 statusNOT_RUN
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
NDCL / DCL Step Trace (expand)
NDCL-01Exact NDNO MATCHAlternative not matched
NDCL-02Prepend + NDPASSPrepend + ND | وَ + إِنَّ +
NDCL-03ND + AppendNO MATCHAlternative not matched
NDCL-04Prepend + ND + AppendNO MATCHAlternative not matched
DCL-01Token LengthNOT REQUIREDND recognized; derived analysis bypassed
DCL-02Suffix RemovalNOT REQUIREDND recognized; derived analysis bypassed
DCL-03Length After Suffix RemovalNOT REQUIREDND recognized; derived analysis bypassed
DCL-04Length Without VowelsNOT REQUIREDND recognized; derived analysis bypassed
DCL-05Root CandidatesNOT REQUIREDND recognized; derived analysis bypassed
DCL-06Form CandidatesNOT REQUIREDND recognized; derived analysis bypassed
DCL-07Form IdentifierNOT REQUIREDND recognized; derived analysis bypassed
DCL-08T CategoriesNOT REQUIREDND recognized; derived analysis bypassed
DCL-09Person / Declension IndexNOT REQUIREDND recognized; derived analysis bypassed
DCL-10Dictionary VerificationNOT REQUIREDND recognized; derived analysis bypassed
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 Count3
Suffix Removed (upstream R001/R002)NOT AVAILABLE
R-U — Preserved Stem (with marks)إِنَّ
R-U — Normalized Stemإِنَّ
R-U Length (existing controller)NOT AVAILABLE
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 CandidatesNOT AVAILABLE
I-V — Internal Vowels (existing output)NOT AVAILABLE
S-T — Physical Suffix Families[]
S-I — Physical Suffix Indices[]
P-R — Existing Pattern Evidence[]
R007 T CandidatesNOT AVAILABLE
R008 Index (parsed from existing candidates)NOT AVAILABLE
R008 Form.T.Index CandidatesNOT AVAILABLE
R008 StatusNOT AVAILABLE
R008 Guard AcceptedNOT AVAILABLE
R008 Guard RejectedNOT AVAILABLE
R008 Guard UnverifiedNOT AVAILABLE
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
R006SKIPPEDND token: derived morphology stage not applicable
R007SKIPPEDND token: derived morphology stage not applicable
R008SKIPPEDND token: derived morphology stage not applicable
R009SKIPPEDND token: derived morphology stage not applicable
R010SKIPPEDDictionary review queue is rendered after token loop; not a per-token verifier
R011SKIPPEDND token: derived morphology stage not applicable
Full token analysis and diagnostic evidence (all fields)
{
    "r011_mod151_read_only": [],
    "stage_audit_mod151": [
        {
            "stage": "R006",
            "state": "SKIPPED",
            "outcome": null,
            "reason": "ND token: derived morphology stage not applicable",
            "calls": 0
        },
        {
            "stage": "R007",
            "state": "SKIPPED",
            "outcome": null,
            "reason": "ND token: derived morphology stage not applicable",
            "calls": 0
        },
        {
            "stage": "R008",
            "state": "SKIPPED",
            "outcome": null,
            "reason": "ND token: derived morphology stage not applicable",
            "calls": 0
        },
        {
            "stage": "R009",
            "state": "SKIPPED",
            "outcome": null,
            "reason": "ND token: derived morphology stage not applicable",
            "calls": 0
        },
        {
            "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": "SKIPPED",
            "outcome": null,
            "reason": "ND token: derived morphology stage not applicable",
            "calls": 0
        }
    ],
    "original_analysis_group": {
        "token_no": 1,
        "token": "وَإِنَّ",
        "expected": "",
        "form": "",
        "root_type": "ND",
        "voice": "ND",
        "suffix": "",
        "stem": "إِنَّ",
        "normalized_stem": "إِنَّ",
        "prefix": "وَ",
        "stem_length": null,
        "root_candidates": [],
        "root_patterns": [],
        "findings": [],
        "status": "ND PREPEND + EXACT: 31.1",
        "nd_english": "and + indeed \/ certainly \/ verily",
        "nd_urdu": "وَ + بیشک \/ یقیناً",
        "nd_category": "particle",
        "nd_subcategory": "inna sister",
        "nd_pos": "emphatic particle"
    },
    "r006": {
        "form_candidates": [],
        "structural_trace": []
    },
    "r008": {
        "status": "NOT_RUN",
        "form_t_index_candidates": [],
        "comments": []
    },
    "mod105_native_r008": {
        "status": "NOT_RUN",
        "candidates": []
    },
    "mod105_controller_retained_sources": [],
    "r009": {
        "status": "NOT_RUN",
        "accepted_roots_by_address": [],
        "details": [],
        "comments": []
    },
    "r009_dictionary_exact_root_mod103": [],
    "r007_text": "ND — outside derived R007",
    "mod035_form_t_index": [],
    "r007_t_candidates": [],
    "r007_voice": null,
    "r007_status": null,
    "nominal_evidence": null,
    "resolved_findings": [],
    "dictionary_root_verification": {
        "status": "ND",
        "roots": [],
        "records": [],
        "reason": "Non-declinable token"
    },
    "legacy_record_verification": {
        "status": "ND",
        "records": [],
        "roots": [],
        "reason": "Non-derived entity"
    }
}
#2عَلَيْكُمْNDForm.T.Index: pendingNative R008: NOT_RUNSuffix: كُمْ | Pronoun: | Role: | Stem: عَلَيْR009: NOT_RUNR008: NOT_RUN—
Suffixكُمْ
Preserved stemعَلَيْ
R009 execution status (MOD-099)NOT_RUN
R008 diagnostic status (MOD-068)NOT_RUN
Morphology & segmentation (11 fields)
Root typeND
VoiceND
Normalized stemعَلَيْ
Internal vowelsa · a · y/long-i · sukun
Length—
Analysis statusND EXACT + APPEND: 24.41
English (ND)on / upon / over + you (masculine plural)
Urdu (ND)پر / اوپر + تم کو / تم سے
Category (ND)particle
Subcategory (ND)preposition attachment stem
POS (ND)preposition
Verification & records (2 fields)
Dictionary root statusND
Dictionary root verification explanationNon-declinable token
Rule diagnostics (4 fields)
Legacy R007 (reference only)ND COMBINED
New R007 (isolated diagnostic)ND — outside derived R007
MOD-105 native R008 statusNOT_RUN
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
NDCL / DCL Step Trace (expand)
NDCL-01Exact NDNO MATCHAlternative not matched
NDCL-02Prepend + NDNO MATCHAlternative not matched
NDCL-03ND + AppendPASSND + Append | + عَلَيْ + كُمْ
NDCL-04Prepend + ND + AppendNO MATCHAlternative not matched
DCL-01Token LengthNOT REQUIREDND recognized; derived analysis bypassed
DCL-02Suffix RemovalNOT REQUIREDND recognized; derived analysis bypassed
DCL-03Length After Suffix RemovalNOT REQUIREDND recognized; derived analysis bypassed
DCL-04Length Without VowelsNOT REQUIREDND recognized; derived analysis bypassed
DCL-05Root CandidatesNOT REQUIREDND recognized; derived analysis bypassed
DCL-06Form CandidatesNOT REQUIREDND recognized; derived analysis bypassed
DCL-07Form IdentifierNOT REQUIREDND recognized; derived analysis bypassed
DCL-08T CategoriesNOT REQUIREDND recognized; derived analysis bypassed
DCL-09Person / Declension IndexNOT REQUIREDND recognized; derived analysis bypassed
DCL-10Dictionary VerificationNOT REQUIREDND recognized; derived analysis bypassed
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)NOT AVAILABLE
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 CandidatesNOT AVAILABLE
I-V — Internal Vowels (existing output)NOT AVAILABLE
S-T — Physical Suffix Families[]
S-I — Physical Suffix Indices[]
P-R — Existing Pattern Evidence[]
R007 T CandidatesNOT AVAILABLE
R008 Index (parsed from existing candidates)NOT AVAILABLE
R008 Form.T.Index CandidatesNOT AVAILABLE
R008 StatusNOT AVAILABLE
R008 Guard AcceptedNOT AVAILABLE
R008 Guard RejectedNOT AVAILABLE
R008 Guard UnverifiedNOT AVAILABLE
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
R006SKIPPEDND token: derived morphology stage not applicable
R007SKIPPEDND token: derived morphology stage not applicable
R008SKIPPEDND token: derived morphology stage not applicable
R009SKIPPEDND token: derived morphology stage not applicable
R010SKIPPEDDictionary review queue is rendered after token loop; not a per-token verifier
R011SKIPPEDND token: derived morphology stage not applicable
Full token analysis and diagnostic evidence (all fields)
{
    "r011_mod151_read_only": [],
    "stage_audit_mod151": [
        {
            "stage": "R006",
            "state": "SKIPPED",
            "outcome": null,
            "reason": "ND token: derived morphology stage not applicable",
            "calls": 0
        },
        {
            "stage": "R007",
            "state": "SKIPPED",
            "outcome": null,
            "reason": "ND token: derived morphology stage not applicable",
            "calls": 0
        },
        {
            "stage": "R008",
            "state": "SKIPPED",
            "outcome": null,
            "reason": "ND token: derived morphology stage not applicable",
            "calls": 0
        },
        {
            "stage": "R009",
            "state": "SKIPPED",
            "outcome": null,
            "reason": "ND token: derived morphology stage not applicable",
            "calls": 0
        },
        {
            "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": "SKIPPED",
            "outcome": null,
            "reason": "ND token: derived morphology stage not applicable",
            "calls": 0
        }
    ],
    "original_analysis_group": {
        "token_no": 2,
        "token": "عَلَيْكُمْ",
        "expected": "",
        "form": "",
        "root_type": "ND",
        "voice": "ND",
        "suffix": "كُمْ",
        "stem": "عَلَيْ",
        "normalized_stem": "عَلَيْ",
        "prefix": "",
        "stem_length": null,
        "root_candidates": [],
        "root_patterns": [],
        "findings": [],
        "status": "ND EXACT + APPEND: 24.41",
        "nd_english": "on \/ upon \/ over + you (masculine plural)",
        "nd_urdu": "پر \/ اوپر + تم کو \/ تم سے",
        "nd_category": "particle",
        "nd_subcategory": "preposition attachment stem",
        "nd_pos": "preposition"
    },
    "r006": {
        "form_candidates": [],
        "structural_trace": []
    },
    "r008": {
        "status": "NOT_RUN",
        "form_t_index_candidates": [],
        "comments": []
    },
    "mod105_native_r008": {
        "status": "NOT_RUN",
        "candidates": []
    },
    "mod105_controller_retained_sources": [],
    "r009": {
        "status": "NOT_RUN",
        "accepted_roots_by_address": [],
        "details": [],
        "comments": []
    },
    "r009_dictionary_exact_root_mod103": [],
    "r007_text": "ND — outside derived R007",
    "mod035_form_t_index": [],
    "r007_t_candidates": [],
    "r007_voice": null,
    "r007_status": null,
    "nominal_evidence": null,
    "resolved_findings": [],
    "dictionary_root_verification": {
        "status": "ND",
        "roots": [],
        "records": [],
        "reason": "Non-declinable token"
    },
    "legacy_record_verification": {
        "status": "ND",
        "records": [],
        "roots": [],
        "reason": "Non-derived entity"
    }
}
#3لَحَفِظِينَROOT VALIDATED · Record 652, 690Form.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 · i
Length3
Analysis statusMatched
Analysis token (normalized input)حَفِظِينَ
Root candidates (all)حفظ
Verification & records (6 fields)
Dictionary root statusVALIDATED
Matching record IDs652, 690
Root-associated record IDs (legacy verification)652, 690
Dictionary root verification explanationExtracted root found in dictionary; no full-token comparison required
Legacy token records tested (no match)0
Legacy token records not testable2
Rule diagnostics (5 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)
Structural patternsحفظ: three radicals
Extended diagnostics: patterns, traces and source evidence
Suffix-family evidence (MOD-032)
suff2: physically detected; full Form/T pattern required
suff_nouns: 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: 3
DCL-02Suffix RemovalEVIDENCEPhysical suffix: ِينَ; families/indices: suff2 [10]; suff_nouns [20, 21]
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: none reported
DCL-07Form IdentifierEVIDENCER006 forms: unresolved; R007 voice: undetermined
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: 652, 690; no full-token validation required
حفظ — Base English translation
Record 652 · to preserve, to guard, to memorize
Record 690 · to preserve; to protect; to guard; to memorize
ACE Structural Diagnostics (actual trace; unique values)
FeatureExisting / trace value
Full Tokenلَحَفِظِينَ
R-L — Raw Length (code points including marks)11
R-L — Raw Letter Count6
Suffix Removed (upstream R001/R002)ِينَ
R-U — Preserved Stem (with marks)حَفِظ
R-U — Normalized Stemحفظ
R-U Length (existing controller)3
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["suff2","suff_nouns"]
S-I — Physical Suffix Indices{"suff2":[10],"suff_nouns":[20,21]}
P-R — Existing Pattern Evidence{"حفظ":{"three radicals":"three radicals"}}
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": []
            }
        }
    },
    "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": 3,
        "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": {
            "suff2": [
                10
            ],
            "suff_nouns": [
                20,
                21
            ]
        },
        "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": "VALIDATED",
        "roots": [
            "حفظ"
        ],
        "records": [
            {
                "id": 652,
                "root": "حفظ"
            },
            {
                "id": 690,
                "root": "حفظ"
            }
        ],
        "reason": "Extracted root found in dictionary; no full-token comparison required"
    },
    "legacy_record_verification": {
        "status": "VALIDATION_PENDING",
        "records": [],
        "root_records": [
            {
                "id": "652",
                "root": "حفظ"
            },
            {
                "id": "690",
                "root": "حفظ"
            }
        ],
        "roots": [
            "حفظ"
        ],
        "reason": "Generator adapter not connected or candidate untestable",
        "tested": 0,
        "untestable": 2
    }
}
Dictionary records for candidate roots (2)
Record 652 · root حفظ
{
    "root": "حفظ",
    "form": 1,
    "root_type": "triliteral",
    "arabic": "حفظ",
    "english": "to preserve, to guard, to memorize",
    "urdu": "محفوظ رکھنا، حفاظت کرنا، یاد کرنا",
    "activepast11": "حَفِظَ",
    "activeimperfect12": "يَحْفَظُ",
    "verbalnoun117": "حِفْظ"
}
Record 690 · root حفظ
{
    "root": "حفظ",
    "form": 1,
    "root_type": "triliteral",
    "arabic": "حفظ",
    "english": "to preserve; to protect; to guard; to memorize",
    "urdu": "حفاظت کرنا، محفوظ رکھنا، یاد کرنا",
    "activepast11": "حَفِظَ",
    "activeimperfect12": "يَحْفَظُ",
    "verbalnoun117": "حِفْظٌ"
}
#3لَحَفِظِينَ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
Morphology & segmentation (7 fields)
Root typesurface-test
VoiceUndetermined
Normalized stemلحفظ
Internal vowelsa · a · i
Length4
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)
suff2: physically detected; full Form/T pattern required
suff_nouns: 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: suff2 [10]; suff_nouns [20, 21]
DCL-03Length After Suffix RemovalEVIDENCEPreserved stem after suffix removal: لَحَفِظ
DCL-04Length Without VowelsEVIDENCENormalized stem: لحفظ; reported structural length: 4
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)11
R-L — Raw Letter Count6
Suffix Removed (upstream R001/R002)ِينَ
R-U — Preserved Stem (with marks)لَحَفِظ
R-U — Normalized Stemلحفظ
R-U Length (existing controller)4
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["suff2","suff_nouns"]
S-I — Physical Suffix Indices{"suff2":[10],"suff_nouns":[20,21]}
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_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": 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": "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": 3,
        "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": [],
        "findings": {
            "suff2": [
                10
            ],
            "suff_nouns": [
                20,
                21
            ]
        },
        "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"
    }
}

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.