[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71JEK3WMZ66EHSBAQBQAC0Z":3,"skill-same:01M71JEK3WMZ66EHSBAQBQAC0Z":73},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":44,"commitSha":45,"skillDirectory":5,"forksCount":46,"repositoryHtmlUrl":47,"repositoryHomepageUrl":48,"ownerHtmlUrl":49,"ownerBlogUrl":50,"ownerDescription":51,"updatedAt":52,"install":53,"resources":66},"01M71JEK3WMZ66EHSBAQBQAC0Z","dayflow-pull",null,"Pull Henry's Dayflow activity data (what he actually worked on, day by day, card by card, with accurate hours) straight from Dayflow's local SQLite DB — read-only. Use whenever Henry asks to check his Dayflow, compute real work hours, build a weekly\u002Fdaily report of what he did, verify time spent on a project, or audit his activity. Computes overlap-merged wall-clock hours (Dayflow's own sums double-count) and flags corrupt cards instead of trusting the LLM summaries at face value.","caezium\u002Fskills","caezium","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F113233555?v=4","01M71JB77ZPBAWEK009Y2W8BP7","Henry Zhang","01M71JB792NVXCWSYD27HQ0964",3,"MIT","https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fdayflow-pull\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"Dayflow","dayflow pull","pull","check","compute","sqlite","wall","clock","use","only","local","daily","time","card","project","db","read-only","daily report","value","weekly","2026-11-10 10:12:30",false,"---\nname: dayflow-pull\ndescription: Pull Henry's Dayflow activity data (what he actually worked on, day by day, card by card, with accurate hours) straight from Dayflow's local SQLite DB — read-only. Use whenever Henry asks to check his Dayflow, compute real work hours, build a weekly\u002Fdaily report of what he did, verify time spent on a project, or audit his activity. Computes overlap-merged wall-clock hours (Dayflow's own sums double-count) and flags corrupt cards instead of trusting the LLM summaries at face value.\n---\n\n# dayflow-pull\n\nRead Henry's Dayflow data directly from its structured store — **do not** eyeball\nthe app or trust Dayflow's own hour totals. Dayflow is a screen-recording time\ntracker whose cards are LLM\u002FOCR-generated, so two things must be handled:\n\n1. **Overlapping cards** — Dayflow sometimes emits duplicate\u002Foverlapping cards\n   for the same span (esp. after re-analysis). `SUM(end_ts - start_ts)`\n   double-counts them. Always **interval-merge** for real wall-clock hours.\n2. **Corrupt timestamps** — occasional cards span days (a \"System\" card of\n   1400+ hours was observed). Exclude any single card longer than ~3h and flag it.\n\n## How to use\n\nRun the helper (read-only; safe while Dayflow is running):\n\n```bash\npython3 ~\u002F.claude\u002Fskills\u002Fdayflow-pull\u002Fpull.py                    # last 8 days, Work, per-day merged hours + cards\npython3 ~\u002F.claude\u002Fskills\u002Fdayflow-pull\u002Fpull.py --from 2026-07-08 --to 2026-07-14\npython3 ~\u002F.claude\u002Fskills\u002Fdayflow-pull\u002Fpull.py --day 2026-07-13   # one day, card by card\npython3 ~\u002F.claude\u002Fskills\u002Fdayflow-pull\u002Fpull.py --category all     # every category, not just Work\npython3 ~\u002F.claude\u002Fskills\u002Fdayflow-pull\u002Fpull.py --obs              # also dump the rawer `observations` layer\n```\n\nCategories: `Work` (default), `Personal`, `Distraction`, `Idle`, `System`, `all`.\n\n## Data model (for ad-hoc queries)\n\nDB: `~\u002FLibrary\u002FApplication Support\u002FDayflow\u002Fchunks.sqlite` — **open `mode=ro` only.**\n\n- `timeline_cards` — the summary cards: `day`, `start_ts`\u002F`end_ts` (unix),\n  `title`, `summary`, `detailed_summary`, `category`, `subcategory`, `metadata`\n  (JSON incl. `appSites`), `is_deleted` (filter `=0`).\n- `observations` — the finer, rawer layer beneath the cards (per-batch),\n  joined via `batch_id`; use to sanity-check what a card claims vs. the\n  underlying evidence (`llm_model` records which model produced it).\n- `llm_calls` — Dayflow's own LLM invocations, if you need to audit how a card\n  was derived (the \"OCR-LLM might be wrong\" check).\n- `journal_entries`, `day_goals`, `daily_standup_entries` — journal\u002Fgoals.\n\n## Rules\n\n- **Read-only, always.** `sqlite3 -readonly` \u002F `?mode=ro`. Never write; the DB is live.\n- **Report merged hours, not summed.** State when you excluded glitch cards.\n- **Read the cards, don't hand-wave.** Cite actual card titles\u002Ftimes, and drop to\n  `observations` when a card's claim looks off — that's the point of reading the\n  structured data instead of guessing from a summary.\n","# dayflow-pull\n\nRead Henry's Dayflow data directly from its structured store — **do not** eyeball\nthe app or trust Dayflow's own hour totals. Dayflow is a screen-recording time\ntracker whose cards are LLM\u002FOCR-generated, so two things must be handled:\n\n1. **Overlapping cards** — Dayflow sometimes emits duplicate\u002Foverlapping cards\n   for the same span (esp. after re-analysis). `SUM(end_ts - start_ts)`\n   double-counts them. Always **interval-merge** for real wall-clock hours.\n2. **Corrupt timestamps** — occasional cards span days (a \"System\" card of\n   1400+ hours was observed). Exclude any single card longer than ~3h and flag it.\n\n## How to use\n\nRun the helper (read-only; safe while Dayflow is running):\n\n```bash\npython3 ~\u002F.claude\u002Fskills\u002Fdayflow-pull\u002Fpull.py                    # last 8 days, Work, per-day merged hours + cards\npython3 ~\u002F.claude\u002Fskills\u002Fdayflow-pull\u002Fpull.py --from 2026-07-08 --to 2026-07-14\npython3 ~\u002F.claude\u002Fskills\u002Fdayflow-pull\u002Fpull.py --day 2026-07-13   # one day, card by card\npython3 ~\u002F.claude\u002Fskills\u002Fdayflow-pull\u002Fpull.py --category all     # every category, not just Work\npython3 ~\u002F.claude\u002Fskills\u002Fdayflow-pull\u002Fpull.py --obs              # also dump the rawer `observations` layer\n```\n\nCategories: `Work` (default), `Personal`, `Distraction`, `Idle`, `System`, `all`.\n\n## Data model (for ad-hoc queries)\n\nDB: `~\u002FLibrary\u002FApplication Support\u002FDayflow\u002Fchunks.sqlite` — **open `mode=ro` only.**\n\n- `timeline_cards` — the summary cards: `day`, `start_ts`\u002F`end_ts` (unix),\n  `title`, `summary`, `detailed_summary`, `category`, `subcategory`, `metadata`\n  (JSON incl. `appSites`), `is_deleted` (filter `=0`).\n- `observations` — the finer, rawer layer beneath the cards (per-batch),\n  joined via `batch_id`; use to sanity-check what a card claims vs. the\n  underlying evidence (`llm_model` records which model produced it).\n- `llm_calls` — Dayflow's own LLM invocations, if you need to audit how a card\n  was derived (the \"OCR-LLM might be wrong\" check).\n- `journal_entries`, `day_goals`, `daily_standup_entries` — journal\u002Fgoals.\n\n## Rules\n\n- **Read-only, always.** `sqlite3 -readonly` \u002F `?mode=ro`. Never write; the DB is live.\n- **Report merged hours, not summed.** State when you excluded glitch cards.\n- **Read the cards, don't hand-wave.** Cite actual card titles\u002Ftimes, and drop to\n  `observations` when a card's claim looks off — that's the point of reading the\n  structured data instead of guessing from a summary.\n",{"name":5,"description":7},"main","6ef866230c1ba3459fd08fc65141dfd37fffd41a",0,"https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills","https:\u002F\u002Fskills.henryzh.dev","https:\u002F\u002Fgithub.com\u002Fcaezium","henryzh.dev","quant, data science, full-stack, robotics.\r\nbuilding cool stuff","2026-08-24 19:21:44",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add caezium\u002Fskills --skill dayflow-pull",{"tool":59,"command":60},"bunx","bunx skills add caezium\u002Fskills --skill dayflow-pull",{"tool":62,"command":63},"pnpm","pnpm dlx skills add caezium\u002Fskills --skill dayflow-pull","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fdayflow-pull\u002FSKILL.md",true,[67],{"path":68,"resourceType":69,"resourceTypeDesc":70,"sizeBytes":71,"sourceHtmlUrl":72},"pull.py","SCRIPT","脚本",5292,"https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fdayflow-pull\u002Fpull.py",[74,97,125,143,163,185],{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":90,"publishedAt":39},"01M71JT4RYCAS18RF6003YYR1D","writing-for-agents","Writing documents for agents. Use when creating or editing skills, or modifying AGENTS.md or CLAUDE.md.","https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fwriting-for-agents\u002FSKILL.md",[80,85],{"categoryNo":81,"categoryName":82,"taxonomyType":83,"taxonomyTypeDesc":84},"01JBSEEDCAT000000000000018","写作与文案","SCENARIO","使用场景",{"categoryNo":86,"categoryName":87,"taxonomyType":88,"taxonomyTypeDesc":89},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[91,92,93,94,27,95,96],"writing for agents","for","writing","editing","documents","when",{"skillNo":98,"name":99,"nameZh":6,"description":100,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":101,"categories":102,"keywords":106,"publishedAt":39},"01M71JT0GES4AZ5ADH8EADNN1Z","wrangler","Cloudflare Workers CLI for deploying, developing, and managing Workers, KV, R2, D1, Vectorize, Hyperdrive, Workers AI, Containers, Queues, Workflows, Pipelines, and Secrets Store. Load before running wrangler commands to ensure correct syntax and best practices. Biases towards retrieval from Cloudflare docs over pre-trained knowledge.","https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fwrangler\u002FSKILL.md",[103],{"categoryNo":104,"categoryName":105,"taxonomyType":83,"taxonomyTypeDesc":84},"01JBSEEDCAT000000000000010","后端与接口",[99,107,108,109,110,111,112,113,114,115,116,117,118,92,119,120,121,122,123,124],"cloudflare","d1","knowledge","workflows","cli","secrets","commands","syntax","cloudflare workers","r2","queues","running","containers","correct","load","workers","best practices","store",{"skillNo":126,"name":127,"nameZh":6,"description":128,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":129,"categories":130,"keywords":131,"publishedAt":39},"01M71JSWX4R203M32K9A18AAW8","workers-best-practices","Reviews and authors Cloudflare Workers code against production best practices. Load when writing new Workers, reviewing Worker code, configuring wrangler.jsonc, or checking for common Workers anti-patterns (streaming, floating promises, global state, secrets, bindings, observability). Biases towards retrieval from Cloudflare docs over pre-trained knowledge.","https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fworkers-best-practices\u002FSKILL.md",[],[132,122,123,133,134,135,92,107,136,109,137,99,93,121,96,138,139,140,141,142],"workers best practices","observability","reviews","promises","worker","new","code","common","streaming","state","anti-patterns",{"skillNo":144,"name":145,"nameZh":6,"description":146,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":147,"categories":148,"keywords":149,"publishedAt":39},"01M71JST6P88MXGT2MWDTPJGEG","wizard","Generate an interactive bash wizard that walks a human through steps only they can perform. Use when provisioning infrastructure, setting up credentials or CI secrets, walking an unfamiliar third-party dashboard, or running a one-off migration or cutover. Don't invoke this for steps the agent can perform itself.","https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fwizard\u002FSKILL.md",[],[145,118,150,92,151,152,153,28,27,154,96,155,156,157,158,159,160,161,162,112],"setting","up","ci","provisioning infrastructure","invoke","Bash","one","interactive","can","credentials","dashboard","generate","human",{"skillNo":164,"name":165,"nameZh":6,"description":166,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":167,"sourceHtmlUrl":168,"categories":169,"keywords":170,"publishedAt":39},"01M71JSQ95S7BQ61DAPN95X2W4","why","Use for 'why does X work this way', 'why we picked Y', design rationale, regressions, postmortems, or data-backed thresholds. Discovers available evidence sources, searches each relevant category, and returns a cited read on decisions and tradeoffs. Use how for runtime behavior.","https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fwhy\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fwhy\u002FSKILL.md",[],[165,171,172,173,174,92,175,176,27,177,178,179,180,181,182,183,184],"sources","thresholds","evidence","relevant","runtime","design","decisions","work","how","behavior","read","data","rationale","returns",{"skillNo":186,"name":187,"nameZh":6,"description":188,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":189,"categories":190,"keywords":194,"publishedAt":39},"01M71JSMHFVSH8HK8GXN6YAX6J","week-prep","Generate a briefing with calendar, tasks, and attention flags. Use for \"week prep\", \"briefing\", or \"what's on this week\".","https:\u002F\u002Fgithub.com\u002Fcaezium\u002Fskills\u002Fblob\u002Fmain\u002Fweek-prep\u002FSKILL.md",[191],{"categoryNo":192,"categoryName":193,"taxonomyType":83,"taxonomyTypeDesc":84},"01JBSEEDCAT000000000000023","Skill与智能体开发",[195,196,197,198,199,92,200,201,202,203,27,155,204,205,206,161,207,181,208,209],"week prep","prep","deep","attention","get","search","messages","briefing","MCP","tasks","with","slack","calendar","flags","grep"]