tessl install tessl/npm-libnpmorg@8.0.0Programmatic API for managing npm organization memberships and roles
Agent Success
Agent success rate when using this tile
74%
Improvement
Agent success rate improvement when using this tile compared to baseline
0.97x
Baseline
Agent success rate without this tile
76%
{
"context": "Evaluates how the solution leverages npm CLI commands to reconcile package visibility, grants, owners, and organization rosters for the access governance task, including OTP-aware retries and streaming consumption of CLI output.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Visibility control",
"description": "Uses `npm access public`/`npm access restricted` to set package visibility according to the plan rather than manual HTTP calls or manifest edits.",
"max_score": 15
},
{
"name": "Team grants",
"description": "Applies team permissions with `npm access grant`/`npm access revoke` using read-only/read-write flags for scoped teams matching the plan.",
"max_score": 15
},
{
"name": "User grants",
"description": "Adjusts individual user permissions via `npm access grant`/`npm access revoke` to mirror the plan's userGrants entries.",
"max_score": 10
},
{
"name": "Owner sync",
"description": "Aligns owners exactly by calling `npm owner add` for missing owners and `npm owner rm` for extras, not by direct registry requests.",
"max_score": 15
},
{
"name": "OTP retry",
"description": "Detects `EOTP`/one-time-password prompts from npm commands and retries once with the provided `--otp` value before surfacing errors.",
"max_score": 10
},
{
"name": "Roster listing",
"description": "Retrieves organization membership via `npm org ls --json` (or `npm team ls --json` per team) instead of hardcoded data, honoring auth options.",
"max_score": 10
},
{
"name": "Role grouping",
"description": "Maps npm CLI roster results into owner/admin/developer groupings as returned by `npm org ls` without inventing roles or omitting entries.",
"max_score": 10
},
{
"name": "Streamed roster",
"description": "Implements `streamOrgRoster` by streaming stdout from npm CLI (e.g., line-by-line JSON parsing) to yield `[user, role]` pairs without buffering the full list.",
"max_score": 15
}
]
}