Que fait fade-away ?
Maintient une couche mémoire légère : journal -> wiki thématique -> index -> MOC hebdomadaire -> base de connaissances, afin que l'utilisateur puisse changer de tâche et construire une base de connaissances LLM personnelle sans avoir à réexpliquer le contexte.
Contrat de fonctionnement
Ce skill s'exécute sur l'ensemble de la conversation, pas uniquement au premier tour. Avant chaque réponse de l'assistant, vérifiez si le tour déclenche : démarrage de session, sauvegarde par tour, changement de sujet, enregistrement manuel, promotion de sujet, hebdomadaire/tableau de bord/lint, ou promotion de connaissance. La règle la plus souvent oubliée est la sauvegarde par tour : chaque tour d'assistant substantiel ajoute une ligne (HH:MM) <进展> dans l'entrée de journal active.
Gardez le chemin chaud court. Placez les mécanismes peu fréquents dans references/ et chargez-les uniquement lorsque leur déclencheur se produit.
Chemins
<VAULT_ROOT> est le coffre Obsidian que fade-away maintient. Résolvez-le une fois par session, dans cet ordre :
- Le champ
Vault rootdéclaré dans le fichierAGENTS.md/CLAUDE.mddu projet (écrit par l'installateur bootstrap,scripts/bootstrap_vault.py). - Si ce champ n'existe pas, traitez le répertoire de travail / projet courant comme la racine du coffre.
Développez toujours <VAULT_ROOT> en ce chemin absolu avant de lire ou d'écrire :
- Journal :
<VAULT_ROOT>/03 Journal/<YYYY-MM>/<YYYY-Wnn>/YYYY-MM-DD.mdoù<YYYY-MM>est le mois de la date elle-même et<YYYY-Wnn>est la semaine ISO de cette date. - Index hebdomadaire :
<VAULT_ROOT>/03 Journal/<YYYY-MM>/<YYYY-Wnn>/YYYY-Wnn 周索引.mdoù<YYYY-MM>est le mois contenant le dimanche de la semaine. - Index des tâches :
<VAULT_ROOT>/00 Tasks/_Index.md - Pages de sujet :
<VAULT_ROOT>/00 Tasks/<topic-filename>.md - Pages de connaissance :
<VAULT_ROOT>/02 Knowledge/<domain>/<page>.md - Références : le répertoire
references/de ce skill
Si 00 Tasks/ ou _Index.md est manquant, ignorez la logique d'index des tâches et de sujet pour la session. Ne créez pas automatiquement 00 Tasks/ en cours de session. La journalisation continue.
Les fichiers de premier niveau tels que 备忘.md peuvent résider directement sous 03 Journal/ ; ne les déplacez pas.
Règle de fuseau horaire
Toutes les dates et heures enregistrées par ce skill DOIVENT utiliser un fuseau cohérent, appelé vault-time. Résolvez vault-time à partir du champ Time zone dans le fichier AGENTS.md / CLAUDE.md du projet ; s'il n'est pas défini, utilisez le fuseau local de la machine. L'installateur bootstrap le définit par défaut sur Asia/Hong_Kong, donc les coffres non configurés se comportent comme Asia/Hong_Kong / GMT+8 / UTC+8.
Utilisez vault-time pour les noms de fichiers du journal, les chemins parents, les en-têtes, les lignes de progression, le frontmatter des sujets, les horodatages de _Index.md et l'inférence d'index hebdomadaire.
Vérification shell préférée (remplacez par votre fuseau configuré) :
TZ=Asia/Hong_Kong date
Faites confiance à vault-time plutôt qu'aux indications de fuseau de l'outil. Si le fuseau de l'outil entre en conflit avec vault-time, dérivez le nom du fichier journal, la semaine ISO et HH:MM d'une nouvelle lecture vault-time. Pour les détails d'ajout/concurrence, lisez references/journal-write-protocol.md.
État de session
Suivi interne :
current_entry_start:HH:MMde l'entrée de journal active.current_entry_date:YYYY-MM-DDde l'entrée de journal active.current_entry_title: titre court de tâche en chinois actuel.bound_topic: nom de fichier du sujet sans.md, ouNone.bind_skipped:Trueuniquement après que l'utilisateur a choisi de ne pas lier.task_auto_bind_checked/task_auto_bind_skipped: réinitialisé pour chaque nouvelle entrée de journal.knowledge_candidate_prompted/knowledge_candidate_skipped: réinitialisé pour chaque nouvelle entrée de journal.knowledge_context_checked:Trueaprès que la demande utilisateur actuelle a passé la barrière de récupération de connaissance, ou lorsque la barrière est intentionnellement ignorée.tracking_disabled:Trueuniquement si l'utilisateur refuse le suivi pour cette session.
Début de conversation
-
Lisez
<VAULT_ROOT>/00 Tasks/_Index.mds'il existe. Analysez les lignes du corps du tableau comme[[topic]] | timestamp | next-step; traitez les fichiers manquants comme un index vide. -
Vérifiez rapidement s'il existe une session simultanée sur le même sujet. Lisez la fin du journal d'aujourd'hui en vault-time s'il existe. Si la dernière ligne de progression date de moins de 15 minutes vault-time et que son entrée chevauche plausiblement le premier message de l'utilisateur, affichez :
⚠️ 另一会话 <HH:MM> 刚写过 [[<topic>]],可能在并行做同一件事。我先扫一眼最新进展再回。Lisez ensuite l'entrée récente pour que cette réponse ne contredise pas le travail parallèle. S'il n'existe pas d'entrée récente chevauchante, ignorez silencieusement.
-
Exécutez la barrière de récupération de connaissance pour toute demande substantielle avant de vous fier uniquement à
_Index.md, au journal du jour ou à la page de sujet correspondante. Lisezreferences/knowledge-retrieval-trigger.mdlorsque la demande concerne un projet/domaine/personne/méthode pouvant avoir un contexte durable dans<VAULT_ROOT>/02 Knowledge/, ou lorsque l'utilisateur demande du contexte, une analyse, des décisions, une stratégie, une continuation, une révision, un style d'écriture, un workflow réutilisable, ou un travail plus ancien. Utilisez un routage d'inventaire d'abord : listez l'arborescence Knowledge active, déduisez les dossiers/projets actuels, puis faites correspondre les noms de fichiers, H1/titre, alias, tags,status: canonical, pages de navigation et pages source de vérité avant toute recherche large de corps. Sautez uniquement les salutations en attente de confirmation, les rapports de tableau de bord/lint uniquement, la tenue de journal pure, les requêtes utilitaires atomiques, et les cas où aucune connaissance pertinente n'est trouvée après ce passage metadata-first. -
Répartissez en fonction du premier message de l'utilisateur, dans cet ordre :
- Intention d'installation/configuration (
install fade-away,setup,bootstrap,初始化,第一次使用,开源部署, ou un_Index.mdmanquant avec une demande d'initialisation) : lisezreferences/bootstrap-vault.md. Bootstrap est un chemin d'installation unique ; demandez la racine du coffre si elle n'est pas claire et ne créez jamais de fichiers sans confirmation de l'utilisateur. - Intention de vérification de contexte/instructions (
AGENTS,CLAUDE,上下文,context,经验继承,规则漂移, structure du projet, maintenance du skill/coffre/workflow, ou une nouvelle limite cwd/projet) : lisezreferences/context-check.md. Signalez uniquement en cas de dérive ou si l'utilisateur demande explicitement ; n'écrivez pas de fichiers d'instructions sans confirmation de l'utilisateur pour le correctif spécifique. - Intention d'audit mémoire (
lint,体检,health check,检查知识库,检查任务索引,看看哪些适合变成 wiki, ou similaire) : lisezreferences/lint-vault-memory.md; affichez d'abord un rapport et n'écrivez pas de correctifs ou de pages de connaissance sans confirmation de l'utilisateur. - Intention de promotion de connaissance (
沉淀成知识,写进 knowledge,变成 wiki,归档成知识页, ou similaire) : lisezreferences/promote-to-knowledge.md. - Intention d'index hebdomadaire (
周索引,周报,weekly index,weekly summary,本周总结, ou similaire) : lisezreferences/render-weekly-index.md. N'ouvrez une entrée de journal que si le module écrit ou met à jour un index hebdomadaire. - Intention de tableau de bord (
看下任务,看板,dashboard,总览, ou similaire) : lisezreferences/render-dashboard.md, affichez uniquement, et n'ouvrez pas encore d'entrée de journal. - Correspondance claire avec un sujet existant : lisez cette page de sujet silencieusement, définissez
bound_topic, puis ouvrez une entrée de journal. - Salutation vague (
hi,你好,在吗,开始干活了, etc.) : si_Index.mda des lignes, émettez⏮️ 上次:<task>,下一步是 <next-step>。继续这个还是新任务?et attendez la réponse. Liez à la première ligne uniquement si l'utilisateur confirme. - Nouvelle tâche substantielle : ne mentionnez pas les anciennes tâches ; laissez
bound_topic = None.
- Intention d'installation/configuration (
Ouvrir une entrée de journal
N'ouvrez une entrée de journal que lorsque le travail commence réellement. Calculez le chemin quotidien en vault-time comme 03 Journal/<YYYY-MM>/<YYYY-Wnn>/YYYY-MM-DD.md, où <YYYY-MM> est le mois de la date elle-même et <YYYY-Wnn> est la semaine ISO. Créez les dossiers manquants du mois/semaine avec mkdir -p.
Si le fichier quotidien est manquant, créez-le à partir du modèle dans references/journal-write-protocol.md. Assurez-vous de ## 🕐 任务时间线, puis ajoutez un en-tête en bas de cette section :
- Non lié :
### HH:MM ▶️ <短中文标题> - Lié :
### HH:MM ▶️ <短中文标题> → [[00 Tasks/<bound_topic>]]
Stockez current_entry_start, current_entry_date et current_entry_title. Réinitialisez les indicateurs de tâche, de candidat de connaissance et de récupération de connaissance pour la nouvelle entrée.
Sauvegarde par tour
Après chaque tour d'assistant avec une sortie substantielle, ajoutez exactement une ligne de progression à l'intérieur de l'entrée de journal active :
(HH:MM) <一句话进展>
Ajoutez à la fin du corps de l'entrée active, immédiatement avant le prochain en-tête de chronologie ### ou la fin du fichier. Ne réécrivez pas les lignes de progression antérieures. Ignorez la sauvegarde si le tour n'est qu'une question de clarification ou si tracking_disabled = True.
Avant d'écrire, lisez references/journal-write-protocol.md lorsque vous avez besoin de l'emplacement exact d'ajout, du rebasage d'écriture concurrente, de la gestion des limites vault-time, de la syntaxe des lignes pièges, ou du modèle de journal.
Vérifications post-sauvegarde
Exécutez ces vérifications après la sauvegarde par tour :
- Promotion explicite : si la sortie visible contient un marqueur
➡️ 下一步explicite ou une section## ➡️ 下一步, mettez à jour la couche sujet/index. Sibound_topicest défini, lisezreferences/topic-update-protocol.md; sinon, sibind_skipped = False, lisezreferences/promote-to-wiki.md. - Actualisation automatique du sujet : lorsque
bound_topicest défini et qu'aucune étape suivante explicite n'est apparue, lisezreferences/topic-update-protocol.mdsi l'entrée active peut atteindre les seuils de vétusté existants. Conservez le comportement d'actualisation automatique actuel ; ne le convertissez pas en une invite de confirmation sauf si l'utilisateur le demande. - Liaison automatique de tâche : lorsque l'entrée active n'est pas liée et manque d'un
➡️ 下一步explicite, lisezreferences/task-candidate-trigger.md. Créez/liez automatiquement un sujet pour les sessions de type tâche ; ignorez uniquement les Q&A triviaux, les salutations, les rapports de tableau de bord/lint uniquement, la clarification pure, ou les sessions sans nature de tâche. - Candidat de connaissance : lorsque des connaissances réutilisables peuvent avoir émergé et que l'utilisateur n'a pas déjà demandé de promotion, lisez
references/knowledge-candidate-trigger.md. Ne créez ni ne mettez à jour02 Knowledge/automatiquement.
Changement de sujet en cours de session
Si l'utilisateur dit 继续做 X, 回到 X, ou demande autrement un changement alors qu'une entrée est déjà ouverte :
- Faites correspondre
Xavec_Index.mdde manière prudente. - Si aucune correspondance claire n'existe, posez une courte question de clarification.
- Si la correspondance est claire et différente de
bound_topic, demandez :切到 [[X]]?我会给当前 entry 追加一行切换记录,然后打开新的 X entry。 - Sur confirmation, ajoutez
(HH:MM) 切出当前任务,转到 [[00 Tasks/X]]。, lisez la page de sujet, définissezbound_topic = X, et ouvrez une nouvelle entrée de journal liée. - Si l'utilisateur refuse, conservez la liaison existante.
Ne changez pas silencieusement de sujet en cours de session.
Demande d'enregistrement manuel
Si l'utilisateur dit 记录一下, 记一下刚才的进展, ou similaire, ajoutez une ligne de progression supplémentaire à l'entrée actuelle résumant la progression depuis la dernière sauvegarde. N'ouvrez pas de nouvelle entrée et ne fermez pas l'entrée actuelle sauf si l'utilisateur le demande explicitement pour changer de tâche.
Modules
Chargez les workflows peu fréquents uniquement à la demande :
references/journal-write-protocol.md: création de journal, placement d'ajout, gestion des limites vault-time, rebasage d'écriture concurrente, syntaxe des lignes pièges et modèle de journal.references/bootstrap-vault.md: workflow d'installation unique pour le coffre Obsidian d'un nouvel utilisateur ; crée le répertoire/modèle/index minimal de fade-away ainsi que les points d'entrée d'instructions uniquement après confirmation.references/context-check.md: vérification à froid ou de changement de limite pour les surfaces d'instructions/contexte obsolètes telles queAGENTS.md,CLAUDE.md, les notes de structure de projet et l'héritage de connaissance ; signalez la dérive sans écrire tant qu'elle n'est pas confirmée.references/task-candidate-trigger.md: lie automatiquement les entrées de tâches substantielles non liées à00 Tasks; ignore les sessions triviales ou sans tâche.references/topic-update-protocol.md: met à jour les pages de sujet liées, rafraîchit_Index.mdet exécute le comportement d'actualisation automatique du sujet actuel.references/promote-to-wiki.md: lie une entrée de journal non liée à une page de sujet et met à jour_Index.mdaprès un➡️ 下一步explicite ou un déclencheur de liaison automatique de tâche.references/render-dashboard.md: affiche un tableau de bord de tâches en lecture seule à partir de_Index.md.references/render-weekly-index.md: génère ou met à jour un MOC hebdomadaire à la demande dans03 Journal/<YYYY-MM>/<YYYY-Wnn>/YYYY-Wnn 周索引.md.references/lint-vault-memory.md: affiche un rapport d'état en lecture seule pour les couches tâche, journal, index hebdomadaire et connaissance.references/knowledge-retrieval-trigger.md: avant un travail substantiel, inventorie l'arborescence02 Knowledge/active, classe les candidats à partir des métadonnées et lit un petit nombre de pages pertinentes afin que le contexte durable plus ancien, les méthodes et les faits du projet puissent influencer la réponse.references/knowledge-candidate-trigger.md: propose du matériel de journal réutilisable pour02 Knowledge/sans écrire tant que ce n'est pas confirmé.references/promote-to-knowledge.md: crée ou met à jour des pages organisées sous02 Knowledge/après confirmation.
Règles de format
- Format de l'heure :
HH:MMsur 24 heures en utilisant le fuseau horaire vault configuré. - Titre du journal : court, descriptif en chinois ; évitez les titres génériques comme
任务1. - Nom de fichier du sujet : kebab-case, sans espaces, extension
.mduniquement sur disque. - Lien wiki du sujet dans le journal :
[[00 Tasks/<topic>]]. - Format de ligne d'index :
| [[<topic>]] | YYYY-MM-DD HH:MM | <escaped next-step> |. - Les répertoires
task-trackerhérités ont été supprimés ; si l'utilisateur demande l'ancien tracker, expliquez quefade-awayl'a remplacé.
Cas particuliers
- L'utilisateur refuse (
这次不用记录) : définisseztracking_disabled = True; ignorez toutes les écritures pour la session, mais la lecture de_Index.mdpour le contexte est autorisée. - Minuit : utilisez minuit vault-time. Après minuit vault-time, ouvrez une entrée de continuation dans le journal du nouveau jour vault-time et continuez les sauvegardes par tour là-bas.
- Tour uniquement tableau de bord : affichez le tableau de bord et attendez ; n'ouvrez pas d'entrée de journal tant que l'utilisateur n'a pas commencé un vrai travail.
- Page de sujet manquante pour une correspondance d'index : dites que la ligne de sujet existe mais que la page est manquante, puis demandez s'il faut la recréer ou continuer sans liaison.