本文へ移動
cccskills
無料GitHub で公開

e2e-testing

Write, run, and debug Centaur's end-to-end tests under e2e/. Use when adding or changing an e2e scenario, running the e2e stack locally, or investigating a failing e2e CI job.

日本語の概要は準備中です。原文の説明を表示しています。

paradigmxyz/centaurスター 1,405(GitHub 1,405 + cccskills 0)
連携ツールSlackPostgreSQL

実行スコア 未検証

インストール方法を見る

含まれるファイル(1)

  • SKILL.md3.6 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Centaur E2E Testing

How the system works

e2e/stack.sh deploys the real chart's Slack path (Postgres, console, api-rs, slackbotv2, sandboxes, per-sandbox iron-proxies) to a dedicated kind cluster, with two fakes standing in for the outside world:

  • e2e/fakes/fake-slack.ts: a stateful Slack Web/Events/Interactivity API. slackbotv2 runs unmodified against it.
  • e2e/fakes/model-server.ts: a scripted model provider. CoreDNS sends provider hostnames to it, so real harnesses reach it through iron-proxy. It answers by a token in the user's message and records every request.

Tests in e2e/tests/*.test.ts run under bun test on the host and reach the fakes, Postgres, and api-rs through NodePorts. e2e/lib/index.ts is the test vocabulary: slack, model, api, cluster, workflows, ironControl, and Thread. Shared Slack identities live in e2e/fakes/slack-fixture.ts. Stack configuration lives in e2e/infra/.

CI (.github/workflows/e2e.yml, called by publish-images.yml and runnable manually against any published tag) runs every scenario against the published images with API keys, and runs harnesses.test.ts alone in subscription (access_token) mode.

Running

e2e/stack.sh up                                   # build images from the tree, deploy
e2e/stack.sh test                                 # all scenarios
e2e/stack.sh test e2e/tests/turns.test.ts         # one file
e2e/stack.sh logs                                 # pods, events, component logs
e2e/stack.sh down

The script uses a private kubeconfig, never the ambient context. Rerun up after changing service code. CENTAUR_E2E_IMAGE_TAG pulls published images, and CENTAUR_E2E_AUTH_MODE=access_token selects subscription auth. Run down before switching from access_token back to api_key.

Writing a scenario

  • Act only through the doors a user or operator has: Slack for input and visible output, durable session tables, recorded model requests, api-rs operator routes, and Kubernetes faults. Do not reach into service internals.
  • Script each turn with model.says(...) or model.fails(...), then drive it with slack.mention(...), thread.mention(...), and thread.nextTurn(). nextTurn waits for a terminal execution and exactly one finished Slack reply.
  • Assert observable outcomes: turn.reply, turn.execution.status, turn.sandbox, and turn.request (what the harness actually sent the provider).
  • Use test.concurrent with a turnTimeoutMs-based timeout. Each test makes its own thread and script tokens, so tests must not share state.
  • Wait with eventually(...), not fixed sleeps. Use delayMs plus thread.inFlight() to keep a turn running.
  • Put a short comment at the top of each file stating the behavior it guarantees. Add a scenario to the existing file that covers that area before creating a new file.
  • Extend e2e/lib or a fake only when a scenario needs a new capability, and name helpers in user terms. When a test needs new stack configuration, add it to e2e/infra/values.yaml, and keep fixture values aligned with stack.sh.
  • E2E scenarios are slow. Cover cross-service behavior here and leave logic that a unit test can reach to unit tests.

Debugging failures

Failures name the execution and the replies seen. Next, check e2e/stack.sh logs (CI dumps the same output), then the session_executions and session_events rows for the thread key, then the model server's recorded requests.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

コメント

ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。

まだコメントはありません。最初のコメントを書いてみませんか。

送信するとすぐに公開されます。メールアドレスや電話番号などの個人情報は書かないでください。URL は 2 つまでです。

0 / 1000 文字

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

同じリポジトリのスキル

Investigate reported auth, credential, permission, API proxy, 401, 403, 503, OAuth, token, or secret-resolution failures by querying VictoriaLogs first. Use when a user says an integration auth failed, a tool got unauthorized/forbidden/service unavailable, an api-proxy request failed, or asks why credentials/secrets are not working.

日本語の概要は準備中です。原文の説明を表示しています。

paradigmxyz/centaur1,4052026年10月26日 更新

centaur

無料

Use an authenticated Centaur MCP deployment to discover and call team-approved tools. Use when a task requires Centaur, its tool catalog, or the user's Centaur identity and permissions.

日本語の概要は準備中です。原文の説明を表示しています。

paradigmxyz/centaur1,4052026年10月26日 更新

Change Centaur Console permissions with `centaur-console admin`. Use when a Console admin asks to create a principal for a Slack channel, user, or workflow, to create or edit a static or Postgres DSN secret (for example "make a pg dsn secret like X but with role Y"), or to give or remove a Slack channel's or user's access to a tool, secret, role, Slack channel, repo cache, observability, sessions, or workflows, or to allow or remove a Slack Connect workspace. Examples include \"create a principal for #channel\", \"give #channel access to github\" and \"let this channel read #other-channel\". Includes hard guardrails against sharing personal (DM) credentials.

日本語の概要は準備中です。原文の説明を表示しています。

paradigmxyz/centaur1,4052026年10月26日 更新

Investigate Centaur runtime behavior with VictoriaLogs (`vlogs`) and VictoriaMetrics (`vmetrics`). Use when a user reports something broken or stalled, a workflow, alert, or channel post never populated, asks to check code for issues, or needs thread, execution, sandbox, tool-call, service-health, or deploy evidence.

日本語の概要は準備中です。原文の説明を表示しています。

paradigmxyz/centaur1,4052026年10月26日 更新

Use Centaur's indexed company context and scoped read-only SQL together with direct Slack, Linear, Google Docs, Drive, Calendar, or Granola searches when answering internal company-history, prior-decision, project-context, meeting-context, roadmap/status, or cross-source memory questions. Indexed context includes Slack channels, user-visible Slack DMs, Google Docs, Google Calendar, Linear, and user-visible Granola notes. Use for questions like what was discussed, decided, planned, mentioned, or documented internally, especially when the user did not name one exact source.

日本語の概要は準備中です。原文の説明を表示しています。

paradigmxyz/centaur1,4052026年10月26日 更新

Scaffold and build new tool integrations in tools/. Use when asked to create a new tool, add an API integration, or build a new client for an external service.

日本語の概要は準備中です。原文の説明を表示しています。

paradigmxyz/centaur1,4052026年10月26日 更新

paradigmxyz のスキルをすべて見る

このスキルの問題を報告する