Skip to content

docs: tighten AGENTS.md rules for directory listings, branch names, and PR template#21005

Merged
alexander-akait merged 6 commits into
mainfrom
docs/improve-agents-md-F4czK
May 21, 2026
Merged

docs: tighten AGENTS.md rules for directory listings, branch names, and PR template#21005
alexander-akait merged 6 commits into
mainfrom
docs/improve-agents-md-F4czK

Conversation

@alexander-akait

Copy link
Copy Markdown
Member
  • Mark the Project Overview directory tree as the canonical map and
    require updates in the same commit when directories are added,
    renamed, or removed (CI does not catch drift).
  • Add a required Branch name section: branches must use the PR
    change-type prefix (fix, feat, refactor, perf, test, chore, ci,
    build, style, revert, docs) instead of agent/tool prefixes such
    as 'claude/'.
  • Strengthen the Pull request body section with explicit anti-patterns
    (Summary/Test plan substitution, omitting Use of AI, dropping HTML
    comment hints) so the org-wide template stops being skipped.

…nd PR template

- Mark the Project Overview directory tree as the canonical map and
  require updates in the same commit when directories are added,
  renamed, or removed (CI does not catch drift).
- Add a required Branch name section: branches must use the PR
  change-type prefix (fix, feat, refactor, perf, test, chore, ci,
  build, style, revert, docs) instead of agent/tool prefixes such
  as 'claude/'.
- Strengthen the Pull request body section with explicit anti-patterns
  (Summary/Test plan substitution, omitting Use of AI, dropping HTML
  comment hints) so the org-wide template stops being skipped.
Add an 'After opening the PR — wait for Copilot review' subsection
under Git Commit & Pull Request. It mandates subscribing to the PR
after opening it, addressing every Copilot comment (fix or reasoned
reply, never silent ignore), and only unsubscribing once all comments
are handled and CI is green.
- Add lib/typescript/ (experimental TypeScript module support).
- Add test/hotPlayground/ (hand-written HMR playground fixtures).
- List the auto-generated declarations/ directory both in the
  Project Overview tree and in the Auto-generated files section.
Move the 'this is not optional, reviewers have flagged this being
skipped, read it in full every time' warning from the Pull request
body section up into 'Conventions in this guide', so it applies to
every REQUIRED section instead of only the PR body.
Make explicit that the wait-for-Copilot loop covers not only the
initial create_pull_request but every push to the PR branch:
Copilot re-reviews after each new commit, and the agent must wait
and address those new comments the same way as the first review.
The loop only terminates when Copilot's latest review has zero
outstanding threads.
Add guidance to the 'Adding a Changeset' section: keep the
description to a single imperative sentence, ideally ≤ 80
characters. Changesets concatenate into the release CHANGELOG.md
verbatim, so rationale, migration notes, and links belong in the
PR body — not in the changeset file.
Copilot AI review requested due to automatic review settings May 21, 2026 01:12
@changeset-bot

changeset-bot Bot commented May 21, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: cc59b3f

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@github-actions

github-actions Bot commented May 21, 2026

Copy link
Copy Markdown
Contributor

This PR is packaged and the instant preview is available (6c5f2f8).

Install it locally:

  • npm
npm i -D webpack@https://pkg.pr.new/webpack@6c5f2f8
  • yarn
yarn add -D webpack@https://pkg.pr.new/webpack@6c5f2f8
  • pnpm
pnpm add -D webpack@https://pkg.pr.new/webpack@6c5f2f8

@github-actions

Copy link
Copy Markdown
Contributor

Types Coverage

Coverage after merging docs/improve-agents-md-F4czK into main will be
98.96%
Coverage Report
FileStmtsBranchesFuncsLinesUncovered Lines
bin
   webpack.js98.77%100%100%98.77%91
examples
   build-common.js100%100%100%100%
   buildAll.js100%100%100%100%
   examples.js100%100%100%100%
   template-common.js98.21%100%100%98.21%72
examples/custom-javascript-parser
   test.filter.js100%100%100%100%
examples/custom-javascript-parser/internals
   acorn-parse.js100%100%100%100%
   meriyah-parse.js100%100%100%100%
   oxc-parse.js91.30%100%100%91.30%140, 142–143, 145, 147, 153–154, 161, 168, 90
examples/markdown
   webpack.config.mjs100%100%100%100%
examples/typescript
   test.filter.js100%100%100%100%
examples/typescript-non-erasable
   test.filter.js50%100%100%50%5
examples/virtual-modules
   test.filter.js100%100%100%100%
examples/wasm-bindgen-esm
   test.filter.js100%100%100%100%
examples/wasm-complex
   test.filter.js100%100%100%100%
examples/wasm-simple
   test.filter.js100%100%100%100%
