Skip to content
CAI
Software that uses CAICheck a score

Lightricks/Kintsugi

64.6

Adequate · 20 September 2026

2k

lines of production code

Ruby

primary language

1

measurement over time

CAI band scale
CAI lens gauges

What this system is

Kintsugi is a Ruby-based Git merge driver designed to automatically resolve conflicts in Xcode project files (.pbxproj). It utilizes a three-way merge strategy to apply changes to complex project structures, such as groups and build settings, while falling back to interactive resolution for ambiguous conflicts. The system integrates directly with Git operations like merge, rebase, and cherry-pick to maintain project file integrity.

Features

Add Kintsugi executable with error handling

A new executable script for Kintsugi has been added to the bin directory. It requires the main library and runs the application, specifically catching ArgumentError and Kintsugi::MergeError exceptions to exit with a status code of 1, ensuring expected errors are handled gracefully.

bin · high confidence

Initial project setup with Kintsugi merge driver and development tooling

This change introduces Kintsugi, a tool that automatically resolves Git merge conflicts in Xcode project files (.pbxproj) using 3-way merges. It includes a Git merge driver that can be installed globally via \kintsugi install-driver\ or configured manually, supporting interactive conflict resolution when automatic resolution fails. The repository is initialized with standard Ruby development tooling, including RSpec for testing, RuboCop for code style enforcement, and a Rakefile to run both. Documentation for usage and contribution is provided, along with a list of alternative project generation tools like XcodeGen and Tuist.

(repo-wide) · high confidence

Introduce Kintsugi library entrypoint

The lib/kintsugi.rb file has been added as the main entrypoint for the Kintsugi library. It defines the Kintsugi module and exposes a run method that accepts arguments, parses subcommands and options, and executes the corresponding CLI action. The entrypoint includes specific error handling for ArgumentError and Kintsugi::MergeError, ensuring expected errors are reported before re-raising.

lib · high confidence

Introduce Kintsugi, an interactive Git merge driver for Xcode project files

This change adds the Kintsugi library and CLI to resolve merge conflicts in Xcode \project.pbxproj\ files. The CLI provides \driver\, \install-driver\, and \uninstall-driver\ subcommands to integrate with Git. The core merge logic uses a three-way diff to apply changes from 'theirs' onto 'ours', handling complex project structures like groups, file references, and build settings. When conflicts arise—such as adding files to non-existent groups or duplicate settings—the system defaults to raising an error but supports interactive resolution via a TTY prompt, allowing users to choose between creating missing components, ignoring changes, or overriding values.

lib/kintsugi · high confidence

Test coverage

Added test suite for Kintsugi merge logic and integration

Added RSpec tests to verify the \apply\_change\_to\_project\ functionality, including a custom \be\_equivalent\_to\_project\ matcher for comparing Xcode project states. The suite covers merging targets, file moves, subproject references, and handling of \PBXFileSystemSynchronizedRootGroup\ (Xcode 16 buildable folders). Integration tests were also added to ensure Kintsugi correctly resolves conflicts during \git merge\, \rebase\, and \cherry-pick\ operations.

spec · high confidence

Dependencies

Initial release of Kintsugi gem with dependency specifications

This change introduces the core package definition for the Kintsugi tool, a utility for resolving conflicts in .pbxproj files. The new kintsugi.gemspec file establishes the project's runtime dependencies, specifically requiring xcodeproj version 1.26.0 or 1.27.0 and tty-prompt, while also adding development dependencies for testing and linting such as rspec, rubocop, and git. A corresponding Gemfile is added to facilitate local development by pointing to the gemspec.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Baseline

  • First survey — no prior run to compare against. CAI 65.

Lenses

  • Code Health 97
  • Architecture 100
  • Maturity 54
  • Readiness 64
  • Security 73

Changes since last survey

  • 231 commits — 184 feature/other, 47 fixes

By area

  • (repo) — 104 commits
  • lib/kintsugi — 73 commits
  • (root) — 22 commits
  • .github/workflows — 11 commits
  • lib/kintsugi.rb — 7 commits
  • spec/kintsugi_apply_change_to_project_spec.rb — 6 commits
  • bin/kintsugi — 5 commits
  • .github/dependabot.yml — 1 commit
  • spec/be_equivalent_to_project.rb — 1 commit
  • spec/spec_helper.rb — 1 commit

Notable commits

  • fix: Kintsugi.rb: Fix checking if necessary file versions exist.
  • fix: Kintsugi: Fix adding build file to a file with multiple references.
  • fix: Kintsugi: Fix crash when a build file without file reference exists.
  • fix: Merge pull request #100 from byohay/feature/fix-pass-driver-parameters
  • fix: Merge pull request #105 from Lightricks/feature/fix-same-filename-different-target
  • fix: Merge pull request #107 from Lightricks/feature/fix-nil-to-tree-hash
  • fix: Merge pull request #112 from barakwei/feature/swift-package-proudct-plugin-fix
  • fix: Merge pull request #113 from barakwei/feature/remove-rubygems-fix
  • fix: Merge pull request #119 from ashdnazg/feature/fix-paths
  • fix: Merge pull request #122 from barakwei/feature/fix-local-switch-package-path-serialization
  • fix: Merge pull request #129 from pbsupplyco/fix/update-xcodeproj-to-1-27-0
  • fix: Merge pull request #143 from hallow-inc/fix/swift-package-product-build-files
  • fix: Merge pull request #26 from byohay/feature/fix-removal-conflict
  • fix: Merge pull request #33 from byohay/feature/fix-uninstall-driver
  • fix: Merge pull request #34 from byohay/feature/fix-install-driver
  • fix: Merge pull request #35 from byohay/feature/fix-uninstall-driver2
  • fix: Merge pull request #51 from byohay/feature/fix-exit-codes-on-exceptions
  • fix: Merge pull request #57 from GalBerezansky/feature/kintsugi/fix-install-driver-new-line
  • fix: Merge pull request #62 from Lightricks/feature/fix-rubygems-version
  • fix: Merge pull request #64 from byohay/feature/fix-adding-files-multiple-times
  • …and 211 more

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

Lightricks/Kintsugi was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 20 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 10338e00c77939a01119488da2681568ab2d942a — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-b51f968c9b10.