> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ewake.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Setup skills for coding agents

> Install four skills for your coding agent. With the skills, your coding agent can connect to ewake, report deployments from your pipeline, map your services, and check the setup.

<Info>
  **What you'll get:** your coding agent does the ewake setup for a repository. You approve each change to the repository.
</Info>

<Note>
  **Preview.** These skills are in preview and can change without notice.
</Note>

<Note>
  This page is about skills that **a coding agent runs** in your repository. For the playbooks that ewake follows during investigations, see [Skills](/working-with-ewake/skills).
</Note>

***

## Prerequisites

You need these items:

* A coding agent, such as Claude Code, Codex, or Cursor
* A shell with `npx` and `git`
* A Git repository. The skills read its `origin` remote and open pull requests.
* An ewake account, for the browser sign-in

***

## Install

<Steps>
  <Step title="Add the skills to your repository">
    ```bash theme={null}
    npx skills add ewake-ai/skills
    ```

    The command installs the skills into the repository for the coding agents that you select.
  </Step>

  <Step title="Commit the files">
    Commit the files so that your team gets the skills.
  </Step>
</Steps>

To get a newer version of the skills, run this command. The skill names limit the update to the four ewake skills.

```bash theme={null}
npx skills update ewake-connect ewake-report-deployments ewake-teach ewake-check-setup
```

Then commit the changes.

***

## The four skills

| Skill | What it does | What it changes | What it needs |
| - | - | - | - |
| `ewake-connect` | It connects your coding agent to ewake and to the ewake documentation. | It changes the user-level MCP configuration of your coding agent, so the servers are available in every project. It changes nothing in the repository. | It needs your ewake dashboard address and a browser sign-in. |
| `ewake-report-deployments` | It adds the deployment report step to your CI pipeline. | It changes your pipeline definition, in a pull request. Outside GitHub Actions, it also adds `scripts/ewake-report-deployment.sh`. | It needs a CI secret with the name `EWAKE_API_KEY`. You create the secret. |
| `ewake-teach` | It maps the services of the repository to `.ewake/repo-metadata.yml`. | It changes only `.ewake/repo-metadata.yml`, in a pull request. | It needs nothing. With a connection, it also compares what it finds with what ewake knows. |
| `ewake-check-setup` | It tells you what ewake knows about the repository and what is missing. | It changes nothing. | It needs nothing. Without a connection, it checks only the repository. |

Run the skills in this order. Each line shows the request that you give to your coding agent.

1. `Connect ewake`. Run this skill first. The other skills use the connection.
2. `Report our deployments to ewake`
3. `Map the services of this repository for ewake`
4. `Check the ewake setup`. You can also run this skill at any time. It tells you the next step.

***

## What each skill does

