chore: import upstream snapshot with attribution
Lint and Format Check / lint-and-format (push) Failing after 0s
Check Migrations / Check for duplicate migration numbers (push) Failing after 1s
CI Pre-merge Check / CI Pre-merge Check (push) Failing after 2m17s

This commit is contained in:
wehub-resource-sync
2026-07-13 12:23:40 +08:00
commit 3a28426bf4
1399 changed files with 257375 additions and 0 deletions
@@ -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`.