or run

tessl search
Log in

Version

Files

tile.json

rubric.jsonevals/scenario-7/

{
  "context": "Evaluates how effectively the solution uses notion-client to recursively hydrate relation-linked pages, merge their record maps, and control traversal depth. Emphasizes correct use of built-in relation hydration options over hand-rolled HTTP while preventing redundant fetches.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Relation flagging",
      "description": "Uses NotionAPI.getPage with the fetchRelationPages option enabled (or equivalent call flow) to pull relation-linked pages for the base page rather than manual HTTP requests.",
      "max_score": 30
    },
    {
      "name": "Recursive traversal",
      "description": "Iteratively applies fetchRelationPages(recordMap) and subsequent getPage calls to walk relation graphs until no new IDs remain, merging returned block maps into the aggregate record map.",
      "max_score": 20
    },
    {
      "name": "Missing blocks",
      "description": "When includeMissingBlocks is true, ensures relation page retrieval also fetches child blocks by enabling fetchMissingBlocks on getPage or by invoking getBlocks for missing IDs sourced from relation pages.",
      "max_score": 15
    },
    {
      "name": "Depth control",
      "description": "Respects the maxDepth option by halting additional fetchRelationPages/getPage cycles once the depth limit is reached, while still returning earlier relation data.",
      "max_score": 15
    },
    {
      "name": "Deduping relations",
      "description": "Tracks seen relation page IDs (e.g., via extractRelationPageIdsFromBlock or equivalent) to avoid repeated getPage/fetchRelationPages calls for the same page.",
      "max_score": 10
    },
    {
      "name": "Opt-out path",
      "description": "When hydrateRelations is disabled, skips fetchRelationPages-related calls and returns only the base getPage result without relation blocks.",
      "max_score": 10
    }
  ]
}