sessionStart prompt hooks don't fire on /new , and /clear seems to skip sessionStart entirely — naming/behavior mismatch
- Langage dominant
- Shell
- Étoiles
- 11.2k
- Forks
- 1.9k
- Merge moyen
- 14 h 16 min
- PR mergées (30 j)
- 6
Description
### Describe the feature or problem you'd like to solve
Invoke a skill foreach new session
### Proposed solution
The **sessionStart** hook name strongly implies it fires whenever a new "session" (conversation) begins — including via /new and /clear . In practice:
1. Hook entries of **"type": "prompt"** only fire on true CLI process startup ( **source: "startup"** ), not on /new ( **source: "new"** ) or /clear , per the docs note: "Prompt hooks fire only for new interactive sessions... They do not fire on resume." This is confusing because /new is documented as "Start a new conversation" and intuitively should count as a "new interactive session."
2. /clear ("Abandon this session and start fresh") doesn't appear to trigger sessionStart at all — it's not listed among the source values ( "startup" | "resume" | "new" ).
This creates a real usability gap: a user-level hook meant to re-apply a session-scoped customization (e.g., auto-running a skill/mode via a prompt hook) silently stops working after /new or /clear , with no indication in /env that anything is "missing" — the hook config is loaded, it just never fires again for these transitions.
Suggestions:
• Either make "type": "prompt" hooks fire for source: "new" (matching user expectation and documented /new behavior), or rename the event/restrict the docs wording so it's unambiguous that sessionStart (for prompt hooks) really means "process startup only."
• Clarify/confirm whether /clear fires sessionStart at all, and add it explicitly to the source enum if so.
• Consider a distinct event (e.g., conversationStart ) for /new / /clear transitions, separate from true process-level sessionStart , so hook authors can target the semantics they actually need.
### Example prompts or workflows
_No response_
### Additional context
_No response_
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par la documentation du hook sessionStart et suivez la manière dont les commandes /new et /clear gèrent les sources des hooks. Confirmez le comportement actuel des hooks de prompt et définissez si ces transitions doivent utiliser sessionStart ou un événement distinct. Le travail est terminé lorsque la sémantique des événements, les valeurs des sources et la documentation sont cohérentes, et que les transitions concernées sont couvertes par des tests.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- shell
- Domaine
- cli, developer-experience
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- Calme
- Clarté
- Plutôt claire
- Accessibilité débutants
- 45/100