diff --git a/.claude/commands/powershell-standards/code-analysis.md b/.claude/commands/powershell-standards/code-analysis.md new file mode 100644 index 0000000..4a2f7e7 --- /dev/null +++ b/.claude/commands/powershell-standards/code-analysis.md @@ -0,0 +1,20 @@ +--- +description: 'Comprehensive code quality analysis with expert-reviewed standards' +argument-hint: '[file-or-code]' +--- + +Run the shared prompt in @.github/prompts/code-analysis.prompt.md. + +That file is written for GitHub Copilot Chat and is the only copy of the prompt. Apply it here as +follows: + +- Ignore its `agent` and `tools` frontmatter. +- `${input:NAME:...}` is a value to collect. Take it from the arguments below when they supply it, + otherwise ask before starting. The text after the name lists the choices or a placeholder, and a + final segment after another colon is the default. +- `${selection}` is the code the user selected or named in the arguments. `${fileBasename}` is the + file that code lives in, and `${workspaceFolderBasename}` is the repository folder name. +- If the contents of the prompt file are not shown above, read `.github/prompts/code-analysis.prompt.md` + before doing anything else. + +Arguments: $ARGUMENTS diff --git a/.claude/commands/powershell-standards/create-module.md b/.claude/commands/powershell-standards/create-module.md new file mode 100644 index 0000000..2bcf554 --- /dev/null +++ b/.claude/commands/powershell-standards/create-module.md @@ -0,0 +1,20 @@ +--- +description: 'Generates complete PowerShell module structure' +argument-hint: '[moduleName] [purpose] [audience] [complexity]' +--- + +Run the shared prompt in @.github/prompts/create-module.prompt.md. + +That file is written for GitHub Copilot Chat and is the only copy of the prompt. Apply it here as +follows: + +- Ignore its `agent` and `tools` frontmatter. +- `${input:NAME:...}` is a value to collect. Take it from the arguments below when they supply it, + otherwise ask before starting. The text after the name lists the choices or a placeholder, and a + final segment after another colon is the default. +- `${selection}` is the code the user selected or named in the arguments. `${fileBasename}` is the + file that code lives in, and `${workspaceFolderBasename}` is the repository folder name. +- If the contents of the prompt file are not shown above, read `.github/prompts/create-module.prompt.md` + before doing anything else. + +Arguments: $ARGUMENTS diff --git a/.claude/commands/powershell-standards/create-test.md b/.claude/commands/powershell-standards/create-test.md new file mode 100644 index 0000000..be314e7 --- /dev/null +++ b/.claude/commands/powershell-standards/create-test.md @@ -0,0 +1,20 @@ +--- +description: 'Generate comprehensive tests following modern PowerShell patterns' +argument-hint: '[file-or-code] [testType] [coverage] [environment] [pesterVersion]' +--- + +Run the shared prompt in @.github/prompts/create-test.prompt.md. + +That file is written for GitHub Copilot Chat and is the only copy of the prompt. Apply it here as +follows: + +- Ignore its `agent` and `tools` frontmatter. +- `${input:NAME:...}` is a value to collect. Take it from the arguments below when they supply it, + otherwise ask before starting. The text after the name lists the choices or a placeholder, and a + final segment after another colon is the default. +- `${selection}` is the code the user selected or named in the arguments. `${fileBasename}` is the + file that code lives in, and `${workspaceFolderBasename}` is the repository folder name. +- If the contents of the prompt file are not shown above, read `.github/prompts/create-test.prompt.md` + before doing anything else. + +Arguments: $ARGUMENTS diff --git a/.claude/commands/powershell-standards/create-workflow.md b/.claude/commands/powershell-standards/create-workflow.md new file mode 100644 index 0000000..c357971 --- /dev/null +++ b/.claude/commands/powershell-standards/create-workflow.md @@ -0,0 +1,20 @@ +--- +description: 'Generates business workflow automation' +argument-hint: '[process] [trigger] [integrations] [errorHandling]' +--- + +Run the shared prompt in @.github/prompts/create-workflow.prompt.md. + +That file is written for GitHub Copilot Chat and is the only copy of the prompt. Apply it here as +follows: + +- Ignore its `agent` and `tools` frontmatter. +- `${input:NAME:...}` is a value to collect. Take it from the arguments below when they supply it, + otherwise ask before starting. The text after the name lists the choices or a placeholder, and a + final segment after another colon is the default. +- `${selection}` is the code the user selected or named in the arguments. `${fileBasename}` is the + file that code lives in, and `${workspaceFolderBasename}` is the repository folder name. +- If the contents of the prompt file are not shown above, read `.github/prompts/create-workflow.prompt.md` + before doing anything else. + +Arguments: $ARGUMENTS diff --git a/.claude/commands/powershell-standards/new-function.md b/.claude/commands/powershell-standards/new-function.md new file mode 100644 index 0000000..b051f3b --- /dev/null +++ b/.claude/commands/powershell-standards/new-function.md @@ -0,0 +1,20 @@ +--- +description: 'Creates enterprise-standard PowerShell function with modern best practices' +argument-hint: '[functionName] [purpose] [parameters] [environment] [psVersion]' +--- + +Run the shared prompt in @.github/prompts/new-function.prompt.md. + +That file is written for GitHub Copilot Chat and is the only copy of the prompt. Apply it here as +follows: + +- Ignore its `agent` and `tools` frontmatter. +- `${input:NAME:...}` is a value to collect. Take it from the arguments below when they supply it, + otherwise ask before starting. The text after the name lists the choices or a placeholder, and a + final segment after another colon is the default. +- `${selection}` is the code the user selected or named in the arguments. `${fileBasename}` is the + file that code lives in, and `${workspaceFolderBasename}` is the repository folder name. +- If the contents of the prompt file are not shown above, read `.github/prompts/new-function.prompt.md` + before doing anything else. + +Arguments: $ARGUMENTS diff --git a/.claude/commands/powershell-standards/optimize-performance.md b/.claude/commands/powershell-standards/optimize-performance.md new file mode 100644 index 0000000..473e44a --- /dev/null +++ b/.claude/commands/powershell-standards/optimize-performance.md @@ -0,0 +1,20 @@ +--- +description: 'PowerShell performance optimization with specific targets' +argument-hint: '[file-or-code] [datasetSize] [performanceTarget] [environment] [criticality]' +--- + +Run the shared prompt in @.github/prompts/optimize-performance.prompt.md. + +That file is written for GitHub Copilot Chat and is the only copy of the prompt. Apply it here as +follows: + +- Ignore its `agent` and `tools` frontmatter. +- `${input:NAME:...}` is a value to collect. Take it from the arguments below when they supply it, + otherwise ask before starting. The text after the name lists the choices or a placeholder, and a + final segment after another colon is the default. +- `${selection}` is the code the user selected or named in the arguments. `${fileBasename}` is the + file that code lives in, and `${workspaceFolderBasename}` is the repository folder name. +- If the contents of the prompt file are not shown above, read `.github/prompts/optimize-performance.prompt.md` + before doing anything else. + +Arguments: $ARGUMENTS diff --git a/.claude/commands/powershell-standards/performance-analysis.md b/.claude/commands/powershell-standards/performance-analysis.md new file mode 100644 index 0000000..c9cc603 --- /dev/null +++ b/.claude/commands/powershell-standards/performance-analysis.md @@ -0,0 +1,20 @@ +--- +description: 'Detailed performance analysis and benchmarking' +argument-hint: '[file-or-code] [analysisScope] [metrics] [baseline] [target]' +--- + +Run the shared prompt in @.github/prompts/performance-analysis.prompt.md. + +That file is written for GitHub Copilot Chat and is the only copy of the prompt. Apply it here as +follows: + +- Ignore its `agent` and `tools` frontmatter. +- `${input:NAME:...}` is a value to collect. Take it from the arguments below when they supply it, + otherwise ask before starting. The text after the name lists the choices or a placeholder, and a + final segment after another colon is the default. +- `${selection}` is the code the user selected or named in the arguments. `${fileBasename}` is the + file that code lives in, and `${workspaceFolderBasename}` is the repository folder name. +- If the contents of the prompt file are not shown above, read `.github/prompts/performance-analysis.prompt.md` + before doing anything else. + +Arguments: $ARGUMENTS diff --git a/.claude/commands/powershell-standards/scaffold-project.md b/.claude/commands/powershell-standards/scaffold-project.md new file mode 100644 index 0000000..d6b7f4a --- /dev/null +++ b/.claude/commands/powershell-standards/scaffold-project.md @@ -0,0 +1,20 @@ +--- +description: 'Creates complete project scaffold with CI/CD' +argument-hint: '[projectName] [projectType] [cicd] [deployment]' +--- + +Run the shared prompt in @.github/prompts/scaffold-project.prompt.md. + +That file is written for GitHub Copilot Chat and is the only copy of the prompt. Apply it here as +follows: + +- Ignore its `agent` and `tools` frontmatter. +- `${input:NAME:...}` is a value to collect. Take it from the arguments below when they supply it, + otherwise ask before starting. The text after the name lists the choices or a placeholder, and a + final segment after another colon is the default. +- `${selection}` is the code the user selected or named in the arguments. `${fileBasename}` is the + file that code lives in, and `${workspaceFolderBasename}` is the repository folder name. +- If the contents of the prompt file are not shown above, read `.github/prompts/scaffold-project.prompt.md` + before doing anything else. + +Arguments: $ARGUMENTS diff --git a/.claude/commands/powershell-standards/security-review.md b/.claude/commands/powershell-standards/security-review.md new file mode 100644 index 0000000..e29c5ad --- /dev/null +++ b/.claude/commands/powershell-standards/security-review.md @@ -0,0 +1,20 @@ +--- +description: 'Security analysis with modern PowerShell patterns' +argument-hint: '[file-or-code] [complianceFramework] [environment]' +--- + +Run the shared prompt in @.github/prompts/security-review.prompt.md. + +That file is written for GitHub Copilot Chat and is the only copy of the prompt. Apply it here as +follows: + +- Ignore its `agent` and `tools` frontmatter. +- `${input:NAME:...}` is a value to collect. Take it from the arguments below when they supply it, + otherwise ask before starting. The text after the name lists the choices or a placeholder, and a + final segment after another colon is the default. +- `${selection}` is the code the user selected or named in the arguments. `${fileBasename}` is the + file that code lives in, and `${workspaceFolderBasename}` is the repository folder name. +- If the contents of the prompt file are not shown above, read `.github/prompts/security-review.prompt.md` + before doing anything else. + +Arguments: $ARGUMENTS diff --git a/.claude/commands/powershell-standards/validate-standards.md b/.claude/commands/powershell-standards/validate-standards.md new file mode 100644 index 0000000..3d0a611 --- /dev/null +++ b/.claude/commands/powershell-standards/validate-standards.md @@ -0,0 +1,20 @@ +--- +description: 'Validates code against PowerShell community standards' +argument-hint: '[file-or-code]' +--- + +Run the shared prompt in @.github/prompts/validate-standards.prompt.md. + +That file is written for GitHub Copilot Chat and is the only copy of the prompt. Apply it here as +follows: + +- Ignore its `agent` and `tools` frontmatter. +- `${input:NAME:...}` is a value to collect. Take it from the arguments below when they supply it, + otherwise ask before starting. The text after the name lists the choices or a placeholder, and a + final segment after another colon is the default. +- `${selection}` is the code the user selected or named in the arguments. `${fileBasename}` is the + file that code lives in, and `${workspaceFolderBasename}` is the repository folder name. +- If the contents of the prompt file are not shown above, read `.github/prompts/validate-standards.prompt.md` + before doing anything else. + +Arguments: $ARGUMENTS diff --git a/.claude/rules/powershell-standards/pull-requests.md b/.claude/rules/powershell-standards/pull-requests.md new file mode 100644 index 0000000..3ac3368 --- /dev/null +++ b/.claude/rules/powershell-standards/pull-requests.md @@ -0,0 +1,6 @@ +@../../../.github/instructions/pull-requests.instructions.md + +Source of this rule: `.github/instructions/pull-requests.instructions.md` (shared with GitHub Copilot, +which applies it to every file through `applyTo: '**'`). This rule has no `paths`, so Claude Code loads +it at launch: opening a pull request does not always involve reading a file. Relative links inside it +resolve from `.github/instructions/`. diff --git a/.github/instructions/analyze.instructions.md b/.github/instructions/analyze.instructions.md index 041a517..a937358 100644 --- a/.github/instructions/analyze.instructions.md +++ b/.github/instructions/analyze.instructions.md @@ -1,7 +1,5 @@ --- -mode: 'agent' applyTo: "**/*.ps1,**/*.psm1,**/*.psd1" -tools: ['codebase', 'githubRepo'] description: 'Performs comprehensive PowerShell code analysis for quality, security, and performance' --- diff --git a/.github/instructions/architecturedesign.instructions.md b/.github/instructions/architecturedesign.instructions.md index 9a1e00c..5d6ef1a 100644 --- a/.github/instructions/architecturedesign.instructions.md +++ b/.github/instructions/architecturedesign.instructions.md @@ -1,7 +1,5 @@ --- -mode: 'agent' applyTo: "**/*.psm1,**/module.json,**/README.md" -tools: ['codebase', 'githubRepo'] description: 'Designs enterprise-grade PowerShell architecture using proven design patterns and best practices' --- diff --git a/.github/instructions/cicd.instructions.md b/.github/instructions/cicd.instructions.md index 78b0783..0703029 100644 --- a/.github/instructions/cicd.instructions.md +++ b/.github/instructions/cicd.instructions.md @@ -1,7 +1,5 @@ --- -mode: 'agent' applyTo: "**/.github/workflows/*.yml,**/.github/workflows/*.yaml,**/azure-pipelines.yml,**/build.ps1,**/deploy.ps1" -tools: ['codebase', 'githubRepo'] description: 'Sets up comprehensive CI/CD pipelines for PowerShell projects with automated testing and deployment' --- diff --git a/.github/instructions/comments.instructions.md b/.github/instructions/comments.instructions.md index 48cae17..024a926 100644 --- a/.github/instructions/comments.instructions.md +++ b/.github/instructions/comments.instructions.md @@ -1,5 +1,4 @@ --- -mode: 'edit' applyTo: "**/*.ps1,**/*.psm1" description: 'Defines help content standards for PowerShell functions - comment-based help and PlatyPS Markdown' --- diff --git a/.github/instructions/errorsandlogs.instructions.md b/.github/instructions/errorsandlogs.instructions.md index bc32678..c364226 100644 --- a/.github/instructions/errorsandlogs.instructions.md +++ b/.github/instructions/errorsandlogs.instructions.md @@ -1,7 +1,5 @@ --- -mode: 'agent' applyTo: "**/*.ps1,**/*.psm1" -tools: ['codebase', 'githubRepo'] description: 'Implements comprehensive error handling and structured logging for PowerShell solutions' --- diff --git a/.github/instructions/module.instructions.md b/.github/instructions/module.instructions.md index 2d17522..0c38b1b 100644 --- a/.github/instructions/module.instructions.md +++ b/.github/instructions/module.instructions.md @@ -1,7 +1,5 @@ --- -mode: 'agent' applyTo: "**/*.psm1,**/*.psd1,**/Public/*.ps1,**/Private/*.ps1" -tools: ['codebase', 'githubRepo'] description: 'Creates enterprise-grade PowerShell modules with proper structure, security, and functionality' --- diff --git a/.github/instructions/pester.instructions.md b/.github/instructions/pester.instructions.md index f19c891..7f4a4ff 100644 --- a/.github/instructions/pester.instructions.md +++ b/.github/instructions/pester.instructions.md @@ -1,6 +1,5 @@ --- applyTo: "**/Tests/**/*.ps1,**/*.Tests.ps1" -tools: ['codebase', 'githubRepo'] description: 'Creates comprehensive Pester 6 test suites for PowerShell code with enterprise testing standards' --- diff --git a/.github/instructions/platyps.instructions.md b/.github/instructions/platyps.instructions.md index 9c0be4d..9a6ab89 100644 --- a/.github/instructions/platyps.instructions.md +++ b/.github/instructions/platyps.instructions.md @@ -1,6 +1,5 @@ --- applyTo: "**/docs/**/*.md,**/Public/*.ps1,**/*.psd1" -tools: ['codebase', 'githubRepo'] description: 'Generates and maintains module help documentation with Microsoft.PowerShell.PlatyPS, shipping MAML external help' --- diff --git a/.github/instructions/powershell-version.instructions.md b/.github/instructions/powershell-version.instructions.md index b8e9cc9..6e0cef8 100644 --- a/.github/instructions/powershell-version.instructions.md +++ b/.github/instructions/powershell-version.instructions.md @@ -1,6 +1,5 @@ --- applyTo: "**/*.ps1,**/*.psm1,**/*.psd1" -tools: ['codebase', 'githubRepo'] description: 'PowerShell version baseline, support lifecycle, and version-dependent language/cmdlet features' --- diff --git a/.github/instructions/pull-requests.instructions.md b/.github/instructions/pull-requests.instructions.md new file mode 100644 index 0000000..c4efe2f --- /dev/null +++ b/.github/instructions/pull-requests.instructions.md @@ -0,0 +1,153 @@ +--- +applyTo: '**' +description: 'How to branch, commit, and open pull requests in repositories that use these standards' +--- + +# Branches, Commits, and Pull Requests + +Follow these whenever you commit or open a pull request. They match the history already in these +repositories, so a new PR reads like the ones before it. + +## Branch + +- Never commit to the default branch. Start from an up-to-date default branch. +- Name the branch `/`, with the same type as the title: + `feat/onelogin-provider`, `fix/release-notes-length`, `docs/pester-6-2`. +- A release branch is `release/vX.Y.Z`. +- One concern per branch. Unrelated fixes found on the way get their own branch and PR. + +## Commit Messages and PR Title + +Use [Conventional Commits](https://www.conventionalcommits.org/). The PR title follows the same form +as the commit, because a squash merge turns the title into the commit on the default branch. + +```text +(): +``` + +- **Type**: `feat`, `fix`, `docs`, `refactor`, `test`, `perf`, `ci`, `build`, or `chore`. A release + is `release: X.Y.Z`. +- **Scope**: optional. The area touched, in lower case: `feat(graph)`, `fix(release)`, + `docs(pester)`. +- **Subject**: imperative mood, lower case, no trailing period, at most 72 characters. Say what the + change does, not which files it touched. +- **Body**: wrap at 72 columns. Explain why the change was needed and what it fixes. The diff already + shows how. +- **Breaking change**: add `!` after the type or scope, and a `BREAKING CHANGE:` footer saying what a + caller must do. +- **Attribution**: no `Co-Authored-By` trailer, "Generated with" footer, or any other AI tool + attribution in commits, PR titles, PR bodies, or files. + +## Write for a Reader Who Was Not There + +Commit messages and PRs are permanent records. They are read months later by reviewers, maintainers, +and auditors who never saw the conversation that produced the change. Write every one so it stands on +its own for that reader. + +- **Describe the change, not the session.** State what the code does now and why. Leave out how the + work unfolded: the approaches tried and dropped, the order things were done in, what was fixed + along the way. Mention a rejected approach only when a reviewer would otherwise ask why it was not + used. +- **No conversational voice.** No "as discussed", "per your request", "you asked", "I noticed", + "let me know", "happy to", or "we decided". Write in the third person about the code: "Adds", + "Fixes", "The gate now fails when". +- **No references a stranger cannot resolve.** No "the earlier issue", "the approach above", "option + B", "the second fix", or names coined during the session. Link an issue, PR, commit, or file, or + describe the thing itself. +- **No assistant artifacts.** No mention of an AI tool, prompts, or chat. No hedging written for the + person at the keyboard, such as "should work now" or "hopefully". +- **Explain the domain.** Expand acronyms on first use and name the command or setting involved, so + a reviewer outside the team can follow. + +A quick test: if the text would read oddly pasted into a changelog or a release note, rewrite it. + +## Before Opening the PR + +1. Run the repository's gates locally. At minimum PSScriptAnalyzer and Pester, plus markdownlint + when Markdown changed. Use the same commands the CI workflow runs. +2. When the repository keeps a `CHANGELOG.md`, add the change under `## [Unreleased]` in the + [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) section that fits: `Added`, `Changed`, + `Fixed`, `Removed`, `Deprecated`, or `Security`. Write it for someone using the module. +3. When a public function's signature changed, update its PlatyPS Markdown under `docs/`, as + [platyps.instructions.md](./platyps.instructions.md) describes. +4. In a repository that consumes these standards, one with + `.github/workflows/sync-copilot-standards.yml`, do not edit the paths that workflow mirrors: + `.github/copilot-instructions.md`, `.github/instructions/`, `.github/prompts/`, + `powershell-standards/`, `.claude/rules/powershell-standards/`, and + `.claude/commands/powershell-standards/`. The next sync overwrites them, so change + [ai-powershell-standards](https://github.com/fadwen/ai-powershell-standards) instead. In + ai-powershell-standards itself those paths are the source, and editing them is the point. + +Open the PR as a draft when a gate fails and you cannot fix it, and say which gate in the body. + +## PR Body + +Use these sections, in this order. Leave out a section only when it would be empty. + +```markdown +## Summary + +What changed and why, in a few sentences. Lead with the problem it solves. + +## Changes + +- One bullet per change a reviewer should know about. + +## Verification + +- The commands you ran and their results, for example "Pester: 248 passed, 0 failed". +- Anything you could not verify, stated plainly. + +## Notes + +- Merge order, follow-ups, or decisions left for the reviewer. +``` + +- Link the issue it resolves with `Closes #123` in the Summary. +- When the PR depends on another, in this repository or elsewhere, say which one merges first. +- Report results as they were. A skipped or failing check is written as skipped or failing. + +## After Opening + +- Watch the PR's checks. When one fails, read its log, fix the cause, and push to the same branch. +- Annotate the diff, as described below. +- Do not merge your own PR, force-push a branch someone else has reviewed, or delete a branch unless + asked. + +## Annotate the Diff + +Once the PR is open, read its diff as a reviewer would and leave inline review comments on the lines +whose reason the code does not make plain. They explain the change to the reviewer now and stay +attached to the PR for anyone tracing the line's history later. + +Decide first where each explanation belongs: + +- **Why the code is the way it is** belongs in a code comment, because it must stay true as long as + the code does. Add the code comment rather than a review comment. +- **Why the code changed** belongs in a review comment, because it describes this change and would + go stale in the code. That covers a deleted guard, a changed default, a test expectation that + moved, a workaround for a tool's behavior, a value chosen from several reasonable ones, or a line + that fixes a bug found elsewhere. + +Skip lines whose reason is already plain from the code, a code comment, or the PR body. Do not +restate what a line does. A PR with nothing that needs explaining needs no annotations. + +Post all the annotations as a single review with the `COMMENT` event, so they arrive together and +do not approve or block the PR. The same audience rules apply as for the PR body. `gh pr review` +cannot comment on lines, so use the REST API: + +```powershell +$review = @{ + commit_id = (gh pr view --json headRefOid --jq .headRefOid) + event = 'COMMENT' + body = 'Notes on the lines whose reason the diff does not show.' + comments = @( + @{ path = 'Public/Get-Thing.ps1'; line = 42; side = 'RIGHT'; body = 'Why this line changed.' } + ) +} +# ConvertTo-Json stops at a depth of 2 by default, which would turn each comment into a string +$review | ConvertTo-Json -Depth 5 | gh api --method POST repos///pulls//reviews --input - +``` + +`line` is the line number in the file as the PR leaves it, with `side = 'RIGHT'`. For a deleted line, +use its number in the old file with `side = 'LEFT'`. A comment must sit on a line inside the diff. diff --git a/.github/instructions/readme.instructions.md b/.github/instructions/readme.instructions.md index 5ff9203..f061402 100644 --- a/.github/instructions/readme.instructions.md +++ b/.github/instructions/readme.instructions.md @@ -1,5 +1,4 @@ --- -mode: 'edit' applyTo: "**/README.md,**/readme.md,**/Readme.md" description: 'Creates comprehensive, enterprise-grade README documentation for PowerShell projects' --- diff --git a/.github/instructions/securitycompliance.instructions.md b/.github/instructions/securitycompliance.instructions.md index a8cd30d..d7ae4b6 100644 --- a/.github/instructions/securitycompliance.instructions.md +++ b/.github/instructions/securitycompliance.instructions.md @@ -1,7 +1,5 @@ --- -mode: 'agent' applyTo: "**/*.ps1,**/*.psm1,**/Security/**/*.ps1" -tools: ['codebase', 'githubRepo'] description: 'Implements security controls and compliance-support patterns for PowerShell solutions' --- diff --git a/.github/prompts/code-analysis.prompt.md b/.github/prompts/code-analysis.prompt.md index d17e48c..96a0bca 100644 --- a/.github/prompts/code-analysis.prompt.md +++ b/.github/prompts/code-analysis.prompt.md @@ -1,7 +1,7 @@ --- -mode: 'agent' +agent: 'agent' description: 'Comprehensive code quality analysis with expert-reviewed standards' -tools: ['codebase'] +tools: ['search/codebase'] --- Perform thorough analysis of this PowerShell code against modern best practices: diff --git a/.github/prompts/create-module.prompt.md b/.github/prompts/create-module.prompt.md index 7bab395..f1ff4bd 100644 --- a/.github/prompts/create-module.prompt.md +++ b/.github/prompts/create-module.prompt.md @@ -1,7 +1,7 @@ --- -mode: 'agent' +agent: 'agent' description: 'Generates complete PowerShell module structure' -tools: ['codebase'] +tools: ['search/codebase'] --- Create a complete PowerShell module for ${workspaceFolderBasename} with enterprise standards: diff --git a/.github/prompts/create-test.prompt.md b/.github/prompts/create-test.prompt.md index f245d23..d0e3ee6 100644 --- a/.github/prompts/create-test.prompt.md +++ b/.github/prompts/create-test.prompt.md @@ -1,7 +1,7 @@ --- -mode: 'agent' +agent: 'agent' description: 'Generate comprehensive tests following modern PowerShell patterns' -tools: ['codebase'] +tools: ['search/codebase'] --- Create Pester tests for this PowerShell code: diff --git a/.github/prompts/create-workflow.prompt.md b/.github/prompts/create-workflow.prompt.md index ad96b6a..b5aede9 100644 --- a/.github/prompts/create-workflow.prompt.md +++ b/.github/prompts/create-workflow.prompt.md @@ -1,7 +1,7 @@ --- -mode: 'agent' +agent: 'agent' description: 'Generates business workflow automation' -tools: ['codebase'] +tools: ['search/codebase'] --- Create PowerShell workflow automation for ${workspaceFolderBasename}: diff --git a/.github/prompts/new-function.prompt.md b/.github/prompts/new-function.prompt.md index 93772ce..958d673 100644 --- a/.github/prompts/new-function.prompt.md +++ b/.github/prompts/new-function.prompt.md @@ -1,7 +1,7 @@ --- -mode: 'agent' +agent: 'agent' description: 'Creates enterprise-standard PowerShell function with modern best practices' -tools: ['codebase'] +tools: ['search/codebase'] --- Create a PowerShell function with these specifications: diff --git a/.github/prompts/optimize-performance.prompt.md b/.github/prompts/optimize-performance.prompt.md index 0e9575a..811fc94 100644 --- a/.github/prompts/optimize-performance.prompt.md +++ b/.github/prompts/optimize-performance.prompt.md @@ -1,7 +1,7 @@ --- -mode: 'agent' +agent: 'agent' description: 'PowerShell performance optimization with specific targets' -tools: ['codebase'] +tools: ['search/codebase'] --- Analyze and optimize this PowerShell code from ${fileBasename} in the ${workspaceFolderBasename} project: diff --git a/.github/prompts/performance-analysis.prompt.md b/.github/prompts/performance-analysis.prompt.md index 1cf40f6..3af3196 100644 --- a/.github/prompts/performance-analysis.prompt.md +++ b/.github/prompts/performance-analysis.prompt.md @@ -1,7 +1,7 @@ --- -mode: 'agent' +agent: 'agent' description: 'Detailed performance analysis and benchmarking' -tools: ['codebase'] +tools: ['search/codebase'] --- Perform comprehensive performance analysis of PowerShell code in ${fileBasename}: diff --git a/.github/prompts/scaffold-project.prompt.md b/.github/prompts/scaffold-project.prompt.md index 70cd2ab..d1a111f 100644 --- a/.github/prompts/scaffold-project.prompt.md +++ b/.github/prompts/scaffold-project.prompt.md @@ -1,7 +1,7 @@ --- -mode: 'agent' +agent: 'agent' description: 'Creates complete project scaffold with CI/CD' -tools: ['codebase', 'githubRepo'] +tools: ['search/codebase', 'githubRepo'] --- Generate complete project scaffold for ${input:projectName:PowerShell-Project}: diff --git a/.github/prompts/security-review.prompt.md b/.github/prompts/security-review.prompt.md index bd8a1c0..2d04afc 100644 --- a/.github/prompts/security-review.prompt.md +++ b/.github/prompts/security-review.prompt.md @@ -1,5 +1,5 @@ --- -mode: 'edit' +agent: 'agent' description: 'Security analysis with modern PowerShell patterns' --- diff --git a/.github/prompts/validate-standards.prompt.md b/.github/prompts/validate-standards.prompt.md index 465227e..c5bdab6 100644 --- a/.github/prompts/validate-standards.prompt.md +++ b/.github/prompts/validate-standards.prompt.md @@ -1,5 +1,5 @@ --- -mode: 'edit' +agent: 'agent' description: 'Validates code against PowerShell community standards' ---