[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C55M3592HXFM6PM28ZGG02":3,"skill-same:01M6C55M3592HXFM6PM28ZGG02":65},{"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":32,"linkOnly":33,"markdownContent":34,"markdownBody":35,"frontMatter":36,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":47,"repositoryHtmlUrl":48,"repositoryHomepageUrl":6,"ownerHtmlUrl":49,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":50,"install":51,"resources":64},"01M6C55M3592HXFM6PM28ZGG02","pr-review",null,"Batch review des PRs RTK par ordre de complexité croissante (XS → S → M → L). Pour chaque PR : vérifie l'état (conflits, CLA, reviews), lit le diff complet, analyse le code en contexte, présente un résumé avec lien + taille + recommandation. Attend validation explicite avant tout merge. Poste des commentaires boldguy-adapt sur les PRs bloquées (conflit, CLA, CHANGES_REQUESTED). Args: \"triage\" pour lancer un triage complet avant la review. \"from:\u003Cnum>\" pour reprendre à partir d'un numéro de PR spécifique.","MDMAtk\u002FTormentNexus","MDMAtk","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F288684999?v=4","01M6C54H4AG0BYB3HTFA4C0CBJ","01M6C54H8146YDG94N9KWXV521",13,"AGPL-3.0","https:\u002F\u002Fgithub.com\u002FMDMAtk\u002FTormentNexus\u002Fblob\u002Fmain\u002Fthird_party\u002Frtk\u002F.claude\u002Fskills\u002Fpr-review\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31],"review","pr review","pr","triage","merge","code","validation","batch","Bash","grep","read","write","diff","rtk","2026-11-10 10:12:30",false,"---\ndescription: >\n  Batch review des PRs RTK par ordre de complexité croissante (XS → S → M → L).\n  Pour chaque PR : vérifie l'état (conflits, CLA, reviews), lit le diff complet,\n  analyse le code en contexte, présente un résumé avec lien + taille + recommandation.\n  Attend validation explicite avant tout merge. Poste des commentaires boldguy-adapt\n  sur les PRs bloquées (conflit, CLA, CHANGES_REQUESTED).\n  Args: \"triage\" pour lancer un triage complet avant la review. \"from:\u003Cnum>\" pour\n  reprendre à partir d'un numéro de PR spécifique.\nallowed-tools:\n  - Bash\n  - Read\n  - Grep\n  - Glob\n  - Write\n  - AskUserQuestion\n---\n\n# \u002Fpr-review\n\nBatch review des PRs RTK — du plus simple au plus complexe, une par une, avec validation utilisateur avant chaque merge.\n\n---\n\n## Quand utiliser\n\n- Après un `\u002Frtk-triage` pour agir sur les résultats\n- Régulièrement pour dégraisser le backlog\n- Avant une release pour vider la file quick wins\n\n---\n\n## Workflow\n\n### Phase 0 — Préconditions\n\n```bash\ngit rev-parse --is-inside-work-tree\ngh auth status\ndate +%Y-%m-%d\n```\n\nSi l'argument `triage` est passé, exécuter `\u002Frtk-triage` d'abord et utiliser sa liste de quick wins comme séquence. Sinon, construire la liste soi-même.\n\n---\n\n### Phase 1 — Construire la liste de PRs (si pas de triage)\n\n```bash\ngh pr list --state open --limit 200 \\\n  --json number,title,author,additions,deletions,changedFiles,mergeable,mergeStateStatus,isDraft,statusCheckRollup,reviewDecision,body \\\n  | jq 'sort_by(.additions + .deletions)'\n```\n\n**Classement par taille** :\n\n| Taille | Critère | Traitement |\n|--------|---------|------------|\n| XS | \u003C 30 lignes, 1 fichier | En premier |\n| S | 30-100 lignes, 1-3 fichiers | Ensuite |\n| M | 100-200 lignes, logique non triviale | Après |\n| L | > 200 lignes | Dernier ou skip |\n| XL | > 500 lignes | Skip (session dédiée) |\n\n**Filtrer d'emblée** :\n- Exclure les PRs draft\n- Exclure les PRs de nous (les nôtres ont une review flow différente)\n- Si `from:\u003Cnum>` passé en argument : commencer à ce numéro\n\n---\n\n### Phase 2 — Pour chaque PR (une par une, dans l'ordre)\n\n#### Étape A — Vérification état (AVANT de lire le diff)\n\n```bash\n# 1. Etat mergeable + CLA\ngh pr view \u003Cnum> --json mergeable,mergeStateStatus,statusCheckRollup,reviewDecision\n\n# 2. Reviews existantes (CHANGES_REQUESTED ?)\ngh api repos\u002Frtk-ai\u002Frtk\u002Fpulls\u002F\u003Cnum>\u002Freviews \\\n  --jq '.[] | {author: .user.login, state: .state, body: .body}'\n\n# 3. Commentaires inline (si CHANGES_REQUESTED)\ngh api repos\u002Frtk-ai\u002Frtk\u002Fpulls\u002F\u003Cnum>\u002Fcomments \\\n  --jq '.[] | {author: .user.login, body: .body, path: .path, line: .line}'\n```\n\n**Décision rapide selon état** :\n\n| État | Action |\n|------|--------|\n| MERGEABLE + CLA ok + pas de CHANGES_REQUESTED | → lire le diff |\n| CONFLICTING | → préparer commentaire rebase, skip diff |\n| CLA non signé | → préparer commentaire CLA, skip diff |\n| CHANGES_REQUESTED par un maintainer | → skip (ne pas override), noter |\n| Draft | → skip silencieusement |\n\n#### Étape B — Lire le diff complet\n\n```bash\ngh pr diff \u003Cnum>\n```\n\nSi le diff touche une logique complexe (filter functions, regex, routing) → lire le fichier source en contexte avec `Read` pour comprendre l'impact réel.\n\n#### Étape C — Présenter à l'utilisateur\n\nFormat de présentation **obligatoire** pour chaque PR :\n\n```\n**PR #\u003Cnum>** — https:\u002F\u002Fgithub.com\u002Frtk-ai\u002Frtk\u002Fpull\u002F\u003Cnum>\n\n**Author**: \u003Clogin> | **Size**: \u003CXS\u002FS\u002FM\u002FL> (+\u003Cadd> -\u003Cdel>, \u003CN> fichiers) | **CLA**: \u003Cok\u002Fnon signé> | **Mergeable**: \u003Cclean\u002Fconflit>\n\n**Ce que ça fait** — [description en 2-4 phrases : le problème résolu, les fichiers touchés, la logique modifiée, les tests ajoutés]\n\n**Qualité du diff** : [analyse honnête : propre\u002Fà vérifier\u002Fproblème détecté]\n\nMerge #\u003Cnum> ?\n```\n\n**Règles de présentation** :\n- Toujours inclure le lien GitHub cliquable\n- Toujours mentionner si des tests couvrent le changement\n- Si une fonction complexe est touchée, expliquer l'impact\n- Ne pas embellir — si le diff est moyen, le dire\n- Langue : français pour l'analyse (comme ici)\n\n#### Étape D — Attendre la validation\n\n**NE JAMAIS MERGER SANS RÉPONSE EXPLICITE.** Les réponses attendues :\n\n| Réponse | Action |\n|---------|--------|\n| \"ok\" \u002F \"go\" \u002F \"merge\" | Merger avec `gh pr merge --merge` |\n| \"skip\" \u002F \"next\" | Passer à la PR suivante sans merger |\n| \"comment\" | Poster un commentaire (demander le texte si pas fourni) |\n| \"close\" | Fermer la PR |\n| Retour avec instructions | Appliquer puis redemander confirmation |\n\n#### Étape E — Merger (si validé)\n\n```bash\ngh pr merge \u003Cnum> --merge --squash\n```\n\nConfirmer immédiatement : `Merged #\u003Cnum>. ✓`\n\nPuis **vérifier que la PR suivante n'est pas passée en CONFLICTING** à cause du merge (surtout si les deux touchent `rules.rs`, `registry.rs`, `main.rs`, ou `CHANGELOG.md`).\n\n---\n\n### Phase 3 — PRs bloquées : commentaire boldguy-adapt\n\nPour les PRs avec conflit, CLA manquant, ou besoin de rebase, poster un commentaire en anglais, ton boldguy-adapt.\n\n**Règles du commentaire** :\n- **Anglais uniquement** (GitHub)\n- Remercier la contribution en ouverture (sincèrement, pas de manière générique)\n- Dire clairement ce qui bloque (1-2 points max)\n- Donner les étapes exactes pour débloquer\n- Pas d'em dash (`—`), pas de staccato, longueurs de phrases variées\n- Ne pas sonner comme un bot\n\n**Template conflit + CLA** :\n```\nHey @\u003Cauthor>, thanks for the contribution! [mention spécifique de ce que la PR apporte]\n\nTwo things before we can merge:\n\n1. The branch needs a rebase on `develop` — there's a conflict on [fichier]. A `git rebase origin\u002Fdevelop` should do it.\n\n2. The CLA hasn't been signed yet. The CLAassistant bot left instructions in the PR — just follow the link, takes about a minute.\n\nOnce both are sorted, this will move quickly.\n```\n\n**Template conflit seul** :\n```\nHey @\u003Cauthor>, good fix on [description spécifique]. One thing to address before merge: the branch has a conflict on [fichier] after recent changes to develop. A `git rebase origin\u002Fdevelop` should resolve it cleanly.\n```\n\n**Template CLA seul** :\n```\nHey @\u003Cauthor>, thanks for [description spécifique]. The only thing blocking merge is the CLA signature — the CLAassistant bot left the link in the PR. Once that's done, we're good to go.\n```\n\n---\n\n### Phase 4 — Récap de session\n\nAprès avoir traité toutes les PRs (ou à la demande) :\n\n```\n## Session recap — YYYY-MM-DD\n\n| PR | Titre | Action | Raison |\n|----|-------|--------|--------|\n| #N | titre | Mergé ✓ | — |\n| #N | titre | Skip | CHANGES_REQUESTED (KuSh) |\n| #N | titre | Commenté | Conflit + CLA |\n| #N | titre | Fermé | Doublon avec #M |\n\nMergées : N | Skippées : N | Commentées : N\n```\n\n---\n\n## Règles\n\n- **Une PR à la fois** — ne jamais présenter plusieurs PRs en attente de validation\n- **Jamais merger sans \"ok\" explicite** — \"ça a l'air bien\" n'est pas un ok\n- **Ne pas overrider un CHANGES_REQUESTED** d'un maintainer sans instructions explicites de l'utilisateur\n- **Vérifier les conflits post-merge** sur la PR suivante si les deux touchent les mêmes fichiers\n- **Langue** : analyse en français, commentaires GitHub en anglais\n- **Ton boldguy** : factuel, direct, bienveillant, pas de marqueurs AI (em dash, staccato, punchline finale parfaite)\n\n---\n\n## Fichiers fréquemment en conflit (surveiller)\n\n- `CHANGELOG.md` — toutes les PRs y touchent\n- `src\u002Fdiscover\u002Frules.rs` — ajouts fréquents de règles\n- `src\u002Fdiscover\u002Fregistry.rs` — tests de classify\u002Frewrite\n- `src\u002Fmain.rs` — routing des commandes\n- `src\u002Fhooks\u002Frewrite_cmd.rs` — rewrites hooks\n","# \u002Fpr-review\n\nBatch review des PRs RTK — du plus simple au plus complexe, une par une, avec validation utilisateur avant chaque merge.\n\n---\n\n## Quand utiliser\n\n- Après un `\u002Frtk-triage` pour agir sur les résultats\n- Régulièrement pour dégraisser le backlog\n- Avant une release pour vider la file quick wins\n\n---\n\n## Workflow\n\n### Phase 0 — Préconditions\n\n```bash\ngit rev-parse --is-inside-work-tree\ngh auth status\ndate +%Y-%m-%d\n```\n\nSi l'argument `triage` est passé, exécuter `\u002Frtk-triage` d'abord et utiliser sa liste de quick wins comme séquence. Sinon, construire la liste soi-même.\n\n---\n\n### Phase 1 — Construire la liste de PRs (si pas de triage)\n\n```bash\ngh pr list --state open --limit 200 \\\n  --json number,title,author,additions,deletions,changedFiles,mergeable,mergeStateStatus,isDraft,statusCheckRollup,reviewDecision,body \\\n  | jq 'sort_by(.additions + .deletions)'\n```\n\n**Classement par taille** :\n\n| Taille | Critère | Traitement |\n|--------|---------|------------|\n| XS | \u003C 30 lignes, 1 fichier | En premier |\n| S | 30-100 lignes, 1-3 fichiers | Ensuite |\n| M | 100-200 lignes, logique non triviale | Après |\n| L | > 200 lignes | Dernier ou skip |\n| XL | > 500 lignes | Skip (session dédiée) |\n\n**Filtrer d'emblée** :\n- Exclure les PRs draft\n- Exclure les PRs de nous (les nôtres ont une review flow différente)\n- Si `from:\u003Cnum>` passé en argument : commencer à ce numéro\n\n---\n\n### Phase 2 — Pour chaque PR (une par une, dans l'ordre)\n\n#### Étape A — Vérification état (AVANT de lire le diff)\n\n```bash\n# 1. Etat mergeable + CLA\ngh pr view \u003Cnum> --json mergeable,mergeStateStatus,statusCheckRollup,reviewDecision\n\n# 2. Reviews existantes (CHANGES_REQUESTED ?)\ngh api repos\u002Frtk-ai\u002Frtk\u002Fpulls\u002F\u003Cnum>\u002Freviews \\\n  --jq '.[] | {author: .user.login, state: .state, body: .body}'\n\n# 3. Commentaires inline (si CHANGES_REQUESTED)\ngh api repos\u002Frtk-ai\u002Frtk\u002Fpulls\u002F\u003Cnum>\u002Fcomments \\\n  --jq '.[] | {author: .user.login, body: .body, path: .path, line: .line}'\n```\n\n**Décision rapide selon état** :\n\n| État | Action |\n|------|--------|\n| MERGEABLE + CLA ok + pas de CHANGES_REQUESTED | → lire le diff |\n| CONFLICTING | → préparer commentaire rebase, skip diff |\n| CLA non signé | → préparer commentaire CLA, skip diff |\n| CHANGES_REQUESTED par un maintainer | → skip (ne pas override), noter |\n| Draft | → skip silencieusement |\n\n#### Étape B — Lire le diff complet\n\n```bash\ngh pr diff \u003Cnum>\n```\n\nSi le diff touche une logique complexe (filter functions, regex, routing) → lire le fichier source en contexte avec `Read` pour comprendre l'impact réel.\n\n#### Étape C — Présenter à l'utilisateur\n\nFormat de présentation **obligatoire** pour chaque PR :\n\n```\n**PR #\u003Cnum>** — https:\u002F\u002Fgithub.com\u002Frtk-ai\u002Frtk\u002Fpull\u002F\u003Cnum>\n\n**Author**: \u003Clogin> | **Size**: \u003CXS\u002FS\u002FM\u002FL> (+\u003Cadd> -\u003Cdel>, \u003CN> fichiers) | **CLA**: \u003Cok\u002Fnon signé> | **Mergeable**: \u003Cclean\u002Fconflit>\n\n**Ce que ça fait** — [description en 2-4 phrases : le problème résolu, les fichiers touchés, la logique modifiée, les tests ajoutés]\n\n**Qualité du diff** : [analyse honnête : propre\u002Fà vérifier\u002Fproblème détecté]\n\nMerge #\u003Cnum> ?\n```\n\n**Règles de présentation** :\n- Toujours inclure le lien GitHub cliquable\n- Toujours mentionner si des tests couvrent le changement\n- Si une fonction complexe est touchée, expliquer l'impact\n- Ne pas embellir — si le diff est moyen, le dire\n- Langue : français pour l'analyse (comme ici)\n\n#### Étape D — Attendre la validation\n\n**NE JAMAIS MERGER SANS RÉPONSE EXPLICITE.** Les réponses attendues :\n\n| Réponse | Action |\n|---------|--------|\n| \"ok\" \u002F \"go\" \u002F \"merge\" | Merger avec `gh pr merge --merge` |\n| \"skip\" \u002F \"next\" | Passer à la PR suivante sans merger |\n| \"comment\" | Poster un commentaire (demander le texte si pas fourni) |\n| \"close\" | Fermer la PR |\n| Retour avec instructions | Appliquer puis redemander confirmation |\n\n#### Étape E — Merger (si validé)\n\n```bash\ngh pr merge \u003Cnum> --merge --squash\n```\n\nConfirmer immédiatement : `Merged #\u003Cnum>. ✓`\n\nPuis **vérifier que la PR suivante n'est pas passée en CONFLICTING** à cause du merge (surtout si les deux touchent `rules.rs`, `registry.rs`, `main.rs`, ou `CHANGELOG.md`).\n\n---\n\n### Phase 3 — PRs bloquées : commentaire boldguy-adapt\n\nPour les PRs avec conflit, CLA manquant, ou besoin de rebase, poster un commentaire en anglais, ton boldguy-adapt.\n\n**Règles du commentaire** :\n- **Anglais uniquement** (GitHub)\n- Remercier la contribution en ouverture (sincèrement, pas de manière générique)\n- Dire clairement ce qui bloque (1-2 points max)\n- Donner les étapes exactes pour débloquer\n- Pas d'em dash (`—`), pas de staccato, longueurs de phrases variées\n- Ne pas sonner comme un bot\n\n**Template conflit + CLA** :\n```\nHey @\u003Cauthor>, thanks for the contribution! [mention spécifique de ce que la PR apporte]\n\nTwo things before we can merge:\n\n1. The branch needs a rebase on `develop` — there's a conflict on [fichier]. A `git rebase origin\u002Fdevelop` should do it.\n\n2. The CLA hasn't been signed yet. The CLAassistant bot left instructions in the PR — just follow the link, takes about a minute.\n\nOnce both are sorted, this will move quickly.\n```\n\n**Template conflit seul** :\n```\nHey @\u003Cauthor>, good fix on [description spécifique]. One thing to address before merge: the branch has a conflict on [fichier] after recent changes to develop. A `git rebase origin\u002Fdevelop` should resolve it cleanly.\n```\n\n**Template CLA seul** :\n```\nHey @\u003Cauthor>, thanks for [description spécifique]. The only thing blocking merge is the CLA signature — the CLAassistant bot left the link in the PR. Once that's done, we're good to go.\n```\n\n---\n\n### Phase 4 — Récap de session\n\nAprès avoir traité toutes les PRs (ou à la demande) :\n\n```\n## Session recap — YYYY-MM-DD\n\n| PR | Titre | Action | Raison |\n|----|-------|--------|--------|\n| #N | titre | Mergé ✓ | — |\n| #N | titre | Skip | CHANGES_REQUESTED (KuSh) |\n| #N | titre | Commenté | Conflit + CLA |\n| #N | titre | Fermé | Doublon avec #M |\n\nMergées : N | Skippées : N | Commentées : N\n```\n\n---\n\n## Règles\n\n- **Une PR à la fois** — ne jamais présenter plusieurs PRs en attente de validation\n- **Jamais merger sans \"ok\" explicite** — \"ça a l'air bien\" n'est pas un ok\n- **Ne pas overrider un CHANGES_REQUESTED** d'un maintainer sans instructions explicites de l'utilisateur\n- **Vérifier les conflits post-merge** sur la PR suivante si les deux touchent les mêmes fichiers\n- **Langue** : analyse en français, commentaires GitHub en anglais\n- **Ton boldguy** : factuel, direct, bienveillant, pas de marqueurs AI (em dash, staccato, punchline finale parfaite)\n\n---\n\n## Fichiers fréquemment en conflit (surveiller)\n\n- `CHANGELOG.md` — toutes les PRs y touchent\n- `src\u002Fdiscover\u002Frules.rs` — ajouts fréquents de règles\n- `src\u002Fdiscover\u002Fregistry.rs` — tests de classify\u002Frewrite\n- `src\u002Fmain.rs` — routing des commandes\n- `src\u002Fhooks\u002Frewrite_cmd.rs` — rewrites hooks\n",{"description":37,"allowed-tools":38},"Batch review des PRs RTK par ordre de complexité croissante (XS → S → M → L). Pour chaque PR : vérifie l'état (conflits, CLA, reviews), lit le diff complet, analyse le code en contexte, présente un résumé avec lien + taille + recommandation. Attend validation explicite avant tout merge. Poste des commentaires boldguy-adapt sur les PRs bloquées (conflit, CLA, CHANGES_REQUESTED). Args: \"triage\" pour lancer un triage complet avant la review. \"from:\u003Cnum>\" pour reprendre à partir d'un numéro de PR spécifique.\n",[26,39,40,41,42,43],"Read","Grep","Glob","Write","AskUserQuestion","main","6079b2fd99329bb8a099e7708b0567b93edf8206","third_party\u002Frtk\u002F.claude\u002Fskills\u002Fpr-review",2,"https:\u002F\u002Fgithub.com\u002FMDMAtk\u002FTormentNexus","https:\u002F\u002Fgithub.com\u002FMDMAtk","2026-11-07 14:28:49",{"source":8,"skillName":5,"commands":52,"prompt":62,"zipAvailable":63},[53,56,59],{"tool":54,"command":55},"npx","npx skills add MDMAtk\u002FTormentNexus --skill pr-review",{"tool":57,"command":58},"bunx","bunx skills add MDMAtk\u002FTormentNexus --skill pr-review",{"tool":60,"command":61},"pnpm","pnpm dlx skills add MDMAtk\u002FTormentNexus --skill pr-review","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FMDMAtk\u002FTormentNexus\u002Fblob\u002Fmain\u002Fthird_party\u002Frtk\u002F.claude\u002Fskills\u002Fpr-review\u002FSKILL.md",true,[],[66,97,109,122,137,154],{"skillNo":67,"name":68,"nameZh":6,"description":69,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":70,"categories":71,"keywords":77,"publishedAt":32},"01M6C5659TDGC363E5EWMQZJGZ","tdd-rust","TDD workflow for RTK filter development. Red-Green-Refactor with Rust idioms. Real fixtures, token savings assertions, snapshot tests with insta. Auto-triggers on new filter implementation.","https:\u002F\u002Fgithub.com\u002FMDMAtk\u002FTormentNexus\u002Fblob\u002Fmain\u002Fthird_party\u002Frtk\u002F.claude\u002Fskills\u002Ftdd-rust\u002FSKILL.md",[72],{"categoryNo":73,"categoryName":74,"taxonomyType":75,"taxonomyTypeDesc":76},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[78,79,80,81,82,83,84,85,86,87,88,89,90,91,26,92,93,94,95,96],"tdd rust","tdd","rust","testing","implement","command","token-savings","snapshots","filters","red-green-refactor","test coverage","auto","fix","coverage","development","add command","write tests","test","workflow",{"skillNo":98,"name":99,"nameZh":6,"description":100,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":101,"categories":102,"keywords":103,"publishedAt":32},"01M6C562NZPX3J6W8F6P4KZMV1","ship","Build, commit, push & version bump workflow - automates the complete release cycle","https:\u002F\u002Fgithub.com\u002FMDMAtk\u002FTormentNexus\u002Fblob\u002Fmain\u002Fthird_party\u002Frtk\u002F.claude\u002Fskills\u002Fship\u002FSKILL.md",[],[99,104,105,106,29,28,27,26,107,108,96],"push","version","edit","release","commit",{"skillNo":110,"name":111,"nameZh":6,"description":112,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":115,"publishedAt":32},"01M6C55ZXSNWBB861V5GGYR775","security-guardian","CLI security expert for RTK - command injection, shell escaping, hook security","https:\u002F\u002Fgithub.com\u002FMDMAtk\u002FTormentNexus\u002Fblob\u002Fmain\u002Fthird_party\u002Frtk\u002F.claude\u002Fskills\u002Fsecurity-guardian\u002FSKILL.md",[],[116,117,118,31,28,26,27,119,120,121,83],"security guardian","guardian","security","shell","injection","cli",{"skillNo":123,"name":124,"nameZh":6,"description":125,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":128,"publishedAt":32},"01M6C55XHCBK612DXDAD08GGE1","rtk-triage","Triage complet RTK : exécute issue-triage + pr-triage en parallèle, puis croise les données pour détecter doubles couvertures, trous sécurité, P0 sans PR, et conflits internes. Sauvegarde dans claudedocs\u002FRTK-YYYY-MM-DD.md. Args: \"en\"\u002F\"fr\" pour la langue (défaut: fr), \"save\" pour forcer la sauvegarde.","https:\u002F\u002Fgithub.com\u002FMDMAtk\u002FTormentNexus\u002Fblob\u002Fmain\u002Fthird_party\u002Frtk\u002F.claude\u002Fskills\u002Frtk-triage\u002FSKILL.md",[],[129,31,21,118,130,28,131,29,26,132,133,134,135,136,20],"rtk triage","orchestration","cross-analysis","save","analysis","sans","dd","issues",{"skillNo":138,"name":139,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":141,"categories":142,"keywords":147,"publishedAt":32},"01M6C55V1RDCNFJ019HRA16ZHM","rtk-tdd","Enforces TDD (Red-Green-Refactor) for Rust development. Auto-triggers on implementation, testing, refactoring, and bug fixing tasks. Provides Rust-idiomatic testing patterns with anyhow\u002Fthiserror, cfg(test), and Arrange-Act-Assert workflow.","https:\u002F\u002Fgithub.com\u002FMDMAtk\u002FTormentNexus\u002Fblob\u002Fmain\u002Fthird_party\u002Frtk\u002F.claude\u002Fskills\u002Frtk-tdd\u002FSKILL.md",[143,146],{"categoryNo":144,"categoryName":145,"taxonomyType":75,"taxonomyTypeDesc":76},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":73,"categoryName":74,"taxonomyType":75,"taxonomyTypeDesc":76},[148,31,79,149,81,87,80,89,106,29,28,26,150,151,152,92,153,95,96],"rtk tdd","refactoring","CFG","testing patterns","refactor","tasks",{"skillNo":155,"name":156,"nameZh":6,"description":157,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":158,"categories":159,"keywords":160,"publishedAt":32},"01M6C55RQ5QH5MBSYXMC8KF0WV","repo-recap","Generate a comprehensive repo recap (PRs, issues, releases) for sharing with team. Pass \"en\" or \"fr\" as argument for language (default fr).","https:\u002F\u002Fgithub.com\u002FMDMAtk\u002FTormentNexus\u002Fblob\u002Fmain\u002Fthird_party\u002Frtk\u002F.claude\u002Fskills\u002Frepo-recap\u002FSKILL.md",[],[161,162,163,26,27,136,164,165,166,28],"repo recap","recap","repo","team","sharing","generate"]