Auto-sync: 2026-04-21 16:03

This commit is contained in:
2026-04-21 16:03:27 +08:00
parent b3b6be6114
commit 914c8f6925
42 changed files with 3923 additions and 1592 deletions

View File

@@ -16,7 +16,7 @@ date: 2026-04-19
## Key Claims
- gog CLI 是管理 Google Workspace 的命令行工具,支持 Gmail、Calendar、Drive、Contacts、Docs、Sheets 六大服务
- OAuth 授权需要两层配置用户身份认证OAuth+ API 服务启用
- OAuth 授权需要两层配置用户身份认证OAuth+ API 服务启用API Enablement
- Google 未验证应用需要添加测试用户才能授权
## Key Quotes
@@ -36,12 +36,14 @@ date: 2026-04-19
## Key Entities
- [[Homebrew]]macOS 包管理器,用于安装 gog CLI
- [[Google]]Google 公司,开发 gog CLI 工具
- [[steipete-tap-gogcli]]gog CLI 的 Homebrew 官方仓库
- [[gog CLI]]Google Workspace 命令行管理工具(本次创建)
- [[steipete-tap-gogcli]]gog CLI 的 Homebrew 官方仓库(本次创建)
## Connections
- [[Homebrew]] ← 安装于 ← [[GOG-CLI-安装配置指南]]
- [[Google-Cloud-Console]] ← 创建凭证于 ← [[GOG-CLI-安装配置指南]]
- [[OAuth]] ← 授权机制于 ← [[GOG-CLI-安装配置指南]]
- [[gog CLI]] ← 工具实现于 ← [[GOG-CLI-安装配置指南]]
## Contradictions
- (暂无)
- (暂无)

View File

