---
name: "week-to-days"
description: "Transférer les événements (#event) d'une page hebdomadaire SilverBullet (01_JOURNAL/Weeks/YYYY-WNN) vers les pages journalières correspondantes (01_JOURNAL/YYYY/YYYY-MM-DD), puis remplacer la liste d'événements de la page hebdo par une requête {query} dynamique basée sur l'attribut date et le tag #event."
---

# Transfert des événements de la semaine vers les jours (week-to-days)

## Objectif

Éviter les doublons : copier chaque événement (`#event`) de la page hebdomadaire vers la page du jour correspondante, puis remplacer la liste statique de la page hebdo par une requête dynamique `{query[[...]]}` qui liste les événements de la semaine.

## Input

- Numéro de semaine ISO **NN** (ex. `41`), fourni par la commande `/week-to-days NN`.
- La page hebdomadaire `01_JOURNAL/Weeks/YYYY-WNN` existe et contient des événements.

## Calcul des dates de la semaine

- Déterminer l'année `YYYY` (année courante ; gérer les semaines ISO chevauchant deux années, ex. semaine 1).
- Calculer le **lundi** de la semaine ISO `NN` (lundi = jour 1 de la semaine ISO).
- Les 7 jours : lundi → dimanche, au format `YYYY-MM-DD`.

## Process

1. **Lire** la page hebdo `01_JOURNAL/Weeks/YYYY-WNN` (via `read_note`).
2. **Extraire** chaque événement : lignes `* [ ] [date: YYYY-MM-DD] [hour: HHhMM/...] - [[PROJET]] - Titre #event` et leurs sous-lignes (`Cf. ...`, notes, ...). Se référer à l'attribut `[date:]` pour déterminer le jour.
3. **Pour chaque jour avec événement(s)** :
   - Lire la page du jour `01_JOURNAL/YYYY/YYYY-MM-DD`.
   - **Page existante** : insérer l'événement dans la section `**1. Evenements**` (après le titre de section, avant `**2. The Big One**`) via `search_replace` ou `update_note`.
   - **Page inexistante** : la créer via `create_note`, sur la base du modèle `80_CONFIG/Slash/day-template` (ignorer le frontmatter du modèle slash ; utiliser le frontmatter de page du jour `tags: journal`, `type: "day"`, `date`, `priority`) et placer les événements dans `**1. Evenements**`.
4. **Vérifier** (via `read_note` ou `eval_lua`) que tous les événements sont bien indexés dans les pages du jour.
5. **Réécrire** la page hebdo via `update_note` : conserver le frontmatter, le titre `# YYYY-WNN - Weekly review` et la ligne « Période », supprimer la liste d'événements, insérer la requête :

```
{query[[
  from t = index.tasks('event')
  where t.date and t.date >= "LUNDI" and t.date <= "DIMANCHE"
  order by t.date asc, t.hour asc
  select {
    DATE = t.date,
    HEURE = t.hour,
    EVENEMENT = t.name
  }
]]}
```

(`LUNDI` / `DIMANCHE` = dates calculées de la semaine.)

6. **Retour synthétique** : étapes réalisées, nombre d'événements déplacés, pages créées/modifiées, et toute incohérence relevée (ex. `[date:]` ≠ lien `Cf.`, doublons).

## Règles

- **Ne rien inventer** : copier les événements tels quels (`[ ]`/`[x]`, `[date:]`, `[hour:]`, liens, sous-lignes).
- **Conserver les attributs** `[date:]` et `[hour:]` : ils alimentent les requêtes du journal (`t.date == _CTX.currentPage.date`).
- **Conserver le frontmatter** des pages existantes.
- **Jours sans événement** : ne pas créer de page (sauf demande explicite).
- **Index** : SilverBullet met quelques secondes à réindexer après modification ; la requête se met à jour automatiquement.

## Outils MCP utilisés

- `tools["silverbullet-ai"].read_note`
- `tools["silverbullet-ai"].create_note`
- `tools["silverbullet-ai"].update_note`
- `tools["silverbullet-ai"].search_replace`
- `tools["silverbullet-ai"].eval_lua` (vérification)

> Syntaxe SLIQ / `eval_lua` : cf. skill `silverbullet-mcp` — section « ⭐ Requêtes SLIQ / Lua (eval_lua) ».
