bg3-mod-studio 1.0.0b1__tar.gz
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.
- bg3_mod_studio-1.0.0b1/.agents/skills/bg3-check-mod-conflicts/SKILL.md +45 -0
- bg3_mod_studio-1.0.0b1/.agents/skills/bg3-check-mod-conflicts/references/conflict_methodology.md +33 -0
- bg3_mod_studio-1.0.0b1/.agents/skills/bg3-check-mod-conflicts/resources/remediation_patch_template.md +43 -0
- bg3_mod_studio-1.0.0b1/.agents/skills/bg3-create-build-guide/SKILL.md +36 -0
- bg3_mod_studio-1.0.0b1/.agents/skills/bg3-create-build-guide/references/build_conventions.md +38 -0
- bg3_mod_studio-1.0.0b1/.agents/skills/bg3-create-build-guide/resources/build_guide_template.md +116 -0
- bg3_mod_studio-1.0.0b1/.agents/skills/bg3-create-mod/SKILL.md +55 -0
- bg3_mod_studio-1.0.0b1/.agents/skills/bg3-create-mod/references/grill_me_interview_protocol.md +15 -0
- bg3_mod_studio-1.0.0b1/.agents/skills/bg3-create-mod/resources/subagent_templates.md +40 -0
- bg3_mod_studio-1.0.0b1/.agents/skills/bg3-create-modio-collection/SKILL.md +45 -0
- bg3_mod_studio-1.0.0b1/.agents/skills/bg3-diagnose-mod/SKILL.md +52 -0
- bg3_mod_studio-1.0.0b1/.agents/skills/bg3-diagnose-mod/references/runtime_log_triage.md +30 -0
- bg3_mod_studio-1.0.0b1/.agents/skills/bg3-document-mods/SKILL.md +50 -0
- bg3_mod_studio-1.0.0b1/.agents/skills/bg3-document-mods/references/library_catalog_spec.md +22 -0
- bg3_mod_studio-1.0.0b1/.agents/skills/bg3-document-mods/resources/document_subagent_template.json +11 -0
- bg3_mod_studio-1.0.0b1/.agents/skills/bg3-document-single-mod/SKILL.md +48 -0
- bg3_mod_studio-1.0.0b1/.agents/skills/bg3-document-single-mod/resources/return_message_templates.md +19 -0
- bg3_mod_studio-1.0.0b1/.agents/skills/bg3-document-single-mod/resources/single_mod_readme_template.md +27 -0
- bg3_mod_studio-1.0.0b1/.agents/skills/bg3-manage-load-order/SKILL.md +47 -0
- bg3_mod_studio-1.0.0b1/.agents/skills/bg3-post-release/SKILL.md +52 -0
- bg3_mod_studio-1.0.0b1/.agents/skills/bg3-post-release/references/storefront_metadata_guide.md +37 -0
- bg3_mod_studio-1.0.0b1/.agents/skills/bg3-query-gear/SKILL.md +45 -0
- bg3_mod_studio-1.0.0b1/.agents/skills/bg3-release-prep/SKILL.md +52 -0
- bg3_mod_studio-1.0.0b1/.agents/skills/bg3-release-prep/references/release_pipeline_specs.md +17 -0
- bg3_mod_studio-1.0.0b1/.agents/skills/bg3-search-mods/SKILL.md +52 -0
- bg3_mod_studio-1.0.0b1/.agents/skills/bg3-search-mods/references/search_ranking_rubric.md +27 -0
- bg3_mod_studio-1.0.0b1/.agents/skills/bg3-search-mods/resources/conflict_subagent_template.json +18 -0
- bg3_mod_studio-1.0.0b1/.agents/skills/bg3-test-mod/SKILL.md +58 -0
- bg3_mod_studio-1.0.0b1/.agents/skills/bg3-test-mod/references/save_audit_runbook.md +21 -0
- bg3_mod_studio-1.0.0b1/.agents/skills/bg3-test-mod/references/smoke_testing_runbook.md +23 -0
- bg3_mod_studio-1.0.0b1/.agents/skills/bg3-update-mod-documentation/SKILL.md +48 -0
- bg3_mod_studio-1.0.0b1/.agents/skills/bg3-update-mod-documentation/references/catalog_sync_flow.md +19 -0
- bg3_mod_studio-1.0.0b1/.agents/skills/bg3-update-mod-documentation/resources/update_subagent_template.json +11 -0
- bg3_mod_studio-1.0.0b1/.agents/skills/bg3-update-single-mod/SKILL.md +50 -0
- bg3_mod_studio-1.0.0b1/.agents/skills/bg3-update-single-mod/resources/update_status_messages.md +31 -0
- bg3_mod_studio-1.0.0b1/.github/ISSUE_TEMPLATE/bug_report.md +41 -0
- bg3_mod_studio-1.0.0b1/.github/ISSUE_TEMPLATE/mod_request.md +28 -0
- bg3_mod_studio-1.0.0b1/.github/pull_request_template.md +25 -0
- bg3_mod_studio-1.0.0b1/.gitignore +58 -0
- bg3_mod_studio-1.0.0b1/CODE_OF_CONDUCT.md +72 -0
- bg3_mod_studio-1.0.0b1/CONTRIBUTING.md +103 -0
- bg3_mod_studio-1.0.0b1/LICENSE +21 -0
- bg3_mod_studio-1.0.0b1/PKG-INFO +187 -0
- bg3_mod_studio-1.0.0b1/README.md +175 -0
- bg3_mod_studio-1.0.0b1/docs/ARCHITECTURE.md +234 -0
- bg3_mod_studio-1.0.0b1/docs/DESIGN.md +218 -0
- bg3_mod_studio-1.0.0b1/docs/FEATURES.md +468 -0
- bg3_mod_studio-1.0.0b1/docs/MODIO_INTEGRATION.md +200 -0
- bg3_mod_studio-1.0.0b1/docs/MOD_CREATION_WORKFLOW.md +265 -0
- bg3_mod_studio-1.0.0b1/docs/assets/generate_social_previews.py +406 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-authoring/README.md +62 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-authoring/bg3_authoring/__init__.py +0 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-authoring/bg3_authoring/add_mod_dependency.py +367 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-authoring/bg3_authoring/cli.py +32 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-authoring/bg3_authoring/create_mod_scaffold.py +469 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-authoring/bg3_authoring/diagnostics/__init__.py +0 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-authoring/bg3_authoring/diagnostics/check_mod_conflicts.py +637 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-authoring/bg3_authoring/diagnostics/diagnose_toolkit_logs.py +765 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-authoring/bg3_authoring/diagnostics/inspect_save_game.py +29 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-authoring/bg3_authoring/diagnostics/sync_localization.py +280 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-authoring/bg3_authoring/diagnostics/validate_mod.py +576 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-authoring/bg3_authoring/generate_compat_patch.py +400 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-authoring/bg3_authoring/inject_treasure_table.py +267 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-authoring/bg3_authoring/merge_staging_to_mod.py +297 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-authoring/bg3_authoring/packaging/__init__.py +0 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-authoring/bg3_authoring/packaging/pack_mod_pak.py +385 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-authoring/bg3_authoring/packaging/sync_game_data.py +773 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-authoring/bg3_authoring/scaffold_action_resource.py +222 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-authoring/bg3_authoring/scaffold_appearance_visual.py +238 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-authoring/bg3_authoring/scaffold_class_description.py +455 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-authoring/bg3_authoring/scaffold_default_values.py +250 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-authoring/bg3_authoring/scaffold_feat.py +269 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-authoring/bg3_authoring/scaffold_icon_uvs.py +235 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-authoring/bg3_authoring/scaffold_level_map.py +210 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-authoring/bg3_authoring/scaffold_origin.py +223 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-authoring/bg3_authoring/scaffold_progression_node.py +360 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-authoring/bg3_authoring/scaffold_race.py +298 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-authoring/bg3_authoring/scaffold_root_template.py +403 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-authoring/bg3_authoring/scaffold_spell_list.py +196 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-authoring/bg3_authoring/scaffold_stat_entry.py +455 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-authoring/bg3_authoring/scaffold_tag.py +179 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-authoring/bg3_authoring/templates/custom_mod_readme.md +30 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-authoring/pyproject.toml +19 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-authoring/templates/custom_mod_readme.md +30 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-core/README.md +65 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-core/bg3_core/__init__.py +0 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-core/bg3_core/bump_mod_version.py +288 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-core/bg3_core/cli.py +2025 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-core/bg3_core/cli_common.py +204 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-core/bg3_core/env_paths.py +318 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-core/bg3_core/larian_parsers.py +379 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-core/bg3_core/library_catalog.py +379 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-core/bg3_core/lsf.py +443 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-core/bg3_core/lspk.py +387 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-core/bg3_core/manage_load_order.py +1528 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-core/bg3_core/manage_saves.py +648 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-core/bg3_core/mod_overrides.py +252 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-core/bg3_core/mod_resolver.py +436 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-core/bg3_core/modio_client.py +429 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-core/bg3_core/modio_create_collection.py +485 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-core/bg3_core/modio_extract.py +948 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-core/bg3_core/modio_search.py +381 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-core/bg3_core/modio_sync.py +472 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-core/bg3_core/modio_update.py +408 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-core/bg3_core/modio_update_metadata.py +384 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-core/bg3_core/purge_library.py +132 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-core/bg3_core/query_mod_database.py +507 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-core/bg3_core/render_modio_description.py +263 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-core/bg3_core/save_inspector.py +478 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-core/bg3_core/setup_environment.py +718 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-core/bg3_core/skills_installer.py +263 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-core/bg3_core/tools.py +693 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-core/bg3_core/update_library_catalog.py +314 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-core/pyproject.toml +17 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-theorycraft/README.md +48 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-theorycraft/bg3_theorycraft/__init__.py +0 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-theorycraft/bg3_theorycraft/cli.py +13 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-theorycraft/bg3_theorycraft/simulate_build_synergy.py +415 -0
- bg3_mod_studio-1.0.0b1/packages/bg3-theorycraft/pyproject.toml +19 -0
- bg3_mod_studio-1.0.0b1/pyproject.toml +54 -0
- bg3_mod_studio-1.0.0b1/setup.ps1 +34 -0
- bg3_mod_studio-1.0.0b1/setup.sh +40 -0
- bg3_mod_studio-1.0.0b1/src/bg3_mod_studio/__init__.py +0 -0
- bg3_mod_studio-1.0.0b1/tests/test_add_mod_dependency.py +266 -0
- bg3_mod_studio-1.0.0b1/tests/test_agent_skills.py +195 -0
- bg3_mod_studio-1.0.0b1/tests/test_bg3_cli.py +172 -0
- bg3_mod_studio-1.0.0b1/tests/test_cli_common.py +116 -0
- bg3_mod_studio-1.0.0b1/tests/test_cli_dispatch_module_fallback.py +84 -0
- bg3_mod_studio-1.0.0b1/tests/test_env_paths.py +182 -0
- bg3_mod_studio-1.0.0b1/tests/test_larian_parsers.py +165 -0
- bg3_mod_studio-1.0.0b1/tests/test_legacy_references.py +150 -0
- bg3_mod_studio-1.0.0b1/tests/test_library_catalog.py +127 -0
- bg3_mod_studio-1.0.0b1/tests/test_lsf_parser.py +128 -0
- bg3_mod_studio-1.0.0b1/tests/test_lspk_mmap.py +74 -0
- bg3_mod_studio-1.0.0b1/tests/test_manage_load_order.py +128 -0
- bg3_mod_studio-1.0.0b1/tests/test_manage_load_order_quarantine.py +299 -0
- bg3_mod_studio-1.0.0b1/tests/test_manage_saves.py +204 -0
- bg3_mod_studio-1.0.0b1/tests/test_mod_lifecycle.py +388 -0
- bg3_mod_studio-1.0.0b1/tests/test_modio_client.py +167 -0
- bg3_mod_studio-1.0.0b1/tests/test_modio_create_collection.py +262 -0
- bg3_mod_studio-1.0.0b1/tests/test_modio_retries.py +116 -0
- bg3_mod_studio-1.0.0b1/tests/test_modio_sync.py +234 -0
- bg3_mod_studio-1.0.0b1/tests/test_modio_update_metadata.py +126 -0
- bg3_mod_studio-1.0.0b1/tests/test_pack_mod_pak.py +132 -0
- bg3_mod_studio-1.0.0b1/tests/test_purge_library.py +101 -0
- bg3_mod_studio-1.0.0b1/tests/test_purge_logs.py +146 -0
- bg3_mod_studio-1.0.0b1/tests/test_save_inspector_prune.py +242 -0
- bg3_mod_studio-1.0.0b1/tests/test_scaffold_authoring.py +358 -0
- bg3_mod_studio-1.0.0b1/tests/test_setup_environment.py +177 -0
- bg3_mod_studio-1.0.0b1/tests/test_skills_installer.py +103 -0
- bg3_mod_studio-1.0.0b1/tests/test_tools_registry.py +97 -0
- bg3_mod_studio-1.0.0b1/tests/test_update_library_catalog.py +145 -0
- bg3_mod_studio-1.0.0b1/uv.lock +522 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bg3-check-mod-conflicts
|
|
3
|
+
description: Evaluate BG3 mod compatibility and conflicts against mods/library.md or between candidates with console load order rules. Use on /check_conflicts or when searching mods.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# BG3 Mod Conflict & Compatibility Checker (`bg3-check-mod-conflicts`)
|
|
7
|
+
|
|
8
|
+
Evaluates compatibility and detects potential conflicts for *Baldur's Gate 3* mods. Invocable by the [`bg3-search-mods`](../bg3-search-mods/SKILL.md) orchestrator or directly.
|
|
9
|
+
|
|
10
|
+
Refer to domain specifications:
|
|
11
|
+
- Methodology & Vectors: [Conflict Methodology](./references/conflict_methodology.md)
|
|
12
|
+
- Message Formats & Patches: [Remediation Templates](./resources/remediation_patch_template.md)
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
> [!TIP]
|
|
17
|
+
> Query the studio tool registry with `bg3 tools search "<intent>" --json`.
|
|
18
|
+
|
|
19
|
+
## Workflow
|
|
20
|
+
|
|
21
|
+
```mermaid
|
|
22
|
+
flowchart TD
|
|
23
|
+
Start["Receive Query & Platform"] --> CheckLib["Check Tracked mods/library.md"]
|
|
24
|
+
CheckLib --> Inspect["Inspect Metadata & Subsystems"]
|
|
25
|
+
Inspect --> Detect["Run Deterministic Conflict Detection"]
|
|
26
|
+
Detect --> Format["Format Standardized Return Message"]
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### 1. Hybrid Conflict Inspection
|
|
30
|
+
Run deterministic inspection against cataloged workspace mods or candidate pairs:
|
|
31
|
+
- **Candidate vs Tracked Library**: Execute `bg3 mod conflict "<MOD_SLUG>" --against-library --json`
|
|
32
|
+
- **Candidate vs Candidate**: Execute `bg3 mod conflict "<MOD1>" --mod2 "<MOD2>" --json`
|
|
33
|
+
|
|
34
|
+
### 2. Remediation & Patch Generation
|
|
35
|
+
When actionable stat collisions occur, offer automated patch generation:
|
|
36
|
+
- Execute `bg3 mod patch --mod1 <mod1> --mod2 <mod2> --name "<Mod1><Mod2>Patch" --mode standalone --json`
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## Verification Gate
|
|
41
|
+
|
|
42
|
+
Always verify automated conflict output and status formatting before returning:
|
|
43
|
+
1. Verify `bg3 mod conflict` exits with code 0 and valid JSON.
|
|
44
|
+
2. Confirm console tags (`[Console Load Order]`) are applied when target platform is console.
|
|
45
|
+
3. Validate return messages match schemas in [Remediation Templates](./resources/remediation_patch_template.md).
|
bg3_mod_studio-1.0.0b1/.agents/skills/bg3-check-mod-conflicts/references/conflict_methodology.md
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# BG3 Mod Conflict Detection Methodology
|
|
2
|
+
|
|
3
|
+
## 1. Conflict Vectors
|
|
4
|
+
|
|
5
|
+
Common BG3 conflict sources include:
|
|
6
|
+
- **Direct Stated Incompatibility**: Author explicitly lists incompatibilities in mod descriptions.
|
|
7
|
+
- **Missing Prerequisites**: Missing frameworks (*Community Library*, *Compatibility Framework*, *5e Spells*, *BG3 Script Extender*).
|
|
8
|
+
- **Progression Table Clashes**: Both mods edit the same class/subclass node in `Progressions.lsx` without Compatibility Framework.
|
|
9
|
+
- **Vanilla Asset Overwrites**: Both mods overwrite identical spell, status, or item root templates.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## 2. Mode 1: Candidate vs. Existing Library
|
|
14
|
+
|
|
15
|
+
1. **Library Verification**: Check categorized rows in `Mods/subscribed/library.md`. Inspect specs in `Mods/subscribed/`.
|
|
16
|
+
2. **Metadata Inspection**:
|
|
17
|
+
```bash
|
|
18
|
+
uv run bg3 modio search "<MOD_SLUG>" --platform "<PLATFORM>" --json
|
|
19
|
+
```
|
|
20
|
+
3. **Subsystem Audit**:
|
|
21
|
+
- **Progressions & Rules**: Level curves, spell slots, feat intervals.
|
|
22
|
+
- **Classes & Subclasses**: Class overrides and spell lists.
|
|
23
|
+
- **Spells & Gear**: Overlapping spell entries or treasure tables.
|
|
24
|
+
4. **Console Platform Rules**:
|
|
25
|
+
- **No Manual Load Order**: Console players cannot reorder mods; priority conflicts cannot be resolved manually. Tag with `[Console Load Order]`.
|
|
26
|
+
- **No Script Extender (BG3SE)**: Native PC DLL dependencies fail on console.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 3. Mode 2: Cross-Candidate Batch Conflicts
|
|
31
|
+
|
|
32
|
+
1. **Pairwise Analysis**: Compare pairs across candidate sets for shared class, cantrip, or subsystem replacements.
|
|
33
|
+
2. **Order Constraints**: Identify inter-dependencies requiring strict load ordering. On console, flag any priority constraint with `[Console Load Order]`.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Remediation & Return Message Templates
|
|
2
|
+
|
|
3
|
+
## Standardized Return Messages
|
|
4
|
+
|
|
5
|
+
### Mode 1: Candidate vs. Library
|
|
6
|
+
- Clean:
|
|
7
|
+
```text
|
|
8
|
+
No conflicts found with existing mods
|
|
9
|
+
```
|
|
10
|
+
- Conflict Detected:
|
|
11
|
+
```text
|
|
12
|
+
Possible conflict found: <Tracked Mod Name> - <Brief description of the issue>
|
|
13
|
+
```
|
|
14
|
+
- Console Load Order Conflict:
|
|
15
|
+
```text
|
|
16
|
+
Possible conflict found: <Tracked Mod Name> - <Brief description of issue> [Console Load Order: cannot reorder on console to ensure proper override]
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### Mode 2: Cross-Candidate Batch
|
|
20
|
+
- Clean Batch:
|
|
21
|
+
```text
|
|
22
|
+
No conflicts found between candidate mods
|
|
23
|
+
```
|
|
24
|
+
- Conflict Detected:
|
|
25
|
+
```text
|
|
26
|
+
Possible conflict found: <Candidate Mod 1> vs <Candidate Mod 2> - <Brief description of the conflict>
|
|
27
|
+
```
|
|
28
|
+
- Console Conflict Detected:
|
|
29
|
+
```text
|
|
30
|
+
Possible conflict found: <Candidate Mod 1> vs <Candidate Mod 2> - <Brief description of issue> [Console Load Order: cannot reorder on console to resolve override order]
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Automated Patch Generation Commands
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
# Generate standalone compatibility override patch mod
|
|
39
|
+
uv run bg3 mod compat-patch --mod1 <mod1> --mod2 <mod2> --name "<Mod1><Mod2>Patch" --mode standalone --json
|
|
40
|
+
|
|
41
|
+
# Generate Compatibility Framework config payload
|
|
42
|
+
uv run bg3 mod compat-patch --mod1 <mod1> --mod2 <mod2> --mode cf --json
|
|
43
|
+
```
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bg3-create-build-guide
|
|
3
|
+
description: Generate Level 20 BG3 build guides with Best-in-Slot modded gear, progression tables, and Turn 1 combat sequences. Use on /build_guide or when creating build guides.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# BG3 Level 20 Build Guide Generator (`bg3-create-build-guide`)
|
|
7
|
+
|
|
8
|
+
Generates comprehensive, mathematical 20-level character build guides for Baldur's Gate 3 leveraging unlocked level progression (e.g. *UnlockLevelCurve*) and community modded equipment.
|
|
9
|
+
|
|
10
|
+
Refer to companion resources:
|
|
11
|
+
- Formatting Standards: [Build Guide Template](./resources/build_guide_template.md)
|
|
12
|
+
- Math & Level Rules: [Build Conventions](./references/build_conventions.md)
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
> [!TIP]
|
|
17
|
+
> Query the studio tool registry with `bg3 tools search "<intent>" --json`.
|
|
18
|
+
|
|
19
|
+
## Workflow Overview
|
|
20
|
+
|
|
21
|
+
1. **Parameters & Role**: Determine class split (totaling 20), starting class, archetype (Caster, Hybrid, Pure Melee).
|
|
22
|
+
2. **Mod & Gear Inspection**: Inspect cataloged mods for mod items. Fall back to top-tier vanilla gear.
|
|
23
|
+
3. **Synergy Simulation**: Calculate Turn 1 DPR, Spell DC, and slot matrices:
|
|
24
|
+
- Execute `bg3 build simulate --classes "<Class=Level,...>" --stats "<S=N,D=N,C=N,I=N,W=N,Ch=N>" --gear "<Items>" --dpr-sequence <melee_burst|eldritch_blast> --json`
|
|
25
|
+
4. **Draft Guide**: Populate the 5 standardized sections following the [Build Guide Template](./resources/build_guide_template.md).
|
|
26
|
+
5. **Artifact Delivery**: Write the complete document to disk under `$BG3_STUDIO_DIR/Build_Guides/<category>/build_guide_<classes>.md`. Deliver concise executive summary in chat with file link.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Verification Gate
|
|
31
|
+
|
|
32
|
+
Always verify the generated build guide before concluding:
|
|
33
|
+
1. Verify simulator command exits with code 0 and valid metrics.
|
|
34
|
+
2. Confirm all 20 progression levels are represented and total exactly 20.
|
|
35
|
+
3. Confirm Pure Melee guides omit spell columns per [Build Conventions](./references/build_conventions.md).
|
|
36
|
+
4. Verify all referenced mods in `Mods/subscribed/` resolve correctly.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Build Guide Conventions & Mechanics
|
|
2
|
+
|
|
3
|
+
## 1. Feat Strategy & Stat Conventions
|
|
4
|
+
|
|
5
|
+
### Ability Scores
|
|
6
|
+
- **Primary Setup**: Assumes `Choose Your Stats` mod sets primary stat to 20, freeing all Feat slots from ASIs for high-impact combat/mobility passives.
|
|
7
|
+
- **Fallback Setup**: Always provide a standard 27 Point Buy allocation for unmodded play.
|
|
8
|
+
|
|
9
|
+
### Feat Priorities
|
|
10
|
+
- **High-Impact Passives**: Alert (+5 initiative), War Caster (advantage on concentration), Spell Sniper (crit threshold reduction), Savage Attacker (reroll melee damage), Sentinel (reaction lockdown), Dual Wielder, Resilient (Wisdom).
|
|
11
|
+
- **Progression Intervals**: Standard levels 4, 8, 12, 16, 19 (plus Fighter 6 & 14, Rogue 10).
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 2. Progression Table Schema
|
|
16
|
+
|
|
17
|
+
### Caster & Hybrid Builds (5 Columns)
|
|
18
|
+
```markdown
|
|
19
|
+
| Total Level | Class & Level | Cantrips Gained | Vanilla Spells Learned / Prepared | Feats & Key Features |
|
|
20
|
+
| :---: | :--- | :--- | :--- | :--- |
|
|
21
|
+
| **1** | **Fighter 1** | — | — | **Fighting Style**: Defense (+1 AC); Second Wind; **CON Save** |
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Pure Melee Builds (4 Columns)
|
|
25
|
+
Omit cantrips and spell columns entirely:
|
|
26
|
+
```markdown
|
|
27
|
+
| Total Level | Class & Level | Class Features & Maneuvers | Feats & Key Features |
|
|
28
|
+
| :---: | :--- | :--- | :--- |
|
|
29
|
+
| **1** | **Fighter 1** | Fighting Style: Great Weapon Fighting; Second Wind | **STR & CON Save**; All Armor & Weapons |
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## 3. Level 13–20 Mechanics (`UnlockLevelCurve`)
|
|
35
|
+
|
|
36
|
+
- Full casters unlock 7th and 8th level spell slots for upcasting or modded spells.
|
|
37
|
+
- Cantrips scale to 4 dice/beams at Character Level 17.
|
|
38
|
+
- Incorporate extended subclass capstones where appropriate.
|
bg3_mod_studio-1.0.0b1/.agents/skills/bg3-create-build-guide/resources/build_guide_template.md
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# Standard Level 20 Build Guide Template
|
|
2
|
+
|
|
3
|
+
Use this markdown structure when generating complete Level 20 *Baldur's Gate 3* build guides.
|
|
4
|
+
|
|
5
|
+
```markdown
|
|
6
|
+
# Build Guide: [Build Title / Name]
|
|
7
|
+
### [Class 1] [Level] / [Class 2] [Level] ...
|
|
8
|
+
**Platform**: Xbox Series S & PC | **Max Level**: 20 (*UnlockLevelCurve*) | **Role**: [Role Description]
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 1. Build Archetype & Concept
|
|
13
|
+
|
|
14
|
+
[2-3 paragraphs explaining the core concept, mechanics, and party role]
|
|
15
|
+
|
|
16
|
+
* **[Key Synergy 1]**: [Description]
|
|
17
|
+
* **[Key Synergy 2]**: [Description]
|
|
18
|
+
* **[Key Synergy 3]**: [Description]
|
|
19
|
+
* **Zero Gear Contention with Party**: [Explanation of gear compatibility]
|
|
20
|
+
|
|
21
|
+
### Required Mods (Xbox Series S Verified)
|
|
22
|
+
1. **`UnlockLevelCurve - Level 13-20`** (mod.io ID: `4166963`) — Unlocks progression to Level 20.
|
|
23
|
+
2. **`Sets of Faerun`** (mod.io ID: `4467214`) — [If mod items are equipped].
|
|
24
|
+
3. **`Choose Your Stats`** (slug: `chooseyourstats_modio`) — Used to set starting ability scores, freeing all Feat slots from ASIs.
|
|
25
|
+
4. **`Fade's Camp Chest`** (mod.io ID: `4838986`) — Spawns gear bags cleanly at camp.
|
|
26
|
+
[Include any additional mods referenced from mods/]
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 2. Character Creation & Starting Stats
|
|
31
|
+
|
|
32
|
+
### Optimal Starting Class
|
|
33
|
+
* **[Class Name (Level 1)]**: **MANDATORY starting class**. [Rationale: saving throws, proficiencies, armor/shields].
|
|
34
|
+
|
|
35
|
+
### Optimal Starting Race
|
|
36
|
+
1. **[Top Race]**: [Racial traits and rationale].
|
|
37
|
+
2. **[Second Race]**: [Racial traits and rationale].
|
|
38
|
+
3. **[Third Race]**: [Racial traits and rationale].
|
|
39
|
+
|
|
40
|
+
### Starting Ability Scores
|
|
41
|
+
If setting stats with **Choose Your Stats**:
|
|
42
|
+
* **[Primary Stat]**: 20 (scales with gear/Mirror of Loss)
|
|
43
|
+
* **[Secondary Stat]**: 16
|
|
44
|
+
* **[Tertiary Stat]**: 16
|
|
45
|
+
* **[Other Stats]**: ...
|
|
46
|
+
|
|
47
|
+
*Point Buy Default (if not using stat editor)*:
|
|
48
|
+
* STR: [x] | DEX: [x] | CON: [x] | INT: [x] | WIS: [x] | CHA: [x]
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## 3. Best-in-Slot (BiS) Gear Loadout
|
|
53
|
+
|
|
54
|
+
[Introductory paragraph explaining gear synergy, set bonuses, or defense ratings]
|
|
55
|
+
|
|
56
|
+
| Equipment Slot | Item Name | Mod / Vanilla Source | Key Passives & Stats | Role in Build |
|
|
57
|
+
| :--- | :--- | :--- | :--- | :--- |
|
|
58
|
+
| **Main Hand** | ... | ... | ... | ... |
|
|
59
|
+
| **Off Hand** | ... | ... | ... | ... |
|
|
60
|
+
| **Chest** | ... | ... | ... | ... |
|
|
61
|
+
| **Head** | ... | ... | ... | ... |
|
|
62
|
+
| **Cloak** | ... | ... | ... | ... |
|
|
63
|
+
| **Gloves** | ... | ... | ... | ... |
|
|
64
|
+
| **Boots** | ... | ... | ... | ... |
|
|
65
|
+
| **Amulet** | ... | ... | ... | ... |
|
|
66
|
+
| **Ring 1** | ... | ... | ... | ... |
|
|
67
|
+
| **Ring 2** | ... | ... | ... | ... |
|
|
68
|
+
| **[Set Bonus / Extra Slot]** | ... | ... | ... | ... |
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## 4. Level 1–20 Progression Table (Vanilla BG3 Spells)
|
|
73
|
+
|
|
74
|
+
[Note explaining spell rules, upcasting, and feat choices]
|
|
75
|
+
|
|
76
|
+
### For Caster & Hybrid Builds (5 Columns)
|
|
77
|
+
| Total Level | Class & Level | Cantrips Gained | Vanilla Spells Learned / Prepared | Feats & Key Features |
|
|
78
|
+
| :---: | :--- | :--- | :--- | :--- |
|
|
79
|
+
| **1** | **Fighter 1** | — | — | **Fighting Style**: Defense (+1 AC); Second Wind; **CON Save Proficiency** |
|
|
80
|
+
| ... | ... | ... | ... | ... |
|
|
81
|
+
|
|
82
|
+
### For Pure Melee Builds (4 Columns)
|
|
83
|
+
| Total Level | Class & Level | Class Features & Maneuvers | Feats & Key Features |
|
|
84
|
+
| :---: | :--- | :--- | :--- |
|
|
85
|
+
| **1** | **Fighter 1** | Fighting Style: Great Weapon Fighting; Second Wind | **STR & CON Save Proficiency**; All Armor & Weapons |
|
|
86
|
+
| ... | ... | ... | ... |
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## 5. Turn 1 Combat Sequence Example
|
|
91
|
+
|
|
92
|
+
### Setup Before Combat
|
|
93
|
+
1. [Pre-buffs, stances, elixir/weapon coat recommendations].
|
|
94
|
+
2. [Positioning notes].
|
|
95
|
+
|
|
96
|
+
### Round 1 Execution: [Sequence Name]
|
|
97
|
+
|
|
98
|
+
```text
|
|
99
|
+
[COMBAT INITIATIVE]
|
|
100
|
+
[Initiative breakdown and positioning]
|
|
101
|
+
|
|
102
|
+
Step 1: Standard Action
|
|
103
|
+
- [Action taken, spells/attacks, modifiers, synergies]
|
|
104
|
+
|
|
105
|
+
Step 2: Bonus Action
|
|
106
|
+
- [Bonus action taken, mobility, quickened spells, or buffs]
|
|
107
|
+
|
|
108
|
+
Step 3: Extra Actions / Reactions (Action Surge, Fast Hands, etc.)
|
|
109
|
+
- [Additional steps]
|
|
110
|
+
|
|
111
|
+
[ROUND 1 RESULT]:
|
|
112
|
+
- [Summary of damage, status effects, party buffs, and defensive state]
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
[Follow-up turns / rotation notes]
|
|
116
|
+
```
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bg3-create-mod
|
|
3
|
+
description: Orchestrate concurrent subagents to grill, plan, scaffold, author, and validate BG3 mods in my_mods/<ModSlug>. Use on /bg3-create-mod or when creating new BG3 mods.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# BG3 Mod Creator Orchestrator (`bg3-create-mod`)
|
|
7
|
+
|
|
8
|
+
Top-level orchestration skill for Stage 1 of the BG3 mod creation lifecycle. Translates creative concepts into fully authored, statically verified mods inside `my_mods/<ModSlug>`.
|
|
9
|
+
|
|
10
|
+
Refer to companion resources:
|
|
11
|
+
- Interview Protocol: [Design Interview Protocol](./references/grill_me_interview_protocol.md)
|
|
12
|
+
- Subagent Prompts: [Subagent Launch Templates](./resources/subagent_templates.md)
|
|
13
|
+
- Shift-Left Rules: [Mod Architecture Rules](../../../../../docs/ARCHITECTURE.md)
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
> [!TIP]
|
|
18
|
+
> Query the studio tool registry with `bg3 tools search "<intent>" --json`.
|
|
19
|
+
|
|
20
|
+
## Workflow
|
|
21
|
+
|
|
22
|
+
```mermaid
|
|
23
|
+
flowchart TD
|
|
24
|
+
Prompt["User Idea / Prompt"] --> Interview["1. Clarification & Deep Grill Interview"]
|
|
25
|
+
Interview --> Plan["2. Technical Specification & Implementation Plan"]
|
|
26
|
+
Plan --> Scaffold["3. Workspace Scaffolding"]
|
|
27
|
+
Scaffold --> Dispatch["4. Concurrent Specialist Subagents"]
|
|
28
|
+
Dispatch --> Verify["5. Static Validation Smoke Check"]
|
|
29
|
+
Verify --> Handoff["6. Progressive Gate Handoff to Stage 2"]
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### 1. Design Interview & Plan Approval
|
|
33
|
+
Conduct structured design interview following [Design Interview Protocol](./references/grill_me_interview_protocol.md). Formulate technical specification and await explicit user approval before scaffolding.
|
|
34
|
+
|
|
35
|
+
### 2. Workspace Scaffolding
|
|
36
|
+
After approval, run the scaffolding tool:
|
|
37
|
+
- Execute `bg3 mod create "<ModName>" [--slug "<slug>"] --description "<Desc>" [--unlock-level-curve] --json`
|
|
38
|
+
|
|
39
|
+
### 3. Concurrent Subagent Dispatch
|
|
40
|
+
Launch the 4 specialist subagents in parallel following [Subagent Launch Templates](./resources/subagent_templates.md) (Stats & Spells, Progression & Lists, Localization, Documentation). Ensure all subagents inherit model configuration (`Model: "inherit"`). Await reactive completion notifications without polling.
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Verification Gate
|
|
45
|
+
|
|
46
|
+
Once subagents complete, run read-only static verification before handoff:
|
|
47
|
+
1. Validate mod structure and XML schemas: `bg3 mod validate <mod-slug> --json`
|
|
48
|
+
2. Audit localization handle integrity: `bg3 mod sync-loca <mod-slug> --check --json`
|
|
49
|
+
3. Check for stat collisions against tracked library: `bg3 mod conflict <mod-slug> --against-library --json`
|
|
50
|
+
|
|
51
|
+
Verify:
|
|
52
|
+
- XML/LSX schema adherence and valid localization handles.
|
|
53
|
+
- Zero collisions with `Mods/subscribed/library.md`.
|
|
54
|
+
|
|
55
|
+
After clean validation, prompt user to transition to **Stage 2 Diagnostics** ([`bg3-diagnose-mod`](../bg3-diagnose-mod/SKILL.md)).
|
bg3_mod_studio-1.0.0b1/.agents/skills/bg3-create-mod/references/grill_me_interview_protocol.md
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Mod Design Interview Protocol (`grill-me`)
|
|
2
|
+
|
|
3
|
+
Before authoring, walk down each branch of the mod design tree one question at a time:
|
|
4
|
+
|
|
5
|
+
### Design Tree Branches
|
|
6
|
+
1. **Branch A (Mod Identity & Theme)**: Name (PascalCase, e.g. `ArcaneProgression`), summary, and character fantasy.
|
|
7
|
+
2. **Branch B (Classes & Progression)**: Target classes/subclasses, level bounds (1-12 vanilla vs. 13-20 `UnlockLevelCurve`), progression unlock levels.
|
|
8
|
+
3. **Branch C (Spells, Passives & Abilities)**: Action economy (Action, Bonus Action, Reaction), resource costs (Spell slots, Ki, Charges), damage/status effects.
|
|
9
|
+
4. **Branch D (Parent Dependencies)**: Base game only (`GustavDev`), `UnlockLevelCurve` (`a2ffd0e4-c407-8642-2611-c934ea0b0a77`), or cataloged community mods in `mods/library.md`.
|
|
10
|
+
5. **Branch E (In-Game Acquisition & Item Drops)**: Container drop locations (Tutorial Chest, Camp Chest, vendors like Arron or Dammon) for `bg3 mod inject-treasure`.
|
|
11
|
+
|
|
12
|
+
### Interview Formatting
|
|
13
|
+
- List recommended option first with `(Recommended)`.
|
|
14
|
+
- Format all options as direct user responses.
|
|
15
|
+
- Synthesize responses into a structured implementation plan and obtain explicit user approval before authoring.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Specialist Subagent Launch Templates (`bg3-create-mod`)
|
|
2
|
+
|
|
3
|
+
Reference definitions for the 4 concurrent subagents dispatched during Stage 1 mod creation.
|
|
4
|
+
|
|
5
|
+
All subagents must be launched with `"Model": "inherit"` and `"Workspace": "inherit"` in accordance with agentic guidelines.
|
|
6
|
+
|
|
7
|
+
```json
|
|
8
|
+
{
|
|
9
|
+
"Subagents": [
|
|
10
|
+
{
|
|
11
|
+
"TypeName": "self",
|
|
12
|
+
"Role": "Stats & Spells Specialist - <ModName>",
|
|
13
|
+
"Prompt": "Author the BG3 stat entries in <stats_dir>. Mod: <ModName>, UUID: <UUID>.\nTo ensure 100% engine compliance and valid localization handle allocation, use:\n uv run bg3 scaffold stat --mod <ModName> --type <weapon|armor|amulet|ring|spell_target|passivedata> --name <Id> --display-name \"<Name>\" --description \"<Desc>\" --props \"<Props>\"\nFor weapons/armor/objects, bind 3D visual models using:\n uv run bg3 scaffold root-template --mod <ModName> --item <Id> --visual-preset <greatsword|longsword|staff|plate|robe|amulet|ring|boots|cloak>\nFor custom item container/vendor drops, inject drops using:\n uv run bg3 mod inject-treasure --mod <ModName> --item <ItemName> --container <tutorial_chest|camp_chest|vendor_...>\nRefer to the approved plan for exact mechanics.",
|
|
14
|
+
"Workspace": "inherit",
|
|
15
|
+
"Model": "inherit"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"TypeName": "self",
|
|
19
|
+
"Role": "Progression & Lists Specialist - <ModName>",
|
|
20
|
+
"Prompt": "Author Progressions.lsx and SpellLists.lsx for Mod: <ModName>, UUID: <UUID>.\nTo scaffold class progression levels without manual UUID errors, use:\n uv run bg3 scaffold progression --mod <ModName> --class-name <Class> --level <N> --progression-type <0|1> --boosts \"<Boosts>\" --passives \"<Passives>\" --selectors \"<Selectors>\"\nEnsure UnlockLevelCurve compat if level > 12. Refer to the approved plan for exact progression nodes.",
|
|
21
|
+
"Workspace": "inherit",
|
|
22
|
+
"Model": "inherit"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"TypeName": "self",
|
|
26
|
+
"Role": "Localization Specialist - <ModName>",
|
|
27
|
+
"Prompt": "Audit and synchronize string handles in Localization/English/<ModName>.xml for Mod: <ModName>.\nEnsure all Stat entries, Spells, and Progression nodes have valid UUID handles (h...). Verify handle uniqueness and compile binary loca check:\n uv run bg3 mod sync-localization --mod <ModSlug> --check --json",
|
|
28
|
+
"Workspace": "inherit",
|
|
29
|
+
"Model": "inherit"
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"TypeName": "self",
|
|
33
|
+
"Role": "Documentation Specialist - <ModName>",
|
|
34
|
+
"Prompt": "Draft the root README.md for my_mods/<ModSlug>/README.md adhering to the Rich Feature Schema:\n- Overview & lore context\n- Verified feature tables (Stat ID, Slot/Type, Mechanics, Acquisition)\n- Installation & Xbox Series S compatibility notes\n- Render mod.io description preview: uv run bg3 mod render-description --mod <ModSlug> --write --json",
|
|
35
|
+
"Workspace": "inherit",
|
|
36
|
+
"Model": "inherit"
|
|
37
|
+
}
|
|
38
|
+
]
|
|
39
|
+
}
|
|
40
|
+
```
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bg3-create-modio-collection
|
|
3
|
+
description: Create or update a public Baldur's Gate 3 mod.io collection from mods documented in mods/library.md. Use on /bg3-create-modio-collection or when creating a mod.io collection.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Create a BG3 mod.io Collection (`bg3-create-modio-collection`)
|
|
7
|
+
|
|
8
|
+
Creates a public BG3 collection or updates one of the authenticated user's collections using numeric Mod ID values from `Mods/subscribed/library.md`.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## Safety and Credentials Invariants
|
|
13
|
+
|
|
14
|
+
1. **Environment Authentication**: Require `MODIO_PAT` in the process environment. Keep token values masked in all logs and outputs.
|
|
15
|
+
2. **Game Guard**: Ensure selected mod profiles and collections belong strictly to Baldur's Gate 3 (Game ID `6715`).
|
|
16
|
+
3. **Explicit Approval Gate**: Present the complete change preview to the user. Await affirmative confirmation in chat before executing live API writes.
|
|
17
|
+
4. **Dry-Run Parity**: Execute `--dry-run` first to preview additions and removals. Continue live execution only when live preview matches the approved dry-run.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
> [!TIP]
|
|
22
|
+
> Query the studio tool registry with `uv run bg3 tools search "<intent>" --json`.
|
|
23
|
+
|
|
24
|
+
## Workflow
|
|
25
|
+
|
|
26
|
+
### 1. Verification & Dry Run Preview
|
|
27
|
+
Confirm `MODIO_PAT` is present, then execute dry run:
|
|
28
|
+
- Run dry-run collection assembly: `uv run bg3 modio create-collection --dry-run`
|
|
29
|
+
- The script confirms BG3 collection membership and checks numeric Mod IDs from `Mods/subscribed/library.md`.
|
|
30
|
+
|
|
31
|
+
### 2. User Approval & Live Execution
|
|
32
|
+
1. Present the complete preview (selected mods, additions, removals) to the user.
|
|
33
|
+
2. Upon user approval, rerun with confirmation:
|
|
34
|
+
- Run live collection creation: `uv run bg3 modio create-collection --yes`
|
|
35
|
+
3. Confirm that the live preview matches the approved dry-run preview.
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Verification Gate
|
|
40
|
+
|
|
41
|
+
Always verify collection state and API responses:
|
|
42
|
+
1. Verify `create-collection` exits with code 0.
|
|
43
|
+
2. Confirm the collection URL and ID are displayed and operational.
|
|
44
|
+
3. Verify all selected mods were added to the target collection.
|
|
45
|
+
4. If missing numeric IDs were reported, verify IDs against trusted mod documentation before updating `Mods/subscribed/library.md`.
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bg3-diagnose-mod
|
|
3
|
+
description: Diagnose BG3 mod issues, missing localization, load order errors, and stat collisions with automated fixes (Stage 2). Use on /bg3-diagnose-mod or after mod authoring.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# BG3 Mod Diagnostics & Toolkit Verification (Stage 2) (`bg3-diagnose-mod`)
|
|
7
|
+
|
|
8
|
+
Stage 2 verification gate and diagnostic doctor for *Baldur's Gate 3* mods. Coordinates User-Action Gate 1 (Toolkit diagnostics) and runtime log remediation.
|
|
9
|
+
|
|
10
|
+
Refer to deep triage reference:
|
|
11
|
+
- Log Analysis & Circuit Breakers: [Log Triage Reference](./references/runtime_log_triage.md)
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
> [!TIP]
|
|
16
|
+
> Query the studio tool registry with `uv run bg3 tools search "<intent>" --json`.
|
|
17
|
+
|
|
18
|
+
## Workflow
|
|
19
|
+
|
|
20
|
+
```mermaid
|
|
21
|
+
flowchart TD
|
|
22
|
+
Start["/bg3-diagnose-mod <slug>"] --> Preflight["1. Workspace Assertion (validate)"]
|
|
23
|
+
Preflight --> Sync["2. Sync Unpacked Assets & .loca to Data/"]
|
|
24
|
+
Sync --> UserAction["3. User Loads Mod in Glasses.exe"]
|
|
25
|
+
UserAction --> Triage["4. Diagnose Toolkit Runtime Logs"]
|
|
26
|
+
Triage --> Clean{"Logs Clean?"}
|
|
27
|
+
Clean -->|"Fixes Needed"| Patch["Patch in my_mods/ and Re-sync"]
|
|
28
|
+
Patch --> Preflight
|
|
29
|
+
Clean -->|"Clean / Skipped"| Gate["5. Stage 3 Testing Handoff"]
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Phase 2A: Workspace Assertion & Game Data Sync
|
|
33
|
+
1. Run rapid static pre-flight validation on `my_mods/<slug>/`:
|
|
34
|
+
- Execute `uv run bg3 mod validate <mod-slug> --json`
|
|
35
|
+
2. Synchronize unpacked assets and compiled binary `.loca` to `<Game>/Data/`:
|
|
36
|
+
- Execute `uv run bg3 mod sync-game --mods <mod-slug> --json`
|
|
37
|
+
3. Instruct user to open `<ModName>` in Baldur's Gate 3 Toolkit (`Glasses.exe`) to generate engine runtime logs.
|
|
38
|
+
|
|
39
|
+
### Phase 2B: Runtime Log Diagnosis
|
|
40
|
+
1. Inspect generated Toolkit logs per [Log Triage Reference](./references/runtime_log_triage.md):
|
|
41
|
+
- Execute `uv run bg3 mod diagnose-logs <mod-slug> --severity warning --json`
|
|
42
|
+
2. Apply targeted fixes in `my_mods/<mod-slug>/`, re-sync, and confirm resolution (bounded by 3-iteration circuit breaker).
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Verification Gate
|
|
47
|
+
|
|
48
|
+
Always verify mod diagnostics state before transitioning:
|
|
49
|
+
1. Verify `bg3 mod validate` exits with code 0.
|
|
50
|
+
2. Confirm game synchronization (`sync-game`) exits with code 0 and binary `.loca` compiled.
|
|
51
|
+
3. Confirm Toolkit logs show 0 warnings or user explicitly skipped runtime log triage.
|
|
52
|
+
4. Prompt user to transition to **Stage 3: In-Game Testing** ([`bg3-test-mod`](../bg3-test-mod/SKILL.md)).
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Toolkit Runtime Log Diagnosis & Triage Reference
|
|
2
|
+
|
|
3
|
+
## 1. Engine Log Inspection
|
|
4
|
+
|
|
5
|
+
Execute deterministic triage against BG3 Toolkit (`Glasses.exe`) sessions:
|
|
6
|
+
```bash
|
|
7
|
+
# General warning/error triage
|
|
8
|
+
uv run bg3 mod diagnose-logs --mod <mod-slug> --severity warning --json
|
|
9
|
+
|
|
10
|
+
# Filter by engine subsystem
|
|
11
|
+
uv run bg3 mod diagnose-logs --subsystem Boosts --mod <mod-slug> --json
|
|
12
|
+
uv run bg3 mod diagnose-logs --subsystem Stats --mod <mod-slug> --json
|
|
13
|
+
uv run bg3 mod diagnose-logs --subsystem Osiris --mod <mod-slug> --json
|
|
14
|
+
|
|
15
|
+
# Live stream active session
|
|
16
|
+
uv run bg3 mod diagnose-logs --follow
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 2. Automated Remediation Guidelines
|
|
22
|
+
|
|
23
|
+
1. **Missing String Handles**: If logs indicate missing localization handles, run:
|
|
24
|
+
```bash
|
|
25
|
+
uv run bg3 mod sync-localization --mod <mod-slug> --write --json
|
|
26
|
+
```
|
|
27
|
+
2. **Stat Typo / Missing Reference**: Correlate logged IDs to `Public/<ModName>_<UUID>/Stats/Generated/Data/`.
|
|
28
|
+
3. **Circuit Breaker Guardrail**:
|
|
29
|
+
- Limit continuous diagnostic cycles to 3 iterations.
|
|
30
|
+
- If identical error signatures persist across 2 cycles, halt and prompt the user with log traces.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: bg3-document-mods
|
|
3
|
+
description: Orchestrate concurrent subagents to download, unpack, validate, and document BG3 mods into mods/<name>/README.md and update library.md. Use on /bg3-document-mods.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# BG3 Mod Documentation Orchestrator (`bg3-document-mods`)
|
|
7
|
+
|
|
8
|
+
Coordinates concurrent worker subagents to fetch, unpack, validate, and document *Baldur's Gate 3* mods from `https://mod.io/g/baldursgate3`.
|
|
9
|
+
|
|
10
|
+
Refer to specifications:
|
|
11
|
+
- Subagent Launch Schema: [Subagent Launch Template](./resources/document_subagent_template.json)
|
|
12
|
+
- Catalog Columns & Categories: [Catalog Specification](./references/library_catalog_spec.md)
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
> [!TIP]
|
|
17
|
+
> Query the studio tool registry with `uv run bg3 tools search "<intent>" --json`.
|
|
18
|
+
|
|
19
|
+
## Workflow
|
|
20
|
+
|
|
21
|
+
```mermaid
|
|
22
|
+
flowchart TD
|
|
23
|
+
Start["User triggers /bg3-document-mods"] --> Resolve["1. Resolve Mod Queries & Slugs"]
|
|
24
|
+
Resolve --> Dispatch["2. Launch Concurrent Subagents in Parallel"]
|
|
25
|
+
Dispatch --> Wait["3. Reactive Wait for Notifications"]
|
|
26
|
+
Wait --> Catalog["4. Update Catalog & Reindex Query DB"]
|
|
27
|
+
Catalog --> Present["5. Present Summary Results Table"]
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### 1. Query Resolution & Subagent Dispatch
|
|
31
|
+
Resolve mod titles, slugs, or numeric IDs. Launch one worker subagent per mod in parallel using the schema defined in [Subagent Launch Template](./resources/document_subagent_template.json), directing each worker to follow [`bg3-document-single-mod`](../bg3-document-single-mod/SKILL.md). Ensure all subagents inherit model configuration (`Model: "inherit"`).
|
|
32
|
+
|
|
33
|
+
Stop calling tools and await reactive completion notifications without polling.
|
|
34
|
+
|
|
35
|
+
### 2. Catalog & Reindex
|
|
36
|
+
Once all subagents report status, update the centralized catalog and warm the query cache:
|
|
37
|
+
- Update master catalog: `uv run bg3 modio update-catalog --write --json`
|
|
38
|
+
- Reindex high-speed query database: `uv run bg3 query --reindex --json`
|
|
39
|
+
|
|
40
|
+
### 3. Summary Presentation
|
|
41
|
+
Deliver an executive summary table detailing mod name, status (Success/Failed), category, and relative spec link.
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Verification Gate
|
|
46
|
+
|
|
47
|
+
Always verify catalog and cache updates before concluding:
|
|
48
|
+
1. Verify `update-catalog` and `query --reindex` exit with code 0.
|
|
49
|
+
2. Confirm all documented mods appear in `Mods/subscribed/library.md` under correct categories.
|
|
50
|
+
3. Validate that relative links to `mods/<slug>/README.md` resolve to existing files.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Library Catalog Specification & Categories
|
|
2
|
+
|
|
3
|
+
## 1. Six-Column Schema (`mods/library.md`)
|
|
4
|
+
|
|
5
|
+
Each cataloged mod row contains:
|
|
6
|
+
1. **Mod Id**: Verified numeric mod.io ID.
|
|
7
|
+
2. **Mod Name**: Formatted name of the mod.
|
|
8
|
+
3. **Mod Slug**: Workspace folder slug.
|
|
9
|
+
4. **Description**: Concise summary of mod features.
|
|
10
|
+
5. **Features Documented**: Quantified count of implemented features.
|
|
11
|
+
6. **Spec Link**: Relative markdown link to `mods/<slug>/README.md`.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## 2. Catalog Categories
|
|
16
|
+
|
|
17
|
+
Mods are partitioned into 5 standardized markdown tables:
|
|
18
|
+
- **Gear**: Weapons, armor, jewelry, vanity equipment.
|
|
19
|
+
- **Spells**: Cantrips, level 1–9 spells, spell overhauls.
|
|
20
|
+
- **Classes & Subclasses**: Classes, subclasses, custom progression trees.
|
|
21
|
+
- **Progression & Rules**: Level cap extensions, feat intervals, stat curve mods.
|
|
22
|
+
- **Utilities & Cheats**: Quality of life, convenience containers, respec tools.
|
bg3_mod_studio-1.0.0b1/.agents/skills/bg3-document-mods/resources/document_subagent_template.json
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Subagents": [
|
|
3
|
+
{
|
|
4
|
+
"TypeName": "self",
|
|
5
|
+
"Role": "Mod Documenter - <Mod_Name>",
|
|
6
|
+
"Prompt": "Document the Baldur's Gate 3 mod: <MOD_QUERY>.\n1. Read and follow instructions in worker skill bg3-document-single-mod.\n2. Run: uv run bg3 modio extract --query \"<MOD_QUERY>\" --write-spec --json\n3. Confirm mods/<mod_slug>/README.md adheres to the Rich Features Schema.\n4. Return standardized status message:\n - On Success: mod '<Mod Name>' successfully added to library — <Brief description>\n - On Failure: mod '<Mod Name>' failed: <Brief explanation>",
|
|
7
|
+
"Workspace": "inherit",
|
|
8
|
+
"Model": "inherit"
|
|
9
|
+
}
|
|
10
|
+
]
|
|
11
|
+
}
|