Built-in tools and skills

Besides the tools an integration offers, Spotlight has tools and skills of its own. An agent calls a tool with spotlight <tool>; see Agent commands.

Built-in tools

ToolGiven toAlso gives the skill
pull-requestRuns at a station that lists it in tools.spotlight-pull-request
review-commentRuns at a station that lists it in tools.spotlight-review
reviewRuns at a station that lists it in tools.spotlight-review
propose-taskEvery chat run. A station cannot give it.none
setup-pull-requestEvery run of a setup chat. A station cannot give it.none

In the input tables, a piped input may come from standard input, as described under spotlight <tool>.

pull-request

Opens a pull request for the task's branch, spotlight/<taskId>, into the repository's default branch (main if GitHub names none). If a pull request is already open for the branch, that one is returned. It answers with {"url": "<address>"}. The task then holds the git.pull-request mark.

InputTypeRequiredPipedDescription
titlestringyesnoWhat it does.
bodystringnoyesThe detail, as Markdown.
repositorystringnonoWhich of the line's repositories, where it works several.

review-comment

Leaves a comment on a line of the pull request the task reviews. The comment is held until the review is submitted.

InputTypeRequiredPipedDescription
pathstringyesnoThe file, from the root of the repository.
linenumberyesnoThe line it is about, or the last of several.
start-linenumbernonoThe first line, where it is about several.
sidestringnononew for a line the pull request leaves, old for one it removes.
bodystringyesyesWhat is wrong and what would fix it, as Markdown.

review

Submits the comments left so far as one review of the pull request the task reviews.

InputTypeRequiredPipedDescription
verdictstringnonocomment, approve or request-changes.
bodystringnoyesWhat the review comes down to, as Markdown.

propose-task

Proposes a task in the chat the run works for. Nothing is created until the person accepts the proposal. It answers with the task's title as proposed, the line and station keys it was given, and what happens next. See Proposals.

InputTypeRequiredPipedDescription
linestringyesnoThe key of the line it belongs on.
stationstringyesnoThe key of the station on that line to start it at.
titlestringyesnoWhat the task is, in a line.
descriptionstringnoyesWhat whoever works it needs to know, as Markdown.

setup-pull-request

Opens the pull request with the team's configuration, from a branch the agent pushed to the setup chat's configuration repository, into its default branch. It answers with {"url": "<address>"}. The chat keeps the pull request, and the setup task's "Set up configuration as code" step is then done. A second call answers the pull request the chat already opened. See Let the agent write your team's first Terraform.

InputTypeRequiredPipedDescription
branchstringyesnoThe branch pushed, as in spotlight-configuration. A branch under spotlight/ is refused with Branch <branch> is named like a task’s branch. Please name it outside spotlight/, as in spotlight-configuration.
titlestringyesnoWhat it does.
bodystringnoyesThe decisions and the plan, as Markdown.

The pull-request.opening hook does not run for it.

Built-in skills

Spotlight gives its own skills wherever they apply. A station may not name a skill starting spotlight-.

SkillGiven to
spotlight-handoverEvery run at a station.
spotlight-pull-requestRuns given the pull-request tool.
spotlight-reviewRuns given the review-comment or review tool.
spotlight-toolsRuns given a tool from an integration or the catalog that Spotlight can describe. Never a replay.

spotlight-tools says how to find a tool with spotlight tools search, read it with spotlight tools describe, give inputs as flags or as one JSON object, pipe a tool's JSON answer into the next call, use a tool that requires approval, and stop when a tool waits for a person to connect. It also explains learned answers: describe prints what a tool answered before as a learned type. See Learned output. Such a run's briefing also has a ## Tools section naming each integration it was given tools from, with how many, and the search and describe commands. Catalog tools are named there as the Spotlight catalog. A replay is given no tools, so it gets neither the skill nor the section.

A run is also given the tools listed in the tools of each team skill its station gives. See spotlight_skill.

Catalog

Spotlight publishes catalog tools and skills, named catalog.<name>@<version>. A station gives one by that exact name in its tools or skills.

ItemKindPlanInputs or uses
catalog.web-search@1.0.0toolteamquery (string, required)
catalog.web-search@1.1.0toolteamquery (string, required), limit (number)
catalog.fetch-page@1.0.0toolfreeurl (string, required)
catalog.research@1.0.0skillteamuses catalog.web-search@1.1.0 and catalog.fetch-page@1.0.0

A workspace's plan is free, team or enterprise, and each plan includes the ones before it. A workspace with no plan set, or whose plan has lapsed, is on free.

  • A line that gives a catalog item the workspace's plan does not include is refused when it is written.
  • A run at such a station is refused.
  • A catalog skill is laid out in the folder spotlight-catalog-<name>, and brings the catalog tools it uses.

On this page