{
  "version": "2.1",
  "description": "Agent-optimized quick index for TSL syntax - read this FIRST",
  "total_tokens_saved_per_query": "~2000-3000",
  "changelog": {
    "2.1": "Added naming/style routing for identifiers and TSF filename alignment",
    "2.0": "Extended coverage from 7 to 14 scenarios, added understand_code and optimize_code decision paths",
    "1.0": "Initial version with 7 high-frequency scenarios"
  },

  "intent_to_file": {
    "hello_world": {
      "file": "01_quickstart.md",
      "line": 182,
      "token_cost": 50,
      "example": "echo \"hello\";"
    },
    "function_basic": {
      "file": "05_functions_and_calls.md",
      "line": 103,
      "token_cost": 100,
      "example": "function Add(a, b);\nbegin\n    return a + b;\nend;"
    },
    "function_in_tsl": {
      "file": "05_functions_and_calls.md",
      "line": 82,
      "token_cost": 150,
      "example": "a := 1;\ntest();\n\nfunction test();\nbegin\n    echo \"test\";\nend;"
    },
    "procedure": {
      "file": "05_functions_and_calls.md",
      "line": 130,
      "token_cost": 80,
      "example": "procedure LogDone();\nbegin\nend;"
    },
    "for_loop": {
      "file": "07_control_flow.md",
      "line": 89,
      "token_cost": 100,
      "example": "for i := 0 to 2 do\n    sum := sum + i;"
    },
    "while_loop": {
      "file": "07_control_flow.md",
      "line": 64,
      "token_cost": 100,
      "example": "counter := 0;\nwhile counter < 3 do\n    counter := counter + 1;"
    },
    "if_condition": {
      "file": "07_control_flow.md",
      "line": 54,
      "token_cost": 120,
      "example": "if flag > 0 then\nbegin\n    value := 1;\nend"
    },
    "assignment": {
      "file": "06_expressions_and_operators.md",
      "line": 136,
      "token_cost": 60,
      "example": "a := 1;"
    },
    "variable_declaration": {
      "file": "04_variables_and_constants.md",
      "line": 75,
      "token_cost": 80,
      "example": "var a;\na := 1;"
    },
    "identifier_naming": {
      "file": "../naming.md",
      "line": 42,
      "token_cost": 120,
      "example": "UserAccount, LoadData, max_retry_count"
    },
    "class_basic": {
      "file": "08_objects_and_classes.md",
      "line": 98,
      "token_cost": 200,
      "example": "type Person = class\npublic\n    name;\nend;"
    },
    "class_in_tsl": {
      "file": "08_objects_and_classes.md",
      "line": 118,
      "token_cost": 250,
      "example": "obj := new MyClass();\nobj.value := 5;\n\ntype MyClass = class\npublic\n    value;\nend;"
    },
    "unit_import": {
      "file": "09_units_and_scope.md",
      "line": 141,
      "token_cost": 60,
      "example": "uses DemoUnit;"
    },
    "unit_skeleton": {
      "file": "09_units_and_scope.md",
      "line": 56,
      "token_cost": 200,
      "example": "unit DemoUnit;\n\ninterface\n\nfunction Ping();\n\nimplementation\n\nfunction Ping();\nbegin\n    return 1;\nend;\n\nend."
    },
    "array_operations": {
      "file": "12_matrix_and_collections.md",
      "line": 46,
      "token_cost": 60,
      "example": "arr := array(10, 20, 30);"
    }
  },

  "syntax_quick_ref": {
    "assignment": {
      "correct": ":=",
      "wrong": "=",
      "error_if_wrong": "invalid statement"
    },
    "comparison": {
      "correct": "=",
      "context": "only in conditions/expressions"
    },
    "function_def": {
      "pattern": "function Name(args);\nbegin\n    ...\nend;",
      "notes": "use 'function' by default, not 'procedure'"
    },
    "class_def": {
      "pattern": "type Name = class\npublic\n    ...\nend;",
      "wrong": "class Name",
      "error_if_wrong": "invalid statement"
    },
    "for_loop": {
      "pattern": "for i := start to end do\nbegin\n    ...\nend;"
    },
    "if_statement": {
      "pattern": "if condition then\nbegin\n    ...\nend;"
    },
    "tsl_file_structure": {
      "order": ["statements first", "declarations after"],
      "wrong": "declarations before statements or after declarations"
    },
    "identifier_naming": {
      "doc": "../naming.md#L42",
      "avoid": "ordinary custom identifiers should not use TSL keywords, reserved words, or builtin function names",
      "tsf_filename_rule": "02_core_model.md#L38"
    }
  },

  "common_errors": {
    "invalid statement": {
      "likely_causes": [
        {
          "pattern": "a = 1",
          "fix": "a := 1",
          "doc": "11_pitfalls.md",
          "line": 45
        },
        {
          "pattern": "class Person",
          "fix": "type Person = class",
          "doc": "11_pitfalls.md",
          "line": 34
        },
        {
          "pattern": "statements after function declarations",
          "fix": "move all statements before declarations",
          "doc": "02_core_model.md",
          "line": 34
        }
      ]
    },
    "compile error": {
      "check": "11_pitfalls.md for common syntax mistakes"
    }
  },

  "decision_tree": {
    "task_type": {
      "write_new_code": {
        "simple_script": "01_quickstart.md#L182",
        "function": "05_functions_and_calls.md#L103",
        "procedure": "05_functions_and_calls.md#L130",
        "naming": "../naming.md#L42",
        "class": "08_objects_and_classes.md#L98",
        "loop": "07_control_flow.md#L89",
        "condition": "07_control_flow.md#L54",
        "unit": "09_units_and_scope.md#L56",
        "array": "12_matrix_and_collections.md#L46"
      },
      "fix_error": {
        "invalid_statement": "11_pitfalls.md#L34-L59",
        "compile_error": "11_pitfalls.md",
        "runtime_error": "check error message details"
      },
      "understand_code": {
        "scan_file_structure": "02_core_model.md#L34",
        "trace_function": "05_functions_and_calls.md",
        "trace_class": "08_objects_and_classes.md",
        "check_unit_imports": "09_units_and_scope.md"
      },
      "optimize_code": {
        "check_profiler": "15_debug_and_profiler.md",
        "optimize_matrix": "22_matrix_deep_dive.md"
      }
    }
  },

  "file_model_rules": {
    "tsl_script": {
      "extension": ".tsl",
      "structure": "statements_first, then declarations",
      "usage": "executable scripts, one-time tasks"
    },
    "tsf_module": {
      "extension": ".tsf",
      "structure": "only declarations, no executable statements",
      "usage": "reusable functions/classes"
    }
  },

  "optimization_notes": {
    "agent_should": [
      "Read this file FIRST before any other docs",
      "Use 'intent_to_file' for direct line jumps (14 scenarios covered)",
      "Check 'common_errors' for error fixes",
      "Use 'syntax_quick_ref' for inline validation",
      "Use 'decision_tree' to determine task type before searching"
    ],
    "token_savings": {
      "without_this_file": "2000-4000 tokens per query",
      "with_this_file": "200-500 tokens per query",
      "reduction": "80-90%"
    },
    "coverage": {
      "v1.0": "7 scenarios (30% of common tasks)",
      "v2.0": "14 scenarios (70% of common tasks)",
      "target": "15-20 scenarios (80-90% of common tasks)"
    }
  }
}
