[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C460C8APMHEDWS2F7Y1PA8":3,"skill-same:01M6C460C8APMHEDWS2F7Y1PA8":56},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":30,"linkOnly":31,"markdownContent":32,"markdownBody":33,"frontMatter":34,"refName":35,"commitSha":36,"skillDirectory":37,"forksCount":38,"repositoryHtmlUrl":39,"repositoryHomepageUrl":6,"ownerHtmlUrl":40,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":41,"install":42,"resources":55},"01M6C460C8APMHEDWS2F7Y1PA8","pre-commit-formatting",null,"Backstop formatting workflow used during PR creation. Use when applying the final markdown and whitespace formatting gate before validation evidence capture. DO NOT USE FOR: per-step implementation formatting advice or PowerShell formatting rules outside this gate.","Grimblaz\u002Fagent-orchestra","Grimblaz","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F74755849?v=4","01M6C430M9XZDHGHPWQVTQ3KMA","01M6C430RJY3MMX0QAZ3X8DR3Y",3,"MIT","https:\u002F\u002Fgithub.com\u002FGrimblaz\u002Fagent-orchestra\u002Fblob\u002Fmain\u002Fskills\u002Fpre-commit-formatting\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29],"commit","pre commit formatting","workflow","pr","validation","powershell","markdown","Rules","capture","use","advice","evidence","2026-11-10 10:12:30",false,"---\nname: pre-commit-formatting\ndescription: \"Backstop formatting workflow used during PR creation. Use when applying the final markdown and whitespace formatting gate before validation evidence capture. DO NOT USE FOR: per-step implementation formatting advice or PowerShell formatting rules outside this gate.\"\n---\n\n# Pre-Commit Formatting Gate\n\n## Purpose\n\nThis is a backstop formatting pass executed during Code-Conductor's Step 4 (Create PR). It complements two other formatting layers:\n\n1. The per-step advisory from `.github\u002Fcopilot-instructions.md` (\"After editing any `.md` files, run `markdownlint-cli2 --fix`\")\n2. The `.githooks\u002Fpre-commit` hook that runs on staged files at commit time\n\nThis gate exists because per-step formatting may be skipped or incomplete — it catches any remaining drift before validation evidence capture (design decision FG-D9: layered model). Double-runs are safe because all formatters are idempotent.\n\n---\n\n## Protocol\n\n### Step 1 — Identify changed files\n\nRun:\n\n```powershell\ngit diff --name-only --diff-filter=ACM main..HEAD\n```\n\nThis lists all Added, Copied, and Modified files on the branch (excluding deletions). The `--diff-filter=ACM` flag is critical to avoid passing deleted file paths to formatters.\n\n### Step 2 — Markdown lane\n\nFilter the changed file list for `.md` files. Run `markdownlint-cli2 --fix` on them:\n\n```powershell\nmarkdownlint-cli2 --fix file1.md file2.md ...\n```\n\nPass all `.md` files as arguments in a single invocation, or iterate one at a time — both are acceptable.\n\n### Step 3 — Whitespace normalization lane\n\nFilter the remaining file list to exclude `.md` and `.ps1` files, then pass them to the whitespace normalizer:\n\n```powershell\npwsh -NoProfile -NonInteractive -File .github\u002Fscripts\u002Fnormalize-whitespace.ps1 -Path \u003Cfile>\n```\n\nRun one file at a time, or loop over the list.\n\n**Important**: `normalize-whitespace.ps1` has an internal allowlist — it processes only: `.json`, `.jsonc`, `.yml`, `.yaml`, `.psd1`, `.txt`, `.gitignore`, `.gitattributes`, `.editorconfig`. Files with other extensions are skipped with a warning (exit code 0, warning on the PowerShell warning stream). This is expected behavior, not an error.\n\n### Step 4 — Check for changes and commit\n\nRun:\n\n```powershell\ngit status --porcelain\n```\n\nIf the output is non-empty (formatting produced changes), stage only the files identified in Step 1 and commit:\n\n```powershell\ngit add \u003Cfile1> \u003Cfile2> ...\ngit commit -m \"chore: formatting gate\"\n```\n\nUse the file list from Step 1's `git diff --name-only` output — do **not** use `git add -A`, which would sweep unrelated working-tree changes into the formatting commit.\n\n### Step 5 — Proceed\n\nContinue with Step 4's next sub-step (validation evidence capture).\n\n---\n\n## Exclusions\n\n`.ps1` files are NOT processed by this gate — PowerShell formatting is handled by the pre-commit hook's `Invoke-Formatter` lane (design decision FG-D7).\n\n---\n\n## Non-Blocking Behavior\n\nIf `markdownlint-cli2` is not available in PATH, or if `pwsh` is not available: warn in the conversation and proceed. Do not block PR creation for tool unavailability (design decision FG-D6). The pre-commit hook provides a separate formatting safety net.\n\n---\n\n## Newcomer-Audit Lane (Warn-Only, Findings-Only)\n\nDuring the same Code-Conductor PR-creation step, run the newcomer-audit detector over the branch's changed files:\n\n```powershell\npwsh skills\u002Fnaming-register-policy\u002Fscripts\u002Fnewcomer-audit.ps1 -Changed\n```\n\nThis lane is not a formatting lane and does not behave like the two lanes above:\n\n- It never stages or commits anything — unlike Step 2 and Step 3, there is no `git add` \u002F `git commit` step for this lane.\n- It emits findings only; findings are surfaced as a warning in the PR body \u002F conversation, never as a blocking condition.\n- PR creation proceeds regardless of the lane's exit code (0 = clean, 1 = findings, 2 = usage\u002Foperational error).\n- **Exit code 2 is an operational failure, not a clean pass — surface it distinctly.** Exit 1 (findings) and exit 2 (the audit failed to run) must never look the same to the operator. On exit 2, post a distinctly-worded warning in the PR body \u002F conversation — for example: \"⚠️ newcomer-audit lane FAILED TO RUN — findings unknown, treat as unaudited.\" The lane stays fail-open either way (exit 2 never blocks PR creation), but silence on exit 2 would make a broken audit indistinguishable from a genuinely clean one.\n\n**This lane does not inherit FG-D6.** FG-D6 (`## Non-Blocking Behavior` above) covers a narrower case — the formatting tools (`markdownlint-cli2`, `pwsh`) being unavailable in PATH. This lane's non-blocking behavior is a separate, explicit rule: the tool runs successfully and returns real findings, and those findings still never block PR creation. Do not describe this lane as \"inheriting\" or \"covered by\" FG-D6 — its warn-only semantics are stated here explicitly.\n\n---\n\n## Portability Assumptions\n\nThis gate assumes:\n\n- `markdownlint-cli2` is installed and in PATH\n- `normalize-whitespace.ps1` is at `.github\u002Fscripts\u002Fnormalize-whitespace.ps1`\n- The default branch is named `main` (used in the `git diff` base ref)\n\nConsumer repos cloned from this template should adjust the branch name if their default branch differs.\n\n## Gotchas\n\n| Trigger                     | Gotcha                                                                        | Fix                                                                |\n| --------------------------- | ----------------------------------------------------------------------------- | ------------------------------------------------------------------ |\n| Running the formatting gate | `git add -A` sweeps unrelated working-tree changes into the formatting commit | Stage only the files collected from the explicit changed-file list |\n","# Pre-Commit Formatting Gate\n\n## Purpose\n\nThis is a backstop formatting pass executed during Code-Conductor's Step 4 (Create PR). It complements two other formatting layers:\n\n1. The per-step advisory from `.github\u002Fcopilot-instructions.md` (\"After editing any `.md` files, run `markdownlint-cli2 --fix`\")\n2. The `.githooks\u002Fpre-commit` hook that runs on staged files at commit time\n\nThis gate exists because per-step formatting may be skipped or incomplete — it catches any remaining drift before validation evidence capture (design decision FG-D9: layered model). Double-runs are safe because all formatters are idempotent.\n\n---\n\n## Protocol\n\n### Step 1 — Identify changed files\n\nRun:\n\n```powershell\ngit diff --name-only --diff-filter=ACM main..HEAD\n```\n\nThis lists all Added, Copied, and Modified files on the branch (excluding deletions). The `--diff-filter=ACM` flag is critical to avoid passing deleted file paths to formatters.\n\n### Step 2 — Markdown lane\n\nFilter the changed file list for `.md` files. Run `markdownlint-cli2 --fix` on them:\n\n```powershell\nmarkdownlint-cli2 --fix file1.md file2.md ...\n```\n\nPass all `.md` files as arguments in a single invocation, or iterate one at a time — both are acceptable.\n\n### Step 3 — Whitespace normalization lane\n\nFilter the remaining file list to exclude `.md` and `.ps1` files, then pass them to the whitespace normalizer:\n\n```powershell\npwsh -NoProfile -NonInteractive -File .github\u002Fscripts\u002Fnormalize-whitespace.ps1 -Path \u003Cfile>\n```\n\nRun one file at a time, or loop over the list.\n\n**Important**: `normalize-whitespace.ps1` has an internal allowlist — it processes only: `.json`, `.jsonc`, `.yml`, `.yaml`, `.psd1`, `.txt`, `.gitignore`, `.gitattributes`, `.editorconfig`. Files with other extensions are skipped with a warning (exit code 0, warning on the PowerShell warning stream). This is expected behavior, not an error.\n\n### Step 4 — Check for changes and commit\n\nRun:\n\n```powershell\ngit status --porcelain\n```\n\nIf the output is non-empty (formatting produced changes), stage only the files identified in Step 1 and commit:\n\n```powershell\ngit add \u003Cfile1> \u003Cfile2> ...\ngit commit -m \"chore: formatting gate\"\n```\n\nUse the file list from Step 1's `git diff --name-only` output — do **not** use `git add -A`, which would sweep unrelated working-tree changes into the formatting commit.\n\n### Step 5 — Proceed\n\nContinue with Step 4's next sub-step (validation evidence capture).\n\n---\n\n## Exclusions\n\n`.ps1` files are NOT processed by this gate — PowerShell formatting is handled by the pre-commit hook's `Invoke-Formatter` lane (design decision FG-D7).\n\n---\n\n## Non-Blocking Behavior\n\nIf `markdownlint-cli2` is not available in PATH, or if `pwsh` is not available: warn in the conversation and proceed. Do not block PR creation for tool unavailability (design decision FG-D6). The pre-commit hook provides a separate formatting safety net.\n\n---\n\n## Newcomer-Audit Lane (Warn-Only, Findings-Only)\n\nDuring the same Code-Conductor PR-creation step, run the newcomer-audit detector over the branch's changed files:\n\n```powershell\npwsh skills\u002Fnaming-register-policy\u002Fscripts\u002Fnewcomer-audit.ps1 -Changed\n```\n\nThis lane is not a formatting lane and does not behave like the two lanes above:\n\n- It never stages or commits anything — unlike Step 2 and Step 3, there is no `git add` \u002F `git commit` step for this lane.\n- It emits findings only; findings are surfaced as a warning in the PR body \u002F conversation, never as a blocking condition.\n- PR creation proceeds regardless of the lane's exit code (0 = clean, 1 = findings, 2 = usage\u002Foperational error).\n- **Exit code 2 is an operational failure, not a clean pass — surface it distinctly.** Exit 1 (findings) and exit 2 (the audit failed to run) must never look the same to the operator. On exit 2, post a distinctly-worded warning in the PR body \u002F conversation — for example: \"⚠️ newcomer-audit lane FAILED TO RUN — findings unknown, treat as unaudited.\" The lane stays fail-open either way (exit 2 never blocks PR creation), but silence on exit 2 would make a broken audit indistinguishable from a genuinely clean one.\n\n**This lane does not inherit FG-D6.** FG-D6 (`## Non-Blocking Behavior` above) covers a narrower case — the formatting tools (`markdownlint-cli2`, `pwsh`) being unavailable in PATH. This lane's non-blocking behavior is a separate, explicit rule: the tool runs successfully and returns real findings, and those findings still never block PR creation. Do not describe this lane as \"inheriting\" or \"covered by\" FG-D6 — its warn-only semantics are stated here explicitly.\n\n---\n\n## Portability Assumptions\n\nThis gate assumes:\n\n- `markdownlint-cli2` is installed and in PATH\n- `normalize-whitespace.ps1` is at `.github\u002Fscripts\u002Fnormalize-whitespace.ps1`\n- The default branch is named `main` (used in the `git diff` base ref)\n\nConsumer repos cloned from this template should adjust the branch name if their default branch differs.\n\n## Gotchas\n\n| Trigger                     | Gotcha                                                                        | Fix                                                                |\n| --------------------------- | ----------------------------------------------------------------------------- | ------------------------------------------------------------------ |\n| Running the formatting gate | `git add -A` sweeps unrelated working-tree changes into the formatting commit | Stage only the files collected from the explicit changed-file list |\n",{"name":5,"description":7},"main","d5486aacc32c9ca1b07173cfd530f8fe75c29e58","skills\u002Fpre-commit-formatting",0,"https:\u002F\u002Fgithub.com\u002FGrimblaz\u002Fagent-orchestra","https:\u002F\u002Fgithub.com\u002FGrimblaz","2026-08-16 01:12:46",{"source":8,"skillName":5,"commands":43,"prompt":53,"zipAvailable":54},[44,47,50],{"tool":45,"command":46},"npx","npx skills add Grimblaz\u002Fagent-orchestra --skill pre-commit-formatting",{"tool":48,"command":49},"bunx","bunx skills add Grimblaz\u002Fagent-orchestra --skill pre-commit-formatting",{"tool":51,"command":52},"pnpm","pnpm dlx skills add Grimblaz\u002Fagent-orchestra --skill pre-commit-formatting","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FGrimblaz\u002Fagent-orchestra\u002Fblob\u002Fmain\u002Fskills\u002Fpre-commit-formatting\u002FSKILL.md",true,[],[57,90,112,127,155,176],{"skillNo":58,"name":59,"nameZh":6,"description":60,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":61,"categories":62,"keywords":71,"publishedAt":30},"01M6C48YMJVFHM7DVGG1WWW5RJ","webapp-testing","Playwright end-to-end testing guidance for web apps, with practical patterns and setup steps. Use when creating or improving browser-based E2E coverage, test stability, and CI execution. DO NOT USE FOR: React component tests (use ui-testing), canvas game interaction (use browser-canvas-testing), TDD workflow (use test-driven-development), debugging failures (use systematic-debugging), or randomized property tests (use property-based-testing).","https:\u002F\u002Fgithub.com\u002FGrimblaz\u002Fagent-orchestra\u002Fblob\u002Fmain\u002Fskills\u002Fwebapp-testing\u002FSKILL.md",[63,68],{"categoryNo":64,"categoryName":65,"taxonomyType":66,"taxonomyTypeDesc":67},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":69,"categoryName":70,"taxonomyType":66,"taxonomyTypeDesc":67},"01JBSEEDCAT000000000000009","前端开发",[72,73,74,75,76,20,77,78,79,80,81,82,83,84,85,86,87,88,89,27],"testing","webapp testing","webapp","canvas","tdd","playwright","test","web","react","component","debugging","development","browser","ci","execution","e2e","game","coverage",{"skillNo":91,"name":92,"nameZh":6,"description":93,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":96,"publishedAt":30},"01M6C48TNNP2KCSQXV8YK7SK49","verification-before-completion","Evidence-based verification checklist before marking work complete. Use before PRs, releases, marking tickets done, or any \"I'm finished\" declaration; also when naming a baseline commit for a differential suite claim, when designing a mutation campaign or red-run evidence, when making an absence claim, a universal claim, or a one-time demonstration offered as a standing guarantee, when attributing a measurement or claiming a sweep or verification loop is complete, and when stating what a check or a CI suite will do about a change. DO NOT USE FOR: post-merge cleanup or archival (use post-pr-review) or processing GitHub review comments (use code-review-intake).","https:\u002F\u002Fgithub.com\u002FGrimblaz\u002Fagent-orchestra\u002Fblob\u002Fmain\u002Fskills\u002Fverification-before-completion\u002FSKILL.md",[],[97,98,99,100,18,101,21,102,103,104,105,106,85,107,108,109,110,27,29,111],"verification","verification before completion","review","change","merge","cleanup","run","code","code-review","intake","loop","verification loop","work","check","campaign",{"skillNo":113,"name":114,"nameZh":6,"description":115,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":118,"publishedAt":30},"01M6C48QZWNTP7JGKD32QZAKKX","validation-methodology","Reusable validation and review methodology for staged validation, failure triage, and prosecution-depth setup. Use when running validation ladders, triaging failures, or executing adversarial review passes. DO NOT USE FOR: CE Gate orchestration, specialist dispatch ownership, or step execution flow (keep those in Code-Conductor).","https:\u002F\u002Fgithub.com\u002FGrimblaz\u002Fagent-orchestra\u002Fblob\u002Fmain\u002Fskills\u002Fvalidation-methodology\u002FSKILL.md",[],[22,119,120,99,121,122,123,124,104,125,86,27,126],"methodology","validation methodology","triage","orchestration","setup","adversarial review","flow","dispatch",{"skillNo":128,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":141,"publishedAt":30},"01M6C48MCAHG5Z79BJ369CRYRZ","upstream-onboarding","Shared opening-phase protocol for upstream agents (Experience-Owner, Solution-Designer, Issue-Planner) and Code-Conductor when invoked on an existing GitHub issue. Renders a scaled context brief and runs a standards check on inherited work at each phase boundary. Use when a user-invocable agent receives a request referencing an existing GitHub issue and must load solution-authoring and upstream-onboarding at the opening phase. DO NOT USE FOR: subagent dispatches (which already operate within an assessed session context); post-merge review (use post-pr-review); research or non-tree subagents.","https:\u002F\u002Fgithub.com\u002FGrimblaz\u002Fagent-orchestra\u002Fblob\u002Fmain\u002Fskills\u002Fupstream-onboarding\u002FSKILL.md",[133,136],{"categoryNo":134,"categoryName":135,"taxonomyType":66,"taxonomyTypeDesc":67},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":137,"categoryName":138,"taxonomyType":139,"taxonomyTypeDesc":140},"01JBSEEDCAT000000000000038","人力资源","PROFESSION","适用职业",[142,143,99,144,145,101,146,21,104,147,148,149,150,151,152,109,110,153,154,27],"onboarding","upstream onboarding","github","research","standards check","protocol","brief","boundary","designer","subagent","planner","user","session",{"skillNo":156,"name":157,"nameZh":6,"description":158,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":159,"categories":160,"keywords":169,"publishedAt":30},"01M6C48GPVE120TGPMD1CS365H","ui-testing","Resilient React component testing strategies focusing on user behavior. Use when writing or reviewing component-level React tests, fixing flaky component tests, or establishing React testing patterns. DO NOT USE FOR: Playwright E2E tests (use webapp-testing), canvas game interaction (use browser-canvas-testing), TDD workflow (use test-driven-development), debugging failures (use systematic-debugging), UI component design (use frontend-design), or randomized property tests (use property-based-testing).","https:\u002F\u002Fgithub.com\u002FGrimblaz\u002Fagent-orchestra\u002Fblob\u002Fmain\u002Fskills\u002Fui-testing\u002FSKILL.md",[161,162,163,166],{"categoryNo":64,"categoryName":65,"taxonomyType":66,"taxonomyTypeDesc":67},{"categoryNo":69,"categoryName":70,"taxonomyType":66,"taxonomyTypeDesc":67},{"categoryNo":164,"categoryName":165,"taxonomyType":66,"taxonomyTypeDesc":67},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":167,"categoryName":168,"taxonomyType":139,"taxonomyTypeDesc":140},"01JBSEEDCAT000000000000032","设计师",[72,170,171,172,173,174,75,20,77,78,80,81,82,83,84,175,87,88,27,74],"ui","ui testing","frontend","design","writing","testing patterns",{"skillNo":177,"name":178,"nameZh":6,"description":179,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":180,"categories":181,"keywords":184,"publishedAt":30},"01M6C48DRJ9XBDR2FW0W37DY53","ui-iteration","Reusable screenshot-driven UI polish workflow for iterative visual refinement. Use when improving layout, hierarchy, spacing, feedback, or Tailwind-based presentation through repeated review-and-adjust passes. DO NOT USE FOR: functional bug fixing, accessibility-only audits, or major redesign strategy work (use Code-Smith or frontend-design).","https:\u002F\u002Fgithub.com\u002FGrimblaz\u002Fagent-orchestra\u002Fblob\u002Fmain\u002Fskills\u002Fui-iteration\u002FSKILL.md",[182,183],{"categoryNo":69,"categoryName":70,"taxonomyType":66,"taxonomyTypeDesc":67},{"categoryNo":167,"categoryName":168,"taxonomyType":139,"taxonomyTypeDesc":140},[170,185,172,173,99,20,186,104,187,188,189,190,191,109,192,193,27,194],"ui iteration","accessibility","screenshot","Tailwind","polish","ui polish","feedback","redesign","strategy","only"]