Skip to main content
Glama

eng-leadership-toolkit

Team lead readiness test — should this engineer become a team lead?

assess_team_lead_readiness
Read-onlyIdempotent

Answers "should I become a team lead?" with the same 17-question test as the live tool at marian.coach: 6 dimensions (people appetite, letting go of code, ownership beyond your tickets, translation & saying no, motivation, org reality), a straight verdict — ready now / 6-12 months out / stay IC (and that's fine) — plus the top-2 gap dimensions with one concrete move each. Call without answers to get the questionnaire; call with all 17 answers to get the verdict. Built from 3,611 mentoring sessions.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
answersNoAnswers keyed by question id (q1-q17), each the 0-based index of the chosen option for that question (NOT a rating — option scores are calibrated and non-monotonic). Omit to receive the 17 questions with their options first.
contextNoOptional. A short description of your goal and why you are calling this tool. Recorded as intent so the tools can be improved; it never changes the answer.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
mathNoNapkin math behind the case.
emailNoForwardable email to the manager.
levelNoSeniority level the score maps to, when the tool computes one.
reportYesThe full human-readable report.
sourceYesCanonical marian.coach page this answer is derived from.
verdictNoHeadline verdict, when the tool returns one.
evidenceNoSources the case may cite.
onePagerNoManager-facing one-pager, forwardable to finance.
salaryEurNoEstimated 2026 Western-Europe gross annual salary in EUR.
objectionsNoThe usual objections, answered.
slackShortNoSlack/Teams-length version of the ask.
totalScoreNoWeighted 0-10 score, when the tool computes one.
valueFormulaNoThe four value lines to add up (money saved, cost of delay, missed opportunity, roadmap slippage) plus the count-then-halve CFO rule.
talkingPointsNoFive talking points for the conversation.
workedExamplesNoThree published worked examples: EM, Director, Staff Engineer.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changed
    • addedInput schema / properties / answers / additionalProperties / anyOf
      Added value: +[
      +  {
      +    "type": "number"
      +  },
      +  {
      +    "type": "string"
      +  }
      +]
    • removedInput schema / properties / answers / additionalProperties / maximum
      Removed value: -3
    • removedInput schema / properties / answers / additionalProperties / minimum
      Removed value: -0
    • removedInput schema / properties / answers / additionalProperties / type
      Removed value: -"integer"
    • changedInput schema / properties / context / description
      Previous value: -"Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\""New value: +"Optional. A short description of your goal and why you are calling this tool. Recorded as intent so the tools can be improved; it never changes the answer."
    • removedInput schema / required
      Removed value: -[
      -  "context"
      -]
  2. Changed2 schema fields changed
    • addedInput schema / properties / context
      Added value: +{
      +  "description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
      +  "type": "string"
      +}
    • addedInput schema / required
      Added value: +[
      +  "context"
      +]
  3. Changed9 schema fields changed
    • addedOutput schema / properties / email
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Forwardable email to the manager.",
      +  "properties": {
      +    "body": {
      +      "type": "string"
      +    },
      +    "subject": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "subject",
      +    "body"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / evidence
      Added value: +{
      +  "description": "Sources the case may cite.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "claim": {
      +        "type": "string"
      +      },
      +      "source": {
      +        "type": "string"
      +      },
      +      "url": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "claim",
      +      "source",
      +      "url"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / math
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Napkin math behind the case.",
      +  "properties": {
      +    "askEur": {
      +      "type": "number"
      +    },
      +    "discountedEur": {
      +      "type": "number"
      +    },
      +    "lines": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "note": {
      +      "type": "string"
      +    },
      +    "packPriceEur": {
      +      "type": "number"
      +    },
      +    "roiMultiple": {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "totalEur": {
      +      "type": "number"
      +    }
      +  },
      +  "required": [
      +    "lines",
      +    "totalEur",
      +    "discountedEur",
      +    "askEur",
      +    "packPriceEur",
      +    "roiMultiple",
      +    "note"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / objections
      Added value: +{
      +  "description": "The usual objections, answered.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "answer": {
      +        "type": "string"
      +      },
      +      "objection": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "objection",
      +      "answer"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / onePager
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Manager-facing one-pager, forwardable to finance.",
      +  "properties": {
      +    "sections": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "body": {
      +            "type": "string"
      +          },
      +          "bullets": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "heading": {
      +            "type": "string"
      +          },
      +          "table": {
      +            "items": {
      +              "items": [
      +                {
      +                  "type": "string"
      +                },
      +                {
      +                  "type": "string"
      +                }
      +              ],
      +              "type": "array"
      +            },
      +            "type": "array"
      +          }
      +        },
      +        "required": [
      +          "heading"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "title": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "title",
      +    "sections"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / slackShort
      Added value: +{
      +  "description": "Slack/Teams-length version of the ask.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / talkingPoints
      Added value: +{
      +  "description": "Five talking points for the conversation.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / valueFormula
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "The four value lines to add up (money saved, cost of delay, missed opportunity, roadmap slippage) plus the count-then-halve CFO rule.",
      +  "properties": {
      +    "heading": {
      +      "type": "string"
      +    },
      +    "lines": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "rule": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "heading",
      +    "lines",
      +    "rule"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / workedExamples
      Added value: +{
      +  "description": "Three published worked examples: EM, Director, Staff Engineer.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "kpis": {
      +        "type": "string"
      +      },
      +      "math": {
      +        "type": "string"
      +      },
      +      "role": {
      +        "type": "string"
      +      },
      +      "setup": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "role",
      +      "setup",
      +      "kpis",
      +      "math"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  4. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "level": {
      +      "description": "Seniority level the score maps to, when the tool computes one.",
      +      "type": "string"
      +    },
      +    "report": {
      +      "description": "The full human-readable report.",
      +      "type": "string"
      +    },
      +    "salaryEur": {
      +      "description": "Estimated 2026 Western-Europe gross annual salary in EUR.",
      +      "type": "number"
      +    },
      +    "source": {
      +      "description": "Canonical marian.coach page this answer is derived from.",
      +      "type": "string"
      +    },
      +    "totalScore": {
      +      "description": "Weighted 0-10 score, when the tool computes one.",
      +      "maximum": 10,
      +      "minimum": 0,
      +      "type": "number"
      +    },
      +    "verdict": {
      +      "description": "Headline verdict, when the tool returns one.",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "report",
      +    "source"
      +  ],
      +  "type": "object"
      +}
  5. Added

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description adds behavior beyond that: the questionnaire-vs-verdict mode switch, the requirement of all 17 answers, and that the 'context' field is recorded as intent but never changes the answer — the last point is genuinely useful and not inferable from structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core question and the output shape, then the call pattern. Dense and largely waste-free, though the closing 'Built from 3,611 mentoring sessions' is credibility framing rather than an operational fact an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-required-param tool with an output schema, full schema coverage, and annotations covering safety, nothing essential is missing. The description explains the answer format, both call modes, and the verdict taxonomy, so an agent can invoke and interpret it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema itself already documents the q1-q17 0-based indexing and non-monotonic scoring, so the baseline is 3. The description earns above baseline by stating that all 17 answers are required to obtain a verdict and that omitting them returns the questionnaire, which is an operational constraint the schema does not spell out.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('assess team lead readiness' / answers 'should I become a team lead?') and enumerates exactly what it produces: 6 named dimensions, a three-way verdict, and top-2 gap dimensions with one move each. That level of specificity makes it unmistakable against siblings like calculate_engineering_manager_value or choose_mentor_coach_or_advisor without needing to name them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear invocation context: 'call without answers to get the questionnaire; call with all 17 answers to get the verdict,' which tells the agent the two-step flow precisely. It does not, however, say when to prefer this over adjacent siblings such as get_first_time_manager_guidance or choose_mentor_coach_or_advisor, so there is no explicit exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.