[Pages] Refresh power-pages README and plan logos - #123
Conversation
- Expand README Skills section to cover the 6 new skills (/test-site, /integrate-backend, /add-server-logic, /add-cloud-flow, /audit-permissions, /report-issue), grouped into Scaffolding, Data, Backend, Security, Polish, and Support. - Add a "Bundled MCP servers" section describing the playwright and microsoft-learn servers shipped in .mcp.json. - Update the typical workflow to route backend work through /integrate-backend and end with /test-site. - Replace the text-based "PP" gradient tile in all 6 plan HTML templates (data-model, permissions, audit-report, backend, cloud-flow, serverlogic) with the real power-pages-icon.png embedded as a base64 data URI so rendered plans stay self-contained. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
This PR updates the Power Pages plugin documentation to reflect newly added skills and workflow guidance, and refreshes the HTML plan/report templates to use an embedded Power Pages logo so generated outputs remain self-contained.
Changes:
- Expanded
README.md“Skills” section to document the new skills and regroup capabilities, plus updated the “Typical Workflow”. - Added a “Bundled MCP servers” section documenting the Playwright and Microsoft Learn MCP servers shipped in
.mcp.json. - Replaced the previous “PP” gradient logo tiles in plan/report HTML templates with an embedded
power-pages-icon.pngbase64 data URI.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| plugins/power-pages/README.md | Documents new skills, adds bundled MCP servers section, and updates the recommended end-to-end workflow. |
| plugins/power-pages/skills/audit-permissions/assets/audit-report.html | Swaps the header logo tile to an embedded base64 Power Pages icon for self-contained audit reports. |
| plugins/power-pages/skills/add-cloud-flow/assets/cloud-flow-plan.html | Swaps the plan header logo to an embedded base64 icon. |
| plugins/power-pages/skills/add-server-logic/assets/serverlogic-plan.html | Swaps the plan header logo to an embedded base64 icon. |
| plugins/power-pages/skills/integrate-backend/assets/backend-plan.html | Swaps the plan header logo to an embedded base64 icon. |
| plugins/power-pages/agents/assets/permissions-plan.html | Swaps the plan header logo to an embedded base64 icon. |
| plugins/power-pages/agents/assets/data-model-plan.html | Swaps the plan header logo to an embedded base64 icon. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Switch plan/report templates from an inline ~30KB base64 data URI to a direct ./power-pages-icon.png reference. scripts/lib/render-template.js now silently copies the shared icon from skills/create-site/assets/shared/power-pages-icon.png next to every rendered HTML so the output stays self-contained without duplicating the large literal across six templates. Addresses feedback from copilot-pull-request-reviewer on PR #123. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
mermaid's erDiagram parser requires attribute types to match ATTRIBUTE_WORD. Dataverse exposes a boolean column type literally named "Yes/No" — the slash tripped the parser with "Expecting 'ATTRIBUTE_WORD', got '/'", and the rendered plan showed "Syntax error in text" instead of the ER diagram. The previous sanitizer only stripped dots and whitespace. Widen it to strip anything outside [A-Za-z0-9_] so future Dataverse type names with special chars also render cleanly. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 8 out of 8 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- render-template.js: drop the !fs.existsSync(iconDest) guard so the shared power-pages-icon.png is copied unconditionally on every render. Stale icons at the destination now get overwritten, keeping rendered plans in sync with the shared asset. - render-cloudflow-plan.test.js: add two tests covering the icon-copy path — one verifies the icon is produced alongside the HTML with bytes matching the shared asset, one pre-seeds a stale icon and asserts the re-render overwrites it. Addresses copilot-pull-request-reviewer feedback on PR #123 (L86 unconditional overwrite, L88 missing test coverage). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Neeraj Nandwana (neerajnandwana-msft)
left a comment
There was a problem hiding this comment.
Looks good to me.
README refresh
Plan/report template logo
power-pages-icon.png.<img class="logo" src="./power-pages-icon.png" />— instead of inlining it as a base64 data URI.scripts/lib/render-template.jssilently copiesskills/create-site/assets/shared/power-pages-icon.pngnext to every rendered HTML on every render (unconditional overwrite, so the rendered plans always stay in sync with the shared asset). Demo files in thedemo-content/set (not in this repo) keep the embedded base64 because they're distributed as standalone HTML.Data-model plan mermaid fix
Yes/No— the/broke mermaid'sATTRIBUTE_WORDrule.buildErDiagram's type sanitizer now strips anything outside[A-Za-z0-9_].Tests
render-cloudflow-plan.test.jscases cover the icon-copy path: one verifies the icon is produced alongside the HTML with bytes matching the shared asset; one pre-seeds a stale icon and asserts the re-render overwrites it.