3.6 KiB
3.6 KiB
AGENTS.md
Scope (MUST)
- Repository purpose: standalone Russian localization mod only.
- Allowed domain: localization content + packaging/release metadata.
- Forbidden: gameplay logic, Script Extender content, unrelated assets.
- Keep repository source-only.
- Never commit
.pakor temporary build artifacts.
Canonical Paths (MUST)
- Mod sources:
Mods/DnD 5.5e AIO Russian - Russian localization:
Mods/DnD 5.5e AIO Russian/Localization/Russian/russian.xml - Mod metadata:
Mods/DnD 5.5e AIO Russian/meta.lsx - Build script (single source of build truth):
scripts/build.ps1 - CI workflow:
.gitea/workflows/build.yml - Glossary (primary terminology reference):
glossary/glossary.normalized.json - Upstream English reference:
https://github.com/Yoonmoonsik/dnd55e/blob/main/Mods/DnD2024_897914ef-5c96-053c-44af-0be823f895fe/Localization/English/english.xml
Packaging Invariants (MUST)
.pakmust contain only BG3 mod structure underMods/....- Required content in
.pak:Mods/DnD 5.5e AIO Russian/meta.lsxMods/DnD 5.5e AIO Russian/Localization/Russian/russian.xml
- Must not leak into
.pak:.git,.gitea,scripts,tools,.tools,build, staging dirs. - Known CI quirk: Divine may produce broken ~48-byte
.pak; mitigation is inscripts/build.ps1. - Staging for packaging must be in
%TEMP%, not in dot-prefixed repo dirs.
Build/CI Contract (MUST)
- CI workflow stays thin:
- prepare workspace
- download Divine
- call
scripts/build.ps1 - publish tag archive
- Expected build outputs:
build/DnD 5.5e AIO Russian.pakbuild/info.jsonbuild/DnD 5.5e AIO Russian <tag>.zip(for tag builds)
- Release ZIP must include only
.pak+info.json. - CI triggers: tag
v*and manual dispatch; not every push tomain.
Version/Release Rules (MUST)
- Source of truth for release version:
ModuleInfo/Version64inmeta.lsx. PublishVersionmust not be changed during release preparation.- Release tag must match the source-of-truth version.
- Decision logic before tagging:
- If
ModuleInfo/Version64was manually changed (e.g. BG3 Toolkit), use matching tag and release. - If
ModuleInfo/Version64equals latest released version, bump version first (e.g.scripts/set-version.ps1 -VersionTag <tag>), commit, then create/push tag.
- If
scripts/build.ps1derives releaseVersion64from tag and writes it to generatedinfo.jsonand stagedmeta.lsx.
info.json Contract (MUST)
- Top-level keys:
Mods,MD5. - Per-mod keys:
Author,Name,Folder,Version,Description,UUID,Created,Dependencies,Group. Dependenciesis an array of UUIDs.- Current dependency UUID:
897914ef-5c96-053c-44af-0be823f895fe.
Git Collaboration Policy (MUST)
- Ask user permission before commit.
- After approval: commit and push immediately.
- Significant work: propose separate
feat/*orfix/*branch. - After finishing
feat/*orfix/*: propose merge back tomain. - Commit messages and comments: Russian.
- Commit message content: what was done (not what should be done).
- If push fails: retry up to 2 more times with 3s pause.
- If changes affect
.pakcontents or build/release flow: propose releasing next version. - For released versions in user-facing messages: provide direct archive link when derivable (acceptable immediately after tag push, even before CI finishes).
- Never auto-commit/auto-push without explicit user approval.
Cleanup (MUST)
- Do not leave temporary/debug artifacts in repo.
- Ignored/temp patterns include:
build/,build-stage*,.tools/,*.pak. - Remove additional debug/temp dirs unless user asked to keep them.