Add XCode skills for entity caching, ORM, and sharding ETL
|
---
name: compatibility-checks
description: 'Review framework compatibility, language-version constraints, conditional compilation, downgrade strategy, and API availability before changing .NET code. Use when working in multi-target or long-lived repositories.'
argument-hint: 'Provide the target project files, expected frameworks, and the API or syntax changes you plan to introduce.'
---
# 检查兼容性边界
## 适用场景
å½“ä½ è¦ä¿®æ”¹ .NET 代ç ï¼Œå°¤å…¶æ˜¯å¤šç›®æ ‡æ¡†æž¶ã€åކå²ä»“库或公共库时,先使用本技能检查兼容性风险。
适用任务:
- 新增公共 API
- 引入新的è¯è¨€ç‰¹æ€§æˆ– BCL API
- ä¿®æ”¹å¤šç›®æ ‡æ¡†æž¶é¡¹ç›®
- æ·»åŠ æ¡ä»¶ç¼–译
- åšå‘下兼容或é™çº§å®žçް
## å·¥ä½œç›®æ ‡
- 先看项目声明的兼容边界,å†å†³å®šèƒ½ä¸èƒ½ç”¨æ–°è¯æ³•ã€æ–° API
- 找出必须ä¿ç•™çš„低版本实现和æ¡ä»¶ç¼–译分支
- é¿å…åªåœ¨æœ¬æœºæˆ–å•ä¸€ç›®æ ‡æ¡†æž¶å¯ç”¨çš„æ”¹æ³•
## 执行æ¥éª¤
1. è¯»å– `.csproj`ã€`Directory.Build.props`ã€`global.json` ç‰æ–‡ä»¶ï¼Œç¡®å®š `TargetFrameworks` 与 `LangVersion`。
2. æœç´¢å·²æœ‰æ¡ä»¶ç¼–译符å·å’Œå…¼å®¹æ€§åˆ†æ”¯ï¼Œåˆ¤æ–仓库当å‰çš„é™çº§ç–略。
3. 检查拟引入的è¯è¨€ç‰¹æ€§ã€BCL APIã€ç¬¬ä¸‰æ–¹ä¾èµ–是å¦è¦†ç›–æ‰€æœ‰ç›®æ ‡æ¡†æž¶ã€‚
4. 如ä¸è¦†ç›–,优先沿用仓库已有的é™çº§æ–¹å¼å’Œæ¡ä»¶ç¼–译模å¼ã€‚
5. 输出时说明:兼容边界ã€é£Žé™©ç‚¹ã€æ›¿ä»£æ–¹æ¡ˆã€éªŒè¯æ–¹å¼ã€‚
## é‡ç‚¹æ£€æŸ¥é¡¹
- `TargetFramework` / `TargetFrameworks`
- `LangVersion`
- æ¡ä»¶ç¼–译符å·
- 高版本专属 BCL API
- Nullableã€unsafeã€éšå¼ using ç‰ç¼–译设置
- 文档或注释ä¸å£°æ˜Žçš„兼容承诺
## è¾“å‡ºè¦æ±‚
输出至少包å«ï¼š
- ç›®æ ‡æ¡†æž¶ä¸Žè¯è¨€ç‰ˆæœ¬
- 本次改动涉åŠçš„兼容性风险
- 需è¦çš„é™çº§ç–略或æ¡ä»¶ç¼–译点
- éªŒè¯æ–¹æ¡ˆ
## å‚考资料
- å‚考 `references/newlife-compatibility-patterns.md`
|