Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Open Orbit briefing skill — selected by the Orbit pipeline when Linear is the user's only connected connector, or when the user explicitly scopes their daily digest to Linear. Pulls the past 24 hours of issue movement, status changes, assignments, and cycle progress from the user's authenticated Linear connection and renders the digest in Linear's native Inbox + cycle-progress visual language. This skill should not be triggered manually — it is invoked by Orbit's daily-digest scheduler against l
.claude/skills/nexu-io-orbit-linear/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | 24% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 24% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 24% | 0% |
| case-17 | ✗→✓ | ▲ Improved | 24% | 0% |
| case-11 | ✓→✗ | ▼ Worse | 43% | 0% |
Single-connector Orbit template scoped to Linear.
Step 1. Open and read the shipped example.html in this folder before writing any output. That file is the canonical design — your job is to reproduce it, not reinterpret it.
Step 2. Mirror the example's structure 1:1:
toggle), exactly those items
with the same row count and same expanded-by-default behavior
<script> block at the end (toggle / theme / keyboard /Linear link injection)
Step 3. You may refresh mock values (issue identifiers, titles, labels, ages, assignees) so they read as "today", but you must not add extra rail entries, extra groups, extra fields in the preview pane, or any chrome ornaments not already in example.html.
The sections below are a reference for tokens and visual language — not a license to extend the page.
This skill ships with its own complete visual language baked into example.html (Linear's signature compact UI). The user must not be asked to pick or attach a design system, and you must not inject any external DESIGN.md tokens into the output.
example.html.This is a hard constraint: the briefing must read as a real Linear page, not as the user's brand.
page bg: #f4f5f6
surface: #ffffff
ink: #1b1c1f
ink-2: #37393e
ink-3 (muted): #6c6f78
ink-4: #9ea1a9
border: rgba(0,0,0,0.06)
border-card: rgba(0,0,0,0.08)
border-strong: rgba(0,0,0,0.12)
hover row: rgba(0,0,0,0.025)
active row: rgba(0,0,0,0.05)
accent: #5e6ad2
accent-bg: rgba(94,106,210,0.06)
attention accent: #c77d1a /* "needs attention" group */
attention bg: rgba(212,148,14,0.06)
shadow-card: 0 1px 2px rgba(0,0,0,0.04), 0 0 0 1px rgba(0,0,0,0.05)Status dot palette (must use exactly these):
backlog: #9ea1a9 /* gray, hollow ring */
todo: #d4940e /* yellow, dashed ring */
progress: #2b80c5 /* blue, partial ring */
review: #8759c7 /* purple, partial ring */
done: #1a8d3a /* green, filled */
canceled: #6c6f78 /* gray with strike */Priority icon = 4 small vertical bars, height ascending. Filled bars indicate level: 0 None → 4 Urgent. Urgent uses #d4513a; High uses #c77d1a; Medium/Low use #505259.
Type stack:
'Inter', -apple-system, BlinkMacSystemFont, 'SF Pro Display', system-ui, sans-serif'Berkeley Mono', ui-monospace, 'SF Mono', 'JetBrains Mono', Menlo, monospaceLeft: breadcrumb Orbit › Daily Digest › May 6 (13px, …›… separators in ink-4). Then a thin divider, then ▼ My issues view switcher. Right: 🔍 search, + new, ▦ display options, avatar.
one line: Cycle 12 · 60% complete · 3 days left. Render as 11px caps with a tiny inline progress bar (60px wide, 4px tall, accent fill).
Sections: Inbox · My issues · Active · Backlog · All issues, then a divider, then 📋 Triage · 🚫 Canceled · ✅ Completed. Active row: accent-bg background, accent ink. Bottom: a tiny Open Orbit · auto-generated 06:42 muted line.
attention accent 11px caps;group block has attention bg very subtle background. Rows include: assigned + stale issues, high/urgent priority.
changes and completions. Each row is one tight line: [priority bars] [identifier ENG-148] [status dot] [title……………] [labels] [cycle chip] [assignee avatar] Row height ~36px. Hover = hover row color.
Title large (16px medium); ID + status pill below; description paragraphs; an Activity stream (small avatar + verbed action + timestamp); Labels chips at bottom; Cycle chip; Assignees row.
ENG-148) are mono, 12px, ink-3.Hue per label is arbitrary, choose realistic dev-team colors.
Cycle 12 with hairline border.per level.
| Don't | Do | |---|---| | Add shadows beyond the listed shadow-card token | Use only 0 1px 2px rgba(0,0,0,0.04), 0 0 0 1px rgba(0,0,0,0.05) for cards | | Use bright colors outside the status palette | Use only the documented status hues (Backlog gray / Todo yellow / Progress blue / Review purple / Done green) and the #5e6ad2 accent | | Use sans-serif typography that isn't Inter | Use 'Inter', -apple-system, BlinkMacSystemFont, 'SF Pro Display', system-ui, sans-serif | | Use airy row heights | Keep rows under 40px (target ~36px) — Linear is signature-dense | | Use lorem ipsum | Write real-shaped Linear copy: identifiers like ENG-148, DES-22, INF-9; cycle names like Cycle 12; titles like "Auth middleware refactor" | | Render avatars as squares | Always circles, 18–24px | | Ship the dark theme | Render the light theme — #f4f5f6 page, #ffffff cards | | Use placeholder team prefixes like T-1 | Use real-shaped team prefixes: ENG / DES / INF / OPS |
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 43,017 | 70,469 | +64% | 1 | 1 | 0% | 8,280 | 10,250 | +24% | 0 | 0 | — |
case-02 | fail→pass | 52,328 | 49,304 | -6% | 1 | 1 | 0% | 8,264 | 10,234 | +24% | 0 | 0 | — |
case-03 | fail→pass | 68,510 | 55,904 | -18% | 1 | 1 | 0% | 8,263 | 10,233 | +24% | 0 | 0 | — |
case-04 | fail→fail | 52,355 | 41,666 | -20% | 1 | 1 | 0% | 8,228 | 10,198 | +24% | 0 | 0 | — |
case-05 | fail→pass | 39,168 | 49,933 | +27% | 1 | 1 | 0% | 8,232 | 10,202 | +24% | 0 | 0 | — |
case-06 | fail→fail | 37,444 | 34,794 | -7% | 1 | 1 | 0% | 8,223 | 10,193 | +24% | 0 | 0 | — |
case-07 | fail→fail | 44,439 | 34,337 | -23% | 1 | 1 | 0% | 7,167 | 10,191 | +42% | 0 | 0 | — |
case-08 | fail→fail | 51,891 | 37,250 | -28% | 1 | 1 | 0% | 8,219 | 10,189 | +24% | 0 | 0 | — |
case-09 | fail→fail | 21,817 | 48,062 | +120% | 1 | 1 | 0% | 4,982 | 10,181 | +104% | 0 | 0 | — |
case-10 | fail→fail | 50,803 | 36,302 | -29% | 1 | 1 | 0% | 8,223 | 10,193 | +24% | 0 | 0 | — |
case-11 | pass→fail | 40,887 | 103,409 | +153% | 1 | 1 | 0% | 7,110 | 10,190 | +43% | 0 | 0 | — |
case-12 | fail→fail | 37,865 | 38,211 | +1% | 1 | 1 | 0% | 8,218 | 10,188 | +24% | 0 | 0 | — |
case-13 | fail→fail | 40,310 | 49,710 | +23% | 1 | 1 | 0% | 6,218 | 10,189 | +64% | 0 | 0 | — |
case-14 | fail→fail | 51,258 | 47,123 | -8% | 1 | 1 | 0% | 8,217 | 10,187 | +24% | 0 | 0 | — |
case-15 | fail→fail | 31,110 | 34,520 | +11% | 1 | 1 | 0% | 5,188 | 10,182 | +96% | 0 | 0 | — |
case-16 | fail→fail | 24,416 | 34,647 | +42% | 1 | 1 | 0% | 5,192 | 10,194 | +96% | 0 | 0 | — |
case-17 | fail→pass | 48,905 | 35,232 | -28% | 1 | 1 | 0% | 8,231 | 10,201 | +24% | 0 | 0 | — |
case-18 | fail→fail | 49,273 | 39,725 | -19% | 1 | 1 | 0% | 8,224 | 10,194 | +24% | 0 | 0 | — |
case-19 | fail→fail | 48,946 | 35,286 | -28% | 1 | 1 | 0% | 8,222 | 10,192 | +24% | 0 | 0 | — |
case-20 | pass→fail | 80,020 | 49,107 | -39% | 1 | 1 | 0% | 8,223 | 10,193 | +24% | 0 | 0 | — |
case-21 | pass→fail | 31,322 | 38,725 | +24% | 1 | 1 | 0% | 5,320 | 10,193 | +92% | 0 | 0 | — |
case-22 | pass→fail | 12,740 | 34,725 | +173% | 1 | 1 | 0% | 2,537 | 10,193 | +302% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of 0 percentage points is the difference between those two pass rates over the 22 comparable cases. 4 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.