/sigma-create-ticket
Vue d'ensemble
/sigma-create-ticket crée et modifie des tickets SPEC, EPIC et TICKET. Il est la passerelle pour /sigma-to-spec et /sigma-to-tickets. /sigma-unslop ne l'appelle pas.
Cette compétence est la seule à exécuter gh issue create ou gh issue edit. Elle n'implémente, ne révise ni ne fusionne.
Lisez CONVENTIONS.md avant une création ou une modification. Ce fichier contient les détails du titre, du label et du corps.
Quand l'utiliser
- À utiliser quand : l'utilisateur invoque
/sigma-create-ticket, ou que/sigma-to-specou/sigma-to-ticketstransmet un corps dans cette session. - Lister ou visualiser :
/sigma-to-specdemandelist-specs./sigma-to-ticketsdemandeview. Exécutez la lecture et retournez. Ne créez pas. - Ne pas utiliser quand : le travail est encore un entretien de solution (
/sigma-plan), une spec (/sigma-to-spec), ou une division (/sigma-to-tickets). N'implémentez pas, ne révisez pas, ne fusionnez pas.
Entrée
Un transfert contient caller, action (list-specs, view, create, ou update), kind (spec, epic, ou ticket), title, body, et parfois number, parent, et blocked-by.
Le oui de l'utilisateur est une réponse dans cette session. Ces réponses comptent comme un oui et ne donnent pas lieu à une seconde question :
/sigma-to-specaprès que l'utilisateur a dit oui au résumé/sigma-to-ticketsaprès que l'utilisateur a dit oui au grain et aux bloqueurs
Tout autre lot de 2 tickets ou plus attend un oui ici.
Contrat de ticket
- SPEC : titre
SPEC: <nom>, labelspec, pas de parent. Corps : ce que cette fonctionnalité est, ce qu'elle n'est pas, identifiants d'acceptation, globs de scripts sousscripts/, hors périmètre. Pas de questions ouvertes. - EPIC : titre
EPIC: <nom>, labeltype:epic. Parent est le SPEC. - TICKET : titre
TICKET: <nom>, labeltype:ticketplusagent:hitlouagent:afk. Parent est un EPIC ou le SPEC quand/sigma-to-ticketsen nomme un. Un ticket issu d'une revue n'a pas de parent spec sauf si ce transfert nomme un epic. Sections du corps : Contexte, Acceptation, Hors périmètre, Brancheagent/{N}-{slug}, Modehitlouafk.
Labels garantis par cette compétence : spec, type:epic, type:ticket, agent:hitl, agent:afk. Le label Mode correspond à la ligne Mode.
Étapes
Étape 1 - Résoudre le dépôt de travail
Exécutez gh repo view --json nameWithOwner. Terminé quand il affiche propriétaire/nom. En cas d'échec, dites à l'utilisateur d'exécuter depuis le dépôt de travail ou d'exécuter gh auth login, et arrêtez.
Si le nom du dépôt se termine par sigma-build-factory, arrêtez. Les tickets appartiennent au dépôt de travail.
Étape 2 - Lire ou écrire
Lisez CONVENTIONS.md avant toute création ou modification.
list-specs exécute :
gh issue list --repo "$REPO" --label spec --state all --limit 50 \
--json number,title,state,url,body
view exécute gh issue view <N> --repo "$REPO" --json number,title,labels,state,url,body.
Retournez le JSON à l'appelant. Ne garantissez pas les labels et ne posez pas de question.
Terminé quand l'appelant a la liste ou le ticket, ou que le chemin d'écriture continue à l'Étape 3.
Étape 3 - Porte du oui
Un transfert provenant des trois cas de oui dans la section Entrée est prêt à être créé.
Un lot direct (2 tickets ou plus) sans oui dans cette session : affichez titre, type, parent et Mode pour chaque ligne. Demandez une fois : "Créer ces tickets ?" Attendez. Le silence ne crée pas.
Un ticket direct unique : demandez une fois quand le titre, le type ou un parent de feature-lane est manquant. Quand ces champs sont présents, créez.
Une mise à jour sans oui dans cette session : affichez le numéro et le titre du ticket, demandez une fois, puis modifiez. Ne créez pas un second ticket.
Terminé quand le oui est enregistré, ou qu'une création unique complète est prête à être créée.
Étape 4 - Garantir les labels
Sur le chemin d'écriture, listez les labels et créez tout nom manquant du contrat :
gh label list --repo "$REPO" --limit 100 --json name
gh label create <nom> --repo "$REPO" --description "<depuis CONVENTIONS.md>"
Terminé quand gh label list affiche spec, type:epic, type:ticket, agent:hitl, et agent:afk.
Étape 5 - Correspondre à un ticket existant
Listez les tickets et comparez le titre exact SPEC: <nom>, EPIC: <nom>, ou TICKET: <nom>.
gh issue list --repo "$REPO" --state all --limit 200 --json number,title,state,url
Une mise à jour confirmée modifie ce numéro. Elle ne crée pas. Si le nouveau titre est déjà sur un autre ticket, arrêtez cet élément et signalez les deux numéros.
Une création qui trouve un titre exact signale exists et réutilise le numéro. Elle ne crée pas un second ticket et ne modifie pas le corps. Deux titres exacts arrêtent cet élément.
Terminé quand chaque élément est créé, mis à jour, réutilisé ou en collision.
Étape 6 - Créer ou modifier
Écrivez le corps dans un fichier temporaire. Ne l'écrivez pas dans le dépôt de travail.
Définissez le préfixe du titre quand le nom court en manque. Ne doublez pas le préfixe.
Créez dans l'ordre : les epics avant leurs tickets, les bloqueurs avant leurs dépendants. Ajoutez --parent quand le transfert en nomme un. Ajoutez --blocked-by quand les numéros bloqueurs existent déjà. Omettez chaque drapeau quand il n'a pas de valeur.
gh issue create --repo "$REPO" --title "<titre>" --label "<labels>" --body-file "$f"
Analysez N depuis l'URL. Un ticket dont la ligne Branche est manquante ou contient encore {N} est modifié pour que la ligne soit agent/<N>-<slug>. Le slug est le nom après le préfixe, en minuscules, les espaces remplacés par des tirets.
gh issue edit <N> --repo "$REPO" --body-file "$f"
Sur une mise à jour confirmée, gh issue edit remplace le titre et le corps et corrige les labels. Supprimez l'autre label de mode pour qu'il ne reste que celui correspondant. Ne changez pas le parent lors d'une modification.
Un SPEC reçoit seulement le label spec. Un EPIC reçoit seulement type:epic. Un TICKET reçoit type:ticket et le label de mode correspondant.
Enregistrez un échec gh et continuez les éléments indépendants. Ne créez pas d'enfants d'un epic en échec. Ne fermez pas le parent.
Terminé quand gh issue view <N> --json title,labels,body affiche le titre, les labels, et, pour un ticket, Branche agent/<N>-<slug> avec Mode correspondant au label.
Étape 7 - Retour
Retournez le numéro, le titre et l'URL pour chaque élément, y compris exists et les échecs.
Quand l'appelant est une autre compétence, arrêtez-vous là. Cette compétence nomme la commande suivante. Quand l'utilisateur a invoqué /sigma-create-ticket, nommez la commande suivante sans l'invoquer. Un SPEC va vers /sigma-to-tickets <N>. Un ticket va vers /sigma-implement <N>. Pour un epic, dites que /sigma-implement refuse un epic.
Règles strictes
| Règle | Pourquoi / à quoi ressemble une violation |
|---|---|
Cette compétence est la seule à exécuter gh issue create ou gh issue edit. La liste et la vue pour les autres compétences s'exécutent aussi ici. | Un second chemin d'écriture dévie le titre, le label et le parent. |
| Garantissez les cinq labels, puis créez ou modifiez. | Un label manquant fait échouer le ticket suivant du lot. |
| Une mise à jour confirmée modifie ce ticket. Une correspondance de titre exact ne crée pas de doublon. | Un second SPEC: ou TICKET: divise une fonctionnalité. |
Un lot direct attend un oui. Un corps déjà confirmé par /sigma-to-spec ou /sigma-to-tickets dans cette session ne donne pas lieu à une seconde question. | Demander à nouveau bloque le transfert. Créer un lot direct sur le silence crée des tickets que l'utilisateur n'a pas vus. |
Après création, modifiez un ticket pour que la Branche soit agent/<N>-<slug>. Le label mode correspond à la ligne Mode. | Un {N} restant, ou afk avec agent:hitl, envoie le builder sur la mauvaise branche ou le mauvais mode. |
| Définissez le parent lors de la création quand le transfert en nomme un. Un ticket provenant d'une spec a pour parent un EPIC ou la SPEC. Un ticket provenant d'une revue omet le parent sauf si le transfert nomme un epic. | Inventer un parent spec copie l'acceptation que le ticket de revue n'implémente pas. |
| N'implémentez pas, ne révisez pas, ne fusionnez pas. | Cette compétence crée le ticket et s'arrête. |
Vérification
-
gh repo viewa retourné le dépôt de travail, et le nom du dépôt ne se termine pas parsigma-build-factory. - CONVENTIONS.md a été lu avant toute création ou modification.
-
list-specsetviewont retourné du JSON et n'ont pas créé. - Les cinq labels existent avant la création ou la modification.
- Un lot direct a reçu un oui explicite. Un oui amont dans cette session n'a pas donné lieu à une seconde question.
- Une mise à jour confirmée a modifié le ticket nommé. Aucun second ticket ne partage ce titre exact.
- La ligne Branche d'un nouveau ticket est
agent/<N>-<slug>, et le label mode correspond à la ligne Mode. - Un epic provenant d'une spec a pour parent cette SPEC. Un ticket provenant d'une spec a pour parent un EPIC ou la SPEC. Un ticket provenant d'une revue n'a pas de parent spec sauf si le transfert a nommé un epic.
- Le retour est le numéro, le titre et l'URL. Cette compétence n'a pas implémenté, révisé ni fusionné.