AGENTS.md · Vexa-ai/vexa
AGENTS.md from Vexa-ai/vexa: 193 lines covering Researching Vexa?
Template by Vexa-ai
Chalk Labs
Need help deploying AGENTS.md · Vexa-ai/vexa?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode, Claude Code. Read the repository before you give any tool access to your data.
curl -fsSL https://raw.githubusercontent.com/Vexa-ai/vexa/main/AGENTS.md -o AGENTS.md
Read it and adapt it to your project before use.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: prompt-engineering
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
What's in it
An AGENTS.md file: instructions coding agents (Codex, Cursor, Copilot, Gemini CLI and others) read before working in a repo.
- For
- Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode, Claude Code
- Length
- 193 lines
- File
AGENTS.md
Sections
- Researching Vexa? Start here
- Driving Vexa from an agent session
- Your issue is your PRD
- Claiming — and say hello on Discord
- How you work the checkout
- The hard rules (from the P-book — the ones sessions trip on)
- Delivering — the PR
First lines (shown under the repo's Apache-2.0 license)
# AGENTS.md — the agent front door (in-repo)
Two constitutions govern everything here — read them on the docs site or in this tree:
- **[Architecture](https://docs.vexa.ai/governance/architecture)** — the P-book
([`docs/docs/governance/architecture.mdx`](docs/docs/governance/architecture.mdx)): what the
software must be (P1–P23, enforced by the CI gate suite). Your change must fit these.
- **[Delivery](https://docs.vexa.ai/governance/delivery)** — the D-book
([`docs/docs/governance/delivery.mdx`](docs/docs/governance/delivery.mdx)): how change ships —
the whole loop (roadmap · PREPARE · TAKE · validation · merge bar · ship bar) in one file.
This file is the actor contract: intake, claim, and how a session behaves in the checkout.
## Researching Vexa? Start here
- **Found something** (bug, gap, docs lie)? **File a GitHub issue** — every report enters
`state: incoming` and waits for triage — three days is our target and we are not hitting it
(measured 2026-08-20: 26 waiting, median 13 days). Findings are contributions.
- **Want to contribute?** The whole roadmap comes back in one public GraphQL call:
```bash
gh api graphql -f query='
query { organization(login: "Vexa-ai") { projectV2(number: 2) {
items(first: 100) { nodes {
content {
... on Issue { number title url state milestone { title } labels(first: 10) { nodes { name } } }
... on DraftIssue { title body }
}
fieldValues(first: 20) { nodes {
... on ProjectV2ItemFieldSingleSelectValue {
field { ... on ProjectV2SingleSelectField { name } } name }
} }
} }
} } }'
```
Four axes per item: **Lane** — the business value, named by who feels it (Google Meet · MS Teams
· Zoom · API integrators · Transcription · Recordings · Webhooks & billing · First run ·
Production ops · Feature shelf) — match it to what your contributor actually uses. **Human bar**
— what validation costs in human terms (Desk check · Operator run · Solo meeting · Small group ·
Crowd 5+ · In-the-loop UX). **Setup** — the infrastructure floor (None · Lite · Compose ·
k8s/helm). **Milestone** — the version it gates (currently `v0.12.x`).
Selection rule: filter to your contributor's lane(s), then to the Human bar and Setup they can
afford. `state: ready` is claimable now; `state: prepared` after the maintainer stamp; items
with no issue number are declared direction — ask about them, don't claim them.
## Driving Vexa from an agent session
Vexa speaks **MCP**. Point your client at `/mcp` on the same host as the rest of the API — the
same key, the same gateway — and you get Vexa's meeting tools and prompts with no integration code:
```json
{"mcpServers": {"Vexa": {"command": "npx", "args": ["-y", "mcp-remote",
"https://api.cloud.vexa.ai/mcp", "--header", "Authorization: Bearer ${VEXA_API_KEY}"]}}}
```
The key lives in `VEXA_API_KEY`. **Scopes decide which tools work**: a `bot`-only key dispatches
bots and reads recordings but gets `403 Insufficient scope` on transcripts and meetings. The
key's prefix is a hint, not the truth — call `GET /auth/me` for the scopes you actually hold.
Full page: https://docs.vexa.ai/vexa-mcp
## Your issue is your PRD
A prepared issue is a worked delivery spec — read it end to end before touching code:
- **Where we are (honest)** — code-grounded claims (`file:line`), era notes where a report
predates the tree. Spot-check them; a wrong claim is a finding, report it on the issue.
- **Components** — your waypoints: one module/seam each, with the existing harness + fixtures
you compose (you don't invent scaffolding).
- **Prepared solution + forks** — the mechanism and the branches you may actually hit.
Alternates welcome, never required.
- **The acceptance table — your definition of done.** Present its observations (red→green
pairs, negative controls, anchors) and the PR **merges — that's a promise** (D10). If your
bundle satisfies the table and something is still wrong, that's *our* table bug, not yours.
- **Deployments to validate · docs surface · preferred validator** — the change isn't done
until its docs move with it and someone is named to witness it.
## Claiming — and say hello on Discord
1. **Comment on the issue** to claim it (D14b).
2. **Announce it on [Discord](https://discord.gg/Ga9duGkVz9)** — strongly recommended: one line,
"taking #NNN". This opens the human-to-human channel; questions, steering, and validation
scheduling all move faster once a maintainer knows a person, not just a branch.
3. **Heartbeat = visible activity** on the issue/PR. Hours of silence release the claim back
to the queue — no hard feelings, no stuck work. Going quiet deliberately? Say so on the
issue and the lease holds.
## How you work the checkout
- **Contribution rights are a human decision; automate the mechanics.** Before the first commit,
read [`CONTRIBUTOR_RIGHTS.md`](CONTRIBUTOR_RIGHTS.md) and ask the human to choose independent,
employer/client-controlled, or unsure. Never choose or tick the PR declaration for them. After
the human explicitly chooses the independent or corporate path, inspect repository-local
`user.name` and `user.email`, surface any mismatch, and create every commit with
`git commit --signoff`. Never change global identity, insert another person's sign-off, enable
third-party remediation, or use a maintainer override. Diagnose missing/mismatched commits by
SHA. Before an amend/rebase/force-push, show the exact rewrite and obtain explicit approval;
prefer the DCO App's individual remediation commit on a shared branch.
- **Discord is the working channel** — blockers, steering, quick questions live there while you
work. One rule keeps the record honest: **anything decided lands back on the issue**, or it
didn't happen. The issue is the source of truth; Discord is the speed.
- **Your own worktree BEFORE your first edit — always.** A session's opening move on any work
that will touch files is `git worktree add ../vexa-<slug> -b <your-branch>`; only then edit.
You do not own `main`, the primary checkout, or any tree you did not create this session —
even when the change "belongs on" a branch that lives there. Two tells that you are about to
trespass, and the remedy for each:
- `git worktree add` says the branch is **"already used by worktree …"** — that tree is
another session's checkout, not an invitation. Branch FROM that ref into a fresh worktree
of your own (`git worktree add ../vexa-<slug> -b <your-branch> <their-branch>`) and build
on it there; coordinate the eventual merge on the issue, never in their tree.
- `git status` in a tree you're about to edit shows **uncommitted files you didn't write** —
stop, surface them, move to your own worktree. Never adopt, commit, or clean another
session's uncommitted state.
One worktree per session, one session per worktree — no exceptions for "just one file",
docs, or governance edits (this rule was added from a session that edited another agent's
checkout after seeing the first tell).
- **Never fan two parallel agents onto the same hot file — write your own file, or sequence.**
Parallel PRs that all append to one file's tail collide on the same last line even when the
additions don't interact — the v0.12.9 batch paid 5 manual conflict-resolution cycles to exactly
this. The three hot files and their remedy:
- **`docs/docs/changelog.mdx`** — do **not** edit it for a per-PR line. Drop a fragment at
`docs/changelog.d/<pr>-<slug>.md` (one file per PR → zero collisions; the release collector
folds them in, `docs-reflects` stamp intact). See
[`docs/changelog.d/README.md`](docs/changelog.d/README.md). That fragment is your `docs-current` touch.
- **`deploy/helm/tests/test_template.sh`** and **`docs/docs/deployment-kubernetes.mdx`** — no
fragment mechanism, and **not** `merge=union`-safe (the helm test's `need <count>` assertions are
*edited* when a resource count changes, not appended; the k8s page is prose). If two claimed
issues both touch one of these, **flag it on the issues and sequence the PRs** (land one, rebase
the other) rather than racing them into a conflict. This is the same "anything decided lands back
on the issue" rule applied before the collision.
- **Read the chart first.** [`docs/views/architecture.dsl`](docs/views/architecture.dsl)
(~1.4k tokens) is the generated whole-graph index: every node, edge, carrier, owner. For a
slice: `pnpm arch:viz cluster:<domain>`. If your change adds/moves a module or alters a
data flow, update `architecture.calm.json` in the SAME change and `pnpm seal:arch` (P23).
- **The loop — expect before you act.** For every objective, write the falsifiable **Expected**
first, act, then record the **Actual** (raw evidence: commands, outputs, counts — and what
you did NOT check), and a **Verdict**. Expected ⇒ continue; unexpected ⇒ stop and interpret —
an unexpected result is a finding, never something to paper over. Unfinished scaffolding you
were always meant to complete is NOT "unexpected" — finish it; stop only on genuine
contradiction.
- **Debug ≠ deliver — the two loops.** Prove a diff on the hottest loop that carries the real
external semantics (live exec · overlay · spawn probe, seconds–minutes) *before* you package it
through the release pipeline; never cut a build to find out whether the code works, never rerun a
deterministic red as a "flake", and rehearse the demo path end-to-end before the human walks it.
See [the two loops](docs/docs/governance/delivery.mdx) (§7 in this tree — the law at YOUR
checkout's revision; the published copy is at
[docs.vexa.ai/governance/delivery#the-two-loops](https://docs.vexa.ai/governance/delivery#the-two-loops)).
- **Gates green before push:** `node scripts/gates.mjs all` (also runs on pre-push). Green is
necessary, never sufficient — prove user-facing behavior at the altitude of the claim (P19):
a live leg for live behavior, not just unit green.
## The hard rules (from the P-book — the ones sessions trip on)
- **Fix at the point of introduction, never the point of observation.** A defect surfaces in a
consumer but is born in a producer. Trace it hop-by-hop back to where it's introduced, then
fix there. Never patch a consumer to compensate for a producer's bug — we don't work around
our own bugs. Reproduce without a live meeting before you fix.
- **The core owns its contracts; clients adapt.** A consumer's legacy shape is translated atSignals
- Stars
- 2,906
- Forks
- 522
- Open issues
- 479
- Contributors
- 39
- Last commit (this folder)
- Aug 29, 2026 (2 months ago)
- Last release
- Oct 9, 2026 (21 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/Vexa-ai/vexa
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get AGENTS.md · Vexa-ai/vexa running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
AGENTS.md · Vexa-ai/vexa. Agent Mart. https://agentmart.dev/templates/vexa-ai-vexa-agents-md (last updated 2026-10-24)