Web Application Testing
anthropics/skills
Tests local web applications with Python Playwright scripts, checking frontend behavior, capturing screenshots and reading browser console logs.
A skill your agent uses to bring a project into the DAE methodology, or to check an onboarded project for gaps.
$ npx skills add swingerman/engineer --skill onboard -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install swingerman/engineer onboard --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/swingerman/engineer.git skills-src && mkdir -p .claude/skills && cp -r skills-src/engineer/skills/onboard .claude/skills/onboard && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "onboard" agent skill from https://github.com/swingerman/engineer/tree/master/engineer/skills/onboard into .claude/skills/onboard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "onboard", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/swingerman/engineer/tree/master/engineer/skills/onboardType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add swingerman/engineer --skill onboard -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install swingerman/engineer onboard --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/swingerman/engineer.git skills-src && mkdir -p .agents/skills && cp -r skills-src/engineer/skills/onboard .agents/skills/onboard && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "onboard" agent skill from https://github.com/swingerman/engineer/tree/master/engineer/skills/onboard into .agents/skills/onboard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "onboard", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add swingerman/engineer --skill onboard -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install swingerman/engineer onboard --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/swingerman/engineer.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/engineer/skills/onboard .cursor/skills/onboard && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "onboard" agent skill from https://github.com/swingerman/engineer/tree/master/engineer/skills/onboard into .cursor/skills/onboard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "onboard", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/swingerman/engineer.git --path engineer/skills/onboard--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add swingerman/engineer --skill onboard -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install swingerman/engineer onboard --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/swingerman/engineer.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/engineer/skills/onboard .gemini/skills/onboard && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "onboard" agent skill from https://github.com/swingerman/engineer/tree/master/engineer/skills/onboard into .gemini/skills/onboard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "onboard", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install swingerman/engineer onboardInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add swingerman/engineer --skill onboard -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/swingerman/engineer.git skills-src && mkdir -p .github/skills && cp -r skills-src/engineer/skills/onboard .github/skills/onboard && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "onboard" agent skill from https://github.com/swingerman/engineer/tree/master/engineer/skills/onboard into .github/skills/onboard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "onboard", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add swingerman/engineer --skill onboard -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install swingerman/engineer onboard --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/swingerman/engineer.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/engineer/skills/onboard .opencode/skills/onboard && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "onboard" agent skill from https://github.com/swingerman/engineer/tree/master/engineer/skills/onboard into .opencode/skills/onboard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "onboard", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
onboardA skill your agent uses to bring a project into the DAE methodology, or to check an onboarded project for gaps.
Onboard is an agent skill from swingerman/engineer. Use to bring a project into the DAE methodology, or to check an onboarded project for gaps. Triggers — "/engineer.onboard", "onboard this project", "set up DAE here", "adopt the methodology", or when a DAE skill fails because no manifest exists.
Its SKILL.md is about 5.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Testing & QA. The repository describes itself as: Disciplined Agentic Engineering — a methodology kit for Claude Code: acceptance-test-first specs, explicit checkpoints, and autonomy you can actually leave running. The engineer… The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 32947eb. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitfirebasenpmmakeFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
notion.soFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Onboard loads about 5.5k tokens when it runs. Until then it costs about 63 tokens; SKILL.md has 2,780 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
a checkout via a mount (a `THEME_PATH`/`.env` pointer, a bind-mount, a symlink), record how to point it at a **worktreeAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from swingerman/engineer at commit 32947eb, republished under its MIT licence (© swingerman). 2,780 words, ~5,469 tokens.
.claude/skills/onboard/SKILL.md (or your agent's skills folder).Checkpoint 0 — the DAE adoption ceremony. Establishes the charter, manifest, storage layout, and tracker. Project-scope, run once. Every other DAE skill depends on what it produces.
The goal. Onboarding a project to DAE succeeds when there is a clear path to full ATDD coverage of every feature — existing and new. A new feature is born covered by going through the pipeline. An existing feature is covered retroactively.
Onboarding is discovery and goal-setting — not the ATDD adoption itself. It discovers what's there (documented and undocumented), triages it by importance, assigns each feature a status, and produces a consolidation backlog. Bringing any one feature to full ATDD coverage is a follow-up task per feature — bounded, automatable, and a good candidate for remote-agent dispatch. Onboarding sets the path; it does not walk it.
A feature is fully ATDD-covered when its folder has feature.md, acs.md, spec.md (+ .build/spec.json IR), and generated acceptance tests that pass against the code.
.engineer/manifest.yml → full onboard (Steps 1–11)Not for: starting a feature (discuss / feature-init, after onboard); changing an existing charter (edit it directly, PR'd).
Onboarding is a ceremony, not a mechanical scaffold. Three of its outputs are design decisions reserved for the human — the agent drafts, the human decides:
Pre-filling from an existing codebase is encouraged. Rubber-stamping is not. Onboarding does NOT complete until the human has explicitly signed off on the charter and chosen the tracker and roadmap host — exactly as plan does for architecture (agent proposes, human confirms before proceeding). If the human is not available to decide, stop and emit a handoff with human_action_needed: decision — do not auto-decide and move on.
Before the steps below, create one TodoWrite todo per workflow step (the full
list up front, as a roadmap) — see
${CLAUDE_PLUGIN_ROOT}/references/progress-indicator.md, Indicator 2. onboard
is project-scope and has no feature folder, so it does not show the pipeline
breadcrumb.
methodology_root (and repos[] for multi-repo).LSP probe. Walk the repo for language signals (file extensions; package files: requirements.txt, pyproject.toml, package.json, Cargo.toml, go.mod, pom.xml, *.csproj, …). Aggregate primary languages. Inspect the agent's available tool list for an LSP capability (per ${CLAUDE_PLUGIN_ROOT}/references/code-lookup.md). Report per-language: LSP backing reachable? For absent ones, suggest the standard install (pyright, gopls, typescript-language-server, rust-analyzer, etc.). Inform-only — never blocks. Record the per-language map in manifest.validation.lsp.servers (languages the user skips are omitted; the fallback ladder handles them).
CLI probe. Walk the repo for tooling signals → likely CLIs (gh, aws, gcloud, az, kubectl, helm, terraform, docker, …) per ${CLAUDE_PLUGIN_ROOT}/references/cli-probe.md. which-check each candidate. Report two lists: available (found on PATH) and suggested (project signals indicate it'd be useful but it's missing — surface the install command from the reference). Record both in manifest.validation.clis.{available, suggested}. Inform-only — never blocks; the human installs. Don't suggest CLIs without project signals (no aws smell → don't ask about aws). The CLI probe runs before the environments interview because the available CLIs can help with that next step.
Environments interview (all optional, batched in one AskUserQuestion): staging URL + deploy process; prod URL + deploy process + monitoring dashboards + alerting; feature-flag tool (launchdarkly | unleash | flagsmith | growthbook | other) + rollout policy. Record in manifest.validation.{staging, prod, feature_flags}. "Not yet" / "n/a" is a valid answer that omits the field. Where a relevant CLI from the probe is available, the agent should ask (consent-gated) whether to use it to discover or confirm env info — gh for deploy workflows, gcloud for GCP envs, kubectl for namespaces, etc. — rather than asking the human to type everything. Capture what actually ships, not a prose summary: read the real deploy config (deploy.yaml, the CI release job) and record the precise model — which artifact ships on which trigger (e.g. "ships master's latest build regardless of the release tag"). An inaccurate deploy summary once nearly shipped untested hotfix code. If the project has no staging, also record a safe-deploy recipe in manifest.validation.prod: verify the exact artifact/commit that will ship before shipping (cherry-pick or build-and-inspect) — there's no staging to catch a wrong artifact.
Remote-agent readiness. Probe whether the project can delegate checkpoints to cloud Claude agents (vs. local subagents only):
git remote get-url origin — is the repo on a clonable host (github.com / a connected GHES)? Scan the repo's .mcp.json for type: stdio servers — a project-wide cloud blocker (stdio MCPs don't exist in the cloud VM), so flag it. These mirror the per-feature dae_delegable.py gate./web-setup); create a cloud environment at claude.ai/code. Optional: install the Claude GitHub App on the repo (for PR/webhook triggers); create a routine (for RemoteTrigger-fired async/scheduled work — there is no create API, only the claude.ai UI).manifest.remote: ready: <true|false> (human confirms the one-time setup is done), channel: <isolation-remote | routine | none> (primary cloud vehicle; default isolation-remote — it needs no pre-created routine), stdio_mcp_blocker: <true|false>, and free-text notes. Inform-only — never blocks onboarding; when ready is false the dispatch router simply stays local (see references/handoff-dispatch.md).Autonomy proposal for Step 3's charter draft, based on what was found:
The proposal is a recommendation — the human signs off (or overrides) at Step 3.
Probe for project infrastructure. Before drafting the manifest, scan the repo for declarable infra dependencies and propose entries the human can accept/edit:
| Signal in repo | Suggested infra entry |
|---|---|
firebase.json present | One entry per emulator group (firebase emulators:start --only <group>), health probe on the documented port (auth: 9099, firestore: 8080, functions: 5001) |
docker-compose.yml / compose.yml | One entry per published service, health probe on the published port |
package.json scripts matching dev*, start:dev, emulator*, serve* | Entry using npm run <script>, with health probe on the documented port |
Makefile targets matching dev, up, start-*, emulator* | Entry using make <target> |
chromedriver-related deps in package.json / requirements.txt / Gemfile | Entry for chromedriver with TCP probe on 9515 |
Present each draft entry to the human for confirmation, then add the approved entries to the manifest's infra: section per the schema (see engineer/references/handoff-dispatch.md + the schema in engineer/scripts/dae_resolve.py:_validate_infra).
Discovery is best-effort. If a project's infra doesn't fit the patterns above, ask the human to declare it manually — the declaration discipline is what makes downstream skills reliable.
Capture infra quirks. After the infra entries are confirmed, batch one AskUserQuestion covering project-level runtime quirks that downstream skills need to know but can't discover from files:
| Quirk | Why it matters |
|---|---|
runtime_pins (e.g. java: 21, node: 20.x) | Wrong version → silent runtime failures (nexthq: Java 21 was rediscovered every session). |
port_map_file (path or "none") | If the user keeps a port-allocation file (e.g. ~/.<project>-ports.md), record its path so fix/atdd consult it before booting (nexthq). |
framework_constraints (free-text list) | Things like "Flutter web has no hot-reload", "Apache opcache requires cold restart after schema changes" — surface to the agent before it loops on confusing symptoms (mmc Apache, nexthq Flutter). |
recovery_commands (map of symptom: command) | Known fixes for known hangs (e.g. coresimulator_wedged: killall -9 com.apple.CoreSimulator.CoreSimulatorService). |
worktree_preview (str, or omit) | If the running app is served from a checkout via a mount (a THEME_PATH/.env pointer, a bind-mount, a symlink), record how to point it at a worktree/branch — otherwise previewing a DAE worktree forces a costly live mount-switch every design chunk (modugon THEME_PATH). Omit when the worktree is served directly. |
Write the answers into manifest.infra_quirks — a project-level block consulted by engineer:fix Step 4, atdd:atdd test runs, and engineer:onboard gap-check. dae_resolve.py validates schema. Quirks are advisory metadata, not health probes — they exist so the next agent doesn't rediscover the same friction.
CHARTER.md's 7 mandatory sections (methodology, architecture, conventions, scope, agent team, quality stance, autonomy stance). For an existing codebase, pre-fill what's inferable from the repo. Then present it and get the human's explicit confirmation — section by section for the judgment-heavy ones (scope, quality stance, autonomy stance + path overrides). Do not proceed to Step 4 until the charter is signed off..engineer/manifest.yml (paths, roadmap/tracker, team, repos, quality thresholds, mutation, verification, autonomy, remote, agentic_summary). Optional introversion: block tunes the harden-time vacuous-test scan (backend: = a test-introversion analyzer command like deintroverter; skip: true to opt out) — see engineer/scripts/dae_introvert.py. Optional harden: block: required: true makes every check the CP8 refinement-advisor recommends mandatory (the human can add checks but not drop them; default false). Who picks the checks is not configured here: it follows effective autonomy, and at high the advisor decides alone. mutation.default_per_feature is retired; dae_resolve warns if it is still set. quality_thresholds.mutation_score_min is a percentage, 0–100.notion | github-projects | linear | jira | local. notion: requires a connected Notion MCP — use it to create the tracker database (the TrackedFeature schema) or validate an existing one; DAE stores no API key (the MCP owns auth). local: feature folders are the tracker. Others: reserved — emit "not yet implemented". Never silently default to local to keep things moving. Pre-flight the chosen host before writing it into the manifest — confirm auth + connectivity + plan-tier (e.g. Notion's data/query tools need a Business plan; a Jira-only Atlassian grant 404s on Confluence) per ${CLAUDE_PLUGIN_ROOT}/references/driver-preflight.md; fall back rather than commit a host DAE can't actually drive. When creating or validating the schema, include a Type column (bug | idea | task, optional) and an Inbox value in the status options, and tell the human the capture flow: add a task directly to the tracker as a row with no Slug (and optionally Status: Inbox) and next will triage it — see Tracker-as-intake in references/tracker.md. See references/tracker.md.
5b. Roadmap decision — the strategic feature-list altitude, chosen independently of the tracker (see references/roadmap.md). A human design decision.roadmap.type: none and tell the human exactly what to connect to enable it later. No half-support. Beyond reachability, pre-flight auth + plan-tier of the specific product per ${CLAUDE_PLUGIN_ROOT}/references/driver-preflight.md (Notion data tools need Business; a Jira-only grant 404s on Confluence). The Jira driver is reserved/unimplemented — a Jira source of truth falls back to local until it's built; that's a declared limitation, not a bug.roadmap.type: local | notion | confluence | gdoc | github-projects | other | none. local (a managed block in .engineer/roadmap.md) is always reachable and the greenfield default — don't force a host prompt on an empty project. notion needs the Notion MCP. confluence | gdoc | github-projects are onboardable iff their MCP/CLI is present (else none). other requires platform: + url: + access: mcp|cli|api in the manifest. Write the chosen block to manifest.roadmap.references/roadmap.md):ROADMAP.md / docs/roadmap.md / a ## Roadmap README section; a Notion page or DB named "Roadmap"; GitHub milestones / Projects / epic-labelled issues; an existing manifest.roadmap ref.RoadmapItems (human confirms/edits), write to the chosen host; cross-host is fine; join items to discovered features so shipped/in-progress work back-links its feature_slug instead of re-listing as "planned"; leave the source in place as migrated_from (never delete). Create (seed from the Step 8 triage) if nothing is found — for local, dae_roadmap.py init then upsert the seeds.features/, empty .engineer/discussions.log; ensure .build/ is gitignored.specs/NNN-slug/, feature branches, docs/specs/*.md, GitHub Issues used as specs, informal README specs.feature.md / acs.md / spec.md / acceptance tests exist — usually none). Greenfield project → discovery is empty; skip to Step 11.done shipped / in-progress / ready spec-only / parked dormant). Triage order drives the consolidation backlog's priority and which features get formalized first. Importance is a human judgement — surface a proposed ranking, let the human reorder..engineer/consolidation.md: the inventory as a coverage table (one row per feature, a column per coverage artifact) plus consolidation tasks in triage-priority order. Goal stated at the top: every row all-✅. Each task — "bring feature X to full ATDD coverage" — is bounded and dispatchable to a remote agent; note the suggested execution mode per task.TrackedFeature row for every discovered feature (driver per references/tracker.md), not just the formalized ones, so the tracker shows the whole consolidation effort at a glance from day one. status from triage; checkpoint blank for features not yet in the DAE pipeline (consolidation.md tracks their coverage until they enter it).feature-init (onboarding-intake mode) on each now, so the project leaves onboarding with momentum. The rest stay as backlog tasks — do NOT formalize all of them in one onboard run.recommended_next points at the top consolidation-backlog task.Migration is not done inside onboard. Moving specs/NNN-slug/ → features/NNN-slug/, backfilling acs.md/spec.md, and generating acceptance tests are consolidation tasks — worked down feature by feature after onboarding, via the pipeline (feature-init → discover-acs reverse-engineer mode → atdd:atdd → pipeline generation), and dispatchable to remote agents. onboard only discovers, triages, and plans.
Manifest exists → don't re-onboard. Validate: CHARTER.md has all 7 sections; manifest.yml schema-valid; features/ numbering monotonic; tracker config resolves; roadmap config resolves and its host is still reachable (MCP/CLI/API present; if it went unreachable, flag it — next will be running blind to the roadmap); charter roles == manifest.team.default_roles. If a new external roadmap source has appeared since onboarding (e.g. a ROADMAP.md was added), surface it as a re-migration offer rather than acting. Report gaps with suggested fixes (mirrors consistency-check --project).
Strictly read-only. Forbidden:
git checkout, git pull, git fetch, git merge, git rebase, git branch -d/-D — no git state mutations of any kind.git stash — even apparently-safe stashing changes working-tree state./tmp (no charter edits, no .engineer/ writes, no feature-folder touches).If gap-check would benefit from a sync (e.g. the user is on a feature branch with merged remote), surface the suggestion in the report and stop. The caller invokes /engineer.post-merge or the manual git commands themselves. Do not infer "the user wants a sync" from "the user typed /engineer.onboard".
Full-onboard mutates the repo: writes CHARTER.md, .engineer/, features/. It must start from a clean state:
main/master (or the repo's default branch — read from git symbolic-ref refs/remotes/origin/HEAD).git status --porcelain empty).If those conditions don't hold, stop and surface the situation — never auto-checkout, never auto-stash. Suggested wording: "Onboarding writes new files into the repo root. You're on <branch> with <N> unpushed commits — confirm you want to onboard here, or switch to main yourself first."
Emit per ${CLAUDE_PLUGIN_ROOT}/references/handoff-summary.md. onboard is project-scope — its handoff goes to .engineer/handoffs/ (no feature folder exists). checkpoint: 0; artifacts: CHARTER.md, .engineer/manifest.yml. recommended_next: "per feature, /engineer.prime-context then /engineer.discover-acs; new ideas, /engineer.discuss".
If onboarding stopped because the human wasn't available to sign off the charter or choose the tracker, emit status: interrupted with human_action_needed: decision — naming exactly which decisions are outstanding.
references/tracker.md — the tracker drivers, setup, the Notion mappingreferences/roadmap.md — the roadmap drivers, the reachability precondition, link/migrate/createengineer/scripts/dae_infra.py — what the manifest infra entries feed© swingerman, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in engineer/skills/onboard of swingerman/engineer.
Open the folder on GitHubat commit 32947eb
Onboard next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Onboard this skillswingerman/engineer | 154 | — | ~5.5k | Automated safety check: Notes | MIT | |
| Web Application Testinganthropics/skills | 180k | 51 repos | ~966 | Automated safety check: Pass | Apache-2.0 | |
| Diagnosing Bugsfossasia/eventyay-interpretation | 1.6k | 32 repos | ~2.1k | Automated safety check: Pass | Apache-2.0 | |
| TDDpietheinstrengholt/rssmonster | 564 | 30 repos | ~906 | Automated safety check: Pass | MIT | |
| TDD WorkflowhellangleZ/burn-in-cceverywhere-ralph | 112 | 11 repos | ~2.4k | Automated safety check: Pass | None | |
| TDDsanity-io/sanity | 6.4k | 20 repos | ~1k | Automated safety check: Pass | MIT |
anthropics/skills
Tests local web applications with Python Playwright scripts, checking frontend behavior, capturing screenshots and reading browser console logs.
fossasia/eventyay-interpretation
Diagnosis loop for hard bugs and performance regressions. An agent skill from fossasia/eventyay-interpretation.
pietheinstrengholt/rssmonster
Test-driven development. An agent skill from pietheinstrengholt/rssmonster.
hellangleZ/burn-in-cceverywhere-ralph
A skill your agent uses when writing new features, fixing bugs, or refactoring code.
sanity-io/sanity
Test-driven development with red-green-refactor loop. An agent skill from sanity-io/sanity.
Ibrahim-3d/orchestrator-supaconductor
A skill your agent uses when working with Conductor's context-driven development methodology, managing project context artifacts, or understanding the relationship between product.md, tech-stack.md…
swingerman/engineer
A skill your agent uses to produce a risk-based refactor + test plan for recently-changed code on a diff/branch/PR by computing CRAP (complexity × untested) on changed methods.
swingerman/engineer
A skill your agent uses to add a third validation layer to the ATDD workflow — after acceptance tests verify WHAT and unit tests verify HOW, mutation testing verifies the tests actually catch bugs.
swingerman/engineer
A skill your agent uses to drive a bug fix from first report through close, with a "why didn't we catch it?" loop at the end.
swingerman/engineer
A skill your agent uses to drive feature work through the Acceptance Test Driven Development workflow — Given/When/Then specs before code, a project-specific test pipeline, and two parallel test…
swingerman/engineer
Use after a feature passes Light Verify (CP7), to prove the tests actually catch bugs and, where the code warrants it, to formally check its invariants — Checkpoint 8.
swingerman/engineer
Use at the start of a work session, or any time the question is "what should I pick up now" across the whole project.
Categories
A skill your agent uses to bring a project into the DAE methodology, or to check an onboarded project for gaps. Onboard is an agent skill from swingerman/engineer. Use to bring a project into the DAE methodology, or to check an onboarded project for gaps.
Onboard fits situations like: bring a project into the DAE methodology; check an onboarded project for gaps; — /engineer.onboard; onboard this project.
Run `npx skills add swingerman/engineer --skill onboard -a claude-code`. Or copy the skill folder (engineer/skills/onboard in swingerman/engineer) into .claude/skills/onboard in your project. Claude Code loads it when a task matches its description.
Run `npx skills add swingerman/engineer --skill onboard -a codex`. Or copy the skill folder (engineer/skills/onboard in swingerman/engineer) into .agents/skills/onboard in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add swingerman/engineer --skill onboard -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/onboard, .gemini/skills/onboard, .github/skills/onboard and .opencode/skills/onboard in your project.
Going by SKILL.md and its folder, Onboard needs the command-line tools its instructions call (git, firebase, npm and make). Our summary lists: Docker.
SKILL.md names 1 domain. As links in the text: notion.so. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Onboard is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.5k tokens (SKILL.md is roughly 22k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Onboard: Web Application Testing (anthropics/skills, 180k stars), Diagnosing Bugs (fossasia/eventyay-interpretation, 1.6k stars), TDD (pietheinstrengholt/rssmonster, 564 stars) and TDD Workflow (hellangleZ/burn-in-cceverywhere-ralph, 112 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
swingerman (a GitHub user) maintains it in swingerman/engineer, which has 154 GitHub stars. The repository holds 27 skills in this directory. The repository was last updated on September 23, 2026.
Source: swingerman/engineer on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.