# Chapitre 2 — Grammaire des signaux

> Mois 2 · Juillet 2026

---

## 2.1 Unité : l'onde

Une **onde** n'est pas une métrique. C'est une **histoire causale** avec :

| Partie | Rôle |
|--------|------|
| `seed` | Graine — geste perçu comme insignifiant |
| `ripples` | Ondulations — effets dans le temps |
| `human_frame` | Phrase pour tout humain |
| `planet_frame` | Lien planète (optionnel, non culpabilisant) |
| `veille` | true si l'onde vient du digest veille |

Schéma : [schema-onde.json](../annexes/schema-onde.json)

---

## 2.2 Sources de signaux

| Source | `seed.source` | Exemples |
|--------|---------------|----------|
| Git local | `git` | commit, merge, tag |
| Signal Ledger EVT | `evt` | devlog.note, bridge.stats, ritual.bedtime |
| GitHub API | `github` | release, PR merged, check run |
| Hero | `hero` | stat_changed, mission.complete |
| FG_Pulse ACT | `pulse` | segment focus Cursor |
| IRL manuel | `irl` | tidiness, repas, show |
| Curation FG | `manual` | onde narrée pour le spectacle |

---

## 2.3 Types d'ondes

| Type | Description | Cycle typique |
|------|-------------|---------------|
| **Micro** | Typo, label, commentaire | minutes → heures |
| **Meso** | PR, verify, gate | heures → jours |
| **Macro** | Release, refonte, jam | jours → semaines |
| **Veille** | Release dep, advisory | hebdomadaire |
| **Silence** | Période sans activité puis burst | saisonnier |

---

## 2.4 Cycles invisibles

Sans visualisation, personne ne voit :

- **Respiration jour/nuit** — commits 22h–2h vs matin
- **Latence PR** — open → first review → merge
- **Dette silencieuse** — issues stale puis fermetures groupées
- **Corrélation cross-repo** — hub merge → Matrice CI → Hero ingest
- **Co-présence fantôme** — N padawans, même teinte DMX, sans chat (sortilège 1)

Le companion visualise : ripple, constellation, spiral hebdo.

---

## 2.5 Corrélation auto vs curation

| Phase | Mode |
|-------|------|
| M1–M2 | Heuristique : commits + EVT même jour → candidats onde |
| M3+ | Veille GitHub search → ondes `veille: true` |
| M3–M6 | **Curation FG** : `human_frame`, fusion, rejet si aspirateur |

Le collecteur propose ; FG (ou le narrateur show) **dispose**.

---

## 2.6 Nœuds du graphe

Les `ripples[].node` utilisent les slugs devblog + chaînes E1–E8 :

- `VFVFGPT`, `matrice`, `vfg-hero`, `vfgate`, `chataigne`
- `E1-tidiness`, `E2-faim`, `E4-show`, `E7-swarm`, `E8-refuge`

---

## 2.7 Fichiers de données

```
ondes/data/waves/
├── YYYY-MM-DD.json      # snapshot journalier
├── week-latest.json     # 3 ondes de la semaine (companion)
├── curated-waves.json   # exemples show-ready
└── veille-latest.json   # digest veille
```

Collecte : `npm run ondes:collect` depuis VFVFGPT.

---

*Suite : [03-veille-sans-aspiration.md](./03-veille-sans-aspiration.md)*
