用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/SAP/fundamental-ngx --skill review-pr命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
正在显示 SKILL.md
| name | review-pr |
| description | Review a pull request against project conventions and Angular 22+ best practices |
| argument-hint | ["PR-number"] |
| context | fork |
| agent | general-purpose |
| allowed-tools | Read, Grep, Glob, Bash(gh *), Bash(nx *) |
If $0 is empty or not a number, ask the user for a PR number before proceeding.
Fetch the PR details:
gh pr diff $0gh pr view $0gh pr diff $0 --name-onlyFor each changed file, check the applicable sections below. Report findings grouped by severity: Blocking (must fix), Suggestion (should fix), Nit (optional).
input() / output() / model() / linkedSignal(). Existing @Input() / @Output() decorators being modified should prefer migration to signal functions, but it's not blocking.host: {} in decorator — no @HostBinding() / @HostListener()@if / @for / @switch — no *ngIf / *ngFor / *ngSwitchstandalone: true in @Component (default since Angular 19)allowSignalWrites option in effect() (the option no longer exists)DestroyRef + takeUntilDestroyed() — no custom DestroyedServicecomputed() + host: { '[class]': } — no CssClassBuilder / @applyCssClasssignal() only used when a reactive consumer exists (template, computed, effect, host binding)markForCheck() after signal updatesBehaviorSubject → signal() where there are no async consumerseffect() for signal reactions; RxJS only for async operations (HTTP, WebSocket, timers)effect() used for state derivation — use computed() or linkedSignal insteadlinkedSignal used where mutable derived state is needed (not effect() + signal.set())signal.set() with same reference — always new referenceseffect() / computed()InjectionToken for contextual defaults (not @ContentChild assigning to signal inputs){ optional: true }FD_ prefix for component identity tokenscontentChild() / contentChildren() query by token, not concrete classfixture.componentRef.setInput() used for signal inputs in testsimports arrays — no deprecated *Module classesTestComponent)@fundamental-styles/common-css utility classes (sap-flex, sap-margin-*, sap-padding-*) — no inline styles*Module classes! after scope: fix(core)!: descriptionBREAKING CHANGE: footer with migration instructions@deprecated before removal (not removed in same PR)<type>(<scope>): <subject>feat | fix | docs | style | refactor | test | build | ci | chorecore | platform | cdk | btp | cx | i18n | datetime-adapter | ui5 | docs | e2e | ciWIP prefix (unless intentionally draft)Summarize findings as:
## Review Summary
**PR:** #$0
**Overall:** APPROVE / REQUEST CHANGES / COMMENT
### Blocking
- [file:line] Issue description
### Suggestions
- [file:line] Issue description
### Nits
- [file:line] Issue description
### Missing
- Tests: list any untested new behavior
- Docs: list any undocumented API changes
- Breaking changes: list any unannounced breaking changes
Add, rename, or remove i18n translation keys in fundamental-ngx (updates FdLanguage interface, .properties files, and generated types)
Audit existing code against project conventions and Angular 22+ best practices
Migrate a component or directive to Angular 22+ signal-based patterns
基于 SOC 职业分类