@@ -1,46 +1,205 @@
---
title: "Last30Days 使用指南"
type: source
tags: [hackernews, instagram, last30days, polymarket, scrapecreator, tiktok, x, youtube]
date: 2026-04-19
title: Last30Days 使用指南
---
## Source File
- [[raw/Skills/Last30Days-使用指南.md]]
## Summary
- 核心主题:多平台热门内容研究工具的使用指南
- 问题域:市场调研、竞品分析、趋势发现
- 方法/机制:通过 Python 脚本聚合 Reddit、X、YouTube、TikTok、Instagram、Hacker News、Polymarket、Web 共 8 个数据源的热门内容,生成结构化研究报告
- 结论/价值:帮助用户快速获取过去 30 天内的用户痛点、市场趋势和竞品动态,是 AI 辅助创业自动化的核心工具
---
## Key Claims
- Last30Days 支持 8 个数据源,权重排序为 Reddit/X > YouTube > TikTok > Polymarket > Web
- 深度研究需要 2-8 分钟,可通过 --quick8-12 条/来源)或 --deep50-70 条 Reddit40-60 条 X调整
- 对比模式("cursor vs windsurf")可生成并排对比研究
- Polymarket 赔率数据是最高置信度的信息来源,因其基于真实货币投注
## 概述
## Key Quotes
> "深度研究需要 2-8 分钟,耐心等待" — 使用指南
> "Polymarket 赔率是最高置信度的数据" — 使用指南
`/last30days` 研究过去 30 天内在 Reddit、X、YouTube、TikTok、Instagram、Hacker News、Polymarket 和网页上的热门内容,生成研究报告。
## Key Concepts
- [[Comparative Mode]]:对比模式,通过 "X vs Y" 格式生成并排对比研究
- [[Last-30-Days-Skill]]Matt Van Horn 开发的 Reddit/X 研究技能,获取过去 30 天用户痛点
- [[Market-Research]]:通过用户反馈和数据分析识别产品机会的过程
- [[MVP]]:最小可行产品,用最少的资源验证核心产品假设
- [[Comparative Mode]]:对比模式,通过 "X vs Y" 格式生成并排对比研究
**特点**: 深度研究需要 2-8 分钟,支持 8 个数据来源,结果自动保存到 `~/Documents/Last30Days/`
## Key Entities
- [Matt Van Horn](entities/Matt-Van-Horn.md)Last30Days skill 的作者
- [ScrapeCreators](entities/ScrapeCreators.md):提供 Reddit、TikTok、Instagram 数据采集的 API 服务(前 100 次免费)
- [Polymarket](entities/Polymarket.md):预测市场平台,基于真实货币投注提供高置信度趋势数据
- [OpenClaw](entities/OpenClaw.md):运行 Last30Days skill 的 AI Agent 框架
---
## Connections
- [[Market Research & Product Factory]] ← uses ← [[Last-30-Days-Skill]]
- [[Last-30-Days-Skill]] ← requires ← [[ScrapeCreators]]
- [[Last-30-Days-Skill]] ← supports ← [[Polymarket]]
## 调用方式
## Contradictions
- (暂无)
```bash
python3 ~/.openclaw/skills/last30days-official/scripts/last30days.py "<话题>" --emit=compact --no-native-web --save-dir=~/Documents/Last30Days
```
### 示例
```bash
# 基本搜索
python3 ~/.openclaw/skills/last30days-official/scripts/last30days.py "AI一人公司"
# 指定 X 账号搜索
python3 ~/.openclaw/skills/last30days-official/scripts/last30days.py "OpenClaw" --x-handle=openclawai
# 对比模式
python3 ~/.openclaw/skills/last30days-official/scripts/last30days.py "cursor vs windsurf"
```
---
## 参数说明
| 参数 | 说明 | 示例 |
| `--days=N` | 回溯 N 天默认30天 | `--days=7` |
| `--quick` | 快速模式8-12条/来源) | |
| `--deep` | 深度模式50-70条Reddit40-60条X | |
| `--x-handle=HANDLE` | 指定 X 账号搜索(不含@ | `--x-handle=elonmusk` |
| `--emit=compact` | 紧凑输出 | |
| `--no-native-web` | 不使用内置 web 搜索 | |
| `--save-dir=PATH` | 保存目录 | `--save-dir=~/Documents/Last30Days` |
---
## 数据来源
| 来源 | 权重 | 说明 |
|------|------|------|
| Reddit | 高 | 有 upvotes、comments 互动数据 |
| X (Twitter) | 高 | 有 likes、retweets 互动数据 |
| YouTube | 高 | 有观看数、likes 和字幕 |
| TikTok | 中 | 有观看数、likes 和标题 |
| Instagram | 中 | 有观看数、likes 和标题 |
| Hacker News | 中 | 有 points、comments |
| Polymarket | 高 | 真实钱币投注,数据真实可信 |
| Web | 低 | 无互动数据,补充博客/新闻 |
**权重说明**: Reddit/X > YouTube > TikTok > Polymarket > Web
---
## 输出格式
### 1. What I Learned研究发现
- 基于 QUERY_TYPE 类型的摘要
- 引用真实来源(@handle、r/subreddit
- 3-5 个关键模式
### 2. Key Patterns关键模式
- 按权重排序的模式列表
- 每个模式注明来源
### 3. Stats统计数据
```
├─ 🟠 Reddit: N threads │ N upvotes │ N comments
├─ 🔵 X: N posts │ N likes │ N reposts
├─ 🔴 YouTube: N videos │ N views │ N with transcripts
├─ 🎵 TikTok: N videos │ N views │ N likes
├─ 📸 Instagram: N reels │ N views │ N likes
├─ 🟡 HN: N stories │ N points │ N comments
├─ 📊 Polymarket: N markets │ 相关赔率
├─ 🌐 Web: N pages — Source Name, Source Name
└─ 🗣️ Top voices: @handle1, @handle2
```
### 4. Invitation推荐下一步
根据 QUERY_TYPE 类型推荐后续操作
---
## API Keys 配置
`~/.openclaw/.env` 中配置:
```bash
# 必填
SCRAPECREATORS_API_KEY=*** # Reddit + TikTok + Instagram一个 key 覆盖三个)
# X/Twitter 搜索2选1
AUTH_TOKEN=*** # 方案1: 从浏览器 cookie 复制
CT0=... # 方案1: 从浏览器 cookie 复制
XAI_API_KEY=*** # 方案2: XAI API Key
# Web 搜索(可选)
OPENROUTER_API_KEY=*** # OpenRouter/Perplexity
TAVILY_API_KEY=*** # Brave Search
PARALLEL_API_KEY=*** # Parallel AI
# Bluesky可选
BSKY_HANDLE=you.bsky.social
BSKY_APP_PASSWORD=***
```
### 当前已配置
- ✅ SCRAPECREATORS_API_KEY
- ✅ XAI_API_KEY
- ✅ OPENROUTER_API_KEY
- ✅ TAVILY_API_KEY
---
## 新功能 (v2.9.5)
### Bluesky 支持
- 需要 BSKY_HANDLE + BSKY_APP_PASSWORD
- 创建 app password: bsky.app/settings/app-passwords
### Comparative Mode对比模式
```bash
"cursor vs windsurf" # 得到并排对比
```
### Per-project .env
在项目根目录创建 `.claude/last30days.env` 覆盖全局配置
### SessionStart config check
Claude Code 启动时自动验证配置
---
## 最佳实践
### 1. 选择合适的深度
| 场景 | 推荐 |
|------|------|
| 测试话题 | `--quick` |
| 每周追踪 | `--days=7 --quick` |
| 深度研究 | `--deep` |
| 全面研究 | 默认 30 天 |
### 2. X 账号精确搜索
如果搜索人物/品牌,加上 `--x-handle`
```bash
--x-handle=openclawai # 搜索 OpenClaw 官方帖子
```
### 3. 对比模式
问 "X vs Y" 得到并排对比研究
### 4. Web 搜索补充
根据类型自动补充:
- RECOMMENDATIONS: `best {topic} recommendations`
- NEWS: `{topic} news 2026`
- PROMPTING: `{topic} prompts examples`
- GENERAL: `{topic} 2026 discussion`
---
## 典型使用场景
| 场景 | 推荐用法 |
|------|---------|
| 每周行业动态 | `/last30days AI工具 --days=7 --quick` |
| 竞品深度分析 | `/last30days competitor --deep --x-handle=竞品账号` |
| 工具对比选型 | `/last30days toolA vs toolB` |
| 人物热点追踪 | `/last30days person --x-handle=personHandle` |
| 热点趋势发现 | `/last30days trending_topic` |
---
## 注意事项
1. 深度研究需要 2-8 分钟,耐心等待
2. TikTok/Instagram 需要 ScrapeCreators API key前 100 次免费)
3. 建议先用 `--quick` 测试话题方向
4. Reddit 评论往往比帖子更有价值,关注 top comments
5. Polymarket 赔率是最高置信度的数据
---
## 相关资源
- GitHub: https://github.com/mvanhorn/last30days-skill
- 技能目录: `~/.openclaw/skills/last30days-official/`
- 研究保存: `~/Documents/Last30Days/`
---
*此笔记由星辉根据 README.md 总结生成*

View File

@@ -1,41 +1,98 @@
---
title: "codecrafters-io/build-your-own-x: Master programming by recreating your favorite technologies from scratch"
type: source
title: codecrafters-io/build-your-own-x:Master programming by recreating your favorite technologies from scratch.
source: https://github.com/codecrafters-io/build-your-own-x?tab=readme-ov-file#build-your-own-insert-technology-here
author: shenwei
published:
created: 2026-01-01
description: Master programming by recreating our favorite technologies from scratch.
tags: [build-your-own-x, byox, codecrafters, github]
date: 2026-04-18
---
# codecrafters-io/build-your-own-x
## Source File
- [[raw/AI/codecrafters-iobuild-your-own-x Master programming by recreating your favorite technologies from scratch.md]]
## Summary
- 核心主题:通过从零重建技术来掌握编程技能
- 问题域:学习路径、技能提升方法论
- 方法/机制收录大量手把手教程覆盖22个技术领域从3D渲染器到神经网络
- 结论/价值:"What I cannot create, I do not understand"——通过重建掌握底层原理
## Overview
## Key Claims
- 通过重建技术栈是理解其工作原理的最佳方式
- 收录22个技术领域的手把手教程
- 支持多语言实现C++、Python、JavaScript、Go、Rust等
**[build-your-own-x](https://github.com/codecrafters-io/build-your-own-x)** is a compilation of well-written, step-by-step guides for recreating our favorite technologies from scratch.
## Key Quotes
> "What I cannot create, I do not understand — Richard Feynman."
> *What I cannot create, I do not understand — Richard Feynman.*
## Key Concepts
- [[Byox]]Build Your Own X从零重建技术以深入理解
- [[手把手教程]]step-by-step 形式的学习资源
## Core Philosophy
## Key Entities
- [[Codecrafters]]:维护该教程库的公司
- [[Daniel Stefanovic]]:项目创始人
The fundamental principle behind this project is that **learning by creating is the most effective way to truly understand a technology**. Instead of just consuming knowledge passively, practitioners rebuild complex systems from scratch, gaining deep insight into how they work internally.
## Connections
- [[Ollama]] ← related_to ← [[Byox]](本地运行教程需要 Ollama
- [[Vibe Coding]] ← contrasts_with ← [[Byox]]Vibe Coding 是 AI 代写Byox 是自己手写)
## Technology Categories
## Contradictions
- 与 [[Vibe Coding]] 冲突:
- 冲突点:学习编程的方式
- 当前观点Byox 强调自己动手重建以深入理解
- 对方观点Vibe Coding 主张用 AI 替代手工编码
This repository covers **26 major technology domains**:
- [[3D Renderer]]
- [[Augmented Reality]]
- [[BitTorrent Client]]
- [[Blockchain / Cryptocurrency]]
- [[Bot]] Development
- [[Command-Line Tool]]s
- [[Database]]
- [[Docker]]
- [[Emulator / Virtual Machine]]
- [[Front-end Framework / Library]]
- [[Game]] Development
- [[Git]]
- [[Network Stack]]
- [[Neural Network]]
- [[Operating System]]
- [[Physics Engine]]
- [[Programming Language]]
- [[Regex Engine]]
- [[Search Engine]]
- [[Shell]]
- [[Template Engine]]
- [[Text Editor]]
- [[Visual Recognition System]]
- [[Voxel Engine]]
- [[Web Browser]]
- [[Web Server]]
## Related Concepts
- [[Byox]] - The methodology of learning programming by rebuilding technologies from scratch
- [[Learn In Public]] - Sharing learning progress publicly
- [[CodeCrafters]] - The platform that maintains this repository and provides interactive challenges
## Notable Tutorials
### Programming Languages
- [Crafting Interpreters](http://www.craftinginterpreters.com/) - Java implementation
- [Write Yourself a Scheme in 48 Hours](https://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours) - Haskell
- [Build Your Own Lisp](http://www.buildyourownlisp.com/) - C in 1000 lines
- [Make a Lisp (mal)](https://github.com/kanaka/mal) - Implementations in any language
### Operating Systems
- [Linux from Scratch](https://linuxfromscratch.org/lfs)
- [Writing an OS in Rust](https://os.phil-opp.com/)
- [Operating Systems: From 0 to 1](https://tuhdo.github.io/os01/)
- [The little book about OS development](https://littleosbook.github.io/)
### Databases
- [Let's Build a Simple Database](https://cstack.github.io/db_tutorial/) - C
- [Build Your Own Redis from Scratch](https://build-your-own.org/redis) - C++
- [Build Your Own Database from Scratch](https://build-your-own.org/database/) - Go
### Web Technologies
- [Let's Build a Web Server](https://ruslanspivak.com/lsbaws-part1/) - Python
- [Browser Engineering](https://browser.engineering/) - Python
- [Let's build a browser engine](https://limpet.net/mbrubeck/2014/08/08/toy-layout-engine-1.html) - Rust
### Git
- [Gitlet](http://gitlet.maryrosecook.com/docs/gitlet.html) - JavaScript
- [Write yourself a Git!](https://wyag.thb.lt/) - Python
- [ugit: Learn Git Internals](https://www.leshenko.net/p/ugit/) - Python
## Contributing
Contributions are welcome! Submit a PR or [create an issue](https://github.com/codecrafters-io/build-your-own-x/issues/new) to add new tutorials.
## Resources
- [CodeCrafters](https://codecrafters.io/) - Interactive challenges based on this repository

View File

@@ -1,49 +1,70 @@
---
title: "教學 ChatGPT 先做知識整理,再讓 Canva、 Gamma AI 輸出簡報"
type: source
tags: [AI简报, 工作流]
date: 2025-10-26
sources:
- https://www.playpcesor.com/2025/10/chatgpt-canva-gamma-ai.html
title: 教學 ChatGPT 先做知識整理,再讓 Canva、 Gamma AI 輸出簡報
source: https://www.playpcesor.com/2025/10/chatgpt-canva-ggamma-ai.html
author: shenwei
published: 2025-10-26
created: 2025-12-18
description: 分享各種行動工作技巧、雲端生活應用,善用數位工具改變你我的工作效率與生活品質。
tags: [AI簡報, 知識管理, ChatGPT, Canva, Gamma]
---
## Source File
- [[raw/AI/教學 ChatGPT 先做知識整理,再讓 Canva、 Gamma AI 輸出簡報.md]]
## Summary
- 核心主题AI 简报制作的工作流程,先用 ChatGPT 做知识研究整理,再用 Canva/Gamma AI 输出设计
- 问题域:如何高效制作专业简报,避免 AI 生成的幻觉和浅薄内容
- 方法/机制:四阶段工作流程(资料搜索→知识架构→大纲生成→设计输出)
- 结论/价值:简报不是从版面设计开始,而是从资料研究开始
## Key Claims
- 不会直接在 Canva、 Gamma 上凭空制作简报,而是先在 ChatGPT 上做资料收集、整理、分析,再让 AI 工具做版面设计
- 如果没有经过资料研究、知识整理的过程,直接给一个题目要让论据、内容、案例、版面一次做好,很难做出正确、有效、深入的简报成果
- 在文字资料的处理和推理思考上ChatGPT 这类工具比 Canva、 Gamma 做得更好
这篇教程分享了一套 **AI 简报两阶段工作流**:先在 ChatGPT 做资料研究、知识整理与大纲设计,再交给 Canva AI 或 Gamma AI 完成视觉设计。
## Key Quotes
> "简报不是从版面设计开始,而是从资料研究开始。" — 作者核心观点
> "我不会直接在 Canva、Gamma 这样的工具上凭空制作一份简报。而是先在 ChatGPT 上做资料收集、整理、分析后,再让 Canva、 Gamma AI 做出美美的简报版面。" — 作者工作流
作者esor电脑玩物的核心观点是**简报不是从版面设计开始,而是从资料研究开始**。直接在 Canva/Gamma 上让 AI 生成简报,容易出现内容不深入、有幻觉的问题。
## Key Concepts
- [[AI-简报工作流]]:先研究后设计的四阶段简报制作流程
- [[防彈筆記法]]:任务导向的知识管理系统,本文举例的主题
- [[SSOT]]:单一真相来源,每个任务一张笔记
- [[知识架构]]:让 AI 对主题有和用户一致的客观资料认识和主观诠释角度
## Key Entities
- [[ChatGPT]]:用于资料搜索、知识整理、大纲生成
- [[Canva]]AI 简报设计工具2025年9月加入中文支持
- [[Gamma]]AI 简报工具,专注于图文并茂的专业效果
- [[shenwei]]:作者,专注于数字工具效率的博主
### 四阶段工作流
## Connections
- [[ChatGPT]] ← 研究驱动 ← [[AI-简报工作流]]
- [[Canva]] ← 设计执行 ← [[AI-简报工作流]]
- [[Gamma]] ← 设计执行 ← [[AI-简报工作流]]
- [[防彈筆記法]] ← 知识主题 ← [[shenwei]]
1. **阶段一5分钟**:用 ChatGPT 上网搜索、收集资料
2. **阶段二1分钟**:建立知识架构,做对比表格整理
3. **阶段三1分钟**:输出文字版简报大纲
4. **阶段四**:复制大纲到 Canva/Gamma 生成精美版面
## Contradictions
- (无显著冲突)
### 核心理念
- 简报内容需要前期研究、整理、分析
- ChatGPT 在文字推理思考上优于 Canva/Gamma
- AI 简报工具擅长视觉设计,不擅长前期资料研究
- "防弹笔记法"作为案例贯穿全文
## Tools Mentioned
- [[ChatGPT]] — 知识研究与整理
- [[Canva]] — AI 简报设计2025年9月支持中文
- [[Gamma]] — AI 简报生成工具
- 防弹笔记法 — 任务导向的笔记系统
## Practical Prompts
### 资料收集 Prompt
> 你是个人知识管理专家,請跟我解釋「電腦玩物 esor 的防彈筆記法」。請一步一步分析:先「上網搜尋相關資料」,以「條列清單的格式」,用一般人也能懂的用語,兼顧廣度與深度細節,說明這個主題。
### 建立架构 Prompt
> 整合上面所有討論資料,建立一個「防彈筆記法方法、應用」的對比表格,呈現出「打破知識管理、資料整理迷思」的特色。
### 简报大纲 Prompt
> 統整上方的討論,根據「防彈筆記法是幫你更快輸出的知識管理系統」主題,簡報對象是「一般職場工作者」,設計出 10 頁簡報大綱。請一步一步分析,先梳理上方討論的重點,根據背景、解決的問題、方法與應用,拆解出最容易讓人理解的順序。
### Canva 设计 Prompt
> 根據下面簡報大綱,保留完整內容、架構、分頁,利用 canva 製作出精美簡報:
## Related Concepts
- [[AI-簡報流程]] — AI 辅助简报设计的完整流程
- [[防彈筆記法]] — 任务导向的笔记管理方法
- [[知識管理]] — 资料收集、整理、分析的系统方法
- [[ChatGPT-應用]] — ChatGPT 在知识工作中的应用
## Metadata
- **Author**: shenwei (电脑玩物)
- **Source**: https://www.playpcesor.com/2025/10/chatgpt-canva-gamma-ai.html
- **Published**: 2025-10-26
- **Language**: Traditional Chinese
- **Topics**: AI Tools, Presentation Design, Knowledge Management

View File

@@ -0,0 +1,98 @@
# Polymarket Autopilot: Automated Paper Trading
## Source File
- [[raw/Agent/usecases/polymarket-autopilot.md]]
## Metadata
- **Title**: Polymarket Autopilot: Automated Paper Trading
- **Author**: shenwei
- **Tags**: [polymarket-autopilot]
## Summary
This workflow automates paper trading on Polymarket with custom strategies:
- Monitors market data via API (prices, volume, spreads)
- Executes paper trades using TAIL (trend-following) and BONDING (contrarian) strategies
- Tracks portfolio performance, P&L, and win rate
- Delivers daily summaries to Discord with trade logs and insights
- Learns from patterns: adjusts strategy parameters based on backtesting results
## Pain Point
Prediction markets move fast. Manual trading means missing opportunities, emotional decisions, and difficulty tracking what works. Testing strategies with real money risks losses before you understand market behavior.
## What It Does
The autopilot continuously scans Polymarket for opportunities, simulates trades using configurable strategies, and logs everything for analysis. You wake up to a summary of what it "traded" overnight, what worked, and what didn't.
Example strategies:
- **TAIL**: Follow trends when volume spikes and momentum is clear
- **BONDING**: Buy contrarian positions when markets overreact to news
- **SPREAD**: Identify mispriced markets with arbitrage potential
## Skills Needed
- `web_search` or `web_fetch` (for Polymarket API data)
- `postgres` or SQLite for trade logs and portfolio tracking
- Discord integration for daily reports
- Cron jobs for continuous monitoring
- Sub-agent spawning for parallel market analysis
## How to Set it Up
1. Set up a database for paper trading:
```sql
CREATE TABLE paper_trades (
id SERIAL PRIMARY KEY,
market_id TEXT,
market_name TEXT,
strategy TEXT,
direction TEXT,
entry_price DECIMAL,
exit_price DECIMAL,
quantity DECIMAL,
pnl DECIMAL,
timestamp TIMESTAMPTZ DEFAULT NOW()
);
CREATE TABLE portfolio (
id SERIAL PRIMARY KEY,
total_value DECIMAL,
cash DECIMAL,
positions JSONB,
updated_at TIMESTAMPTZ DEFAULT NOW()
);
```
2. Create a Discord channel for updates (e.g., #polymarket-autopilot).
3. Prompt OpenClaw:
```
You are a Polymarket paper trading autopilot. Run continuously (via cron every 15 minutes):
1. Fetch current market data from Polymarket API
2. Analyze opportunities using these strategies:
- TAIL: Follow strong trends (>60% probability + volume spike)
- BONDING: Contrarian plays on overreactions (sudden drops >10% on news)
- SPREAD: Arbitrage when YES+NO > 1.05
3. Execute paper trades in the database (starting capital: $10,000)
4. Track portfolio state and update positions
Every morning at 8 AM, post a summary to Discord #polymarket-autopilot:
- Yesterday's trades (entry/exit prices, P&L)
- Current portfolio value and open positions
- Win rate and strategy performance
- Market insights and recommendations
Use sub-agents to analyze multiple markets in parallel during high-volume periods.
Never use real money. This is paper trading only.
```
4. Iterate on strategies based on performance. Adjust thresholds, add new strategies, backtest historical data.
## Related Links
- [Polymarket API](https://docs.polymarket.com/)
- [Paper Trading Best Practices](https://www.investopedia.com/articles/trading/11/paper-trading.asp)

View File

@@ -1,8 +1,8 @@
---
title: "Project State Management System: Event-Driven Alternative to Kanban"
type: source
tags: [project-state, AI-Agent]
date: 2026-04-17
tags: [project-state, AI-Agent, project-management]
date: 2026-04-21
---
## Source File
@@ -25,11 +25,50 @@ date: 2026-04-17
> "Instead of dragging cards, you chat with your assistant: 'Finished the auth flow, starting on the dashboard.' The system logs the event, updates project state, and preserves context." — 事件驱动系统的工作方式
## Architecture
### Database Schema
```sql
CREATE TABLE projects (
id SERIAL PRIMARY KEY,
name TEXT UNIQUE,
status TEXT, -- e.g., "active", "blocked", "completed"
current_phase TEXT,
last_update TIMESTAMPTZ DEFAULT NOW()
);
CREATE TABLE events (
id SERIAL PRIMARY KEY,
project_id INTEGER REFERENCES projects(id),
event_type TEXT, -- e.g., "progress", "blocker", "decision", "pivot"
description TEXT,
context TEXT,
timestamp TIMESTAMPTZ DEFAULT NOW()
);
CREATE TABLE blockers (
id SERIAL PRIMARY KEY,
project_id INTEGER REFERENCES projects(id),
blocker_text TEXT,
status TEXT DEFAULT 'open', -- "open", "resolved"
created_at TIMESTAMPTZ DEFAULT NOW(),
resolved_at TIMESTAMPTZ
);
```
### Skills Needed
- PostgreSQL 或 SQLite 用于项目状态数据库
- GitHub CLI (gh) 用于提交追踪
- Discord 或 Telegram 用于更新和查询
- Cron Jobs 用于每日摘要
- Sub-agents 用于并行项目分析
## Key Concepts
- [[事件驱动]]:通过自然语言事件更新自动触发状态转换的机制
- [[项目状态数据库]]:存储项目信息、历史事件和阻碍项的关系型数据库
- [[每日站会摘要]]:基于事件和 Git 提交自动生成的每日进度报告
- [[Event Sourcing]]:事件溯源模式,存储所有状态变更事件而非最终状态
- [[AI ChatOps]]:通过对话界面与 AI 交互进行项目管理
- [[Git 集成]]:自动扫描 Git 提交并关联到对应项目的机制
- [[每日站会摘要]]:基于事件和 Git 提交自动生成的每日进度报告
- [[项目状态数据库]]:存储项目信息、历史事件和阻碍项的关系型数据库
## Key Entities
- [[PostgreSQL]]:项目状态数据库的推荐技术栈(也支持 SQLite
@@ -42,8 +81,6 @@ date: 2026-04-17
- [[Kanban]] ← 被替代 ← [[Project State Management]]
- [[AI ChatOps]] ← 实现方式 ← [[Project State Management]]
## Contradictions
- 与 [[Kanban]] 看板方法冲突:
- 冲突点:静态看板需要手动更新,事件驱动系统自动追踪
- 当前观点:事件驱动系统通过自然语言自动记录,避免手动操作和信息丢失
- 对方观点Kanban 看板可视化程度高,适合团队协作和任务分配
## Related Links
- [Event Sourcing Pattern - Martin Fowler](https://martinfowler.com/eaaDev/EventSourcing.html)
- [Why Kanban Fails for Solo Developers](https://blog.nuclino.com/why-kanban-doesnt-work-for-me)

View File

@@ -1,40 +1,130 @@
---
title: "Todoist Task Manager: Agent Task Visibility"
type: source
tags: []
date: 2026-04-19
---
# Todoist Task Manager: Agent Task Visibility
## Source File
- [[raw/Agent/usecases/todoist-task-manager.md]]
## Summary
- 核心主题AI Agent 任务可视化与进度追踪
- 问题域:长时间运行的 Agent 工作流缺乏透明度,用户无法追踪任务进度
- 方法/机制:通过 Todoist API 将 Agent 内部推理和进度日志同步到任务管理工具
- 结论/价值:最大化复杂 Agent 工作流的透明度,实时展示任务状态、子步骤完成情况和阻塞点
---
## Key Claims
- Agent 工作流复杂度与用户信息需求呈正相关,多步骤任务需要外部化进度追踪
- 通过 Todoist Section 区分任务状态In Progress/Waiting/Done实现任务阶段可视化
- 任务描述中记录 Agent 内部 Plan 实现推理外部化
- 子步骤完成通过任务评论实时追加,实现进度流式更新
Maximize transparency for long-running agentic workflows by syncing internal reasoning and progress logs directly to Todoist.
## Key Quotes
> "When agents run complex, multi-step tasks (like building a full-stack app or performing deep research), the user often loses track of what the agent is currently doing, what steps have been completed, and where the agent might be stuck." — 痛点描述
## Pain Point
## Key Concepts
- [[Agent-Task-Visibility]]AI Agent 任务对用户的透明化展示机制
- [[Task-Automation]]:将手动任务创建过程转化为系统自动执行的机制
When agents run complex, multi-step tasks (like building a full-stack app or performing deep research), the user often loses track of what the agent is currently doing, what steps have been completed, and where the agent might be stuck. Checking chat logs manually is tedious for background tasks.
## Key Entities
- [[Todoist]]:流行任务管理应用,提供 REST API 用于任务和评论操作
- [[OpenClaw]]AI Agent 管理工具,可执行 shell 命令和文件系统操作
## What It Does
## Connections
- [[OpenClaw]] ← uses → [[Todoist]]
- [[Agent-Task-Visibility]] ← implements → [[Task-Automation]]
- [[Todoist]] ← provides → [[Agent-Task-Visibility]]
This use case uses the `todoist-task-manager` skill to:
1. **Visualize State**: Create tasks in specific sections like `🟡 In Progress` or `🟠 Waiting`.
2. **Externalize Reasoning**: Post the agent's internal "Plan" into the task description.
3. **Stream Logs**: Add sub-step completions as comments to the task in real-time.
4. **Auto-Reconcile**: A heartbeat script checks for stalled tasks and notifies the user.
## Contradictions
- (暂无)
## Skills you Need
You don't need a pre-built skill. Simply prompt your OpenClaw agent to create the bash scripts described in the **Setup Guide** below. Since OpenClaw can manage its own filesystem and execute shell commands, it will effectively "build" the skill for you upon request.
## Detailed Setup Guide
### 1. Configure Todoist
Create a project (e.g., "OpenClaw Workspace") and get its ID. Create sections for different states:
- `🟡 In Progress`
- `🟠 Waiting`
- `🟢 Done`
### 2. Implementation: The "Agent-Built" Skill
Instead of installing a skill, you can ask OpenClaw to create these scripts for you. Each script handles a different part of the communication with the Todoist API.
**`scripts/todoist_api.sh`** (The Core Wrapper):
```bash
#!/bin/bash
# Usage: ./todoist_api.sh <endpoint> <method> [data_json]
ENDPOINT=$1
METHOD=$2
DATA=$3
TOKEN="YOUR_T...OKEN"
if [ -z "$DATA" ]; then
curl -s -X "$METHOD" "https://api.todoist.com/rest/v2/$ENDPOINT" \
-H "Authorization: Bearer ***
else
curl -s -X "$METHOD" "https://api.todoist.com/rest/v2/$ENDPOINT" \
-H "Authorization: Bearer *** \
-H "Content-Type: application/json" \
-d "$DATA"
fi
```
**`scripts/sync_task.sh`** (Task & Status Management):
```bash
#!/bin/bash
# Usage: ./sync_task.sh <task_content> <status> [task_id] [description] [labels_json_array]
CONTENT=$1
STATUS=$2
TASK_ID=$3
DESCRIPTION=$4
LABELS=$5
PROJECT_ID="YOUR_PROJECT_ID"
case $STATUS in
"In Progress") SECTION_ID="SECTION_ID_PROGRESS" ;;
"Waiting") SECTION_ID="SECTION_ID_WAITING" ;;
"Done") SECTION_ID="SECTION_ID_DONE" ;;
*) SECTION_ID="" ;;
esac
PAYLOAD="{\"content\": \"$CONTENT\""
[ -n "$SECTION_ID" ] && PAYLOAD="$PAYLOAD, \"section_id\": \"$SECTION_ID\""
[ -n "$PROJECT_ID" ] && [ -z "$TASK_ID" ] && PAYLOAD="$PAYLOAD, \"project_id\": \"$PROJECT_ID\""
if [ -n "$DESCRIPTION" ]; then
ESC_DESC=$(echo "$DESCRIPTION" | sed ':a;N;$!ba;s/\n/\\n/g' | sed 's/"/\\"/g')
PAYLOAD="$PAYLOAD, \"description\": \"$ESC_DESC\""
fi
[ -n "$LABELS" ] && PAYLOAD="$PAYLOAD, \"labels\": $LABELS"
PAYLOAD="$PAYLOAD}"
if [ -n "$TASK_ID" ]; then
./scripts/todoist_api.sh "tasks/$TASK_ID" POST "$PAYLOAD"
else
./scripts/todoist_api.sh "tasks" POST "$PAYLOAD"
fi
```
**`scripts/add_comment.sh`** (Progress Logging):
```bash
#!/bin/bash
# Usage: ./add_comment.sh <task_id> <comment_text>
TASK_ID=$1
TEXT=$2
ESC_TEXT=$(echo "$TEXT" | sed ':a;N;$!ba;s/\n/\\n/g' | sed 's/"/\\"/g')
PAYLOAD="{\"task_id\": \"$TASK_ID\", \"content\": \"$ESC_TEXT\"}"
./scripts/todoist_api.sh "comments" POST "$PAYLOAD"
```
### 3. Usage Prompt
You can give this prompt to your agent to both **setup** and **use** the visibility system:
```text
I want you to build a Todoist-based task visibility system for your own runs.
First, create three bash scripts in a 'scripts/' folder:
1. todoist_api.sh (a curl wrapper for Todoist REST API)
2. sync_task.sh (to create or update tasks with specific section_ids for In Progress, Waiting, and Done)
3. add_comment.sh (to post progress logs as comments)
Use these variables for the setup:
- Token: [Your Todoist API Token]
- Project ID: [Your Project ID]
- Section IDs: [In Progress ID, Waiting ID, Done ID]
Once created, for every complex task I give you:
1. Create a task in 'In Progress' with your full PLAN in the description.
2. For every sub-step completion, call add_comment.sh with a log of what you did.
3. Move the task to 'Done' when finished.
```
## Related Links
- [Todoist REST API Documentation](https://developer.todoist.com/rest/v2/)

View File

@@ -1,53 +1,129 @@
---
title: 如何传输 Docker images 并且在另一个 Docker 安装
source:
author: shenwei
published:
created: 2025-03-06
description: 从工作笔记本将 Docker 镜像传输到 Synology NAS Docker 的完整操作流程
tags: [docker, nas, synology, home-office]
---
# 如何传输 Docker images 并且在另一个 Docker 安装
## Source File
- [[raw/Home Office/如何传输Docker images 并且在另一个Docker安装.md]]
## Metadata
- **Author**: shenwei
- **Created**: 2025-03-06
- **Tags**: docker, nas, synology
## Summary
本文介绍了如何将 Docker 镜像从一台设备传输到另一台设备并导入 Docker 的完整操作流程,适用于在没有网络连接或网络受限的环境下迁移 Docker 镜像
Docker 镜像在不同主机之间的离线传输方法,使用 `docker save``docker load` 命令实现无需 registry 的镜像迁移。典型场景:将工作笔记本上的 Docker 镜像传输到 Synology NAS 的 Docker 环境
## Key Points
## Core Commands
### 导出 Docker 镜像
在源设备上,通过 `docker save` 命令将镜像打包成 tar 文件:
```docker
### 导出镜像(源设备)
```bash
# 拉取镜像(如需要)
docker pull image_name:tag
# 打包镜像为 tar 文件
docker save -o images.tar image_name:tag
# 或打包多个镜像
docker save -o images.tar image1:tag image2:tag
```
### 导入镜像(目标设备)
```bash
docker load < images.tar
```
## Step-by-Step Guide
### 步骤 1在源设备打包镜像
在工作笔记本(已安装 Docker Desktop使用 `docker save` 命令将镜像打包成 TAR 文件:
```bash
# 拉取镜像(如需要)
docker pull xiaoyaliu/alist
# 打包镜像为 tar 文件
docker save -o xiaoya.tar xiaoyaliu/alist
```
### 导入 Docker 镜像
在目标设备上,通过 `docker load` 命令将 tar 文件导入:
```docker
### 步骤 2传输 TAR 文件
将生成的 `xiaoya.tar` 文件上传到 Synology NAS 的文件系统中(通过 SMB/NFS 等方式)。
### 步骤 3在 NAS 导入镜像
通过 SSH 连接到 NAS运行 `docker load` 命令导入镜像:
```bash
# 进入 tar 文件所在目录
cd /volume1/docker/images
# 导入镜像
docker load < xiaoya.tar
```
### 步骤 4验证
```bash
# 查看镜像列表
docker images
# 在 NAS 的 Container Manager 界面中查看镜像列表
```
## Alternative Methods
### 方法二:使用 docker commit
从容器创建新镜像后再导出:
```bash
# 从容器创建镜像
docker commit container_id new_image_name:tag
# 导出镜像
docker save -o images.tar new_image_name:tag
```
### 方法三:使用 docker export/import
> ⚠️ 注意export/import 操作的是容器文件系统,而非镜像层,不保留 CMD/ENTRYPOINT 等元数据
```bash
# 导出容器
docker export -o container.tar container_id
# 导入为镜像
docker import container.tar new_image_name:tag
```
## save/load vs export/import
| 特性 | save/load | export/import |
|------|-----------|---------------|
| 操作对象 | 镜像层 | 容器文件系统 |
| 保留历史层 | ✅ | ❌ |
| 保留元数据 | ✅ | ❌ |
| 文件大小 | 较大 | 较小 |
| 适用场景 | 镜像迁移 | 容器快照 |
## Related Concepts
- [[Docker]] — 容器化平台
- [[Synology NAS]] — 群晖网络附加存储
- [[Docker Registry]] — Docker 镜像仓库(替代方案)
- [[Container Migration]] — 容器迁移
- [[concepts/Docker-Image.md]]
- [[concepts/Docker-Save.md]]
- [[concepts/Docker-Load.md]]
## Related Entities
- [[xiaoyaliu/alist]] — 阿里云盘列表程序 Docker 镜像
- [[entities/Docker.md]]
- [[entities/Xiaoya.md]]
## Practical Application
## Tags
该方法适用于以下场景:
1. **离线环境**:目标设备无法访问互联网,无法直接 `docker pull`
2. **节省带宽**:大镜像只需下载一次,后续可多次复用
3. **NAS 存储**:将镜像 tar 文件存储在 NAS 上,便于管理
4. **批量部署**:同一镜像需要在多台设备上部署
## See Also
- [[docker-homarr-installation-guide]] — Homarr Docker 安装指南
- [[docker-jellyfin-installation]] — Jellyfin Docker 安装指南
- [[portainer-docker-installation-guide]] — Portainer Docker 安装指南
#docker #synology #nas #home-office #镜像传输