# E2e Testing

Use this skill when an InsForge maintainer has finished an OSS repo change and is ready...

- Repository: https://github.com/InsForge/InsForge (13274 stars)
- Category: Testing
- License: Apache-2.0
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add InsForge/InsForge --skill e2e-testing -g -a claude-code -y`
Codex: `npx skills add InsForge/InsForge --skill e2e-testing -g -a codex -y`
Cursor: `npx skills add InsForge/InsForge --skill e2e-testing -g -a cursor -y`
Gemini CLI: `npx skills add InsForge/InsForge --skill e2e-testing -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add InsForge/InsForge`

## Description

Use this skill when an InsForge maintainer has finished an OSS repo change and is ready to open, update, or submit the InsForge PR. Runs the release-quality deterministic E2E gate by building a package.json-derived InsForge test image tag, deciding whether sibling agent-e2e fixture coverage must change, dispatching the Deterministic Fixture E2E workflow, waiting for results, and triaging failures before PR submission.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# InsForge E2E Testing Gate

Use this skill after local implementation and normal InsForge pre-PR checks pass, and before opening, updating, or submitting the InsForge OSS PR.

This is an additional release-quality gate. It does not replace local `typecheck`, `lint`, `test`, or `build` validation from the parent `insforge-dev` skill.

## Repositories

- InsForge OSS repo: current workspace.
- E2E repo: remote GitHub repository `InsForge/agent-e2e`.

Use the remote `InsForge/agent-e2e` repository for workflow dispatch and read-only workflow checks. Do not rely on a developer-specific local checkout path. Create or use a local checkout only when the deterministic fixture tests must be edited.

## Build The Test Tag

1. Read the root InsForge `package.json` version.
2. Increment only the patch number.
3. Build a tag in this form:

```text
v<major>.<minor>.<patch+1>-<feature-or-issue-slug>
```

Example: root version `2.2.3` and feature `storage returning rls` becomes `v2.2.4-storage-returning-rls`.

Use the `package.json` version as the only source of truth for the base version. Ignore higher existing test tags when calculating the base version.

Slug rules:

- Prefer the issue key, PR topic, or branch topic.
- Lowercase all letters.
- Replace runs of non-alphanumeric characters with one hyphen.
- Trim leading and trailing hyphens.
- Keep it short enough to scan in GitHub Actions and image tags.

## Build The InsForge Image

Dispatch the InsForge `Build and Push Docker Image` workflow with the test tag:

```bash
gh workflow run "Build and Push Docker Image" --repo InsForge/InsForge --ref <insforge-feature-branch> -f test_tag=<test-tag>
```

Then wait for the matching run to complete:

```bash
gh run list --repo InsForge/InsForge --workflow "Build and Push Docker Image" --limit 10
gh run watch --repo InsForge/InsForge <run-id>
```

Do not start the cross-repo E2E workflow until the image build succeeds.

## Decide Whether `agent-e2e` Must Change

The rest: https://github.com/InsForge/InsForge/blob/HEAD/.agents/skills/insforge-dev/e2e-testing/SKILL.md
