[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6J40WXM59AY8KQA0FPYSSQM":3,"skill-same:01M6J40WXM59AY8KQA0FPYSSQM":73},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":40,"linkOnly":41,"markdownContent":42,"markdownBody":43,"frontMatter":44,"refName":47,"commitSha":48,"skillDirectory":49,"forksCount":14,"repositoryHtmlUrl":50,"repositoryHomepageUrl":6,"ownerHtmlUrl":51,"ownerBlogUrl":6,"ownerDescription":52,"updatedAt":53,"install":54,"resources":66},"01M6J40WXM59AY8KQA0FPYSSQM","skills",null,"Quick reference for every available skill in this repo — name, one-line\npurpose, triggers, usage examples — without having to open each\nindividual SKILL.md document.\nTriggers on: \"\u002Fskills\", \"list skills\", \"what skills do you have\",\n\"show all skills\", \"skill cheatsheet\", \"skills help\",\n\"show me the skills\", \"what can you do\".\nUsage:\n  \u002Fskills                           — Compact reference table for all skills\n  \u002Fskills \u003Cname>                    — Full detail for one skill (e.g. \u002Fskills explain)\n  \u002Fskills --search \"\u003Cterm>\"         — Filter by name\u002Fdescription match","Lbstrydom\u002Fclaude-engineering-skills","Lbstrydom","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F77991486?v=4","01M6J3X4N2T0FTZT1RKFXDVS0K","Louis Strydom","01M6J3X4SXV0BXWDMXPW90D8BK",0,"MIT","https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fskills\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],"compact","by name","for","can","true","usage","you","quick","filter","triggers","detail","quick reference","do","show","document","repo","explain","cheatsheet","show me","open","search","2026-11-10 10:12:30",false,"---\nname: skills\ndescription: |\n  Quick reference for every available skill in this repo — name, one-line\n  purpose, triggers, usage examples — without having to open each\n  individual SKILL.md document.\n  Triggers on: \"\u002Fskills\", \"list skills\", \"what skills do you have\",\n  \"show all skills\", \"skill cheatsheet\", \"skills help\",\n  \"show me the skills\", \"what can you do\".\n  Usage:\n    \u002Fskills                           — Compact reference table for all skills\n    \u002Fskills \u003Cname>                    — Full detail for one skill (e.g. \u002Fskills explain)\n    \u002Fskills --search \"\u003Cterm>\"         — Filter by name\u002Fdescription match\ndisable-model-invocation: true\n---\n\n# Skill Quick Reference\n\n> **Explicit invocation only — host-neutral.** `disable-model-invocation: true`\n> enforces this in Claude Code and in VS Code Copilot, which reads\n> `.claude\u002Fskills\u002F` and honours that key (verified against VS Code Agent Skills\n> docs 2026-09-02). Hosts beyond those two are unverified, and a key cannot\n> carry the reasoning anyway, so the rule is stated here as well.\n>\n> Nothing here is destructive — this is a roster, not a gate — but a full skill\n> listing is a poor answer to a question about the work, so render it when the\n> user asked for it.\n\nA discoverable, always-current reference for every skill in this bundle.\nReads directly from `skills\u002F*​\u002FSKILL.md` frontmatter so the listing can\nnever drift from reality — the same file Claude Code parses to register\neach skill.\n\nThis skill itself does NOT modify code. Pure read-and-render.\n\n> **Worktree preflight** — in a linked git worktree the synced tooling tree\n> `scripts\u002F.claude-skills\u002F` is absent — it is gitignored, so `git worktree add`\n> does not populate it, and every command below that uses it dies on a bare\n> `MODULE_NOT_FOUND`. Run `npm run skills:hydrate` first. If this repo defines\n> no such script, `references\u002Fworktree-preflight.md` holds the entry to add — ask\n> the user first, since it edits their `package.json`.\n\n---\n\n## Step 0 — Pick the mode\n\n| Input | Mode |\n|---|---|\n| `\u002Fskills` (no argument) | **List all** — compact table of every skill |\n| `\u002Fskills \u003Cskill-name>` | **Detail** — full description, triggers, usage for one skill |\n| `\u002Fskills --search \"\u003Cterm>\"` | **Filter** — show only skills whose name\u002Fdescription\u002Ftriggers\u002Fusage contain the term (case-insensitive) |\n\nIf `\u003Cskill-name>` doesn't match an existing skill, the helper suggests\nnear-matches. Skill names are the directory names under `skills\u002F`\n(e.g. `audit-code`, `explain`, `persona-test`).\n\n---\n\n## Step 1 — Invoke the helper\n\n```bash\n# List all skills\nnode scripts\u002Fskills-help.mjs\n\n# Detail for one skill (SKILL_NAME = a directory name under skills\u002F, e.g. audit-code)\nnode scripts\u002Fskills-help.mjs SKILL_NAME\n\n# Filter by search term\nnode scripts\u002Fskills-help.mjs --search \"\u003Cterm>\"\n```\n\nThe helper auto-detects whether to render a compact table, a per-skill\ndetail block, or a filtered list, and emits Markdown by default. Output\nis read-only — no files written unless `--out \u003Cpath>` is passed.\n\n---\n\n## Step 2 — Render the result\n\nThe helper output is already Markdown. Pass it through verbatim — do\nNOT re-summarise (the user asked for the reference; don't paraphrase).\n\nIf the helper exits non-zero with \"skill not found\", surface the\nsuggestion line as-is and stop.\n\n---\n\n## Output format reference\n\n### Compact list\n\n```\n# Available skills (N total)\n\n| Skill | One-liner |\n|---|---|\n| `\u002Faudit-code` | Iteratively audit code against a plan with GPT + Gemini final gate. |\n| `\u002Fbrainstorm` ? | Multi-LLM concept-level brainstorming. |\n| ... |\n\n? = `disable-model-invocation: true` — Claude Code and VS Code Copilot will not\nauto-trigger it; invoke explicitly via `\u002F\u003Cname>`. Each locked skill also states\nthe rule in its body, for hosts that ignore the key.\n```\n\n### Detail (e.g. `\u002Fskills explain`)\n\n```\n# \u002Fexplain\n\nExplain WHY a piece of code is structured the way it is.\n\n**Triggers on:**\n- why is this\n- explain this code\n- ...\n\n**Usage:**\n\\`\\`\\`\n\u002Fexplain \u003Cfile>                Explain the file's purpose + history\n\u002Fexplain --history \"\u003Ctopic>\"   \"Did we already solve this?\" — cross-source search\n\\`\\`\\`\n\n**Full SKILL.md:** `skills\u002Fexplain\u002FSKILL.md`\n```\n\n---\n\n## When to use this vs. typing `\u002F`\n\n- **Type `\u002F` in Claude** — for autocomplete on a skill you already know\n  the name of (fastest single-skill lookup)\n- **Run `\u002Fskills`** — when you want to discover what's available, refresh\n  your memory on a skill's options, or share a quick reference with a\n  teammate (the output is copy-pasteable)\n- **Open the SKILL.md directly** — when you need the full \"how it works\"\n  body (this skill only renders the frontmatter contract)\n\n---\n\n## Sources\n\n- `skills\u002F*​\u002FSKILL.md` frontmatter — the canonical truth read by both Claude\n  Code AND this helper. If `\u002Fskills` shows wrong info, the SKILL.md\n  itself is wrong (not the helper).\n- `.claude\u002Fskills\u002F` mirror is intentionally ignored — that's the\n  generated copy, not authoritative.\n\n## Cost\n\nZero external calls. Pure local file scan. Sub-100ms even with 50+ skills.\n\n---\n\n## Reference files\n\n| File | Summary | Read when |\n|---|---|---|\n| `references\u002Fworktree-preflight.md` | Worktree preflight remedy — the skills:hydrate npm script to add when a linked worktree lacks the tooling tree. | A command dies with `MODULE_NOT_FOUND` in a linked worktree AND this repo has no `skills:hydrate` script. |\n","# Skill Quick Reference\n\n> **Explicit invocation only — host-neutral.** `disable-model-invocation: true`\n> enforces this in Claude Code and in VS Code Copilot, which reads\n> `.claude\u002Fskills\u002F` and honours that key (verified against VS Code Agent Skills\n> docs 2026-09-02). Hosts beyond those two are unverified, and a key cannot\n> carry the reasoning anyway, so the rule is stated here as well.\n>\n> Nothing here is destructive — this is a roster, not a gate — but a full skill\n> listing is a poor answer to a question about the work, so render it when the\n> user asked for it.\n\nA discoverable, always-current reference for every skill in this bundle.\nReads directly from `skills\u002F*​\u002FSKILL.md` frontmatter so the listing can\nnever drift from reality — the same file Claude Code parses to register\neach skill.\n\nThis skill itself does NOT modify code. Pure read-and-render.\n\n> **Worktree preflight** — in a linked git worktree the synced tooling tree\n> `scripts\u002F.claude-skills\u002F` is absent — it is gitignored, so `git worktree add`\n> does not populate it, and every command below that uses it dies on a bare\n> `MODULE_NOT_FOUND`. Run `npm run skills:hydrate` first. If this repo defines\n> no such script, `references\u002Fworktree-preflight.md` holds the entry to add — ask\n> the user first, since it edits their `package.json`.\n\n---\n\n## Step 0 — Pick the mode\n\n| Input | Mode |\n|---|---|\n| `\u002Fskills` (no argument) | **List all** — compact table of every skill |\n| `\u002Fskills \u003Cskill-name>` | **Detail** — full description, triggers, usage for one skill |\n| `\u002Fskills --search \"\u003Cterm>\"` | **Filter** — show only skills whose name\u002Fdescription\u002Ftriggers\u002Fusage contain the term (case-insensitive) |\n\nIf `\u003Cskill-name>` doesn't match an existing skill, the helper suggests\nnear-matches. Skill names are the directory names under `skills\u002F`\n(e.g. `audit-code`, `explain`, `persona-test`).\n\n---\n\n## Step 1 — Invoke the helper\n\n```bash\n# List all skills\nnode scripts\u002Fskills-help.mjs\n\n# Detail for one skill (SKILL_NAME = a directory name under skills\u002F, e.g. audit-code)\nnode scripts\u002Fskills-help.mjs SKILL_NAME\n\n# Filter by search term\nnode scripts\u002Fskills-help.mjs --search \"\u003Cterm>\"\n```\n\nThe helper auto-detects whether to render a compact table, a per-skill\ndetail block, or a filtered list, and emits Markdown by default. Output\nis read-only — no files written unless `--out \u003Cpath>` is passed.\n\n---\n\n## Step 2 — Render the result\n\nThe helper output is already Markdown. Pass it through verbatim — do\nNOT re-summarise (the user asked for the reference; don't paraphrase).\n\nIf the helper exits non-zero with \"skill not found\", surface the\nsuggestion line as-is and stop.\n\n---\n\n## Output format reference\n\n### Compact list\n\n```\n# Available skills (N total)\n\n| Skill | One-liner |\n|---|---|\n| `\u002Faudit-code` | Iteratively audit code against a plan with GPT + Gemini final gate. |\n| `\u002Fbrainstorm` ? | Multi-LLM concept-level brainstorming. |\n| ... |\n\n? = `disable-model-invocation: true` — Claude Code and VS Code Copilot will not\nauto-trigger it; invoke explicitly via `\u002F\u003Cname>`. Each locked skill also states\nthe rule in its body, for hosts that ignore the key.\n```\n\n### Detail (e.g. `\u002Fskills explain`)\n\n```\n# \u002Fexplain\n\nExplain WHY a piece of code is structured the way it is.\n\n**Triggers on:**\n- why is this\n- explain this code\n- ...\n\n**Usage:**\n\\`\\`\\`\n\u002Fexplain \u003Cfile>                Explain the file's purpose + history\n\u002Fexplain --history \"\u003Ctopic>\"   \"Did we already solve this?\" — cross-source search\n\\`\\`\\`\n\n**Full SKILL.md:** `skills\u002Fexplain\u002FSKILL.md`\n```\n\n---\n\n## When to use this vs. typing `\u002F`\n\n- **Type `\u002F` in Claude** — for autocomplete on a skill you already know\n  the name of (fastest single-skill lookup)\n- **Run `\u002Fskills`** — when you want to discover what's available, refresh\n  your memory on a skill's options, or share a quick reference with a\n  teammate (the output is copy-pasteable)\n- **Open the SKILL.md directly** — when you need the full \"how it works\"\n  body (this skill only renders the frontmatter contract)\n\n---\n\n## Sources\n\n- `skills\u002F*​\u002FSKILL.md` frontmatter — the canonical truth read by both Claude\n  Code AND this helper. If `\u002Fskills` shows wrong info, the SKILL.md\n  itself is wrong (not the helper).\n- `.claude\u002Fskills\u002F` mirror is intentionally ignored — that's the\n  generated copy, not authoritative.\n\n## Cost\n\nZero external calls. Pure local file scan. Sub-100ms even with 50+ skills.\n\n---\n\n## Reference files\n\n| File | Summary | Read when |\n|---|---|---|\n| `references\u002Fworktree-preflight.md` | Worktree preflight remedy — the skills:hydrate npm script to add when a linked worktree lacks the tooling tree. | A command dies with `MODULE_NOT_FOUND` in a linked worktree AND this repo has no `skills:hydrate` script. |\n",{"name":5,"description":45,"disable-model-invocation":46},"Quick reference for every available skill in this repo — name, one-line\npurpose, triggers, usage examples — without having to open each\nindividual SKILL.md document.\nTriggers on: \"\u002Fskills\", \"list skills\", \"what skills do you have\",\n\"show all skills\", \"skill cheatsheet\", \"skills help\",\n\"show me the skills\", \"what can you do\".\nUsage:\n  \u002Fskills                           — Compact reference table for all skills\n  \u002Fskills \u003Cname>                    — Full detail for one skill (e.g. \u002Fskills explain)\n  \u002Fskills --search \"\u003Cterm>\"         — Filter by name\u002Fdescription match\n",true,"main","938efbef34b7c76f0d112f336d1ac4018224d186",".claude\u002Fskills\u002Fskills","https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills","https:\u002F\u002Fgithub.com\u002FLbstrydom","Studying M.Sc Computer Science at Heriot Watt","2026-11-12 02:12:09",{"source":8,"skillName":5,"commands":55,"prompt":65,"zipAvailable":46},[56,59,62],{"tool":57,"command":58},"npx","npx skills add Lbstrydom\u002Fclaude-engineering-skills --skill skills",{"tool":60,"command":61},"bunx","bunx skills add Lbstrydom\u002Fclaude-engineering-skills --skill skills",{"tool":63,"command":64},"pnpm","pnpm dlx skills add Lbstrydom\u002Fclaude-engineering-skills --skill skills","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fskills\u002FSKILL.md",[67],{"path":68,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":71,"sourceHtmlUrl":72},"references\u002Fworktree-preflight.md","REFERENCE","参考文档",3413,"https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fskills\u002Freferences\u002Fworktree-preflight.md",[74,92,103,122,135,170],{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":85,"publishedAt":40},"01M6J45X4FDB2AD5BGS4R4QY8X","stated-absent","Negative fixture — the contract's stated string never appears in this file.","https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fgate-honesty\u002Fnegative\u002Fstated-absent\u002Fskills\u002Fstated-absent\u002FSKILL.md",[80],{"categoryNo":81,"categoryName":82,"taxonomyType":83,"taxonomyTypeDesc":84},"01JBSEEDCAT000000000000037","律师与法务","PROFESSION","适用职业",[86,87,88,89,90,91],"stated absent","STRING","contract","fixture","never","file",{"skillNo":93,"name":94,"nameZh":6,"description":95,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":99,"publishedAt":40},"01M6J45TAX2PPHETZ5TJZG20QQ","nonexistent-implementation","Negative fixture — contract references an implementation file that does not exist.","https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fgate-honesty\u002Fnegative\u002Fnonexistent-implementation\u002Fskills\u002Fnonexistent-implementation\u002FSKILL.md",[98],{"categoryNo":81,"categoryName":82,"taxonomyType":83,"taxonomyTypeDesc":84},[100,101,102,88,89,91],"implementation","nonexistent implementation","references",{"skillNo":104,"name":105,"nameZh":6,"description":106,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":107,"categories":108,"keywords":114,"publishedAt":40},"01M6J45P5GN52YFMZ81T7NN1VF","document-only-with-params","Negative fixture — a document-only gate illegally carries params (schema must refuse this fake-check pattern).","https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fgate-honesty\u002Fnegative\u002Fdocument-only-with-params\u002Fskills\u002Fdocument-only-with-params\u002FSKILL.md",[109],{"categoryNo":110,"categoryName":111,"taxonomyType":112,"taxonomyTypeDesc":113},"01JBSEEDCAT000000000000002","文档处理","SCENARIO","使用场景",[115,33,116,117,118,119,120,121,89],"only","with","document only with params","check","schema","gate","pattern",{"skillNo":123,"name":124,"nameZh":6,"description":125,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":131,"publishedAt":40},"01M6J45J1CCZ7AXDGQKBA9VC8M","lying-skill","Fixture skill for the gate-honesty self-check — every gate here is deliberately dishonest.","https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fgate-honesty\u002Flying-skill\u002Fskills\u002Flying-skill\u002FSKILL.md",[128],{"categoryNo":129,"categoryName":130,"taxonomyType":112,"taxonomyTypeDesc":113},"01JBSEEDCAT000000000000023","Skill与智能体开发",[132,118,120,133,134,89,21],"lying skill","fixture skill","self",{"skillNo":136,"name":137,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":139,"categories":140,"keywords":150,"publishedAt":40},"01M6J45CW0DNN7K2W39E3PQHEY","visual-audit","Math-first, deterministic visual\u002Fpaint inspection — the 4th UX lens, complementing\npersona-test (journey), click-test (page), and nav-audit (system). Drives Playwright +\ncomputed styles + bounding boxes + CDP forced-pseudo-state to audit declared-token\nconformance, light\u002Fdark theme parity, layout physics, and affordance signifiers. A VLM\nis advisory-only and never gates. CI gate is drift-only on the changed contracted surface.\nTriggers on: \"visual audit\", \"check styling consistency\", \"theme parity\", \"dark mode parity\",\n\"design token drift\", \"paint audit\", \"button\u002Fcard consistency\", \"focus ring audit\",\n\"\u002Fvisual-audit\".","https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002Fskills\u002Fvisual-audit\u002FSKILL.md",[141,144,147],{"categoryNo":142,"categoryName":143,"taxonomyType":112,"taxonomyTypeDesc":113},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":145,"categoryName":146,"taxonomyType":112,"taxonomyTypeDesc":113},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":148,"categoryName":149,"taxonomyType":83,"taxonomyTypeDesc":84},"01JBSEEDCAT000000000000032","设计师",[151,152,153,154,155,156,157,158,159,160,161,162,90,115,163,164,165,166,167,168,169],"visual audit","visual","audit","mode","design token","click","inspection","lens","design","ci","persona","math","cdp","journey","drift","focus","physics","layout","card",{"skillNo":171,"name":172,"nameZh":6,"description":173,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":174,"categories":175,"keywords":182,"publishedAt":40},"01M6J4569S40ZASFWW698CHBKP","ux-lock","Generate Playwright e2e specs. Two modes:\n  1. LOCK mode — pin a fix's DOM contract so it doesn't regress (default).\n  2. VERIFY mode — check that a \u002Fplan plan was actually implemented\n     by parsing its Acceptance Criteria section and driving the live URL.\nVERIFY mode grades a plan against a RUNNING app. To judge the plan document\nitself, before anything is built, that is \u002Faudit-plan.\nTriggers on: \"ux lock\", \"lock ux\", \"lock in the fix\", \"write regression spec\",\n\"generate e2e test for\", \"regression test for commit\", \"lock this fix\",\n\"verify the plan\", \"verify plan implementation\", \"check the plan was built\",\n\"audit frontend implementation\", \"did we ship the plan\".\nFull command syntax: see the Usage section in this skill.","https:\u002F\u002Fgithub.com\u002FLbstrydom\u002Fclaude-engineering-skills\u002Fblob\u002Fmain\u002Fskills\u002Fux-lock\u002FSKILL.md",[176,177,180,181],{"categoryNo":142,"categoryName":143,"taxonomyType":112,"taxonomyTypeDesc":113},{"categoryNo":178,"categoryName":179,"taxonomyType":112,"taxonomyTypeDesc":113},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":148,"categoryName":149,"taxonomyType":83,"taxonomyTypeDesc":84},{"categoryNo":81,"categoryName":82,"taxonomyType":83,"taxonomyTypeDesc":84},[183,184,185,154,186,187,188,153,189,190,191,192,193,194,195,196,197,198,199,200,201],"ux lock","lock","ux","commit","generate","acceptance","plan","regression","syntax","command","write","fix","e2e test","default","app","judge","URL","verify plan","frontend"]