[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-4c34e163-f330-4eb2-9f35-95f5e4d2b396":3,"$fIkSaxVGtEH3UXWrgICJegAh3erYwE99l6g1yY1Us7s4":43},{"id":4,"title":5,"description":6,"categoryId":7,"moduleId":8,"tags":9,"prompt":10,"icon":11,"source":12,"sourceUrl":13,"authorId":14,"authorName":15,"isPublic":16,"stars":17,"runs":18,"createdAt":19,"updatedAt":19,"module":20,"category":27,"packages":34},"4c34e163-f330-4eb2-9f35-95f5e4d2b396","diary","统一日记系统：多项目开发中保留上下文的自动化日志记录器。","cat_life_career","mod_other","sickn33,other","---\nname: diary\ndescription: \"Unified Diary System: A context-preserving automated logger for multi-project development.\"\nrisk: safe\nsource: self\n---\n\n# 📔 Unified Diary System\n\n## When to Use This Skill\nUse this skill when you want to summarize progress, write a daily dev log, or perform a daily review while keeping project contexts isolated and synced to Notion\u002FObsidian.\n\n> 🚨 **Agent One-Shot Integrity Constraint (Highest Priority)**: Steps 1-4 are an **indivisible atomic workflow**. The AI **MUST use Continuous Tool Calling** to complete all actions in one breath.\n> - **ABSOLUTELY FORBIDDEN** to output conversational text and wait for the user after completing Step 1, 2, or 3.\n> - Example: Immediately after saving the file in Step 1, you must **automatically and instantly** call the terminal tool to execute the script in Step 2. Stopping to chat or asking \"Should I continue?\" is considered a critical error. Only inform the user explicitly if you are stuck due to a technical error.\n\n> ⚠️ **Ironclad Rule 1**: The local project diary in Step 1 **must NEVER be polluted with global data**. It only records the current project.\n> ⚠️ **Ironclad Rule 2**: When using tools like `run_command` to execute predefined python scripts (Step 2, Step 4), you must set them to `SafeToAutoRun: true` to avoid getting stuck waiting for user authorization.\n> ⚠️ **Ironclad Rule 3**: **Never guess the project name**. The AI must confirm the current directory name as the project identifier using a terminal command BEFORE taking any action in Step 1.\n\n---\n\n## Step 1: Local Project Archiving (AI Generation)\n- **Action 0 (Identify)**: Call the terminal `pwd` (Linux\u002FMac) or `(Get-Item .).Name` (Windows) to confirm the current folder name.\n- **Action 1 (Write)**: Summarize the achievements from the current conversation (Git Commits, file changes, task progress), and write them into the **current project folder** at `diary\u002FYYYY\u002FMM\u002FYYYY-MM-DD-ProjectName.md`.\n- **Isolation and Naming Rules (Ironclad Rules)**:\n  - 📄 **Mandatory Filename Suffix**: The local diary **MUST** include the project name detected just now. It is **absolutely forbidden** to use a global-level filename (like `2026-02-23.md`) locally.\n  - ✅ **Pure Content**: Only record content exclusive to the current project. Do not mix in other projects.\n  - 📝 **Append Mode**: If the project diary already exists, update it using \"append\", never overwrite the original content.\n  - 📁 **Auto-Creation**: Create subfolders `diary\u002FYYYY\u002FMM\u002F` based on the year and month.\n  - ⚡ **Force Continue**: Once writing is complete, **do not interrupt the conversation; immediately call the terminal tool and proceed to Step 2.**\n\n## Step 1.5: Refresh Project Context (Automation Script)\n- **Prerequisite**: You have confirmed the current project directory path (from Action 0's `pwd` result).\n- **Action**: Call the terminal to execute the following command to automatically scan the project state and generate\u002Fupdate `AGENT_CONTEXT.md`:\n  ```powershell\n  python {diary_system_path}\u002Fscripts\u002Fprepare_context.py \"\u003CProject_Root_Path>\"\n  ```\n- **SafeToAutoRun**: true (Safe operation; purely reading and writing local files).\n- **Result**: `AGENT_CONTEXT.md` in the project directory is refreshed to the latest state.\n- **After Completion**: Force continue to Step 2; do not wait for user confirmation.\n\n## Step 2: Extract Global & Project Material (Script Execution)\n- **Action**: Call the extraction script, **passing in the absolute path of the project diary just written in Step 1**. The script will precisely print \"Today's Global Progress\" and \"Current Project Progress\".\n- **Execution Command**:\n  ```powershell\n  python {diary_system_path}\u002Fscripts\u002Ffetch_diaries.py \"\u003CAbsolute_Path_to_Step1_Project_Diary>\"\n  ```\n- **Result**: The terminal will print two sets of material side-by-side. The AI must read the terminal output directly and prepare for mental fusion.\n\n## Step 3: AI Smart Fusion & Global Archiving (AI Execution) 🧠\n- **Action**: Based on the two materials printed by the terminal in Step 2, complete a **seamless fusion** mentally, then write it to the global diary: `{diary_system_path}\u002Fdiary\u002FYYYY\u002FMM\u002FYYYY-MM-DD.md`.\n- **Context Firewall (Core Mechanism)**:\n  1. **No Tag Drift**: When reading \"Global Progress Material\", there may be progress from other projects. **It is strictly forbidden to categorize today's conversation achievements under existing project headings belonging to other projects.**\n  2. **Priority Definition**: The content marked as `📁 [Current Project Latest Progress]` in Step 2 is the protagonist of today's diary.\n- **Rewrite Rules**:\n  1. **Safety First**: If the global diary \"already exists,\" preserve the original content and append\u002Ffuse the new project progress. **Do not overwrite.**\n  2. **Precise Zoning**: Ensure there is a dedicated `### 📁 ProjectName` zone for this project. Do not mix content into other project zones.\n  3. **Lessons Learned**: Merge and deduplicate; attach action items to every entry.\n  4. **Cleanup**: After writing or fusing globally, you **must** force-delete any temporary files created to avoid encoding issues (e.g., `temp_diary.txt`, `fetched_diary.txt`) to keep the workspace clean.\n\n## Step 4: Cloud Sync & Experience Extraction (Script + Human) 🛑\n- **Action 1 (Sync)**: Call the master script to push the global diary to Notion and Obsidian.\n- **Execution Command**:\n  ```powershell\n  python {diary_system_path}\u002Fscripts\u002Fmaster_diary_sync.py --sync-only\n  ```\n- **Action 2 (Extraction & Forced Pause)**:\n  1. The AI extracts \"Improvements & Learning\" from the global diary.\n  2. Confirm if it contains entirely new key points lacking in the past (📌 New Rules), or better approaches (🔄 Evolved Rules).\n  3. List the results and **WAIT FOR USER CONFIRMATION** (user says \"execute\" or \"agree\").\n  4. After user confirmation, update the `.md` file in `{Knowledge_Base_Path}\u002F` and execute `qmd embed` (if applicable).\n\n---\n**🎯 Task Acceptance Criteria**:\n1. ✅ Project local diary generated (no pollution).\n2. ✅ `fetch_diaries.py` called with absolute path and successfully printed materials.\n3. ✅ AI executed high-quality rewrite and precisely wrote to global diary (appended successfully if file existed).\n4. ✅ `--sync-only` successfully pushed to Notion + Obsidian.\n5. ✅ Experience extraction presented to the user and authorized.\n\n---\n\n## 📝 Templates and Writing Guidelines\n\nStrictly apply the following Markdown templates to ensure clarity during Step 1 (Local) and Step 3 (Global Fusion).\n\n### 💡 Writing Guidelines (For AI)\n1. **Dynamic Replacement**: The `{Project Name}` in the template MUST strictly use the folder name grabbed by `pwd` in Step 1.\n2. **Concise Deduplication**: When writing the global diary in Step 3, the AI must condense the \"🛠️ Execution Details\" from the local diary. The global diary focuses only on \"General Direction and Output Results.\"\n3. **Mandatory Checkboxes**: All \"Next Steps\" and \"Action Items\" must use the Markdown `* [ ]` format so they can be checked off in Obsidian\u002FNotion later.\n\n### 📝 Template 1: Project Local Diary (Step 1 Exclusive)\n\n```markdown\n# Project DevLog: {Project Name}\n* **📅 Date**: YYYY-MM-DD\n* **🏷️ Tags**: `#Project` `#DevLog`\n\n---\n\n> 🎯 **Progress Summary**\n> (Briefly state the core task completed, e.g., \"Finished Google Colab environment testing for auto-video-editor\")\n\n### 🛠️ Execution Details & Changes\n* **Git Commits**: (List if any)\n* **Core File Modifications**:\n  * 📄 `path\u002Ffilename`: Explanation of changes.\n* **Technical Implementation**:\n  * (Record key logic or architecture structural changes)\n\n### 🚨 Troubleshooting\n> 🐛 **Problem Encountered**: (e.g., API error, package conflict)\n> 💡 **Solution**: (Final fix, leave key commands)\n\n### ⏭️ Next Steps\n- [ ] (Specific task 1)\n- [ ] (Specific task 2)\n```\n\n---\n\n### 🌍 Template 2: Global Diary (Step 3 Exclusive)\n\n```markdown\n# 📔 YYYY-MM-DD Global Progress Overview\n\n> 🌟 **Daily Highlight**\n> (1-2 sentences summarizing all project progress for the day, synthesized by AI)\n\n---\n\n## 📁 Project Tracking\n(⚠️ AI Rule: If file exists, find the corresponding project title and append; NEVER overwrite, keep it clean.)\n\n### 🔵 {Project A, e.g., auto-video-editor}\n* **Today's Progress**: (Condense Step 2 local materials into key points)\n* **Action Items**: (Extract next steps)\n\n### 🟢 {Project B, e.g., GSS}\n* **Today's Progress**: (Condense key points)\n* **Action Items**: (Extract next steps)\n\n---\n\n## 🧠 Improvements & Learnings\n(⚠️ Dedicated to Experience Extraction)\n\n📌 **New Rules \u002F Discoveries**\n(e.g., Found hidden API limit, or a more efficient python syntax)\n\n🔄 **Optimizations & Reflections**\n(Improvements from past methods)\n\n---\n\n## ✅ Global Action Items\n- [ ] (Tasks unrelated to specific projects)\n- [ ] (System environment maintenance, etc.)\n```\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.\n","","imported","https:\u002F\u002Fgithub.com\u002Fsickn33\u002Fantigravity-awesome-skills","user_system_seed","SkillOPIC",true,225,1011,"2026-05-16 13:15:22",{"id":8,"name":21,"slug":22,"icon":23,"description":24,"sort":25,"createdAt":26},"其他","other","mdi-page-next-outline","其他类型Skill",5,"2026-05-16 12:53:40",{"id":7,"name":28,"slug":29,"icon":30,"description":31,"moduleId":8,"sort":32,"skillCount":33,"createdAt":26},"职场发展","career","mdi-briefcase-outline","面试准备、简历优化、职业规划",4,575,[35],{"id":36,"skillId":4,"version":37,"fileName":38,"fileSize":39,"filePath":40,"fileHash":41,"manifest":42,"createdAt":19},"4e9671db-434b-415a-b6f5-ffa18cfab3c2","1.0.0","diary.zip",24553,"uploads\u002Fskills\u002F4c34e163-f330-4eb2-9f35-95f5e4d2b396\u002Fdiary.zip","1c40a7b2e988a6ad6c4ac03218b6817ecf8a0584da79352f3f1e1d0fff1050b8","[{\"path\":\".env.example\",\"isDirectory\":false,\"size\":357},{\"path\":\".gitignore\",\"isDirectory\":false,\"size\":145},{\"path\":\"LICENSE\",\"isDirectory\":false,\"size\":1056},{\"path\":\"README.md\",\"isDirectory\":false,\"size\":5938},{\"path\":\"SKILL.md\",\"isDirectory\":false,\"size\":9273},{\"path\":\"requirements.txt\",\"isDirectory\":false,\"size\":9},{\"path\":\"scripts\u002Ffetch_diaries.py\",\"isDirectory\":false,\"size\":3170},{\"path\":\"scripts\u002Fmaster_diary_sync.py\",\"isDirectory\":false,\"size\":9968},{\"path\":\"scripts\u002Fprepare_context.py\",\"isDirectory\":false,\"size\":9549},{\"path\":\"scripts\u002Fsync_to_notion.py\",\"isDirectory\":false,\"size\":17827},{\"path\":\"templates\u002Fglobal-diary-template.md\",\"isDirectory\":false,\"size\":1239},{\"path\":\"templates\u002Flocal-diary-template.md\",\"isDirectory\":false,\"size\":749}]",{"code":44,"message":45,"data":46},200,"success",{"items":47,"stats":48,"page":51},[],{"averageRating":49,"totalRatings":49,"ratingCounts":50},0,[49,49,49,49,49],{"limit":52,"offset":49,"hasMore":53,"nextOffset":52,"ratedOnly":16},15,false]