Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
104 changes: 104 additions & 0 deletions .github/ISSUE_TEMPLATE/site-feedback.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
name: 🎨 Landing-page feedback
description: Request a change to the Copilot Agent Kit landing page at https://microsoft.github.io/Power-CAT-Copilot-Studio-Kit/
title: "[Pages] "
labels: ["pages", "site-feedback"]

body:
- type: markdown
attributes:
value: |
Thanks for the feedback on the [Copilot Agent Kit landing page](https://microsoft.github.io/Power-CAT-Copilot-Studio-Kit/)! 💜

**After submitting**, assign this issue to **Copilot** from the right-hand sidebar
(look for "Copilot" in the assignees dropdown). Copilot will read
`site-src/AGENTS.md` for context, make the change in a branch, run the build +
smoke test, and open a draft PR targeting `feature/github-pages-agent`. Reviewers
will polish and merge.

The more specific you are below, the cleaner the PR will be on the first try.

- type: dropdown
id: section
attributes:
label: Which section of the page?
description: Roughly where on the page is the change?
options:
- Hero (top banner with the rainbow headline + stat cards)
- Free & Open Source band
- Pillars (Quality / Governance / Analytics / Components cards)
- Features (the table of 15 features)
- Components (cards + Agent Archetype Framework callout)
- Get Started (3-step quickstart)
- CTA section (purple, near the bottom)
- Footer
- Header / nav bar
- Page-wide (palette, typography, motion, layout)
- Not sure / multiple sections
validations:
required: true

- type: dropdown
id: change_type
attributes:
label: Type of change
options:
- Copy / wording change
- Color / palette adjustment
- Typography (font size, weight, line height)
- Layout / spacing
- New element (card, callout, button, etc.)
- Remove or hide element
- Link or URL update
- Animation / motion tweak
- Accessibility improvement
- Bug (something is broken)
- Other
validations:
required: true

- type: textarea
id: description
attributes:
label: What change do you want?
description: |
Be specific. Reference exact text, colors (hex), or component names where possible.
Good: "The 'Pillars' section header is too dark — please lift to about #4A2D52."
Less good: "Make it pop more."
placeholder: |
Currently the … reads as …
I'd like it to … instead.
validations:
required: true

- type: textarea
id: rationale
attributes:
label: Why? (optional context)
description: Background that helps Copilot make a good call — feedback from a customer demo, accessibility need, brand alignment, etc.
placeholder: e.g., "Audience read it as too gray during the field call this morning."

- type: textarea
id: screenshot
attributes:
label: Screenshot or reference (optional but recommended)
description: Drag-and-drop a screenshot of the current state, or paste a link to a design reference (adoption.microsoft.com, Figma, etc.).

- type: dropdown
id: priority
attributes:
label: How urgent?
options:
- Nice to have
- Soon — would help an upcoming demo
- Urgent — visible bug or broken link
default: 0

- type: checkboxes
id: confirmations
attributes:
label: Quick checks
options:
- label: I've checked the [current landing page](https://microsoft.github.io/Power-CAT-Copilot-Studio-Kit/) and the change isn't already there.
required: true
- label: This is feedback on the **landing page**, not the Kit's Power Platform solution components.
required: true
103 changes: 103 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
# Copilot instructions — Power CAT Copilot Studio Kit

These instructions guide the GitHub Copilot coding agent (and any human
contributor reading them) when working in this repository.

## Repository at a glance

The Power CAT Copilot Studio Kit ships:

- **Power Platform solution files** (top-level folders) — the actual Kit
components: validation framework, library components, governance tooling,
agent inventory, etc. These get packaged and imported into customer
environments.
- **A GitHub Pages landing page** at https://microsoft.github.io/Power-CAT-Copilot-Studio-Kit/
built from `site-src/` (Vite + React 19 + Fluent UI v9 + TypeScript) and
deployed from `docs/` on the `feature/github-pages-agent` branch.
- **Documentation** under `docs/` (the landing-page assets) and other top-level
`.md` files.

## Most tasks fall into one of these buckets

### 1. Landing-page changes (`site-src/`)

This is the **most common** kind of issue from the team — visual tweaks, copy
edits, new sections, link updates on the github.io page.

> **Note:** `site-src/` and its contents (including `site-src/AGENTS.md`,
> `site-src/src/`, and `site-src/package.json`) exist only on the
> `feature/github-pages-agent` branch. These files are **not present on `main`**
> and will land there via a separate redesign PR.

**Read `site-src/AGENTS.md` (on the `feature/github-pages-agent` branch) before touching anything in `site-src/`.**
It has the design tokens, the build pipeline, the scroll-reveal pattern, and
the branching strategy.

Key rules for landing-page work:

- Edit source in `site-src/src/` (most often `theme.ts`, `App.tsx`, `features.ts`)
- Build with `cd site-src && npm ci && npm run build`
- The build writes into `../docs/` (committed — this is the Pages source)
- Commit **both** source AND rebuilt `docs/` artifacts in the same commit
- **Open the PR against the `feature/github-pages-agent` branch**, NOT `main`
- The Pages deploy workflow only fires on pushes to `feature/github-pages-agent`
that touch `docs/**`
Comment on lines +42 to +44

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated deploy-pages.yml to trigger on feature/github-pages-agent instead of main, aligning the workflow with the branching strategy described in the instructions. Commit: ci: update deploy-pages trigger branch to feature/github-pages-agent.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Confirmed correct. gh api repos/microsoft/Power-CAT-Copilot-Studio-Kit/pages reports source.branch: feature/github-pages-agent, source.path: /docs — so the deploy workflow trigger now matches the actual GitHub Pages configuration. The previous branches: [main] trigger was a latent misconfiguration; pushes to docs/** on main weren't deploying anyway because Pages reads from a different branch.


### 2. Solution / component changes

Power Platform solution work happens at the top level (`Solutions/`,
`CopilotStudioKit/`, etc.). These typically require manual export from
maker.powerapps.com or pac CLI — Copilot can review diffs and update docs but
should not invent solution XML by hand. If an issue asks for a solution
change, propose a plan and request human confirmation before unpacking
solution files.

### 3. Docs / README updates

Standard markdown edits. No build step. Open PRs against `main`.

## Branching strategy

| Branch | Purpose |
|---|---|
| `main` | Default. Solution files, top-level docs, this instructions file, the `copilot-setup-steps.yml` workflow. |
| `feature/github-pages-agent` | GitHub Pages source. `docs/**` pushes here trigger deploy. **Target this branch for landing-page PRs.** |
| Topic branches | Always branch off the appropriate base above. Use kebab-case names. |

## Commit message conventions

Use [Conventional Commits](https://www.conventionalcommits.org/):
`feat:`, `fix:`, `style:`, `docs:`, `refactor:`, `chore:`, `ci:`.

Scope landing-page commits with `(pages)`: e.g., `feat(pages): lighten hero palette`.

Always include the trailer:

```
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
```

## Setup-steps environment

The `.github/workflows/copilot-setup-steps.yml` workflow runs before every
Copilot session and preinstalls Node 20, then conditionally `npm ci`s any
Node sub-project whose `package-lock.json` is present in the checked-out
branch:

- **`site-src/`** — landing page (Vite + React + Fluent UI v9). Present on
`feature/github-pages-agent`.
- **`agent-review-pipeline/`** — GitHub Action helper. Present on `main`.

Each step is guarded with `hashFiles(...) != ''` so it's a silent no-op on
branches where the project isn't present (e.g. `site-src/` on `main` before
the redesign PR lands). The npm cache is keyed on each project's
`package-lock.json` so dependency changes automatically invalidate it.

## When in doubt

- Visual / UX questions → mirror https://adoption.microsoft.com/en-us/copilot/
- Brand color → `#833D91` (purple); the six-stop rainbow is decorative
- Component library → built on the [Agent Archetype Framework](https://learn.microsoft.com/en-us/agents/agent-archetypes/framework-apply)
3Cs model (Categories / Capabilities / Components)
- Need more context on the kit overall → see the top-level [README.md](../README.md)
and https://learn.microsoft.com/en-us/microsoft-copilot-studio/guidance/copilot-studio-kit-overview
76 changes: 76 additions & 0 deletions .github/workflows/copilot-setup-steps.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
name: "Copilot Setup Steps"

# Triggered automatically on changes to this file (so you can validate the
# config from the Actions tab) and runs before every Copilot coding agent
# session — preinstalling tools so the agent boots into a ready environment
# instead of trial-and-erroring its way through dependency installation.

on:
workflow_dispatch:
push:
paths:
- .github/workflows/copilot-setup-steps.yml
pull_request:
paths:
- .github/workflows/copilot-setup-steps.yml

jobs:
# MUST be named `copilot-setup-steps` — Copilot looks for this exact job name.
copilot-setup-steps:
runs-on: ubuntu-latest
permissions:
contents: read

steps:
- name: Checkout repository
uses: actions/checkout@v4

# Set up Node 20 unconditionally — both Node sub-projects in this repo
# (agent-review-pipeline/ on main, site-src/ on feature/github-pages-agent)
# need it, and the agent may also use Node for ad-hoc tooling.
- name: Set up Node.js 20
uses: actions/setup-node@v4
with:
node-version: "20"

# ---- site-src/ (landing page — Vite + React + Fluent UI v9) ----
# Present on feature/github-pages-agent (the GitHub Pages source branch).
# Guarded with hashFiles so the step is a silent no-op on branches where
# site-src/ doesn't exist yet (e.g. main, before the redesign PR lands).
- name: Cache site-src npm
if: hashFiles('site-src/package-lock.json') != ''
uses: actions/setup-node@v4
with:
node-version: "20"
cache: "npm"
cache-dependency-path: site-src/package-lock.json

- name: Install site-src dependencies
if: hashFiles('site-src/package-lock.json') != ''
working-directory: site-src
run: npm ci

- name: Smoke-build site-src
if: hashFiles('site-src/package-lock.json') != ''
working-directory: site-src
run: npm run build

# ---- agent-review-pipeline/ (GitHub Action — TypeScript) ----
# Present on main. Same hashFiles guard pattern so it's a no-op when absent.
- name: Cache agent-review-pipeline npm
if: hashFiles('agent-review-pipeline/package-lock.json') != ''
uses: actions/setup-node@v4
with:
node-version: "20"
cache: "npm"
cache-dependency-path: agent-review-pipeline/package-lock.json

- name: Install agent-review-pipeline dependencies
if: hashFiles('agent-review-pipeline/package-lock.json') != ''
working-directory: agent-review-pipeline
run: npm ci

- name: Smoke-build agent-review-pipeline
if: hashFiles('agent-review-pipeline/package-lock.json') != ''
working-directory: agent-review-pipeline
run: npm run build
2 changes: 1 addition & 1 deletion .github/workflows/deploy-pages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Deploy GitHub Pages

on:
push:
branches: ["main"]
branches: ["feature/github-pages-agent"]
paths:
- 'docs/**'
workflow_dispatch:
Expand Down
Loading