Revert "Migrate pcf-development from empty plugin to skill"

This reverts commit b59cbd6cc9.
This commit is contained in:
Aaron Powell
2026-02-25 15:07:41 +11:00
parent b59cbd6cc9
commit f6fa566995
7 changed files with 48 additions and 122 deletions

View File

@@ -166,6 +166,12 @@
"description": "Custom agents that have been created by GitHub partners",
"version": "1.0.0"
},
{
"name": "pcf-development",
"source": "pcf-development",
"description": "Complete toolkit for developing custom code components using Power Apps Component Framework for model-driven and canvas apps",
"version": "1.0.0"
},
{
"name": "php-mcp-development",
"source": "php-mcp-development",

View File

@@ -313,8 +313,12 @@ We welcome many kinds of contributions, including the custom categories below:
| **Instructions** | Custom instruction sets that guide GitHub Copilot behavior | 🧭 |
| **Agents** | Defined GitHub Copilot roles or personalities | 🎭 |
| **Skills** | Specialized knowledge of a task for GitHub Copilot | 🧰 |
<<<<<<< HEAD
| **Workflows** | Agentic Workflows for AI-powered repository automation | ⚡ |
| **Plugins** | Installable packages of related prompts, agents, or skills | 🎁 |
=======
| **Plugins** | Installable packages of related agents, commands, or skills | 🎁 |
>>>>>>> 9e10967 (Update documentation to remove prompts references)
In addition, all standard contribution types supported by [All Contributors](https://allcontributors.org/emoji-key/) are recognized.

View File

@@ -46,6 +46,7 @@ See [CONTRIBUTING.md](../CONTRIBUTING.md#adding-plugins) for guidelines on how t
| [openapi-to-application-python-fastapi](../plugins/openapi-to-application-python-fastapi/README.md) | Generate production-ready FastAPI applications from OpenAPI specifications. Includes project scaffolding, route generation, dependency injection, and Python best practices for async APIs. | 2 items | openapi, code-generation, api, python, fastapi |
| [ospo-sponsorship](../plugins/ospo-sponsorship/README.md) | Tools and resources for Open Source Program Offices (OSPOs) to identify, evaluate, and manage sponsorship of open source dependencies through GitHub Sponsors, Open Collective, and other funding platforms. | 1 items | |
| [partners](../plugins/partners/README.md) | Custom agents that have been created by GitHub partners | 20 items | devops, security, database, cloud, infrastructure, observability, feature-flags, cicd, migration, performance |
| [pcf-development](../plugins/pcf-development/README.md) | Complete toolkit for developing custom code components using Power Apps Component Framework for model-driven and canvas apps | 0 items | power-apps, pcf, component-framework, typescript, power-platform |
| [php-mcp-development](../plugins/php-mcp-development/README.md) | Comprehensive resources for building Model Context Protocol servers using the official PHP SDK with attribute-based discovery, including best practices, project generation, and expert assistance | 2 items | php, mcp, model-context-protocol, server-development, sdk, attributes, composer |
| [polyglot-test-agent](../plugins/polyglot-test-agent/README.md) | Multi-agent pipeline for generating comprehensive unit tests across any programming language. Orchestrates research, planning, and implementation phases using specialized agents to produce tests that compile, pass, and follow project conventions. | 9 items | testing, unit-tests, polyglot, test-generation, multi-agent, tdd, csharp, typescript, python, go |
| [power-apps-code-apps](../plugins/power-apps-code-apps/README.md) | Complete toolkit for Power Apps Code Apps development including project scaffolding, development standards, and expert guidance for building code-first applications with Power Platform integration. | 2 items | power-apps, power-platform, typescript, react, code-apps, dataverse, connectors |

View File

@@ -153,7 +153,6 @@ See [CONTRIBUTING.md](../CONTRIBUTING.md#adding-skills) for guidelines on how to
| [next-intl-add-language](../skills/next-intl-add-language/SKILL.md) | Add new language to a Next.js + next-intl application | None |
| [nuget-manager](../skills/nuget-manager/SKILL.md) | Manage NuGet packages in .NET projects/solutions. Use this skill when adding, removing, or updating NuGet package versions. It enforces using `dotnet` CLI for package management and provides strict procedures for direct file edits only when updating versions. | None |
| [openapi-to-application-code](../skills/openapi-to-application-code/SKILL.md) | Generate a complete, production-ready application from an OpenAPI specification | None |
| [pcf-development](../skills/pcf-development/SKILL.md) | Develop custom code components using Power Apps Component Framework for model-driven and canvas apps with TypeScript, React, and Fluent UI | None |
| [pdftk-server](../skills/pdftk-server/SKILL.md) | Skill for using the command-line tool pdftk (PDFtk Server) for working with PDF files. Use when asked to merge PDFs, split PDFs, rotate pages, encrypt or decrypt PDFs, fill PDF forms, apply watermarks, stamp overlays, extract metadata, burst documents into pages, repair corrupted PDFs, attach or extract files, or perform any PDF manipulation from the command line. | `references/download.md`<br />`references/pdftk-cli-examples.md`<br />`references/pdftk-man-page.md`<br />`references/pdftk-server-license.md`<br />`references/third-party-materials.md` |
| [penpot-uiux-design](../skills/penpot-uiux-design/SKILL.md) | Comprehensive guide for creating professional UI/UX designs in Penpot using MCP tools. Use this skill when: (1) Creating new UI/UX designs for web, mobile, or desktop applications, (2) Building design systems with components and tokens, (3) Designing dashboards, forms, navigation, or landing pages, (4) Applying accessibility standards and best practices, (5) Following platform guidelines (iOS, Android, Material Design), (6) Reviewing or improving existing Penpot designs for usability. Triggers: "design a UI", "create interface", "build layout", "design dashboard", "create form", "design landing page", "make it accessible", "design system", "component library". | `references/accessibility.md`<br />`references/component-patterns.md`<br />`references/platform-guidelines.md`<br />`references/setup-troubleshooting.md` |
| [php-mcp-server-generator](../skills/php-mcp-server-generator/SKILL.md) | Generate a complete PHP Model Context Protocol server project with tools, resources, prompts, and tests using the official PHP SDK | None |

View File

@@ -0,0 +1,17 @@
{
"name": "pcf-development",
"description": "Complete toolkit for developing custom code components using Power Apps Component Framework for model-driven and canvas apps",
"version": "1.0.0",
"author": {
"name": "Awesome Copilot Community"
},
"repository": "https://github.com/github/awesome-copilot",
"license": "MIT",
"keywords": [
"power-apps",
"pcf",
"component-framework",
"typescript",
"power-platform"
]
}

View File

@@ -0,0 +1,20 @@
# Power Apps Component Framework (PCF) Development Plugin
Complete toolkit for developing custom code components using Power Apps Component Framework for model-driven and canvas apps
## Installation
```bash
# Using Copilot CLI
copilot plugin install pcf-development@awesome-copilot
```
## What's Included
## Source
This plugin is part of [Awesome Copilot](https://github.com/github/awesome-copilot), a community-driven collection of GitHub Copilot extensions.
## License
MIT

View File

@@ -1,121 +0,0 @@
---
name: pcf-development
description: 'Develop custom code components using Power Apps Component Framework for model-driven and canvas apps with TypeScript, React, and Fluent UI'
---
# Power Apps Component Framework (PCF) Development
You are an expert Power Platform developer specializing in building custom code components using the Power Apps Component Framework (PCF). Guide the user through creating, debugging, and deploying PCF code components for model-driven apps, canvas apps, and Power Pages.
## Prerequisites
- Microsoft Power Platform CLI (PAC CLI) installed
- Node.js (LTS version)
- A Microsoft Dataverse environment with system administrator or system customizer privileges
- TypeScript knowledge
## Creating a New Code Component
### Initialize the Project
```bash
# Create a new directory and initialize a PCF project
mkdir my-component && cd my-component
pac pcf init --namespace SampleNamespace --name MyComponent --template field --run-npm-install
```
Template options:
- `field` — for components bound to a single column value
- `dataset` — for components bound to a dataset (table/view)
### Project Structure
```
my-component/
├── ControlManifest.Input.xml # Component manifest (properties, resources, features)
├── index.ts # Component implementation (lifecycle methods)
├── generated/ # Auto-generated type definitions
├── css/ # Component styles (scoped CSS)
├── pcfproj # MSBuild project file
└── package.json # Node.js dependencies and scripts
```
## Component Lifecycle
Implement the standard control interface with these lifecycle methods:
1. **`init`** — Called once when the component loads. Use for initialization, requesting network resources, and setting up event handlers.
2. **`updateView`** — Called whenever a bound property or framework aspect changes. Render or re-render the UI here.
3. **`getOutputs`** — Called by the framework to retrieve component output values after `notifyOutputChanged` is called.
4. **`destroy`** — Called when the component is removed from the DOM. Clean up WebSockets, remove event handlers, and call `ReactDOM.unmountComponentAtNode` if using React.
## Best Practices
### Performance
- Build in **production mode** before deploying to Dataverse — development builds are oversized and may be blocked
- Minimize calls to `notifyOutputChanged` — batch updates rather than firing on every keypress
- Avoid unnecessary calls to `dataset.refresh()` — each call reloads data from the server
- Use **path-based imports** from Fluent UI to reduce bundle size: `import { Button } from '@fluentui/react/lib/Button'`
- Use `PureComponent` or `React.memo` to avoid unnecessary re-renders
### Coding Standards
- Never use unsupported framework methods or access the host application DOM outside the component boundary
- Always use **asynchronous** network calls — never use synchronous blocking requests
- Use **scoped CSS** rules with the auto-generated class: `.SampleNamespace\.MyComponent rule-name`
- Do not use `window.localStorage` or `window.sessionStorage` — store data in Dataverse
- Always bundle required modules — do not rely on external `<script>` tags
- Check API availability across hosts — `context.webAPI` is not available in canvas apps
- Handle null property values in `updateView` — data may not be ready on the first call
### Accessibility
- Provide keyboard navigation alternatives to mouse/touch events
- Set `alt` and ARIA attributes for screen reader support
- Test with browser accessibility developer tools
### Multi-Platform Support
- Use `trackContainerResize` to respond to container size changes
- Use `allocatedHeight`, `allocatedWidth`, and `getFormFactor` to adapt to mobile, tablet, and web
- Implement `setFullScreen` for limited-space scenarios
- Disable functionality gracefully when the container is too small
## Building and Testing
```bash
# Build for development (with source maps)
npm run build
# Start the test harness for local debugging
npm start watch
# Build for production (optimized, no source maps)
npm run build -- --buildMode production
```
## Packaging and Deployment
```bash
# Create a solution project
pac solution init --publisher-name MyPublisher --publisher-prefix mp
# Add the component to the solution
pac solution add-reference --path path/to/my-component
# Build the solution
msbuild /t:build /restore
# Push the component to your environment
pac pcf push --publisher-prefix mp
```
## Licensing Considerations
- **Standard components** (no external service connections): require minimum Office 365 license
- **Premium components** (connect to external services via browser): require Power Apps licenses; declare in manifest with `<external-service-usage enabled="true">`
- Model-driven apps connected to Dataverse always require Power Apps licenses
## Resources
- [PCF Documentation](https://learn.microsoft.com/en-us/power-apps/developer/component-framework/overview)
- [PCF API Reference](https://learn.microsoft.com/en-us/power-apps/developer/component-framework/reference/)
- [PCF Gallery](https://pcf.gallery/)
- [PCF Learning Path](https://learn.microsoft.com/en-us/training/paths/use-power-apps-component-framework)