The steps of each skill are in [`ewake-ai/skills` on GitHub](https://github.com/ewake-ai/skills). This section gives the results.

### Connect your coding agent

**When to run it.** Run the skill `ewake-connect` first. Run it again when your coding agent tells you that the ewake tools are not available.

**What the coding agent does.** The coding agent adds two MCP servers to its MCP configuration:

* `ewake` is the [ewake MCP server](/interfaces/mcp). It needs a sign-in.
* `ewake-docs` is the MCP server of this documentation. It needs no sign-in.

After the sign-in, the coding agent lists your service names to make sure that the connection works.

If ewake has no services yet, the coding agent tells you the next step. If one of the reasons in [Check the setup](#check-the-setup) applies, it also tells you the reason.

**What you approve.** You approve the sign-in in your browser. See [Approve the connection](/interfaces/mcp#approve-the-connection). The coding agent cannot approve the sign-in for you. The coding agent shows you each command and each file change before it runs the command or makes the change.

In a session that has no browser, the coding agent adds no MCP server. See [Cloud agents](#cloud-agents).

### Report deployments

**When to run it.** Run the skill `ewake-report-deployments` when you want ewake to compare production problems with your recent deployments.

**What the coding agent does.** The coding agent adds the deployment report step after the production deployment. On GitHub Actions, the deployment report step is a separate job that uses the [ewake GitHub Action](https://github.com/marketplace/actions/report-deployment). On any other CI system, the deployment report step is the script and the command from [Deployment Tracking](/integrations/deployment/deployment-tracking#add-it-to-your-pipeline). The deployment report step cannot cause a deployment to fail.

The coding agent asks you for the artifact name. The artifact name must be the service name in your observability stack.

If the pipeline already reports to ewake, the coding agent only corrects the deployment report step. If the deployment report step is already correct, the coding agent changes nothing.

**What you approve.** You approve the full change before the coding agent commits it and opens a pull request.

You create the API key yourself. Open **API Keys** in your ewake dashboard. Then store the key in your CI system as the secret `EWAKE_API_KEY`. On GitHub, use a repository secret, not an environment secret.

After the next production deployment, the deployment shows on the **Releases** page of your ewake dashboard.

### Map your services

**When to run it.** Run the skill `ewake-teach` when you want a file in the repository that describes its services.

**What the coding agent does.** The coding agent reads the repository and writes [`.ewake/repo-metadata.yml`](#the-metadata-file). The file lists the services of the repository, their key metrics, their dependencies, and where they run. The coding agent does not guess a name. Each name comes from a file in the repository or from you.

**What you approve.** You answer the questions of the coding agent. It asks only for facts that the repository and ewake do not give. Then you approve the full change and a report. Only then, the coding agent commits the file and opens a pull request.

### Check the setup

**When to run it.** Run the skill `ewake-check-setup` at any time.

**What the coding agent does.** With a connection, the coding agent asks ewake about the repository and its deployments of the last 14 days. It also searches your pipeline definition for the deployment report step. Then it shows one table. Each result is **OK**, **Missing**, or **Not checked**. A result is **Not checked** when the coding agent does not have the ewake tool that the check needs.

| Check | Next step when the result is **Missing** |
| - | - |
| Ewake tools | Run `ewake-connect`. |
| Repository in Ewake | Connect [GitHub](/integrations/code/github) or [GitLab](/integrations/code/gitlab) in your ewake dashboard. |
| Service linked to this repository | Run `ewake-report-deployments`. A deployment event links the service to the repository. If the deployment report step is already **OK**, wait for the next production deployment. |
| Deployment report step | Run `ewake-report-deployments`. |
| Deployment received | Run `ewake-report-deployments`. |

For an **OK** result, the **Deployment received** row gives the time, the artifact name, and the commit of the newest deployment.

If the result of **Repository in Ewake** or of **Service linked to this repository** is **Missing**, the coding agent also examines your integrations. If one of these reasons applies, the coding agent tells you the reason. The coding agent examines only the integrations that add repositories or services to ewake: GitHub, GitLab, Datadog, Grafana, Loki, Thanos, and ClickHouse.

| Reason | What it means | Next step |
| - | - | - |
| No integration | Ewake has none of these integrations. | Do the next step from the table above. |
| Paused | Each of these integrations is in a paused state. | Resume the integrations in your ewake dashboard. |
| In progress | A discovery run that writes the knowledge graph is pending or running, and the run is not stalled. This reason also applies when ewake received the newest deployment after the last such run started. | Wait until the run ends. Then run the skill again. |
| Found nothing | A discovery run that writes the knowledge graph succeeded, but it found nothing. | Do the next step from the table above. |

**What you approve.** You approve nothing. The coding agent does not change a file, open a pull request, or change ewake. It does not start the next step. You make the decision.

***

## The metadata file

The coding agent writes `.ewake/repo-metadata.yml` when it runs `ewake-teach`. This example shows version 1 of the format. The comments give the permitted values.

```yaml .ewake/repo-metadata.yml theme={null}
version: 1
services:
  - name: checkout-api            # the exact name in telemetry
    source: deploy/values.yaml    # a file path, or: interview
    key_metrics:                  # at most 8 per service
      - name: checkout.orders.failed
        signals: errors           # latency | errors | traffic | saturation | business
        source: interview
    depends_on:
      - kind: database            # database | cache | queue
        name: checkout-main
        source: config/database.yml
    runs_on:
      - kind: cluster             # cluster | namespace
        name: prod-eu-west-1
        source: argocd/checkout-api.yaml
```

These rules also apply:

* A `source` that is a file path has no line number.
* The `source` is `interview` when you gave the fact.
* The `name` of a dependency is the production name.
* The file has no other fields.
* If the coding agent does not know a value, it does not write the fact.

<Note>
  Ewake starts to use this file in a later release.
</Note>

***

## Cloud agents

A cloud agent cannot open a browser, so it cannot do the sign-in. Add the connection one time in the settings of the cloud agent, not in a session. The MCP address is your ewake dashboard address plus `/mcp`, for example `https://your-company.ewake.ai/mcp`.

| Cloud agent | Where to add the connection | Access |
| - | - | - |
| Claude Code | A custom connector on claude.ai | Sign-in |
| Cursor | The MCP server settings of the team | Sign-in |
| GitHub Copilot coding agent | The MCP configuration in the repository settings | Ewake API key in a secret |
| Codex cloud | Not possible today | None |

These limits apply:

* The cloud agent must have permission to reach your ewake address.
* A cloud agent cannot reach a self-hosted ewake instance that has a [private load balancer](/interfaces/mcp#if-your-load-balancer-is-private).
* A sign-in stops 30 days after the approval. Then do the sign-in again.

<Warning>
  The GitHub Copilot coding agent connects with an ewake API key. An ewake API key is [not limited to the MCP server](/interfaces/mcp#alternative-connect-with-an-api-key). Create a separate key for the GitHub Copilot coding agent. For the name of the secret and the header to send, see [Cloud agents in the skills README](https://github.com/ewake-ai/skills#cloud-agents).
</Warning>

***

## Safety

* **No skill asks for a credential.** A credential is an API key, a password, or a token.
* **Each change waits for you.** Each skill shows the change and waits for your approval before it commits.
* **The ewake MCP server only reads data.** Its only scope is `mcp:read`.
* **The deployment report step cannot cause a deployment to fail.**

The skills are plain text files. For a security review, read the skills and the README in [`ewake-ai/skills` on GitHub](https://github.com/ewake-ai/skills).

<Card title="How ewake handles permissions and data →" icon="shield" href="/security/permissions" horizontal />


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.