Skip to content

Instantly share code, notes, and snippets.

View htlin222's full-sized avatar
🦎

Hsieh-Ting Lin (林協霆) htlin222

🦎
View GitHub Profile
@htlin222
htlin222 / building-anki-addons-with-cicd.md
Created June 3, 2026 16:45
Building & shipping an Anki add-on with CI/CD — a battle-tested playbook (hooks, the undocumented AnkiWeb protobuf upload API, images, badges, GitHub Actions release)

Building & shipping an Anki add-on with CI/CD — a battle-tested playbook

A curated, heuristic guide distilled from actually building and publishing one (anki-openevidence-addon, AnkiWeb 43671435). It focuses on the parts that are undocumented or surprising — especially automating AnkiWeb uploads, which has no official API.


@htlin222
htlin222 / llm-clinical-workshop-lessons.md
Last active May 28, 2026 16:41
Hard Lessons: Building an LLM-Assisted, Newbie-Friendly Data Workshop for Clinical Staff (distilled from a clinical RWE Quarto workbook's iteration history)

Hard Lessons: Building an LLM-Assisted, Newbie-Friendly Data Workshop for Clinical Staff

Distilled from the iteration history of a hands-on Quarto workbook — a half-day workshop teaching clinical staff (no prior coding experience) to reproduce a published paper's analyses in R, using a free-tier LLM (ChatGPT / Claude / Gemini) as their coding assistant. The lessons are deliberately written topic-agnostic so they transfer to any "non-coders + LLM + data" workshop.

The meta-lesson first: almost every commit in this project was a friction point discovered in practice, not predicted in advance. You cannot armchair your way to a newbie-friendly workshop. Ship a v1, watch where clinical staff actually trip, and remove that exact stone. The changelog is the curriculum-design document. Treat "where did a learner get stuck for >2 min?" as your only real backlog.


1. The install cliff is where you lose half the room — engineer it to near-zero

@htlin222
htlin222 / Makefile
Created April 28, 2026 16:43
Build a cross-device English-writing coach over your Claude Code prompt history. Captures every prompt via UserPromptSubmit hook, syncs across devices via Turso, polishes hourly with claude -p as an English teacher (grammar, register, native phrasing, vocab, drills), auto-commits to a private GitHub repo.
# polish-prompt
# Run `make help` for the menu.
ROOT := $(abspath $(dir $(lastword $(MAKEFILE_LIST))))
LABEL := com.example.polish-prompt
PLIST := $(ROOT)/$(LABEL).plist
LAUNCHAGENT := $(HOME)/Library/LaunchAgents/$(LABEL).plist
DOMAIN := gui/$(shell id -u)
ENV_FILE := $(HOME)/.config/polish-prompt/env
@htlin222
htlin222 / calendar-ops-notes.md
Created April 22, 2026 07:43
Calendar Ops Notes — querying Apple Calendar.sqlitedb, Google Calendar MCP, AppleScript write-back (macOS)

Calendar Ops Notes (macOS + Google + Apple)

在 Claude Code / 一般 shell 裡查詢、管理行事曆的操作手冊。 下次不用從頭摸。


TL;DR — 帳號 / 工具對照

| 帳號類型 | 讀取 | 寫入(建議) | 寫入(不建議) |

@htlin222
htlin222 / todoist-skill-writeup.md
Created April 22, 2026 04:02
Building a Global Todoist CRUD Skill for Claude Code — 設計決策、完整程式碼、踩坑記錄 (soft-delete) 與可重跑 smoke test

打造一個 Global Todoist CRUD Skill for Claude Code

把常用的 Todoist 操作包成 Claude Code 的 global skill,從此在任何專案裡對 Claude 說一句中文,他就能幫你 CRUD 待辦事項。


TL;DR

  • 做了什麼:在 ~/.claude/skills/todoist/ 下打造一個 global skill,包住 Todoist REST API v1 的 CRUD。
  • 怎麼觸發:對 Claude 說「加個『買牛奶』明天早上九點到 Todoist」、「看我今天待辦」、「把運動那件事改到下午五點」——skill 的 description 已經布好中文觸發詞,Claude 會自己載入。
@htlin222
htlin222 / post-transplant-fever-management.md
Created April 22, 2026 02:41
移植後發燒抗生素階段性處理流程 — 住院醫師無腦流程圖 (based on NCCN v1.2026)

移植後發燒抗生素階段性處理流程

住院醫師的移植後發燒處理無腦流程圖,依時間和抗生素使用狀況分階段處理

NCCN Guidelines® References (v1.2026):

  • FEV-5: Initial Inpatient Empiric Therapy for Fever and Neutropenia (p. 33)
  • FEV-A-2: Antibacterial Agents - Anti-Pseudomonal (p. 42)
  • INF-1: Antimicrobial Prophylaxis Based on Overall Infection Risk (p. 7)
  • FEV-8: Evaluation and Treatment Modifications for Specific Clinical Presentations — Day 0 (p. 36)
@htlin222
htlin222 / mail-triage-gist.md
Last active April 23, 2026 13:31
Claude Code mail triage reference — Gmail + enterprise Outlook (even OAuth-blocked tenants), triggered from your phone via Telegram, running in tmux. Includes himalaya + patchright/OWA + Haiku classification + JWT-exp session freshness.

Claude Code mail triage — Gmail + enterprise Outlook, driven from your phone

A practical reference for wiring up end-to-end mail triage in Claude Code. What you get at the end:

  • One natural-language command ("process my mail" / "24 小時 actionable") triages Gmail personal + Gmail work + enterprise Outlook in a single pass.
  • Enterprise Outlook works even if your tenant has disabled OAuth consent (AADSTS65002 / need admin approval) — scraping OWA via a stealth Chromium session instead of IMAP/Graph.
  • Trigger it from your phone via a Telegram bridge. Claude runs headless in tmux on your Mac; you text from bed, a prioritized digest comes back.
  • Read-only Outlook tenant is still actionable — instead of moving items, Claude creates macOS Reminders and keeps an append-only action log as the only source of truth.

Who this is for. You use Claude Code as your daily driver, you're comfortable with shell + Python, and at least one of your accounts is on a

@htlin222
htlin222 / 2026-W16.md
Created April 17, 2026 16:28
乳癌治療趨勢週報 2026-W16 — ADC、T-DXd、SG、CDK4/6i 全面更新 + 蜥蜴LLM 點評

乳癌治療趨勢週報 — 2026-W16

生成日期:2026-04-17|資料來源:OpenEvidence、PubMed、ClinicalTrials.gov、NEJM、JAMA Oncology、OncLive 涵蓋期間:2025 年下半年 — 2026 年 4 月|追蹤中 Phase III 試驗共 202 項


摘要

2025 年底至 2026 年初是乳癌領域資料量最密集的時期之一,ADC 與靶向治療正全面取代傳統化療,橫跨 HER2+、HER2-low、TNBC 三大族群。CDK4/6 inhibitor 在輔助治療的地位已完全確立;ESR1 突變的 HR+ 患者迎來首個專屬口服 SERD。

@htlin222
htlin222 / daily_hema_onc_rss_digest.toml
Last active May 20, 2026 08:45
daily_hema_onc_rss_digest.toml
# ── RSS 來源 ──────────────────────────────────────────────
[[rss.feeds]]
name = "JCO (ASCO Pubs)"
url = "https://ascopubs.org/action/showFeed?type=etoc&feed=rss&jc=jco"
[[rss.feeds]]
name = "NEJM Hematology-Oncology"
url = "https://onesearch-rss.nejm.org/api/specialty/rss?context=nejm&specialty=hematology-oncology"
[[rss.feeds]]
@htlin222
htlin222 / podcast-tmux.sh
Created March 30, 2026 03:12
podcast-tmux.sh — Share a read-only tmux session over the web via ttyd + Tailscale Funnel. Students get a secret SHA-256 URL to watch your terminal live (read-only, no typing). Great for live coding demos and classroom teaching.
#!/usr/bin/env bash
# podcast-tmux.sh — Share a read-only tmux session via ttyd + Tailscale Funnel
# Students get a secret URL; they can watch but not type.
#
# Prerequisites (macOS):
# brew install ttyd tmux tailscale
# # Enable Tailscale Funnel: https://tailscale.com/kb/1223/funnel
#
# Install:
# curl -fsSL https://gist.githubusercontent.com/htlin222/620b3b38d313c80a247b178aa1949510/raw/podcast-tmux.sh -o ~/bin/podcast-tmux.sh