Skip to content

feat: add email and calendar skills with unified expression rules - #42

Merged
eamanc-lab merged 10 commits into
mainfrom
feat/skill-guideline-refresh
Aug 20, 2026
Merged

feat: add email and calendar skills with unified expression rules#42
eamanc-lab merged 10 commits into
mainfrom
feat/skill-guideline-refresh

Conversation

@eamanc-lab

Copy link
Copy Markdown
Contributor

Adds the four Cola-authored skills and puts them on one set of rules.

Skills

  • universal-email — IMAP/SMTP and Microsoft Graph mailboxes through the bundled Himalaya CLI
  • google-calendar — Google Calendar through the bundled gws CLI
  • outlook-calendar — Outlook / Microsoft 365 Calendar, OAuth
  • icloud-calendar — iCloud Calendar over CalDAV, app-specific password

Shared conventions

  • Talk like Cola. Product words (配置 / 授权 / 连接 / 账号) reach the user; tool names, protocols, config files, PATH and raw command output never do. Failures are translated into one clear next step.
  • PATH-first CLI resolution. Each skill tries the command on PATH, then falls back to the copy bundled at scripts/bin/<platform>/. Neither present means the app is not ready yet — the agent never searches the filesystem for another installation.
  • Discoverability. Descriptions carry Chinese trigger phrases alongside the English ones, and every skill has a 使用场景 section.
  • Frontmatter. version plus metadata.requires.bins, so a listing declares what it needs.

Notes

  • iCloud setup opens the CLI's own configuration page. It previously pointed at an app-center form that no longer exists.
  • Calendar CLI binaries carry Cola-styled callback and result pages.
  • Build artifacts (*.zip) are gitignored; release packages are distributed separately.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: bb6bd1b75b

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread universal-email/SKILL.md Outdated
Comment thread universal-email/references/outlook.md
Comment thread universal-email/SKILL.md
Comment thread universal-email/references/message-composition.md Outdated
Comment thread universal-email/SKILL.md Outdated
Comment thread google-calendar-skill/SKILL.md Outdated
Comment thread universal-email/SKILL.md Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1ccd70593f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread universal-email/references/standard-imap-smtp.md Outdated
Comment thread universal-email/references/configuration.md Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9663377f9e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread universal-email/SKILL.md Outdated
Comment thread universal-email/SKILL.md Outdated
Comment thread universal-email/references/configuration.md Outdated
Comment thread icloud-calendar-skill/SKILL.md

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 94b4eecf05

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread universal-email/SKILL.md Outdated
Comment thread icloud-calendar-skill/SKILL.md
Comment thread universal-email/references/configuration.md Outdated
Comment thread google-calendar-skill/SKILL.md Outdated
Comment thread google-calendar-skill/SKILL.md Outdated
Comment thread universal-email/SKILL.md
Comment thread google-calendar-skill/SKILL.md Outdated

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b4bce6f63c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread icloud-calendar-skill/SKILL.md
Comment thread outlook-calendar-skill/SKILL.md
Comment thread universal-email/SKILL.md Outdated
Comment thread google-calendar-skill/SKILL.md Outdated
Comment thread universal-email/references/qq.md
Comment thread outlook-calendar-skill/SKILL.md
…t the CLI page

- tiered talk rules: product words allowed, implementation terms never
- PATH-first CLI resolution with bundled scripts/bin fallback
- zh trigger phrases and usage-scenario sections
- version + requires metadata in frontmatter
- icloud setup now opens the CLI's own configuration page; the app-center form
  it referenced was removed along with the icloud preset
- calendar CLI binaries carry the Cola-styled callback pages
- keep build artifacts out of the repository
…aming

- app passwords and authorization codes go to the secure local prompt, never
  into a chat message
- a PATH Himalaya reporting another version now falls back to the bundled
  v2.0.0 instead of leaving the skill unusable
