chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
# E2E Testing Skill Implementation Plan
|
||||
|
||||
> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
|
||||
|
||||
**Goal:** Add an `e2e-testing` child skill under `insforge-dev` so InsForge agents run the deterministic cross-repo E2E gate before submitting OSS PRs.
|
||||
|
||||
**Architecture:** Implement the workflow as a new child `SKILL.md` mirrored across `.agents`, `.codex`, and `.claude`. Add a parent `insforge-dev` pointer in each surface so agents know to invoke the child skill during the pre-PR phase.
|
||||
|
||||
**Tech Stack:** Markdown skill files, YAML front matter, GitHub CLI workflow commands, existing InsForge and `agent-e2e` GitHub Actions workflows.
|
||||
|
||||
---
|
||||
|
||||
## Task 1: Add The `e2e-testing` Child Skill
|
||||
|
||||
**Files:**
|
||||
- Create: `.agents/skills/insforge-dev/e2e-testing/SKILL.md`
|
||||
- Create: `.codex/skills/insforge-dev/e2e-testing/SKILL.md`
|
||||
- Create: `.claude/skills/insforge-dev/e2e-testing/SKILL.md`
|
||||
|
||||
- [ ] **Step 1: Create the skill content**
|
||||
|
||||
Use the same content in all three files:
|
||||
|
||||
```markdown
|
||||
---
|
||||
name: e2e-testing
|
||||
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.
|
||||
---
|
||||
|
||||
# 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.
|
||||
```
|
||||
|
||||
- [ ] **Step 2: Include exact workflow instructions**
|
||||
|
||||
The body must cover package-version tag calculation, image build workflow dispatch, deterministic fixture dispatch, when to update `agent-e2e`, pass/fail triage, and the rule to ignore the support-desk workflow.
|
||||
|
||||
## Task 2: Link The Child Skill From `insforge-dev`
|
||||
|
||||
**Files:**
|
||||
- Modify: `.agents/skills/insforge-dev/SKILL.md`
|
||||
- Modify: `.codex/skills/insforge-dev/SKILL.md`
|
||||
- Modify: `.claude/skills/insforge-dev/SKILL.md`
|
||||
|
||||
- [ ] **Step 1: Add `e2e-testing` to the child skill list**
|
||||
|
||||
Add `e2e-testing` beside the existing child skills.
|
||||
|
||||
- [ ] **Step 2: Add pre-PR invocation text**
|
||||
|
||||
Add a short pre-PR rule: after local checks pass and before opening, updating, or submitting an OSS PR, use `e2e-testing` to run the deterministic cross-repo gate.
|
||||
|
||||
## Task 3: Validate The Skill Markdown
|
||||
|
||||
**Files:**
|
||||
- Inspect all changed skill files and the design/plan docs.
|
||||
|
||||
- [ ] **Step 1: Check front matter and trigger text**
|
||||
|
||||
Run:
|
||||
|
||||
```bash
|
||||
sed -n '1,220p' .agents/skills/insforge-dev/e2e-testing/SKILL.md
|
||||
sed -n '1,140p' .agents/skills/insforge-dev/SKILL.md
|
||||
sed -n '1,140p' .codex/skills/insforge-dev/SKILL.md
|
||||
sed -n '1,140p' .claude/skills/insforge-dev/SKILL.md
|
||||
diff -u .agents/skills/insforge-dev/e2e-testing/SKILL.md .codex/skills/insforge-dev/e2e-testing/SKILL.md
|
||||
diff -u .agents/skills/insforge-dev/e2e-testing/SKILL.md .claude/skills/insforge-dev/e2e-testing/SKILL.md
|
||||
scripts/sync-skills.sh --check
|
||||
```
|
||||
|
||||
Expected: the child skill has valid YAML front matter, the parent references `e2e-testing`, and mirrored child skills are identical.
|
||||
|
||||
- [ ] **Step 2: Check git diff**
|
||||
|
||||
Run:
|
||||
|
||||
```bash
|
||||
git diff -- .agents/skills/insforge-dev .codex/skills/insforge-dev .claude/skills/insforge-dev docs/superpowers
|
||||
```
|
||||
|
||||
Expected: only the new design/plan docs, the new child skill files, and the parent skill references changed.
|
||||
@@ -0,0 +1,45 @@
|
||||
# E2E Testing Skill Design
|
||||
|
||||
## Goal
|
||||
|
||||
Add an `e2e-testing` child skill under `insforge-dev` that agents use after finishing an InsForge OSS change and before opening, updating, or submitting the InsForge PR. The skill makes the deterministic cross-repo E2E gate explicit and repeatable.
|
||||
|
||||
## Placement
|
||||
|
||||
Create the skill under the existing InsForge repo skill surfaces:
|
||||
|
||||
- `.agents/skills/insforge-dev/e2e-testing/SKILL.md`
|
||||
- `.codex/skills/insforge-dev/e2e-testing/SKILL.md`
|
||||
- `.claude/skills/insforge-dev/e2e-testing/SKILL.md`
|
||||
|
||||
Update the parent `insforge-dev` skill in each surface so agents invoke `e2e-testing` during the pre-PR flow.
|
||||
|
||||
## Workflow
|
||||
|
||||
The skill should instruct agents to:
|
||||
|
||||
1. Finish local implementation and the existing InsForge pre-PR checks first.
|
||||
2. Read the root InsForge `package.json` version and build a test tag by incrementing only the patch number:
|
||||
- `2.2.3` becomes `v2.2.4-<feature-or-issue-slug>`.
|
||||
- Ignore higher existing test tags when calculating the base version.
|
||||
3. Sanitize the feature or issue slug to lowercase alphanumeric words separated by hyphens.
|
||||
4. Dispatch InsForge's `Build and Push Docker Image` workflow with `test_tag=<tag>`.
|
||||
5. Wait for the image workflow to complete successfully before starting E2E.
|
||||
6. Inspect the InsForge change and decide whether deterministic fixture coverage in the remote `InsForge/agent-e2e` repo must change.
|
||||
7. If no fixture change is needed, dispatch `Deterministic Fixture E2E` from `agent-e2e` main with `insforge_tag=<tag>`.
|
||||
8. If fixture coverage must change, create or use a local checkout of the remote `InsForge/agent-e2e` repo, branch from `origin/main`, update validators/fixtures/docs, validate locally where practical, open an `agent-e2e` PR, then dispatch `Deterministic Fixture E2E` from that branch with `insforge_tag=<tag>`.
|
||||
9. Wait for the deterministic workflow result.
|
||||
10. If it passes, proceed with the InsForge OSS PR.
|
||||
11. If it fails, inspect logs and artifacts, decide whether the failure belongs to the InsForge implementation, the `agent-e2e` fixture update, transient infrastructure, or an unrelated existing failure, then fix the correct branch or rerun with evidence.
|
||||
|
||||
The skill must ignore the `Support Desk Agent E2E (Exploratory)` workflow. It is not part of this gate.
|
||||
|
||||
## Boundaries
|
||||
|
||||
The skill should not replace local InsForge unit, lint, typecheck, or build validation. It is an additional release-quality gate for OSS PR submission.
|
||||
|
||||
The skill should not create or edit a local `agent-e2e` checkout unless the InsForge change affects behavior that deterministic fixture coverage should assert.
|
||||
|
||||
## Validation
|
||||
|
||||
Validate the new skill by checking that each copied `SKILL.md` has valid front matter and that the parent `insforge-dev` skill references the child skill consistently across `.agents`, `.codex`, and `.claude`.
|
||||
Reference in New Issue
Block a user