tc-reconcile

Reconciles TeamCity UI-generated .kts patches into settings.kts DSL files and validates with mvn teamcity-configs:generate.

Updated May 20, 2026
One-click install
npx skills add https://github.com/paywhereb/paywhere-claude-plugins --skill tc-reconcile
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: tc-reconcile
Source: https://github.com/paywhereb/paywhere-claude-plugins/tree/main/paywhere-eng-workflow/skills/tc-reconcile
Command: npx skills add https://github.com/paywhereb/paywhere-claude-plugins --skill tc-reconcile

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

It removes the friction of keeping TeamCity versioned settings in sync after UI-driven changes by converting reconcile PR patch files into the canonical settings.kts DSL edits so the required no-tc-patches check can pass.

Core Features & Use Cases

  • Reconcile patch files into TeamCity DSL: Folds each .teamcity/patches/**/*.kts patch back into the configured settingsPath and deletes the patch files.
  • Stop when guardrails fail: Enforces a clean working tree, checks repo-scoped enablement in .claude/eng-workflow.json, validates with mvn teamcity-configs:generate, and refuses to proceed on ambiguity.
  • Handle common patch outcomes: Deletes no-op patches, mirrors field changes into the correct DSL blocks, and applies additions/deletions and non-project entity edits.

Quick Start

Run tc-reconcile for the open reconcile PR that corresponds to the TeamCity UI edit flow so it can fold patches into settings.kts and validate the DSL build.

Frequently Asked Questions about tc-reconcile

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I fold TeamCity UI patch files back into versioned settings DSL?

Reconciling TeamCity UI patch files into versioned settings DSL involves converting `.teamcity/patches/*.kts` changes into canonical `settings.kts` edits and deleting the absorbed patch files so the reconcile PR can merge cleanly.

Why do my TeamCity versioned settings reconcile PRs fail to merge?

TeamCity reconcile PRs fail when `.teamcity/patches/*.kts` files remain unprocessed, triggering the no-tc-patches check; folding these patches into the settings DSL and deleting them allows the required validation to pass.

What prerequisites are needed to reconcile TeamCity patches into settings.kts?

Reconciling TeamCity patches requires a clean git working tree, authenticated `gh` CLI access, and guard parameters configured in `.claude/eng-workflow.json` to ensure the workflow is enabled for the repository.

How does maven validation work with TeamCity DSL reconciliation?

Maven validation runs `mvn teamcity-configs:generate` after folding patch files into the DSL to verify the resulting `settings.kts` builds correctly and ensure no broken configurations are merged.

Can I automate TeamCity DSL reconciliation for GitHub pull requests?

Yes, when a workflow opens a reconcile PR from `teamcity-settings` back to the default branch, the process automatically classifies patch types, mirrors field changes into DSL blocks, and handles additions, deletions, and no-op patches.

What happens to no-op patches during TeamCity settings reconciliation?

No-op patches encountered during TeamCity settings reconciliation are deleted directly without requiring DSL edits, ensuring the patches directory stays clean and the no-tc-patches check passes.