14. Multi-dev Profile Reconciliation
Profile-based assembly (Section 5) solves the N-devs × M-tools fragmentation problem by giving each developer a personal profile. Over time, a new problem emerges: individual profiles diverge. Developer A's profile adds a rule preventing direct production database access. Developer B adds the same rule two weeks later, worded slightly differently. Developer C never adds it. The rule that should be in the shared config ends up duplicated, inconsistent, and unenforceable.
This is specific to hierarchical config systems like Claude Code's three-tier structure (user ~/.claude/CLAUDE.md + project CLAUDE.md + plugin rules). No commercial LLMOps tool solves this because none of them operates at the granularity of individual rule files across a team's config hierarchy.
Detection
The reconciliation check scans all active developer profiles and identifies rules that appear in more than 50% of them:
# profile-reconcile.sh
PROFILES_DIR="${1:-.claude/profiles}"
THRESHOLD="${2:-0.5}"
all_rules=$(find "$PROFILES_DIR" -name "*.yaml" -exec yq '.includes[]' {} \; | sort | uniq -c | sort -rn)
total_profiles=$(find "$PROFILES_DIR" -name "*.yaml" | wc -l)
while IFS= read -r line; do
count=$(echo "$line" | awk '{print $1}')
rule=$(echo "$line" | awk '{print $2}')
ratio=$(echo "scale=2; $count / $total_profiles" | bc)
if (( $(echo "$ratio >= $THRESHOLD" | bc -l) )); then
echo "HOIST CANDIDATE ($count/$total_profiles profiles): $rule"
fi
done <<< "$all_rules"A rule that appears in 4 out of 5 developer profiles belongs in the project-level CLAUDE.md, not in four separate profiles.
Preservation
Not everything should be hoisted. Personal preferences stay personal: tone settings, verbosity levels, preferred explanation depth, language choices. The reconciliation check distinguishes behavioral rules (what Claude does) from preference rules (how Claude communicates). Behavioral rules above the threshold are hoist candidates; preference rules are never touched.
For a team of 5 or more developers, run the reconciliation check monthly. For teams above 10, run it as part of the quarterly constitutional audit. The output is a list of hoist candidates with a proposed diff for the shared config; a human reviews and applies. The check does not modify any file automatically.