examples/wasm-simple-source-phase
   test.filter.js100%100%100%100%
lib
   APIPlugin.js100%100%100%100%
   AsyncDependenciesBlock.js100%100%100%100%
   AutomaticPrefetchPlugin.js100%100%100%100%
   BannerPlugin.js100%100%100%100%
   Cache.js98.21%100%100%98.21%101
   CacheFacade.js100%100%100%100%
   Chunk.js99.72%100%100%99.72%39
   ChunkGraph.js100%100%100%100%
   ChunkGroup.js100%100%100%100%
   ChunkTemplate.js100%100%100%100%
   CleanPlugin.js99.15%100%100%99.15%206, 226
   CodeGenerationResults.js100%100%100%100%
   CompatibilityPlugin.js100%100%100%100%
   Compilation.js98.45%100%100%98.45%1572, 1868, 1875, 1883, 1905, 2801, 3226, 3888, 3917, 3970–3971, 3975, 3980, 3996–3997, 4011–4012, 4017–4018, 4495, 4521, 511, 516, 5229, 5261, 5278, 5294, 5310, 5325, 5350–5351, 5353, 5681, 5686, 5692, 5695, 5707, 5709, 5713, 5729, 5744, 5776, 5830, 5854, 5968, 730–731
   Compiler.js99.55%100%100%99.55%1116–1117, 1125
   ConcatenationScope.js98.59%100%100%98.59%189
   ConditionalInitFragment.js100%100%100%100%
   ConstPlugin.js100%100%100%100%
   ContextExclusionPlugin.js100%100%100%100%
   ContextModule.js100%100%100%100%
   ContextModuleFactory.js97.75%100%100%97.75%258, 393, 418, 443, 447, 458
   ContextReplacementPlugin.js100%100%100%100%
   DefinePlugin.js98.92%100%100%98.92%158–159, 175, 194, 268
   DependenciesBlock.js100%100%100%100%
   Dependency.js98.20%100%100%98.20%379, 425
   DependencyTemplate.js100%100%100%100%
   DependencyTemplates.js100%100%100%100%
   DotenvPlugin.js98.41%100%100%98.41%378, 391–392
   DynamicEntryPlugin.js100%100%100%100%
   EntryOptionPlugin.js100%100%100%100%
   EntryPlugin.js100%100%100%100%
   Entrypoint.js100%100%100%100%
   EnvironmentPlugin.js97.14%100%100%97.14%49
   ErrorHelpers.js100%100%100%100%
   EvalDevToolModulePlugin.js100%100%100%100%
   EvalSourceMapDevToolPlugin.js100%100%100%100%
   ExportsInfo.js100%100%100%100%
   ExportsInfoApiPlugin.js100%100%100%100%
   ExternalModule.js98.97%100%100%98.97%425–429, 577
   ExternalModuleFactoryPlugin.js100%100%100%100%
   ExternalsPlugin.js100%100%100%100%
   FileSystemInfo.js99.50%100%100%99.50%182, 2252–2253, 2256, 2267, 2278, 2289, 278, 3694, 3709, 3733
   FlagAllModulesAsUsedPlugin.js100%100%100%100%
   FlagDependencyExportsPlugin.js98.74%100%100%98.74%399, 401, 405
   FlagDependencyUsagePlugin.js100%100%100%100%
   FlagEntryExportAsUsedPlugin.js100%100%100%100%
   Generator.js100%100%100%100%
   HotModuleReplacementPlugin.js100%100%100%100%
   HotUpdateChunk.js100%100%100%100%
   IgnorePlugin.js100%100%100%100%
   IgnoreWarningsPlugin.js100%100%100%100%
   InitFragment.js100%100%100%100%
   JavascriptMetaInfoPlugin.js100%100%100%100%
   LibraryTemplatePlugin.js100%100%100%100%
   LoaderOptionsPlugin.js100%100%100%100%
   LoaderTargetPlugin.js100%100%100%100%
   MainTemplate.js100%100%100%100%
   ManifestPlugin.js100%100%100%100%
   Module.js98.50%100%100%98.50%1305, 1310, 1371, 1385, 1447, 1456
   ModuleFactory.js100%100%100%100%
   ModuleFilenameHelpers.js98.85%100%100%98.85%106, 108
   ModuleGraph.js99.73%100%100%99.73%1004
   ModuleGraphConnection.js100%100%100%100%
   ModuleInfoHeaderPlugin.js100%100%100%100%
   ModuleNotFoundError.js100%100%100%100%
   ModuleProfile.js100%100%100%100%
   ModuleSourceTypeConstants.js100%100%100%100%
   ModuleTemplate.js100%100%100%100%
   ModuleTypeConstants.js100%100%100%100%
   MultiCompiler.js99.69%100%100%99.69%645
   MultiStats.js100%100%100%100%
   MultiWatching.js100%100%100%100%
   NoEmitOnErrorsPlugin.js100%100%100%100%
   NodeStuffPlugin.js100%100%100%100%
   NormalModule.js97.83%100%100%97.83%1072, 1106, 1122, 1209, 1834, 1839–1849, 794, 797, 814, 831
   NormalModuleFactory.js99.47%100%100%99.47%1083, 1392, 486, 498
   NormalModuleReplacementPlugin.js100%100%100%100%
   NullFactory.js100%100%100%100%
   OptimizationStages.js100%100%100%100%
   OptionsApply.js100%100%100%100%
   Parser.js100%100%100%100%
   PlatformPlugin.js100%100%100%100%
   PrefetchPlugin.js100%100%100%100%
   ProgressPlugin.js98.85%100%100%98.85%519–520, 525, 527, 591
   ProvidePlugin.js100%100%100%100%
   RawModule.js100%100%100%100%
   RecordIdsPlugin.js100%100%100%100%
   RequestShortener.js100%100%100%100%
   ResolverFactory.js100%100%100%100%
   RuntimeGlobals.js100%100%100%100%
   RuntimeModule.js100%100%100%100%
   RuntimePlugin.js100%100%100%100%
   RuntimeTemplate.js100%100%100%100%
   SelfModuleFactory.js100%100%100%100%
   SingleEntryPlugin.js100%100%100%100%
   SourceMapDevToolModuleOptionsPlugin.js100%100%100%100%
   SourceMapDevToolPlugin.js99.16%100%100%99.16%267–268, 610
   Stats.js100%100%100%100%
   Template.js100%100%100%100%
   TemplatedPathPlugin.js98.86%100%100%98.86%136–137
   UseStrictPlugin.js100%100%100%100%
   WarnCaseSensitiveModulesPlugin.js100%100%100%100%
   WarnDeprecatedOptionPlugin.js100%100%100%100%
   WarnNoModeSetPlugin.js100%100%100%100%
   WatchIgnorePlugin.js100%100%100%100%
   Watching.js100%100%100%100%
   WebpackError.js100%100%100%100%
   WebpackIsIncludedPlugin.js100%100%100%100%
   WebpackOptionsApply.js100%100%100%100%
   WebpackOptionsDefaulter.js100%100%100%100%
   buildChunkGraph.js99.87%100%100%99.87%325
   cli.js98.46%100%100%98.46%10, 119, 471, 503, 545, 815
   index.js99.72%100%100%99.72%165
   validateSchema.js94.67%100%100%94.67%100, 87, 89, 98
   webpack.js96.33%100%100%96.33%10, 198, 220, 222
