Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
138 commits
Select commit Hold shift + click to select a range
1f2ce58
Create agent-platform-advisor.puml
RobStand Mar 12, 2026
2f5c644
Add APA v2 design spec
RobStand Mar 17, 2026
91e905a
Add APA v2 implementation plan
RobStand Mar 17, 2026
dc5458f
feat: apa-v2 skeleton with YAML loader and section framework
RobStand Mar 17, 2026
9c28a7c
feat: apa-v2 progress bar
RobStand Mar 17, 2026
805d6d3
fix: apa-v2 null guard in updateProgressBar, document CSS override
RobStand Mar 17, 2026
60f8a3f
feat: apa-v2 welcome and pre-screen screens
RobStand Mar 17, 2026
3f0d7a9
fix: move currentQuestionIndex to state block
RobStand Mar 17, 2026
484b157
feat: apa-v2 assessment question renderer with early exit
RobStand Mar 17, 2026
71ac873
feat: apa-v2 scoring engine with hard rules and tiebreaker
RobStand Mar 17, 2026
ec493ff
feat: apa-v2 key factors generator
RobStand Mar 18, 2026
16546db
fix: key factors — remove positive hard-rule branch and score thresho…
RobStand Mar 18, 2026
0084582
fix: key factors — label fallback, fix comment, skip zero-score answers
RobStand Mar 18, 2026
5c35792
feat: apa-v2 recommendation screen with scoring and key factors
RobStand Mar 18, 2026
f6ded13
fix: rec screen — null guards for rec data and ranked platforms, remo…
RobStand Mar 18, 2026
ebe3004
feat: apa-v2 complete — YAML-driven assessment with scoring and recom…
RobStand Mar 18, 2026
033a47d
fix: og:locale meta tag had duplicate name attribute
RobStand Mar 18, 2026
782c5f2
fix: prevent duplicate event listeners when user retries after YAML l…
RobStand Mar 18, 2026
74256b0
refactor: extract inline CSS and JS to assets/apa.css and assets/apa.js
RobStand Mar 18, 2026
5246043
First pass at APA v2
RobStand Mar 18, 2026
f962187
Design review output
RobStand Mar 20, 2026
8677ede
style(design): FINDING-001/002/003/004/005/006 — fix CSS variable sys…
RobStand Mar 20, 2026
e832452
style(design): FINDING-007 — replace robot emoji with Fluent sparkle SVG
RobStand Mar 20, 2026
9f11205
fix: exclude M365 Copilot from custom agent path recommendations
RobStand Mar 20, 2026
43588b5
Added in structure
RobStand Mar 24, 2026
a059003
Added implementation section
RobStand Mar 24, 2026
982a621
style(design): FINDING-001 — fix .center to use flexbox so gap spacin…
RobStand Mar 24, 2026
c81618b
style(design): FINDING-002 — add flex-wrap to progress bar to prevent…
RobStand Mar 24, 2026
7d42427
style(design): FINDING-003 — remove disc list-style from checklist to…
RobStand Mar 24, 2026
213909c
style(design): FINDING-004 — reduce structure/implementation section …
RobStand Mar 24, 2026
2d9a55d
style(design): FINDING-005 — add focus-visible ring to buttons and op…
RobStand Mar 24, 2026
178c8b1
style(design): FINDING-006 — shorten textarea placeholder text
RobStand Mar 24, 2026
106b8bc
docs: add CHANGELOG.md for agent-platform-advisor
RobStand Mar 24, 2026
42904cd
feat: add 1st party Copilot agents list to M365 Copilot recommendatio…
RobStand Mar 24, 2026
06e6a27
feat: add Microsoft docs links to 1st party Copilot agents
RobStand Mar 24, 2026
fb449e4
feat: add Agent Builder template list with MS docs links to recommend…
RobStand Mar 24, 2026
87ca86d
fix: move Watch Out For before agent/template lists in recommendation…
RobStand Mar 24, 2026
dd99121
fix: rename 'Watch out for' to 'Important Considerations'
RobStand Mar 24, 2026
5aee2c9
feat: add platform grid with icons and descriptions to welcome screen
RobStand Mar 24, 2026
6241e8a
fix: improve Microsoft Foundry description on welcome screen
RobStand Mar 24, 2026
d260041
feat: add 6 more 1st party agents to M365 Copilot recommendation (Res…
RobStand Mar 24, 2026
45d464c
feat: remove compliance question (q6), update question count to 7 and…
RobStand Mar 24, 2026
0e49887
feat: remove agent structure planning and implementation guide
RobStand Mar 24, 2026
7a6a7fc
content(questions): add user-facing context to all question prompts a…
RobStand Mar 24, 2026
f0c7487
fix: render question label as title and prompt as subtitle
RobStand Mar 24, 2026
ed8cf5a
feat: remove question 7 (platform ecosystem) and tiebreaker logic
RobStand Mar 24, 2026
27046ba
style: add custom radio indicator to option cards for single-select c…
RobStand Mar 24, 2026
df79c4a
Streamlined things
RobStand Mar 24, 2026
1bba50f
Updated Agent Resources
RobStand Mar 25, 2026
9988736
Updated text
RobStand Mar 26, 2026
421ee5b
style(design): FINDING-001 — add line-height: 1.5 to body
RobStand Mar 26, 2026
271f79d
style(design): FINDING-002 — use Geist Mono for question counter
RobStand Mar 26, 2026
e1037f1
style(design): FINDING-003 — replace transition: all with explicit pr…
RobStand Mar 26, 2026
d7c7e34
style(design): FINDING-004 — respect prefers-reduced-motion
RobStand Mar 26, 2026
ef5407f
style(design): FINDING-005 — replace opacity on secondary rec-card
RobStand Mar 26, 2026
5aabe50
style: replace em-dashes with hyphens in user-facing text
RobStand Mar 26, 2026
8aa55e8
Revert "style: replace em-dashes with hyphens in user-facing text"
RobStand Mar 26, 2026
e718b1e
fix(qa): ISSUE-002 — hide secondary recommendation when platform is '…
RobStand Mar 26, 2026
3ce27ae
fix(qa): ISSUE-001 — preserve answers when returning through prescreen
RobStand Mar 26, 2026
5a2216b
fix: point 'create an issue' link to /issues/new
RobStand Mar 26, 2026
c115f05
Big updates
RobStand Mar 27, 2026
de280bc
Added v1
RobStand Mar 27, 2026
40fbfdd
style(design): FINDING-001 — question counter now uses Geist Mono
RobStand Mar 27, 2026
5a47ef2
style(design): FINDING-002 — add keyboard accessibility to option cards
RobStand Mar 27, 2026
e1010ce
style(design): FINDING-003 — fix cramped mobile header at 375px
RobStand Mar 27, 2026
7f16319
style(design): FINDING-004 — set explicit font-size on platform previ…
RobStand Mar 27, 2026
959e9f1
style(design): FINDING-005 — replace hsl() colors with design system …
RobStand Mar 27, 2026
ce4b3b6
style(design): FINDING-006 — fix fade-in easing from ease-in to ease-out
RobStand Mar 27, 2026
7640a86
style(design): FINDING-007 — card shadow matches DESIGN.md shadow-md
RobStand Mar 27, 2026
b1a6707
style(design): D-005 — expand --radius to 4-tier system per DESIGN.md
RobStand Mar 27, 2026
dff3a13
style(design): D-004 — replace Tailwind badge colors with semantic to…
RobStand Mar 27, 2026
389283c
style(design): D-003 — snap recommendation spacing to 4px grid
RobStand Mar 27, 2026
4e7147f
style(design): D-002 — normalize off-token type sizes to 7-token scale
RobStand Mar 27, 2026
095daca
docs(design): D-001 — update type scale to match intentional 32px que…
RobStand Mar 27, 2026
03d1d6a
style(design): D-006 — remove 313 lines of dead v1 CSS
RobStand Mar 27, 2026
42bab2e
style(design): D-007 — move all inline styles to CSS classes
RobStand Mar 27, 2026
76e2cd5
docs: update CHANGELOG with design review round 2 fixes
RobStand Mar 27, 2026
a2e14bd
Updated CLAUDE.md
RobStand Mar 27, 2026
b8f86e2
feat: wrap Available Templates in accordion control
RobStand Mar 27, 2026
d6b70f9
feat: wrap 1st Party Copilot Agents in accordion control
RobStand Mar 27, 2026
7231d3a
M365 -> Microsoft 365
RobStand Mar 27, 2026
56dc16a
feat: add resource links to recommendation cards
RobStand Mar 30, 2026
277f2b7
Renaming old index for now, will remove it later. The new index is in…
RobStand Mar 30, 2026
93b588b
feat: add score comparison panel with animated bars
RobStand Mar 30, 2026
048e047
fix: remove M365 Copilot from score breakdown, enlarge toggle font
RobStand Mar 30, 2026
48cbf2a
fix: remove M365 Copilot from score breakdown, enlarge toggle font
RobStand Mar 30, 2026
19cd96c
docs: update CHANGELOG with accordion controls, naming, and index rename
RobStand Mar 30, 2026
9912069
Merge branch 'apa-v2' of https://github.com/microsoft/CAT into apa-v2
RobStand Mar 30, 2026
9a4dfad
docs: add dates to CHANGELOG section headers
RobStand Mar 30, 2026
96fa1d7
feat: remove 'Both — internal and external' audience option from Q8
RobStand Mar 30, 2026
fddd336
Fixing weights
RobStand Mar 30, 2026
2e631fd
feat: swap question order — 'Where' now before 'What does it do'
RobStand Mar 30, 2026
0a5e69a
feat: remove questions 6-8 (customization, evaluation, memory)
RobStand Mar 30, 2026
da8bcf6
Merge branch 'apa-v2' of https://github.com/microsoft/cat into apa-v2
RobStand Mar 31, 2026
1f7370b
Updated questions and answers
RobStand Mar 31, 2026
5afec70
CHANGELOG.md update
RobStand Mar 31, 2026
926e6a1
Small score improvement
RobStand Mar 31, 2026
d5c2c53
PlantUML file not needed
RobStand Mar 31, 2026
233c2e8
updated the starter question
vasavib Mar 31, 2026
d908167
Merge pull request #12 from microsoft/update-starter-question
vasavib Mar 31, 2026
0763042
Updated header
RobStand Mar 31, 2026
6ff7d43
Merge branch 'apa-v2' of https://github.com/microsoft/cat into apa-v2
RobStand Mar 31, 2026
cfb5d9c
updated minor text
vasavib Mar 31, 2026
6602335
Merge pull request #13 from microsoft/update-minor-text
vasavib Mar 31, 2026
3fe156e
Expand agent-builder section on the resources site
RobStand Mar 31, 2026
13e2118
feat: add Decision Card with shareable URLs and PNG export
RobStand Apr 1, 2026
c58f7b3
fix: show platform label instead of ID in Decision Card chip
RobStand Apr 1, 2026
1679819
feat: add share anchor link at top of recommendation
RobStand Apr 1, 2026
9a01f02
feat: remove maturity guidance section
RobStand Apr 1, 2026
946ace1
feat: show score breakdown inline instead of accordion
RobStand Apr 1, 2026
6b6d650
feat: add recommendation nav bar, move Start Over below share card
RobStand Apr 1, 2026
d24cea9
feat: remove PNG download button, keep shareable URL
RobStand Apr 1, 2026
efe129b
fix: soften persona scoring so Foundry doesn't always win for devs
RobStand Apr 1, 2026
70d52fb
Revert "fix: soften persona scoring so Foundry doesn't always win for…
RobStand Apr 1, 2026
b2bae78
feat: show VS Code developer tip when Copilot Studio is recommended t…
RobStand Apr 1, 2026
36622ac
fix: only show VS Code tip for Professional Developer (q1c), not Data…
RobStand Apr 1, 2026
fb4b2e8
refactor: move developer tip content from JS to YAML
RobStand Apr 1, 2026
37e9e7d
docs: update CHANGELOG with Decision Card and Apr 1 changes
RobStand Apr 1, 2026
552a6f6
Small edit
RobStand Apr 1, 2026
91cfbe5
refactor: remove dead code — ICON_PATHS, v1 CSS, index-old.html, stal…
RobStand Apr 1, 2026
0ef914e
refactor: DRY scoring helpers, move hard rules to YAML
RobStand Apr 1, 2026
f9bfab2
feat: add YAML validation, sessionStorage persistence, dynamic tab ti…
RobStand Apr 1, 2026
06a8fa0
feat: add Guided Exploration, Why Not explainer, Clarity analytics
RobStand Apr 1, 2026
e5f55fb
docs: update CHANGELOG with all Apr 1 changes
RobStand Apr 1, 2026
97e36ea
style(design): FINDING-001 — increase exploration back link touch tar…
RobStand Apr 1, 2026
bec3cbe
style(design): FINDING-002 — increase exploration resource link touch…
RobStand Apr 1, 2026
7a4d1f5
Merge branch 'main' into apa-v2
RobStand Apr 1, 2026
ebd8b1b
Added dark mode
RobStand Apr 2, 2026
b69bdf5
Update apa.yaml
RobStand Apr 2, 2026
cd873b1
QOL updates
RobStand Apr 7, 2026
dc987a5
Merge branch 'apa-v2' of https://github.com/microsoft/cat into apa-v2
RobStand Apr 7, 2026
79df218
Updating scoring logic, adding tests
RobStand Apr 7, 2026
ebd6900
Updated CHANGELOG.md and README.md
RobStand Apr 7, 2026
f0697c1
Fixing tests
RobStand Apr 7, 2026
ba6db78
Added accordions for ease of use
RobStand Apr 7, 2026
4daccbf
Moved Share Results link to recommendation card
RobStand Apr 8, 2026
d040481
Decision logic for AI/ML engineers
RobStand Apr 8, 2026
e3d4549
Updated docs
RobStand Apr 8, 2026
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: 44 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Copilot Instructions — CAT Website

## Project Overview

This is the **Microsoft Copilot Acceleration Team (CAT) website**, hosted at `https://microsoft.github.io/cat` via GitHub Pages. It is a static site — no build system, no bundler, no package manager. All HTML, CSS, and JS are hand-authored and served directly.

There are **no build, test, or lint commands**. No `package.json`, no CI pipeline. Edit files directly and verify in a browser.

## Architecture

**Landing page** (`/index.html`): Single-page site using Fluent UI Web Components, `assets/css/fluent.css`, and inline JS. Sections are anchor-linked (`#tools`, `#programs`, `#guidance`, `#stories`). Supports dark/light theme via `data-theme` attribute on `<html>` and `localStorage` key `cat-theme`.

**Subpages** (`/programs/*.html`): Standalone HTML pages sharing `assets/css/subpage.css`. Each is self-contained with its own inline `<script>` blocks. Navigation back to the main site is via a header logo link.

**YAML-driven pages**: Two pages load content dynamically from YAML files at runtime using `js-yaml` from CDN:
- `/agent-platform-advisor/index.html` ← reads `apa.yaml` (scoring matrix, questions, recommendations)
- `/programs/ai-webinar.html` ← reads `ai-webinar-sessions.yml` (session schedule)

**Agent Platform Advisor** (`/agent-platform-advisor/`): The most complex sub-app — a multi-step scoring wizard with shareable URL-encoded results, sessionStorage persistence, and temporal change detection. It has its own CSS (`assets/apa.css`), JS (`assets/apa.js`), and a dedicated design system documented in `DESIGN.md`. Always read `agent-platform-advisor/DESIGN.md` before making visual changes to this app.

**SparkTank** (`/sparktank/`): Facilitation/game page with its own CSS (`assets/css/strategix.css`) and JS (`assets/js/strategix.js`). Uses `html2canvas` and `jspdf` from CDN for export.

## Key Conventions

- **No build step.** Edit HTML/CSS/JS files directly. Sass sources exist under `assets/sass/` but compiled CSS is checked in — there is no automated Sass compilation in the repo.
- **No framework.** All JS is vanilla DOM manipulation. No React, Vue, or similar.
- **CDN dependencies only.** External libraries (Fluent UI, js-yaml, html2canvas, jspdf) are loaded from CDNs, not installed locally.
- **Font stack:** Segoe UI / Segoe UI Variable with system fallbacks. The Agent Platform Advisor additionally uses Geist Mono for scores and platform labels.
- **Primary brand color:** `#0078D4` (Microsoft blue). Subpage CSS uses the custom property `--ms-blue`.
- **Dark mode:** The landing page supports dark/light themes toggled via `data-theme` attribute. Subpages generally do not have dark mode.
- **Scroll reveal pattern:** Multiple pages use `IntersectionObserver` to add a `.visible` class for entrance animations. CSS classes: `.reveal`, `.reveal-stagger`.
- **AI Webinar sessions:** `programs/ai-webinar-sessions.yml` is the source of truth for webinar data. The page classifies sessions as upcoming/past using a hardcoded Pacific Time cutoff (`11:00:00-08:00`).
- **Analytics:** Some pages include Microsoft Clarity tracking scripts.

## Agent Platform Advisor

The advisor app at `/agent-platform-advisor/` has a documented design system in `DESIGN.md` and coding conventions in `CLAUDE.md`. Key constraints:
- Primary blue is `#0078D4` (not `#0090FF`)
- Body font is Segoe UI Variable — never swap to Inter, Roboto, etc.
- Geist Mono for scores, platform labels, and step counters only
- Canvas background uses a 3-stop diagonal gradient
- Score bar animations use `IntersectionObserver` with ease-out cubic timing (~1s)
- `apa.yaml` is the source of truth for all content, questions, and scoring logic
- **Always update `agent-platform-advisor/CHANGELOG.md` after making changes to the advisor**
41 changes: 41 additions & 0 deletions .github/workflows/apa-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: APA E2E Tests

on:
push:
paths:
- 'agent-platform-advisor/**'
pull_request:
paths:
- 'agent-platform-advisor/**'

defaults:
run:
working-directory: agent-platform-advisor

jobs:
test:
name: Playwright E2E
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: actions/setup-node@v4
with:
node-version: 20

- name: Install dependencies
run: npm ci

- name: Install Playwright browsers
run: npx playwright install chromium --with-deps

- name: Run Playwright tests
run: npx playwright test

- name: Upload test results
uses: actions/upload-artifact@v4
if: ${{ !cancelled() }}
with:
name: playwright-report
path: agent-platform-advisor/test-results/
retention-days: 7
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
.claude/
.gstack/
.vscode/
.vscode/
node_modules/
2 changes: 2 additions & 0 deletions agent-platform-advisor/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
test-results/
playwright-report/
28 changes: 28 additions & 0 deletions agent-platform-advisor/CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Agent Platform Advisor — Claude Code Context

## Design System

Always read DESIGN.md before making any visual or UI decisions.
All font choices, colors, spacing, border radius, shadows, and aesthetic direction are defined there.
Do not deviate without explicit user approval.
In QA mode, flag any code that doesn't match DESIGN.md.

Key constraints from DESIGN.md:

- Primary blue is `#0078D4` (not #0090FF or any other blue)
- Body font is Segoe UI Variable with system fallbacks — never swap to Inter, Roboto, or similar
- Geist Mono is used specifically for scores, platform labels, and step counters — not general body text
- Canvas background uses a 3-stop diagonal gradient, not a flat color

## Project Structure

- `index.html` — main app shell (v2, YAML-driven)
- `index_v1.html` — previous version, kept for reference
- `apa.yaml` — scoring matrix and question definitions (source of truth for content)
- `assets/apa.css` — all styles
- `assets/apa.js` — all JavaScript
- `DESIGN.md` — design system (read this before any CSS/UI work)

## Key actions

Always update CHANGELOG.md after making changes.
75 changes: 75 additions & 0 deletions agent-platform-advisor/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# Agent Platform Advisor

Answer a few questions about what you're trying to build, and get a recommendation for the best Microsoft agent platform for your scenario.

**Live tool:** [microsoft.github.io/cat/agent-platform-advisor](https://microsoft.github.io/cat/agent-platform-advisor/index.html)

---

## What it does

The Agent Platform Advisor is a single-page web app that walks you through a short assessment and recommends the right Microsoft agent platform — **Agent Builder**, **Copilot Studio**, **Microsoft Foundry**, or **Microsoft 365 Copilot** — based on your answers.

The assessment asks about:

- Who is building the agent (business user, low-code maker, developer, data scientist)
- Who will use it (internal employees or external users)
- Where users will interact with it (Microsoft 365 apps, a custom app, background/event-triggered)
- What the agent needs to do (Q&A, multi-turn conversation, multi-step tasks, complex orchestration)
- What data the agent needs to access (Microsoft 365 content, external systems, advanced data sources)

After completing the wizard, you get a primary recommendation with fit badges, key factors, score breakdown, contextual warnings for contradictory answer combinations, and a shareable link.

## Project structure

```
agent-platform-advisor/
├── index.html # App shell (v2, YAML-driven)
├── apa.yaml # Scoring matrix, questions, recommendations, and content
├── assets/
│ ├── apa.css # All styles
│ └── apa.js # All JavaScript
├── images/ # Platform icons and favicons
├── docs/
│ ├── CHANGELOG.md # Version history
│ ├── DESIGN.md # Design system reference
│ ├── FLOWCHART.md # Scoring pipeline decision tree
│ └── SCORING.md # Scoring system reference
└── tests/
└── e2e/ # Playwright end-to-end tests
```

The app is purely static — no build step, no backend. All content (questions, scores, platform descriptions, hard rules, tiebreakers) lives in `apa.yaml` and is fetched at runtime.

## How scoring works

See [docs/SCORING.md](docs/SCORING.md) for the full reference and [docs/FLOWCHART.md](docs/FLOWCHART.md) for a visual decision tree. The short version:

1. **Hard rules** zero out platforms for certain answer combinations (e.g., Agent Builder is zeroed if the user needs external users, a custom app, background execution, or advanced data sources).
2. **Raw scores** are summed across all 5 questions (max 15 points per platform).
3. **Tiebreakers** in `apa.yaml` resolve equal scores using persona context (e.g., professional developer + tie → Copilot Studio preferred over Agent Builder).
4. **Thresholds** map final scores to fit labels: Strong fit (12–15), Good fit (8–11), Partial fit (4–7), Not recommended (0–3).

## Running the tests

The project uses [Playwright](https://playwright.dev/) for end-to-end tests. Tests run against a local static file server.

```bash
npm install
npm test # headless
npm run test:headed # with browser visible
```

Tests cover wizard completion, shared link loading, temporal change detection, the M365 fast-track path, and share button behavior. CI runs automatically on push and pull request via GitHub Actions (`.github/workflows/apa-tests.yml`).

## Sharing results

After completing the assessment, a **Decision Card** appears with a "Share link" button. The URL encodes your answers and the recommendation date. Recipients can view the recommendation directly or retake the assessment with your answers pre-filled (`?mode=wizard`).

If `apa.yaml` is updated after a link was shared and the recommendation has changed, the app shows a banner explaining what shifted (temporal change detection).

## Contributing

Content changes (question text, scores, platform descriptions, hard rules) go in `apa.yaml`. UI changes go in `assets/apa.css` and `assets/apa.js`. Read [docs/DESIGN.md](docs/DESIGN.md) before making any visual changes — colors, spacing, typography, and component specs are all defined there.

Always update [docs/CHANGELOG.md](docs/CHANGELOG.md) after making changes.
Loading
Loading