[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6G2NXZ7R3CGEN7P3KT3K5A9":3,"skill-same:01M6G2NXZ7R3CGEN7P3KT3K5A9":79},{"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":23,"publishedAt":36,"linkOnly":37,"markdownContent":38,"markdownBody":39,"frontMatter":40,"refName":42,"commitSha":43,"skillDirectory":44,"forksCount":45,"repositoryHtmlUrl":46,"repositoryHomepageUrl":6,"ownerHtmlUrl":47,"ownerBlogUrl":48,"ownerDescription":49,"updatedAt":50,"install":51,"resources":64},"01M6G2NXZ7R3CGEN7P3KT3K5A9","skill-stocktake",null,"Use when auditing Claude skills and commands for quality. Supports Quick Scan (changed skills only) and Full Stocktake modes with sequential subagent batch evaluation.","oabdelmaksoud\u002FAgention","oabdelmaksoud","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F50699149?v=4","01M6D5CVVN778ZCDP1WHS816SP","Omar Abdelmaksoud","01M6D8A4TE76V3DCSH3D94VG1V",2,"MIT","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FAgention\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fskill-stocktake\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35],"skill stocktake","batch","Evaluation","subagent","quality","use","only","scan","commands","full","with","quick","2026-11-10 10:12:30",false,"---\ndescription: \"Use when auditing Claude skills and commands for quality. Supports Quick Scan (changed skills only) and Full Stocktake modes with sequential subagent batch evaluation.\"\norigin: ECC\n---\n\n# skill-stocktake\n\nSlash command (`\u002Fskill-stocktake`) that audits all Claude skills and commands using a quality checklist + AI holistic judgment. Supports two modes: Quick Scan for recently changed skills, and Full Stocktake for a complete review.\n\n## Scope\n\nThe command targets the following paths **relative to the directory where it is invoked**:\n\n| Path | Description |\n|------|-------------|\n| `~\u002F.claude\u002Fskills\u002F` | Global skills (all projects) |\n| `{cwd}\u002F.claude\u002Fskills\u002F` | Project-level skills (if the directory exists) |\n\n**At the start of Phase 1, the command explicitly lists which paths were found and scanned.**\n\n### Targeting a specific project\n\nTo include project-level skills, run from that project's root directory:\n\n```bash\ncd ~\u002Fpath\u002Fto\u002Fmy-project\n\u002Fskill-stocktake\n```\n\nIf the project has no `.claude\u002Fskills\u002F` directory, only global skills and commands are evaluated.\n\n## Modes\n\n| Mode | Trigger | Duration |\n|------|---------|---------|\n| Quick Scan | `results.json` exists (default) | 5–10 min |\n| Full Stocktake | `results.json` absent, or `\u002Fskill-stocktake full` | 20–30 min |\n\n**Results cache:** `~\u002F.claude\u002Fskills\u002Fskill-stocktake\u002Fresults.json`\n\n## Quick Scan Flow\n\nRe-evaluate only skills that have changed since the last run (5–10 min).\n\n1. Read `~\u002F.claude\u002Fskills\u002Fskill-stocktake\u002Fresults.json`\n2. Run: `bash ~\u002F.claude\u002Fskills\u002Fskill-stocktake\u002Fscripts\u002Fquick-diff.sh \\\n         ~\u002F.claude\u002Fskills\u002Fskill-stocktake\u002Fresults.json`\n   (Project dir is auto-detected from `$PWD\u002F.claude\u002Fskills`; pass it explicitly only if needed)\n3. If output is `[]`: report \"No changes since last run.\" and stop\n4. Re-evaluate only those changed files using the same Phase 2 criteria\n5. Carry forward unchanged skills from previous results\n6. Output only the diff\n7. Run: `bash ~\u002F.claude\u002Fskills\u002Fskill-stocktake\u002Fscripts\u002Fsave-results.sh \\\n         ~\u002F.claude\u002Fskills\u002Fskill-stocktake\u002Fresults.json \u003C\u003C\u003C \"$EVAL_RESULTS\"`\n\n## Full Stocktake Flow\n\n### Phase 1 — Inventory\n\nRun: `bash ~\u002F.claude\u002Fskills\u002Fskill-stocktake\u002Fscripts\u002Fscan.sh`\n\nThe script enumerates skill files, extracts frontmatter, and collects UTC mtimes.\nProject dir is auto-detected from `$PWD\u002F.claude\u002Fskills`; pass it explicitly only if needed.\nPresent the scan summary and inventory table from the script output:\n\n```\nScanning:\n  ✓ ~\u002F.claude\u002Fskills\u002F         (17 files)\n  ✗ {cwd}\u002F.claude\u002Fskills\u002F    (not found — global skills only)\n```\n\n| Skill | 7d use | 30d use | Description |\n|-------|--------|---------|-------------|\n\n### Phase 2 — Quality Evaluation\n\nLaunch a Task tool subagent (**Explore agent, model: opus**) with the full inventory and checklist.\nThe subagent reads each skill, applies the checklist, and returns per-skill JSON:\n\n`{ \"verdict\": \"Keep\"|\"Improve\"|\"Update\"|\"Retire\"|\"Merge into [X]\", \"reason\": \"...\" }`\n\n**Chunk guidance:** Process ~20 skills per subagent invocation to keep context manageable. Save intermediate results to `results.json` (`status: \"in_progress\"`) after each chunk.\n\nAfter all skills are evaluated: set `status: \"completed\"`, proceed to Phase 3.\n\n**Resume detection:** If `status: \"in_progress\"` is found on startup, resume from the first unevaluated skill.\n\nEach skill is evaluated against this checklist:\n\n```\n- [ ] Content overlap with other skills checked\n- [ ] Overlap with MEMORY.md \u002F CLAUDE.md checked\n- [ ] Freshness of technical references verified (use WebSearch if tool names \u002F CLI flags \u002F APIs are present)\n- [ ] Usage frequency considered\n```\n\nVerdict criteria:\n\n| Verdict | Meaning |\n|---------|---------|\n| Keep | Useful and current |\n| Improve | Worth keeping, but specific improvements needed |\n| Update | Referenced technology is outdated (verify with WebSearch) |\n| Retire | Low quality, stale, or cost-asymmetric |\n| Merge into [X] | Substantial overlap with another skill; name the merge target |\n\nEvaluation is **holistic AI judgment** — not a numeric rubric. Guiding dimensions:\n- **Actionability**: code examples, commands, or steps that let you act immediately\n- **Scope fit**: name, trigger, and content are aligned; not too broad or narrow\n- **Uniqueness**: value not replaceable by MEMORY.md \u002F CLAUDE.md \u002F another skill\n- **Currency**: technical references work in the current environment\n\n**Reason quality requirements** — the `reason` field must be self-contained and decision-enabling:\n- Do NOT write \"unchanged\" alone — always restate the core evidence\n- For **Retire**: state (1) what specific defect was found, (2) what covers the same need instead\n  - Bad: `\"Superseded\"`\n  - Good: `\"disable-model-invocation: true already set; superseded by continuous-learning-v2 which covers all the same patterns plus confidence scoring. No unique content remains.\"`\n- For **Merge**: name the target and describe what content to integrate\n  - Bad: `\"Overlaps with X\"`\n  - Good: `\"42-line thin content; Step 4 of chatlog-to-article already covers the same workflow. Integrate the 'article angle' tip as a note in that skill.\"`\n- For **Improve**: describe the specific change needed (what section, what action, target size if relevant)\n  - Bad: `\"Too long\"`\n  - Good: `\"276 lines; Section 'Framework Comparison' (L80–140) duplicates ai-era-architecture-principles; delete it to reach ~150 lines.\"`\n- For **Keep** (mtime-only change in Quick Scan): restate the original verdict rationale, do not write \"unchanged\"\n  - Bad: `\"Unchanged\"`\n  - Good: `\"mtime updated but content unchanged. Unique Python reference explicitly imported by rules\u002Fpython\u002F; no overlap found.\"`\n\n### Phase 3 — Summary Table\n\n| Skill | 7d use | Verdict | Reason |\n|-------|--------|---------|--------|\n\n### Phase 4 — Consolidation\n\n1. **Retire \u002F Merge**: present detailed justification per file before confirming with user:\n   - What specific problem was found (overlap, staleness, broken references, etc.)\n   - What alternative covers the same functionality (for Retire: which existing skill\u002Frule; for Merge: the target file and what content to integrate)\n   - Impact of removal (any dependent skills, MEMORY.md references, or workflows affected)\n2. **Improve**: present specific improvement suggestions with rationale:\n   - What to change and why (e.g., \"trim 430→200 lines because sections X\u002FY duplicate python-patterns\")\n   - User decides whether to act\n3. **Update**: present updated content with sources checked\n4. Check MEMORY.md line count; propose compression if >100 lines\n\n## Results File Schema\n\n`~\u002F.claude\u002Fskills\u002Fskill-stocktake\u002Fresults.json`:\n\n**`evaluated_at`**: Must be set to the actual UTC time of evaluation completion.\nObtain via Bash: `date -u +%Y-%m-%dT%H:%M:%SZ`. Never use a date-only approximation like `T00:00:00Z`.\n\n```json\n{\n  \"evaluated_at\": \"2026-02-21T10:00:00Z\",\n  \"mode\": \"full\",\n  \"batch_progress\": {\n    \"total\": 80,\n    \"evaluated\": 80,\n    \"status\": \"completed\"\n  },\n  \"skills\": {\n    \"skill-name\": {\n      \"path\": \"~\u002F.claude\u002Fskills\u002Fskill-name\u002FSKILL.md\",\n      \"verdict\": \"Keep\",\n      \"reason\": \"Concrete, actionable, unique value for X workflow\",\n      \"mtime\": \"2026-01-15T08:30:00Z\"\n    }\n  }\n}\n```\n\n## Notes\n\n- Evaluation is blind: the same checklist applies to all skills regardless of origin (ECC, self-authored, auto-extracted)\n- Archive \u002F delete operations always require explicit user confirmation\n- No verdict branching by skill origin\n","# skill-stocktake\n\nSlash command (`\u002Fskill-stocktake`) that audits all Claude skills and commands using a quality checklist + AI holistic judgment. Supports two modes: Quick Scan for recently changed skills, and Full Stocktake for a complete review.\n\n## Scope\n\nThe command targets the following paths **relative to the directory where it is invoked**:\n\n| Path | Description |\n|------|-------------|\n| `~\u002F.claude\u002Fskills\u002F` | Global skills (all projects) |\n| `{cwd}\u002F.claude\u002Fskills\u002F` | Project-level skills (if the directory exists) |\n\n**At the start of Phase 1, the command explicitly lists which paths were found and scanned.**\n\n### Targeting a specific project\n\nTo include project-level skills, run from that project's root directory:\n\n```bash\ncd ~\u002Fpath\u002Fto\u002Fmy-project\n\u002Fskill-stocktake\n```\n\nIf the project has no `.claude\u002Fskills\u002F` directory, only global skills and commands are evaluated.\n\n## Modes\n\n| Mode | Trigger | Duration |\n|------|---------|---------|\n| Quick Scan | `results.json` exists (default) | 5–10 min |\n| Full Stocktake | `results.json` absent, or `\u002Fskill-stocktake full` | 20–30 min |\n\n**Results cache:** `~\u002F.claude\u002Fskills\u002Fskill-stocktake\u002Fresults.json`\n\n## Quick Scan Flow\n\nRe-evaluate only skills that have changed since the last run (5–10 min).\n\n1. Read `~\u002F.claude\u002Fskills\u002Fskill-stocktake\u002Fresults.json`\n2. Run: `bash ~\u002F.claude\u002Fskills\u002Fskill-stocktake\u002Fscripts\u002Fquick-diff.sh \\\n         ~\u002F.claude\u002Fskills\u002Fskill-stocktake\u002Fresults.json`\n   (Project dir is auto-detected from `$PWD\u002F.claude\u002Fskills`; pass it explicitly only if needed)\n3. If output is `[]`: report \"No changes since last run.\" and stop\n4. Re-evaluate only those changed files using the same Phase 2 criteria\n5. Carry forward unchanged skills from previous results\n6. Output only the diff\n7. Run: `bash ~\u002F.claude\u002Fskills\u002Fskill-stocktake\u002Fscripts\u002Fsave-results.sh \\\n         ~\u002F.claude\u002Fskills\u002Fskill-stocktake\u002Fresults.json \u003C\u003C\u003C \"$EVAL_RESULTS\"`\n\n## Full Stocktake Flow\n\n### Phase 1 — Inventory\n\nRun: `bash ~\u002F.claude\u002Fskills\u002Fskill-stocktake\u002Fscripts\u002Fscan.sh`\n\nThe script enumerates skill files, extracts frontmatter, and collects UTC mtimes.\nProject dir is auto-detected from `$PWD\u002F.claude\u002Fskills`; pass it explicitly only if needed.\nPresent the scan summary and inventory table from the script output:\n\n```\nScanning:\n  ✓ ~\u002F.claude\u002Fskills\u002F         (17 files)\n  ✗ {cwd}\u002F.claude\u002Fskills\u002F    (not found — global skills only)\n```\n\n| Skill | 7d use | 30d use | Description |\n|-------|--------|---------|-------------|\n\n### Phase 2 — Quality Evaluation\n\nLaunch a Task tool subagent (**Explore agent, model: opus**) with the full inventory and checklist.\nThe subagent reads each skill, applies the checklist, and returns per-skill JSON:\n\n`{ \"verdict\": \"Keep\"|\"Improve\"|\"Update\"|\"Retire\"|\"Merge into [X]\", \"reason\": \"...\" }`\n\n**Chunk guidance:** Process ~20 skills per subagent invocation to keep context manageable. Save intermediate results to `results.json` (`status: \"in_progress\"`) after each chunk.\n\nAfter all skills are evaluated: set `status: \"completed\"`, proceed to Phase 3.\n\n**Resume detection:** If `status: \"in_progress\"` is found on startup, resume from the first unevaluated skill.\n\nEach skill is evaluated against this checklist:\n\n```\n- [ ] Content overlap with other skills checked\n- [ ] Overlap with MEMORY.md \u002F CLAUDE.md checked\n- [ ] Freshness of technical references verified (use WebSearch if tool names \u002F CLI flags \u002F APIs are present)\n- [ ] Usage frequency considered\n```\n\nVerdict criteria:\n\n| Verdict | Meaning |\n|---------|---------|\n| Keep | Useful and current |\n| Improve | Worth keeping, but specific improvements needed |\n| Update | Referenced technology is outdated (verify with WebSearch) |\n| Retire | Low quality, stale, or cost-asymmetric |\n| Merge into [X] | Substantial overlap with another skill; name the merge target |\n\nEvaluation is **holistic AI judgment** — not a numeric rubric. Guiding dimensions:\n- **Actionability**: code examples, commands, or steps that let you act immediately\n- **Scope fit**: name, trigger, and content are aligned; not too broad or narrow\n- **Uniqueness**: value not replaceable by MEMORY.md \u002F CLAUDE.md \u002F another skill\n- **Currency**: technical references work in the current environment\n\n**Reason quality requirements** — the `reason` field must be self-contained and decision-enabling:\n- Do NOT write \"unchanged\" alone — always restate the core evidence\n- For **Retire**: state (1) what specific defect was found, (2) what covers the same need instead\n  - Bad: `\"Superseded\"`\n  - Good: `\"disable-model-invocation: true already set; superseded by continuous-learning-v2 which covers all the same patterns plus confidence scoring. No unique content remains.\"`\n- For **Merge**: name the target and describe what content to integrate\n  - Bad: `\"Overlaps with X\"`\n  - Good: `\"42-line thin content; Step 4 of chatlog-to-article already covers the same workflow. Integrate the 'article angle' tip as a note in that skill.\"`\n- For **Improve**: describe the specific change needed (what section, what action, target size if relevant)\n  - Bad: `\"Too long\"`\n  - Good: `\"276 lines; Section 'Framework Comparison' (L80–140) duplicates ai-era-architecture-principles; delete it to reach ~150 lines.\"`\n- For **Keep** (mtime-only change in Quick Scan): restate the original verdict rationale, do not write \"unchanged\"\n  - Bad: `\"Unchanged\"`\n  - Good: `\"mtime updated but content unchanged. Unique Python reference explicitly imported by rules\u002Fpython\u002F; no overlap found.\"`\n\n### Phase 3 — Summary Table\n\n| Skill | 7d use | Verdict | Reason |\n|-------|--------|---------|--------|\n\n### Phase 4 — Consolidation\n\n1. **Retire \u002F Merge**: present detailed justification per file before confirming with user:\n   - What specific problem was found (overlap, staleness, broken references, etc.)\n   - What alternative covers the same functionality (for Retire: which existing skill\u002Frule; for Merge: the target file and what content to integrate)\n   - Impact of removal (any dependent skills, MEMORY.md references, or workflows affected)\n2. **Improve**: present specific improvement suggestions with rationale:\n   - What to change and why (e.g., \"trim 430→200 lines because sections X\u002FY duplicate python-patterns\")\n   - User decides whether to act\n3. **Update**: present updated content with sources checked\n4. Check MEMORY.md line count; propose compression if >100 lines\n\n## Results File Schema\n\n`~\u002F.claude\u002Fskills\u002Fskill-stocktake\u002Fresults.json`:\n\n**`evaluated_at`**: Must be set to the actual UTC time of evaluation completion.\nObtain via Bash: `date -u +%Y-%m-%dT%H:%M:%SZ`. Never use a date-only approximation like `T00:00:00Z`.\n\n```json\n{\n  \"evaluated_at\": \"2026-02-21T10:00:00Z\",\n  \"mode\": \"full\",\n  \"batch_progress\": {\n    \"total\": 80,\n    \"evaluated\": 80,\n    \"status\": \"completed\"\n  },\n  \"skills\": {\n    \"skill-name\": {\n      \"path\": \"~\u002F.claude\u002Fskills\u002Fskill-name\u002FSKILL.md\",\n      \"verdict\": \"Keep\",\n      \"reason\": \"Concrete, actionable, unique value for X workflow\",\n      \"mtime\": \"2026-01-15T08:30:00Z\"\n    }\n  }\n}\n```\n\n## Notes\n\n- Evaluation is blind: the same checklist applies to all skills regardless of origin (ECC, self-authored, auto-extracted)\n- Archive \u002F delete operations always require explicit user confirmation\n- No verdict branching by skill origin\n",{"origin":41,"description":7},"ECC","main","a318f48de3c5718e8ea2e9f6fae7790e8a759e85","upstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fskill-stocktake",0,"https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FAgention","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fo-abdelmaksoud\u002F","Full-Stack Engineer | AI Systems Architect | Building autonomous multi-agent systems","2026-03-08 21:23:03",{"source":8,"skillName":5,"commands":52,"prompt":62,"zipAvailable":63},[53,56,59],{"tool":54,"command":55},"npx","npx skills add oabdelmaksoud\u002FAgention --skill skill-stocktake",{"tool":57,"command":58},"bunx","bunx skills add oabdelmaksoud\u002FAgention --skill skill-stocktake",{"tool":60,"command":61},"pnpm","pnpm dlx skills add oabdelmaksoud\u002FAgention --skill skill-stocktake","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FAgention\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fskill-stocktake\u002FSKILL.md",true,[65,71,75],{"path":66,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":69,"sourceHtmlUrl":70},"scripts\u002Fquick-diff.sh","SCRIPT","脚本",3271,"https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FAgention\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fskill-stocktake\u002Fscripts\u002Fquick-diff.sh",{"path":72,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":73,"sourceHtmlUrl":74},"scripts\u002Fsave-results.sh",1952,"https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FAgention\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fskill-stocktake\u002Fscripts\u002Fsave-results.sh",{"path":76,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":77,"sourceHtmlUrl":78},"scripts\u002Fscan.sh",5677,"https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FAgention\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fskill-stocktake\u002Fscripts\u002Fscan.sh",[80,101,115,145,171,191],{"skillNo":81,"name":82,"nameZh":6,"description":83,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":89,"publishedAt":36},"01M6G2QFCBNBYAJF2KTK85G9A6","visa-doc-translate","Translate visa application documents (images) to English and create a bilingual PDF with original and translation","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FAgention\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fvisa-doc-translate\u002FSKILL.md",[86],{"categoryNo":87,"categoryName":88,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000002","文档处理",[90,91,92,93,34,94,95,96,97,98,99,100],"translate","doc","visa doc translate","bilingual","english","application","PDF","translation","documents","create","images",{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":107,"publishedAt":36},"01M6G2QB09TSK6BY4ME5X20EVQ","verification-loop","A comprehensive verification system for Claude Code sessions.","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FAgention\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fverification-loop\u002FSKILL.md",[],[108,109,110,111,112,113,114],"verification","loop","verification loop","sessions","code","claude code sessions","system",{"skillNo":116,"name":117,"nameZh":6,"description":118,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":119,"categories":120,"keywords":130,"publishedAt":36},"01M6G2Q6V2F7G03VAAF27FXPJR","tdd-workflow","Use this skill when writing new features, fixing bugs, or refactoring code. Enforces test-driven development with 80%+ coverage including unit, integration, and E2E tests.","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FAgention\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Ftdd-workflow\u002FSKILL.md",[121,124,125],{"categoryNo":122,"categoryName":123,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":126,"categoryName":127,"taxonomyType":128,"taxonomyTypeDesc":129},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[131,132,133,29,134,135,136,137,138,112,139,140,141,142,34,143,144],"workflow","tdd","tdd workflow","unit","coverage","refactoring","e2e","integration","development","e2e tests","tests","driven","test","writing",{"skillNo":146,"name":147,"nameZh":6,"description":148,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":149,"categories":150,"keywords":151,"publishedAt":36},"01M6G2Q359YJRWAR2PFCEQAXF3","swiftui-patterns","SwiftUI architecture patterns, state management with @Observable, view composition, navigation, performance optimization, and modern iOS\u002FmacOS UI best practices.","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FAgention\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fswiftui-patterns\u002FSKILL.md",[],[152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,34],"patterns","swiftui","swiftui patterns","architecture","macos","performance","state management","best practices","state","ui","Optimization","ios","architecture patterns","Composition","performance optimization","view","management","swiftui architecture","navigation",{"skillNo":172,"name":173,"nameZh":6,"description":174,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":175,"categories":176,"keywords":178,"publishedAt":36},"01M6G2PY8B2FWZTWPZ84H83Y7C","swift-protocol-di-testing","Protocol-based dependency injection for testable Swift code — mock file system, network, and external APIs using focused protocols and Swift Testing.","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FAgention\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fswift-protocol-di-testing\u002FSKILL.md",[177],{"categoryNo":122,"categoryName":123,"taxonomyType":21,"taxonomyTypeDesc":22},[179,180,181,182,112,183,184,185,186,114,187,188,189,190],"swift protocol di testing","protocol","swift","testing","protocols","file","network","injection","dependency","swift testing","dependency injection","mock",{"skillNo":192,"name":193,"nameZh":6,"description":194,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":195,"categories":196,"keywords":197,"publishedAt":36},"01M6G2PSCN2GXV9FFZDRRRWVB6","swift-concurrency-6-2","Swift 6.2 Approachable Concurrency — single-threaded by default, @concurrent for explicit background offloading, isolated conformances for main actor types.","https:\u002F\u002Fgithub.com\u002Foabdelmaksoud\u002FAgention\u002Fblob\u002Fmain\u002Fupstream-sync\u002Fwork\u002Fecc\u002Fskills\u002Fswift-concurrency-6-2\u002FSKILL.md",[],[198,199,200,181,201,42,202],"concurrency","swift concurrency","swift concurrency 6 2","default","types"]