← 返回 Skills 市场
cosmofang

ddday

作者 Cosmos Fang · GitHub ↗ · v1.0.0 · MIT-0
cross-platform ⚠ suspicious
86
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install ddday
功能描述
Daily work journal + machine migration toolkit. Auto-scans all registered projects (git activity, file changes, API status), generates a daily dashboard, and...
使用说明 (SKILL.md)

What ddday Does

Record your daily work. Migrate your data. Resume instantly on a new machine.

ddday is a personal work journal and migration toolkit. It tracks all your projects, generates daily HTML dashboards and markdown logs, and when you switch machines, packs everything into a portable bundle that any AI agent can read to immediately understand your full work context.


Setup

Step 1 — Initialize ddday

Create the ddday directory and workspace config:

DDDAY_HOME="$HOME/Desktop/ddday"
mkdir -p "$DDDAY_HOME"/{logs,context}

Step 2 — Create workspace.json

Register your projects. Edit $DDDAY_HOME/workspace.json:

{
  "version": "1.0.0",
  "updated": "YYYY-MM-DD",
  "projects": [
    {
      "name": "my-project",
      "path": "/path/to/my-project",
      "type": "node",
      "emoji": "📦",
      "description": "Brief description of the project"
    }
  ]
}

Supported types: node, python, shopify, design, workspace, skill

Step 3 — Register as Claude Code skill

ln -sfn "$DDDAY_HOME" "$HOME/.claude/skills/ddday"

Step 4 — Set up daily cron (optional)

chmod +x "$DDDAY_HOME/generate_dashboard.py"
(crontab -l 2>/dev/null; echo "2 18 * * * cd $DDDAY_HOME && python3 generate_dashboard.py") | crontab -

Commands

/ddday              — Scan all projects, generate daily log + dashboard
/ddday add \x3Cpath>   — Register a new project
/ddday context      — Generate AI context pack (for new AI conversations)
/ddday snapshot     — Full work snapshot (all data + business reports + AI memory)
/ddday export       — One-command migration bundle to Desktop
/ddday doctor       — Environment health check (run after migration)
/ddday log          — View latest daily log
/ddday status       — Quick project status (no log written)

Mode Recognition

Parse user input to select mode:

  • Contains add + a path → Mode 2 (Register project)
  • Contains contextMode 3 (AI context pack)
  • Contains exportMode 4 (Migration export)
  • Contains setupMode 5 (New machine restore)
  • Contains doctorMode 6 (Health check)
  • Contains snapshotMode 7 (Work snapshot)
  • Contains log → Read latest log file
  • Contains status → Quick scan, no file output
  • Default → Mode 1 (Daily scan + record)

Mode 1 — Daily Scan + Record (Default)

Step 1 — Load workspace

import json, os

DDDAY_HOME = os.environ.get("DDDAY_HOME", os.path.expanduser("~/Desktop/ddday"))
ws_file = os.path.join(DDDAY_HOME, "workspace.json")

with open(ws_file, "r") as f:
    workspace = json.load(f)

projects = workspace.get("projects", [])
print(f"Registered {len(projects)} projects")
for p in projects:
    print(f"  - {p['name']}: {p['path']}")

Step 2 — Scan each project

For each registered project folder:

PROJECT_PATH="/path/to/project"

echo "=== Today's commits ==="
cd "$PROJECT_PATH" && git log --oneline --since="today" 2>/dev/null || echo "Not a git repo"

echo "=== Uncommitted changes ==="
cd "$PROJECT_PATH" && git diff --stat 2>/dev/null

echo "=== Untracked files ==="
cd "$PROJECT_PATH" && git status --short 2>/dev/null | head -20

echo "=== Recently modified files (24h) ==="
find "$PROJECT_PATH" -maxdepth 3 -type f -mtime -1 \
  -not -path '*/node_modules/*' \
  -not -path '*/.git/*' \
  -not -path '*/dist/*' \
  -not -name '.DS_Store' \
  2>/dev/null | head -20

Also read the project's CLAUDE.md or README.md if present.

Step 3 — Generate daily log

Save scan results to logs/YYYY-MM-DD.md:

# ddday work log · {date}

## Overview
- Today's commits: {total_commits}
- Active projects: {active}/{total}
- Pending changes: {pending}

## {emoji} {project_name} ({type})
- Status: {status_emoji} {status_text}
- Branch: {branch}
- Today's commits: {count}
  - {commit_messages}
- Uncommitted changes: {diff_stat}

## Summary
- Completed: {from git commits}
- In progress: {from diff}
- Next steps: {AI suggestions}

Step 4 — Generate HTML dashboard

