Skip to content

style: Sort the rest of the JSON files#1113

Merged
EttyKitty merged 2 commits intoAdeptus-Dominus:mainfrom
EttyKitty:pr/001
Feb 6, 2026
Merged

style: Sort the rest of the JSON files#1113
EttyKitty merged 2 commits intoAdeptus-Dominus:mainfrom
EttyKitty:pr/001

Conversation

@EttyKitty
Copy link
Copy Markdown
Collaborator

@EttyKitty EttyKitty commented Feb 6, 2026

Purpose and Description

  • JSON document sort. Simple as.

@github-actions github-actions bot added Area: JSON Changes to external JSON files or their under-the-hood functionality Size: Warning Type: Code Style Not affecting how code works, only visual changes labels Feb 6, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Feb 6, 2026

Important

Review skipped

Auto incremental reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • 🔍 Trigger a full review
📝 Walkthrough

Walkthrough

The Imperium's foundational data-structures undergo recalibration. Four cardinal datafiles have been subjected to profound restructuring: Sisters dialogue pathways are enriched with new interaction vectors; psychic disciplines and powers experience wholesale reorganisation into refined categorical frameworks; and the trait system transitions from primitive numeric architectures to hierarchical, metadata-enriched schemas. Approximately 1,411 lines of heretical data are subject to this purification.

Changes

Cohort / File(s) Summary
Ecclesiastical Dialogue Pathways
datafiles/data/dialogue/sisters.json
Sisters faction dialogue comprehensively restructured. New dialogue keys introduced: accept_peace, attacked, declare_war, hello, intro, praised, trade_close, trading_demand, alongside artifact-interaction vectors and demand-response hierarchies with relational branching (friendly/neutral/hostile). Existing dialogue blocks reorganised into unified container structures.
Psychic Disciplines and Powers
datafiles/data/psychic_disciplines.json, datafiles/data/psychic_powers.json
Psychic system undergoes fundamental restructuring. Disciplines file introduces biomancy, hacks, librarius, and minor-discipline variants with peril-attribute definitions (perils_chance, perils_strength). Powers file replaces minor_smite framework with 35+ reimagined power entries (assail, inferno, warp_bolts, vortex_of_doom, etc.), each carrying restructured flavour_text schemas with binders_adv conditions and attribute reassignments (magnitude, range, target_type, type).
Trait Manifestation
datafiles/data/traits.json
Ancient trait catalogs purged and replaced. New trait architecture: 30+ trait entries introduced (Beast Slayer, Blood For the Blood God, Guardian, Zealous Faith, etc.), transitioning from simple numeric arrays to enriched object definitions containing display_name, flavour_text, effect descriptions, and attribute arrays with bounds. Legacy traits (Champion, Tinkerer, Secretive Knight) superseded or reforged.

Possibly related PRs

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Description check ⚠️ Warning Description lacks substantive detail; merely states 'Self-descriptive' without explaining the extensive changes across four JSON data files. Provide concrete explanation of changes: detail the sorting applied to sisters.json, psychic_disciplines.json, psychic_powers.json, and traits.json to aid code review.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed Title adheres to conventional commits format with type 'style' and clear summary, well under 50 character limit.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 9

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f5ebf41 and 2a730c2.

📒 Files selected for processing (5)
  • datafiles/data/dialogue/sisters.json
  • datafiles/data/psychic_disciplines.json
  • datafiles/data/psychic_powers.json
  • datafiles/data/traits.json
  • datafiles/data/weapons.json
🧰 Additional context used
📓 Path-based instructions (2)
**/*.json

⚙️ CodeRabbit configuration file

  • In this project, JSON files with comments are supported by the parser. It's allowed to use comments in JSON.

Files:

  • datafiles/data/traits.json
  • datafiles/data/psychic_disciplines.json
  • datafiles/data/dialogue/sisters.json
  • datafiles/data/psychic_powers.json
**/*.*

⚙️ CodeRabbit configuration file