lib/asset
   AssetBytesGenerator.js100%100%100%100%
   AssetBytesParser.js100%100%100%100%
   AssetGenerator.js100%100%100%100%
   AssetModulesPlugin.js97.32%100%100%97.32%283, 307, 310, 36, 362, 41
   AssetParser.js100%100%100%100%
   AssetSourceGenerator.js100%100%100%100%
   AssetSourceParser.js100%100%100%100%
   RawDataUrlModule.js100%100%100%100%
lib/async-modules
   AsyncModuleHelpers.js100%100%100%100%
   AwaitDependenciesInitFragment.js100%100%100%100%
   InferAsyncModulesPlugin.js100%100%100%100%
lib/cache
   AddBuildDependenciesPlugin.js100%100%100%100%
   AddManagedPathsPlugin.js100%100%100%100%
   IdleFileCachePlugin.js97.92%100%100%97.92%71, 83, 91
   MemoryCachePlugin.js95.83%100%100%95.83%33
   MemoryWithGcCachePlugin.js93.15%100%100%93.15%106, 113–114, 122, 89
   PackFileCacheStrategy.js96.40%100%100%96.40%1250, 1350, 1354, 1416, 628, 647, 657–659, 661, 677–678, 683, 686, 688, 693, 698, 722, 728, 762, 768, 774, 779, 790, 799, 804–805, 807, 824, 830–831, 833
   ResolverCachePlugin.js100%100%100%100%
   getLazyHashedEtag.js100%100%100%100%
   mergeEtags.js100%100%100%100%
lib/config
   browserslistTargetHandler.js100%100%100%100%
   defaults.js99.29%100%100%99.29%1411–1413, 1421, 271, 274, 279, 283
   normalization.js99%100%100%99%191–192, 258, 273
   target.js100%100%100%100%
lib/container
   ContainerEntryDependency.js100%100%100%100%
   ContainerEntryModule.js100%100%100%100%
   ContainerEntryModuleFactory.js100%100%100%100%
   ContainerExposedDependency.js100%100%100%100%
   ContainerPlugin.js100%100%100%100%
   ContainerReferencePlugin.js100%100%100%100%
   FallbackDependency.js100%100%100%100%
   FallbackItemDependency.js100%100%100%100%
   FallbackModule.js100%100%100%100%
   FallbackModuleFactory.js100%100%100%100%
   

@codecov

codecov Bot commented May 21, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.94%. Comparing base (294197c) to head (cc59b3f).

Additional details and impacted files
@@           Coverage Diff           @@
##             main   #21005   +/-   ##
=======================================
  Coverage   90.94%   90.94%           
=======================================
  Files         573      573           
  Lines       58986    58986           
  Branches    15898    15898           
=======================================
  Hits        53647    53647           
  Misses       5339     5339           
Flag Coverage Δ
integration 89.72% <ø> (ø)
test262 45.37% <ø> (ø)
unit 36.63% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates AGENTS.md to make contributor/agent workflow guidance stricter and more enforceable, particularly around keeping repository directory maps in sync, standardizing branch naming, and preventing drift from the org-wide PR body template.

Changes:

  • Marks the “Project Overview” directory listings as canonical and requires updating them when top-level directories change.
  • Adds a REQUIRED branch naming convention based on the PR template’s change-type list.
  • Expands REQUIRED PR-body guidance with explicitly PR-blocking anti-patterns and adds a REQUIRED step to wait for and address GitHub Copilot review feedback.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread AGENTS.md

- Writing `## Summary` and `## Test plan` headings instead of the bold-labelled sections below (`**Summary**`, `**What kind of change does this PR introduce?**`, …).
- Omitting **Use of AI** — this is mandatory under the [webpack AI policy](https://github.com/webpack/governance/blob/main/AI_POLICY.md); a missing or vague answer can get the PR closed.
- Omitting **What kind of change does this PR introduce?** or answering with something outside the allowed list (`fix`, `feat`, `refactor`, `perf`, `test`, `chore`, `ci`, `build`, `style`, `revert`, `docs`). The answer here must also match the branch-name prefix (see [Branch name](#branch-name)).
@codspeed-hq

codspeed-hq Bot commented May 21, 2026

Copy link
Copy Markdown

Merging this PR will improve performance by 21.23%

⚡ 5 improved benchmarks
❌ 2 regressed benchmarks
✅ 137 untouched benchmarks
⏩ 72 skipped benchmarks1

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Mode Benchmark BASE HEAD Efficiency
Memory benchmark "concatenate-modules", scenario '{"name":"mode-development","mode":"development"}' 1,113.1 KB 783.2 KB +42.12%
Memory benchmark "many-chunks-esm", scenario '{"name":"mode-production","mode":"production"}' 10.8 MB 8 MB +35.12%
Memory benchmark "many-chunks-commonjs", scenario '{"name":"mode-development-rebuild","mode":"development","watch":true}' 299.5 KB 171.2 KB +74.91%
Memory benchmark "css-modules", scenario '{"name":"mode-development","mode":"development"}' 548.6 KB 1,301.4 KB -57.84%
Memory benchmark "many-chunks-commonjs", scenario '{"name":"mode-production","mode":"production"}' 10.4 MB 8.3 MB +24.09%
Memory benchmark "future-defaults", scenario '{"name":"mode-development-rebuild","mode":"development","watch":true}' 145.2 KB 289.4 KB -49.81%
Memory benchmark "cache-filesystem", scenario '{"name":"mode-development-rebuild","mode":"development","watch":true}' 843.9 KB 193.4 KB ×4.4

Tip

Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.


Comparing docs/improve-agents-md-F4czK (cc59b3f) with main (294197c)

Open in CodSpeed

Footnotes

  1. 72 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

@alexander-akait alexander-akait merged commit 6c5f2f8 into main May 21, 2026
62 of 63 checks passed
@alexander-akait alexander-akait deleted the docs/improve-agents-md-F4czK branch May 21, 2026 12:46
alexander-akait added a commit that referenced this pull request May 25, 2026
AGENTS.md (after #21005) caps changeset descriptions at one sentence
≤ 80 characters in the imperative — multi-paragraph rationale belongs
in the PR body, not the changeset.
alexander-akait added a commit that referenced this pull request May 26, 2026
AGENTS.md (after #21005) caps changeset descriptions at one sentence
≤ 80 characters in the imperative — multi-paragraph rationale belongs
in the PR body, not the changeset.
alexander-akait added a commit that referenced this pull request May 26, 2026
AGENTS.md (after #21005) caps changeset descriptions at one sentence
≤ 80 characters in the imperative — multi-paragraph rationale belongs
in the PR body, not the changeset.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants