一键导入
ncbi-check-updates
Check for NCBI API changes, deprecations, and new releases that affect ncbijs packages
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Check for NCBI API changes, deprecations, and new releases that affect ncbijs packages
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Verify ncbijs — wraps /solo-npm:verify with full Nx monorepo verification (lint, typecheck, build, unit tests, e2e, demo build), prefixed by an ncbi-api-monitor pre-flight check.
Composable git workflow: commit, squash, and/or push. Use /commit to stage and commit, /commit squash to squash branch commits, /commit push to force push, or /commit squash push for the full workflow.
Release ncbijs packages — wraps /solo-npm:release with monorepo specifics.
Systematically debug issues using graph-powered code navigation
Navigate and understand codebase structure using the knowledge graph
Plan and execute safe refactoring using dependency analysis
| name | ncbi-check-updates |
| description | Check for NCBI API changes, deprecations, and new releases that affect ncbijs packages |
Detects API changes across all NCBI/NLM services that ncbijs wraps. Reports what changed, which packages are affected, and what action to take.
Detection is automated by a TypeScript script that handles all HTTP fetching, hash computation, and state comparison. Claude only gets involved for analysis and code changes — no manual HTTP requests needed.
┌─────────────────────────────────────────┐
│ scripts/ncbi-api-monitor/detect.ts │
│ Pure TS, zero external deps │
│ 7 checks × parallel HTTP fetches │
│ Outputs JSON report to stdout │
│ Updates .ncbi-check-updates/ baselines │
└──────────────────┬──────────────────────┘
│ JSON report
▼
┌─────────────────────────────────────────┐
│ Claude Code (this skill) │
│ Reads report → acts on findings │
│ HIGH: update interfaces, tests, docs │
│ MEDIUM: investigate, decide action │
│ LOW: informational, no action needed │
└─────────────────────────────────────────┘
State is stored in .ncbi-check-updates/ (committed to git) so baselines persist across sessions.
Reference docs: docs/api-change-detection.md and docs/ncbi-api-catalog.md.
These APIs are dead. Do not probe, implement, or re-add them:
| API | Status | Removed from |
|---|---|---|
Drug Interaction (rxnav.nlm.nih.gov/REST/interaction/) | 404 since Jan 2024 | @ncbijs/rxnorm |
PMC OAI-PMH old endpoint (www.ncbi.nlm.nih.gov/pmc/oai/oai.cgi) | Redirects | Updated in @ncbijs/pmc |
| NCBI HTTP (non-HTTPS) | Rejected since 2023 | N/A |
If you encounter a new deprecated API during checks, add it to this list AND to docs/ncbi-api-catalog.md "Deprecated and discontinued APIs" section.
When a change is detected, this tells you which package to update:
| API / Signal | Package(s) affected |
|---|---|
| Datasets v2 OpenAPI spec | @ncbijs/datasets |
| Variation Services OpenAPI spec | @ncbijs/snp |
| MeSH Swagger spec | @ncbijs/mesh |
| ClinicalTrials.gov version/spec | @ncbijs/clinical-trials |
| RxNorm version | @ncbijs/rxnorm |
| E-utilities EInfo (any database) | @ncbijs/eutils + database-specific package |
| PubChem schema | @ncbijs/pubchem |
| iCite schema | @ncbijs/icite |
| PubTator3 schema | @ncbijs/pubtator |
| ClinVar schema | @ncbijs/clinvar |
| LitVar schema | @ncbijs/litvar |
| DailyMed schema | @ncbijs/dailymed |
| Clinical Tables schema | @ncbijs/clinical-tables |
| BioC schema | @ncbijs/bioc |
| Cite/ID Converter schema | @ncbijs/cite, @ncbijs/id-converter |
| BLAST endpoint | @ncbijs/blast |
| Sunset/Deprecation header on any endpoint | Depends on endpoint — see probe list |
pnpm tsx scripts/ncbi-api-monitor/detect.ts
Set NCBI_API_KEY env var for higher rate limits (10 req/sec vs 3 req/sec without). Without it, some E-utilities checks may get 429 rate-limited on the first run.
This runs all 7 check categories in parallel:
| Check | Signal | Severity |
|---|---|---|
| OpenAPI spec hashes | SHA-256 of 4 spec URLs | HIGH if changed |
| Version endpoints | ClinicalTrials.gov + RxNorm versions | MEDIUM if bumped |
| Deprecation headers | Sunset/Deprecation/Warning on 17 endpoints | HIGH if found |
| Schema fingerprints | JSON key sets from 9 sample endpoints | HIGH if removed, LOW if added |
| NCBI Insights RSS | Keyword-filtered entries newer than last check | MEDIUM if breaking, LOW otherwise |
| GitHub releases | ncbi/datasets releases newer than last check | LOW |
| EInfo databases | lastupdate/dbbuild for 17 databases | LOW |
The script outputs a JSON report to stdout and updates .ncbi-check-updates/ state files automatically.
The JSON report has this structure:
{
"date": "2026-04-26T...",
"hasChanges": true,
"summary": "3 changes detected: 1 HIGH, 1 MEDIUM, 1 LOW",
"changes": [
{
"category": "spec",
"severity": "high",
"description": "datasets OpenAPI spec changed (version: v2 -> v2.1)",
"affectedPackages": ["@ncbijs/datasets"]
}
],
"errors": []
}
If hasChanges is false: report "No changes detected" and stop.
If there are errors: report them but continue processing any successful changes.
| Finding | Action |
|---|---|
| OpenAPI spec hash changed | Fetch the new spec with WebFetch. Diff key structural differences (new/removed endpoints, changed parameters). Update interfaces in the affected package. Update tests. Run verification. |
| Deprecation header found | Record in docs/ncbi-api-catalog.md "Deprecated and discontinued APIs". If sunset date < 6 months away, create a migration plan. If sunset date passed, remove the endpoint from code. Add to the deprecated list at the top of this skill. |
| Schema keys removed | Check if the affected package's interface references that field. If so, make it optional (add ?). Update tests. |
| Finding | Action |
|---|---|
| Version bumped | Check the API's changelog for breaking changes. Update code if needed. |
| RSS: "deprecated" or "sunset" | Read the full announcement via the link. Plan migration if needed. |
No action required. The detection script already updated the baselines.
After fixing any HIGH issues, run:
pnpm lint && pnpm build && pnpm typecheck && pnpm test
The detection script updates .ncbi-check-updates/ state files. These must be committed so the next run only shows new changes:
git add .ncbi-check-updates/
git commit -m "chore(workspace): update NCBI API monitor baselines"
If code was also changed (HIGH findings), include the state file updates in the same commit as the code changes.
A GitHub Actions workflow (.github/workflows/ncbi-api-monitor.yml) runs the detection script weekly (Monday 9am UTC). If HIGH or MEDIUM changes are detected, it opens a GitHub issue with the ncbi-api-monitor label. LOW-only changes (database builds, new schema keys, releases) are recorded in baselines but do not trigger issues since they require no action. This skill is for ad-hoc checks and for acting on those issues.
docs/ncbi-api-catalog.md — if a new API endpoint is discovered, add it therescripts/ncbi-api-monitor/detect.tsscripts/ncbi-api-monitor/detect.spec.ts (run with pnpm nx run ncbijs-scripts:test)