# M130 — CC release-notes auto-adoption pipeline

Closes #1486 + #1487 + #1488. Trace what happens when a new CC version drops upstream.

Cron 0 14 * * * UTC Soft-LLM dependency N + 3 minors policy

## 1. Inputs

Upstream version detected:
CLAUDE_CODE_OAUTH_TOKEN secret set Existing cc-adoption issue with same key

## 2. Pipeline stages

## 3. Resulting state

## 4. Gap-score table (when LLM extraction fires)

Feature | Category | Score | Affected skills | Action
--- | --- | --- | --- | ---

Threshold: `gap_score >= 10` opens a labeled `cc-adoption` issue. Lower scores stay in `cc-adoption-gaps.json` for a future re-score.

## 5. The three SoTs that keep this honest

### shared/cc-support.json (Part C — #1488)

    {
      "latest": "2.1.126",
      "supported_floor": "2.1.122",
      "drop_after": "2.1.121",
      "policy": "latest + 3 previous minors"
    }

Single source of truth for the floor. Stamped into `CLAUDE.md`, `cc-version-matrix.ts`, `doctor/references/version-compatibility.md` by `scripts/stamp-cc-support.mjs`.

### cc-version-matrix.ts (drives the support-window auto-bump)

    export const MIN_CC_VERSION = '2.1.122';
    // Adding a new entry > 2.1.122 + 3 patches triggers cc-support-window-bump.yml,
    // which auto-recomputes the floor + opens a PR.

### shared/cc-adoption-gaps.json (rolling output of cron — #1486)

    [
      {
        "version": "2.1.127",
        "parse_failed": false,
        "features": [
          {
            "feature_slug": "claude_project_list",
            "category": "new_command",
            "gap_score": 15,
            "affected_skills": ["doctor", "dream"],
            "reference_changelog_line": "Added `claude project list` ..."
          }
        ]
      }
    ]

## 6. The drift-warn hook (Part B — #1487)

Fires once per session on `SessionStart`. Three branches based on running CC vs floor + matrix-latest:

    // CLAUDE_CODE_VERSION = 2.1.50 (below floor 2.1.122)
    → systemMessage: "⚠ Claude Code 2.1.50 is below OrchestKit's supported floor (2.1.122)..."

    // CLAUDE_CODE_VERSION = 2.1.130 (above matrix latest 2.1.126)
    → additionalContext: "[cc-version-check] Running CC 2.1.130 — matrix knows up to 2.1.126.
                           Check shared/cc-adoption-gaps.json or open issues with label cc-adoption."

    // CLAUDE_CODE_VERSION = 2.1.124 (in range)
    → outputSilentSuccess()  // no nudge

    // ORK_NO_CC_VERSION_CHECK=1 → silent regardless