Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 22 additions & 22 deletions .agents/skills/chat-sdk/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,16 +75,16 @@ bot.onSubscribedMessage(async (thread, message) => {

## Event handlers

| Handler | Trigger |
| -------------------------- | ------------------------------------------------- |
| `onNewMention` | Bot @-mentioned in unsubscribed thread |
| `onSubscribedMessage` | Any message in subscribed thread |
| `onNewMessage(regex)` | Messages matching pattern in unsubscribed threads |
| `onSlashCommand("/cmd")` | Slash command invocations |
| `onReaction(emojis)` | Emoji reactions added/removed |
| `onAction(actionId)` | Button clicks and dropdown selections |
| `onAssistantThreadStarted` | Slack Assistants API thread opened |
| `onAppHomeOpened` | Slack App Home tab opened |
| Handler | Trigger |
|---|---|
| `onNewMention` | Bot @-mentioned in unsubscribed thread |
| `onSubscribedMessage` | Any message in subscribed thread |
| `onNewMessage(regex)` | Messages matching pattern in unsubscribed threads |
| `onSlashCommand("/cmd")` | Slash command invocations |
| `onReaction(emojis)` | Emoji reactions added/removed |
| `onAction(actionId)` | Button clicks and dropdown selections |
| `onAssistantThreadStarted` | Slack Assistants API thread opened |
| `onAppHomeOpened` | Slack App Home tab opened |

## Streaming

Expand Down Expand Up @@ -122,18 +122,18 @@ await thread.post(

## Packages

| Package | Purpose |
| ----------------------------- | ----------------------------- |
| `chat` | Core SDK |
| `@chat-adapter/slack` | Slack |
| `@chat-adapter/teams` | Microsoft Teams |
| `@chat-adapter/gchat` | Google Chat |
| `@chat-adapter/discord` | Discord |
| `@chat-adapter/github` | GitHub Issues |
| `@chat-adapter/linear` | Linear Issues |
| `@chat-adapter/state-redis` | Redis state (production) |
| `@chat-adapter/state-ioredis` | ioredis state (alternative) |
| `@chat-adapter/state-memory` | In-memory state (development) |
| Package | Purpose |
|---|---|
| `chat` | Core SDK |
| `@chat-adapter/slack` | Slack |
| `@chat-adapter/teams` | Microsoft Teams |
| `@chat-adapter/gchat` | Google Chat |
| `@chat-adapter/discord` | Discord |
| `@chat-adapter/github` | GitHub Issues |
| `@chat-adapter/linear` | Linear Issues |
| `@chat-adapter/state-redis` | Redis state (production) |
| `@chat-adapter/state-ioredis` | ioredis state (alternative) |
| `@chat-adapter/state-memory` | In-memory state (development) |

## Changesets (Release Flow)

Expand Down
24 changes: 12 additions & 12 deletions .agents/skills/durable-objects/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,12 @@ Build stateful, coordinated applications on Cloudflare's edge using Durable Obje

Your knowledge of Durable Objects APIs and configuration may be outdated. **Prefer retrieval over pre-training** for any Durable Objects task.

| Resource | URL |
| -------------- | ----------------------------------------------------------------- |
| Docs | https://developers.cloudflare.com/durable-objects/ |
| API Reference | https://developers.cloudflare.com/durable-objects/api/ |
| Resource | URL |
|---|---|
| Docs | https://developers.cloudflare.com/durable-objects/ |
| API Reference | https://developers.cloudflare.com/durable-objects/api/ |
| Best Practices | https://developers.cloudflare.com/durable-objects/best-practices/ |
| Examples | https://developers.cloudflare.com/durable-objects/examples/ |
| Examples | https://developers.cloudflare.com/durable-objects/examples/ |

Fetch the relevant doc page when implementing features.

Expand All @@ -41,13 +41,13 @@ Search: `blockConcurrencyWhile`, `idFromName`, `getByName`, `setAlarm`, `sql.exe

### Use Durable Objects For

| Need | Example |
| ------------------------- | ------------------------------------------------- |
| Coordination | Chat rooms, multiplayer games, collaborative docs |
| Strong consistency | Inventory, booking systems, turn-based games |
| Per-entity storage | Multi-tenant SaaS, per-user data |
| Persistent connections | WebSockets, real-time notifications |
| Scheduled work per entity | Subscription renewals, game timeouts |
| Need | Example |
|---|---|
| Coordination | Chat rooms, multiplayer games, collaborative docs |
| Strong consistency | Inventory, booking systems, turn-based games |
| Per-entity storage | Multi-tenant SaaS, per-user data |
| Persistent connections | WebSockets, real-time notifications |
| Scheduled work per entity | Subscription renewals, game timeouts |

### Do NOT Use For

Expand Down
10 changes: 5 additions & 5 deletions .agents/skills/durable-objects/references/rules.md
Original file line number Diff line number Diff line change
Expand Up @@ -112,11 +112,11 @@ For production apps, consider [`durable-utils`](https://github.com/lambrospetrou

### State Types

| Type | Speed | Persistence | Use Case |
| ----------------- | -------- | ----------------- | --------------------------- |
| Class properties | Fastest | Lost on eviction | Caching, active connections |
| SQLite storage | Fast | Durable | Primary data |
| External (R2, D1) | Variable | Durable, cross-DO | Large files, shared data |
| Type | Speed | Persistence | Use Case |
|---|---|---|---|
| Class properties | Fastest | Lost on eviction | Caching, active connections |
| SQLite storage | Fast | Durable | Primary data |
| External (R2, D1) | Variable | Durable, cross-DO | Large files, shared data |

**Rule**: Always persist critical state to SQLite first, then update in-memory cache.

Expand Down
14 changes: 7 additions & 7 deletions .agents/skills/kilo-design/NOTICE.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,15 @@ This skill contains content adapted from the Impeccable project.
The following files under `reference/` are derivative works based on
corresponding files in `pbakaus/impeccable` at `source/skills/impeccable/reference/`:

| Local file | Upstream source |
| --------------------------------- | -------------------------------------------------------------------------------------------------------- |
| `reference/typography.md` | https://github.com/pbakaus/impeccable/blob/main/source/skills/impeccable/reference/typography.md |
| Local file | Upstream source |
|---|---|
| `reference/typography.md` | https://github.com/pbakaus/impeccable/blob/main/source/skills/impeccable/reference/typography.md |
| `reference/color-and-contrast.md` | https://github.com/pbakaus/impeccable/blob/main/source/skills/impeccable/reference/color-and-contrast.md |
| `reference/spatial-design.md` | https://github.com/pbakaus/impeccable/blob/main/source/skills/impeccable/reference/spatial-design.md |
| `reference/motion-design.md` | https://github.com/pbakaus/impeccable/blob/main/source/skills/impeccable/reference/motion-design.md |
| `reference/spatial-design.md` | https://github.com/pbakaus/impeccable/blob/main/source/skills/impeccable/reference/spatial-design.md |
| `reference/motion-design.md` | https://github.com/pbakaus/impeccable/blob/main/source/skills/impeccable/reference/motion-design.md |
| `reference/interaction-design.md` | https://github.com/pbakaus/impeccable/blob/main/source/skills/impeccable/reference/interaction-design.md |
| `reference/responsive-design.md` | https://github.com/pbakaus/impeccable/blob/main/source/skills/impeccable/reference/responsive-design.md |
| `reference/ux-writing.md` | https://github.com/pbakaus/impeccable/blob/main/source/skills/impeccable/reference/ux-writing.md |
| `reference/responsive-design.md` | https://github.com/pbakaus/impeccable/blob/main/source/skills/impeccable/reference/responsive-design.md |
| `reference/ux-writing.md` | https://github.com/pbakaus/impeccable/blob/main/source/skills/impeccable/reference/ux-writing.md |

Each of these files has been modified to:

Expand Down
36 changes: 18 additions & 18 deletions .agents/skills/kilo-design/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,16 +49,16 @@ Given a user prompt that invokes this skill:
2. Identify the dominant concern from the prompt and load the matching
reference(s):

| Prompt signal | Load |
| ---------------------------------------------------------------- | --------------------------------- |
| typography, fonts, type scale, hierarchy, readability | `reference/typography.md` |
| Prompt signal | Load |
|---|---|
| typography, fonts, type scale, hierarchy, readability | `reference/typography.md` |
| color, palette, contrast, accent, theming, gradient, a11y colors | `reference/color-and-contrast.md` |
| spacing, layout, grid, rhythm, padding, alignment, cards | `reference/spatial-design.md` |
| motion, animation, transitions, easing, micro-interactions | `reference/motion-design.md` |
| forms, focus, hover, states, dialog, dropdown, keyboard nav | `reference/interaction-design.md` |
| responsive, mobile, breakpoints, touch, tablet, adapt | `reference/responsive-design.md` |
| copy, microcopy, error messages, labels, empty state copy | `reference/ux-writing.md` |
| audit / critique / polish / general redesign | all references above |
| spacing, layout, grid, rhythm, padding, alignment, cards | `reference/spatial-design.md` |
| motion, animation, transitions, easing, micro-interactions | `reference/motion-design.md` |
| forms, focus, hover, states, dialog, dropdown, keyboard nav | `reference/interaction-design.md` |
| responsive, mobile, breakpoints, touch, tablet, adapt | `reference/responsive-design.md` |
| copy, microcopy, error messages, labels, empty state copy | `reference/ux-writing.md` |
| audit / critique / polish / general redesign | all references above |

3. If the prompt targets a specific file, component, or route, **read
that file first** before proposing or making changes. Do not guess
Expand Down Expand Up @@ -155,15 +155,15 @@ This skill is intentionally scoped. It does **not**:

## Reference map

| File | What it covers |
| --------------------------------- | --------------------------------------------------------------- |
| `reference/kilo-brand.md` | Kilo-specific tokens, components, rules. Load first, always. |
| `reference/typography.md` | Inter/mono usage, hierarchy, tabular nums, OpenType polish. |
| File | What it covers |
|---|---|
| `reference/kilo-brand.md` | Kilo-specific tokens, components, rules. Load first, always. |
| `reference/typography.md` | Inter/mono usage, hierarchy, tabular nums, OpenType polish. |
| `reference/color-and-contrast.md` | OKLCH tokens, brand vs action color, dark-first contrast rules. |
| `reference/spatial-design.md` | Spacing, radius scale, grid patterns, optical alignment. |
| `reference/motion-design.md` | Durations, easings, reduced motion, Kilo brand flourishes. |
| `reference/interaction-design.md` | Focus, forms, overlays, destructive actions, keyboard nav. |
| `reference/responsive-design.md` | Breakpoints, input-method queries, safe areas, images. |
| `reference/ux-writing.md` | Kilo voice, labels, error copy, empty states, i18n. |
| `reference/spatial-design.md` | Spacing, radius scale, grid patterns, optical alignment. |
| `reference/motion-design.md` | Durations, easings, reduced motion, Kilo brand flourishes. |
| `reference/interaction-design.md` | Focus, forms, overlays, destructive actions, keyboard nav. |
| `reference/responsive-design.md` | Breakpoints, input-method queries, safe areas, images. |
| `reference/ux-writing.md` | Kilo voice, labels, error copy, empty states, i18n. |

See `NOTICE.md` for Impeccable attribution and licensing.
48 changes: 24 additions & 24 deletions .agents/skills/kilo-design/reference/color-and-contrast.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,13 +51,13 @@ reserved for inline links and historical references, not action fills.

### Palette structure (how Kilo's tokens map)

| Role | Purpose | Kilo tokens |
| -------- | --------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
| Brand | Rare, load-bearing accent | `brand-primary` |
| Action | Primary CTAs in product/marketing | `primary` / `primary-foreground` |
| Neutral | Text, backgrounds, borders | `background`, `foreground`, `muted`, `accent`, `secondary`, `card`, `popover`, `border`, `input`, `ring`, `kilo-gray` |
| Semantic | Destructive, success pills | `destructive`, badge variants `beta`/`new` |
| Surface | Sidebar, charts, Kilo gray | `sidebar-*`, `chart-1`..`chart-5`, `kilo-gray` |
| Role | Purpose | Kilo tokens |
|---|---|---|
| Brand | Rare, load-bearing accent | `brand-primary` |
| Action | Primary CTAs in product/marketing | `primary` / `primary-foreground` |
| Neutral | Text, backgrounds, borders | `background`, `foreground`, `muted`, `accent`, `secondary`, `card`, `popover`, `border`, `input`, `ring`, `kilo-gray` |
| Semantic | Destructive, success pills | `destructive`, badge variants `beta`/`new` |
| Surface | Sidebar, charts, Kilo gray | `sidebar-*`, `chart-1`..`chart-5`, `kilo-gray` |

### Theming discipline

Expand Down Expand Up @@ -104,13 +104,13 @@ create a new branded surface, lean on `kilo-gray` rather than a pure gray.

A complete system needs:

| Role | Purpose | Example |
| ------------ | ----------------------------- | ------------------------- |
| **Brand** | Rare, voice-carrying accent | 1 color, 1–2 shades |
| **Action** | Primary call-to-action | 1 color, 3 states |
| **Neutral** | Text, backgrounds, borders | 9–11 shade scale |
| Role | Purpose | Example |
|---|---|---|
| **Brand** | Rare, voice-carrying accent | 1 color, 1–2 shades |
| **Action** | Primary call-to-action | 1 color, 3 states |
| **Neutral** | Text, backgrounds, borders | 9–11 shade scale |
| **Semantic** | Success, error, warning, info | 4 colors, 2–3 shades each |
| **Surface** | Cards, modals, overlays | 2–3 elevation levels |
| **Surface** | Cards, modals, overlays | 2–3 elevation levels |

Skip secondary/tertiary unless you need them. Most apps work fine with
one accent and one action color.
Expand All @@ -131,11 +131,11 @@ That shared role should still stay near 10% visual weight.

### WCAG Requirements

| Content type | AA minimum | AAA target |
| ------------------------------- | ---------- | ---------- |
| Body text | 4.5:1 | 7:1 |
| Large text (18px+ or 14px bold) | 3:1 | 4.5:1 |
| UI components, icons | 3:1 | 4.5:1 |
| Content type | AA minimum | AAA target |
|---|---|---|
| Body text | 4.5:1 | 7:1 |
| Large text (18px+ or 14px bold) | 3:1 | 4.5:1 |
| UI components, icons | 3:1 | 4.5:1 |

The gotcha: placeholder text still needs 4.5:1. Check Kilo's
`placeholder:text-muted-foreground` against `bg-input/30` on real screens
Expand Down Expand Up @@ -170,12 +170,12 @@ first and "flip" it, you'll introduce bad shadows, under-contrast accents,
and oversaturated hues. Design on the real `background` / `card` /
`muted` surfaces, not on `#fff`.

| Light mode principle | Dark mode behavior |
| -------------------- | ------------------------------------------- |
| Shadows for depth | Lighter surfaces for depth (no shadows) |
| Dark text on light | Light text on dark (reduce font weight) |
| Vibrant accents | Desaturate accents slightly |
| White backgrounds | Never pure black — dark gray (OKLCH 12–18%) |
| Light mode principle | Dark mode behavior |
|---|---|
| Shadows for depth | Lighter surfaces for depth (no shadows) |
| Dark text on light | Light text on dark (reduce font weight) |
| Vibrant accents | Desaturate accents slightly |
| White backgrounds | Never pure black — dark gray (OKLCH 12–18%) |

Depth in dark mode comes from surface lightness, not shadow. Kilo's scale
is already: `background` → `card`/`popover` → `muted`/`secondary`/`accent`.
Expand Down
20 changes: 10 additions & 10 deletions .agents/skills/kilo-design/reference/interaction-design.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,16 +60,16 @@ any interactive control from scratch, check these locations first:

Every interactive element needs these states designed:

| State | When | Visual treatment |
| ------------ | ----------------------------- | --------------------------- |
| **Default** | At rest | Base styling |
| **Hover** | Pointer over (not touch) | Subtle lift, color shift |
| **Focus** | Keyboard / programmatic focus | Visible ring (see below) |
| **Active** | Being pressed | Pressed in, darker |
| **Disabled** | Not interactive | Reduced opacity, no pointer |
| **Loading** | Processing | Spinner, skeleton |
| **Error** | Invalid state | Red border, icon, message |
| **Success** | Completed | Green check, confirmation |
| State | When | Visual treatment |
|---|---|---|
| **Default** | At rest | Base styling |
| **Hover** | Pointer over (not touch) | Subtle lift, color shift |
| **Focus** | Keyboard / programmatic focus | Visible ring (see below) |
| **Active** | Being pressed | Pressed in, darker |
| **Disabled** | Not interactive | Reduced opacity, no pointer |
| **Loading** | Processing | Spinner, skeleton |
| **Error** | Invalid state | Red border, icon, message |
| **Success** | Completed | Green check, confirmation |

Common miss: designing hover without focus, or vice versa. Keyboard users
never see hover states.
Expand Down
Loading
Loading