diff --git a/.github/ISSUE_TEMPLATE/01-task.md b/.github/ISSUE_TEMPLATE/01-task.md index fe2411e13..2404de8e0 100644 --- a/.github/ISSUE_TEMPLATE/01-task.md +++ b/.github/ISSUE_TEMPLATE/01-task.md @@ -2,9 +2,8 @@ file_type: "issue-template" name: "๐Ÿ“ Task" about: "Propose a well-scoped unit of work: template tweaks, config updates, copy edits, etc." -description: "Propose a well-scoped unit of work: template tweaks, config updates, copy edits, etc." -version: "1.0.1" -last_updated: "2026-06-18" +version: "1.0.2" +last_updated: "2026-06-19" category: "github-templates" --- @@ -46,3 +45,7 @@ category: "github-templates" - [ ] PR uses correct branch prefix --- + +--- + +Related issues: {related_issues} diff --git a/.github/ISSUE_TEMPLATE/02-bug.md b/.github/ISSUE_TEMPLATE/02-bug.md index aecd8e61d..6502bce17 100644 --- a/.github/ISSUE_TEMPLATE/02-bug.md +++ b/.github/ISSUE_TEMPLATE/02-bug.md @@ -2,9 +2,8 @@ file_type: "issue-template" name: "๐Ÿ› Bug report" about: "Report a bug to help us improve this WordPress project." -description: "Report a bug to help us improve this WordPress project." -version: "1.0.1" -last_updated: "2026-06-18" +version: "1.0.2" +last_updated: "2026-06-19" category: "github-templates" --- @@ -107,3 +106,7 @@ Use correct branch prefix (fix/) for any related PR. - [ ] Linked issue closed --- + +--- + +Related issues: {related_issues} diff --git a/.github/ISSUE_TEMPLATE/03-feature.md b/.github/ISSUE_TEMPLATE/03-feature.md index e38ab7582..55f78b1dc 100644 --- a/.github/ISSUE_TEMPLATE/03-feature.md +++ b/.github/ISSUE_TEMPLATE/03-feature.md @@ -2,9 +2,8 @@ file_type: "issue-template" name: "๐Ÿš€ Feature" about: "Propose a net-new capability, enhancement, or workflow improvement." -description: "Propose a net-new capability, enhancement, or workflow improvement." -version: "1.0.1" -last_updated: "2026-06-18" +version: "1.0.2" +last_updated: "2026-06-19" category: "github-templates" --- @@ -89,3 +88,7 @@ Use correct branch prefix (feat/) for any PR. - [ ] Release notes prepared; monitoring/alerts set --- + +--- + +Related issues: {related_issues} diff --git a/.github/ISSUE_TEMPLATE/04-design.md b/.github/ISSUE_TEMPLATE/04-design.md index 82c3d67a0..62f4d3e79 100644 --- a/.github/ISSUE_TEMPLATE/04-design.md +++ b/.github/ISSUE_TEMPLATE/04-design.md @@ -2,9 +2,8 @@ file_type: "issue-template" name: "๐ŸŽจ Design" about: "Propose, review, or discuss design artefacts, tokens, accessibility, or UI/UX specifications." -description: "Propose, review, or discuss design artefacts, tokens, accessibility, or UI/UX specifications." -version: "1.0.1" -last_updated: "2026-06-18" +version: "1.0.2" +last_updated: "2026-06-19" category: "github-templates" --- @@ -80,3 +79,7 @@ Add links, screenshots, references, or other design docs. - [ ] PR uses correct branch prefix (design/) --- + +--- + +Related issues: {related_issues} diff --git a/.github/ISSUE_TEMPLATE/05-epic.md b/.github/ISSUE_TEMPLATE/05-epic.md index 85af1e3f1..3957cc696 100644 --- a/.github/ISSUE_TEMPLATE/05-epic.md +++ b/.github/ISSUE_TEMPLATE/05-epic.md @@ -2,9 +2,8 @@ file_type: "issue-template" name: "๐Ÿ“ฆ Epic" about: "Propose or manage a large, multi-part initiative or project grouping stories/features/tasks." -description: "Propose or manage a large, multi-part initiative or project grouping stories/features/tasks." -version: "1.0.1" -last_updated: "2026-06-18" +version: "1.0.2" +last_updated: "2026-06-19" category: "github-templates" --- @@ -76,3 +75,7 @@ Add any other context, references, diagrams, or docs. - [ ] Milestone closed and release notes prepared --- + +--- + +Related issues: {related_issues} diff --git a/.github/ISSUE_TEMPLATE/06-story.md b/.github/ISSUE_TEMPLATE/06-story.md index c69705fb1..49b1b10ff 100644 --- a/.github/ISSUE_TEMPLATE/06-story.md +++ b/.github/ISSUE_TEMPLATE/06-story.md @@ -2,9 +2,8 @@ file_type: "issue-template" name: "๐Ÿ“‘ Story" about: "Propose a user-centric story as part of an Epic or milestone." -description: "Propose a user-centric story as part of an Epic or milestone." -version: "1.0.1" -last_updated: "2026-06-18" +version: "1.0.2" +last_updated: "2026-06-19" category: "github-templates" --- @@ -77,3 +76,7 @@ Use correct branch prefix (story/) for PRs. - [ ] QA verified/UAT approved (if applicable) --- + +--- + +Related issues: {related_issues} diff --git a/.github/ISSUE_TEMPLATE/07-improvement.md b/.github/ISSUE_TEMPLATE/07-improvement.md index 19d8c9af1..203c87815 100644 --- a/.github/ISSUE_TEMPLATE/07-improvement.md +++ b/.github/ISSUE_TEMPLATE/07-improvement.md @@ -2,9 +2,8 @@ file_type: "issue-template" name: "๐Ÿ”ง Improvement" about: "Propose enhancements, polish, or usability improvements." -description: "Propose enhancements, polish, or usability improvements." -version: "1.0.1" -last_updated: "2026-06-18" +version: "1.0.2" +last_updated: "2026-06-19" category: "github-templates" --- @@ -88,3 +87,7 @@ Use correct branch prefix (feat/ or enhancement/) for PRs. - [ ] PR uses correct branch prefix --- + +--- + +Related issues: {related_issues} diff --git a/.github/ISSUE_TEMPLATE/08-chore.md b/.github/ISSUE_TEMPLATE/08-chore.md index 72edbf44c..b69ebc25a 100644 --- a/.github/ISSUE_TEMPLATE/08-chore.md +++ b/.github/ISSUE_TEMPLATE/08-chore.md @@ -2,9 +2,8 @@ file_type: "issue-template" name: "๐Ÿ  Chore" about: "Small housekeeping tasks: label hygiene, repo/settings tweaks, file moves, or minor non-functional clean-ups." -description: "Small housekeeping tasks: label hygiene, repo/settings tweaks, file moves, or minor non-functional clean-ups." -version: "1.0.2" -last_updated: "2026-06-18" +version: "1.0.3" +last_updated: "2026-06-19" category: "github-templates" --- @@ -58,3 +57,7 @@ label hygiene, repo/settings tweaks, file moves, documentation clean-ups, minor - [ ] Approved by at least one maintainer --- + +--- + +Related issues: {related_issues} diff --git a/.github/ISSUE_TEMPLATE/09-code-refactor.md b/.github/ISSUE_TEMPLATE/09-code-refactor.md index aa163ec74..e8801360c 100644 --- a/.github/ISSUE_TEMPLATE/09-code-refactor.md +++ b/.github/ISSUE_TEMPLATE/09-code-refactor.md @@ -2,9 +2,8 @@ file_type: "issue-template" name: "โ™ป๏ธ Code Refactor" about: "Request or propose a code refactoring or review to improve code quality, maintainability, and consistency." -description: "Request or propose a code refactoring or review to improve code quality, maintainability, and consistency." -version: "1.0.1" -last_updated: "2026-06-18" +version: "1.0.2" +last_updated: "2026-06-19" category: "github-templates" --- @@ -129,3 +128,7 @@ Checklist items to ensure the refactoring/review is complete. - [ ] PR uses correct branch prefix --- + +--- + +Related issues: {related_issues} diff --git a/.github/ISSUE_TEMPLATE/10-build-ci.md b/.github/ISSUE_TEMPLATE/10-build-ci.md index 1cba0e204..7422dede4 100644 --- a/.github/ISSUE_TEMPLATE/10-build-ci.md +++ b/.github/ISSUE_TEMPLATE/10-build-ci.md @@ -2,9 +2,8 @@ file_type: "issue-template" name: "โš™๏ธ Build & CI" about: "Propose changes, fixes, or improvements to build tools, CI/CD pipelines, or automation." -description: "Propose changes, fixes, or improvements to build tools, CI/CD pipelines, or automation." -version: "1.0.2" -last_updated: "2026-06-18" +version: "1.0.3" +last_updated: "2026-06-19" category: "github-templates" --- @@ -59,3 +58,7 @@ category: "github-templates" - [ ] Approved by maintainer --- + +--- + +Related issues: {related_issues} diff --git a/.github/ISSUE_TEMPLATE/11-automation.md b/.github/ISSUE_TEMPLATE/11-automation.md index 7102f6b93..14a67e0a5 100644 --- a/.github/ISSUE_TEMPLATE/11-automation.md +++ b/.github/ISSUE_TEMPLATE/11-automation.md @@ -2,9 +2,8 @@ file_type: "issue-template" name: "๐Ÿค– Automation" about: "Propose, fix, or improve automation (actions, scripts, bots)." -description: "Propose, fix, or improve automation (actions, scripts, bots)." -version: "1.0.1" -last_updated: "2026-06-18" +version: "1.0.2" +last_updated: "2026-06-19" category: "github-templates" --- @@ -49,3 +48,7 @@ category: "github-templates" - [ ] Approved by maintainer --- + +--- + +Related issues: {related_issues} diff --git a/.github/ISSUE_TEMPLATE/12-testing-coverage.md b/.github/ISSUE_TEMPLATE/12-testing-coverage.md index 5c8838c3c..e52c0233f 100644 --- a/.github/ISSUE_TEMPLATE/12-testing-coverage.md +++ b/.github/ISSUE_TEMPLATE/12-testing-coverage.md @@ -2,9 +2,8 @@ file_type: "issue-template" name: "๐Ÿงช Test Coverage" about: "Propose, add, or expand tests (unit, integration, E2E)." -description: "Propose, add, or expand tests (unit, integration, E2E)." -version: "1.0.1" -last_updated: "2026-06-18" +version: "1.0.2" +last_updated: "2026-06-19" category: "github-templates" --- @@ -75,3 +74,7 @@ Define where and how this test will be used. - [ ] Approved by at least one maintainer --- + +--- + +Related issues: {related_issues} diff --git a/.github/ISSUE_TEMPLATE/13-performance.md b/.github/ISSUE_TEMPLATE/13-performance.md index 4eb4770a1..3f3354cd2 100644 --- a/.github/ISSUE_TEMPLATE/13-performance.md +++ b/.github/ISSUE_TEMPLATE/13-performance.md @@ -2,9 +2,8 @@ file_type: "issue-template" name: "โšก Performance" about: "Report performance-related issues (speed, efficiency, resource usage) or propose optimisations." -description: "Report performance-related issues (speed, efficiency, resource usage) or propose optimisations." -version: "1.0.2" -last_updated: "2026-06-18" +version: "1.0.3" +last_updated: "2026-06-19" category: "github-templates" --- @@ -107,3 +106,7 @@ Checklist items to ensure the fix/update is complete and actionable. - [ ] No adverse impact on other functionality --- + +--- + +Related issues: {related_issues} diff --git a/.github/ISSUE_TEMPLATE/14-a11y.md b/.github/ISSUE_TEMPLATE/14-a11y.md index e9bd113f6..ecd8dbb81 100644 --- a/.github/ISSUE_TEMPLATE/14-a11y.md +++ b/.github/ISSUE_TEMPLATE/14-a11y.md @@ -2,9 +2,8 @@ file_type: "issue-template" name: "โ™ฟ Accessibility (A11y)" about: "Report or propose accessibility improvements, audits, or issues (WCAG, usability, devices)." -description: "Report or propose accessibility improvements, audits, or issues (WCAG, usability, devices)." -version: "1.0.1" -last_updated: "2026-06-18" +version: "1.0.2" +last_updated: "2026-06-19" category: "github-templates" --- @@ -55,3 +54,7 @@ category: "github-templates" - [ ] Stakeholder/maintainer reviewed --- + +--- + +Related issues: {related_issues} diff --git a/.github/ISSUE_TEMPLATE/15-security.md b/.github/ISSUE_TEMPLATE/15-security.md index 43d88de57..a863fac3d 100644 --- a/.github/ISSUE_TEMPLATE/15-security.md +++ b/.github/ISSUE_TEMPLATE/15-security.md @@ -2,9 +2,8 @@ file_type: "issue-template" name: "๐Ÿ” Security" about: "Report vulnerabilities, security improvements, or compliance requirements." -description: "Report vulnerabilities, security improvements, or compliance requirements." -version: "1.0.1" -last_updated: "2026-06-18" +version: "1.0.2" +last_updated: "2026-06-19" category: "github-templates" --- @@ -76,3 +75,7 @@ Add any other context, related issues, compliance docs, or references. - [ ] Approved by at least one maintainer --- + +--- + +Related issues: {related_issues} diff --git a/.github/ISSUE_TEMPLATE/16-compatibility.md b/.github/ISSUE_TEMPLATE/16-compatibility.md index 18154be12..eee636717 100644 --- a/.github/ISSUE_TEMPLATE/16-compatibility.md +++ b/.github/ISSUE_TEMPLATE/16-compatibility.md @@ -2,9 +2,8 @@ file_type: "issue-template" name: "๐Ÿงฉ Compatibility" about: "Track browser/device/WordPress/plugin compatibility issues." -description: "Track browser/device/WordPress/plugin compatibility issues." -version: "1.0.1" -last_updated: "2026-06-18" +version: "1.0.2" +last_updated: "2026-06-19" category: "github-templates" --- @@ -75,3 +74,7 @@ Add any other context, related issues, references, or docs. - [ ] Approved by at least one maintainer --- + +--- + +Related issues: {related_issues} diff --git a/.github/ISSUE_TEMPLATE/17-integration-issue.md b/.github/ISSUE_TEMPLATE/17-integration-issue.md index 4651c1b5e..b96184f59 100644 --- a/.github/ISSUE_TEMPLATE/17-integration-issue.md +++ b/.github/ISSUE_TEMPLATE/17-integration-issue.md @@ -2,9 +2,8 @@ file_type: "issue-template" name: "๐Ÿ”— Integration" about: "Report or propose integration with external plugins, services, or APIs." -description: "Report or propose integration with external plugins, services, or APIs." -version: "1.0.1" -last_updated: "2026-06-18" +version: "1.0.2" +last_updated: "2026-06-19" category: "github-templates" --- @@ -102,3 +101,7 @@ Checklist items to ensure the integration fix/update is complete. - [ ] No adverse impact on other integrations or core functionality --- + +--- + +Related issues: {related_issues} diff --git a/.github/ISSUE_TEMPLATE/18-release.md b/.github/ISSUE_TEMPLATE/18-release.md index b7005ad71..f5ef2aa38 100644 --- a/.github/ISSUE_TEMPLATE/18-release.md +++ b/.github/ISSUE_TEMPLATE/18-release.md @@ -2,9 +2,8 @@ file_type: "issue-template" name: "๐Ÿš€ Release" about: "Propose or track release management, versioning, or deployment tasks." -description: "Propose or track release management, versioning, or deployment tasks." -version: "1.0.1" -last_updated: "2026-06-18" +version: "1.0.2" +last_updated: "2026-06-19" category: "github-templates" --- @@ -49,3 +48,7 @@ category: "github-templates" - [ ] Approved by maintainer --- + +--- + +Related issues: {related_issues} diff --git a/.github/ISSUE_TEMPLATE/19-maintenance.md b/.github/ISSUE_TEMPLATE/19-maintenance.md index 60f33e523..dfbe77b41 100644 --- a/.github/ISSUE_TEMPLATE/19-maintenance.md +++ b/.github/ISSUE_TEMPLATE/19-maintenance.md @@ -2,9 +2,8 @@ file_type: "issue-template" name: "๐Ÿงน Maintenance" about: "Propose routine hygiene, dependency bumps, CI updates, or other maintenance tasks." -description: "Propose routine hygiene, dependency bumps, CI updates, or other maintenance tasks." -version: "1.0.1" -last_updated: "2026-06-18" +version: "1.0.2" +last_updated: "2026-06-19" category: "github-templates" --- @@ -49,3 +48,7 @@ category: "github-templates" - [ ] Approved by at least one maintainer --- + +--- + +Related issues: {related_issues} diff --git a/.github/ISSUE_TEMPLATE/20-documentation.md b/.github/ISSUE_TEMPLATE/20-documentation.md index 8f2455363..bcfb9de4e 100644 --- a/.github/ISSUE_TEMPLATE/20-documentation.md +++ b/.github/ISSUE_TEMPLATE/20-documentation.md @@ -2,9 +2,8 @@ file_type: "issue-template" name: "๐Ÿ“š Documentation" about: "Request new documentation or propose updates/clarifications to existing docs." -description: "Request new documentation or propose updates/clarifications to existing docs." -version: "1.0.1" -last_updated: "2026-06-18" +version: "1.0.2" +last_updated: "2026-06-19" category: "github-templates" --- @@ -76,3 +75,7 @@ Checklist items to ensure the documentation update is complete and actionable. - [ ] PR uses correct branch prefix (docs/) --- + +--- + +Related issues: {related_issues} diff --git a/.github/ISSUE_TEMPLATE/21-research.md b/.github/ISSUE_TEMPLATE/21-research.md index 0bde378be..81e7ea74e 100644 --- a/.github/ISSUE_TEMPLATE/21-research.md +++ b/.github/ISSUE_TEMPLATE/21-research.md @@ -2,9 +2,8 @@ file_type: "issue-template" name: "๐Ÿ” Research" about: "Propose or document technical research, investigation, or exploratory work." -description: "Propose or document technical research, investigation, or exploratory work." -version: "1.0.1" -last_updated: "2026-06-18" +version: "1.0.2" +last_updated: "2026-06-19" category: "github-templates" --- @@ -48,3 +47,7 @@ category: "github-templates" - [ ] Documentation updated (if applicable) --- + +--- + +Related issues: {related_issues} diff --git a/.github/ISSUE_TEMPLATE/22-audit.md b/.github/ISSUE_TEMPLATE/22-audit.md index ce54af47e..245e72109 100644 --- a/.github/ISSUE_TEMPLATE/22-audit.md +++ b/.github/ISSUE_TEMPLATE/22-audit.md @@ -2,9 +2,8 @@ file_type: "issue-template" name: "๐Ÿ›ก๏ธ Audit" about: "Propose, conduct, or document a security, accessibility, code, or process audit." -description: "Propose, conduct, or document a security, accessibility, code, or process audit." -version: "1.0.1" -last_updated: "2026-06-18" +version: "1.0.2" +last_updated: "2026-06-19" category: "github-templates" --- @@ -74,3 +73,7 @@ Add links, standards, references, or related issues. - [ ] PR uses correct branch prefix (audit/) --- + +--- + +Related issues: {related_issues} diff --git a/.github/ISSUE_TEMPLATE/23-code-review.md b/.github/ISSUE_TEMPLATE/23-code-review.md index 1bd3f4b9c..14278c0b5 100644 --- a/.github/ISSUE_TEMPLATE/23-code-review.md +++ b/.github/ISSUE_TEMPLATE/23-code-review.md @@ -2,9 +2,8 @@ file_type: "issue-template" name: "๐Ÿ‘€ Code Review" about: "Request or conduct code review, peer validation, or QA." -description: "Request or conduct code review, peer validation, or QA." -version: "1.0.1" -last_updated: "2026-06-18" +version: "1.0.2" +last_updated: "2026-06-19" category: "github-templates" --- @@ -51,3 +50,7 @@ category: "github-templates" - [ ] PR merged/closed --- + +--- + +Related issues: {related_issues} diff --git a/.github/ISSUE_TEMPLATE/24-ai-ops.md b/.github/ISSUE_TEMPLATE/24-ai-ops.md index b0c8b50f5..fbbd6c527 100644 --- a/.github/ISSUE_TEMPLATE/24-ai-ops.md +++ b/.github/ISSUE_TEMPLATE/24-ai-ops.md @@ -2,9 +2,8 @@ file_type: "issue-template" name: "๐Ÿง  AI Ops" about: "Propose, discuss, or troubleshoot AI/ML operations, workflows, or automation." -description: "Propose, discuss, or troubleshoot AI/ML operations, workflows, or automation." -version: "1.0.1" -last_updated: "2026-06-18" +version: "1.0.2" +last_updated: "2026-06-19" category: "github-templates" --- @@ -50,3 +49,7 @@ category: "github-templates" - [ ] PR uses correct branch prefix (ai/) --- + +--- + +Related issues: {related_issues} diff --git a/.github/ISSUE_TEMPLATE/25-content-modelling.md b/.github/ISSUE_TEMPLATE/25-content-modelling.md index 9e0745851..7e338f305 100644 --- a/.github/ISSUE_TEMPLATE/25-content-modelling.md +++ b/.github/ISSUE_TEMPLATE/25-content-modelling.md @@ -2,9 +2,8 @@ file_type: "issue-template" name: "๐Ÿ“– Content Modelling" about: "Propose, update, or discuss content structure, CPTs, or taxonomy." -description: "Propose, update, or discuss content structure, CPTs, or taxonomy." -version: "1.0.1" -last_updated: "2026-06-18" +version: "1.0.2" +last_updated: "2026-06-19" category: "github-templates" --- @@ -47,3 +46,7 @@ category: "github-templates" - [ ] Documentation updated --- + +--- + +Related issues: {related_issues} diff --git a/.github/ISSUE_TEMPLATE/README.md b/.github/ISSUE_TEMPLATE/README.md index 2fc8ec421..ae45a35c3 100644 --- a/.github/ISSUE_TEMPLATE/README.md +++ b/.github/ISSUE_TEMPLATE/README.md @@ -3,7 +3,7 @@ title: "Issue Templates Directory" description: "Standardized issue templates for the LightSpeedWP organization. Templates for bugs, features, documentation, and custom issues with automation integration." name: "Issue Templates" file_type: documentation -version: v1.8 +version: v1.8.1 last_updated: "2026-06-19" created_date: "2025-10-20" authors: ["LightSpeed Team"] @@ -21,6 +21,8 @@ stability: "stable" This directory contains standardized issue templates used across all LightSpeedWP repositories to ensure consistent issue creation and proper automation triggering. +Markdown issue templates in this directory use `name` and `about` in front matter. Do not duplicate the picker summary into `description`. + ## ๐Ÿš€ Quick Start Get started with LightSpeedWP issue templates in three steps: @@ -148,6 +150,4 @@ These templates integrate with: *This directory is part of the LightSpeedWP automation ecosystem. See [Automation Governance](../../docs/AUTOMATION.md) for complete automation standards.* ---- - - +Related issues: {related_issues} diff --git a/.github/PULL_REQUEST_TEMPLATE/README.md b/.github/PULL_REQUEST_TEMPLATE/README.md index 5d8eb6889..309af54ae 100644 --- a/.github/PULL_REQUEST_TEMPLATE/README.md +++ b/.github/PULL_REQUEST_TEMPLATE/README.md @@ -2,8 +2,8 @@ title: "Pull Request Templates Directory" description: "Standardized pull request templates for the LightSpeedWP organization. Templates for bugs, features, chores, documentation, releases, and refactoring with automation integration." file_type: documentation -version: v1.3 -last_updated: "2026-06-03" +version: v1.3.1 +last_updated: "2026-06-19" created_date: "2025-10-20" authors: ["LightSpeed Team"] maintainer: "LightSpeed Team" @@ -20,6 +20,8 @@ stability: "stable" This directory contains standardized pull request templates used across all LightSpeedWP repositories to ensure consistent PR creation and proper automation triggering. +PR templates in this repository use `title` and `description` in front matter. Keep those repo-local metadata fields aligned with the template body and do not mirror the issue-template `about` field here. + ## ๐Ÿ“ Available Templates | Template | Purpose | Automation Triggers | @@ -77,6 +79,4 @@ These templates integrate with: *This directory is part of the LightSpeedWP automation ecosystem. See [Automation Governance](../../docs/AUTOMATION.md) for complete automation standards.* ---- - - +Closes: {closes_issues} diff --git a/.github/workflows/issue-create-from-template.yml b/.github/workflows/issue-create-from-template.yml index 7df34bba4..6f38a89e3 100644 --- a/.github/workflows/issue-create-from-template.yml +++ b/.github/workflows/issue-create-from-template.yml @@ -15,7 +15,6 @@ on: - epic - story - improvement - - ux-feedback - code-refactor - build-ci - automation @@ -33,7 +32,6 @@ on: - code-review - ai-ops - content-modelling - - help canonical_type: description: "Optional canonical type label to apply if it matches the template" required: false @@ -135,11 +133,6 @@ jobs: defaultType: 'type:improve', allowedTypes: ['type:improve', 'type:enhancement'], }, - 'ux-feedback': { - file: '.github/ISSUE_TEMPLATE/08-user-experience-feedback.md', - defaultType: 'type:ux-feedback', - allowedTypes: ['type:ux-feedback'], - }, 'code-refactor': { file: '.github/ISSUE_TEMPLATE/09-code-refactor.md', defaultType: 'type:refactor', @@ -225,11 +218,6 @@ jobs: defaultType: 'type:content-modelling', allowedTypes: ['type:content-modelling'], }, - help: { - file: '.github/ISSUE_TEMPLATE/26-help.md', - defaultType: 'type:help', - allowedTypes: ['type:help', 'type:question', 'type:support'], - }, }; if (!templateKey) { diff --git a/CHANGELOG.md b/CHANGELOG.md index 238740a5d..1d41ad633 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -33,6 +33,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Changed +- **Frontmatter standardisation across issue templates, docs, and validation** โ€” Normalised markdown issue templates to use `name` + `about`, aligned the frontmatter schema and validation scripts with the GitHub-supported template contract, and updated the issue-creation workflow plus related docs, instructions, and prompts to match the canonical template layout. ([#1016](https://github.com/lightspeedwp/.github/pull/1016), [#1012](https://github.com/lightspeedwp/.github/issues/1012), [#1015](https://github.com/lightspeedwp/.github/issues/1015)) + - **Automation governance for Dependabot PRs and branding footers** โ€” Stopped the metadata sync flow from auto-creating a milestone for each Dependabot PR, switched footer detection to the canonical branding config with tail-aware matching, and backfilled branded markdown footers across the repository. Updated the related CI, workflow, and documentation surfaces to keep the behaviour durable. ([#1010](https://github.com/lightspeedwp/.github/issues/1010), [#1013](https://github.com/lightspeedwp/.github/pull/1013)) - **Metadata governance automation for issues and pull requests** โ€” Added and hardened the GitHub automation that assigns project items, milestones, assignees, issue/PR relationships, project field values, and labelling behaviour for new issues and pull requests. Also updated the related docs, workflow guards, and test coverage to match the current codebase. ([#974](https://github.com/lightspeedwp/.github/pull/974)) diff --git a/docs/FRONTMATTER_SCHEMA.md b/docs/FRONTMATTER_SCHEMA.md index bd12acd17..371bb2fe5 100644 --- a/docs/FRONTMATTER_SCHEMA.md +++ b/docs/FRONTMATTER_SCHEMA.md @@ -1,8 +1,8 @@ --- file_type: documentation title: Frontmatter Schema Documentation -version: 'v2.3' -last_updated: '2026-06-03' +version: 'v2.3.1' +last_updated: '2026-06-19' author: LightSpeedWP maintainer: Ash Shaw description: Comprehensive documentation for the LightSpeedWP Markdown/JSON frontmatter @@ -241,24 +241,43 @@ Use descriptive markdown links that help humans understand context: --- -## GitHub Issue Template Frontmatter (Issue Forms) +## GitHub Issue Template Frontmatter -GitHub **issue templates** use YAML frontmatter for the new **Issue Forms** feature to define metadata and form fields. All issue form files **must** begin with at least three keys: `name`, `description`, and `body`. +### Markdown Issue Templates -### Top-Level Frontmatter Fields +Markdown issue templates in `.github/ISSUE_TEMPLATE/*.md` use `name` and `about` in front matter. The `about` field is what GitHub shows in the issue picker. -| Field | Type | Required | Description | -| ------------- | ------------ | -------- | -------------------------------------------------------------------------- | -| `name` | string | โœ… | Unique name for the template (appears in template picker UI) | -| `description` | string | โœ… | Short explanation of the template's purpose (shown in picker UI) | -| `body` | array | โœ… | Array defining the form fields and content blocks for the issue form | -| `title` | string | ๐Ÿ“‹ | Default title that will pre-fill in the new issue title input | -| `labels` | array/string | ๐Ÿ“‹ | Labels to auto-apply on issue creation (array or comma-separated) | -| `assignees` | array/string | ๐Ÿ“‹ | GitHub usernames to auto-assign the issue to (array or comma-separated) | +#### Markdown Template Example + +```yaml +--- +file_type: "issue-template" +name: "๐Ÿ› Bug report" +about: "Report a bug to help us improve this project." +version: "1.0.1" +last_updated: "2026-06-18" +category: "github-templates" +--- +``` + +### Issue Forms + +Issue forms in `.github/ISSUE_TEMPLATE/*.yml` use `name`, `description`, and `body`. + +#### Top-Level Frontmatter Fields + +| Field | Type | Required | Description | +| ------------- | ------------ | -------- | ------------------------------------------------------------------------ | +| `name` | string | โœ… | Unique name for the template (appears in template picker UI) | +| `description` | string | โœ… | Short explanation of the template's purpose (shown in picker UI) | +| `body` | array | โœ… | Array defining the form fields and content blocks for the issue form | +| `title` | string | ๐Ÿ“‹ | Default title that will pre-fill in the new issue title input | +| `labels` | array/string | ๐Ÿ“‹ | Labels to auto-apply on issue creation (array or comma-separated) | +| `assignees` | array/string | ๐Ÿ“‹ | GitHub usernames to auto-assign the issue to (array or comma-separated) | | `projects` | array/string | ๐Ÿ“‹ | GitHub Projects to auto-add the issue to (format `"OWNER/PROJECT-NUMBER"`) | -| `type` | string | ๐Ÿ“‹ | Issue type to assign (if your organization uses custom issue types) | +| `type` | string | ๐Ÿ“‹ | Issue type to assign (if your organization uses custom issue types) | -### Example Issue Form Template +#### Example Issue Form Template ```yaml --- @@ -344,17 +363,16 @@ The `body` array supports these input types: ## GitHub Pull Request Template Frontmatter -Pull request templates are simpler โ€” GitHub **does not currently support form-style PR templates with YAML-defined inputs**. Issue forms are for issues only. +Pull request templates are simpler. GitHub **does not currently support form-style PR templates with YAML-defined inputs** for PRs, so any YAML front matter in a PR template is repo-local metadata only. -You can include YAML frontmatter at the top of a PR template, but **GitHub ignores these fields for PRs**. Any frontmatter will simply remain as visible text in the PR body. +In this repository, PR templates use `title` and `description` in front matter. Do not mirror the issue-template `about` field into PR templates. ### Example PR Template Frontmatter (Not Parsed) ```yaml --- -name: "Feature PR Template" -about: "Use this template for pull requests adding a new feature" title: "feat: " +description: "Use this template for pull requests adding a new feature" labels: enhancement, needs-review assignees: octocat --- @@ -814,3 +832,9 @@ npm run validate:frontmatter | Old field names | Update `apply_to` โ†’ `applyTo` | --- + +--- + +*Built by ๐Ÿงฑ LightSpeedWP with โ˜•, ๐Ÿš€, and open-source spirit!* + +[๐Ÿ”— Website](https://lightspeedwp.agency) ยท [๐Ÿ“ง Contact](https://lightspeedwp.agency/contact) ยท [๐Ÿ‘ฅ Contributors](https://github.com/lightspeedwp/.github/graphs/contributors) diff --git a/docs/ISSUE_CREATION_GUIDE.md b/docs/ISSUE_CREATION_GUIDE.md index b8a433270..0fcdada4a 100644 --- a/docs/ISSUE_CREATION_GUIDE.md +++ b/docs/ISSUE_CREATION_GUIDE.md @@ -2,7 +2,7 @@ title: GitHub Issue Creation Guide description: How to create well-formed issues, select templates, and trigger automation file_type: documentation -version: "1.0.7" +version: "1.0.8" created_date: "2026-05-31" last_updated: "2026-06-19" author: Claude Code @@ -58,6 +58,8 @@ This guide helps contributors, team members, and AI agents create high-quality G - Numbered issue templates available: 25 (`01-task.md` through `25-content-modelling.md`) - Canonical issue types: 25 numbered templates plus label-only types - Label-only types without dedicated templates: `type:question`, `type:support` +- Markdown issue templates use `name` + `about` in front matter. +- PR templates use `title` + `description` in front matter and do not reuse the issue-template `about` field. For label-only types, use the nearest template and state the intended canonical type in the issue body. @@ -97,6 +99,8 @@ Fill in the primary sections for your template with structured information. Review these checkboxes to ensure they align with your scope. +Issue template front matter is also part of the contract: `about` belongs in Markdown issue templates, while `description` belongs in PR templates and other repository docs. + ### 4. Add Labels and Metadata Issue templates do not pre-populate labels in the form, but automation adds the canonical set after creation. Add labels manually only when the workflow cannot infer them: @@ -123,6 +127,7 @@ Click **Submit new issue**. Your issue is now visible to the team and ready for - PR automation remains stronger due to branch/file signals available in PR context - `metadata-governance.yml` automatically adds new issues and PRs to the configured project, assigns the requester when possible, attaches or creates an appropriate milestone, and records relationships when they are present in the body - `project-meta-sync.yml` keeps the project fields in sync, re-runs on label changes, and backfills `Status`, `Priority`, `Type`, `Effort`, `Start date`, and `Target date` from canonical labels plus safe fallbacks +- `issue-create-from-template.yml` only exposes template keys that map to actual files in `.github/ISSUE_TEMPLATE/`; it keeps new issues aligned with the canonical template body before creation ### โš ๏ธ Practical Implication diff --git a/docs/WORKFLOW_COORDINATION.md b/docs/WORKFLOW_COORDINATION.md index 993caa72a..f24bd39fa 100644 --- a/docs/WORKFLOW_COORDINATION.md +++ b/docs/WORKFLOW_COORDINATION.md @@ -3,7 +3,7 @@ title: "Workflow Coordination Patterns" description: "Canonical reference for GitHub Actions workflow patterns: always-run vs. agent-triggered, coordination between agents and workflows, and orchestration strategies." created_date: "2026-05-28" last_updated: "2026-06-19" -version: "v1.1.3" +version: "v1.1.4" file_type: "documentation" maintainer: "LightSpeed Team" tags: ["workflows", "automation", "agents", "coordination", "ci-cd"] @@ -90,7 +90,7 @@ Agent-triggered workflows are invoked **on demand** via `workflow_dispatch` or c | `reviewer.yml` | workflow_dispatch (manual) | Reviewer Agent | Post PR review summaries | | `metrics.yml` | workflow_dispatch ยฑ scheduled | Metrics Agent | Collect repo health metrics | | `readme-update.yml` | workflow_dispatch + workflow_call | Release Agent (post-release) | Apply README & Mermaid diagram fixes | -| `issue-create-from-template.yml` | workflow_dispatch | Issue Agent / LLM caller | Create issues from canonical templates before the issue exists | +| `issue-create-from-template.yml` | workflow_dispatch | Issue Agent / LLM caller | Create issues from canonical numbered templates before the issue exists | | `checklist-finalisation.yml` | issues.closed / pull_request_target.closed | Workflow backstop | Finalise checklists in closed issues and merged PRs | ### When to Use @@ -460,4 +460,8 @@ with: --- -*Last updated: 2026-05-28* +--- + +*Built by ๐Ÿงฑ LightSpeedWP with โ˜•, ๐Ÿš€, and open-source spirit!* + +[๐Ÿ”— Website](https://lightspeedwp.agency) ยท [๐Ÿ“ง Contact](https://lightspeedwp.agency/contact) ยท [๐Ÿ‘ฅ Contributors](https://github.com/lightspeedwp/.github/graphs/contributors) diff --git a/instructions/issues.instructions.md b/instructions/issues.instructions.md index 063b2483a..324326067 100644 --- a/instructions/issues.instructions.md +++ b/instructions/issues.instructions.md @@ -3,8 +3,8 @@ file_type: "instructions" title: "Issue Creation Instructions" description: "Canonical instructions for creating, labeling, and managing Issues in LightSpeedWP projects. Reference for templates, types, automation, and labeling strategy." scope: "organization-wide" -version: '1.4' -last_updated: '2026-06-03' +version: '1.4.1' +last_updated: '2026-06-19' owners: ["lightspeedwp/maintainers"] tags: ["issues", "templates", "frontmatter", "automation", "labels", "issue types", "triage", "branching"] --- @@ -67,7 +67,7 @@ Every issue template **must** begin with a YAML frontmatter block, for example: --- file_type: "issue-template" name: "๐Ÿ› Bug" -description: "Report a reproducible defect" +about: "Report a reproducible defect" version: "1.0.0" last_updated: "YYYY-MM-DD" category: "github-templates" @@ -77,9 +77,11 @@ category: "github-templates" **Required fields:** - `name`: Visible in template selector -- `description`: Description for the template chooser +- `about`: Description for the template chooser - `file_type`, `version`, `last_updated`, `category`: template governance metadata +GitHub Markdown issue templates use `about` for the chooser metadata. Do not duplicate that summary into `description`. + **Optional fields:** - `title`, `labels`, `assignees`, `projects`, `milestone`, `type` @@ -90,7 +92,7 @@ See [FRONTMATTER_SCHEMA.md](../docs/FRONTMATTER_SCHEMA.md) and [frontmatter.sche ## 3. Choosing the Right Issue Template -- Use the [GitHub Issues page](../../issues/new/choose) and select the template matching your intent: +- Use the [GitHub Issues page](https://github.com/lightspeedwp/.github/issues/new/choose) and select the template matching your intent: - Bug report, Feature request, Documentation, Task, Design, Epic, Story, Improvement, Maintenance, Security, Integration, Compatibility, Performance, Test Coverage, Automation, AI Ops, and more. - Each template is tailored for its use case and includes relevant fields, checklists, and references. - See all templates in [.github/ISSUE_TEMPLATE/](../.github/ISSUE_TEMPLATE/) @@ -162,7 +164,13 @@ See [FRONTMATTER_SCHEMA.md](../docs/FRONTMATTER_SCHEMA.md) and [frontmatter.sche ## Related Files - **[pull-requests.instructions.md](./pull-requests.instructions.md)** โ€” Companion guide for PR creation and labeling; mirrors issue workflow patterns -- **[labeling.instructions.md](../docs/LABELING.md)** โ€” Labeling guide and label naming conventions +- **[labeling.instructions.md](./labeling.instructions.md)** โ€” Labeling guide and label naming conventions - **[coding-standards.instructions.md](./coding-standards.instructions.md)** โ€” Code quality standards referenced in issue templates --- + +--- + +๐Ÿ“ *Schema validated by LightSpeedWP โ€” always compliant.* + +[๐Ÿ“‹ Coding Standards](https://github.com/lightspeedwp/.github/blob/develop/instructions/coding-standards.instructions.md) ยท [๐Ÿ”— Related Files](https://github.com/lightspeedwp/.github/tree/develop/instructions) diff --git a/instructions/pull-requests.instructions.md b/instructions/pull-requests.instructions.md index 77de5f547..2433a9763 100644 --- a/instructions/pull-requests.instructions.md +++ b/instructions/pull-requests.instructions.md @@ -3,8 +3,8 @@ file_type: "instructions" title: "Pull Request Creation Instructions" description: "Canonical instructions for creating, labeling, and submitting Pull Requests in LightSpeedWP projects. Reference for templates, automation, and labeling strategy." scope: "organization-wide" -version: "1.3" -last_updated: "2026-06-03" +version: "1.3.1" +last_updated: "2026-06-19" owners: ["lightspeedwp/maintainers"] tags: ["pull requests", "templates", "frontmatter", "automation", "labels", "branching", "checklists"] --- @@ -64,18 +64,16 @@ Each PR template **must** begin with a YAML frontmatter block, for example: ```yaml --- -name: "Feature PR" -about: "New features or enhancements" title: "feat: {short summary}" +description: "New features or enhancements" labels: ["type:feature", "status:needs-review", "area:feature"] --- ``` **Required fields:** -- `name`: Short label for the template selector. -- `about`: Short description of template purpose. - `title`: Default PR title (use `{short summary}` or similar). +- `description`: Short description of template purpose. - `labels`: Array of default labels for new PRs. **Optional fields:** @@ -83,6 +81,8 @@ labels: ["type:feature", "status:needs-review", "area:feature"] - `assignees`: Default assignees. - `projects`: Default project boards. +PR templates in this repository use repo-local frontmatter metadata. Keep the `description` field for PR template summaries and do not mirror the issue-template `about` field into PR templates. + See [frontmatter instructions](./documentation-formats.instructions.md) and [frontmatter schema](../schema/frontmatter.schema.json) for validation. --- @@ -239,3 +239,9 @@ For maintainers and reviewers, reference these [Saved Replies](../.github/SAVED_ - **[coding-standards.instructions.md](./coding-standards.instructions.md)** โ€” Code quality standards referenced in PR templates --- + +--- + +๐Ÿ“ *Schema validated by LightSpeedWP โ€” always compliant.* + +[๐Ÿ“‹ Coding Standards](https://github.com/lightspeedwp/.github/blob/develop/instructions/coding-standards.instructions.md) ยท [๐Ÿ”— Related Files](https://github.com/lightspeedwp/.github/tree/develop/instructions) diff --git a/prompts/README.md b/prompts/README.md index b8e87557d..44bd31695 100644 --- a/prompts/README.md +++ b/prompts/README.md @@ -2,8 +2,8 @@ file_type: "prompt" title: "Standardised Prompts Directory" description: "Reusable prompt templates for agents and AI scenarios across LightSpeed projects" -version: "1.1.0" -last_updated: "2026-06-01" +version: "1.1.1" +last_updated: "2026-06-19" owners: ["ashley@lightspeedwp.agency"] tags: ["prompts", "ai", "templates", "agents"] status: "active" @@ -34,6 +34,7 @@ This directory contains reusable prompt templates for agents and AI scenarios ac - **[code-review.prompt](./code-review.prompt)** โ€” Code review, quality feedback, and standards enforcement - **[debugging.prompt](./debugging.prompt)** โ€” Problem diagnosis, root cause analysis, and resolution - **[documentation.prompt](./documentation.prompt)** โ€” Documentation creation, updates, and refinement +- **[update-frontmatter.prompt](./update-frontmatter.prompt)** โ€” Front matter migration, schema alignment, and validation updates - **[testing.prompt](./testing.prompt)** โ€” Test suite creation, debugging, and coverage improvements - **[refactoring.prompt](./refactoring.prompt)** โ€” Code refactoring, optimisation, and modernisation @@ -78,3 +79,9 @@ To add or improve prompts: 5. Create a PR with rationale for the new prompt --- + +--- + +*Built by ๐Ÿงฑ LightSpeedWP with โ˜•, ๐Ÿš€, and open-source spirit!* + +[๐Ÿ”— Website](https://lightspeedwp.agency) ยท [๐Ÿ“ง Contact](https://lightspeedwp.agency/contact) ยท [๐Ÿ‘ฅ Contributors](https://github.com/lightspeedwp/.github/graphs/contributors) diff --git a/prompts/update-frontmatter.prompt b/prompts/update-frontmatter.prompt new file mode 100644 index 000000000..1fd1d51b6 --- /dev/null +++ b/prompts/update-frontmatter.prompt @@ -0,0 +1,51 @@ +--- +file_type: "prompt" +title: "Update Frontmatter" +description: "Refactor repository front matter to the canonical field set and keep schemas, validators, templates, and docs aligned." +version: "1.0.0" +last_updated: "2026-06-19" +owners: ["LightSpeed Team"] +tags: ["prompts", "frontmatter", "migration", "validation", "automation"] +status: "active" +stability: "stable" +domain: "generic" +--- + +# Update Frontmatter + +## Context + +Use this prompt when a front matter standard changes and the repository needs a coordinated migration across templates, validators, docs, and prompt assets. + +## Task + +Update every affected file so the repository uses one canonical front matter contract: + +- Markdown issue templates in `.github/ISSUE_TEMPLATE/*.md` use `name` + `about` +- PR templates use `title` + `description` +- Documentation, instructions, and prompts keep `description` as the summary field + +## Constraints + +- Preserve existing content and structure unless the front matter contract requires a change. +- Update schema, validation scripts, tests, and docs together. +- Remove duplicated or retired fields instead of leaving both versions in place. +- Keep issue template metadata compatible with GitHub's picker behaviour. + +## Acceptance Criteria + +- The schema matches the canonical field set. +- Validators reject obsolete field combinations. +- Template files use the correct field names for their file type. +- Related docs and prompt indexes reflect the updated standard. +- The migration is verifiable with automated tests. + +## References + +- `schema/frontmatter.schema.json` +- `scripts/validation/validate-frontmatter.js` +- `scripts/agents/includes/check-template-labels.js` +- `.github/ISSUE_TEMPLATE/` +- `.github/PULL_REQUEST_TEMPLATE/` +- `docs/FRONTMATTER_SCHEMA.md` +- `docs/ISSUE_CREATION_GUIDE.md` diff --git a/schema/frontmatter.schema.json b/schema/frontmatter.schema.json index efed7c458..7dee1ba3f 100644 --- a/schema/frontmatter.schema.json +++ b/schema/frontmatter.schema.json @@ -543,11 +543,14 @@ "name": { "type": "string" }, - "description": { + "about": { "type": "string" } }, - "required": ["file_type", "name", "description"], + "required": ["file_type", "name", "about"], + "not": { + "required": ["description"] + }, "additionalProperties": true }, { @@ -559,9 +562,15 @@ }, "title": { "type": "string" + }, + "description": { + "type": "string" } }, - "required": ["file_type", "title"], + "required": ["file_type", "title", "description"], + "not": { + "required": ["about"] + }, "additionalProperties": true }, { diff --git a/scripts/agents/includes/check-template-labels.js b/scripts/agents/includes/check-template-labels.js index 5233c8035..008ef6048 100644 --- a/scripts/agents/includes/check-template-labels.js +++ b/scripts/agents/includes/check-template-labels.js @@ -216,7 +216,7 @@ function validateTemplateFrontmatter( const requiredKeys = [ "file_type", "name", - "description", + "about", "version", "last_updated", "category", @@ -244,6 +244,12 @@ function validateTemplateFrontmatter( ); } + if (Object.prototype.hasOwnProperty.call(frontmatter, "description")) { + throw new Error( + `Issue template frontmatter in ${file} must use "about" instead of "description"`, + ); + } + const declaredLabels = normaliseTemplateLabels(frontmatter.labels); const declaredTypes = normaliseTemplateLabels(frontmatter.type).filter( (label) => label.startsWith("type:"), diff --git a/scripts/validation/__tests__/issue-template-contract.test.js b/scripts/validation/__tests__/issue-template-contract.test.js new file mode 100644 index 000000000..7716346b6 --- /dev/null +++ b/scripts/validation/__tests__/issue-template-contract.test.js @@ -0,0 +1,58 @@ +const fs = require("fs"); +const path = require("path"); +const yaml = require("js-yaml"); + +function readFrontmatter(filePath) { + const content = fs.readFileSync(filePath, "utf8"); + const match = content.match(/^---\n([\s\S]*?)\n---/); + + if (!match) { + throw new Error(`Missing frontmatter in ${filePath}`); + } + + return yaml.load(match[1]) || {}; +} + +describe("issue template contract", () => { + it("uses about instead of description in issue template frontmatter", () => { + const templateDir = path.join(__dirname, "../../../.github/ISSUE_TEMPLATE"); + const templateFiles = fs + .readdirSync(templateDir) + .filter((file) => /^\d{2}-.+\.md$/u.test(file)); + + const violations = templateFiles.filter((file) => { + const frontmatter = readFrontmatter(path.join(templateDir, file)); + return !frontmatter.about || Boolean(frontmatter.description); + }); + + expect(violations).toEqual([]); + }); + + it("references existing template files in the issue creation workflow", () => { + const workflowPath = path.join( + __dirname, + "../../../.github/workflows/issue-create-from-template.yml", + ); + const workflow = fs.readFileSync(workflowPath, "utf8"); + const templateDir = path.join(__dirname, "../../../.github/ISSUE_TEMPLATE"); + const existingFiles = new Set( + fs + .readdirSync(templateDir) + .filter((file) => /^\d{2}-.+\.md$/u.test(file)), + ); + + const referencedFiles = [ + ...workflow.matchAll(/file:\s*['"]([^'"]+)['"]/g), + ].map((match) => match[1]); + + const missing = referencedFiles.filter((file) => { + if (!file.startsWith(".github/ISSUE_TEMPLATE/")) { + return false; + } + + return !existingFiles.has(path.basename(file)); + }); + + expect(missing).toEqual([]); + }); +}); diff --git a/scripts/validation/validate-frontmatter.js b/scripts/validation/validate-frontmatter.js index 873dcd940..3c5c4e692 100644 --- a/scripts/validation/validate-frontmatter.js +++ b/scripts/validation/validate-frontmatter.js @@ -248,6 +248,7 @@ class FrontmatterValidator { } getFileType(filePath) { + if (filePath.endsWith("README.md")) return "readme"; if (filePath.includes("/agents/") || filePath.includes("/.github/agents/")) return "agent"; if (filePath.includes("/.github/chatmodes/")) return "chatmode"; @@ -260,7 +261,6 @@ class FrontmatterValidator { if (filePath.includes("/DISCUSSION_TEMPLATE/")) return "discussion_template"; if (filePath.includes("/SAVED_REPLIES/")) return "saved_reply"; - if (filePath.endsWith("README.md")) return "readme"; if (filePath.includes("/docs/") && filePath.endsWith(".md")) return "documentation"; if (filePath.includes("/.github/") && filePath.endsWith(".md")) @@ -283,6 +283,28 @@ class FrontmatterValidator { this.stats.errors++; } + if ( + fileType === "issue_template" && + Object.prototype.hasOwnProperty.call(frontmatter, "description") + ) { + this.logger.error( + "Issue template frontmatter must use `about` instead of `description` to match GitHub's Markdown issue template contract.", + filePath, + ); + this.stats.errors++; + } + + if ( + fileType === "pull_request_template" && + Object.prototype.hasOwnProperty.call(frontmatter, "about") + ) { + this.logger.error( + "Pull request template frontmatter must use `description` instead of `about` to keep repo-local template metadata consistent.", + filePath, + ); + this.stats.errors++; + } + // Check for required fields based on file type const requiredFields = this.getRequiredFieldsByType(fileType); const missingFields = requiredFields.filter( @@ -324,8 +346,8 @@ class FrontmatterValidator { instruction: ["file_type", "description"], // apply_to/applyTo verified separately if present prompt: ["file_type", "description"], collection: ["file_type", "name", "description"], - issue_template: ["file_type", "name", "description"], - pull_request_template: ["file_type", "title"], + issue_template: ["file_type", "name", "about"], + pull_request_template: ["file_type", "title", "description"], discussion_template: ["file_type", "name", "description"], saved_reply: ["file_type", "title"], readme: ["file_type", "title", "description"],