[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CSZ6B0GH2N75WNPPESCDHX":3,"skill-same:01M6CSZ6B0GH2N75WNPPESCDHX":313},{"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":26,"publishedAt":46,"linkOnly":47,"markdownContent":48,"markdownBody":49,"frontMatter":50,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":14,"repositoryHtmlUrl":55,"repositoryHomepageUrl":6,"ownerHtmlUrl":56,"ownerBlogUrl":57,"ownerDescription":6,"updatedAt":58,"install":59,"resources":72},"01M6CSZ6B0GH2N75WNPPESCDHX","tdd",null,"Test-driven development loop (red-green-refactor) with commit-based phase state and Jira traceability. Use when the user wants to build a feature or fix a bug test-first, mentions \"tdd\", \"red-green-refactor\", or \"test-first\". Replaces the tdg plugin — combines its commit\u002Fphase discipline with seam-based test quality rules from kb Testing Standards.","goffity\u002Fdev-km","goffity","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F778547?v=4","01M6CSW9QQ32YQYTRKQWVKYCAY","Goffity","01M6CSW9VQFVZ3QS6RB4VYJGE6",0,"MIT","https:\u002F\u002Fgithub.com\u002Fgoffity\u002Fdev-km\u002Fblob\u002Fmain\u002Fskills\u002Ftdd\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",[5,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],"green","testing","build","red-green-refactor","standards","discipline","use","kb","fix","Rules","quality","loop","first","state","development","jira","plugin","commit","test","2026-11-10 10:12:30",false,"---\nname: tdd\ndescription: Test-driven development loop (red-green-refactor) with commit-based phase state and Jira traceability. Use when the user wants to build a feature or fix a bug test-first, mentions \"tdd\", \"red-green-refactor\", or \"test-first\". Replaces the tdg plugin — combines its commit\u002Fphase discipline with seam-based test quality rules from kb Testing Standards.\nargument-hint: \"[feature\u002Fbug description or RUAYS-XXXX]\"\n---\n\n# TDD Loop\n\nRed → green loop engine with recoverable state (git commits) and issue traceability.\n\n**This skill owns the loop mechanics only.** What makes a *good* test — seams, anti-patterns (tautological, implementation-coupled), mocking boundaries — is defined in one place: **`kb\u002F02-patterns\u002Fstandards\u002FTesting Standards.md` §Test Quality** (kol-brain vault, reachable via the `kb\u002F` symlink in kol-architecture or `~\u002FDevelopment\u002Fkol\u002Fkol-brain\u002F`). Read that section before the first cycle and follow it on every cycle. Do not restate its rules here.\n\n## Step 0: Project Config\n\nDiscover how to run tests from the repo itself (no config file needed):\n\n- Read the repo's `CLAUDE.md` and `Makefile` — kol convention: `make test`, `make build`\n- Single test: `go test .\u002F\u003Cpkg>\u002F... -run '\u003CTestName>'` (use `go.work` at workspace root when the module lacks test deps — e.g. game-repository)\n- Coverage: `go test .\u002F\u003Cpkg>\u002F... -cover`\n- If a legacy `TDG.md` exists, honor it (backward compat)\n\n## Step 1: Traceability\n\nIdentify the Jira ticket before starting:\n\n1. Check the user's message for `RUAYS-XXXX`\n2. Check the branch name (e.g. `feature\u002FRUAYS-2041-slip-only-flag`)\n3. If not found, ask the user\n\nEvery commit in the loop ends with the ticket: `(RUAYS-XXXX)`.\n\n## Step 2: Agree Seams (GATE — before any test)\n\nList the seams under test — the public interfaces where behavior will be observed (service interface, handler HTTP contract, repository query layer) — per the seam table in kb §Test Quality. Confirm with the user via AskUserQuestion before writing any test. **No test is written at an unconfirmed seam.** This is how testing effort lands on critical paths instead of every edge case.\n\nThen break the work into vertical slices: one behavior per cycle. Do **not** draft implementation code first — the failing test at the seam is the design step.\n\n## Step 3: Check Phase\n\n```bash\nbash ~\u002F.claude\u002Fskills\u002Ftdd\u002Fscripts\u002Ftdd-phase.sh\n```\n\nReads commits since merge-base with develop\u002Fmain, so state survives session restarts and ignores unrelated commits. Resume from the phase it reports:\n\n| Phase | Meaning | Next action |\n|---|---|---|\n| `unknown` \u002F `refactor` | No cycle in progress | Start RED for the next slice |\n| `red` | Failing test committed | Go GREEN |\n| `green` | Implementation committed | Next slice (RED) or refactor |\n\n## The Loop\n\n### RED — failing test first\n\n1. Write **one** test for the current slice, at an agreed seam, following kb §Test Quality (expected values from an independent source; name says WHAT not HOW)\n2. Run that single test — **it must fail for the right reason** (assertion, not compile error you didn't intend)\n3. Commit (only the files you edited, never `git add .`):\n   `test(red): \u003Cbehavior> (RUAYS-XXXX)`\n\n### GREEN — minimal implementation\n\n1. Verify the last phase is `red` (script)\n2. Write only enough code to pass the test — no speculative features, no anticipating future tests\n3. Run the single test (pass), then the package's tests (no regressions)\n4. Commit: `feat(green): \u003Cbehavior> (RUAYS-XXXX)` — use `fix(green):` for bug fixes\n\n### REFACTOR — optional, light only\n\nSmall cleanups (naming, extraction) while green: commit as `refactor: \u003Cwhat> (RUAYS-XXXX)`. Structural redesign belongs to the review stage (`\u002Fcode-review`, `\u002Fpr`), not the loop — don't let refactoring grow the cycle.\n\nThen loop back to RED for the next slice, or finish.\n\n## Rules\n\n- **One slice per cycle**: one seam, one test, one minimal implementation\n- **Red before green, always** — never commit implementation without a preceding `test(red)` commit for it\n- Commit format is Conventional Commits (passes commitlint); phase lives in the scope. Squash-merge via `\u002Fpr` keeps red\u002Fgreen history out of main\n- Bug fixes: the RED test is the regression test (must fail on the unfixed code) — satisfies kb \"fix bug ต้องมี regression test\"\n- Track cycles with the Todo list: `☐ RED: \u003Cslice>` → `☐ GREEN: \u003Cslice>` per slice\n\n## Finish\n\nWhen all slices are done: run the full `make test` + coverage on touched packages (kb: ≥ 80% for touched functions), then hand off to `\u002Fpr`.\n","# TDD Loop\n\nRed → green loop engine with recoverable state (git commits) and issue traceability.\n\n**This skill owns the loop mechanics only.** What makes a *good* test — seams, anti-patterns (tautological, implementation-coupled), mocking boundaries — is defined in one place: **`kb\u002F02-patterns\u002Fstandards\u002FTesting Standards.md` §Test Quality** (kol-brain vault, reachable via the `kb\u002F` symlink in kol-architecture or `~\u002FDevelopment\u002Fkol\u002Fkol-brain\u002F`). Read that section before the first cycle and follow it on every cycle. Do not restate its rules here.\n\n## Step 0: Project Config\n\nDiscover how to run tests from the repo itself (no config file needed):\n\n- Read the repo's `CLAUDE.md` and `Makefile` — kol convention: `make test`, `make build`\n- Single test: `go test .\u002F\u003Cpkg>\u002F... -run '\u003CTestName>'` (use `go.work` at workspace root when the module lacks test deps — e.g. game-repository)\n- Coverage: `go test .\u002F\u003Cpkg>\u002F... -cover`\n- If a legacy `TDG.md` exists, honor it (backward compat)\n\n## Step 1: Traceability\n\nIdentify the Jira ticket before starting:\n\n1. Check the user's message for `RUAYS-XXXX`\n2. Check the branch name (e.g. `feature\u002FRUAYS-2041-slip-only-flag`)\n3. If not found, ask the user\n\nEvery commit in the loop ends with the ticket: `(RUAYS-XXXX)`.\n\n## Step 2: Agree Seams (GATE — before any test)\n\nList the seams under test — the public interfaces where behavior will be observed (service interface, handler HTTP contract, repository query layer) — per the seam table in kb §Test Quality. Confirm with the user via AskUserQuestion before writing any test. **No test is written at an unconfirmed seam.** This is how testing effort lands on critical paths instead of every edge case.\n\nThen break the work into vertical slices: one behavior per cycle. Do **not** draft implementation code first — the failing test at the seam is the design step.\n\n## Step 3: Check Phase\n\n```bash\nbash ~\u002F.claude\u002Fskills\u002Ftdd\u002Fscripts\u002Ftdd-phase.sh\n```\n\nReads commits since merge-base with develop\u002Fmain, so state survives session restarts and ignores unrelated commits. Resume from the phase it reports:\n\n| Phase | Meaning | Next action |\n|---|---|---|\n| `unknown` \u002F `refactor` | No cycle in progress | Start RED for the next slice |\n| `red` | Failing test committed | Go GREEN |\n| `green` | Implementation committed | Next slice (RED) or refactor |\n\n## The Loop\n\n### RED — failing test first\n\n1. Write **one** test for the current slice, at an agreed seam, following kb §Test Quality (expected values from an independent source; name says WHAT not HOW)\n2. Run that single test — **it must fail for the right reason** (assertion, not compile error you didn't intend)\n3. Commit (only the files you edited, never `git add .`):\n   `test(red): \u003Cbehavior> (RUAYS-XXXX)`\n\n### GREEN — minimal implementation\n\n1. Verify the last phase is `red` (script)\n2. Write only enough code to pass the test — no speculative features, no anticipating future tests\n3. Run the single test (pass), then the package's tests (no regressions)\n4. Commit: `feat(green): \u003Cbehavior> (RUAYS-XXXX)` — use `fix(green):` for bug fixes\n\n### REFACTOR — optional, light only\n\nSmall cleanups (naming, extraction) while green: commit as `refactor: \u003Cwhat> (RUAYS-XXXX)`. Structural redesign belongs to the review stage (`\u002Fcode-review`, `\u002Fpr`), not the loop — don't let refactoring grow the cycle.\n\nThen loop back to RED for the next slice, or finish.\n\n## Rules\n\n- **One slice per cycle**: one seam, one test, one minimal implementation\n- **Red before green, always** — never commit implementation without a preceding `test(red)` commit for it\n- Commit format is Conventional Commits (passes commitlint); phase lives in the scope. Squash-merge via `\u002Fpr` keeps red\u002Fgreen history out of main\n- Bug fixes: the RED test is the regression test (must fail on the unfixed code) — satisfies kb \"fix bug ต้องมี regression test\"\n- Track cycles with the Todo list: `☐ RED: \u003Cslice>` → `☐ GREEN: \u003Cslice>` per slice\n\n## Finish\n\nWhen all slices are done: run the full `make test` + coverage on touched packages (kb: ≥ 80% for touched functions), then hand off to `\u002Fpr`.\n",{"name":5,"description":7,"argument-hint":51},"[feature\u002Fbug description or RUAYS-XXXX]","main","835c1f754a3eab31c2e7eb408d21431a98c633ee","skills\u002Ftdd","https:\u002F\u002Fgithub.com\u002Fgoffity\u002Fdev-km","https:\u002F\u002Fgithub.com\u002Fgoffity","www.narongwate.com","2026-11-10 01:34:18",{"source":8,"skillName":5,"commands":60,"prompt":70,"zipAvailable":71},[61,64,67],{"tool":62,"command":63},"npx","npx skills add goffity\u002Fdev-km --skill tdd",{"tool":65,"command":66},"bunx","bunx skills add goffity\u002Fdev-km --skill tdd",{"tool":68,"command":69},"pnpm","pnpm dlx skills add goffity\u002Fdev-km --skill tdd","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fgoffity\u002Fdev-km\u002Fblob\u002Fmain\u002Fskills\u002Ftdd\u002FSKILL.md",true,[73,79,85,89,94,98,102,105,109,113,117,121,125,129,133,137,141,145,149,153,157,161,165,169,173,177,181,185,189,193,197,201,205,209,213,217,221,225,229,233,237,241,245,249,253,257,261,265,269,273,277,281,285,289,293,297,301,305,309],{"path":74,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":77,"sourceHtmlUrl":78},"editing.md","REFERENCE","参考文档",6885,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fediting.md",{"path":80,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":83,"sourceHtmlUrl":84},"LICENSE.txt","LICENSE","许可证",1467,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002FLICENSE.txt",{"path":86,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":87,"sourceHtmlUrl":88},"pptxgenjs.md",12819,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fpptxgenjs.md",{"path":90,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":14,"sourceHtmlUrl":93},"scripts\u002F__init__.py","SCRIPT","脚本","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002F__init__.py",{"path":95,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":96,"sourceHtmlUrl":97},"scripts\u002Fadd_slide.py",6872,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Fadd_slide.py",{"path":99,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":100,"sourceHtmlUrl":101},"scripts\u002Fclean.py",9583,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Fclean.py",{"path":103,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":14,"sourceHtmlUrl":104},"scripts\u002Foffice\u002Fhelpers\u002F__init__.py","https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fhelpers\u002F__init__.py",{"path":106,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":107,"sourceHtmlUrl":108},"scripts\u002Foffice\u002Fhelpers\u002Fmerge_runs.py",5567,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fhelpers\u002Fmerge_runs.py",{"path":110,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":111,"sourceHtmlUrl":112},"scripts\u002Foffice\u002Fhelpers\u002Fsimplify_redlines.py",5754,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fhelpers\u002Fsimplify_redlines.py",{"path":114,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":115,"sourceHtmlUrl":116},"scripts\u002Foffice\u002Fpack.py",4991,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fpack.py",{"path":118,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":119,"sourceHtmlUrl":120},"scripts\u002Foffice\u002Fschemas\u002Fecma\u002Ffouth-edition\u002Fopc-contentTypes.xsd",1963,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002Fecma\u002Ffouth-edition\u002Fopc-contentTypes.xsd",{"path":122,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":123,"sourceHtmlUrl":124},"scripts\u002Foffice\u002Fschemas\u002Fecma\u002Ffouth-edition\u002Fopc-coreProperties.xsd",2515,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002Fecma\u002Ffouth-edition\u002Fopc-coreProperties.xsd",{"path":126,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":127,"sourceHtmlUrl":128},"scripts\u002Foffice\u002Fschemas\u002Fecma\u002Ffouth-edition\u002Fopc-digSig.xsd",2856,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002Fecma\u002Ffouth-edition\u002Fopc-digSig.xsd",{"path":130,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":131,"sourceHtmlUrl":132},"scripts\u002Foffice\u002Fschemas\u002Fecma\u002Ffouth-edition\u002Fopc-relationships.xsd",1344,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002Fecma\u002Ffouth-edition\u002Fopc-relationships.xsd",{"path":134,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":135,"sourceHtmlUrl":136},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-chart.xsd",74984,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-chart.xsd",{"path":138,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":139,"sourceHtmlUrl":140},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-chartDrawing.xsd",6956,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-chartDrawing.xsd",{"path":142,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":143,"sourceHtmlUrl":144},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-diagram.xsd",51302,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-diagram.xsd",{"path":146,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":147,"sourceHtmlUrl":148},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-lockedCanvas.xsd",624,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-lockedCanvas.xsd",{"path":150,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":151,"sourceHtmlUrl":152},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-main.xsd",152039,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-main.xsd",{"path":154,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":155,"sourceHtmlUrl":156},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-picture.xsd",1231,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-picture.xsd",{"path":158,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":159,"sourceHtmlUrl":160},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-spreadsheetDrawing.xsd",8862,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-spreadsheetDrawing.xsd",{"path":162,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":163,"sourceHtmlUrl":164},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-wordprocessingDrawing.xsd",14795,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fdml-wordprocessingDrawing.xsd",{"path":166,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":167,"sourceHtmlUrl":168},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fpml.xsd",83612,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fpml.xsd",{"path":170,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":171,"sourceHtmlUrl":172},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-additionalCharacteristics.xsd",1269,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-additionalCharacteristics.xsd",{"path":174,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":175,"sourceHtmlUrl":176},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-bibliography.xsd",7328,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-bibliography.xsd",{"path":178,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":179,"sourceHtmlUrl":180},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-commonSimpleTypes.xsd",6382,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-commonSimpleTypes.xsd",{"path":182,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":183,"sourceHtmlUrl":184},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-customXmlDataProperties.xsd",1248,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-customXmlDataProperties.xsd",{"path":186,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":187,"sourceHtmlUrl":188},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-customXmlSchemaProperties.xsd",880,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-customXmlSchemaProperties.xsd",{"path":190,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":191,"sourceHtmlUrl":192},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-documentPropertiesCustom.xsd",2608,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-documentPropertiesCustom.xsd",{"path":194,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":195,"sourceHtmlUrl":196},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-documentPropertiesExtended.xsd",3507,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-documentPropertiesExtended.xsd",{"path":198,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":199,"sourceHtmlUrl":200},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-documentPropertiesVariantTypes.xsd",7507,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-documentPropertiesVariantTypes.xsd",{"path":202,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":203,"sourceHtmlUrl":204},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-math.xsd",23313,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-math.xsd",{"path":206,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":207,"sourceHtmlUrl":208},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-relationshipReference.xsd",1367,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fshared-relationshipReference.xsd",{"path":210,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":211,"sourceHtmlUrl":212},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fsml.xsd",242277,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fsml.xsd",{"path":214,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":215,"sourceHtmlUrl":216},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fvml-main.xsd",26148,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fvml-main.xsd",{"path":218,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":219,"sourceHtmlUrl":220},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fvml-officeDrawing.xsd",25279,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fvml-officeDrawing.xsd",{"path":222,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":223,"sourceHtmlUrl":224},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fvml-presentationDrawing.xsd",535,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fvml-presentationDrawing.xsd",{"path":226,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":227,"sourceHtmlUrl":228},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fvml-spreadsheetDrawing.xsd",5712,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fvml-spreadsheetDrawing.xsd",{"path":230,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":231,"sourceHtmlUrl":232},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fvml-wordprocessingDrawing.xsd",4010,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fvml-wordprocessingDrawing.xsd",{"path":234,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":235,"sourceHtmlUrl":236},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fwml.xsd",171367,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fwml.xsd",{"path":238,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":239,"sourceHtmlUrl":240},"scripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fxml.xsd",4646,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002FISO-IEC29500-4_2016\u002Fxml.xsd",{"path":242,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":243,"sourceHtmlUrl":244},"scripts\u002Foffice\u002Fschemas\u002Fmce\u002Fmc.xsd",3127,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002Fmce\u002Fmc.xsd",{"path":246,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":247,"sourceHtmlUrl":248},"scripts\u002Foffice\u002Fschemas\u002Fmicrosoft\u002Fwml-2010.xsd",26549,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002Fmicrosoft\u002Fwml-2010.xsd",{"path":250,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":251,"sourceHtmlUrl":252},"scripts\u002Foffice\u002Fschemas\u002Fmicrosoft\u002Fwml-2012.xsd",3745,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002Fmicrosoft\u002Fwml-2012.xsd",{"path":254,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":255,"sourceHtmlUrl":256},"scripts\u002Foffice\u002Fschemas\u002Fmicrosoft\u002Fwml-2018.xsd",901,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002Fmicrosoft\u002Fwml-2018.xsd",{"path":258,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":259,"sourceHtmlUrl":260},"scripts\u002Foffice\u002Fschemas\u002Fmicrosoft\u002Fwml-cex-2018.xsd",1778,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002Fmicrosoft\u002Fwml-cex-2018.xsd",{"path":262,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":263,"sourceHtmlUrl":264},"scripts\u002Foffice\u002Fschemas\u002Fmicrosoft\u002Fwml-cid-2016.xsd",1002,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002Fmicrosoft\u002Fwml-cid-2016.xsd",{"path":266,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":267,"sourceHtmlUrl":268},"scripts\u002Foffice\u002Fschemas\u002Fmicrosoft\u002Fwml-sdtdatahash-2020.xsd",600,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002Fmicrosoft\u002Fwml-sdtdatahash-2020.xsd",{"path":270,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":271,"sourceHtmlUrl":272},"scripts\u002Foffice\u002Fschemas\u002Fmicrosoft\u002Fwml-symex-2015.xsd",745,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fschemas\u002Fmicrosoft\u002Fwml-symex-2015.xsd",{"path":274,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":275,"sourceHtmlUrl":276},"scripts\u002Foffice\u002Fsoffice.py",5301,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fsoffice.py",{"path":278,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":279,"sourceHtmlUrl":280},"scripts\u002Foffice\u002Funpack.py",4052,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Funpack.py",{"path":282,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":283,"sourceHtmlUrl":284},"scripts\u002Foffice\u002Fvalidate.py",3668,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fvalidate.py",{"path":286,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":287,"sourceHtmlUrl":288},"scripts\u002Foffice\u002Fvalidators\u002F__init__.py",336,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fvalidators\u002F__init__.py",{"path":290,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":291,"sourceHtmlUrl":292},"scripts\u002Foffice\u002Fvalidators\u002Fbase.py",32651,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fbase.py",{"path":294,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":295,"sourceHtmlUrl":296},"scripts\u002Foffice\u002Fvalidators\u002Fdocx.py",16376,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fdocx.py",{"path":298,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":299,"sourceHtmlUrl":300},"scripts\u002Foffice\u002Fvalidators\u002Fpptx.py",9824,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fpptx.py",{"path":302,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":303,"sourceHtmlUrl":304},"scripts\u002Foffice\u002Fvalidators\u002Fredlining.py",8918,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Foffice\u002Fvalidators\u002Fredlining.py",{"path":306,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":307,"sourceHtmlUrl":308},"scripts\u002Ftdd-phase.sh",1515,"https:\u002F\u002Fgithub.com\u002Fgoffity\u002Fdev-km\u002Fblob\u002Fmain\u002Fskills\u002Ftdd\u002Fscripts\u002Ftdd-phase.sh",{"path":310,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":311,"sourceHtmlUrl":312},"scripts\u002Fthumbnail.py",8785,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FPPT-Design\u002Fpptx\u002Fscripts\u002Fthumbnail.py",[314,325,337,345,360,370],{"skillNo":315,"name":316,"nameZh":6,"description":317,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":318,"categories":319,"keywords":320,"publishedAt":46},"01M6CSZ9DKT0CG5Y2HE8F5D9KX","wait-what","Stop. That last message did not land: re-pitch it.","https:\u002F\u002Fgithub.com\u002Fgoffity\u002Fdev-km\u002Fblob\u002Fmain\u002Fskills\u002Fwait-what\u002FSKILL.md",[],[321,322,323,324],"wait what","land","stop","message",{"skillNo":326,"name":327,"nameZh":6,"description":328,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":329,"categories":330,"keywords":331,"publishedAt":46},"01M6CSZ3PNYFR2K5GB197TA7GP","td","Creates post-task retrospectives with Before\u002FAfter context and session documentation.","https:\u002F\u002Fgithub.com\u002Fgoffity\u002Fdev-km\u002Fblob\u002Fmain\u002Fskills\u002Ftd\u002FSKILL.md",[],[327,332,333,334,335,336],"session","documentation","context","task","done",{"skillNo":338,"name":339,"nameZh":6,"description":340,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":341,"categories":342,"keywords":343,"publishedAt":46},"01M6CSZ1TZKVNHS07B4EBQEKFQ","summary","Generates weekly or monthly session summaries from retrospectives and activity logs.","https:\u002F\u002Fgithub.com\u002Fgoffity\u002Fdev-km\u002Fblob\u002Fmain\u002Fskills\u002Fsummary\u002FSKILL.md",[],[339,344,332],"logs",{"skillNo":346,"name":347,"nameZh":6,"description":348,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":349,"categories":350,"keywords":354,"publishedAt":46},"01M6CSYZQHMHJT9ZV8FYY06XZN","share","Shares knowledge across projects by copying to shared-knowledge directory with cross-project metadata.","https:\u002F\u002Fgithub.com\u002Fgoffity\u002Fdev-km\u002Fblob\u002Fmain\u002Fskills\u002Fshare\u002FSKILL.md",[351],{"categoryNo":352,"categoryName":353,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究",[347,355,356,357,358,359],"file","projects","knowledge","metadata","directory",{"skillNo":361,"name":362,"nameZh":6,"description":363,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":364,"categories":365,"keywords":366,"publishedAt":46},"01M6CSYXFZ7D7EKEFXCQE8QW7S","session-analyzer","Analyzes git changes and creates retrospective drafts with Before\u002FAfter context.","https:\u002F\u002Fgithub.com\u002Fgoffity\u002Fdev-km\u002Fblob\u002Fmain\u002Fskills\u002Fsession-analyzer\u002FSKILL.md",[],[367,332,334,368,369],"session analyzer","git","retrospective",{"skillNo":371,"name":372,"nameZh":6,"description":373,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":374,"categories":375,"keywords":376,"publishedAt":46},"01M6CSYTMN2MV6HFWMNKT1CEGK","security-auditor","Audits code for security vulnerabilities including OWASP Top 10 and authentication issues.","https:\u002F\u002Fgithub.com\u002Fgoffity\u002Fdev-km\u002Fblob\u002Fmain\u002Fskills\u002Fsecurity-auditor\u002FSKILL.md",[],[377,378,379,380,381,382,383,384],"security","security auditor","owasp","issues","authentication","code","owasp top 10","vulnerabilities"]