docs: move project documentation into docs/ - #24071
Merged
Merged
Conversation
docs/ had 31 files and no index, so the AGENTS.md routing table was doing index duty by default. Adds docs/README.md grouped by task. writing-documentation.md states the convention we've been drifting towards anyway: project and coding docs go in docs/, AGENTS.md is for agent instructions only. Written as a doc so an LLM asked to add documentation finds the rule at the point of need. Also fixes four lowercase admonition markers. GitHub only renders [!NOTE] etc in uppercase; lowercase silently degrades to a blockquote.
Content is near-verbatim apart from the fixes below. Dropped the "read this file when doing X" preambles, since routing is AGENTS.md's job now. repo-layout.md: AGENTS-DIRECTORIES had drifted badly. The Packages section listed four packages that don't exist (paths, paths-node, game-extension-helpers, install-entries) and omitted nine that do. Two of four extension examples pointed at extensions/ when collections and the fomod installers actually live under src/renderer/src/extensions/. samples/sample-extension/ doesn't exist at all. All rewritten from the real tree, and the renderer/bundled extension split is now explicit because that was the part most likely to send someone to the wrong half of the repo. testing.md: AGENTS-TESTING and AGENTS-FRONTEND contradicted each other on selectors, one mandating data-testid and the other role/label/text. The codebase is genuinely split, so this documents when to use which: role where unambiguous, testid when not, text only in E2E. Keeps the reason text matching misleads in unit tests (no i18n instance, so t returns the key). Also notes that pnpm run test excludes the E2E suite. frontend.md: trimmed the commands section, which duplicated the standard build/test/format loop, keeping the pnpm run api step that is genuinely renderer-specific. Moved the i18n key format out to the i18n guide, which now records that the :: and ::: forms exist in legacy code, since that convention is unsettled and shouldn't be stated twice.
collections.md: fixes two paths AGENTS-COLLECTIONS had wrong. It cited src/extensions/mod_management/InstallManager.ts, which doesn't exist (it's under src/renderer/src/), and __tests__/PhasedInstaller.test.ts, which doesn't exist either; there is no __tests__ dir. Replaced with the four real test files. Added InstallPhaseTracker.ts, rulePhase.ts and requeueCandidates.ts to Key Files, since the critical rules named them without saying where they live. Points at InstallManager's own header comment for the phase state detail rather than restating it. DEBUGGING-GUIDE.md: AGENTS-DEBUGGING's F5/breakpoint bullets were already covered here and in CONTRIBUTING.md, so they're dropped. The VORTEX_TRACE_DB_WRITES documentation was the only unique content and was in neither, so it becomes a new Diagnostic Environment Variables section next to Log Files. The watch-log skill cross-checks the level_pivot marker strings against this text, so they're kept verbatim; drift-check passes. Also fixes the hand-maintained ToC, which listed a Native Module Debugging section that no longer exists and omitted Advanced Debugging Tools. Dropped a leftover personal TODO note from AGENTS-DEBUGGING. The three InstallManager.ts references are comments only; renderer typecheck passes.
Deletes 52 lines and adds about 10, which needs explaining: windows.md was already a strict superset of AGENTS-PACKAGING. Same version injection commands, same standalone-src/main trap with the same error string, same asar guard with the electron-builder 24.13.3 pinning rationale, same artifact list. The three updater env vars are better covered in updater-testing.md. Two things were genuinely only in the AGENTS file, and both are carried over: the explicit `node scripts/verify-packaged-asar.mjs` invocation (windows.md described the guard as a pipeline step without ever giving the command), and the pointer to the signed rehearsal and scripts/updater-e2e-staging.mjs. Nothing else was lost. The four dropped sections were duplicates.
AGENTS.md now holds only what an agent needs to operate here, and defers to docs/ for everything project and coding related. Sections: verify, commit, toolchain, tool use, MCP, skills, and a task-to-doc table. Most of this is new rather than moved. The old file had no MCP references, no tool preferences and no mention of the three repo skills, so the routing table was the only genuinely agent-specific thing in it. The new content is verified against the repo's own config: - pnpm run build already runs lint and typecheck, so the old advice to run all four separately cost two redundant Nx fan-outs per change. - pnpm run test excludes @vortex/e2e, so passing it is not evidence that E2E passes. - The pre-commit hook runs oxfmt over every staged file including markdown, which surprises anyone who carefully formatted a file first. - Node and pnpm are pinned exactly, so reaching for npm breaks things. Also removes a stale bullet from the changelog skill claiming AGENTS.md documents a reference-link convention under a ## Changelog section. No such section existed and the convention isn't written down anywhere; the line above it already names CHANGELOG.md as the style reference. README and CONTRIBUTING now point at docs/README.md rather than the bare directory. Unrelated drive-by in DEBUGGING-GUIDE.md: the Redux DevTools link pointed at src/util/reduxDevTools.ts, which doesn't exist. Repointed at where that wiring actually lives.
The packages moved to src/<pkg>/src at some point and the docs never followed, so 40 path citations pointed at nothing. Two needed more than the missing segment: the renderer telemetry module is not under extensions/, and main's build output is build/, not out/. The i18n docs also cited line numbers, which I dropped rather than update, since they rot. I18N_STATUS.md documented the i18next separators as ':' and '.' while the code sets ':::' and '::'. The doc now states what the code does and carries a warning rather than a fix, because the migration guide, the locale files and the migrated example all assume the documented format. Which side is wrong needs checking before more strings are migrated. Also gathered the diagnostic environment variables into one table linking to whichever doc owns each, documented the four that were undocumented, and gave install-instructions/ the README index the three-file rule asks for.
Sewer56
reviewed
Aug 31, 2026
Sewer56
reviewed
Aug 31, 2026
Sewer56
reviewed
Aug 31, 2026
Sewer56
reviewed
Aug 31, 2026
Sewer56
reviewed
Aug 31, 2026
Sewer56
reviewed
Aug 31, 2026
Sewer56
reviewed
Aug 31, 2026
Sewer56
reviewed
Aug 31, 2026
Sewer56
reviewed
Aug 31, 2026
Sewer56
reviewed
Aug 31, 2026
Sewer56
reviewed
Aug 31, 2026
Sewer56
reviewed
Aug 31, 2026
AGENTS.md is injected into every session, so anything the harness already provides is paid for on every run and returns nothing. The skills list, the MCP server names, prefer-file-tools-over-shell, cite-path:line and the default shell are all in the system prompt already. The toolchain section was worse than redundant: it duplicated docs/install-instructions/shared.md while hardcoding the pnpm and node versions that shared.md deliberately does not. 96 lines down to 56. New `pnpm run verify` chains format, build and test, so there is one call to make instead of three. Format goes first so build validates what the formatter produced. The pre-commit hook behaviour moved to CONTRIBUTING.md. Review feedback from Sewer56 on #24071.
Sewer56
reviewed
Sep 1, 2026
Sewer56
reviewed
Sep 1, 2026
Sewer56
approved these changes
Sep 1, 2026
Sewer56
left a comment
Member
There was a problem hiding this comment.
Note that I didn't go through the frontend stuff too deeply, as I've not touched that part of the codebase.
All's good otherwise 👌
insomnious
enabled auto-merge
September 1, 2026 12:48
joshedney
pushed a commit
that referenced
this pull request
Sep 2, 2026
AGENTS.md is injected into every session, so anything the harness already provides is paid for on every run and returns nothing. The skills list, the MCP server names, prefer-file-tools-over-shell, cite-path:line and the default shell are all in the system prompt already. The toolchain section was worse than redundant: it duplicated docs/install-instructions/shared.md while hardcoding the pnpm and node versions that shared.md deliberately does not. 96 lines down to 56. New `pnpm run verify` chains format, build and test, so there is one call to make instead of three. Format goes first so build validates what the formatter produced. The pre-commit hook behaviour moved to CONTRIBUTING.md. Review feedback from Sewer56 on #24071.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The six
AGENTS-*.mdfiles at the repo root are gone. Everything in them that was project or coding documentation is now indocs/, indexed by docs/README.md, andAGENTS.mdcovers only how to operate in this repo: commands, tools, skills, and which doc to read for a task.They moved because a file only agents read never gets reviewed the way a doc a human opens does, so it rots.
AGENTS-DIRECTORIES.mdhad eight wrong paths in sixty lines by the time I moved it. Auditing the rest ofdocs/then turned up another 40 citations pointing at files that do not exist, mostly the packages having moved tosrc/<pkg>/src/without the docs following.The layout now:
docs/owns all project and coding documentation, whoever the reader isdocs/README.mdindexes it, and every new doc gets a line theredocs/writing-documentation.mdholds the conventions: naming, structure, tone, and one owner per factWorth looking at first:
docs/I18N_STATUS.mdcarries a new warning rather than a fix. It documented the i18next separators as:and.while the code sets:::and::, and the migration guide, the locale files and the one migrated example all assume the documented format. Someone who knows the i18n work should decide which side is wrong before more strings are migrated.The only non-markdown file is
InstallManager.ts, where three comments pointed atAGENTS-COLLECTIONS.md. Comment text only, no behaviour change.Untested beyond
pnpm run formatand an audit that every cited source path and relative link resolves. It is all markdown apart from those comments.