{
	"name": "Engineering Leaders Community",
	"description": "Agent-callable services from the Engineering Leaders Community: meetup topic evaluation, speaker stage placement, and community reach — grounded in 3,300+ CEE engineering leaders and 12 meetups a year at 120+ attendees since 2019.",
	"version": "1.0.0",
	"iconUrl": "https://www.engineeringleaders.io/favicon/icon-192.png",
	"documentationUrl": "https://www.engineeringleaders.io/agents/",
	"provider": {
		"organization": "Engineering Leaders Community",
		"url": "https://www.engineeringleaders.io"
	},
	"supportedInterfaces": [
		{
			"url": "https://www.engineeringleaders.io/a2a/v1",
			"protocolBinding": "JSONRPC",
			"protocolVersion": "1.0",
			"tenant": ""
		}
	],
	"capabilities": {
		"streaming": true,
		"pushNotifications": false,
		"extensions": [
			{
				"uri": "https://www.engineeringleaders.io/extensions/pricing/v1",
				"description": "Per-skill list prices in EUR, excluding VAT.",
				"required": false,
				"params": {
					"currency": "EUR",
					"vat": "excluded",
					"note": "Quoted services are fulfilled by a person and close on an invoice, not in-protocol. Metered services are per call.",
					"skills": {
						"buy_reach": {
							"model": "quote",
							"from": 500,
							"fulfilment": "human_review"
						},
						"benchmark_leadership_ratio": {
							"model": "free"
						},
						"assess_community_launch_readiness": {
							"model": "free"
						},
						"build_partnership_business_case": {
							"model": "free"
						},
						"evaluate_meetup_topic": {
							"model": "free"
						},
						"assess_speaker_readiness": {
							"model": "free"
						}
					}
				}
			},
			{
				"uri": "https://www.engineeringleaders.io/extensions/skill-schemas/v1",
				"description": "JSON Schema for each skill's arguments.",
				"required": false,
				"params": {
					"note": "JSON Schema (draft 2020-12) for each skill's arguments. Send them as a JSON object in the message text, or as a data part. Every field not marked required is optional.",
					"skills": {
						"buy_reach": {
							"$schema": "https://json-schema.org/draft/2020-12/schema",
							"type": "object",
							"properties": {
								"oneoff_ids": {
									"minItems": 1,
									"type": "array",
									"items": {
										"type": "string",
										"enum": [
											"newsletter-section",
											"newsletter-dedicated",
											"meetup-hosted",
											"podcast-episode",
											"dinner",
											"survey",
											"demo-session",
											"linkedin-post",
											"job-listing"
										]
									},
									"description": "Which one-off reach items to quote. One or more of: newsletter-section, newsletter-dedicated, meetup-hosted, podcast-episode, dinner, survey, demo-session, linkedin-post, job-listing. Combo discount applies automatically."
								},
								"budget_eur": {
									"description": "Optional: what you have to spend. Does not change any price — the quote will say whether the cart fits and what to drop if it does not.",
									"type": "number",
									"minimum": 0
								}
							},
							"required": [
								"oneoff_ids"
							],
							"additionalProperties": false
						},
						"benchmark_leadership_ratio": {
							"$schema": "https://json-schema.org/draft/2020-12/schema",
							"type": "object",
							"properties": {
								"managers": {
									"type": "integer",
									"minimum": 0,
									"maximum": 9007199254740991,
									"description": "Managers and tech leads."
								},
								"senior_ics": {
									"type": "integer",
									"minimum": 0,
									"maximum": 9007199254740991,
									"description": "Senior and staff ICs. Leave out junior and mid ICs on both sides."
								}
							},
							"required": [
								"managers",
								"senior_ics"
							],
							"additionalProperties": false
						},
						"assess_community_launch_readiness": {
							"$schema": "https://json-schema.org/draft/2020-12/schema",
							"type": "object",
							"properties": {
								"answers": {
									"description": "Answers to the five readiness questions. Omit to receive the questionnaire.",
									"type": "object",
									"propertyNames": {
										"type": "string"
									},
									"additionalProperties": {
										"type": "boolean"
									}
								}
							},
							"additionalProperties": false
						},
						"build_partnership_business_case": {
							"$schema": "https://json-schema.org/draft/2020-12/schema",
							"type": "object",
							"properties": {
								"goal": {
									"type": "string",
									"enum": [
										"hiring",
										"brand_awareness",
										"product_feedback",
										"thought_leadership",
										"people_development"
									],
									"description": "The primary reason. people_development covers developing your own engineering leaders (mentoring, Academy seats, the peer network) — that is the one for retention and growth, not hiring."
								},
								"buying_for": {
									"description": "Who is buying. 'company' (default) builds the annual membership case. 'individual' means a person spending their own money — returns the free-membership route instead of an approval email. 'one_off' means one thing once, not a year, and routes to buy_reach.",
									"type": "string",
									"enum": [
										"company",
										"individual",
										"one_off"
									]
								},
								"company_name": {
									"description": "The company considering the membership.",
									"type": "string"
								},
								"proposed_budget_eur": {
									"description": "A proposed budget in EUR. 0 is valid and routes to the free membership layer.",
									"type": "number"
								},
								"approver_name": {
									"description": "Who the approval email is addressed to.",
									"type": "string"
								},
								"sender_name": {
									"description": "Who the approval email is signed by.",
									"type": "string"
								}
							},
							"required": [
								"goal"
							],
							"additionalProperties": false
						},
						"evaluate_meetup_topic": {
							"$schema": "https://json-schema.org/draft/2020-12/schema",
							"type": "object",
							"properties": {
								"title": {
									"type": "string",
									"minLength": 3,
									"description": "The proposed meetup or talk title."
								},
								"abstract": {
									"description": "The abstract, if one exists yet.",
									"type": "string"
								},
								"audience": {
									"description": "Who it is aimed at, e.g. 'CTOs and VPs', 'first-time engineering managers'.",
									"type": "string"
								}
							},
							"required": [
								"title"
							],
							"additionalProperties": false
						},
						"assess_speaker_readiness": {
							"$schema": "https://json-schema.org/draft/2020-12/schema",
							"type": "object",
							"properties": {
								"talk_title": {
									"type": "string",
									"minLength": 3,
									"description": "The proposed talk title."
								},
								"speaker_background": {
									"type": "string",
									"description": "Role, seniority, and any prior speaking experience."
								},
								"prior_talks": {
									"description": "How many talks they have given.",
									"type": "integer",
									"minimum": 0,
									"maximum": 9007199254740991
								},
								"has_dry_run": {
									"description": "Whether a rehearsal is scheduled.",
									"type": "boolean"
								},
								"has_recording": {
									"description": "Whether a recording of them speaking exists. Pass it explicitly — inferring it from the background text cannot reliably read a denial like 'no recording'.",
									"type": "boolean"
								},
								"writes_publicly": {
									"description": "Whether they publish writing — a blog, newsletter or regular posts.",
									"type": "boolean"
								}
							},
							"required": [
								"talk_title",
								"speaker_background"
							],
							"additionalProperties": false
						}
					}
				}
			}
		]
	},
	"securitySchemes": {},
	"securityRequirements": [],
	"defaultInputModes": [
		"text/plain",
		"application/json"
	],
	"defaultOutputModes": [
		"text/plain",
		"application/json"
	],
	"skills": [
		{
			"id": "buy_reach",
			"name": "Buy reach in the ELC community",
			"description": "Answers 'how do we get in front of 3,300+ CEE engineering leaders, and what does it cost?' Builds a cart from ELC's nine published one-off reach items — newsletter section, dedicated newsletter, hosted meetup, podcast episode, decision-maker dinner, community survey, demo session, LinkedIn post, job listing — applies the published combo discount, and returns a decision-ready quote a human can sign.",
			"tags": [
				"reach",
				"partnership",
				"pricing",
				"marketing"
			],
			"examples": [
				"We want to reach engineering leaders in Prague. What can we buy and what does it cost?",
				"Quote us a newsletter section plus a podcast episode."
			],
			"inputModes": [],
			"outputModes": [],
			"securityRequirements": []
		},
		{
			"id": "benchmark_leadership_ratio",
			"name": "Benchmark your manager-to-senior-IC ratio",
			"description": "Answers 'what shape is my engineering org, and what should I ask about it?' Returns your manager-versus-senior-IC percentages and the resulting span (1 manager per N senior ICs), plus the question that shape usually raises. ELC's own community composition is shown alongside as context only — different denominator, so no delta and no score is computed against it.",
			"tags": [
				"benchmarks",
				"engineering-management",
				"org-design",
				"data"
			],
			"examples": [
				"We have 10 managers and 30 senior engineers. Is that healthy?",
				"Is my engineering organisation top-heavy?"
			],
			"inputModes": [],
			"outputModes": [],
			"securityRequirements": []
		},
		{
			"id": "assess_community_launch_readiness",
			"name": "Should you start a meetup in your city?",
			"description": "Answers 'should I start an engineering-leadership meetup here?' A five-question readiness check taken from ELC's own new-city launch playbook — the one actually used to open Brno, Bratislava and Kraków — returning a verdict plus the specific gaps still open.",
			"tags": [
				"community",
				"meetup",
				"assessment",
				"launch"
			],
			"examples": [
				"I want to start an engineering leaders meetup in Vienna. Am I ready?"
			],
			"inputModes": [],
			"outputModes": [],
			"securityRequirements": []
		},
		{
			"id": "build_partnership_business_case",
			"name": "Build the internal case for an ELC partnership",
			"description": "Answers 'how do I justify a community partnership budget internally?' Returns real reach numbers, the deliverables that serve the stated goal, where a proposed budget lands on the published ladder, and a forwardable approval email. Goals: hiring, brand_awareness, product_feedback, thought_leadership, people_development (developing your own engineering leaders — mentoring, Academy seats, the peer network). Set buying_for=individual if you are a person rather than a company: ELC membership is free for engineering leaders and no business case is needed.",
			"tags": [
				"business-case",
				"partnership",
				"procurement",
				"budget"
			],
			"examples": [
				"How do I convince my CFO to fund an ELC partnership for hiring?",
				"My twelve engineering managers have had no external development in two years."
			],
			"inputModes": [],
			"outputModes": [],
			"securityRequirements": []
		},
		{
			"id": "evaluate_meetup_topic",
			"name": "Evaluate a meetup topic before you commit to it",
			"description": "Answers 'will this topic fill a room?' Scores a proposed engineering-leadership meetup title and abstract against ELC's own topic-selection criteria — the ones behind 12 meetups a year at 120+ attendees since 2019 — and returns the specific failure modes, the title formulas that would fit, and the questions only the organiser can answer.",
			"tags": [
				"meetup",
				"community",
				"assessment",
				"content"
			],
			"examples": [
				"Is 'Microservices Best Practices' a good meetup topic for engineering leaders?",
				"Score this abstract for a CTO audience and tell me what's wrong with the title."
			],
			"inputModes": [],
			"outputModes": [],
			"securityRequirements": []
		},
		{
			"id": "assess_speaker_readiness",
			"name": "Assess whether a speaker is ready for the stage",
			"description": "Answers 'is this person ready to speak, and what will go wrong if they are not?' Checks a proposed speaker and talk against ELC's speaker vetting process — seven years of putting people in front of 120+ engineering leaders — and returns a readiness verdict with the specific gaps to close before the event.",
			"tags": [
				"speakers",
				"community",
				"assessment",
				"events"
			],
			"examples": [
				"Our staff engineer wants to give her first conference talk. Is she ready?",
				"What's missing before this speaker goes on stage?"
			],
			"inputModes": [],
			"outputModes": [],
			"securityRequirements": []
		}
	],
	"signatures": []
}
