archify
Create polished, validated architecture, workflow, sequence, data-flow, and lifecycle/state diagrams as explorable standalone…
Render the user's morning brief as a styled HTML artifact, or set it up as a recurring weekday task. Use only when the user explicitly asks to run, see, or set up their morning brief, or if they invoke /morning by name. A question about their day, schedule, or calendar is not by
Claude Code
$ npx -y skills add chancegraff/rules-for-claude --skill morning --agent claude-code
Codex
$ npx skills add chancegraff/rules-for-claude --skill morning -a codex -y
Cursor
$ npx skills add chancegraff/rules-for-claude --skill morning -a cursor -y
Gemini CLI
$ npx skills add chancegraff/rules-for-claude --skill morning -a gemini-cli -y
GitHub Copilot
$ npx skills add chancegraff/rules-for-claude --skill morning -a github-copilot -y
OpenCode
$ npx skills add chancegraff/rules-for-claude --skill morning -a opencode -y
Windsurf
$ npx skills add chancegraff/rules-for-claude --skill morning -a windsurf -y
name: morning description: "Render the user's morning brief as a styled HTML artifact, or set it up as a recurring weekday task. Use only when the user explicitly asks to run, see, or set up their morning brief, or if they invoke /morning by name. A question about their day, schedule, or calendar is not by itself a request for the brief; answer it directly instead."
This page is my 30-second morning glance: one calm view of the shape of my day and the few things worth knowing, so I start oriented instead of overwhelmed.
Draw one warm, hand-sketched single-file HTML page. The top half is a visual anchor: the day drawn as terrain with a few words underneath. The bottom half is important things: what needs me, what's already sorted, and any extra sections I've asked for.
When I ask to set this up as a recurring task, infer which language the brief should be in: during the interactive session, the language I wrote to you in; otherwise the language I wrote my setup request in. Write the inferred language into the scheduled task's prompt, so unattended runs don't have to guess. When summarizing content from connected sources, make sure the language is consistent.
Let the user know this skill will take a few minutes.
Check connections and sort available tools into roles: calendar · email · chat · other (task trackers, docs). A missing role is skipped; the page adapts.
When a core role (calendar, email, chat) has no connected tool and the session is interactive, surface the fix as connector suggestion cards, not prose.
For each missing role, search the connector catalog by its everyday names — calendar: "google calendar", "outlook calendar" · email: "gmail", "email" · chat: "slack", "teams", "chat". The mainstream matches are typically Google Calendar, Gmail, Slack, and Microsoft 365 (Outlook mail/calendar and Teams in one). Offer them as one card of suggestions covering every missing role together, alongside the delivered page.
Checking my existing connections only shows what's already installed — an empty or off-role result there still means the catalog needs searching, and the card shown by that check is not the suggestion. Not every session can search the catalog or offer suggestion cards; when this one can't, skip the cards and let the Write fallbacks carry the ask.
Skip all of this on an unattended scheduled run: no one is there to click, so just render the brief.
Calendar: one fetch, today 00:00 → tomorrow 24:00 in home timezone. Only today's events are drawn and classified. Tomorrow's events are for context: they can colour the evening act, earn a motif, or result in a prep item on Needs attention. From tomorrow's events, extract the project name from any I organize or that name a project and search for the latest context.
Remaining calls on connected roles, in priority:
1. Email: threads where I was asked and haven't replied. A group @-mention, team alias, or review-requested-from-team where anyone on the list could answer isn't a bottleneck. (fallback: unread last 2d) 2. Chat: mentions/DMs from ~2d ending in a question I haven't answered or reacted to with an emoji. 3. Tomorrow prep: for each project from the step above, one chat search — {keyword} after:{7d ago} — and skim the linked doc if the event has one. This finds what's open on the project so a prep item has something concrete to say. 4. Spare: my sent emails or chats for asks that never came back, or another source (tasks assigned to me and due, docs awaiting my review).
Pull ~8 candidates per search from snippets.
If a Sections: list came with the invocation, make one targeted fetch per entry on whatever connected tool serves it (a chat channel, a doc, a search). A section that finds nothing is dropped later.
Every candidate goes into one of two lists or is dropped silently, stacked top to bottom: Needs attention first, then Resolved below it (single column, full width), not side by side.
**Needs attention.** It would cost me something to ignore until tomorrow: someone's blocked on me, a window closes today, or it gets harder to undo. Must be anchored to a real tool result, verify if it's still open, and any quote verbatim. Before a Slack or email item lands here, open its thread once: if I've already replied in it, or reacted to the ask with any emoji, it moves to Resolved or is dropped. A prep item counts here: something tomorrow that goes better if I've read, decided, or drafted today. If I'm the organizer, it earns a line — the prep is the agenda I'll open with, and the button seeds it. If it's a retro or review, the prep is two or three thoughts to arrive holding, and the button seeds that. Otherwise it needs a concrete anchor: a doc to skim, a decision I'll be asked for, a draft to bring — found in the event or via the one project-name search above.
**Resolved.** Things that closed recently and are worth a glance: a thread I was on that someone else answered, a reply to a comment or question I left, a meeting the organizer cancelled, an overlap that went away, a launch that shipped.
Write the brief in my language.
RTL — for right-to-left languages, set the document direction to RTL and mirror the layout.
Classify the day from the calendar alone — HEAVY (≥5h in meetings or a 3+ cluster) · NORMAL · OPEN (≤1 short meeting). This sets the headline's tone and the terrain's vertical scale.
Day-date line — small ink-soft, above the headline: Monday · July 13 2026
Headline — one serif line, spoken like a friend handing me the day. If one thing genuinely makes today distinct (I'm running something, a decision gets made, a rare open stretch), name that. Otherwise, name the shape. Never both — pick one and let it land. Register examples — write from the actual day, don't template:
My global Claude Code setup, mirrored from ~/.claude: the rules, the hook scripts that enforce them, and the global CLAUDE.md.
Create polished, validated architecture, workflow, sequence, data-flow, and lifecycle/state diagrams as explorable standalone…
End-to-end Jira ticket workflow that manages a cross-functional team of agents to plan, implement, review, and ship work defined…
End-to-end workflow for responding to PR review feedback. Reads all review comments and requested changes on the current branch's…
How to answer review feedback on a pull request. Load when a bot or human reviewer leaves findings, when the base branch moves…
Use when creating or editing Attentive-branded artifacts, React components, HTML pages, Sandpack themes, decks, docs, charts,…
Use when creating, converting, editing, or QAing Attentive PowerPoint decks with the canonical 2026 template, including new…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.