Run the dashboard generator to create dashboard.html:

  • Project cards with status indicators
  • Commit history per project
  • Stats bar (total commits, active projects, pending changes)
  • Light/dark theme toggle

Step 5 — Update project overview

Save context/projects-overview.md for AI consumption.


Mode 2 — Register Project (/ddday add \x3Cpath>)

Step 1 — Validate path and detect type

import os

path = os.path.expanduser("\x3Cuser-provided-path>")
has_git = os.path.isdir(os.path.join(path, ".git"))
has_package = os.path.isfile(os.path.join(path, "package.json"))
has_shopify = os.path.isdir(os.path.join(path, ".shopify"))
has_python = os.path.isfile(os.path.join(path, "requirements.txt"))

project_type = "unknown"
if has_shopify: project_type = "shopify"
elif has_package: project_type = "node"
elif has_python: project_type = "python"

Step 2 — Add to workspace.json

Append project entry, check for duplicates first.

Step 3 — Ask for description

Use AskUserQuestion to get a brief description from the user.


Mode 3 — AI Context Pack (/ddday context)

Generates context/projects-overview.md containing:

  • All project metadata, paths, descriptions
  • Recent git log per project
  • Key file listings
  • Current status

Purpose: feed to any new AI conversation for instant project awareness.


Mode 4 — Migration Export (/ddday export)

