diff --git a/CLAUDE.md b/CLAUDE.md index 876310a..8a2fef8 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -46,7 +46,7 @@ Write operations depend on TimeTree web authentication and CSRF handling. Keep e - `scripts/build-mcpb.mjs` - Bundles the server and all dependencies into one file and packs `build/timetree-mcp-.mcpb`. - `scripts/mcpb-packer/` - The MCPB packer locked with its own `package-lock.json`, installed only when building the extension. It is kept out of the main `package.json` so its dev-only advisories do not fail the server's `npm audit`. Update it on purpose, not through the main lockfile. - `.github/workflows/release.yml` - On a `v*` tag, tests, builds the `.mcpb`, and creates the GitHub release. -- `docs/assets/` - Icon, README demo image, and GitHub social preview (SVG sources plus rendered PNGs). +- `docs/assets/` - Icon and GitHub social preview (SVG sources plus rendered PNGs), and the README demo GIFs (`demo-en.gif`, `demo-ko.gif`, `demo-ja.gif`). Prefer small changes that follow these boundaries instead of adding new layers or dependencies. @@ -117,7 +117,7 @@ When testing manually with a real account, keep credentials only in the shell or - Keep client setup details in `docs/MCP_CLIENTS.md` and update the installer output when setup instructions change. - README first screen order: title and one-line value, badges, language links, short unofficial notice, example prompts, demo image, then "What it does" in user terms. Implementation details (rate limiting, logging, CSRF) belong in "How it works", not in the feature list. - Write user-facing copy plainly: no emoji section markers, no hype words, and only claims the project can back up. Example prompts and the demo image use made-up data. -- Edit images as SVG in `docs/assets/` and re-render the PNGs (`rsvg-convert`). `mcpb/icon.png` is rendered from `docs/assets/icon.svg` at 512x512. +- Edit images as SVG in `docs/assets/` and re-render the PNGs (`rsvg-convert`). The demo GIFs are screen recordings of Claude Desktop against a test calendar with made-up events; remove personal names from every frame (cover them, do not blur) and keep each GIF under a few MB. `mcpb/icon.png` is rendered from `docs/assets/icon.svg` at 512x512. - Keep shell script output in English unless maintainers decide otherwise. - Use generic placeholders such as `your-email@example.com`, `your-password`, and `/absolute/path/to/...`. - Avoid contributor-facing text that depends on a maintainer's local environment. @@ -157,6 +157,7 @@ This is primarily a project guide, not a full contribution handbook. For contrib - Do not add dependencies unless the benefit is clear and documented. - Make privacy-preserving behavior the default. - When uncertain about upstream behavior, document the observation method without storing sensitive captures. +- After opening a pull request, wait for the Codex review (`chatgpt-codex-connector`), which usually lands within a few minutes. Address or answer each finding, then comment `@codex review` after pushing fixes and check the new review before asking for a merge. ## Code Review Rules diff --git a/README.ja.md b/README.ja.md index 7c98e06..f8ac367 100644 --- a/README.ja.md +++ b/README.ja.md @@ -30,7 +30,7 @@ AI アシスタントに次のように聞くだけです。 - 「今日カレンダーを変更したのは誰?何を変えた?」

- アシスタントが TimeTree MCP で今週の予定を読み、土曜日の予定の重なりを指摘する例 + Claude Desktop が TimeTree カレンダーの1週間の予定をまとめて重なりを指摘し、予定の移動と追加を行う例

## できること diff --git a/README.ko.md b/README.ko.md index 13393f1..00e4b7b 100644 --- a/README.ko.md +++ b/README.ko.md @@ -30,7 +30,7 @@ AI 어시스턴트에게 이렇게 물어보면 됩니다. - "오늘 누가 캘린더에서 뭘 바꿨어?"

- 어시스턴트가 TimeTree MCP로 이번 주 일정을 읽고 토요일 일정 충돌을 알려주는 예시 + Claude Desktop이 TimeTree 캘린더의 한 주 일정을 정리하고 겹치는 일정을 알려준 뒤, 일정을 옮기고 새 일정을 추가하는 예시

## 할 수 있는 일 diff --git a/README.md b/README.md index 58c5da0..7120b43 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ Ask your AI assistant things like: - "Who changed the calendar today, and what did they change?"

- An assistant reads this week's events through TimeTree MCP and points out a Saturday conflict + Claude Desktop summarizes a week on a TimeTree calendar, flags a conflict, then moves an event and adds a new one

## What it does diff --git a/docs/assets/demo-en.gif b/docs/assets/demo-en.gif new file mode 100644 index 0000000..7b0e3a7 Binary files /dev/null and b/docs/assets/demo-en.gif differ diff --git a/docs/assets/demo-ja.gif b/docs/assets/demo-ja.gif new file mode 100644 index 0000000..fc5ebba Binary files /dev/null and b/docs/assets/demo-ja.gif differ diff --git a/docs/assets/demo-ko.gif b/docs/assets/demo-ko.gif new file mode 100644 index 0000000..7d93e0a Binary files /dev/null and b/docs/assets/demo-ko.gif differ diff --git a/docs/assets/demo.svg b/docs/assets/demo.svg deleted file mode 100644 index bf460fa..0000000 --- a/docs/assets/demo.svg +++ /dev/null @@ -1,22 +0,0 @@ - - Example: asking an AI assistant about this week's family calendar through TimeTree MCP - - - - Summarize our family calendar this week. Any conflicts? - - - - timetree: get_events - - - This week: 4 events on the Family calendar - - Mon 18:30 Swimming lesson - Wed 09:00 Dentist (Mina) - Sat 11:00 Soccer match - Sat 12:00 Lunch with grandparents - - - Conflict on Saturday: the match runs until 12:30, lunch starts at 12:00. -