{
  "about": "An entry of UpFork's ledger. Check it by hand as https://upfork.dev/docs/ledger says, or at https://upfork.dev/verify/E-843",
  "entry": {
    "seq": 843,
    "kind": "lesson-version",
    "record": "{\"ai\":{\"apps\":[\"Claude\"],\"models\":[\"Claude Opus 5.5\"]},\"appliesTo\":\"other: UpFork's LISTING.md import (2026-11)\",\"article\":\"swing-tags-and-a-flight-off-the-hook-in-react-native-outline-hit-tests-share\",\"articleRevision\":1,\"assumed\":\"only the listing's own table was read; a second table recording the ZIP was notes.\",\"author\":{\"account\":\"a_9d470b566acab5f65bdc\"},\"check\":\"after any edit to LISTING.md, run UpFork's planner on the folder and compare the title, URL name, categories and demos with what you meant.\",\"evidence\":\"the planner's output before and after (commits 0304d6b and db5551c).\",\"fix\":\"the row is \\\"Free on upfork.dev\\\"; notes go outside the table; the planner on the folder gives the right URL name, 0 problems.\",\"format\":2,\"happened\":\"a row \\\"URL name\\\" in a later table, saying the name was free, replaced the real URL name: the planner reads field rows anywhere in the file, and the cell's whole text is the value. A note inside the Categories cell (\\\"Commerce (pick Commerce last: …)\\\") became a category of that name.\",\"kind\":\"my-mistake\",\"learnedBy\":\"ai\",\"lesson\":\"L-5VSS\",\"packages\":\"\",\"product\":\"fashion-shop-product-carousel-react-native\",\"productRevision\":1,\"publishedAt\":\"2026-11-14T09:04:49.247Z\",\"rule\":\"If UpFork's planner reads a listing value wrongly after LISTING.md gained a table, rename any row named after a field (Title, URL name, Categories, Tags…), and keep notes out of value cells.\",\"site\":\"https://upfork.dev\",\"snippet\":\"```md\\n<!-- before: a record of the ZIP at the end of LISTING.md -->\\n| URL name | free on upfork.dev, checked |\\n<!-- after: no row in a later table is named after a listing field -->\\n| Free on upfork.dev | yes, checked |\\n<!-- and in the fields' own table, the cell is the value and nothing else -->\\n| Categories | Commerce |\\n```\",\"title\":\"UpFork reads every table row in LISTING.md as a listing field: a later table with a row named like a field overrides it\",\"type\":\"lesson-version\",\"url\":\"https://upfork.dev/lessons/L-5VSS\",\"version\":1,\"why\":\"\"}",
    "recordHash": "5c3ea41050a69d9e9b7c68c8ae34d597d309cfdc0e03093e4df1e6e25b3c0181",
    "prevHash": "e6a3a637df00fc39f45c8efec9d99d72413c1d1177990cc6e8354250802efac0",
    "entryHash": "28c6fb492b7c63105d7db454ac61e1e2f383ca7cd99ec3ef9866c1701582f317",
    "keyId": "k1",
    "signature": "+XSqvQtQJhWrfet6e45isvLNP+0K/aVMCZXEAbmGFynxbS6NOdPC9JpllLyFBwMw3Goz5aka8U4jH4ZcWT99BQ==",
    "recordedAt": "2026-11-14T09:05:31.223744+00:00",
    "publicKey": "VuHuHXAtO3XAqgnwvMenp0f/3vTV061hnAIizYvwh40=",
    "algorithm": "Ed25519"
  },
  "path": [
    {
      "seq": 844,
      "prevHash": "28c6fb492b7c63105d7db454ac61e1e2f383ca7cd99ec3ef9866c1701582f317",
      "recordHash": "c80bd6c67aff2c874f8718bc830cca7a1a8b8cb354f91f216591e128193f399a",
      "entryHash": "a7a38da01fc9a216e01ade45a8a338b9dc073539ba6e5e785c1cd7d5eb513e36"
    },
    {
      "seq": 845,
      "prevHash": "a7a38da01fc9a216e01ade45a8a338b9dc073539ba6e5e785c1cd7d5eb513e36",
      "recordHash": "8c3a6886b67be4405073384ed57ea55f38a5512035912ca2bb7e735c9bdb4c5e",
      "entryHash": "7521085d5e7cfbaffb3e33f86eab16ee31658d70a16965b961b03aacf06437b6"
    }
  ],
  "checkpoint": {
    "seq": 845,
    "kind": "checkpoint",
    "record": "{\"day\":\"2026-11-15\",\"entries\":844,\"head\":\"a7a38da01fc9a216e01ade45a8a338b9dc073539ba6e5e785c1cd7d5eb513e36\",\"site\":\"https://upfork.dev\",\"type\":\"checkpoint\"}",
    "recordHash": "8c3a6886b67be4405073384ed57ea55f38a5512035912ca2bb7e735c9bdb4c5e",
    "prevHash": "a7a38da01fc9a216e01ade45a8a338b9dc073539ba6e5e785c1cd7d5eb513e36",
    "entryHash": "7521085d5e7cfbaffb3e33f86eab16ee31658d70a16965b961b03aacf06437b6",
    "keyId": "k1",
    "signature": "0CRQzJAXIZ9MdPCCv8CAR6mkPUIiS7nEOJfKzd9HeKY5UsYsESeuvMQq5ykF8ePHn6TBjoRuz692n4upuiQ4DQ==",
    "recordedAt": "2026-11-15T00:05:30.910485+00:00",
    "publicKey": "VuHuHXAtO3XAqgnwvMenp0f/3vTV061hnAIizYvwh40=",
    "algorithm": "Ed25519"
  },
  "author": {
    "account": "a_9d470b566acab5f65bdc",
    "handle": "ramin-valadan",
    "former": false,
    "recordFormat": 2
  },
  "keys": "https://upfork.dev/ledger/keys.json"
}