You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
chore(docs): correct New-MsDateReport table rendering and refresh stale docs (#1114)
# chore(docs): correct New-MsDateReport table rendering and refresh
stale docs
## Description
This PR fixes a bug in `Invoke-MsDateFreshnessCheck.ps1` that caused
merged table rows in GitHub Actions step summaries, refreshes ms.date
frontmatter on thirteen stale documentation files, and documents
previously undocumented scripts, modules, and workflows across three
scripts READMEs. A separate correction to `docs/contributing/prompts.md`
aligns the frontmatter field documentation with actual prompt file
practice in the repository.
### Bug Fix — `New-MsDateReport` table rendering
`New-MsDateReport` builds a markdown table using a PowerShell
here-string. The here-string terminator `"@` consumed the trailing
newline of the separator row `|------|---------|------------|`, causing
the first `foreach` data row to append directly onto the separator line.
In GitHub Actions step summaries this produced merged output like:
```
|------|---------|------------|| scripts/tests/Fixtures/Frontmatter/valid-docs.md | ...
```
Fix: insert `$markdown += "\`n"` immediately after the `"@` closing of
the header here-string.
### Documentation — `docs/contributing/prompts.md`
The frontmatter fields section was out of sync with actual `.prompt.md`
files in the repository:
- `mode` was documented as MANDATORY but is absent from all prompt
files; moved to Optional Fields.
- `category` was listed as optional but is not used in any prompt file
or standard; removed.
- Four new optional fields documented: `agent`, `argument-hint`,
`model`, `disable-model-invocation`.
- New Input Variables section: `${input:varName:defaultValue}` syntax.
- New Activation Lines section: `---` separator as the workflow entry
point pattern.
- Frontmatter example updated to match corrected field set.
### Documentation — Scripts READMEs
`scripts/linting/README.md`: Added documentation for three previously
undocumented scripts (`Invoke-MsDateFreshnessCheck.ps1`,
`Invoke-PythonLint.ps1`, `Invoke-PythonTests.ps1`), the
`Modules/FrontmatterValidation.psm1` module with its three exported
classes, and five workflow rows (`msdate-freshness-check.yml`,
`python-lint.yml`, `pytest-tests.yml`, `copyright-headers.yml`,
`skill-validation.yml`).
`scripts/security/README.md`: Added documentation for two previously
undocumented scripts (`Invoke-PipAudit.ps1`,
`Test-WorkflowPermissions.ps1`) and two workflow rows (`pip-audit.yml`,
`workflow-permissions-scan.yml`).
`scripts/README.md`: Added three rows to the Linting Scripts
cross-reference table.
### ms.date Refreshes
Updated `ms.date` to `2026-03-17` on thirteen files that exceeded the
staleness threshold. No content changes to those files beyond the date
field.
## Related Issue(s)
| Issue(s) | Files Affected | Resolution Method |
|---|---|---|
| #1113 | `scripts/linting/Invoke-MsDateFreshnessCheck.ps1` | Bug fix:
inserted missing newline after table header here-string in
`New-MsDateReport` |
| #1061 | `docs/contributing/instructions.md` | ms.date update |
| #1062 | `docs/contributing/prompts.md` | Content update: corrected
frontmatter field documentation |
| #1063, #1064, #1065, #1066, #1067, #1068, #1069, #1070, #1071, #1072,
#1073, #1074 | `docs/templates/adr-template-solutions.md` (canonical);
plugin copies resolved via symlink | ms.date update on canonical file;
symlinks propagate to all 11 plugin copies |
| #1075, #1076, #1077, #1078, #1079, #1080, #1081, #1082, #1083, #1084,
#1085, #1087 | `scripts/lib/README.md` (canonical); plugin copies
resolved via symlink | ms.date update on canonical file; symlinks
propagate to all 11 plugin copies |
| #1086 | `scripts/extension/README.md` | ms.date update |
| #1088 | `scripts/linting/README.md` | Content update + ms.date: added
3 scripts, 1 module, 5 workflow rows |
| #1089 | `scripts/security/README.md` | Content update + ms.date: added
2 scripts, 2 workflow rows |
| #1090 | `scripts/tests/Fixtures/Frontmatter/valid-docs.md` | ms.date
update |
| #1091 | `scripts/tests/README.md` | ms.date update |
| #1092 | `scripts/README.md` | Content update + ms.date: added 3
linting script rows |
| #1093 | `CODE_OF_CONDUCT.md` | ms.date update |
| #1094 | `SUPPORT.md` | ms.date update |
## Type of Change
Select all that apply:
**Code & Documentation:**
* [x] Bug fix (non-breaking change fixing an issue)
* [ ] New feature (non-breaking change adding functionality)
* [ ] Breaking change (fix or feature causing existing functionality to
change)
* [x] Documentation update
**Infrastructure & Configuration:**
* [ ] GitHub Actions workflow
* [ ] Linting configuration (markdown, PowerShell, etc.)
* [ ] Security configuration
* [ ] DevContainer configuration
* [ ] Dependency update
**AI Artifacts:**
* [ ] Reviewed contribution with `prompt-builder` agent and addressed
all feedback
* [ ] Copilot instructions (`.github/instructions/*.instructions.md`)
* [ ] Copilot prompt (`.github/prompts/*.prompt.md`)
* [ ] Copilot agent (`.github/agents/*.agent.md`)
* [ ] Copilot skill (`.github/skills/*/SKILL.md`)
> Note for AI Artifact Contributors:
>
> * Agents: Research, indexing/referencing other project (using standard
VS Code GitHub Copilot/MCP tools), planning, and general implementation
agents likely already exist. Review `.github/agents/` before creating
new ones.
> * Skills: Must include both bash and PowerShell scripts. See
[Skills](../docs/contributing/skills.md).
> * Model Versions: Only contributions targeting the **latest Anthropic
and OpenAI models** will be accepted. Older model versions (e.g.,
GPT-3.5, Claude 3) will be rejected.
> * See [Agents Not
Accepted](../docs/contributing/custom-agents.md#agents-not-accepted) and
[Model Version
Requirements](../docs/contributing/ai-artifacts-common.md#model-version-requirements).
**Other:**
* [x] Script/automation (`.ps1`, `.sh`, `.py`)
* [ ] Other (please describe):
## Testing
The bug fix was validated by running the full Pester test suite (1841
tests; 0 failures) and PSScriptAnalyzer (0 violations). Documentation
changes were validated via markdownlint (0 errors), spell check (0
issues), frontmatter validation (0 errors), and link validation (0
errors). No behavioral changes to scripts other than the one-line
insertion in `New-MsDateReport`.
## Checklist
### Required Checks
* [x] Documentation is updated (if applicable)
* [x] Files follow existing naming conventions
* [x] Changes are backwards compatible (if applicable)
* [ ] Tests added for new functionality (if applicable)
### AI Artifact Contributions
<!-- If contributing an agent, prompt, instruction, or skill, complete
these checks -->
* [ ] Used `/prompt-analyze` to review contribution
* [ ] Addressed all feedback from `prompt-builder` review
* [ ] Verified contribution follows common standards and type-specific
requirements
### Required Automated Checks
The following validation commands must pass before merging:
* [x] Markdown linting: `npm run lint:md` — 0 errors (161 files)
* [x] Spell checking: `npm run spell-check` — 0 issues (255 files)
* [x] Frontmatter validation: `npm run lint:frontmatter` — 0 errors, 0
warnings
* [x] Skill structure validation: `npm run validate:skills` — 0 errors,
0 warnings (5 skills)
* [x] Link validation: `npm run lint:md-links` — passed
* [x] PowerShell analysis: `npm run lint:ps` — 0 violations
* [x] Plugin freshness: `npm run plugin:generate` — no changes (0
errors)
## Security Considerations
* [x] This PR does not contain any sensitive or NDA information
* [x] Any new dependencies have been reviewed for security issues
* [x] Security-related scripts follow the principle of least privilege
## Additional Notes
No AI artifact files were modified. No workflow files were changed. No
dependency changes. The `plugin:generate` run produced no output
changes, confirming collection manifests are unaffected.
| Purpose | Displays expected inputs in the VS Code prompt picker |
88
+
| Format | Brief string; required arguments first, then optional; `[]` for positional, `key=value` for named, `{option1\|option2}` for enumerated choices |
89
+
| Style | Keep hints concise; lead with required arguments |
90
+
| Example |`"project=... [type={Epic\|Feature\|UserStory\|Bug\|Task}] [title=...]"`|
Prompts can declare input variables that VS Code resolves at invocation time. The syntax is:
171
+
172
+
```text
173
+
${input:varName}
174
+
${input:varName:defaultValue}
175
+
```
176
+
177
+
Declare variables in an Inputs section and reference them in prompt content:
178
+
179
+
```markdown
180
+
## Inputs
181
+
182
+
* ${input:topic}: (Required) Primary topic or focus area.
183
+
* ${input:scope:all}: (Optional, defaults to all) Scope of the operation.
184
+
```
185
+
186
+
Required inputs (no default) are inferred from the user's conversation or attached files when not explicitly supplied.
187
+
188
+
### Activation Lines
189
+
190
+
Prompts that need to clarify the workflow entry point can include an activation line: a `---` separator followed by an instruction that tells the agent where to begin. Activation lines apply only to prompt files and are omitted when the delegated agent's phases already define the workflow start.
191
+
192
+
```markdown
193
+
---
194
+
195
+
Begin by reading the current branch state and identifying open work items.
196
+
```
197
+
198
+
Prompts that delegate to a custom agent via `agent:` typically omit the activation line because the agent's phases define execution order.
199
+
125
200
## Collection Entry Requirements
126
201
127
202
All prompts must have matching entries in one or more `collections/*.collection.yml` manifests. Collection entries control distribution and maturity.
@@ -352,7 +427,6 @@ When specific files/paths trigger behavior:
352
427
```yaml
353
428
---
354
429
description: 'Required protocol for creating Azure DevOps pull requests'
0 commit comments