or run

npx @tessl/cli init
Log in

Version

Files

docs

index.md
tile.json

rubric.jsonevals/scenario-4/

{
  "context": "Evaluates whether the solution uses lodash to merge configuration objects with default fallbacks, rename incoming keys, and filter the result to an allowed shape without mutating inputs. Focus is on correct use of lodash's object utilities to satisfy the spec's behaviors.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Clone defaults",
      "description": "Initializes work from _.cloneDeep (or equivalent lodash deep clone) of baseDefaults so the original defaults object is not mutated.",
      "max_score": 15
    },
    {
      "name": "Rename map",
      "description": "Transforms override keys using the provided renameMap before merging, leveraging lodash key-mappers such as _.mapKeys or _.transform rather than manual loops.",
      "max_score": 15
    },
    {
      "name": "Ordered merge",
      "description": "Combines clone -> envConfig -> userConfig with lodash's deep merge helpers (e.g., _.mergeWith) to apply overrides in order while ignoring undefined override values in the customizer.",
      "max_score": 30
    },
    {
      "name": "Defaults kept",
      "description": "Ensures missing nested properties still come from baseDefaults by using lodash defaulting tools (such as _.defaultsDeep or merge targets) instead of manual property checks.",
      "max_score": 20
    },
    {
      "name": "Allowlist filter",
      "description": "Drops non-allowed top-level keys after merging via lodash selectors like _.pick (or _.pickBy/_.omit) to return only the allowKeys entries while retaining their deep values.",
      "max_score": 20
    }
  ]
}