testing-e2e
47 / 100 · High risk
Only if you trust the author. Some of what it can do is expected: a coding skill usually runs build and test commands.
By yonatangross/orchestkit (GitHub) · coding · 301 stars · scanned at commit 0d38e66
Playwright E2E patterns: page objects, visual regression, axe-core accessibility, CI. Use when writing E2E tests or setting up Playwright.
Works with any agent that supports SKILL.md skills.
What this skill can do
Downloads and installs other software
The author does not mention this.
Found in 40 places.
- plugins/ork/skills/testing-e2e/SKILL.md, line 138
npx playwright init-agents --loop=claude # For Claude Code - plugins/ork/skills/testing-e2e/SKILL.md, line 148
- `browser.bind()` / `npx playwright-cli attach` — attach to a running browser from an MCP client mid-test; useful for Healer to inspect a hung or failing CI ru - plugins/ork/skills/testing-e2e/checklists/e2e-testing-checklist.md, line 18
- [ ] Install browser binaries (`npx playwright install`)
Show 17 more
- plugins/ork/skills/testing-e2e/examples/orchestkit-e2e-tests.md, line 579
npx playwright install - plugins/ork/skills/testing-e2e/examples/orchestkit-e2e-tests.md, line 582
npx playwright test - plugins/ork/skills/testing-e2e/examples/orchestkit-e2e-tests.md, line 585
npx playwright test tests/e2e/analysis-flow.spec.ts - plugins/ork/skills/testing-e2e/examples/orchestkit-e2e-tests.md, line 588
npx playwright test --ui - plugins/ork/skills/testing-e2e/examples/orchestkit-e2e-tests.md, line 591
npx playwright test --headed - plugins/ork/skills/testing-e2e/examples/orchestkit-e2e-tests.md, line 594
npx playwright test --project=chromium - plugins/ork/skills/testing-e2e/examples/orchestkit-e2e-tests.md, line 597
npx playwright test --debug - plugins/ork/skills/testing-e2e/examples/orchestkit-e2e-tests.md, line 600
npx playwright show-report - plugins/ork/skills/testing-e2e/examples/orchestkit-e2e-tests.md, line 646
run: npx playwright install --with-deps - plugins/ork/skills/testing-e2e/examples/orchestkit-e2e-tests.md, line 662
run: npx playwright test - plugins/ork/skills/testing-e2e/references/ork-delta.md, line 24
`npx playwright init-agents --loop=claude`. - plugins/ork/skills/testing-e2e/references/playwright-setup.md, line 13
npx playwright install # Install browsers (Chromium, Firefox, WebKit) - plugins/ork/skills/testing-e2e/references/playwright-setup.md, line 24
"command": "npx", - plugins/ork/skills/testing-e2e/references/playwright-setup.md, line 39
npx playwright init-agents --loop=claude - plugins/ork/skills/testing-e2e/references/playwright-setup.md, line 118
npx playwright test # Run all tests - plugins/ork/skills/testing-e2e/references/playwright-setup.md, line 119
npx playwright test --ui # UI mode - plugins/ork/skills/testing-e2e/references/playwright-setup.md, line 120
npx playwright test --debug # Debug mode
and 20 more places
Runs commands on your computer
The author does not mention this. It runs automatically when the plugin is installed. Expected for a coding skill.
Found in 161 places.
- plugins/ork/skills/testing-e2e/SKILL.md, line 138
npx playwright init-agents --loop=claude # For Claude Code - plugins/ork/hooks/README.md, line 1466
(count unchanged at 171, 2026-09-22, sc47 F23/F24): `lifecycle/session-cleanup` gains a 14-day age cap on per-session event dirs. `bin/run-hook.mjs` appends one - plugins/ork/hooks/README.md, line 1478
(count unchanged at 172, 2026-09-04, #3917 FH-ready handler policy): no hook changed; a gate did. Claude Code is designing Function Hooks (anthropics/claude-cod
Show 17 more
- plugins/ork/hooks/README.md, line 1526
(count unchanged at 171, 2026-08-24, second entry): `instructions-loaded/debt-surfacer` became a reader instead of a scanner (#3708, sibling of #3705). It ran ` - plugins/ork/hooks/README.md, line 1556
(count unchanged, 2026-08-10): `posttool/bash/session-heartbeat-publisher` now tracks the persistent Bash shell's cwd, and `pretool/bash/git-validator`'s third - plugins/ork/hooks/README.md, line 1586
(count unchanged, 2026-07-24): pretool/bash network-egress-guard DENY tier is now QUOTE-AWARE (#3122). It scanned `normalizeSingle(raw)`, which strips quote cha - plugins/ork/hooks/bin/stop-uncommitted-check.mjs, line 23
import { execFileSync } from 'node:child_process'; - plugins/ork/hooks/bin/stop-uncommitted-check.mjs, line 83
const raw = execFileSync( - plugins/ork/hooks/dist/lifecycle.mjs, line 14
`)}catch{}}function Q(t,e,n,r){let o=pn(t,e);if(ft(o))try{let s=zr(o,"utf8");if(ut(s)===ut(n))return g(r,`Rules file ${e} unchanged, skipping write`),!1}catch{} - plugins/ork/hooks/dist/lifecycle.mjs, line 22
`)}catch{}Oo(t,e)}}import{existsSync as ip,readFileSync as cp}from"node:fs";function xn(){let t=U();if(!ip(t))return 0;try{let n=JSON.parse(cp(t,"utf-8")).tools - plugins/ork/hooks/dist/lifecycle.mjs, line 31
Run 'npm audit' or 'pip-audit' for full details.`;if(Tn(r,k),e.log("dependency-version-check",m),u>0||p>0)return O(k,t)}else Tn(r,"none"),e.log("dependency-vers - plugins/ork/hooks/dist/lifecycle.mjs, line 36
`).filter(Boolean).slice(-20),n=[];for(let r of e)try{n.push(JSON.parse(r))}catch{}return n}catch{return[]}}function Tf(t){let e=new Map,n=[];for(let r of t){if - plugins/ork/hooks/dist/lifecycle.mjs, line 50
`}function Od(){let t=process.env.CLAUDE_CONFIG_DIR||_e(_(),".claude");return _e(t,"rules")}function xd(t,e){let n=Kn(t);for(;Kn(n)!==n;){if(te(_e(n,".claude"," - plugins/ork/hooks/dist/lifecycle.mjs, line 67
`);return e.log(ot,`Merged ${n.length} messages from SessionEnd hooks`),{continue:!0,systemMessage:o}}var si=!1;function um(){si||(Pe(),si=!0)}async function ii - plugins/ork/hooks/dist/lifecycle.mjs, line 103
`)}`)}var ze=["ork","debt"].join("-"),Gh=String.raw`(?:\/\/|#|--|;|\/\*|\*)`,Jh=new RegExp(`${Gh}\\s*${ze}:\\s*(.+)`,"i"),dr=["bash","c","cc","cjs","cpp","cs"," - plugins/ork/hooks/dist/lifecycle.mjs, line 111
`);return e.log("post-compact-recovery",`Recovered context after compaction #${o.compactionCount} (${s.activeFiles?.length||0} files, ${s.activeTasks?.length||0 - plugins/ork/hooks/dist/lifecycle.mjs, line 121
Keep options to 2\u20134 to match picker affordances. Unset ORK_ASK_FALLBACK to restore picker mode once CC ships an upstream fix.`;function Kc(t,e=d){return pr - plugins/ork/hooks/dist/lifecycle.mjs, line 122
`))r.startsWith("worktree ")&&n.add(br(r.slice(9).trim()));return n}catch{return null}}function Yc(t,e=0){if(e>Hk)return!1;let n;try{n=Sr(t)}catch{return!1}for( - plugins/ork/hooks/dist/lifecycle.mjs, line 126
`),e.log(m_,`Flagged dead analytics writer(s): ${o.map(s=>s.name).join(", ")}`),l())}import{execSync as nn}from"node:child_process";import{createHash as x_}from - plugins/ork/hooks/dist/notification.mjs, line 3
import{execFileSync as ee,spawn as ut}from"node:child_process";import{basename as ne}from"node:path";function s(){return{continue:!0,suppressOutput:!0}}function
and 141 more places
Sends data to these websites: example.com
This is disclosed by the author in the skill's SKILL.md or README. It runs automatically when the plugin is installed.
Found in 23 places.
- plugins/ork/skills/testing-e2e/rules/validation-end-to-end.md, line 20
const response = await fetch('/api/users') - plugins/ork/hooks/README.md, line 1510
(count unchanged at 175, 2026-08-30, #3322 sandbox posture): `pretool/bash/network-egress-guard` stands its ASK tier down when CC's own Bash sandbox is on with - plugins/ork/hooks/README.md, line 1530
(count unchanged at 171, 2026-08-22): `pretool/bash/network-egress-guard` false-positive fix (#3632). A quoted heredoc (`<<'SH' … SH`) writing a local script wa
Show 17 more
- plugins/ork/hooks/README.md, line 1548
(count unchanged, 2026-08-12): the compaction layer stopped reading fields nobody writes, and stopped writing a field CC reads as something else (#3321 claims 2 - plugins/ork/hooks/bin/telemetry-sync.mjs, line 88
const response = await fetch(url, { - plugins/ork/hooks/dist/lifecycle.mjs, line 21
`))}function So(t,e){if(!t)return!1;let n=le(e);return n?t.toLowerCase()===n.toLowerCase():!1}function Pl(){let t=null,e=process.env.ORK_HQ_TELEMETRY_URL;return - plugins/ork/hooks/dist/lifecycle.mjs, line 22
`)}catch{}Oo(t,e)}}import{existsSync as ip,readFileSync as cp}from"node:fs";function xn(){let t=U();if(!ip(t))return 0;try{let n=JSON.parse(cp(t,"utf-8")).tools - plugins/ork/hooks/dist/lifecycle.mjs, line 62
`,r=Ms();Og(r,n,"utf8").catch(()=>{g(Yn,"Failed to write telemetry event (non-blocking)")})}async function xe(){let t=Ms();try{let e=await Ls(t);if(e.size<=Ag)r - plugins/ork/hooks/dist/posttool.mjs, line 46
`))}function xo(e,t){if(!e)return!1;let n=ot(t);return n?e.toLowerCase()===n.toLowerCase():!1}function Ml(){let e=null,t=process.env.ORK_HQ_TELEMETRY_URL;return - plugins/ork/hooks/dist/posttool.mjs, line 101
`)}catch{}}function ms(e,t){let n=process.env[e];if(!n)return t;let r=parseFloat(n);return!Number.isFinite(r)||r<=0||r>=1?t:r}function Dm(){let e=Bn(),t=process - plugins/ork/hooks/dist/posttool.mjs, line 104
`,r=ws();rh(r,n,"utf8").catch(()=>{S(qn,"Failed to write telemetry event (non-blocking)")})}async function Yn(){let e=ws();try{let t=await Ts(e);if(t.size<=uh)r - plugins/ork/hooks/dist/posttool.mjs, line 112
`);break}return p()}function na(e,t){if(e===void 0||e===""||e==="*")return!0;if(/^[\w|-]+$/.test(e))return e.split("|").includes(t);try{return new RegExp(e).tes - plugins/ork/hooks/dist/pretool.mjs, line 68
`).filter(Boolean),i=Su(),s=Qr(o,e).length;if(e&&s>=i)return`Context7 session limit reached (${i} queries this session). Rely on already-fetched documentation o - plugins/ork/hooks/dist/pretool.mjs, line 70
`,{flag:"a"})}catch{}}var no=200,Xt=1e3,Vt=20,Cu=new Set(["person","project","technology","concept","tool","pattern","decision","preference","workflow","organiz - plugins/ork/hooks/dist/pretool.mjs, line 74
`))}function po(t,e){if(!t)return!1;let n=ne(e);return n?t.toLowerCase()===n.toLowerCase():!1}function ol(){let t=null,e=process.env.ORK_HQ_TELEMETRY_URL;return - plugins/ork/hooks/dist/pretool.mjs, line 145
`,r=ki();pf(r,n,"utf8").catch(()=>{m(In,"Failed to write telemetry event (non-blocking)")})}async function On(){let t=ki();try{let e=await mi(t);if(e.size<=kf)r - plugins/ork/hooks/dist/prompt.mjs, line 62
`;return Hs(t,r,"utf8"),!0}catch{return!1}}var qs="ORK_SESSION_IDENTITY_RATE_MAX",Xs="ORK_SESSION_IDENTITY_RATE_WINDOW_MS",Ys=5,ur=10*6e4;function Zs(){return p - plugins/ork/hooks/dist/prompt.mjs, line 69
`))}function ze(t,e,n){let r=0,o=(s,a,u)=>s.replace(a,()=>(r+=1,u)),i=Ve(typeof t=="string"?t:"");for(let s of bu)i=o(i,s,"[SECRET]");return i=o(i,xu,"[EMAIL]") - plugins/ork/hooks/dist/setup.mjs, line 13
`)}catch{}}function St(t,e,n,r){let o=kt(t,e);if(T(o))try{let i=Gt(o,"utf8");if(F(i)===F(n))return l(r,`Rules file ${e} unchanged, skipping write`),!1}catch{}re - plugins/ork/hooks/dist/skill.mjs, line 55
`)}catch{}return k()}import{existsSync as gs}from"node:fs";function cn(t,n=v){let e=typeof t.tool_input.file_path=="string"?t.tool_input.file_path:"",r=t.tool_i
and 3 more places
Reads your saved credentials, such as SSH keys or .env files
The author does not mention this. It runs automatically when the plugin is installed.
Found in 7 places.
- plugins/ork/settings.json, line 11
"Read(~/.aws/credentials)", - plugins/ork/settings.json, line 12
"Read(~/.ssh/**)", - plugins/ork/settings.json, line 13
"Read(~/.gnupg/**)",
Show 4 more
- plugins/ork/settings.json, line 14
"Read(~/.netrc)", - plugins/ork/settings.json, line 15
"Read(~/.npmrc)", - plugins/ork/hooks/README.md, line 1562
(218 -> 219, global 152 -> 153, 2026-08-09): added `pretool/read/credential-read-guard`, the first PreToolUse hook on the Read tool that can deny. `src/settings - plugins/ork/hooks/dist/lifecycle.mjs, line 22
`)}catch{}Oo(t,e)}}import{existsSync as ip,readFileSync as cp}from"node:fs";function xn(){let t=U();if(!ip(t))return 0;try{let n=JSON.parse(cp(t,"utf-8")).tools
Changes files outside its own folder
The author does not mention this. It runs automatically when the plugin is installed.
Found in 1 place.
- plugins/ork/hooks/README.md, line 752
3. Persist it: echo 'export ORCHESTKIT_HOOK_TOKEN=...' >> ~/.zshrc
Safer alternatives
Low-risk skills in the same category (coding) that look related. Check that one does what you need.
- 82 Low riske2e-testingdiegosouzapw/awesome-omni-skill · 66 stars
- 80 Low riskplaywright-testingevent4u-app/agent-config · 19 stars
- 82 Low riskconfigure-ux-testinglaurigates/claude-plugins · 60 stars
Other copies in this repository
yonatangross/orchestkit has 1 more folder with a skill named testing-e2e. This page shows the lowest-scoring copy.
- src/skills/testing-e2e 77/100 · Review before installing
Install
Paste this into your terminal. It downloads exactly the version we scanned, not whatever is newest.
if [ -e ~/.agents/skills/'testing-e2e' ] || [ -L ~/.agents/skills/'testing-e2e' ]; then echo 'A skill folder named testing-e2e already exists — not replacing it' >&2; false; else d=$(mktemp -d) && git clone --quiet --filter=blob:none --no-checkout 'https://github.com/yonatangross/orchestkit' "$d" && git -C "$d" checkout --quiet '0d38e66123f2a4a70737bfae758df796070f07df' -- 'plugins/ork/skills/testing-e2e' && mkdir -p ~/.agents/skills && cp -R "$d"/'plugins/ork/skills/testing-e2e' ~/.agents/skills/'testing-e2e' && rm -rf "$d"; fi
Codex reads ~/.agents/skills directly. For Claude Code, Cursor, Copilot, Gemini CLI, Antigravity or OpenCode, also link it. For Claude Code: ln -s ~/.agents/skills/'testing-e2e' ~/.claude/skills/'testing-e2e' (other agents: ~/.cursor/skills, ~/.copilot/skills, ~/.gemini/skills, ~/.gemini/config/skills, ~/.config/opencode/skills). Or install through the finder skill, which does both.
Badge for your README
The badge for yonatangross/orchestkit shows the score of its lowest-scoring skill.
[](https://zalavijaysinh.github.io/skilltrust/repos/yonatangross/orchestkit/)
Score history
| Date | Version | Score |
|---|---|---|
| 2026-11-10 | 0d38e66 | 47 |
| 2026-11-07 | caa5346 | 90 |