Skip to main content

api-promotion

Promote iTwin.js APIs to beta or public, or remove @preview, following repository release-tag policy.

来源信息

仓库
iTwin/itwinjs-core
最近来源活动
2026年10月22日 16:33
检测到的 SKILL.md 语言
英语
星标
740
Forks
249

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
api-promotion
description
Promote iTwin.js APIs to beta or public, or remove @preview, following repository release-tag policy.
# API Promotion ## Workflow ### 1. Read policy and establish scope Read `docs/learning/guidelines/release-tags-guidelines.md` and `docs/learning/api-support-policies.md` first. Use those documents to choose release tags and interpret `@preview`; this skill does not define a separate promotion ladder. List the requested symbols, their effective current tags (including inherited tags), and target tags using source and `common/api/<package>.api.md`. If the target or readiness for public support is unclear, confirm it with the user before editing. ### 2. Check promotion dependencies - Check whether a containing API also needs promotion. When promoting a container, preserve the effective tags of members outside the requested scope with explicit member tags where needed; private implementation members need no tags. - Check that consumers can obtain and use the API through supported exports and, where applicable, constructors, factories, or accessors. - Use API Extractor's `ae-incompatible-release-tags` errors to guide same-package signature checks instead of recursively inspecting every referenced class and member. - Manually check cross-package types exposed by the promoted signatures against their source or API reports. Also check for unexported types and types accessible only through `src/internal/` or `internal/cross-package.ts`; `ae-forgotten-export` is suppressed in `tools/build/scripts/extract-api.js`. Include types nested in callbacks, generic constraints, and base types. If a dependency requires promoting additional APIs or changing exports, explain the blocker and confirm the expanded scope before making those changes. ### 3. Update tags and documentation Apply the agreed tags using the policy's placement rules. Review the promoted APIs' documentation against implementation, callers, and tests: - Describe the consumer contract, including relevant preconditions, defaults, errors, side effects, and failure behavior, rather than implementation details. - Use accurate terminology and TSDoc, including documentation on interface fields. - Ensure links resolve to documented, supported APIs; qualify member links with their owning type. Avoid repeating release-tag metadata in prose. ### 4. Verify coverage Find existing tests for the promoted contract, including important failure cases. Reuse sufficient coverage; add focused tests only for gaps, following the package's conventions. Runtime tests should assert behavior, not just invocation. For interfaces and type aliases, verify appropriate compiled usage or type-level coverage rather than inventing a runtime test for each declaration. Read the affected package's `package.json` for its build and test commands. Build before running tests that consume compiled output. Record the targeted test commands and results, or the exact blockers if they cannot run. ### 5. Regenerate and review reports During iteration, use the affected packages' build and `extract-api` scripts, rebuilding changed dependencies first. Resolve diagnostics and review `common/api/<package>.api.md` and `common/api/summary/<package>.exports.csv` for the agreed promotions, preserved member tags, and unintended API changes. Follow `CONTRIBUTING.md` for required validation and pre-push checks; package-local iteration does not replace its clean repository build and API extraction requirement for release-tag changes. Include affected-package lint and documentation builds where required. ### 6. Record the change Follow `CONTRIBUTING.md` for Rush change files in affected published packages (`"type": "none"`), naming the promoted APIs. Add `docs/changehistory/NextVersion.md` guidance for breaking changes or significant features, following the repository's NextVersion rules.
在 GitHub 查看