Zones (Areas)
Les zones sont des responsabilités continues sans date de fin — santé, finances, carrière. Ce ne sont pas des projets et elles ne sont jamais « terminées ». Une zone devenue silencieuse est la raison d'être de cette compétence : contrairement à un projet, rien ne signale qu'une zone a été négligée.
La manière dont les zones sont organisées n'est pas décidée ici. areas.md possède le modèle : s'il existe une couche de regroupement, comment s'appellent les groupes, quel champ de frontmatter enregistre le groupe, et où va une nouvelle note. Cette compétence applique l'algorithme et lit le modèle — elle ne code jamais en dur un nom de groupe ni ne suppose combien il y en a.
Couche de base
À lire avant d'agir, chacun en tant que ../../para/<fichier>.md relatif au répertoire de base de cette compétence — ils contiennent les règles partagées, ne les répétez pas de mémoire :
../../para/paths.md— toujours, y compris « Langue » : les chaînes ci-dessous proviennent delang/<LANGUE>.md.claude/para/areas.md(configuration du coffre, sousREPO_ROOT) — toujours ; cette compétence est vide sans le modèle../../para/note-format.md— pourcreate; pourreviewsousTASKS = files, « Champs hérités »../../para/find-target.md— quandreviewdoit résoudre une zone nommée../../para/confirm.md—createécrit ;reviewn'écrit rien../../para/thresholds.md— pourreview
Sous-commandes
Le premier mot de $ARGUMENTS choisit la sous-commande : create ou review. Vide → afficher les deux et demander.
create <nom> — démarrer une zone
- Lire
Templates/Area.mddepuis le disque, textuellement. - Décider le groupe. Une des valeurs que
GROUPSliste dansareas.md, d'après la description. Si c'est vraiment flou, demander — le champ de regroupement est celui qui détermine où va le fichier, il ne peut pas rester vide. AvecGROUPING = none, cette étape ne s'applique pas. - Remplir le frontmatter selon la ligne Zone du schéma dans
note-format.md:title,tags: [area/<slug>]avec le slug renseigné selonnote-format.md, et le champ de regroupement si le modèle en a un. - Remplir le corps :
- la section
common.links— wikiliens vers les notes liées, sinon le-vide du modèle. - la section
area.current_state— où en est cette responsabilité maintenant, dans les propres mots de l'utilisateur d'après la description. Vide s'il n'a rien dit. - la section
area.notes— laisser vide ; elle se remplit avec le temps.
- la section
- Écrire au chemin que donne
PLACEMENTdansareas.md, en allant plus loin si la description implique un sous-dossier. Vérifier d'abord le nom de base pour une collision à l'échelle du coffre. - Rapporter le chemin et le groupe.
Si la description a un état final et un objectif, c'est un projet, pas une zone — le dire et proposer /projects create.
review — ce qui est devenu silencieux
Lecture seule. Répond à « quelles sont mes responsabilités dont je ne m'occupe pas ». Avec un argument, ne réviser que cette zone ; sans argument, chaque groupe que GROUPS liste — quel qu'en soit le nombre.
-
Parcourir
Areas/récursivement. Pour chaque note : chemin, le champ de regroupement, et mtime (stat -f '%m %N'). SousTASKS = files, laisser de côté*/Tasks/*: ce sont des notes de tâches, pas des notes de zone (note-format.md« Champs hérités »). -
Lire le frontmatter de chacune, et la section
area.current_statesi présente. Ne pas lire les corps entiers — c'est un balayage, pas un résumé de chaque note. -
Calculer par groupe : combien de notes, quand le groupe a été touché pour la dernière fois, et quelles notes individuelles ont dépassé le seuil de vétusté des zones dans
thresholds.md, délibérément bien plus large que celui d'un projet. -
Signaler uniquement ce qui déclenche effectivement :
- un groupe sans aucune note ;
- une note au-delà de ce seuil — dire depuis combien de temps, pas que c'est grave ;
- une note qui viole
PLACEMENT_CHECK— son champ de regroupement en désaccord avec le dossier où elle se trouve. Ignorer quand le modèle définitPLACEMENT_CHECK = none; - une note de zone avec un slug de balise
area/non rempli ; - une note sans frontmatter du tout (antérieure à la convention — le constater, ne pas la migrer) ;
- des wikiliens pendants dans la section
common.links; - une zone contenant ce qui ressemble à du travail de projet — un objectif avec un état final. La nommer et proposer de la scinder.
-
Rendre dans
LANGUEselonREVIEW_GROUPING, en laissant de côté tout groupe qui n'a rien à signaler, avec les chaînesareas.review.*. La forme exacte de la sortie se trouve dansareas.md— elle dépend du modèle, donc elle est écrite là où se trouve le modèle. -
N'écrire rien. Si la révision révèle quelque chose qui vaut la peine d'être fait, le dire et laisser l'utilisateur décider.
Remarques
- Le silence dans une zone est une information, pas un verdict. Le signaler factuellement — « inchangée depuis 74 jours », jamais « vous l'avez abandonnée ».
- Une zone est rarement archivée ; les responsabilités continues ne prennent pas fin. Si on demande d'en archiver une, cela signifie généralement que la note est obsolète, pas la responsabilité — voir
/archive. - Tout dans
LANGUE.