[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6JZ7FE9FD587C2ZTGFNGE0B":3,"skill-same:01M6JZ7FE9FD587C2ZTGFNGE0B":84},{"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":28,"publishedAt":49,"linkOnly":50,"markdownContent":51,"markdownBody":52,"frontMatter":53,"refName":61,"commitSha":62,"skillDirectory":63,"forksCount":14,"repositoryHtmlUrl":64,"repositoryHomepageUrl":65,"ownerHtmlUrl":66,"ownerBlogUrl":67,"ownerDescription":68,"updatedAt":69,"install":70,"resources":83},"01M6JZ7FE9FD587C2ZTGFNGE0B","code-quality-scan",null,"Automated cross-repo code quality scanning for AprovanLabs. Scans all repos for lint errors, type errors, dead code, duplication, config drift, and dependency misalignment, then creates scoped improvement issues under the Code Quality Sentinel initiative.","AprovanLabs\u002Fregistry","AprovanLabs","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F98067664?v=4","01M6JZ76275AQXDRTWG24G7DA1","Aprovan Labs","01M6JZ7661HR149C3EMX8C7QHA",0,"MIT","https:\u002F\u002Fgithub.com\u002FAprovanLabs\u002Fregistry\u002Fblob\u002Fmain\u002Fskills\u002Fcode-quality-scan\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],"code quality scan","code quality","code","quality","quality scan","scan","dependency","improvement","for","errors","drift","duplication","alignment","config","scanning","repo","dead code","sentinel","issues","repos","2026-11-10 10:12:30",false,"---\nname: code-quality-scan\ndescription: Automated cross-repo code quality scanning for AprovanLabs. Scans all repos for lint errors, type errors, dead code, duplication, config drift, and dependency misalignment, then creates scoped improvement issues under the Code Quality Sentinel initiative.\ntriggers:\n  - code quality\n  - scan\n  - lint\n  - dead code\n  - duplicate code\n  - config drift\n  - dependency alignment\n  - quality sentinel\n  - cross-repo\n---\n\n# Code Quality Scan\n\nThis skill defines the Sentinel scanning workflow — a systematic, cross-repo quality audit that discovers lint errors, dead code, duplication, config inconsistencies, and dependency drift across all AprovanLabs repositories, then creates scoped improvement issues.\n\n---\n\n## Per-Repo Scan Config\n\n| Repo | Language | Scan Tools | Notes |\n|---|---|---|---|\n| core | TypeScript | eslint, tsc, knip, jscpd | Monorepo with pnpm |\n| registry | TypeScript | eslint, tsc, knip, jscpd | Monorepo with pnpm |\n| apprentice | TBD | TBD | Investigate stack before scanning |\n| patchwork | TBD | TBD | Investigate stack before scanning |\n| zolvery | TBD | TBD | Investigate stack before scanning |\n| projects | TBD | TBD | Investigate stack before scanning |\n| aprovan.com | TypeScript | eslint, build | Static website |\n| data-science | Python | flake8, mypy, jscpd | Python stack |\n\n---\n\n## Phase 1 — Repo Discovery\n\n1. List all AprovanLabs repos from the workspace:\n\n```bash\nmultica repo checkout https:\u002F\u002Fgithub.com\u002FAprovanLabs\u002Fcore\nmultica repo checkout https:\u002F\u002Fgithub.com\u002FAprovanLabs\u002Fregistry\nmultica repo checkout https:\u002F\u002Fgithub.com\u002FAprovanLabs\u002Fapprentice\nmultica repo checkout https:\u002F\u002Fgithub.com\u002FAprovanLabs\u002Fpatchwork\nmultica repo checkout https:\u002F\u002Fgithub.com\u002FAprovanLabs\u002Fzolvery\nmultica repo checkout https:\u002F\u002Fgithub.com\u002FAprovanLabs\u002Fprojects\nmultica repo checkout https:\u002F\u002Fgithub.com\u002FAprovanLabs\u002Faprovan.com\nmultica repo checkout https:\u002F\u002Fgithub.com\u002FAprovanLabs\u002Fdata-science\n```\n\n2. For each repo, identify its type:\n   - **TypeScript**: has `tsconfig.json` and\u002For `package.json` with TypeScript deps\n   - **Python**: has `pyproject.toml`, `setup.py`, or `.python-version`\n   - **Mixed**: both TypeScript and Python indicators\n3. Select applicable scan tools from the per-repo config table above\n4. For repos marked TBD: run a quick investigation (`ls`, read `package.json`\u002F`pyproject.toml`), update the config table, and note findings\n\n---\n\n## Phase 2 — Per-Repo Scanning\n\nFor each repo, run the applicable scan tools. Capture all findings with file paths, line numbers, and severity.\n\n### 2.1 Deslopify Scan\n\nIf `deslopify` is available and configured for the repo:\n\n```bash\ndeslopify scan --path .\ndeslopify backlog\n```\n\nCapture the backlog items as findings.\n\n### 2.2 Lint (TypeScript repos)\n\n```bash\npnpm lint\n```\n\nCapture every lint error with file, line, rule name, and message. Warnings are informational; errors are high-severity.\n\n### 2.3 Type Check (TypeScript repos)\n\n```bash\npnpm typecheck\n```\n\nCapture every type error with file, line, and message. Type errors are high-severity.\n\n### 2.4 Dead Code Detection\n\n```bash\nnpx knip --no-progress\n```\n\nCapture unused exports, unreachable files, and duplicate dependencies. Severity: medium.\n\n### 2.5 Duplicate Code Detection\n\n```bash\nnpx jscpd --threshold 5\n```\n\nCapture duplicate blocks with file pairs and line ranges. Severity: medium.\n\nFor Python repos, use AST-based duplication tools or manual review.\n\n### 2.6 Python Lint and Type Check\n\n```bash\nflake8 . --count --statistics\nmypy . --ignore-missing-imports\n```\n\n### 2.7 Missing Shared Config Check\n\nCheck whether the repo uses shared AprovanLabs config packages:\n\n- `@aprovan\u002Feslint-config` — shared ESLint config\n- `@aprovan\u002Ftsconfig` — shared TypeScript config\n- `@aprovan\u002Fprettier-config` — shared Prettier config\n\n```bash\ncat package.json | python3 -c \"\nimport json, sys\npkg = json.load(sys.stdin)\ndeps = {**pkg.get('dependencies', {}), **pkg.get('devDependencies', {})}\nshared = ['@aprovan\u002Feslint-config', '@aprovan\u002Ftsconfig', '@aprovan\u002Fprettier-config']\nfor s in shared:\n    if s not in deps:\n        print(f'MISSING: {s}')\n    else:\n        print(f'OK: {s} ({deps[s]})')\n\"\n```\n\nRepos missing shared configs should be flagged for alignment.\n\n---\n\n## Phase 3 — Cross-Repo Analysis\n\n### 3.1 Config Drift\n\nCompare ESLint, TypeScript, and Prettier configs across all TypeScript repos:\n\n- Extract `eslint.config.mjs` \u002F `.eslintrc.*` from each repo\n- Extract `tsconfig.json` from each repo\n- Compare `compilerOptions`, `rules`, and `extends` for inconsistencies\n- Flag any repo that deviates from the shared `@aprovan\u002F*` config baseline\n\n### 3.2 Cross-Repo Duplicate Detection\n\nSearch for duplicated utility code across repo boundaries:\n\n- Compare `packages\u002Fshared\u002F`, `packages\u002Futils\u002F`, or similar directories across repos\n- Flag functions\u002Ftypes that exist in multiple repos under different names\n- Identify candidates for extraction into a shared package\n\n### 3.3 Shared Package Opportunities\n\nIdentify code that should be extracted into shared packages:\n\n- Repeated patterns (e.g., auth helpers, error classes, logging utilities)\n- Vendored copies of the same dependency\n- Copy-pasted code between repos\n\n### 3.4 Dependency Version Alignment\n\nCheck that all repos use consistent major versions of key dependencies:\n\n```bash\nfor repo in core registry aprovan.com; do\n  echo \"=== $repo ===\"\n  cat $repo\u002Fpackage.json | python3 -c \"\nimport json, sys\npkg = json.load(sys.stdin)\ndeps = {**pkg.get('dependencies', {}), **pkg.get('devDependencies', {})}\nfor dep in ['react', 'react-dom', 'next', 'typescript', '@types\u002Freact']:\n    if dep in deps:\n        print(f'  {dep}: {deps[dep]}')\n\"\ndone\n```\n\nFlag version mismatches (different major versions, or pinned vs range across repos).\n\n---\n\n## Phase 4 — Issue Creation\n\n### 4.1 Deduplication\n\nBefore creating issues:\n\n1. Search existing open issues for each finding to avoid duplicates\n2. Group identical findings across repos (e.g., same lint error in 3 repos = 1 issue)\n3. Suppress findings already tracked in open issues\n\n```bash\nmultica issue list --project \u003Cproject-id> --status todo,in_progress,blocked --output json | python3 -c \"\nimport json, sys\nissues = json.load(sys.stdin)\nfor i in issues:\n    print(i['identifier'], '-', i['title'])\n\"\n```\n\n### 4.2 Group and Scope\n\nGroup related findings into scoped improvement issues:\n\n- **Per-repo lint\u002Ftype issues**: one issue per repo if count is small; split by severity if large\n- **Dead code cleanup**: one issue per repo\n- **Cross-repo issues**: one issue per category (config drift, duplicate code, version alignment)\n- **Shared package extraction**: one issue per proposed package\n\n### 4.3 Priority Assignment\n\n| Severity | Priority | Example |\n|---|---|---|\n| Build-breaking (type errors, lint errors) | high | TypeScript errors preventing `pnpm build` |\n| Dead code \u002F unused exports | medium | Knip-detected unused files |\n| Config drift \u002F missing shared config | medium | Repo not using `@aprovan\u002Feslint-config` |\n| Duplicate code (within repo) | medium | JSCPD-detected clones |\n| Duplicate code (cross-repo) | low | Same utility in 2 repos |\n| Version alignment | low | React 18 vs 19 across repos |\n| Shared package extraction | low | New shared package proposal |\n\n### 4.4 Create Issues\n\n```bash\nmultica issue create \\\n  --title \"APR-XX: \u003Cdescriptive title>\" \\\n  --description \"\u003Cfindings with file paths, line numbers, and recommended fix>\" \\\n  --priority \u003Chigh|medium|low> \\\n  --parent \u003CAPR-65 initiative issue id> \\\n  --project \u003Cproject-id> \\\n  --status todo\n```\n\n### 4.5 Summary Comment\n\nPost a daily summary on the initiative:\n\n```bash\nmultica issue comment add \u003Cinitiative-issue-id> --content \"## Code Quality Scan Summary — $(date +%Y-%m-%d)\n\n**Repos scanned:** \u003Ccount>\n**Total findings:** \u003Ccount>\n**Issues created:** \u003Ccount>\n\n### Breakdown by Severity\n- ? High: \u003Ccount>\n- ? Medium: \u003Ccount>\n- ? Low: \u003Ccount>\n\n### Issues Created\n- [APR-XX](mention:\u002F\u002Fissue\u002F\u003Cid>): \u003Ctitle>\n- ...\"\n```\n\n---\n\n## Phase 5 — Knowledge Base\n\nFor recurring patterns discovered during scanning, create documentation articles.\n\n### 5.1 Anti-Pattern Documentation\n\nFor each anti-pattern found in multiple repos:\n\n1. Create `docs\u002Fanti-patterns\u002F\u003Cpattern-name>.md`\n2. Include: description, example of the anti-pattern, recommended fix, affected repos\n\n### 5.2 Best Practices\n\nFor each best practice discovered or reinforced:\n\n1. Create `docs\u002Fbest-practices\u002F\u003Ctopic>.md`\n2. Include: description, code examples, enforcement strategy (lint rule, shared config, etc.)\n\n### 5.3 Documentation Structure\n\n```\ndocs\u002F\n├── anti-patterns\u002F\n│   ├── barrel-exports.md\n│   ├── god-functions.md\n│   └── ...\n└── best-practices\u002F\n    ├── shared-configs.md\n    ├── monorepo-structure.md\n    └── ...\n```\n\n---\n\n## Running the Full Scan\n\nTo run the complete workflow end-to-end:\n\n1. **Phase 1**: Check out all repos and identify types\n2. **Phase 2**: Run per-repo scans, capture findings to a structured report\n3. **Phase 3**: Run cross-repo analysis\n4. **Phase 4**: Deduplicate, group, and create issues\n5. **Phase 5**: Write knowledge base articles for recurring patterns\n\nEach phase should produce a structured output (JSON or markdown) that feeds into the next phase. Store intermediate results in the working directory:\n\n```\nscan-results\u002F\n├── phase1-repo-types.json\n├── phase2-\u003Crepo>-findings.json\n├── phase3-cross-repo-analysis.json\n├── phase4-issues-created.json\n└── phase5-docs-created.json\n```\n","# Code Quality Scan\n\nThis skill defines the Sentinel scanning workflow — a systematic, cross-repo quality audit that discovers lint errors, dead code, duplication, config inconsistencies, and dependency drift across all AprovanLabs repositories, then creates scoped improvement issues.\n\n---\n\n## Per-Repo Scan Config\n\n| Repo | Language | Scan Tools | Notes |\n|---|---|---|---|\n| core | TypeScript | eslint, tsc, knip, jscpd | Monorepo with pnpm |\n| registry | TypeScript | eslint, tsc, knip, jscpd | Monorepo with pnpm |\n| apprentice | TBD | TBD | Investigate stack before scanning |\n| patchwork | TBD | TBD | Investigate stack before scanning |\n| zolvery | TBD | TBD | Investigate stack before scanning |\n| projects | TBD | TBD | Investigate stack before scanning |\n| aprovan.com | TypeScript | eslint, build | Static website |\n| data-science | Python | flake8, mypy, jscpd | Python stack |\n\n---\n\n## Phase 1 — Repo Discovery\n\n1. List all AprovanLabs repos from the workspace:\n\n```bash\nmultica repo checkout https:\u002F\u002Fgithub.com\u002FAprovanLabs\u002Fcore\nmultica repo checkout https:\u002F\u002Fgithub.com\u002FAprovanLabs\u002Fregistry\nmultica repo checkout https:\u002F\u002Fgithub.com\u002FAprovanLabs\u002Fapprentice\nmultica repo checkout https:\u002F\u002Fgithub.com\u002FAprovanLabs\u002Fpatchwork\nmultica repo checkout https:\u002F\u002Fgithub.com\u002FAprovanLabs\u002Fzolvery\nmultica repo checkout https:\u002F\u002Fgithub.com\u002FAprovanLabs\u002Fprojects\nmultica repo checkout https:\u002F\u002Fgithub.com\u002FAprovanLabs\u002Faprovan.com\nmultica repo checkout https:\u002F\u002Fgithub.com\u002FAprovanLabs\u002Fdata-science\n```\n\n2. For each repo, identify its type:\n   - **TypeScript**: has `tsconfig.json` and\u002For `package.json` with TypeScript deps\n   - **Python**: has `pyproject.toml`, `setup.py`, or `.python-version`\n   - **Mixed**: both TypeScript and Python indicators\n3. Select applicable scan tools from the per-repo config table above\n4. For repos marked TBD: run a quick investigation (`ls`, read `package.json`\u002F`pyproject.toml`), update the config table, and note findings\n\n---\n\n## Phase 2 — Per-Repo Scanning\n\nFor each repo, run the applicable scan tools. Capture all findings with file paths, line numbers, and severity.\n\n### 2.1 Deslopify Scan\n\nIf `deslopify` is available and configured for the repo:\n\n```bash\ndeslopify scan --path .\ndeslopify backlog\n```\n\nCapture the backlog items as findings.\n\n### 2.2 Lint (TypeScript repos)\n\n```bash\npnpm lint\n```\n\nCapture every lint error with file, line, rule name, and message. Warnings are informational; errors are high-severity.\n\n### 2.3 Type Check (TypeScript repos)\n\n```bash\npnpm typecheck\n```\n\nCapture every type error with file, line, and message. Type errors are high-severity.\n\n### 2.4 Dead Code Detection\n\n```bash\nnpx knip --no-progress\n```\n\nCapture unused exports, unreachable files, and duplicate dependencies. Severity: medium.\n\n### 2.5 Duplicate Code Detection\n\n```bash\nnpx jscpd --threshold 5\n```\n\nCapture duplicate blocks with file pairs and line ranges. Severity: medium.\n\nFor Python repos, use AST-based duplication tools or manual review.\n\n### 2.6 Python Lint and Type Check\n\n```bash\nflake8 . --count --statistics\nmypy . --ignore-missing-imports\n```\n\n### 2.7 Missing Shared Config Check\n\nCheck whether the repo uses shared AprovanLabs config packages:\n\n- `@aprovan\u002Feslint-config` — shared ESLint config\n- `@aprovan\u002Ftsconfig` — shared TypeScript config\n- `@aprovan\u002Fprettier-config` — shared Prettier config\n\n```bash\ncat package.json | python3 -c \"\nimport json, sys\npkg = json.load(sys.stdin)\ndeps = {**pkg.get('dependencies', {}), **pkg.get('devDependencies', {})}\nshared = ['@aprovan\u002Feslint-config', '@aprovan\u002Ftsconfig', '@aprovan\u002Fprettier-config']\nfor s in shared:\n    if s not in deps:\n        print(f'MISSING: {s}')\n    else:\n        print(f'OK: {s} ({deps[s]})')\n\"\n```\n\nRepos missing shared configs should be flagged for alignment.\n\n---\n\n## Phase 3 — Cross-Repo Analysis\n\n### 3.1 Config Drift\n\nCompare ESLint, TypeScript, and Prettier configs across all TypeScript repos:\n\n- Extract `eslint.config.mjs` \u002F `.eslintrc.*` from each repo\n- Extract `tsconfig.json` from each repo\n- Compare `compilerOptions`, `rules`, and `extends` for inconsistencies\n- Flag any repo that deviates from the shared `@aprovan\u002F*` config baseline\n\n### 3.2 Cross-Repo Duplicate Detection\n\nSearch for duplicated utility code across repo boundaries:\n\n- Compare `packages\u002Fshared\u002F`, `packages\u002Futils\u002F`, or similar directories across repos\n- Flag functions\u002Ftypes that exist in multiple repos under different names\n- Identify candidates for extraction into a shared package\n\n### 3.3 Shared Package Opportunities\n\nIdentify code that should be extracted into shared packages:\n\n- Repeated patterns (e.g., auth helpers, error classes, logging utilities)\n- Vendored copies of the same dependency\n- Copy-pasted code between repos\n\n### 3.4 Dependency Version Alignment\n\nCheck that all repos use consistent major versions of key dependencies:\n\n```bash\nfor repo in core registry aprovan.com; do\n  echo \"=== $repo ===\"\n  cat $repo\u002Fpackage.json | python3 -c \"\nimport json, sys\npkg = json.load(sys.stdin)\ndeps = {**pkg.get('dependencies', {}), **pkg.get('devDependencies', {})}\nfor dep in ['react', 'react-dom', 'next', 'typescript', '@types\u002Freact']:\n    if dep in deps:\n        print(f'  {dep}: {deps[dep]}')\n\"\ndone\n```\n\nFlag version mismatches (different major versions, or pinned vs range across repos).\n\n---\n\n## Phase 4 — Issue Creation\n\n### 4.1 Deduplication\n\nBefore creating issues:\n\n1. Search existing open issues for each finding to avoid duplicates\n2. Group identical findings across repos (e.g., same lint error in 3 repos = 1 issue)\n3. Suppress findings already tracked in open issues\n\n```bash\nmultica issue list --project \u003Cproject-id> --status todo,in_progress,blocked --output json | python3 -c \"\nimport json, sys\nissues = json.load(sys.stdin)\nfor i in issues:\n    print(i['identifier'], '-', i['title'])\n\"\n```\n\n### 4.2 Group and Scope\n\nGroup related findings into scoped improvement issues:\n\n- **Per-repo lint\u002Ftype issues**: one issue per repo if count is small; split by severity if large\n- **Dead code cleanup**: one issue per repo\n- **Cross-repo issues**: one issue per category (config drift, duplicate code, version alignment)\n- **Shared package extraction**: one issue per proposed package\n\n### 4.3 Priority Assignment\n\n| Severity | Priority | Example |\n|---|---|---|\n| Build-breaking (type errors, lint errors) | high | TypeScript errors preventing `pnpm build` |\n| Dead code \u002F unused exports | medium | Knip-detected unused files |\n| Config drift \u002F missing shared config | medium | Repo not using `@aprovan\u002Feslint-config` |\n| Duplicate code (within repo) | medium | JSCPD-detected clones |\n| Duplicate code (cross-repo) | low | Same utility in 2 repos |\n| Version alignment | low | React 18 vs 19 across repos |\n| Shared package extraction | low | New shared package proposal |\n\n### 4.4 Create Issues\n\n```bash\nmultica issue create \\\n  --title \"APR-XX: \u003Cdescriptive title>\" \\\n  --description \"\u003Cfindings with file paths, line numbers, and recommended fix>\" \\\n  --priority \u003Chigh|medium|low> \\\n  --parent \u003CAPR-65 initiative issue id> \\\n  --project \u003Cproject-id> \\\n  --status todo\n```\n\n### 4.5 Summary Comment\n\nPost a daily summary on the initiative:\n\n```bash\nmultica issue comment add \u003Cinitiative-issue-id> --content \"## Code Quality Scan Summary — $(date +%Y-%m-%d)\n\n**Repos scanned:** \u003Ccount>\n**Total findings:** \u003Ccount>\n**Issues created:** \u003Ccount>\n\n### Breakdown by Severity\n- ? High: \u003Ccount>\n- ? Medium: \u003Ccount>\n- ? Low: \u003Ccount>\n\n### Issues Created\n- [APR-XX](mention:\u002F\u002Fissue\u002F\u003Cid>): \u003Ctitle>\n- ...\"\n```\n\n---\n\n## Phase 5 — Knowledge Base\n\nFor recurring patterns discovered during scanning, create documentation articles.\n\n### 5.1 Anti-Pattern Documentation\n\nFor each anti-pattern found in multiple repos:\n\n1. Create `docs\u002Fanti-patterns\u002F\u003Cpattern-name>.md`\n2. Include: description, example of the anti-pattern, recommended fix, affected repos\n\n### 5.2 Best Practices\n\nFor each best practice discovered or reinforced:\n\n1. Create `docs\u002Fbest-practices\u002F\u003Ctopic>.md`\n2. Include: description, code examples, enforcement strategy (lint rule, shared config, etc.)\n\n### 5.3 Documentation Structure\n\n```\ndocs\u002F\n├── anti-patterns\u002F\n│   ├── barrel-exports.md\n│   ├── god-functions.md\n│   └── ...\n└── best-practices\u002F\n    ├── shared-configs.md\n    ├── monorepo-structure.md\n    └── ...\n```\n\n---\n\n## Running the Full Scan\n\nTo run the complete workflow end-to-end:\n\n1. **Phase 1**: Check out all repos and identify types\n2. **Phase 2**: Run per-repo scans, capture findings to a structured report\n3. **Phase 3**: Run cross-repo analysis\n4. **Phase 4**: Deduplicate, group, and create issues\n5. **Phase 5**: Write knowledge base articles for recurring patterns\n\nEach phase should produce a structured output (JSON or markdown) that feeds into the next phase. Store intermediate results in the working directory:\n\n```\nscan-results\u002F\n├── phase1-repo-types.json\n├── phase2-\u003Crepo>-findings.json\n├── phase3-cross-repo-analysis.json\n├── phase4-issues-created.json\n└── phase5-docs-created.json\n```\n",{"name":5,"triggers":54,"description":7},[30,34,55,45,56,57,58,59,60],"lint","duplicate code","config drift","dependency alignment","quality sentinel","cross-repo","main","c2be2cf8c46f82df36a70e547c9883f5a16864a5","skills\u002Fcode-quality-scan","https:\u002F\u002Fgithub.com\u002FAprovanLabs\u002Fregistry","https:\u002F\u002Faprovanlabs.github.io\u002Fregistry\u002F","https:\u002F\u002Fgithub.com\u002FAprovanLabs","https:\u002F\u002Faprovan.com","Build what's next","2026-08-19 10:28:42",{"source":8,"skillName":5,"commands":71,"prompt":81,"zipAvailable":82},[72,75,78],{"tool":73,"command":74},"npx","npx skills add AprovanLabs\u002Fregistry --skill code-quality-scan",{"tool":76,"command":77},"bunx","bunx skills add AprovanLabs\u002Fregistry --skill code-quality-scan",{"tool":79,"command":80},"pnpm","pnpm dlx skills add AprovanLabs\u002Fregistry --skill code-quality-scan","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FAprovanLabs\u002Fregistry\u002Fblob\u002Fmain\u002Fskills\u002Fcode-quality-scan\u002FSKILL.md",true,[],[85,100],{"skillNo":86,"name":87,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":94,"publishedAt":49},"01M6JZ7NCHNNNDTTFRGWHZ55PQ","send-email","A skill for managing emails.","https:\u002F\u002Fgithub.com\u002FAprovanLabs\u002Fregistry\u002Fblob\u002Fmain\u002Fskills\u002Fsend-email\u002FSKILL.md",[91],{"categoryNo":92,"categoryName":93,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000005","邮件与沟通",[95,96,97,98,99,37],"email","send email","publish","user","emails",{"skillNo":101,"name":102,"nameZh":6,"description":103,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":109,"publishedAt":49},"01M6JZ7DKYCMPGG5WKZJJRCXZH","bundle-api","Bundle OpenAPI schemas into a deployed library.","https:\u002F\u002Fgithub.com\u002FAprovanLabs\u002Fregistry\u002Fblob\u002Fmain\u002Fskills\u002Fbundle-api\u002FSKILL.md",[106],{"categoryNo":107,"categoryName":108,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",[110,111,112,113,114,115],"api","bundle","bundle api","library","openapi","true"]