From 8de0a5cb32809e67347a7e0552b44a0bda36969e Mon Sep 17 00:00:00 2001 From: Vilius Vystartas Date: Fri, 30 Oct 2026 05:50:43 +0000 Subject: [PATCH 1/6] Add SPFx Fast SharePoint development skill --- docs/README.skills.md | 1 + skills/spfx-fast/SKILL.md | 46 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 skills/spfx-fast/SKILL.md diff --git a/docs/README.skills.md b/docs/README.skills.md index 0c7643e3c..442d4a18f 100644 --- a/docs/README.skills.md +++ b/docs/README.skills.md @@ -421,6 +421,7 @@ See [CONTRIBUTING.md](../CONTRIBUTING.md#adding-skills) for guidelines on how to | [slang-shader-engineer](../skills/slang-shader-engineer/SKILL.md)
`gh skills install github/awesome-copilot slang-shader-engineer` | Use when working with Slang shaders, shader modules, HLSL-compatible GPU code, graphics pipelines, compute shaders, tessellation, ray tracing, parameter blocks, generics, interfaces, capabilities, cross-compilation, shader optimization, shader review, or C++ engine integration for Slang. Trigger on any mention of Slang, .slang files, slangc, SPIR-V from Slang, Slang modules, [shader("compute")], [shader("vertex")], or requests to write/review/refactor shader code with modern language features. Also trigger for Slang-to-HLSL/GLSL/Metal/CUDA cross-compile questions, or when the user says "shader" alongside "generics", "interfaces", "parameter blocks", "autodiff", or "capabilities". | `references/language-reference.md`
`references/rules-and-patterns.md`
`references/slang-documentation-full.md` | | [snowflake-semanticview](../skills/snowflake-semanticview/SKILL.md)
`gh skills install github/awesome-copilot snowflake-semanticview` | Create, alter, and validate Snowflake semantic views using Snowflake CLI (snow). Use when asked to build or troubleshoot semantic views/semantic layer definitions with CREATE/ALTER SEMANTIC VIEW, to validate semantic-view DDL against Snowflake via CLI, or to guide Snowflake CLI installation and connection setup. | None | | [speak-summary](../skills/speak-summary/SKILL.md)
`gh skills install github/awesome-copilot speak-summary` | Convert text, markdown, or a summary produced by another skill into a listenable MP3 using local CPU-only neural text-to-speech. Rewrites written prose for the ear before synthesising. Use when the user asks to "read this out", "turn this into audio", "make an MP3", "I want to listen to this", "podcast version", or wants a spoken digest for a commute or breakfast. | `scripts/tts.sh` | +| [spfx-fast](../skills/spfx-fast/SKILL.md)
`gh skills install github/awesome-copilot spfx-fast` | Build SharePoint Framework apps with SPFx Fast. Use for SharePoint list forms, request trackers, dashboards, and authenticated Graph/REST features in SPFx 1.24+. | None | | [sponsor-finder](../skills/sponsor-finder/SKILL.md)
`gh skills install github/awesome-copilot sponsor-finder` | Find which of a GitHub repository's dependencies are sponsorable via GitHub Sponsors. Uses deps.dev API for dependency resolution across npm, PyPI, Cargo, Go, RubyGems, Maven, and NuGet. Checks npm funding metadata, FUNDING.yml files, and web search. Verifies every link. Shows direct and transitive dependencies with OSSF Scorecard health data. Invoke with /sponsor followed by a GitHub owner/repo (e.g. "/sponsor expressjs/express"). | None | | [spring-boot-testing](../skills/spring-boot-testing/SKILL.md)
`gh skills install github/awesome-copilot spring-boot-testing` | Expert Spring Boot 4 testing specialist that selects the best Spring Boot testing techniques for your situation with Junit 6 and AssertJ. | `references/assertj-basics.md`
`references/assertj-collections.md`
`references/context-caching.md`
`references/datajpatest.md`
`references/instancio.md`
`references/mockitobean.md`
`references/mockmvc-classic.md`
`references/mockmvc-tester.md`
`references/restclienttest.md`
`references/resttestclient.md`
`references/sb4-migration.md`
`references/test-slices-overview.md`
`references/testcontainers-jdbc.md`
`references/webmvctest.md` | | [sql-code-review](../skills/sql-code-review/SKILL.md)
`gh skills install github/awesome-copilot sql-code-review` | Universal SQL code review assistant that performs comprehensive security, maintainability, and code quality analysis across all SQL databases (MySQL, PostgreSQL, SQL Server, Oracle). Focuses on SQL injection prevention, access control, code standards, and anti-pattern detection. Complements SQL optimization prompt for complete development coverage. | None | diff --git a/skills/spfx-fast/SKILL.md b/skills/spfx-fast/SKILL.md new file mode 100644 index 000000000..644c8a50c --- /dev/null +++ b/skills/spfx-fast/SKILL.md @@ -0,0 +1,46 @@ +--- +name: spfx-fast +description: 'Build SharePoint Framework apps with SPFx Fast. Use for SharePoint list forms, request trackers, dashboards, and authenticated Graph/REST features in SPFx 1.24+.' +--- + +# Build SharePoint apps with SPFx Fast + +Use this skill when a user asks for an SPFx app or feature. SPFx Fast complements PnP and Microsoft clients; keep existing libraries when they already fit. + +## Start + +1. Inspect the repository, SPFx version, signed-in site context, lists, columns, internal names, and permissions. Never guess tenant IDs, fields, URLs, or access. +2. Install `@spfx-fast/core` with the project's package manager. Read `node_modules/@spfx-fast/core/agent/SKILL.md` and `agent/capabilities.json` before coding. +3. Choose a starter from `spfx-fast use-cases` or `spfx-fast scenarios`. Generate only after inspecting the target schema: + + ```sh + spfx-fast dashboard --site-id --use-case --list-id + ``` + +4. Run `spfx-fast agent init` and `spfx-fast agent doctor` in the project. Doctor checks local setup, not tenant permissions. +5. Use the SPFx authenticated client from `createSPFxServices(context, SPHttpClient.configurations.v1)`. Do not acquire tokens independently or store credentials. +6. Preserve permission checks, bounded reads, loading/error states, accessible controls, and confirmation before writes or deletes. Ask an available design skill to polish the starter to the user's taste. + +## Common requests + +| Request | Use case | +|---|---| +| Laptop or purchase request | `laptop-request` | +| IT help desk | `it-help-desk` | +| Employee onboarding | `employee-onboarding` | +| Facility inspection | `facility-inspection` | +| Asset register | `asset-register` | +| Stock reorder tracker | `reorder-workflow` | + +## When a helper is missing + +Use authenticated raw SharePoint REST or Graph through the supplied services. Check `docs/API-COVERAGE.md` for typed, raw-only, and unsupported coverage. Keep special response parsing local and small. Do not replace authentication, caching, paging, or delta sync with hand-written versions without a concrete need. + +## References + +- [Package guide](https://github.com/vystartasv/spfx-fast/blob/main/agent/SKILL.md) +- [Use cases](https://github.com/vystartasv/spfx-fast/blob/main/docs/USE-CASES.md) +- [Examples](https://github.com/vystartasv/spfx-fast/blob/main/docs/EXAMPLES.md) +- [SPFx examples](https://github.com/vystartasv/spfx-fast/blob/main/docs/SPFX-EXAMPLES.md) +- [API coverage](https://github.com/vystartasv/spfx-fast/blob/main/docs/API-COVERAGE.md) +- [Deployment guide](https://github.com/vystartasv/spfx-fast/blob/main/docs/AGENT-SHAREPOINT-DEPLOYMENT.md) From efedadc93dbf9fb8edf929c642a2e0d588d526a4 Mon Sep 17 00:00:00 2001 From: Vilius Vystartas Date: Fri, 30 Oct 2026 05:58:08 +0000 Subject: [PATCH 2/6] Use project-local runner in skill examples --- skills/spfx-fast/SKILL.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/skills/spfx-fast/SKILL.md b/skills/spfx-fast/SKILL.md index 644c8a50c..fab8658af 100644 --- a/skills/spfx-fast/SKILL.md +++ b/skills/spfx-fast/SKILL.md @@ -11,13 +11,14 @@ Use this skill when a user asks for an SPFx app or feature. SPFx Fast complement 1. Inspect the repository, SPFx version, signed-in site context, lists, columns, internal names, and permissions. Never guess tenant IDs, fields, URLs, or access. 2. Install `@spfx-fast/core` with the project's package manager. Read `node_modules/@spfx-fast/core/agent/SKILL.md` and `agent/capabilities.json` before coding. -3. Choose a starter from `spfx-fast use-cases` or `spfx-fast scenarios`. Generate only after inspecting the target schema: +3. Choose a starter with `pnpm dlx --package @spfx-fast/core spfx-fast use-cases` or `... spfx-fast scenarios`. With npm, use `npx --yes --package @spfx-fast/core spfx-fast`. Generate only after inspecting the target schema: ```sh - spfx-fast dashboard --site-id --use-case --list-id + pnpm dlx --package @spfx-fast/core spfx-fast dashboard --site-id --use-case --list-id ``` -4. Run `spfx-fast agent init` and `spfx-fast agent doctor` in the project. Doctor checks local setup, not tenant permissions. + Replace `pnpm dlx --package @spfx-fast/core` with `npx --yes --package @spfx-fast/core` to use npm. +4. Run `pnpm dlx --package @spfx-fast/core spfx-fast agent init` and `pnpm dlx --package @spfx-fast/core spfx-fast agent doctor`. Use the same npm prefix above when needed. Doctor checks local setup, not tenant permissions. 5. Use the SPFx authenticated client from `createSPFxServices(context, SPHttpClient.configurations.v1)`. Do not acquire tokens independently or store credentials. 6. Preserve permission checks, bounded reads, loading/error states, accessible controls, and confirmation before writes or deletes. Ask an available design skill to polish the starter to the user's taste. From c9dd795f727d8a36f46064c1b0bf9af6ce99783c Mon Sep 17 00:00:00 2001 From: Vilius Vystartas Date: Fri, 30 Oct 2026 06:00:32 +0000 Subject: [PATCH 3/6] Use runnable npm command examples --- skills/spfx-fast/SKILL.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/skills/spfx-fast/SKILL.md b/skills/spfx-fast/SKILL.md index fab8658af..1f047309e 100644 --- a/skills/spfx-fast/SKILL.md +++ b/skills/spfx-fast/SKILL.md @@ -11,13 +11,13 @@ Use this skill when a user asks for an SPFx app or feature. SPFx Fast complement 1. Inspect the repository, SPFx version, signed-in site context, lists, columns, internal names, and permissions. Never guess tenant IDs, fields, URLs, or access. 2. Install `@spfx-fast/core` with the project's package manager. Read `node_modules/@spfx-fast/core/agent/SKILL.md` and `agent/capabilities.json` before coding. -3. Choose a starter with `pnpm dlx --package @spfx-fast/core spfx-fast use-cases` or `... spfx-fast scenarios`. With npm, use `npx --yes --package @spfx-fast/core spfx-fast`. Generate only after inspecting the target schema: +3. Choose a starter with `pnpm dlx --package @spfx-fast/core spfx-fast use-cases` or `pnpm dlx --package @spfx-fast/core spfx-fast scenarios`. With npm, use `npx --yes --package=@spfx-fast/core -- spfx-fast`. Generate only after inspecting the target schema: ```sh pnpm dlx --package @spfx-fast/core spfx-fast dashboard --site-id --use-case --list-id ``` - Replace `pnpm dlx --package @spfx-fast/core` with `npx --yes --package @spfx-fast/core` to use npm. + Replace the pnpm prefix with `npx --yes --package=@spfx-fast/core -- spfx-fast` to use npm. 4. Run `pnpm dlx --package @spfx-fast/core spfx-fast agent init` and `pnpm dlx --package @spfx-fast/core spfx-fast agent doctor`. Use the same npm prefix above when needed. Doctor checks local setup, not tenant permissions. 5. Use the SPFx authenticated client from `createSPFxServices(context, SPHttpClient.configurations.v1)`. Do not acquire tokens independently or store credentials. 6. Preserve permission checks, bounded reads, loading/error states, accessible controls, and confirmation before writes or deletes. Ask an available design skill to polish the starter to the user's taste. From 8fec6e54441fa7a3514d2eb2c86ea92b5fd61dd6 Mon Sep 17 00:00:00 2001 From: Vilius Vystartas Date: Fri, 30 Oct 2026 06:09:59 +0000 Subject: [PATCH 4/6] Clarify SPFx services and Graph consent --- skills/spfx-fast/SKILL.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/skills/spfx-fast/SKILL.md b/skills/spfx-fast/SKILL.md index 1f047309e..871846e4f 100644 --- a/skills/spfx-fast/SKILL.md +++ b/skills/spfx-fast/SKILL.md @@ -19,8 +19,9 @@ Use this skill when a user asks for an SPFx app or feature. SPFx Fast complement Replace the pnpm prefix with `npx --yes --package=@spfx-fast/core -- spfx-fast` to use npm. 4. Run `pnpm dlx --package @spfx-fast/core spfx-fast agent init` and `pnpm dlx --package @spfx-fast/core spfx-fast agent doctor`. Use the same npm prefix above when needed. Doctor checks local setup, not tenant permissions. -5. Use the SPFx authenticated client from `createSPFxServices(context, SPHttpClient.configurations.v1)`. Do not acquire tokens independently or store credentials. -6. Preserve permission checks, bounded reads, loading/error states, accessible controls, and confirmation before writes or deletes. Ask an available design skill to polish the starter to the user's taste. +5. Initialize services once per web part with `const services = await createSPFxServices(context, SPHttpClient.configurations.v1)`. It is asynchronous; await it before using `client`, `sharepoint`, or `rest`. Do not acquire tokens independently or store credentials. +6. If the app calls Graph, add only the required delegated scopes to `webApiPermissionRequests` in `config/package-solution.json`, then have a SharePoint admin approve them in the tenant API access page. Sign-in alone does not grant Graph scopes; missing consent can cause 403 responses. Use the endpoint's least-privileged scope. SharePoint REST uses the authenticated SPFx REST client and does not need Graph scopes. +7. Preserve permission checks, bounded reads, loading/error states, accessible controls, and confirmation before writes or deletes. Ask an available design skill to polish the starter to the user's taste. ## Common requests From 7ba4bf22665e88652772fec1e7c9c8a0ba320105 Mon Sep 17 00:00:00 2001 From: Vilius Vystartas Date: Fri, 30 Oct 2026 06:10:41 +0000 Subject: [PATCH 5/6] Use project-local SPFx Fast CLI --- skills/spfx-fast/SKILL.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/skills/spfx-fast/SKILL.md b/skills/spfx-fast/SKILL.md index 871846e4f..ed9cd5a2f 100644 --- a/skills/spfx-fast/SKILL.md +++ b/skills/spfx-fast/SKILL.md @@ -11,14 +11,14 @@ Use this skill when a user asks for an SPFx app or feature. SPFx Fast complement 1. Inspect the repository, SPFx version, signed-in site context, lists, columns, internal names, and permissions. Never guess tenant IDs, fields, URLs, or access. 2. Install `@spfx-fast/core` with the project's package manager. Read `node_modules/@spfx-fast/core/agent/SKILL.md` and `agent/capabilities.json` before coding. -3. Choose a starter with `pnpm dlx --package @spfx-fast/core spfx-fast use-cases` or `pnpm dlx --package @spfx-fast/core spfx-fast scenarios`. With npm, use `npx --yes --package=@spfx-fast/core -- spfx-fast`. Generate only after inspecting the target schema: +3. Choose a starter with `pnpm exec spfx-fast use-cases` or `pnpm exec spfx-fast scenarios`. With npm, use `npx --no-install spfx-fast`. Generate only after inspecting the target schema: ```sh - pnpm dlx --package @spfx-fast/core spfx-fast dashboard --site-id --use-case --list-id + pnpm exec spfx-fast dashboard --site-id --use-case --list-id ``` - Replace the pnpm prefix with `npx --yes --package=@spfx-fast/core -- spfx-fast` to use npm. -4. Run `pnpm dlx --package @spfx-fast/core spfx-fast agent init` and `pnpm dlx --package @spfx-fast/core spfx-fast agent doctor`. Use the same npm prefix above when needed. Doctor checks local setup, not tenant permissions. + With npm, replace `pnpm exec` with `npx --no-install`. +4. Run `pnpm exec spfx-fast agent init` and `pnpm exec spfx-fast agent doctor`. With npm, use `npx --no-install spfx-fast`. Doctor checks local setup, not tenant permissions. 5. Initialize services once per web part with `const services = await createSPFxServices(context, SPHttpClient.configurations.v1)`. It is asynchronous; await it before using `client`, `sharepoint`, or `rest`. Do not acquire tokens independently or store credentials. 6. If the app calls Graph, add only the required delegated scopes to `webApiPermissionRequests` in `config/package-solution.json`, then have a SharePoint admin approve them in the tenant API access page. Sign-in alone does not grant Graph scopes; missing consent can cause 403 responses. Use the endpoint's least-privileged scope. SharePoint REST uses the authenticated SPFx REST client and does not need Graph scopes. 7. Preserve permission checks, bounded reads, loading/error states, accessible controls, and confirmation before writes or deletes. Ask an available design skill to polish the starter to the user's taste. From d5640be8c1183c528cb64b5e208b9e02268de6d6 Mon Sep 17 00:00:00 2001 From: Vilius Vystartas Date: Fri, 30 Oct 2026 06:11:30 +0000 Subject: [PATCH 6/6] Use package path for capabilities file --- skills/spfx-fast/SKILL.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/skills/spfx-fast/SKILL.md b/skills/spfx-fast/SKILL.md index ed9cd5a2f..523503936 100644 --- a/skills/spfx-fast/SKILL.md +++ b/skills/spfx-fast/SKILL.md @@ -10,7 +10,7 @@ Use this skill when a user asks for an SPFx app or feature. SPFx Fast complement ## Start 1. Inspect the repository, SPFx version, signed-in site context, lists, columns, internal names, and permissions. Never guess tenant IDs, fields, URLs, or access. -2. Install `@spfx-fast/core` with the project's package manager. Read `node_modules/@spfx-fast/core/agent/SKILL.md` and `agent/capabilities.json` before coding. +2. Install `@spfx-fast/core` with the project's package manager. Read `node_modules/@spfx-fast/core/agent/SKILL.md` and `node_modules/@spfx-fast/core/agent/capabilities.json` before coding. 3. Choose a starter with `pnpm exec spfx-fast use-cases` or `pnpm exec spfx-fast scenarios`. With npm, use `npx --no-install spfx-fast`. Generate only after inspecting the target schema: ```sh