Skip to content
AI & Agents
Skill

/daily-focus-board

Spin up a personal, motivating daily focus board that renders in a browser canvas and that the user drives by talking to their AI partner. Tasks track status (to-do → in progress → done) with timestamped progress notes and roll up into a "today''s momentum" feed; numeric-goal

From plugin
awesome-copilot
39k200 skills200 agents
Install
$ npx -y skills add github/awesome-copilot --skill daily-focus-board --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/daily-focus-board

Context preview

The summary Claude sees to decide when to auto-load this skill.

Spin up a personal, motivating daily focus board that renders in a browser canvas and that the user drives by talking to their AI partner. Tasks track status (to-do → in progress → done) with timestamped progress notes and roll up into a "today''s momentum" feed; numeric-goal

SKILL.md

daily-focus-board.SKILL.md
name: daily-focus-board
description: 'Spin up a personal, motivating daily focus board that renders in a browser canvas and that the user drives by talking to their AI partner. Tasks track status (to-do → in progress → done) with timestamped progress notes and roll up into a "today''s momentum" feed; numeric-goal tasks (pages, pomodoros, reps) render as progress-bar counters. Executive-function / neurodivergent-friendly by design: Focus mode, kind "not today" carryover (no overdue-shaming), a brain-dump box, reduced-motion, and gentle deadline countdowns. Add, reorder, and relabel tasks live, assign Eisenhower priority (Do first / Schedule / Delegate / Later), open with an above/below-the-line check-in and a daily mantra, and save an end-of-day recap. Use when someone wants to plan their day, stay focused, kick off a work session, or track progress. Progress persists in the browser (localStorage).'

Daily Focus Board

A warm, visual "let's go" board for a person's day — rendered from a self-contained HTML template, opened in a browser (ideally a side-panel **canvas** in the GitHub Copilot app), and kept current *by conversation*: the human tells you what they finished, you update the board.

This is Ember partnership in daily practice: not a static to-do list, a thing you run *with* your AI. Keep it light, encouraging, and honest — celebrate real progress, don't inflate it.

When to use it

Trigger when the user wants to: plan today, "get organized / stay focused," start a work session, or track progress on a set of tasks they list. If they just mention a pile of things to do, offer the board.

How to build it (3 steps)

**1. Gather the tasks.** Ask for (or lift from what they already said) their handful of tasks for the day. For each, capture: a short title, an optional emoji, an optional one-line sub-note, and an optional tag. If a task is a *count toward a number* (steps, pages, pomodoros, reps), make it a **counter** with a numeric `goal`. Keep it to ~4–9 items — a focus board, not a backlog.

**2. Generate the board.** Copy `assets/board.template.html` to a working file (e.g. `focus-board.html` in a scratch/working dir — NOT into a source repo unless asked). In the copy, find this line near the top:

<script>window.__BOARD__ = null; /* SKILL: replace null with the config object above */</script>

Replace `null` with the config object. **Inject it as JSON with `<` escaped** so a task's text can never break out of the `<script>` — e.g. `JSON.stringify(config).replace(/</g, "\\u003c")` — never hand-concatenate raw user-provided text. Schema:

{
  name: "Alex",              // optional — shows "Let's go, Alex 🔥"; omit for "Let's go 🔥"
  dateKey: "2026-07-27",     // optional — localStorage key; defaults to today (YYYY-MM-DD)
  mantra: "Small, real, done.", // optional — today's intention (editable on the board)
  checkin: "above",          // optional — arrival check-in: "below" | "mid" | "above"
  tasks: [
    // counter task (numeric goal → progress bar + set/+ buttons):
    { id:"pages", emoji:"📖", title:"Read 30 pages",
      goal:30, start:0, inc:5, unit:"pages", tag:"mind", tagc:"new", quad:"ins" },
    // status task (to-do → in progress → done + progress notes):
    { id:"doc", emoji:"⚙️", title:"Finish the design doc", sub:"the anchor",
      due:"2026-07-27T17:00", tag:"deadline", tagc:"deadline", quad:"iu" },
    { id:"move", emoji:"🌿", title:"Move a little — whatever fits your body", tag:"body" }
  ]
}
  • `id` must be unique and stable, using only letters, digits, hyphens, or underscores

(`[A-Za-z0-9_-]`) — it's embedded in HTML attributes, CSS selectors, storage keys, and colon-delimited note keys, so avoid quotes, colons, brackets, and spaces. `tagc` is an optional color class: `new` (green), `deadline` (red/pink), `career` (purple); omit for the default grey.

  • Counter tasks: `goal` (a **positive integer**), `start` (default 0), `inc` (default

`max(1, round(goal/10))`), `unit` (label). Everything else is a status task. Carryover ("not today") is for status tasks — counters are progress you dial down, not defer.

  • `due` (optional, ISO local datetime) shows a **gentle** live countdown on the card, and after

the time passes says "was due 5:00pm — still worth doing" in soft amber (never angry red). Use it for the one real anchor, not everything.

  • `quad` (optional) sets a task's Eisenhower priority: `iu` (important & urgent → *Do first*),

`ins` (important, not urgent → *Schedule*), `niu` (urgent, not important → *Delegate*), `ninu` (neither → *Later*). Renders as a colored accent; the person can change it on the board.

  • `mantra` / `checkin` (both optional, top-level) seed today's intention and the above/below-the-line

arrival check-in. Set these from the conversation, or leave them for the person to set/tap.

  • **Built-in, no config needed:** the "how are you arriving?" check-in + daily mantra (with 🔄

suggestions), ➕ **add-a-task** live, **drag-to-reorder** (⠿ handle) + **sort by priority**, a 🧭 priority guide, **editable labels** per tile, a gentle **overload nudge**, an **end-of-day save** (download/copy a recap), Focus mode, "not today" carryover, the 🧠 brain-dump box, the reduced-motion toggle, and the live clock. Just set good tasks; the rest comes for free.

**3. Serve + open it.** localStorage needs an `http://` origin, so serve the folder rather than opening the file path directly:

  • Serve (loopback only): `python -m http.server 8799 --bind 127.0.0.1` from the board's folder

(or `scripts/serve-board.ps1`). Binding to `127.0.0.1` keeps a board of personal tasks off the local network. If Python isn't available, any static file server works — you just need an `http://` origin.

  • Open: prefer a **browser canvas** side-panel if the host supports one (best experience —

it sits next to the chat). Otherwise open `http://localhost:8799/focus-board.html` in the default browser.

  • If you truly ca
Read more
Ships withawesome-copilot

A community-created collection of custom agents, instructions, skills, hooks, workflows, and plugins to supercharge your GitHub Copilot experience.

Get the whole plugin

Other skills on awesome-copilot.