**/*.*: - Code Philosophy: Prioritize explicit intent and maintainability over brevity. If a
solution is "clever" but mentally taxing, request a refactor to a clearer approach.

  • Variable Naming: Use clear, descriptive names; avoid over-abbreviation.

  • Abstraction: Apply the "Rule of Three"; suggest abstraction only when similar logic is
    repeated three or more times to avoid premature complexity.

  • Subjective Choices: For naming or architecture, ask guiding questions to prompt developer
    reflection and provide at least two alternative perspectives.

  • TODOs: If a TODO comment is added, ask the user if a GitHub issue should be created. If a
    TODO comment is deleted, remind the user to check the status of that specific issue.

Files:

  • datafiles/data/traits.json
  • datafiles/data/psychic_disciplines.json
  • datafiles/data/dialogue/sisters.json
  • datafiles/data/psychic_powers.json
🧠 Learnings (3)
📓 Common learnings
Learnt from: EttyKitty
Repo: Adeptus-Dominus/ChapterMaster PR: 0
File: :0-0
Timestamp: 2025-03-20T22:22:57.319Z
Learning: In the ChapterMaster game PR `#424`, the psychic power system was changed to be data-driven, with perils now able to occur on both successful and failed casts but with reduced frequency overall.
Learnt from: EttyKitty
Repo: Adeptus-Dominus/ChapterMaster PR: 0
File: :0-0
Timestamp: 2025-03-20T22:22:57.319Z
Learning: In the ChapterMaster game PR `#424`, the "Psyker Abundance" advantage was renamed to "Warp Touched", "Daemon Binders" advantage was removed, and "Warp Touched" disadvantage was renamed to "Warp Tainted".
Learnt from: EttyKitty
Repo: Adeptus-Dominus/ChapterMaster PR: 424
File: scripts/scr_flavor/scr_flavor.gml:34-36
Timestamp: 2025-03-09T02:33:43.867Z
Learning: EttyKitty prefers to keep PRs focused on their stated goals and scope, and may decline to implement otherwise valid suggestions if they're not directly related to the PR's primary objective.
Learnt from: EttyKitty
Repo: Adeptus-Dominus/ChapterMaster PR: 579
File: objects/obj_enunit/Alarm_0.gml:200-202
Timestamp: 2025-03-11T01:38:19.874Z
Learning: EttyKitty welcomes easy, committable suggestions that improve documentation of code chunks, variables with strange names, and functions. Their codebase is generally lacking documentation, but they prioritize human-readable code above documentation.
Learnt from: EttyKitty
Repo: Adeptus-Dominus/ChapterMaster PR: 878
File: sprites/spr_weapon_phobos_bolt_pistol/spr_weapon_phobos_bolt_pistol.yy:26-44
Timestamp: 2025-06-16T17:08:08.239Z
Learning: EttyKitty prefers automated solutions over manual cleanup for .yy file formatting and is open to automated tools for GameMaker Studio .yy file cleanup.
Learnt from: EttyKitty
Repo: Adeptus-Dominus/ChapterMaster PR: 938
File: scripts/scr_complex_colour_kit/scr_complex_colour_kit.gml:478-478
Timestamp: 2025-07-21T17:03:28.251Z
Learning: EttyKitty acknowledges when PRs contain scope creep and agrees that changes should be focused on the stated PR objectives, reinforcing their preference for keeping PRs narrowly scoped to their primary purpose.
📚 Learning: 2025-03-20T22:22:57.319Z
Learnt from: EttyKitty
Repo: Adeptus-Dominus/ChapterMaster PR: 0
File: :0-0
Timestamp: 2025-03-20T22:22:57.319Z
Learning: In the ChapterMaster game PR `#424`, the psychic power system was changed to be data-driven, with perils now able to occur on both successful and failed casts but with reduced frequency overall.

Applied to files:

  • datafiles/data/psychic_disciplines.json
  • datafiles/data/psychic_powers.json
📚 Learning: 2025-03-20T22:22:57.319Z
Learnt from: EttyKitty
Repo: Adeptus-Dominus/ChapterMaster PR: 0
File: :0-0
Timestamp: 2025-03-20T22:22:57.319Z
Learning: In the ChapterMaster game PR `#424`, the "Psyker Abundance" advantage was renamed to "Warp Touched", "Daemon Binders" advantage was removed, and "Warp Touched" disadvantage was renamed to "Warp Tainted".

Applied to files:

  • datafiles/data/psychic_powers.json
🪛 Biome (2.3.13)
datafiles/data/traits.json

[error] 438-438: Expected a property but instead found '// Slight buff to health, as clear mind helps to stay healthy in some cases'.

Expected a property here.

(parse)


[error] 439-439: expected , but instead found "display_name"

Remove "display_name"

(parse)


[error] 442-442: Expected a property but instead found '// Also helps with some boring tasks, I think?'.

Expected a property here.

(parse)


[error] 443-443: expected , but instead found "wisdom"

Remove "wisdom"

(parse)


[error] 632-632: Expected a property but instead found '// IT IS THE BANEBLAAADE!!! - Captain Diomedes, DoW 2 Retribution'.

Expected a property here.

(parse)


[error] 633-633: expected , but instead found "constitution"

Remove "constitution"

(parse)


[error] 633-633: Expected a property but instead found '// Being bonkers can sometimes be damaging to one's health, I think..?'.

Expected a property here.

(parse)


[error] 634-634: expected , but instead found "display_name"

Remove "display_name"

(parse)


[error] 639-639: Expected a property but instead found '// "crazy": {'.

Expected a property here.

(parse)


[error] 654-654: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 654-654: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 654-664: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 664-664: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 665-665: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 665-665: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 665-676: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 676-676: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 677-677: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 677-677: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 677-685: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 685-685: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 686-686: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 686-686: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 686-708: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 708-708: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 709-709: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 709-709: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 709-731: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 731-731: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 732-732: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 732-732: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 732-736: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 736-736: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 737-737: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 737-737: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 737-750: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 750-750: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 751-751: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 751-751: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 751-760: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 760-760: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 761-761: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 761-761: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 761-769: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 769-769: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 770-770: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 770-770: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 770-777: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 777-777: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 778-778: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 778-778: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 778-788: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 788-788: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 789-789: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 789-789: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 789-815: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 815-815: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 816-816: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 816-816: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 816-824: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 824-824: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 825-825: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 825-825: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 825-846: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 846-846: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 847-847: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 847-847: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 847-856: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 856-856: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 857-857: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 857-857: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 857-865: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 865-865: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 866-866: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 866-866: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 866-874: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 874-874: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 875-875: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 875-875: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 875-888: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 888-888: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 889-889: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 889-889: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 889-894: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 894-894: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 895-895: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 895-895: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 895-899: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 899-899: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 900-900: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 900-900: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 900-922: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 922-922: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 923-923: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 923-923: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 923-945: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 945-945: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 946-946: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 946-946: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 946-968: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 968-968: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 969-969: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)


[error] 969-969: End of file expected

Use an array for a sequence of values: [1, 2]

(parse)

🔇 Additional comments (3)
datafiles/data/psychic_disciplines.json (1)

1-225: Sorting and structure verified, Tech-Priest.

All top-level discipline keys and their internal properties are arranged in correct alphabetical order. The data schema is consistent across entries — disciplines bear appropriate powers, prefix, and optional perils_chance/perils_strength/tags/sourcery fields. The machine spirit detects no further anomalies.

datafiles/data/dialogue/sisters.json (1)

1-165: Dialogue manifest sorted and structured correctly, Tech-Priest.

All top-level dialogue keys and nested relationship branches (friendly/hostile/neutral) are arranged in proper alphabetical order. The multi-part intro structure, override mechanisms, and trade dialogue containers are well-formed. The machine spirit is satisfied.

datafiles/data/psychic_powers.json (1)

1-857: Powers manifest sorted and verified, Tech-Priest.

All 43 psychic power entries and their internal properties are arranged in correct alphabetical order. The schema is consistent — each power bears the expected additional_kills, armour_piercing, flavour_text, magnitude, name, range, target_type, and type fields. The binders_adv condition blocks correctly reference the "Warp Tainted" disadvantage throughout. The machine spirit approves this reorganisation.

✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.

@EttyKitty EttyKitty merged commit 81bcf3a into Adeptus-Dominus:main Feb 6, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area: JSON Changes to external JSON files or their under-the-hood functionality Size: Warning Type: Code Style Not affecting how code works, only visual changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant