or run

npx @tessl/cli init
Log in

Version

Files

docs

index.mdport-configuration.mdport-finding.mdsocket-finding.md
tile.json

rubric.jsonevals/scenario-3/

{
  "context": "Evaluates whether the solution relies on portfinder's deterministic helpers for advancing port and socket candidates, including correct default tuning and option forwarding instead of bespoke scanning logic.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Port discovery",
      "description": "Retrieves free ports through portfinder.getPort/getPortPromise or getPorts/getPortsPromise rather than manual net.Server probing, honoring provided start/stop bounds.",
      "max_score": 30
    },
    {
      "name": "Default tuning",
      "description": "Persists global defaults via portfinder.setBasePort and portfinder.setHighestPort (and resets when needed) so subsequent allocations pick up the configured window without reimplementing state handling.",
      "max_score": 20
    },
    {
      "name": "Deterministic stepping",
      "description": "Advances through candidate ports using portfinder.nextPort semantics (or getPorts sequencing) instead of manually incrementing integers, ensuring ordered, non-reused results across calls.",
      "max_score": 20
    },
    {
      "name": "Socket sequence",
      "description": "Generates socket paths through portfinder.getSocket/getSocketPromise and its nextSocket-style incrementing, including handling of existing basePath collisions and auto-created directories.",
      "max_score": 20
    },
    {
      "name": "Option forwarding",
      "description": "Passes caller options (host, range overrides, basePath) directly into the relevant portfinder calls instead of ignoring them or hardcoding values, keeping behavior aligned with the library's host validation and pruning.",
      "max_score": 10
    }
  ]
}