W1e — cc-watch Step 3 integration test (#1696)

Regression guard against today's M134 root-cause bug: empty features[] producing zero issues silently.

Refactor

Step 3 of claude-release-watch.yml was 78 lines of inline shell with 0 test coverage. Extracted to scripts/cc-file-adoption-issues.sh (callable independently) and tested with mocked gh CLI calls.

Cases covered

#InputExpected createsWhy
1Empty gaps array0No-op workflow
2features: [] (today's bug)0REGRESSION GUARD
3gap_score: 50Below threshold
4gap_score: 101Happy path
5Existing key in dedup0No duplicates
6Mixed scoresonly ≥10Filter precision
7Two versions w/ features2 (per-version)Multi-version
8below_floor: true (W1h)0Floor skip works
9Missing GH_REPOnon-zero exitLoud failure
10Missing args.json0 (graceful)Soft skip

Test results

  Results: 16 passed, 0 failed
SUCCESS

Mock infrastructure

tests/integration/_mock-gh/gh
  └── issue list  → returns []  by default
  └── issue create → logs to MOCK_LOG, returns mocked URL
  MOCK_EXISTING_KEYS env → simulates dedup hits