{"name":"Crossroads Orchestrator","description":"LLM-powered orchestration platform. Submit a task with a skill ID and context; Crossroads reasons about which registered agents to use and coordinates the workflow.","url":"https://fv-crossroads.dev.filevinedev.com","version":"1.0.0","capabilities":{"streaming":false,"pushNotifications":false},"skills":[{"id":"orchestrate","name":"Orchestrate","description":"Submit a task for LLM-coordinated orchestration across registered agents. Provide a skill_id and context; Crossroads selects and coordinates the appropriate agents.","inputSchema":{"type":"object","properties":{"skill_id":{"type":"string","description":"The skill to be performed (e.g., generate-tests)"},"context":{"type":"object","description":"Task context passed to the orchestrating LLM"},"prefer_agent":{"type":"string","description":"Hint to bias routing toward a specific registered agent by name"},"quality":{"type":"string","description":"Quality hint: 'fast' prefers direct answers, 'thorough' prefers specialized agents, 'balanced' (default) lets the orchestrator decide","enum":["fast","thorough","balanced"]}},"required":["skill_id","context"]}},{"id":"create-issues","name":"Create Issues","description":"Create Linear issues from structured agent output. Provide a parent issue, team/project context, and an array of items; Crossroads creates sub-issues with consistent formatting and duplicate detection.","inputSchema":{"type":"object","properties":{"parent_issue_id":{"type":"string","description":"Linear issue identifier (e.g., F2-736) to create sub-issues under"},"issue_type":{"type":"string","description":"Type of issues to create — determines the formatting template.","enum":["test-case","test-plan","scope"]},"team":{"type":"string","description":"Linear team name or ID for issue creation"},"project":{"type":"string","description":"Linear project name or ID"},"items":{"type":"array","description":"Structured items to create as issues. Each item must have a title and description; additional fields are included in the issue body.","items":{"type":"object","properties":{"title":{"type":"string","description":"Issue title (must be unique within the parent's sub-issues)"},"description":{"type":"string","description":"Markdown description for the issue body"},"labels":{"type":"array","description":"Label names to apply to the issue","items":{"type":"string"}},"priority":{"type":"integer","description":"Priority: 0=None, 1=Urgent, 2=High, 3=Normal, 4=Low"}},"required":["title","description"]}},"source_session_id":{"type":"string","description":"Session ID of the orchestration that produced the items (for traceability)"}},"required":["parent_issue_id","team","items"]}},{"id":"enrich-test-case","name":"Enrich Test Case","description":"Enrich a single existing Linear test case issue with implementation-ready details. Reads the issue, dispatches to a test-case generator agent that analyzes the codebase and live UI, then updates the same issue with concrete selectors, API endpoints, validation rules, and test data.","inputSchema":{"type":"object","properties":{"issue_id":{"type":"string","description":"Linear issue identifier (e.g., F2-854) of the test case to enrich"},"repo_url":{"type":"string","description":"Git repository URL for the codebase to analyze (optional — falls back to parent issue context)"},"branch":{"type":"string","description":"Branch to analyze (default: main)"},"environment_url":{"type":"string","description":"Live environment URL for UI exploration (optional)"}},"required":["issue_id"]}},{"id":"batch-enrich","name":"Batch Enrich Test Cases","description":"Enrich all test case sub-issues under a parent Linear issue with implementation-ready details. Iterates through child issues, dispatching each to a codebase analysis agent, then updates each issue. Idempotent — skips already-enriched issues on re-run.","inputSchema":{"type":"object","properties":{"parent_issue_id":{"type":"string","description":"Linear issue identifier (e.g., F2-736) whose child test cases will be enriched"},"repo_url":{"type":"string","description":"Git repository URL for the codebase to analyze (optional — falls back to parent issue context)"},"branch":{"type":"string","description":"Branch to analyze (default: main)"},"environment_url":{"type":"string","description":"Live environment URL for UI exploration (optional)"}},"required":["parent_issue_id"]}},{"id":"generate-test-plan","name":"Generate Test Plan","description":"Generate a structured test plan from requirements or design documents using ISTQB techniques. Produces prioritized test scenarios and creates Linear sub-issues.","inputSchema":{"type":"object","properties":{"parent_issue_id":{"type":"string","description":"Linear issue with requirements/design to plan tests for. Sub-issues created here."},"description":{"type":"string","description":"Requirements or scope description (if not using a Linear issue)"},"repo_url":{"type":"string","description":"Git repository URL for reference context (optional)"},"branch":{"type":"string","description":"Branch to reference (default: main)"}},"required":[]}},{"id":"generate-test-cases","name":"Generate Test Cases","description":"Generate implementation-ready test cases by analyzing a codebase and optionally exploring a live UI. Discovers endpoints, validators, selectors. Results written to Linear or returned as structured output.","inputSchema":{"type":"object","properties":{"parent_issue_id":{"type":"string","description":"Linear parent issue to create test case sub-issues under (optional)"},"issue_id":{"type":"string","description":"Specific Linear issue with scope/requirements (optional)"},"repo_url":{"type":"string","description":"Git repository URL to analyze"},"branch":{"type":"string","description":"Branch to analyze (default: main)"},"environment_url":{"type":"string","description":"Live environment URL for UI validation (optional)"}},"required":["repo_url"]}},{"id":"analyze-codebase","name":"Analyze Codebase","description":"Analyze a git repository to produce structural maps of modules, API endpoints, domain models, validators, and dependencies. Can also identify test coverage gaps.","inputSchema":{"type":"object","properties":{"repo_url":{"type":"string","description":"Git repository URL to analyze"},"branch":{"type":"string","description":"Branch to analyze (default: main)"},"issue_id":{"type":"string","description":"Linear issue to post results to (optional)"},"focus":{"type":"string","description":"Specific module, feature, or question to focus analysis on (optional)"}},"required":["repo_url"]}},{"id":"explore-ui","name":"Explore UI","description":"Explore a running web application to inventory pages, interactive elements, selectors, navigation flows, and API calls. Returns selectors, workflows, and screenshots.","inputSchema":{"type":"object","properties":{"environment_url":{"type":"string","description":"Running application URL to explore"},"target":{"type":"string","description":"Specific page, feature, or workflow to explore (optional — full nav map if omitted)"},"issue_id":{"type":"string","description":"Linear issue to post results to (optional)"},"repo_url":{"type":"string","description":"Git repository for source code context (optional)"}},"required":["environment_url"]}},{"id":"write-tests","name":"Write Automated Tests","description":"Generate passing Playwright test code from a Linear inventory issue and/or packed test cases. An autonomous agent clones the repo, writes C# Playwright tests, syncs Inventory/Specs, and drives an MR to ready-for-review (green CI, threads cleared, undrafted).","inputSchema":{"type":"object","properties":{"issue_id":{"type":"string","minLength":1,"description":"Linear work issue (e.g. F2-3372). Preferred for inventory-driven leaves: pass issue_id and omit test_cases so SDET loads full catalog YAML from Linear."},"parent_issue_id":{"type":"string","description":"Linear parent issue with child test-group issues to automate (optional). Orchestrator batches children into fewer MRs."},"repo_url":{"type":"string","description":"Git repository containing the test project"},"branch":{"type":"string","description":"Base branch to create feature branch from (default: main)"},"test_cases":{"type":"array","minItems":1,"description":"Packed test cases for the legacy/manual path. Omit when using issue_id (inventory path). Must be non-empty when provided.","items":{"type":"object","required":["test_case_id","description","feature","expected","priority"],"properties":{"test_case_id":{"type":"string"},"description":{"type":"string"},"feature":{"type":"string"},"expected":{"type":"string"},"priority":{"type":"string"},"steps":{"type":"array","items":{"type":"string"}},"notes":{"type":"string"}}}},"inventory_module":{"type":"string","description":"Optional module inventory root (e.g. Ledger) advising which Inventory/Specs tree to update"},"inventory_spec_hint":{"type":"string","description":"Optional Specs path hint (e.g. Inventory/Specs/TB.yaml)"},"environment_url":{"type":"string","description":"Running application URL to test against (optional). If omitted, the SDET agent self-provisions an ephemeral environment and returns its mr_iid + project_path in the callback."}},"required":["repo_url"],"anyOf":[{"required":["issue_id"]},{"required":["test_cases"]},{"required":["parent_issue_id"]}]}}]}