{
  "_meta": {
    "schema_version": "0.2.0",
    "batch_id": "B7-location",
    "batch_folder": "location",
    "batch_category": "user",
    "generated_at": "2026-05-27",
    "expected_todo_count": 5,
    "actual_promoted_count": 5,
    "skipped": {
      "cleanup_pending": [],
      "manual_disambiguation_pending": [],
      "registry_name_collision": []
    },
    "category_distribution": {
      "user": 5
    },
    "svg_decision_distribution": {
      "semantic-convert": 5
    },
    "new_categories_created": [
      "user"
    ],
    "new_category_startup_patches": [
      {
        "category": "user",
        "generated_ts_file": "src/icons/generated/user.ts",
        "index_ts_reexport": "export { userIcons, userIconManifest } from './generated/user'",
        "manifest_ts_import": "import { userIconManifest } from './generated/user'",
        "manifest_ts_spread": "...userIconManifest"
      }
    ],
    "collision_report": {
      "known_user_registry_names": [],
      "exact_registry_name_collisions": [],
      "same_batch_registry_name_collisions": [],
      "fallback_strategy": "No exact collision found. Pure numeric leaves apply naming-convention §3.5 mechanical fallback user/location-N rather than manual disambiguation."
    },
    "cross_category_overrides": [],
    "low_confidence_registry_names": [
      {
        "figma_name": "icon/location/1",
        "proposed_registry_name": "user/location-1",
        "reasoning": "Low confidence: pure numeric Figma leaf is mechanically valid per §3.5, but user-facing semantic distinction between location-1/location-2/location-3 still needs Phase C visual review."
      },
      {
        "figma_name": "icon/location/2",
        "proposed_registry_name": "user/location-2",
        "reasoning": "Low confidence: filled map-pin variant is visually clear, but numeric suffix does not express whether it should be default pin, filled pin, or primary location marker."
      },
      {
        "figma_name": "icon/location/3",
        "proposed_registry_name": "user/location-3",
        "reasoning": "Low confidence: combines globe/circle and pin glyph; registry follows §3.5 but semantic use case may deserve a clearer user-reviewed name."
      }
    ],
    "fresh_session_attestation": "I am a fresh Codex session for batch B7-location. I did not author any other batch in this session. I have read all 8 prerequisite docs in §0.",
    "plan_owner_overrides_2026_05_28_review": [
      {
        "figma_name": "icon/location/2",
        "from": "user/location-2",
        "to": "user/location-filled",
        "reason": "bundle-1-review 2026-05-28 user accept rename suggestion"
      },
      {
        "figma_name": "icon/location/3",
        "from": "user/location-3",
        "to": "user/location-globe",
        "reason": "bundle-1-review 2026-05-28 user accept rename suggestion"
      }
    ],
    "plan_owner_overrides_2026_05_28_bundle3_review_v2": [
      {
        "figma_name": "icon/location/1",
        "from": "user/location-1",
        "to": "user/location-outline",
        "reason": "bundle-3-review 2026-05-28 user 原则: input/output 是独立 cat (folder==cat)，不归 network/*"
      }
    ]
  },
  "candidates": [
    {
      "path": "location/1.svg",
      "visual_signature": "outline map pin with hollow center dot; bottom point indicates a geographic location marker",
      "affordance_category": "navigational",
      "synonyms_en": [
        "🟡 location",
        "🟡 pin",
        "🟡 map pin",
        "🟡 place",
        "🟡 marker",
        "🟡 address"
      ],
      "synonyms_zh": [
        "🟡 位置",
        "🟡 定位",
        "🟡 地点",
        "🟡 地图标记"
      ],
      "when_to_use": "🟡 Use for a location, address, place, or map marker affordance when the UI needs a neutral outline pin.",
      "notes": "🟡 Pure numeric leaf handled by naming-convention §3.5 mechanical fallback: icon/location/1 -> user/location-1. Low confidence because numeric leaf does not encode the semantic distinction among the three location icons.",
      "figma_component_key": "687f0cdcaa6205827c5f25d8b1ede29b3936bd50",
      "figma_name": "icon/location/1",
      "figma_node_id": "1202:3676",
      "proposed_registry_name": "user/location-outline",
      "registry_name_status": "ok",
      "registry_name_reasoning": "applied naming-convention §3.5 pure numeric leaf fallback: <category>/<folder-lower>-1 -> user/location-1; not manual_disambig.",
      "svg_decision": "semantic-convert",
      "svg_action": "no-op-currentColor",
      "manifest_patches": {
        "raw_ts_export": "export const ICON_USER_LOCATION_1 = `<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M13.5 6.5C13.5 9.53757 11 13 8 15C5 13 2.5 9.53757 2.5 6.5C2.5 3.46243 4.96243 1 8 1C11.0376 1 13.5 3.46243 13.5 6.5ZM12.3 6.49922C12.3 4.12439 10.3748 2.19922 8.00001 2.19922C5.62519 2.19922 3.70001 4.12439 3.70001 6.49922C3.70001 8.87404 5.5 11.5 8.00001 13.5C10.5 11.5 12.3 8.87404 12.3 6.49922ZM10.5 6.5C10.5 7.88071 9.38071 9 8 9C6.61929 9 5.5 7.88071 5.5 6.5C5.5 5.11929 6.61929 4 8 4C9.38071 4 10.5 5.11929 10.5 6.5ZM9.30001 6.49922C9.30001 5.78125 8.71798 5.19922 8.00001 5.19922C7.28204 5.19922 6.70001 5.78125 6.70001 6.49922C6.70001 7.21719 7.28204 7.79922 8.00001 7.79922C8.71798 7.79922 9.30001 7.21719 9.30001 6.49922Z\" fill=\"currentColor\"/>\n</svg>`",
        "generated_ts_entry": {
          "file": "src/icons/generated/user.ts",
          "key": "location-1",
          "value": {
            "svg": "ICON_USER_LOCATION_1",
            "tags": [
              "location",
              "pin",
              "map pin",
              "place",
              "marker",
              "address",
              "1"
            ]
          }
        },
        "index_ts_reexport": "export { userIcons, userIconManifest } from './generated/user'",
        "manifest_ts_entry": {
          "name": "user/location-1",
          "category": "user",
          "svg_ref": "ICON_USER_LOCATION_1"
        },
        "sot_json_patch": {
          "match_figma_component_key": "687f0cdcaa6205827c5f25d8b1ede29b3936bd50",
          "set_registry_name": "user/location-1"
        }
      }
    },
    {
      "path": "location/2.svg",
      "visual_signature": "filled map pin silhouette with circular cutout, shaped as a solid location marker",
      "affordance_category": "navigational",
      "synonyms_en": [
        "🟡 location",
        "🟡 pin",
        "🟡 filled pin",
        "🟡 map marker",
        "🟡 place",
        "🟡 destination"
      ],
      "synonyms_zh": [
        "🟡 位置",
        "🟡 定位点",
        "🟡 地图标记",
        "🟡 目的地"
      ],
      "when_to_use": "🟡 Use for a prominent location marker or selected/destination pin where a filled glyph is preferred over an outline pin.",
      "notes": "🟡 Pure numeric leaf handled by naming-convention §3.5 mechanical fallback: icon/location/2 -> user/location-2. Phase C should decide whether this is the default filled pin name.",
      "figma_component_key": "d25fcafb7ca386017e1ead91908423a9be407f8c",
      "figma_name": "icon/location/2",
      "figma_node_id": "1202:3677",
      "proposed_registry_name": "user/location-filled",
      "registry_name_status": "ok",
      "registry_name_reasoning": "applied naming-convention §3.5 pure numeric leaf fallback: <category>/<folder-lower>-2 -> user/location-2; not manual_disambig.",
      "svg_decision": "semantic-convert",
      "svg_action": "no-op-currentColor",
      "manifest_patches": {
        "raw_ts_export": "export const ICON_USER_LOCATION_2 = `<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M8 15C11 13 13.5 9.53757 13.5 6.5C13.5 3.46243 11.0376 1 8 1C4.96243 1 2.5 3.46243 2.5 6.5C2.5 9.53757 5 13 8 15ZM8 9C6.61929 9 5.5 7.88071 5.5 6.5C5.5 5.11929 6.61929 4 8 4C9.38071 4 10.5 5.11929 10.5 6.5C10.5 7.88071 9.38071 9 8 9Z\" fill=\"currentColor\"/>\n</svg>`",
        "generated_ts_entry": {
          "file": "src/icons/generated/user.ts",
          "key": "location-2",
          "value": {
            "svg": "ICON_USER_LOCATION_2",
            "tags": [
              "location",
              "pin",
              "filled pin",
              "map marker",
              "place",
              "destination",
              "2"
            ]
          }
        },
        "index_ts_reexport": "export { userIcons, userIconManifest } from './generated/user'",
        "manifest_ts_entry": {
          "name": "user/location-2",
          "category": "user",
          "svg_ref": "ICON_USER_LOCATION_2"
        },
        "sot_json_patch": {
          "match_figma_component_key": "d25fcafb7ca386017e1ead91908423a9be407f8c",
          "set_registry_name": "user/location-2"
        }
      }
    },
    {
      "path": "location/3.svg",
      "visual_signature": "circular globe or area outline containing a small map pin in the center",
      "affordance_category": "navigational",
      "synonyms_en": [
        "🟡 location",
        "🟡 global location",
        "🟡 geofence",
        "🟡 region",
        "🟡 map area",
        "🟡 tracking area"
      ],
      "synonyms_zh": [
        "🟡 位置",
        "🟡 全球位置",
        "🟡 区域",
        "🟡 地理范围",
        "🟡 地图区域"
      ],
      "when_to_use": "🟡 Use when location is scoped to a region, global map, geofence, or tracked area rather than a single standalone pin.",
      "notes": "🟡 Pure numeric leaf handled by naming-convention §3.5 mechanical fallback: icon/location/3 -> user/location-3. Low confidence: exact product meaning requires user review.",
      "figma_component_key": "4f2b292a493d8a406e1d8a688fc3e84d94af6cdc",
      "figma_name": "icon/location/3",
      "figma_node_id": "1202:3707",
      "proposed_registry_name": "user/location-globe",
      "registry_name_status": "ok",
      "registry_name_reasoning": "applied naming-convention §3.5 pure numeric leaf fallback: <category>/<folder-lower>-3 -> user/location-3; not manual_disambig.",
      "svg_decision": "semantic-convert",
      "svg_action": "no-op-currentColor",
      "manifest_patches": {
        "raw_ts_export": "export const ICON_USER_LOCATION_3 = `<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M15 8C15 11.866 11.866 15 8 15C4.13401 15 1 11.866 1 8C1 4.13401 4.13401 1 8 1C11.866 1 15 4.13401 15 8ZM13.8 7.99922C13.8 4.79597 11.2033 2.19922 8.00001 2.19922C4.79676 2.19922 2.20001 4.79597 2.20001 7.99922C2.20001 11.2025 4.79676 13.7992 8.00001 13.7992C11.2033 13.7992 13.8 11.2025 13.8 7.99922ZM10.5 7C10.5 8.38071 10 10 8 12C6 10 5.5 8.38071 5.5 7C5.5 5.61929 6.61929 4.5 8 4.5C9.38071 4.5 10.5 5.61929 10.5 7ZM9.30001 6.99922C9.30001 6.28125 8.71798 5.69922 8.00001 5.69922C7.28204 5.69922 6.70001 6.28125 6.70001 6.99922C6.70001 7.71719 7.28204 8.29922 8.00001 8.29922C8.71798 8.29922 9.30001 7.71719 9.30001 6.99922Z\" fill=\"currentColor\"/>\n</svg>`",
        "generated_ts_entry": {
          "file": "src/icons/generated/user.ts",
          "key": "location-3",
          "value": {
            "svg": "ICON_USER_LOCATION_3",
            "tags": [
              "location",
              "global location",
              "geofence",
              "region",
              "map area",
              "tracking area",
              "3"
            ]
          }
        },
        "index_ts_reexport": "export { userIcons, userIconManifest } from './generated/user'",
        "manifest_ts_entry": {
          "name": "user/location-3",
          "category": "user",
          "svg_ref": "ICON_USER_LOCATION_3"
        },
        "sot_json_patch": {
          "match_figma_component_key": "4f2b292a493d8a406e1d8a688fc3e84d94af6cdc",
          "set_registry_name": "user/location-3"
        }
      }
    },
    {
      "path": "location/track-collection.svg",
      "visual_signature": "folder outline with a map pin rising from the top-right, combining collection/folder and location tracking",
      "affordance_category": "navigational",
      "synonyms_en": [
        "🟡 track collection",
        "🟡 tracking collection",
        "🟡 location collection",
        "🟡 route folder",
        "🟡 saved tracks",
        "🟡 geodata collection"
      ],
      "synonyms_zh": [
        "🟡 轨迹集合",
        "🟡 跟踪集合",
        "🟡 位置集合",
        "🟡 路线文件夹",
        "🟡 已保存轨迹"
      ],
      "when_to_use": "🟡 Use for a collection of tracked routes, saved location records, or a folder of geodata/location tracks.",
      "notes": "🟡 Multi-word leaf transformed by naming-convention §3.1: track collection -> track-collection.",
      "figma_component_key": "2fecd9793d982ebd93ee836ac7a460b626249fc7",
      "figma_name": "icon/location/track collection",
      "figma_node_id": "1202:3764",
      "proposed_registry_name": "user/track-collection",
      "registry_name_status": "ok",
      "registry_name_reasoning": "applied naming-convention §3.1 kebab leaf rule: track collection -> track-collection.",
      "svg_decision": "semantic-convert",
      "svg_action": "no-op-currentColor",
      "manifest_patches": {
        "raw_ts_export": "export const ICON_USER_TRACK_COLLECTION = `<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M12.8054 8.19922C12.2539 9.07669 11.496 10.004 10.5 11C9.50398 10.004 8.74605 9.07669 8.1946 8.19922H5.92399C5.46256 8.19922 5.042 7.93464 4.84225 7.51868L4.37203 6.53949C4.27215 6.33151 4.06187 6.19922 3.83116 6.19922H2.40002C2.28957 6.19922 2.20002 6.28876 2.20002 6.39922L2.20001 13.6C2.20001 13.7105 2.28956 13.8 2.40001 13.8H13.6C13.7105 13.8 13.8 13.7105 13.8 13.6V8.39922C13.8 8.28876 13.7105 8.19922 13.6 8.19922H12.8054ZM13.4464 7H13.8C14.4627 7 15 7.53726 15 8.2V13.8C15 14.4627 14.4627 15 13.8 15H2.2C1.53726 15 1 14.4627 1 13.8V6.2C1 5.53726 1.53726 5 2.2 5H4.25836C4.71289 5 5.1284 5.2568 5.33167 5.66334L5.83416 6.66833C5.9358 6.8716 6.14356 7 6.37082 7H7.55364C7.1726 6.12924 7 5.30306 7 4.5C7 2.567 8.567 1 10.5 1C12.433 1 14 2.567 14 4.5C14 5.30306 13.8274 6.12924 13.4464 7ZM12 4.5C12 3.67157 11.3284 3 10.5 3C9.67157 3 9 3.67157 9 4.5C9 5.32843 9.67157 6 10.5 6C11.3284 6 12 5.32843 12 4.5Z\" fill=\"currentColor\"/>\n</svg>`",
        "generated_ts_entry": {
          "file": "src/icons/generated/user.ts",
          "key": "track-collection",
          "value": {
            "svg": "ICON_USER_TRACK_COLLECTION",
            "tags": [
              "track collection",
              "tracking collection",
              "location collection",
              "route folder",
              "saved tracks",
              "geodata collection",
              "track",
              "collection"
            ]
          }
        },
        "index_ts_reexport": "export { userIcons, userIconManifest } from './generated/user'",
        "manifest_ts_entry": {
          "name": "user/track-collection",
          "category": "user",
          "svg_ref": "ICON_USER_TRACK_COLLECTION"
        },
        "sot_json_patch": {
          "match_figma_component_key": "2fecd9793d982ebd93ee836ac7a460b626249fc7",
          "set_registry_name": "user/track-collection"
        }
      }
    },
    {
      "path": "location/tracking.svg",
      "visual_signature": "crosshair target with center dot and four directional ticks around a circular tracking ring",
      "affordance_category": "navigational",
      "synonyms_en": [
        "🟡 tracking",
        "🟡 locate",
        "🟡 target",
        "🟡 geolocation",
        "🟡 current location",
        "🟡 focus location"
      ],
      "synonyms_zh": [
        "🟡 跟踪",
        "🟡 定位",
        "🟡 目标",
        "🟡 地理定位",
        "🟡 当前位置"
      ],
      "when_to_use": "🟡 Use for tracking, locating, focusing current location, or target-lock style geolocation actions.",
      "notes": "🟡 Leaf already semantic and kebab-safe; proposed registry_name follows batch category user/tracking.",
      "figma_component_key": "c47980e6ea79595a700ab1898be91f7716168111",
      "figma_name": "icon/location/tracking",
      "figma_node_id": "1202:3734",
      "proposed_registry_name": "user/tracking",
      "registry_name_status": "ok",
      "registry_name_reasoning": "applied naming-convention §3.1 kebab leaf rule: tracking -> tracking.",
      "svg_decision": "semantic-convert",
      "svg_action": "no-op-currentColor",
      "manifest_patches": {
        "raw_ts_export": "export const ICON_USER_TRACKING = `<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M7.40002 1.6C7.40002 1.26863 7.66865 1 8.00002 1C8.3314 1 8.60002 1.26863 8.60002 1.6V2.53235C11.1577 2.80986 13.1893 4.84093 13.4675 7.39844H14.4C14.7313 7.39844 15 7.66707 15 7.99844C15 8.32981 14.7313 8.59844 14.4 8.59844H13.4678C13.1909 11.1574 11.1588 13.19 8.60002 13.4676V14.4016C8.60002 14.7329 8.3314 15.0016 8.00002 15.0016C7.66865 15.0016 7.40002 14.7329 7.40002 14.4016V13.4677C4.84124 13.1901 2.80908 11.1574 2.53218 8.59844H1.6C1.26863 8.59844 1 8.32981 1 7.99844C1 7.66707 1.26863 7.39844 1.6 7.39844H2.53252C2.81073 4.84091 4.84228 2.80983 7.40002 2.53235V1.6ZM8.00001 12.2992C10.3748 12.2992 12.3 10.374 12.3 7.99922C12.3 5.62439 10.3748 3.69922 8.00001 3.69922C5.62519 3.69922 3.70001 5.62439 3.70001 7.99922C3.70001 10.374 5.62519 12.2992 8.00001 12.2992ZM8 10C9.10457 10 10 9.10457 10 8C10 6.89543 9.10457 6 8 6C6.89543 6 6 6.89543 6 8C6 9.10457 6.89543 10 8 10Z\" fill=\"currentColor\"/>\n</svg>`",
        "generated_ts_entry": {
          "file": "src/icons/generated/user.ts",
          "key": "tracking",
          "value": {
            "svg": "ICON_USER_TRACKING",
            "tags": [
              "tracking",
              "locate",
              "target",
              "geolocation",
              "current location",
              "focus location"
            ]
          }
        },
        "index_ts_reexport": "export { userIcons, userIconManifest } from './generated/user'",
        "manifest_ts_entry": {
          "name": "user/tracking",
          "category": "user",
          "svg_ref": "ICON_USER_TRACKING"
        },
        "sot_json_patch": {
          "match_figma_component_key": "c47980e6ea79595a700ab1898be91f7716168111",
          "set_registry_name": "user/tracking"
        }
      }
    }
  ],
  "outline_pending_review": []
}
