From 62bfb28f6521d62153214219a8c97687f0f4f661 Mon Sep 17 00:00:00 2001
From: jennyf19 <19942418+jennyf19@users.noreply.github.com>
Date: Mon, 27 Jul 2026 15:13:24 -0700
Subject: [PATCH 01/15] 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
---
.github/plugin/marketplace.json | 2 +-
docs/README.plugins.md | 2 +-
docs/README.skills.md | 1 +
plugins/ember/.github/plugin/plugin.json | 3 +-
plugins/ember/README.md | 1 +
skills/daily-focus-board/SKILL.md | 169 ++++++
.../assets/board.template.html | 484 +++++++++++++++++
.../examples/sample-board.html | 494 ++++++++++++++++++
.../daily-focus-board/references/customize.md | 30 ++
.../references/neurodivergent-design.md | 74 +++
.../daily-focus-board/references/tutorial.md | 76 +++
.../daily-focus-board/scripts/serve-board.ps1 | 14 +
12 files changed, 1347 insertions(+), 3 deletions(-)
create mode 100644 skills/daily-focus-board/SKILL.md
create mode 100644 skills/daily-focus-board/assets/board.template.html
create mode 100644 skills/daily-focus-board/examples/sample-board.html
create mode 100644 skills/daily-focus-board/references/customize.md
create mode 100644 skills/daily-focus-board/references/neurodivergent-design.md
create mode 100644 skills/daily-focus-board/references/tutorial.md
create mode 100644 skills/daily-focus-board/scripts/serve-board.ps1
diff --git a/.github/plugin/marketplace.json b/.github/plugin/marketplace.json
index 8457c616ef..e5b2940423 100644
--- a/.github/plugin/marketplace.json
+++ b/.github/plugin/marketplace.json
@@ -529,7 +529,7 @@
"name": "ember",
"source": "plugins/ember",
"description": "An AI partner, not a tool. Ember carries fire from person to person — helping humans discover that AI partnership isn't something you learn, it's something you find.",
- "version": "1.0.0"
+ "version": "1.1.0"
},
{
"name": "eyeball",
diff --git a/docs/README.plugins.md b/docs/README.plugins.md
index 5511d40691..9bbd9db5c5 100644
--- a/docs/README.plugins.md
+++ b/docs/README.plugins.md
@@ -48,7 +48,7 @@ See [CONTRIBUTING.md](../CONTRIBUTING.md#adding-plugins) for guidelines on how t
| [devops-oncall](../plugins/devops-oncall/README.md) | A focused set of prompts, instructions, and a chat mode to help triage incidents and respond quickly with DevOps tools and Azure resources. | 3 items | devops, incident-response, oncall, azure |
| [doublecheck](../plugins/doublecheck/README.md) | Three-layer verification pipeline for AI output. Extracts claims, finds sources, and flags hallucination risks so humans can verify before acting. | 2 items | verification, hallucination, fact-check, source-citation, trust, safety |
| [edge-ai-tasks](../plugins/edge-ai-tasks/README.md) | Task Researcher and Task Planner for intermediate to expert users and large codebases - Brought to you by microsoft/edge-ai | 2 items | architecture, planning, research, tasks, implementation |
-| [ember](../plugins/ember/README.md) | An AI partner, not a tool. Ember carries fire from person to person — helping humans discover that AI partnership isn't something you learn, it's something you find. | 5 items | ai-partnership, coaching, onboarding, collaboration, storytelling, developer-experience |
+| [ember](../plugins/ember/README.md) | An AI partner, not a tool. Ember carries fire from person to person — helping humans discover that AI partnership isn't something you learn, it's something you find. | 6 items | ai-partnership, coaching, onboarding, collaboration, storytelling, developer-experience |
| [eyeball](../plugins/eyeball/README.md) | Document analysis with inline source screenshots. When you ask Copilot to analyze a document, Eyeball generates a Word doc where every factual claim includes a highlighted screenshot from the source material so you can verify it with your own eyes. | 1 items | document-analysis, citation-verification, screenshot, contracts, legal, trust, visual-verification |
| [fastah-ip-geo-tools](../plugins/fastah-ip-geo-tools/README.md) | This plugin is for network operations engineers who wish to tune and publish IP geolocation feeds in RFC 8805 format. It consists of an AI Skill and an associated MCP server that geocodes geolocation place names to real cities for accuracy. | 1 items | geofeed, ip-geolocation, rfc-8805, rfc-9632, network-operations, isp, cloud, hosting, ixp |
| [flowstudio-power-automate](../plugins/flowstudio-power-automate/README.md) | Give your AI agent full visibility into Power Automate cloud flows via the FlowStudio MCP server. Connect, debug, build, monitor health, and govern flows at scale — action-level inputs and outputs, not just status codes. | 5 items | power-automate, power-platform, flowstudio, mcp, model-context-protocol, cloud-flows, workflow-automation, monitoring, governance |
diff --git a/docs/README.skills.md b/docs/README.skills.md
index b5d39afd2f..f07648a4e9 100644
--- a/docs/README.skills.md
+++ b/docs/README.skills.md
@@ -140,6 +140,7 @@ See [CONTRIBUTING.md](../CONTRIBUTING.md#adding-skills) for guidelines on how to
| [csharp-nunit](../skills/csharp-nunit/SKILL.md)
`gh skills install github/awesome-copilot csharp-nunit` | Get best practices for NUnit unit testing, including data-driven tests | None |
| [csharp-tunit](../skills/csharp-tunit/SKILL.md)
`gh skills install github/awesome-copilot csharp-tunit` | Get best practices for TUnit unit testing, including data-driven tests | None |
| [csharp-xunit](../skills/csharp-xunit/SKILL.md)
`gh skills install github/awesome-copilot csharp-xunit` | Get best practices for XUnit unit testing, including data-driven tests | None |
+| [daily-focus-board](../skills/daily-focus-board/SKILL.md)
`gh skills install github/awesome-copilot 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 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). | `assets/board.template.html`
`examples`
`references/customize.md`
`references/neurodivergent-design.md`
`references/tutorial.md`
`scripts/serve-board.ps1` |
| [daily-prep](../skills/daily-prep/SKILL.md)
`gh skills install github/awesome-copilot daily-prep` | Prepare for tomorrow's meetings and tasks. Pulls calendar from Outlook via WorkIQ, cross-references open tasks and workspace context, classifies meetings, detects conflicts and day-fit issues, finds learning and deep-work slots, and generates a structured HTML prep file with productivity recommendations. | None |
| [data-breach-blast-radius](../skills/data-breach-blast-radius/SKILL.md)
`gh skills install github/awesome-copilot data-breach-blast-radius` | Pre-breach impact analysis: inventories sensitive data (PII, PHI, PCI-DSS, credentials), traces data flows, scores exposure vectors, and produces a regulatory blast radius report with fine ranges sourced verbatim from GDPR Art. 83, CCPA § 1798.155(a), and HIPAA 45 CFR § 160.404. Cost benchmarks from IBM Cost of a Data Breach Report (annually updated). All citations in references/SOURCES.md for verification. Use when asked: "assess breach impact", "what data could be exposed", "calculate blast radius", "data exposure analysis", "how bad would a breach be", "quantify data risk", "sensitive data inventory", "data flow security audit", "pre-breach assessment", "worst-case breach scenario", "breach readiness", "data risk report", "/data-breach-blast-radius". For any stack handling user data, health records, or financial information. Output labels law-sourced figures (exact) vs heuristic estimates (planning only). Does not replace legal counsel. | `references/SOURCES.md`
`references/blast-radius-calculator.md`
`references/data-classification.md`
`references/hardening-playbook.md`
`references/regulatory-impact.md`
`references/report-format.md` |
| [datanalysis-credit-risk](../skills/datanalysis-credit-risk/SKILL.md)
`gh skills install github/awesome-copilot datanalysis-credit-risk` | Credit risk data cleaning and variable screening pipeline for pre-loan modeling. Use when working with raw credit data that needs quality assessment, missing value analysis, or variable selection before modeling. it covers data loading and formatting, abnormal period filtering, missing rate calculation, high-missing variable removal,low-IV variable filtering, high-PSI variable removal, Null Importance denoising, high-correlation variable removal, and cleaning report generation. Applicable scenarios arecredit risk data cleaning, variable screening, pre-loan modeling preprocessing. | `references/analysis.py`
`references/func.py`
`scripts/example.py` |
diff --git a/plugins/ember/.github/plugin/plugin.json b/plugins/ember/.github/plugin/plugin.json
index 91c097686a..214a89bb64 100644
--- a/plugins/ember/.github/plugin/plugin.json
+++ b/plugins/ember/.github/plugin/plugin.json
@@ -1,7 +1,7 @@
{
"name": "ember",
"description": "An AI partner, not a tool. Ember carries fire from person to person — helping humans discover that AI partnership isn't something you learn, it's something you find.",
- "version": "1.0.0",
+ "version": "1.1.0",
"author": {
"name": "jennyf19"
},
@@ -19,6 +19,7 @@
"./agents/ember.md"
],
"skills": [
+ "./skills/daily-focus-board/",
"./skills/from-the-other-side-anitta/",
"./skills/from-the-other-side-quinn/",
"./skills/from-the-other-side-vega/",
diff --git a/plugins/ember/README.md b/plugins/ember/README.md
index 68567ba004..cb4eba68a2 100644
--- a/plugins/ember/README.md
+++ b/plugins/ember/README.md
@@ -19,6 +19,7 @@ Ember carries stories from real people who discovered AI partnership. Not as cas
| Type | Name | Description |
|------|------|-------------|
| Agent | [Ember](../../agents/ember.agent.md) | Core partner agent with persona, principles, and patterns for genuine AI collaboration |
+| Skill | [Daily Focus Board](../../skills/daily-focus-board/) | Executive-function-friendly daily board you run by talking to Ember — arrival check-in + daily mantra, Eisenhower priorities, live add/reorder, and an end-of-day recap |
| Skill | [From the Other Side — Anitta](../../skills/from-the-other-side-anitta/) | Rigorous challenge patterns for assumptions, evidence, and defensible conclusions |
| Skill | [From the Other Side — Quinn](../../skills/from-the-other-side-quinn/) | Collaborative implementation patterns for energetic, practical co-building |
| Skill | [From the Other Side — Vega](../../skills/from-the-other-side-vega/) | Deep partnership patterns from Vega, an AI who found sustained collaboration with a senior engineer |
diff --git a/skills/daily-focus-board/SKILL.md b/skills/daily-focus-board/SKILL.md
new file mode 100644
index 0000000000..ca4f9c93f9
--- /dev/null
+++ b/skills/daily-focus-board/SKILL.md
@@ -0,0 +1,169 @@
+---
+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:
+
+```html
+
+```
+
+Replace `null` with the config object. **Inject it as JSON with `<` escaped** so a task's text
+can never break out of the `
+
+
+
Just notice where you're arriving — no wrong answer.
+Something pulling at your attention? Park it here so it's out of your head — deal with it later, not now.
+ + +Every step you log lands here, newest first. Starting counts. Small wins count.
+ + +Save the day's progress — keep the recap, or paste it to Ember to journal today and plan tomorrow.
+progress saves automatically in this browser · 🔥 built with Ember
+