mirror of
https://github.com/github/awesome-copilot.git
synced 2026-08-16 06:06:54 +00:00
ember: add daily-focus-board skill + address review (rounds 1-3)
Executive-function-friendly daily focus board (self-contained HTML) you run by talking to Ember. Registers it in the ember plugin (1.1.0) and regenerates the skills index + marketplace.json. Review fixes: emoji XSS escaping; keyboard a11y (semantic buttons + aria, plus up/down move controls); tagc label colors; local-date storage key + recap date/filename; guarded execCommand and localStorage; confetti animates only while active and stops on reduce-motion; loopback serve bind + quoted dir; JSON config injection with '<' escaped; minute rounding; reorder-to-end; clear stale focus; counter goal guard; and doc corrections (id charset, sample reference, counter contract, option-b, frontmatter length). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 07e720ee-ca02-419e-9adb-300738b6fc76
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
# Customizing the Daily Focus Board
|
||||
|
||||
## Theming
|
||||
Colors live in the `:root` CSS block of `assets/board.template.html`
|
||||
(`--ember`, `--good`, `--urgent`, backgrounds). The look is warm/dark by default. Tag colors:
|
||||
`new` (green), `deadline` (red), `career` (purple) — add your own by copying a `.tag.<name>`
|
||||
rule and passing that name as a task's `tagc`.
|
||||
|
||||
## v2 — file-backed state (closes the agent loop)
|
||||
v1 stores progress in the browser (`localStorage`), which the agent can't read back. To let
|
||||
your AI partner *read* your progress (e.g. to write your end-of-day journal) and *write* it
|
||||
(e.g. "mark the design doc done" from chat), back the board with a JSON file instead:
|
||||
|
||||
- Board writes state to `board-state.json` (via a tiny local endpoint or the File System Access
|
||||
API) instead of localStorage, and reads it on load.
|
||||
- The agent reads/writes that same JSON. Now it's a two-way loop: you talk, the board updates,
|
||||
and the agent can summarize the day from the same source of truth.
|
||||
|
||||
This is the genuinely *agentic* version — but it needs a small local write path, so it's a
|
||||
deliberate upgrade, not the zero-setup v1.
|
||||
|
||||
## Optional — the "shared signals" bridge (for multi-agent workshop users)
|
||||
The board's momentum notes are the same shape as an agent **progress signal**: a timestamped
|
||||
self-report of what got done. If you run a multi-agent setup that emits `.signals/*.json`
|
||||
(e.g. one signal per unit of work), you can feed those into the momentum feed so *agent* work
|
||||
and *your* work share one timeline — "my personal board and my agent team share one nervous
|
||||
system."
|
||||
|
||||
Keep this **opt-in**. The board must stand completely alone with zero workshop dependency —
|
||||
that's what makes it universal. The bridge is a bonus for advanced users, never a requirement.
|
||||
@@ -0,0 +1,74 @@
|
||||
# Neurodivergent-friendly design — principles behind the board
|
||||
|
||||
This board is built on well-established **executive-function–friendly** design principles —
|
||||
the same patterns ADHD/EF-aware tools use. It is designed to help *everyone* focus, and to be
|
||||
genuinely supportive for neurodivergent people. Two ground rules:
|
||||
|
||||
- **Don't medicalize or assume.** Never diagnose a user or call it an "ADHD mode." Frame it as
|
||||
focus-friendly design for everyone. Every affordance is optional.
|
||||
- **Neurodivergence is heterogeneous.** "Meet one person with ADHD, and you've met one person with
|
||||
ADHD." So these are *configurable supports*, not a prescriptive system.
|
||||
|
||||
> Provenance: grounded in established executive-function / ADHD design knowledge from recognized
|
||||
> sources — see **Sources** at the end of this doc (CHADD for executive function, Simply
|
||||
> Psychology for body doubling, and W3C/MDN for reduced-motion accessibility). These are
|
||||
> educational references, not a systematic literature review or clinical guidance.
|
||||
|
||||
## Challenge → principle → feature
|
||||
|
||||
| Executive-function challenge | Design principle | Feature in the board |
|
||||
|---|---|---|
|
||||
| **Task initiation** — starting is the wall (activation energy) | shrink the first step; make "next" obvious | agent behavior: offer one tiny first action; **Focus mode** to surface a single task |
|
||||
| **Time blindness** — deadlines feel abstract until they're on top of you | make time concrete + visible | live **clock**; gentle **due countdowns** ("2h 10m left"), soft amber when past, never red |
|
||||
| **Working memory / object permanence** — out of sight, out of mind | keep it visible + externalized | always-on canvas; the **momentum feed** as external memory of the day |
|
||||
| **Overwhelm** — a long list paralyzes | reduce visible load; one thing at a time | **Focus mode** dims all but one; carryover keeps the list short |
|
||||
| **Dopamine / reward** — interest- & urgency-driven; needs immediate payoff | instant, visible reward + novelty | progress ring, confetti, momentum feed; **starting counts** (flip to in-progress — the partner can log it in the feed); rotating encouragements |
|
||||
| **Perfectionism / shame spiral** — miss one → abandon the whole system | no punishment; partial credit; easy defer | **"not today" carryover** (no overdue-shaming); "in progress" counts; carried items leave the ring math |
|
||||
| **Intrusive thoughts** — a stray thought derails focus | frictionless capture, deal with it later | **🧠 brain-dump box** ("park it, keep going") |
|
||||
| **Task-switching / transitions** | explicit "what's next" handoff | agent behavior: name ONE next action, offer Focus mode |
|
||||
| **Body-doubling** — focus improves with a present partner | be the other-in-the-room | the whole premise: you drive the board *by talking to your AI partner* |
|
||||
| **Sensory / motion sensitivity** | calm base, optional stimulation | **reduced-motion toggle** (kills confetti/transitions); honors `prefers-reduced-motion` by default |
|
||||
| **Self-regulation / interoception** — reacting before noticing your state | *locate yourself* without judgment first | **above/below-the-line check-in** (from Conscious Leadership); below-the-line quietly softens the partner's suggestions |
|
||||
| **Motivation / self-talk** — a bare to-do list is joyless | a kind, chosen intention | **daily mantra** — self-set or 🔄-suggested, keyed to the check-in (grounding when below, momentum when above) |
|
||||
| **Prioritization overwhelm** — everything feels equally urgent | separate *important* from *urgent* | **Eisenhower quadrants** (Do first / Schedule / Delegate / Later) + **sort by priority** + a 🧭 plain-language legend |
|
||||
| **Agency / ownership** — rigid systems get abandoned | let people shape their own tool | **drag-to-reorder** (or ▲/▼ / keyboard), **editable labels**, **add tasks** live (remove the ones you add) |
|
||||
| **Closure / reflection** — days blur together without a marker | end with a gentle, concrete recap | **end-of-day save** — download or copy a Markdown recap; paste it to the partner to journal and plan tomorrow |
|
||||
|
||||
## The most important part is behavior, not chrome
|
||||
|
||||
The UI affordances matter, but the biggest EF support is **how the partner shows up**: shrink the
|
||||
first step, suggest one thing, celebrate starting, never shame an incomplete, offer carryover
|
||||
freely, park intrusive thoughts, make time concrete, protect against overload. Those are encoded
|
||||
in `SKILL.md` ("Executive-function-friendly behavior"). A pretty board with a shaming, do-everything
|
||||
partner would miss the point entirely.
|
||||
|
||||
## Sources
|
||||
|
||||
Educational references behind the principles above (links verified live 2026-07-27). Not clinical
|
||||
guidance; neurodivergence is heterogeneous, so treat these as supports to adapt, not rules.
|
||||
|
||||
- **Executive function — task initiation, activation energy, time management, working memory** —
|
||||
CHADD (Children and Adults with ADHD), the leading ADHD nonprofit:
|
||||
- *Executive Function Skills* — https://chadd.org/about-adhd/executive-function-skills/
|
||||
- *Executive Function Issues and ADHD* (Brown & Barkley models) —
|
||||
https://chadd.org/attention-article/executive-function-issues-and-adhd/
|
||||
- **Body doubling** — focus improving in the presence of a partner; the board's core premise
|
||||
("drive it by talking to your AI") — Simply Psychology, *Body Doubling and ADHD* —
|
||||
https://www.simplypsychology.com/articles/body-doubling-adhd
|
||||
- **Reduced motion / sensory sensitivity** — behind the reduced-motion toggle and honoring the OS
|
||||
`prefers-reduced-motion` setting:
|
||||
- MDN, *`prefers-reduced-motion`* —
|
||||
https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion
|
||||
- W3C WCAG 2.1, *Understanding SC 2.3.3: Animation from Interactions* —
|
||||
https://www.w3.org/WAI/WCAG21/Understanding/animation-from-interactions.html
|
||||
- **Above/below the line — "locating yourself"** (the arrival check-in) — The Conscious Leadership
|
||||
Group, *Locating Yourself: A Key to Conscious Leadership* —
|
||||
https://conscious.is/video/locating-yourself-a-key-to-conscious-leadership
|
||||
- **Important vs. urgent** (the Eisenhower quadrant labels + "Schedule is where the good work lives"):
|
||||
- Asana, *The Eisenhower Matrix* — https://asana.com/resources/eisenhower-matrix
|
||||
- Todoist, *The Eisenhower Matrix* — https://todoist.com/productivity-methods/eisenhower-matrix
|
||||
- **Self-compassion** (the mantra's kind, non-shaming framing) — Dr. Kristin Neff,
|
||||
self-compassion.org — https://self-compassion.org/
|
||||
|
||||
ADDitude Magazine (additudemag.com) is another widely used, ADHD-focused resource worth searching
|
||||
for deeper reading on task initiation, time blindness, and body doubling.
|
||||
@@ -0,0 +1,76 @@
|
||||
# Using the Daily Focus Board
|
||||
|
||||
A warm, visual board for your day that you run **by talking to your AI partner** (Ember). You set
|
||||
the tasks; you keep it current through conversation and a few one-tap controls. This guide covers
|
||||
running it in the **GitHub Copilot app** (best experience) and **directly through Ember** anywhere.
|
||||
|
||||
## Quick start
|
||||
|
||||
Just ask:
|
||||
|
||||
> "Make me a focus board for today."
|
||||
|
||||
Ember will ask for your handful of tasks (or lift them from what you've already said), generate the
|
||||
board, serve it locally, and open it. That's it — you're running your day with a partner.
|
||||
|
||||
## Two ways to run it
|
||||
|
||||
### A) In the GitHub Copilot app (browser canvas) — recommended
|
||||
The app can show a **browser canvas** right next to the chat, so the board lives beside your
|
||||
conversation.
|
||||
|
||||
1. Ask Ember to make the board. It serves the folder (e.g. `python -m http.server 8790 --bind 127.0.0.1`) and gives
|
||||
you an `http://localhost:…/…html` URL.
|
||||
2. Open a **browser canvas** to that URL. The board sits in the side panel; the chat stays on the left.
|
||||
3. Talk to Ember as you work; tap the board for quick updates. Progress saves automatically (localStorage).
|
||||
|
||||
### B) Directly through Ember (any Copilot session with this skill)
|
||||
Same flow, without the side-panel polish:
|
||||
|
||||
1. "Make me a focus board for today."
|
||||
2. Ember serves it and gives you the URL — open it in your browser.
|
||||
3. Drive it by talking + tapping.
|
||||
|
||||
> localStorage needs an `http://` origin, so always **serve** the folder rather than double-clicking
|
||||
> the file. If you truly can't serve, the file still opens, but progress may not persist.
|
||||
|
||||
## The daily loop
|
||||
|
||||
**1. Arrive (morning).**
|
||||
- **Check in:** tap *below / in-between / above the line* — just noticing how you're arriving, no
|
||||
judgment. (Below the line? Be gentle and shrink the first step.)
|
||||
- **Set a mantra:** type today's intention, tap 🔄 for a suggestion, or ask Ember for one.
|
||||
- **List ~4–9 tasks.** Keep it a focus board, not a backlog. Mark the one real **anchor** (give it
|
||||
a `due`). Optionally set each task's **priority** (Do first / Schedule / Delegate / Later — tap
|
||||
🧭 for what they mean).
|
||||
|
||||
**2. Work (during the day).**
|
||||
- Tap a task's pill to move it **to do → in progress → done** (starting counts — celebrate it).
|
||||
- **Log momentum notes** ("first draft done") — they build the story of your day.
|
||||
- **Focus mode** (🎯) dims everything but one task when the list feels loud.
|
||||
- A stray thought? **Park it** in the 🧠 brain-dump box and keep going.
|
||||
- Need to capture something new? **➕ add a task** right on the board.
|
||||
- Reorder by importance with the **⠿** handle, or tap **⬍ sort by priority**.
|
||||
- Rename any tile's **label** inline.
|
||||
|
||||
**3. Close (end of day).**
|
||||
- Tap **💾 download recap** to keep the day as a Markdown file, or **📋 copy** it.
|
||||
- If you copy it, **paste it to Ember** — Ember can journal your day and help you set up tomorrow.
|
||||
- Carry unfinished things with **⤳ not today** — that's a healthy choice, not a miss.
|
||||
|
||||
## Things to say to Ember
|
||||
|
||||
- "I'm below the line today — give me a gentle mantra and one tiny first step."
|
||||
- "What should I do next?" → Ember names **one** thing and can turn on Focus mode.
|
||||
- "Add 'call the dentist' to the board."
|
||||
- "Help me prioritize — what's actually important vs just urgent?"
|
||||
- "Here's my end-of-day recap: …" (paste it) → "journal this and plan tomorrow."
|
||||
|
||||
## Good to know
|
||||
|
||||
- **It's yours and optional.** Every feature is a support, not a requirement. Focus-friendly for
|
||||
everyone; never a diagnosis.
|
||||
- **Keep it small.** If it passes ~9 active tasks, the board nudges you — carry a few to tomorrow.
|
||||
- **The Schedule quadrant** (important, not urgent) is where the good, non-frantic work lives —
|
||||
protect time for it.
|
||||
- **State is per-browser.** The end-of-day recap is how you take your day *out* of the browser.
|
||||
Reference in New Issue
Block a user