What it does

  1. Generates a work snapshot first (Mode 7)
  2. Collects all data:
    • ddday directory (logs, context, config)
    • Report archives (e.g., ~/.shopadmin/ or custom report dirs)
    • Claude Code skills
    • Credential files (user-configured paths)
    • Claude project memory (~/.claude/projects/*/memory/)
    • Crontab backup
    • Python requirements
  3. Creates manifest.json: path mappings, credentials index, cron jobs, dependencies
  4. Packs into ~/Desktop/ddday-migration-{date}.tar.gz
  5. Includes READ-ME-FIRST.md at pack root (= the work snapshot)

Migration bundle structure

ddday-migration/
├── READ-ME-FIRST.md       # Work snapshot — new AI reads this first
├── manifest.json           # Path mappings, dependencies, cron
├── ddday/                  # Full ddday directory
├── skills/                 # Custom skill definitions
├── credentials/            # Credential files
├── claude-memory/          # Claude project memory files
├── crontab.bak             # Crontab backup
├── requirements.txt        # Python dependencies
├── setup.sh                # One-command restore script
├── doctor.py               # Health check script
└── work_snapshot.py        # Snapshot generator

Mode 5 — New Machine Restore (/ddday setup)

Run on new machine after extracting the migration bundle:

tar xzf ddday-migration-*.tar.gz
cd ddday-migration
bash setup.sh

setup.sh automatically:

  1. Detects new $HOME and username
  2. Installs missing dependencies (Homebrew, Python, Git)
  3. Installs Python packages
  4. Copies all files to correct locations
  5. Replaces all hardcoded paths (old $HOME → new $HOME)
  6. Creates skill symlinks
  7. Registers cron jobs

Mode 6 — Health Check (/ddday doctor)

Checks 8 categories:

  1. Project paths — Do all registered projects exist?
  2. Core files — SKILL.md, workspace.json, scripts present?
  3. Credentials — Required credential files in place?
  4. Python deps — Required packages installed?
  5. Skills — Symlinks correct, skill directories intact?
  6. Cron jobs — Registered and scripts exist?
  7. API connectivity — Can reach configured APIs?
  8. Path consistency — Any stale paths from old machine?

Output: traffic-light report with pass/warn/fail counts.


Mode 7 — Work Snapshot (/ddday snapshot)

Generates a self-contained Markdown file that any AI can read to immediately resume all work:

  1. User profile — Role, tech stack, work style
  2. Project panorama — Path, git status, README, .env keys, recent commits
  3. Business data — Latest reports from all configured report directories
  4. AI memory — Claude Code project memory files
  5. Recent logs — Last 7 days of ddday logs
  6. Team handbook — Available skills and their triggers
  7. Environment — Cron, credentials, symlinks, system info
  8. Quick start guide — How to immediately pick up work

Output:

  • context/work-snapshot-YYYY-MM-DD.md — dated archive
  • context/LATEST-SNAPSHOT.md — latest copy (AI reads this)

Full Migration Flow

Old machine

/ddday export       # Auto-generates snapshot + packs everything

New machine

tar xzf ddday-migration-*.tar.gz
cd ddday-migration
cat READ-ME-FIRST.md    # AI reads this → instantly knows all your work
bash setup.sh           # Auto-restore environment
python3 doctor.py       # Health check
/ddday                  # Start working

Configuration

ddday uses $DDDAY_HOME (defaults to ~/Desktop/ddday) as its root:

$DDDAY_HOME/
├── SKILL.md              # This skill definition
├── workspace.json        # Project registry
├── generate_dashboard.py # Dashboard generator
├── work_snapshot.py      # Snapshot generator
├── export.py             # Migration exporter
├── setup.sh              # New machine restore
├── doctor.py             # Health check
├── run_ddday.sh          # Cron entry point
├── dashboard.html        # Latest dashboard (auto-generated)
├── logs/                 # Daily logs (YYYY-MM-DD.md)
└── context/              # AI context files
    ├── projects-overview.md
    ├── LATEST-SNAPSHOT.md
    └── work-snapshot-*.md

Customization

Adding report directories

If you have report tools (analytics, monitoring, etc.), edit export.py to include their output directories in the migration bundle. The work snapshot (work_snapshot.py) can also be extended to read from custom report paths.

Extending project types

Add new type detection logic in Mode 2 by checking for framework-specific files (e.g., Cargo.toml for Rust, go.mod for Go).

安全使用建议
This skill appears to do what it says (scanning projects and building migration bundles) but has important privacy risks by default. Before installing or running it: 1) Only register explicit project paths — never add home (~/) or root, or entire disks. 2) Review workspace.json after adding projects to ensure paths are correct. 3) Expect the export/snapshot to include everything in each registered project directory; explicitly exclude directories or file patterns that contain secrets (e.g., .env, credentials, private keys, build artifacts). 4) Inspect any generated bundle before transferring it off-device. 5) Don't enable the optional cron until you have a reviewed generate_dashboard.py script in place and are confident about what gets collected. 6) If you need assurance the skill won't collect agent memory or other sensitive config, ask the author (or review the missing Mode 4 export details) — the truncated instructions make it unclear whether 'AI memory' or other agent files are collected. Additional information that would change this assessment: the full Mode 4 export procedure, explicit exclusion rules for secrets, and confirmation that no network upload of bundles occurs.
功能分析
Type: OpenClaw Skill Name: ddday Version: 1.0.0 The ddday skill (SKILL.md) functions as a work journal and migration toolkit that explicitly instructs the AI agent to collect sensitive information, including credential files, .env keys, and Claude project memory, into a migration bundle. While these capabilities are consistent with the stated goal of machine migration, the broad access to secrets and the automated modification of system configurations (crontab, dependency installation) represent significant security risks. No evidence of unauthorized remote exfiltration was found, but the tool's design facilitates the aggregation of highly sensitive data.
能力评估
Purpose & Capability
The skill claims to scan registered projects and produce migration bundles; the required tools and actions (reading project files, running git, find, writing logs) align with that purpose. It does not request unrelated credentials or binaries.
Instruction Scope
The runtime instructions direct the agent to read arbitrary files under each registered project, run git commands, and produce a bundled 'snapshot' that includes 'all data' and 'AI memory'. The instructions do not enumerate safe exclusions (e.g., .env, secret files) and are vague about what 'AI memory' includes. That vagueness could lead to accidental collection of sensitive files or agent memory outside the intended scope.
Install Mechanism
This is an instruction-only skill with no install spec and no code files — low install risk. It instructs the user to create a local symlink into $HOME/.claude/skills, which is a benign, local setup step for an agent skill.
Credentials
The skill requests no credentials or config paths, which is proportional. However, because it reads arbitrary project directories and packs 'all data', it can still collect secrets that happen to be in those directories; the skill does not require or declare access to any external credentials but can exfiltrate local secrets if misused.
Persistence & Privilege
The skill is not always-enabled and does not request elevated platform privileges. It does instruct creating a symlink within the user's skills directory (normal). No instructions were found that modify other skills or system-wide configurations beyond the skill's own path.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install ddday
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /ddday 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.0
v1.0.0: Initial release — daily work journal + machine migration toolkit. Features: auto project scanning, HTML dashboard, work snapshot, one-command export/restore, environment health check.
元数据
Slug ddday
版本 1.0.0
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 1
常见问题

ddday 是什么?

Daily work journal + machine migration toolkit. Auto-scans all registered projects (git activity, file changes, API status), generates a daily dashboard, and... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 86 次。

如何安装 ddday?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install ddday」即可一键安装,无需额外配置。

ddday 是免费的吗?

是的,ddday 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

ddday 支持哪些平台?

ddday 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 ddday?

由 Cosmos Fang(@cosmofang)开发并维护,当前版本 v1.0.0。

💬 留言讨论