eslint-plugin-copilot 1.0.7 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -5,6 +5,7 @@
5
5
  ESLint plugin for linting GitHub Copilot repository customization files such as:
6
6
 
7
7
  - `.github/copilot-instructions.md`
8
+ - `.github/instructions/copilot-instructions.md`
8
9
  - `.github/instructions/**/*.instructions.md`
9
10
  - `.github/prompts/**/*.prompt.md`
10
11
  - `.github/agents/**/*.agent.md`
@@ -55,6 +56,7 @@ The shipped presets already configure:
55
56
  The built-in presets target these Markdown file patterns:
56
57
 
57
58
  - `.github/copilot-instructions.md`
59
+ - `.github/instructions/copilot-instructions.md`
58
60
  - `.github/instructions/**/*.instructions.md`
59
61
  - `.github/prompts/**/*.prompt.md`
60
62
  - `.github/agents/**/*.agent.md`
@@ -96,77 +98,78 @@ export default [
96
98
 
97
99
  ## Rules
98
100
 
99
- | Rule | all | minimal | recommended | strict |
100
- | --- | :-: | :-: | :-: | :-: |
101
- | [`no-blank-customization-body`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-blank-customization-body) | | | | |
102
- | [`no-blank-repository-instructions`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-blank-repository-instructions) | | | | |
103
- | [`no-blank-skill-body`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-blank-skill-body) | | | | |
104
- | [`no-deprecated-agent-infer`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-deprecated-agent-infer) | | | | |
105
- | [`no-duplicate-agent-names`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-duplicate-agent-names) | | | | |
106
- | [`no-duplicate-prompt-names`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-duplicate-prompt-names) | | | | |
107
- | [`no-duplicate-skill-names`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-duplicate-skill-names) | | | | |
108
- | [`no-duplicate-slash-command-names`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-duplicate-slash-command-names) | | | | |
109
- | [`no-empty-repository-hook-arrays`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-empty-repository-hook-arrays) | | | | |
110
- | [`no-legacy-chatmode-files`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-legacy-chatmode-files) | | | | |
111
- | [`prefer-custom-instructions-under-code-review-limit`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/prefer-custom-instructions-under-code-review-limit) | | | | |
112
- | [`prefer-fast-repository-hooks`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/prefer-fast-repository-hooks) | | | | |
113
- | [`prefer-qualified-tools`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/prefer-qualified-tools) | | | | |
114
- | [`require-agent-tool-for-subagents`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-agent-tool-for-subagents) | | | | |
115
- | [`require-agents-md-for-cross-surface-agent-instructions`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-agents-md-for-cross-surface-agent-instructions) | | | | |
116
- | [`require-chatmode-file-metadata`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-chatmode-file-metadata) | | | | |
117
- | [`require-existing-agent-hook-cwd`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-existing-agent-hook-cwd) | | | | |
118
- | [`require-existing-agent-mcp-servers`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-existing-agent-mcp-servers) | | | | |
119
- | [`require-existing-relative-agent-links`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-existing-relative-agent-links) | | | | |
120
- | [`require-existing-relative-instructions-links`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-existing-relative-instructions-links) | | | | |
121
- | [`require-existing-relative-prompt-links`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-existing-relative-prompt-links) | | | | |
122
- | [`require-existing-relative-skill-links`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-existing-relative-skill-links) | | | | |
123
- | [`require-existing-repository-hook-cwd`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-existing-repository-hook-cwd) | | | | |
124
- | [`require-github-copilot-target-for-mcp-servers`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-github-copilot-target-for-mcp-servers) | | | | |
125
- | [`require-instructions-apply-to`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-instructions-apply-to) | | | | |
126
- | [`require-json-agent-mcp-servers`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-json-agent-mcp-servers) | | | | |
127
- | [`require-prompt-file-metadata`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-prompt-file-metadata) | | | | |
128
- | [`require-qualified-agent-handoff-models`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-qualified-agent-handoff-models) | | | | |
129
- | [`require-relative-agent-hook-cwd`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-relative-agent-hook-cwd) | | | | |
130
- | [`require-relative-agent-links`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-relative-agent-links) | | | | |
131
- | [`require-relative-instructions-links`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-relative-instructions-links) | | | | |
132
- | [`require-relative-prompt-links`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-relative-prompt-links) | | | | |
133
- | [`require-relative-repository-hook-cwd`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-relative-repository-hook-cwd) | | | | |
134
- | [`require-relative-skill-links`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-relative-skill-links) | | | | |
135
- | [`require-repository-hook-arrays`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-repository-hook-arrays) | | | | |
136
- | [`require-repository-hook-command-shell`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-repository-hook-command-shell) | | | | |
137
- | [`require-repository-hooks-object`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-repository-hooks-object) | | | | |
138
- | [`require-repository-instructions-file`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-repository-instructions-file) | | | | |
139
- | [`require-skill-file-location`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-skill-file-location) | | | | |
140
- | [`require-skill-file-metadata`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-skill-file-metadata) | | | | |
141
- | [`require-skill-md-filename`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-skill-md-filename) | | | | |
142
- | [`require-skill-name-match-directory`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-skill-name-match-directory) | | | | |
143
- | [`require-string-repository-hook-env-values`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-string-repository-hook-env-values) | | | | |
144
- | [`require-valid-agent-argument-hint`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-argument-hint) | | | | |
145
- | [`require-valid-agent-handoff-send`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-handoff-send) | | | | |
146
- | [`require-valid-agent-handoffs`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-handoffs) | | | | |
147
- | [`require-valid-agent-hook-events`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-hook-events) | | | | |
148
- | [`require-valid-agent-hook-timeouts`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-hook-timeouts) | | | | |
149
- | [`require-valid-agent-hooks`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-hooks) | | | | |
150
- | [`require-valid-agent-invocation-controls`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-invocation-controls) | | | | |
151
- | [`require-valid-agent-mcp-servers`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-mcp-servers) | | | | |
152
- | [`require-valid-agent-model`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-model) | | | | |
153
- | [`require-valid-agent-name`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-name) | | | | |
154
- | [`require-valid-agent-subagents`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-subagents) | | | | |
155
- | [`require-valid-agent-target`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-target) | | | | |
156
- | [`require-valid-agent-tools`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-tools) | | | | |
157
- | [`require-valid-instructions-apply-to-globs`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-instructions-apply-to-globs) | | | | |
158
- | [`require-valid-prompt-argument-hint`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-prompt-argument-hint) | | | | |
159
- | [`require-valid-prompt-model`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-prompt-model) | | | | |
160
- | [`require-valid-prompt-name`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-prompt-name) | | | | |
161
- | [`require-valid-prompt-tools`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-prompt-tools) | | | | |
162
- | [`require-valid-repository-hook-command-type`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-repository-hook-command-type) | | | | |
163
- | [`require-valid-repository-hook-env`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-repository-hook-env) | | | | |
164
- | [`require-valid-repository-hook-events`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-repository-hook-events) | | | | |
165
- | [`require-valid-repository-hook-timeouts`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-repository-hook-timeouts) | | | | |
166
- | [`require-valid-repository-hook-version`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-repository-hook-version) | | | | |
167
- | [`require-valid-skill-directory-name`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-skill-directory-name) | | | | |
168
- | [`require-valid-skill-license`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-skill-license) | | | | |
169
- | [`require-valid-skill-name`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-skill-name) | | | | |
101
+ | Rule | all | minimal | recommended | strict |
102
+ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-: | :-----: | :---------: | :----: |
103
+ | [`no-blank-customization-body`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-blank-customization-body) | | | | |
104
+ | [`no-blank-repository-instructions`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-blank-repository-instructions) | | | | |
105
+ | [`no-blank-skill-body`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-blank-skill-body) | | | | |
106
+ | [`no-deprecated-agent-infer`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-deprecated-agent-infer) | | | | |
107
+ | [`no-duplicate-agent-names`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-duplicate-agent-names) | | | | |
108
+ | [`no-duplicate-prompt-names`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-duplicate-prompt-names) | | | | |
109
+ | [`no-duplicate-skill-names`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-duplicate-skill-names) | | | | |
110
+ | [`no-duplicate-slash-command-names`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-duplicate-slash-command-names) | | | | |
111
+ | [`no-empty-repository-hook-arrays`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-empty-repository-hook-arrays) | | | | |
112
+ | [`no-legacy-chatmode-files`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/no-legacy-chatmode-files) | | | | |
113
+ | [`prefer-custom-instructions-under-code-review-limit`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/prefer-custom-instructions-under-code-review-limit) | | | | |
114
+ | [`prefer-fast-repository-hooks`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/prefer-fast-repository-hooks) | | | | |
115
+ | [`prefer-qualified-tools`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/prefer-qualified-tools) | | | | |
116
+ | [`require-agent-tool-for-subagents`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-agent-tool-for-subagents) | | | | |
117
+ | [`require-agents-md-for-cross-surface-agent-instructions`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-agents-md-for-cross-surface-agent-instructions) | | | | |
118
+ | [`require-chatmode-file-metadata`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-chatmode-file-metadata) | | | | |
119
+ | [`require-existing-agent-hook-cwd`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-existing-agent-hook-cwd) | | | | |
120
+ | [`require-existing-agent-mcp-servers`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-existing-agent-mcp-servers) | | | | |
121
+ | [`require-existing-relative-agent-links`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-existing-relative-agent-links) | | | | |
122
+ | [`require-existing-relative-instructions-links`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-existing-relative-instructions-links) | | | | |
123
+ | [`require-existing-relative-prompt-links`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-existing-relative-prompt-links) | | | | |
124
+ | [`require-existing-relative-skill-links`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-existing-relative-skill-links) | | | | |
125
+ | [`require-existing-repository-hook-cwd`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-existing-repository-hook-cwd) | | | | |
126
+ | [`require-github-copilot-target-for-mcp-servers`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-github-copilot-target-for-mcp-servers) | | | | |
127
+ | [`require-instructions-apply-to`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-instructions-apply-to) | | | | |
128
+ | [`require-json-agent-mcp-servers`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-json-agent-mcp-servers) | | | | |
129
+ | [`require-prompt-file-metadata`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-prompt-file-metadata) | | | | |
130
+ | [`require-qualified-agent-handoff-models`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-qualified-agent-handoff-models) | | | | |
131
+ | [`require-relative-agent-hook-cwd`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-relative-agent-hook-cwd) | | | | |
132
+ | [`require-relative-agent-links`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-relative-agent-links) | | | | |
133
+ | [`require-relative-instructions-links`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-relative-instructions-links) | | | | |
134
+ | [`require-relative-prompt-links`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-relative-prompt-links) | | | | |
135
+ | [`require-relative-repository-hook-cwd`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-relative-repository-hook-cwd) | | | | |
136
+ | [`require-relative-skill-links`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-relative-skill-links) | | | | |
137
+ | [`require-repository-hook-arrays`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-repository-hook-arrays) | | | | |
138
+ | [`require-repository-hook-command-shell`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-repository-hook-command-shell) | | | | |
139
+ | [`require-repository-hooks-object`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-repository-hooks-object) | | | | |
140
+ | [`require-repository-instructions-file`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-repository-instructions-file) | | | | |
141
+ | [`require-skill-file-location`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-skill-file-location) | | | | |
142
+ | [`require-skill-file-metadata`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-skill-file-metadata) | | | | |
143
+ | [`require-skill-md-filename`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-skill-md-filename) | | | | |
144
+ | [`require-skill-name-match-directory`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-skill-name-match-directory) | | | | |
145
+ | [`require-string-repository-hook-env-values`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-string-repository-hook-env-values) | | | | |
146
+ | [`require-valid-agent-argument-hint`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-argument-hint) | | | | |
147
+ | [`require-valid-agent-handoff-send`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-handoff-send) | | | | |
148
+ | [`require-valid-agent-handoffs`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-handoffs) | | | | |
149
+ | [`require-valid-agent-hook-events`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-hook-events) | | | | |
150
+ | [`require-valid-agent-hook-timeouts`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-hook-timeouts) | | | | |
151
+ | [`require-valid-agent-hooks`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-hooks) | | | | |
152
+ | [`require-valid-agent-invocation-controls`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-invocation-controls) | | | | |
153
+ | [`require-valid-agent-mcp-servers`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-mcp-servers) | | | | |
154
+ | [`require-valid-agent-model`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-model) | | | | |
155
+ | [`require-valid-agent-name`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-name) | | | | |
156
+ | [`require-valid-agent-subagents`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-subagents) | | | | |
157
+ | [`require-valid-agent-target`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-target) | | | | |
158
+ | [`require-valid-agent-tools`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-agent-tools) | | | | |
159
+ | [`require-valid-instructions-apply-to-globs`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-instructions-apply-to-globs) | | | | |
160
+ | [`require-valid-prompt-argument-hint`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-prompt-argument-hint) | | | | |
161
+ | [`require-valid-prompt-model`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-prompt-model) | | | | |
162
+ | [`require-valid-prompt-name`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-prompt-name) | | | | |
163
+ | [`require-valid-prompt-tools`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-prompt-tools) | | | | |
164
+ | [`require-valid-repository-hook-command-type`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-repository-hook-command-type) | | | | |
165
+ | [`require-valid-repository-hook-env`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-repository-hook-env) | | | | |
166
+ | [`require-valid-repository-hook-events`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-repository-hook-events) | | | | |
167
+ | [`require-valid-repository-hook-timeouts`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-repository-hook-timeouts) | | | | |
168
+ | [`require-valid-repository-hook-version`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-repository-hook-version) | | | | |
169
+ | [`require-valid-skill-directory-name`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-skill-directory-name) | | | | |
170
+ | [`require-valid-skill-license`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-skill-license) | | | | |
171
+ | [`require-valid-skill-name`](https://nick2bad4u.github.io/eslint-plugin-copilot/docs/rules/require-valid-skill-name) | | | | |
172
+
170
173
  ## Contributors ✨
171
174
 
172
175
  <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
@@ -10,10 +10,14 @@ export declare const isSkillMarkdownFilePath: (filePath: string) => boolean;
10
10
  export declare const isSkillFilePath: (filePath: string) => boolean;
11
11
  /** Check whether a path points to a repository hook configuration file. */
12
12
  export declare const isRepositoryHookFilePath: (filePath: string) => boolean;
13
+ /** Check whether a path points to a repository-wide Copilot instructions file. */
14
+ export declare const isRepositoryInstructionsFilePath: (filePath: string) => boolean;
13
15
  /** Derive the Copilot customization file kind for an absolute or relative path. */
14
16
  export declare const getCopilotFileKind: (filePath: string) => CopilotFileKind | null;
15
17
  /** Discover the repository root for the current file path. */
16
18
  export declare const findRepositoryRoot: (filePath: string) => string;
19
+ /** Resolve supported repository custom instructions file paths. */
20
+ export declare const getRepositoryInstructionsPaths: (filePath: string) => readonly string[];
17
21
  /** Resolve the canonical repository custom instructions file path. */
18
22
  export declare const getRepositoryInstructionsPath: (filePath: string) => string;
19
23
  //# sourceMappingURL=copilot-file-kind.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"copilot-file-kind.d.ts","sourceRoot":"","sources":["../../src/_internal/copilot-file-kind.ts"],"names":[],"mappings":"AAOA,2DAA2D;AAC3D,MAAM,MAAM,eAAe,GACrB,oBAAoB,GACpB,UAAU,GACV,cAAc,GACd,QAAQ,GACR,iBAAiB,GACjB,yBAAyB,GACzB,OAAO,CAAC;AAMd,wEAAwE;AACxE,eAAO,MAAM,wBAAwB,GAAI,UAAU,MAAM,KAAG,OAQ3D,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,qBAAqB,GAAI,UAAU,MAAM,KAAG,OAQxD,CAAC;AAYF,+EAA+E;AAC/E,eAAO,MAAM,uBAAuB,GAAI,UAAU,MAAM,KAAG,OAO1D,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,eAAe,GAAI,UAAU,MAAM,KAAG,OAQlD,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,wBAAwB,GAAI,UAAU,MAAM,KAAG,OAQ3D,CAAC;AAQF,mFAAmF;AACnF,eAAO,MAAM,kBAAkB,GAC3B,UAAU,MAAM,KACjB,eAAe,GAAG,IAsCpB,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,kBAAkB,GAAI,UAAU,MAAM,KAAG,MAwCrD,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,6BAA6B,GAAI,UAAU,MAAM,KAAG,MAK5D,CAAC"}
1
+ {"version":3,"file":"copilot-file-kind.d.ts","sourceRoot":"","sources":["../../src/_internal/copilot-file-kind.ts"],"names":[],"mappings":"AAOA,2DAA2D;AAC3D,MAAM,MAAM,eAAe,GACrB,oBAAoB,GACpB,UAAU,GACV,cAAc,GACd,QAAQ,GACR,iBAAiB,GACjB,yBAAyB,GACzB,OAAO,CAAC;AAMd,wEAAwE;AACxE,eAAO,MAAM,wBAAwB,GAAI,UAAU,MAAM,KAAG,OAQ3D,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,qBAAqB,GAAI,UAAU,MAAM,KAAG,OAQxD,CAAC;AAYF,+EAA+E;AAC/E,eAAO,MAAM,uBAAuB,GAAI,UAAU,MAAM,KAAG,OAO1D,CAAC;AAEF,yEAAyE;AACzE,eAAO,MAAM,eAAe,GAAI,UAAU,MAAM,KAAG,OAQlD,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,wBAAwB,GAAI,UAAU,MAAM,KAAG,OAQ3D,CAAC;AAEF,kFAAkF;AAClF,eAAO,MAAM,gCAAgC,GAAI,UAAU,MAAM,KAAG,OASnE,CAAC;AAQF,mFAAmF;AACnF,eAAO,MAAM,kBAAkB,GAC3B,UAAU,MAAM,KACjB,eAAe,GAAG,IAsCpB,CAAC;AAEF,8DAA8D;AAC9D,eAAO,MAAM,kBAAkB,GAAI,UAAU,MAAM,KAAG,MAwCrD,CAAC;AAEF,mEAAmE;AACnE,eAAO,MAAM,8BAA8B,GACvC,UAAU,MAAM,KACjB,SAAS,MAAM,EAYjB,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,6BAA6B,GAAI,UAAU,MAAM,KAAG,MAM5D,CAAC"}
@@ -46,6 +46,12 @@ export const isRepositoryHookFilePath = (filePath) => {
46
46
  return (normalizedFilePath.includes("/.github/hooks/") &&
47
47
  basename.endsWith(".json"));
48
48
  };
49
+ /** Check whether a path points to a repository-wide Copilot instructions file. */
50
+ export const isRepositoryInstructionsFilePath = (filePath) => {
51
+ const normalizedFilePath = normalizeFilePath(filePath);
52
+ return (normalizedFilePath.endsWith("/.github/copilot-instructions.md") ||
53
+ normalizedFilePath.endsWith("/.github/instructions/copilot-instructions.md"));
54
+ };
49
55
  /** Check whether a basename is one of the supported agent instruction names. */
50
56
  const isAgentInstructionsBasename = (basename) => basename === "AGENTS.md" ||
51
57
  basename === "CLAUDE.md" ||
@@ -54,7 +60,7 @@ const isAgentInstructionsBasename = (basename) => basename === "AGENTS.md" ||
54
60
  export const getCopilotFileKind = (filePath) => {
55
61
  const normalizedFilePath = normalizeFilePath(filePath);
56
62
  const basename = path.posix.basename(normalizedFilePath);
57
- if (normalizedFilePath.endsWith("/.github/copilot-instructions.md")) {
63
+ if (isRepositoryInstructionsFilePath(normalizedFilePath)) {
58
64
  return "repository-instructions";
59
65
  }
60
66
  if (normalizedFilePath.includes("/.github/instructions/") &&
@@ -106,6 +112,15 @@ export const findRepositoryRoot = (filePath) => {
106
112
  currentDirectory = parentDirectory;
107
113
  }
108
114
  };
115
+ /** Resolve supported repository custom instructions file paths. */
116
+ export const getRepositoryInstructionsPaths = (filePath) => {
117
+ const repositoryRoot = findRepositoryRoot(filePath);
118
+ return [
119
+ path.join(repositoryRoot, ".github", "copilot-instructions.md"),
120
+ path.join(repositoryRoot, ".github", "instructions", "copilot-instructions.md"),
121
+ ];
122
+ };
109
123
  /** Resolve the canonical repository custom instructions file path. */
110
- export const getRepositoryInstructionsPath = (filePath) => path.join(findRepositoryRoot(filePath), ".github", "copilot-instructions.md");
124
+ export const getRepositoryInstructionsPath = (filePath) => getRepositoryInstructionsPaths(filePath)[0] ??
125
+ path.join(findRepositoryRoot(filePath), ".github", "copilot-instructions.md");
111
126
  //# sourceMappingURL=copilot-file-kind.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"copilot-file-kind.js","sourceRoot":"","sources":["../../src/_internal/copilot-file-kind.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"copilot-file-kind.js","sourceRoot":"","sources":["../../src/_internal/copilot-file-kind.ts"],"names":[],"mappings":"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"}
package/dist/plugin.cjs CHANGED
@@ -40,7 +40,7 @@ var import_markdown = __toESM(require("@eslint/markdown"), 1);
40
40
  var package_default = {
41
41
  $schema: "https://www.schemastore.org/package.json",
42
42
  name: "eslint-plugin-copilot",
43
- version: "1.0.7",
43
+ version: "1.0.8",
44
44
  private: false,
45
45
  description: "ESLint rules for GitHub Copilot repository customization files.",
46
46
  keywords: [
@@ -237,20 +237,20 @@ var package_default = {
237
237
  "jsonc-eslint-parser": "$jsonc-eslint-parser"
238
238
  },
239
239
  dependencies: {
240
- "@typescript-eslint/parser": "^8.58.0",
241
- "@typescript-eslint/type-utils": "^8.58.0",
242
- "@typescript-eslint/utils": "^8.58.0"
240
+ "@typescript-eslint/parser": "^8.58.1",
241
+ "@typescript-eslint/type-utils": "^8.58.1",
242
+ "@typescript-eslint/utils": "^8.58.1"
243
243
  },
244
244
  devDependencies: {
245
245
  "@arethetypeswrong/cli": "^0.18.2",
246
246
  "@csstools/stylelint-formatter-github": "^2.0.0",
247
- "@docusaurus/eslint-plugin": "^3.9.2",
247
+ "@docusaurus/eslint-plugin": "^3.10.0",
248
248
  "@double-great/remark-lint-alt-text": "^1.1.1",
249
249
  "@double-great/stylelint-a11y": "^3.4.9",
250
250
  "@eslint-community/eslint-plugin-eslint-comments": "^4.7.1",
251
251
  "@eslint-react/eslint-plugin": "^4.2.3",
252
- "@eslint/compat": "^2.0.4",
253
- "@eslint/config-helpers": "^0.5.4",
252
+ "@eslint/compat": "^2.0.5",
253
+ "@eslint/config-helpers": "^0.5.5",
254
254
  "@eslint/config-inspector": "^1.5.0",
255
255
  "@eslint/css": "^1.1.0",
256
256
  "@eslint/js": "^10.0.1",
@@ -260,25 +260,25 @@ var package_default = {
260
260
  "@html-eslint/parser": "^0.59.0",
261
261
  "@microsoft/eslint-plugin-sdl": "^1.1.0",
262
262
  "@microsoft/tsdoc-config": "^0.18.1",
263
- "@secretlint/secretlint-rule-anthropic": "^11.5.0",
264
- "@secretlint/secretlint-rule-aws": "^11.5.0",
265
- "@secretlint/secretlint-rule-database-connection-string": "^11.5.0",
266
- "@secretlint/secretlint-rule-gcp": "^11.5.0",
267
- "@secretlint/secretlint-rule-github": "^11.5.0",
268
- "@secretlint/secretlint-rule-no-dotenv": "^11.5.0",
269
- "@secretlint/secretlint-rule-no-homedir": "^11.5.0",
270
- "@secretlint/secretlint-rule-npm": "^11.5.0",
271
- "@secretlint/secretlint-rule-openai": "^11.5.0",
272
- "@secretlint/secretlint-rule-pattern": "^11.5.0",
273
- "@secretlint/secretlint-rule-preset-recommend": "^11.4.1",
274
- "@secretlint/secretlint-rule-privatekey": "^11.5.0",
275
- "@secretlint/secretlint-rule-secp256k1-privatekey": "^11.5.0",
276
- "@secretlint/types": "^11.5.0",
263
+ "@secretlint/secretlint-rule-anthropic": "^11.6.0",
264
+ "@secretlint/secretlint-rule-aws": "^11.6.0",
265
+ "@secretlint/secretlint-rule-database-connection-string": "^11.6.0",
266
+ "@secretlint/secretlint-rule-gcp": "^11.6.0",
267
+ "@secretlint/secretlint-rule-github": "^11.6.0",
268
+ "@secretlint/secretlint-rule-no-dotenv": "^11.6.0",
269
+ "@secretlint/secretlint-rule-no-homedir": "^11.6.0",
270
+ "@secretlint/secretlint-rule-npm": "^11.6.0",
271
+ "@secretlint/secretlint-rule-openai": "^11.6.0",
272
+ "@secretlint/secretlint-rule-pattern": "^11.6.0",
273
+ "@secretlint/secretlint-rule-preset-recommend": "^11.6.0",
274
+ "@secretlint/secretlint-rule-privatekey": "^11.6.0",
275
+ "@secretlint/secretlint-rule-secp256k1-privatekey": "^11.6.0",
276
+ "@secretlint/types": "^11.6.0",
277
277
  "@softonus/prettier-plugin-duplicate-remover": "^1.1.2",
278
278
  "@stryker-ignorer/console-all": "^0.3.2",
279
- "@stryker-mutator/core": "^9.6.0",
280
- "@stryker-mutator/typescript-checker": "^9.6.0",
281
- "@stryker-mutator/vitest-runner": "^9.6.0",
279
+ "@stryker-mutator/core": "^9.6.1",
280
+ "@stryker-mutator/typescript-checker": "^9.6.1",
281
+ "@stryker-mutator/vitest-runner": "^9.6.1",
282
282
  "@stylelint-types/stylelint-order": "^7.0.1",
283
283
  "@stylelint-types/stylelint-stylistic": "^5.0.0",
284
284
  "@stylistic/eslint-plugin": "^5.10.0",
@@ -287,7 +287,7 @@ var package_default = {
287
287
  "@types/eslint-plugin-security": "^3.0.1",
288
288
  "@types/htmlhint": "^1.1.5",
289
289
  "@types/madge": "^5.0.3",
290
- "@types/node": "^25.5.2",
290
+ "@types/node": "^25.6.0",
291
291
  "@types/postcss-clamp": "^4.1.3",
292
292
  "@types/postcss-flexbugs-fixes": "^5.0.3",
293
293
  "@types/postcss-html": "^1.5.3",
@@ -296,11 +296,11 @@ var package_default = {
296
296
  "@types/postcss-normalize": "^9.0.4",
297
297
  "@types/postcss-reporter": "^7.0.5",
298
298
  "@types/sloc": "^0.2.3",
299
- "@typescript-eslint/eslint-plugin": "^8.58.0",
300
- "@typescript-eslint/rule-tester": "^8.58.0",
301
- "@vitest/coverage-v8": "^4.1.2",
302
- "@vitest/eslint-plugin": "^1.6.14",
303
- "@vitest/ui": "^4.1.2",
299
+ "@typescript-eslint/eslint-plugin": "^8.58.1",
300
+ "@typescript-eslint/rule-tester": "^8.58.1",
301
+ "@vitest/coverage-v8": "^4.1.4",
302
+ "@vitest/eslint-plugin": "^1.6.15",
303
+ "@vitest/ui": "^4.1.4",
304
304
  actionlint: "^2.0.6",
305
305
  "all-contributors-cli": "^6.26.1",
306
306
  "cognitive-complexity-ts": "^0.8.1",
@@ -323,8 +323,8 @@ var package_default = {
323
323
  "eslint-plugin-depend": "^1.5.0",
324
324
  "eslint-plugin-eslint-plugin": "^7.3.2",
325
325
  "eslint-plugin-etc": "^2.0.3",
326
- "eslint-plugin-etc-misc": "^1.0.5",
327
- "eslint-plugin-file-progress-2": "^3.4.4",
326
+ "eslint-plugin-etc-misc": "^1.0.6",
327
+ "eslint-plugin-file-progress-2": "^5.0.0",
328
328
  "eslint-plugin-html": "^8.1.4",
329
329
  "eslint-plugin-import-x": "^4.16.2",
330
330
  "eslint-plugin-jsdoc": "^62.9.0",
@@ -336,7 +336,7 @@ var package_default = {
336
336
  "eslint-plugin-module-interop": "^0.3.1",
337
337
  "eslint-plugin-n": "^17.24.0",
338
338
  "eslint-plugin-nitpick": "^0.12.0",
339
- "eslint-plugin-no-barrel-files": "^1.2.2",
339
+ "eslint-plugin-no-barrel-files": "^1.3.0",
340
340
  "eslint-plugin-no-explicit-type-exports": "^0.12.1",
341
341
  "eslint-plugin-no-function-declare-after-return": "^1.1.0",
342
342
  "eslint-plugin-no-lookahead-lookbehind-regexp": "^0.4.0",
@@ -370,18 +370,18 @@ var package_default = {
370
370
  "fast-check": "^4.6.0",
371
371
  "git-cliff": "^2.12.0",
372
372
  "gitleaks-secret-scanner": "^2.1.1",
373
- globals: "^17.4.0",
373
+ globals: "^17.5.0",
374
374
  htmlhint: "^1.9.2",
375
- jscpd: "^4.0.8",
375
+ jscpd: "^4.0.9",
376
376
  "jsonc-eslint-parser": "^3.1.0",
377
- knip: "^6.3.0",
377
+ knip: "^6.4.0",
378
378
  leasot: "^14.4.0",
379
379
  madge: "^8.0.0",
380
380
  "markdown-link-check": "^3.14.2",
381
- "npm-check-updates": "^20.0.0",
381
+ "npm-check-updates": "^20.0.1",
382
382
  "npm-package-json-lint": "^10.2.0",
383
383
  picocolors: "^1.1.1",
384
- postcss: "^8.5.8",
384
+ postcss: "^8.5.9",
385
385
  "postcss-assets": "^6.0.0",
386
386
  "postcss-clamp": "^4.1.0",
387
387
  "postcss-combine-duplicated-selectors": "^10.0.3",
@@ -394,11 +394,11 @@ var package_default = {
394
394
  "postcss-reporter": "^7.1.0",
395
395
  "postcss-round-subpixels": "^2.0.0",
396
396
  "postcss-scss": "^4.0.9",
397
- "postcss-sort-media-queries": "^6.3.3",
397
+ "postcss-sort-media-queries": "^6.4.4",
398
398
  "postcss-styled-jsx": "^1.0.1",
399
399
  "postcss-styled-syntax": "^0.7.1",
400
400
  "postcss-viewport-height-correction": "^1.1.1",
401
- prettier: "^3.8.1",
401
+ prettier: "^3.8.2",
402
402
  "prettier-plugin-ini": "^1.3.0",
403
403
  "prettier-plugin-interpolated-html-tags": "^2.0.1",
404
404
  "prettier-plugin-jsdoc": "^1.8.0",
@@ -518,10 +518,10 @@ var package_default = {
518
518
  "remark-validate-links": "^13.1.0",
519
519
  "remark-wiki-link": "^2.0.1",
520
520
  rimraf: "^6.1.3",
521
- secretlint: "^11.4.1",
521
+ secretlint: "^11.6.0",
522
522
  sloc: "^0.3.2",
523
523
  "sort-package-json": "^3.6.1",
524
- stylelint: "^17.6.0",
524
+ stylelint: "^17.7.0",
525
525
  "stylelint-actions-formatters": "^16.3.1",
526
526
  "stylelint-checkstyle-formatter": "^0.1.2",
527
527
  "stylelint-codeframe-formatter": "^1.2.0",
@@ -550,7 +550,7 @@ var package_default = {
550
550
  "stylelint-no-unresolved-module": "^2.5.2",
551
551
  "stylelint-no-unsupported-browser-features": "^8.1.1",
552
552
  "stylelint-order": "^8.1.1",
553
- "stylelint-plugin-defensive-css": "^2.8.1",
553
+ "stylelint-plugin-defensive-css": "^2.9.0",
554
554
  "stylelint-plugin-logical-css": "^2.1.0",
555
555
  "stylelint-plugin-use-baseline": "^1.4.1",
556
556
  "stylelint-prettier": "^5.0.3",
@@ -561,14 +561,14 @@ var package_default = {
561
561
  "stylelint-value-no-unknown-custom-properties": "^6.1.1",
562
562
  "toml-eslint-parser": "^1.0.3",
563
563
  "ts-unused-exports": "^11.0.1",
564
- typedoc: "^0.28.18",
564
+ typedoc: "^0.28.19",
565
565
  typescript: "^6.0.2",
566
- "typescript-eslint": "^8.58.0",
566
+ "typescript-eslint": "^8.58.1",
567
567
  typesync: "^0.14.3",
568
568
  vfile: "^6.0.3",
569
- vite: "^8.0.3",
569
+ vite: "^8.0.8",
570
570
  "vite-tsconfig-paths": "^6.1.1",
571
- vitest: "^4.1.2",
571
+ vitest: "^4.1.4",
572
572
  "yaml-eslint-parser": "^2.0.0",
573
573
  "yamllint-js": "^0.2.4"
574
574
  },
@@ -659,11 +659,15 @@ var isRepositoryHookFilePath = (filePath) => {
659
659
  const basename7 = path.posix.basename(normalizedFilePath);
660
660
  return normalizedFilePath.includes("/.github/hooks/") && basename7.endsWith(".json");
661
661
  };
662
+ var isRepositoryInstructionsFilePath = (filePath) => {
663
+ const normalizedFilePath = normalizeFilePath(filePath);
664
+ return normalizedFilePath.endsWith("/.github/copilot-instructions.md") || normalizedFilePath.endsWith("/.github/instructions/copilot-instructions.md");
665
+ };
662
666
  var isAgentInstructionsBasename = (basename7) => basename7 === "AGENTS.md" || basename7 === "CLAUDE.md" || basename7 === "GEMINI.md";
663
667
  var getCopilotFileKind = (filePath) => {
664
668
  const normalizedFilePath = normalizeFilePath(filePath);
665
669
  const basename7 = path.posix.basename(normalizedFilePath);
666
- if (normalizedFilePath.endsWith("/.github/copilot-instructions.md")) {
670
+ if (isRepositoryInstructionsFilePath(normalizedFilePath)) {
667
671
  return "repository-instructions";
668
672
  }
669
673
  if (normalizedFilePath.includes("/.github/instructions/") && basename7.endsWith(".instructions.md")) {
@@ -709,7 +713,13 @@ var findRepositoryRoot = (filePath) => {
709
713
  currentDirectory = parentDirectory;
710
714
  }
711
715
  };
712
- var getRepositoryInstructionsPath = (filePath) => path.join(findRepositoryRoot(filePath), ".github", "copilot-instructions.md");
716
+ var getRepositoryInstructionsPaths = (filePath) => {
717
+ const repositoryRoot = findRepositoryRoot(filePath);
718
+ return [
719
+ path.join(repositoryRoot, ".github", "copilot-instructions.md"),
720
+ path.join(repositoryRoot, ".github", "instructions", "copilot-instructions.md")
721
+ ];
722
+ };
713
723
 
714
724
  // dist/_internal/create-copilot-rule.js
715
725
  var import_utils = require("@typescript-eslint/utils");
@@ -3378,8 +3388,8 @@ var requireRepositoryInstructionsFileRule = createCopilotRule({
3378
3388
  if (fileKind !== "agent-instructions" && fileKind !== "chatmode" && fileKind !== "instructions" && fileKind !== "prompt") {
3379
3389
  return;
3380
3390
  }
3381
- const repositoryInstructionsPath = getRepositoryInstructionsPath(context.filename);
3382
- if (fs7.existsSync(repositoryInstructionsPath)) {
3391
+ const repositoryInstructionsPaths = getRepositoryInstructionsPaths(context.filename);
3392
+ if (repositoryInstructionsPaths.some((repositoryInstructionsPath) => fs7.existsSync(repositoryInstructionsPath))) {
3383
3393
  return;
3384
3394
  }
3385
3395
  reportAtDocumentStart(context, {
@@ -3394,13 +3404,13 @@ var requireRepositoryInstructionsFileRule = createCopilotRule({
3394
3404
  "copilot.configs.strict",
3395
3405
  "copilot.configs.all"
3396
3406
  ],
3397
- description: "require repositories that define Copilot customization assets to also provide `.github/copilot-instructions.md`.",
3407
+ description: "require repositories that define Copilot customization assets to also provide repository instructions via `.github/copilot-instructions.md` or `.github/instructions/copilot-instructions.md`.",
3398
3408
  frozen: false,
3399
3409
  recommended: false,
3400
3410
  requiresTypeChecking: false
3401
3411
  },
3402
3412
  messages: {
3403
- missingRepositoryInstructions: "Repositories that define Copilot prompts, custom agents, legacy chat modes, agent instructions, or path-specific instructions should also provide `.github/copilot-instructions.md` for baseline repository guidance."
3413
+ missingRepositoryInstructions: "Repositories that define Copilot prompts, custom agents, legacy chat modes, agent instructions, or path-specific instructions should also provide baseline repository guidance in `.github/copilot-instructions.md` or `.github/instructions/copilot-instructions.md`."
3404
3414
  },
3405
3415
  schema: [],
3406
3416
  type: "suggestion"
@@ -5119,6 +5129,7 @@ var copilotRules = copilotRuleRegistry;
5119
5129
  var ERROR_SEVERITY = "error";
5120
5130
  var COPILOT_MARKDOWN_FILES = [
5121
5131
  ".github/copilot-instructions.md",
5132
+ ".github/instructions/copilot-instructions.md",
5122
5133
  ".github/instructions/**/*.instructions.md",
5123
5134
  ".github/prompts/**/*.prompt.md",
5124
5135
  ".github/agents/**/*.agent.md",