# Cpn Discussion Triage

> À utiliser quand vous triez une discussion cloud-pi-native/console : catégorie, corps, réponse Q&A, clôture (GraphQL).

- Skill: `shikanime-labs/cpn-discussion-triage` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add shikanime-labs/cpn-discussion-triage`
- Raw SKILL.md: https://api.skillmd.com/api/skills/shikanime-labs/cpn-discussion-triage/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: DevOps & Infra
- License: Apache-2.0
- Author: shikanime-labs (https://skillmd.com/u/shikanime-labs)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/shikanime-labs/cpn-discussion-triage

---


# CPN Discussion Triage

Discussion `cloud-pi-native/console` : pas de labels/assignees, triage =
**catégorie** + routage du cycle. **GraphQL uniquement**.

## Entrées

- `N` numéro, `R=cloud-pi-native/console` (défaut).

## 1. Sonder + récupérer

Sonder d'abord (peut être désactivé) :

```bash
gh api repos/"$R" --jq .has_discussions
```

Récupérer (le `id` de nœud sert aux mutations) :

```bash
gh api graphql -f query='
query {
  repository(owner: "cloud-pi-native", name: "console") {
    discussion(number: '"$N"') {
      id title body category { name slug }
      answer { id }  # Q&A uniquement
    }
    discussionCategories(first: 10) { nodes { id name slug } }
  }
}'
```

## 2. Décider + appliquer

Mutations via `--input`, **jamais** `-F variables=@file` (échoue). Pas de
`gh issue edit` ni REST.

- **catégorie** hors intention : RFC/design → `Ideas` ; décision/discussion →
  `General` ; question → `Q&A`. Recatégoriser :
  `updateDiscussion(input:{discussionId:$id, categoryId:$c})`.
- **corps** : contexte + questions ouvertes (`cpn-discussion`) ; élaguer le
  squelette de solution via `updateDiscussion`.
- **convergée** : questions résolues → commenter + router `cpn-issue`, ne pas
  résoudre ici.
- **répondue** (Q&A) :
  `markDiscussionCommentAsAnswer(input:{id:<commentNodeId>})`.
- **clôturer** :
  `closeDiscussion(input:{discussionId:$id, reason:RESOLVED|DUPLICATE|OUTDATED})`,
  commentaire de motif d'abord, jamais silencieusement.
- 404 si `.has_discussions` non sondé (désactivé).

## See also

`cpn-discussion` (création + corps), `cpn-issue` (dérivation).