- --save resolves the account's real Sent mailbox instead of assuming the alias
- proxy wording no longer implies OS settings are inherited automatically
- version moves under metadata so the frontmatter keeps only accepted top-level keys
Now that these ship as plain skills there is no managed PATH entry, so PATH
could only ever resolve an unrelated build. Each skill resolves its own copy
under scripts/bin/<platform>/, determining the architecture with uname -m,
which also removes the version mismatch the previous rule could deadlock on.
…uides

The configuration guide still sent normal operations to a PATH himalaya and
forbade the packaged binary outright, contradicting the rule SKILL.md now sets
and breaking setup on a machine that only has the bundled copy. The generic
IMAP/SMTP guide also listed the credential among the values to ask for.
…in the guides

The iCloud CLI rebuilt the whole VEVENT on update, so changing a title dropped
the location, description, attendees, recurrence and alarms the stored resource
carried — a silent data loss the server reports as success. Update now fetches
the object, replaces only the requested properties and writes it back under the
same If-Match guard.

The guides also assumed Unix and macOS-or-Windows throughout: Linux has no
bundled build, PowerShell has no 'env -u', and '~/.himalayarc' belongs to the
v1 configuration family this skill rejects.
…end assumptions

The iCloud list query asked for raw calendar data, so a recurring event came
back as its master component and a weekly meeting was reported at its original
date whatever week was requested; the CalDAV report now expands occurrences
over the queried range.

The guides also resolved Windows binaries without their .exe suffix, promised
the Google account timezone under scopes that exclude settings, presented
events.update as interchangeable with patch, added Google attendees without
sendUpdates so nobody was invited, and pointed Graph mailboxes at SMTP-only
send commands.
@eamanc-lab
eamanc-lab force-pushed the feat/skill-guideline-refresh branch from b4bce6f to 1066e73 Compare August 20, 2026 11:23

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f100ed3233

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread google-calendar-skill/SKILL.md
Comment thread google-calendar-skill/SKILL.md Outdated
…s, and notify guests

Expanding recurring occurrences made a new hazard reachable: every occurrence
carries the series' resource id, so editing one displayed instance rewrote the
series and deleting one cancelled every meeting in it. Both writes now refuse a
recurring resource and say why, and list marks which results are occurrences.

Outlook list follows Graph pagination instead of returning only the first page,
and moving an event with just a new start derives the end from its stored
duration rather than leaving the old one in place.

The Google guide now notifies guests on edits and cancellations, carries the
mandatory timezone in every agenda example, requires QQ's RFC 2971 ID exchange,
scopes the PowerShell proxy test to a child process, and stops three calendar
skills from claiming the same provider-neutral trigger phrase.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1b55ee5987

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread icloud-calendar-skill/SKILL.md
Expansion returns each occurrence as its own VEVENT inside one response, but
list emitted one record per response, so a weekly meeting appeared once and the
rest of the week's instances were missing. Each component is now split into a
self-contained calendar object.

The recurrence guard matched RRULE anywhere in the payload, which would have
locked a one-off event out of every write because its notes mentioned the word;
it now matches property lines. Moving an all-day Outlook event with only a new
start is refused rather than sent as a request Graph rejects. Adds tests for
splitting, the guard and the text-mention case, carries the timezone in the
agenda synopsis, and moves the disambiguation rule below the list it broke.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: bf77dd0c6e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread outlook-calendar-skill/SKILL.md Outdated
Comment thread google-calendar-skill/SKILL.md
Comment thread universal-email/SKILL.md Outdated
Comment thread universal-email/SKILL.md Outdated
… and Meet cases

The pinned build resolves routes from all_proxy and https_proxy only; http_proxy
is never consulted, so a proxy supplied through it was silently ignored while
the guide promised otherwise. The PowerShell recipe also emptied the variables
rather than removing them, which is not the same signal to a client that checks
for presence.

The all-day guard added last round made the documented Outlook move flow stop
outright, and the attendee-notifying insert dropped the Meet link the canonical
example asks for. A custom domain no longer picks a provider guide by its name
alone — it is usually hosted elsewhere.
@eamanc-lab
eamanc-lab merged commit 25971a4 into main Aug 20, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants