Get API Docs with chub
andrewyng/context-hub
Fetches current documentation for third-party APIs and SDKs with the chub CLI before the agent writes code against them, instead of relying on remembered API shapes.
A skill your agent uses when regenerating, checking, or auditing the CODAP v3 Plugin API reference in v3/doc/plugin-api/ — the per-resource pages, the quick-reference tables, the JSON inventory, or…
$ npx skills add concord-consortium/codap --skill plugin-api-docs -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install concord-consortium/codap plugin-api-docs --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/concord-consortium/codap.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/plugin-api-docs .claude/skills/plugin-api-docs && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "plugin-api-docs" agent skill from https://github.com/concord-consortium/codap/tree/main/.claude/skills/plugin-api-docs into .claude/skills/plugin-api-docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "plugin-api-docs", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/concord-consortium/codap/tree/main/.claude/skills/plugin-api-docsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add concord-consortium/codap --skill plugin-api-docs -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install concord-consortium/codap plugin-api-docs --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/concord-consortium/codap.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/plugin-api-docs .agents/skills/plugin-api-docs && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "plugin-api-docs" agent skill from https://github.com/concord-consortium/codap/tree/main/.claude/skills/plugin-api-docs into .agents/skills/plugin-api-docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "plugin-api-docs", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add concord-consortium/codap --skill plugin-api-docs -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install concord-consortium/codap plugin-api-docs --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/concord-consortium/codap.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/plugin-api-docs .cursor/skills/plugin-api-docs && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "plugin-api-docs" agent skill from https://github.com/concord-consortium/codap/tree/main/.claude/skills/plugin-api-docs into .cursor/skills/plugin-api-docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "plugin-api-docs", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/concord-consortium/codap.git --path .claude/skills/plugin-api-docs--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add concord-consortium/codap --skill plugin-api-docs -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install concord-consortium/codap plugin-api-docs --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/concord-consortium/codap.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/plugin-api-docs .gemini/skills/plugin-api-docs && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "plugin-api-docs" agent skill from https://github.com/concord-consortium/codap/tree/main/.claude/skills/plugin-api-docs into .gemini/skills/plugin-api-docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "plugin-api-docs", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install concord-consortium/codap plugin-api-docsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add concord-consortium/codap --skill plugin-api-docs -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/concord-consortium/codap.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/plugin-api-docs .github/skills/plugin-api-docs && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "plugin-api-docs" agent skill from https://github.com/concord-consortium/codap/tree/main/.claude/skills/plugin-api-docs into .github/skills/plugin-api-docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "plugin-api-docs", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add concord-consortium/codap --skill plugin-api-docs -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install concord-consortium/codap plugin-api-docs --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/concord-consortium/codap.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/plugin-api-docs .opencode/skills/plugin-api-docs && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "plugin-api-docs" agent skill from https://github.com/concord-consortium/codap/tree/main/.claude/skills/plugin-api-docs into .opencode/skills/plugin-api-docs/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "plugin-api-docs", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
plugin-api-docsA skill your agent uses when regenerating, checking, or auditing the CODAP v3 Plugin API reference in v3/doc/plugin-api/ — the per-resource pages, the quick-reference tables, the JSON inventory, or…
Plugin API Docs is an agent skill from concord-consortium/codap. Use when regenerating, checking, or auditing the CODAP v3 Plugin API reference in v3/doc/plugin-api/ — the per-resource pages, the quick-reference tables, the JSON inventory, or the request schema. Also use to check whether the Data Interactive code and its documentation have drifted, and before a v3 release.
Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Technical documentation. It works with npm. The repository describes itself as: CODAP (Common Online Data Analysis Platform). The licence is MIT.
Read from SKILL.md and the folder at commit b85f7a4. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Plugin API Docs loads about 1.4k tokens when it runs. Until then it costs about 82 tokens; SKILL.md has 739 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from concord-consortium/codap at commit b85f7a4, republished under its MIT licence (© concord-consortium). 739 words, ~1,417 tokens.
.claude/skills/plugin-api-docs/SKILL.md (or your agent's skills folder).Keeps v3/doc/plugin-api/ honest about v3/src/data-interactive/. Three scripts under
v3/scripts/plugin-api/, each runnable on its own; npm scripts wrap them.
This solves the same problem as generate-log-events-csv does for log events, and is built the
same way: a deterministic compiler-API extractor, a merge step that rewrites only machine-owned
content, and a checker.
| npm script | What it does |
|---|---|
npm run plugin-api:extract | Prints the inventory as JSON to stdout (the generator is what writes the file) |
npm run plugin-api:generate | Rewrites generated blocks in the docs, writes the request schema, reports drift |
npm run plugin-api:lint | Checks the docs against the code and the conventions |
npm run plugin-api:check | Both of the above in report-only mode — what CI runs |
markers.mjs and inventory.mjs are shared helpers, not entry points: the first defines a
well-formed generated-block marker, the second is the one way both scripts run the extractor.
The generator consults markers.mjs before rewriting a page and skips any page whose markers
it cannot prove safe; that file explains what a rewrite would otherwise destroy.
Run them from v3/.
Before a release, or after touching src/data-interactive/:
npm run plugin-api:generate && npm run plugin-api:lintThen read the drift report. CHANGED means a table was stale and has been rewritten — review
the diff. NEW means a resource exists in code that nothing documents and that is not in the
baseline; either document it or add it to the baseline deliberately.
To see whether anything has drifted, without writing: npm run plugin-api:check.
Generated blocks are delimited in the markdown:
<!-- BEGIN GENERATED: actions -->
...
<!-- END GENERATED: actions -->The generator writes actions, scope, adornment-types, the three quick-reference.md
tables, and a values block only when it declares its source interface:
<!-- BEGIN GENERATED: values source=DIAttribute -->Everything else it leaves alone and reports. That is deliberate: resources do not map to value interfaces by name, so a block the tool cannot fill completely is better hand-written than half-generated. The lint checks those instead.
A marker declares a block machine-owned even before the tool can fill it. Content hand-written
inside one is provisional: it stands until the generator learns that block, then is replaced —
reported as CHANGED, and as a --check failure, not silently. Never hand-edit a block the generator already writes — run
npm run plugin-api:generate and read the "Hand-maintained (left alone)" list to see which is
which. See v3/doc/plugin-api/conventions.md for the full rules.
doc/plugin-api/undocumented-baseline.txt lists resources with no page yet. The drift check
reports a resource only if it is undocumented and absent from the baseline, so the check is
meaningful while resources still lack pages instead of permanently red.
When a page lands, delete its line. The check reports stale entries, so the file cannot quietly rot.
It reports facts, not judgment. It cannot produce, and will never overwrite:
getAdditionalDataIf one of those is wrong in the docs, a human wrote it and a human fixes it.
univariateMeasureAdornmentBaseHandler. Anything deeper is reported as unresolved
rather than guessed; if you see built by …() in the inventory, the actions are unknown, not
absent.extends, including extends Partial<X> (which makes
the inherited members optional) and the alias forms type X = Y / type X = Partial<Y>.
Members carry inherited naming the interface they came from. This matters more than it
sounds: every component type extends V2Component, and DIAttribute declares 2 members and
inherits 22. A base the walker cannot find is listed in unresolvedBases rather than dropped.
Unions and MST Partial<SnapshotIn<typeof Model>> aliases denote no single member list and
are skipped, not approximated.coverage.mjs, used by both the generator and the lint: a
page's generated actions header names every resource that page covers, falling back to the
filename for a single-resource page. A mention in prose never counts.scope derives from two signals: whether the parser exempts the resource from #default
defaulting, and whether the handler actually reads a data context. The exemption list alone is
misleading — adornment has a context resolved and ignores it.%@ i18n notation replaced by neutral <value>
placeholders. A resource page may name them meaningfully in its own hand-written table.© concord-consortium, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/plugin-api-docs of concord-consortium/codap.
Open the folder on GitHubat commit b85f7a4
Plugin API Docs next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Plugin API Docs this skillconcord-consortium/codap | 106 | — | ~1.4k | Automated safety check: Pass | MIT | |
| Get API Docs with chubandrewyng/context-hub | 14k | 1 repos | ~775 | Automated safety check: Pass | MIT | |
| Update .NET Supported OS Matrixdotnet/core | 22k | — | ~4.1k | Automated safety check: Pass | MIT | |
| Ccb GitHubSeemSeam/claude_codex_bridge | 3.6k | — | ~4.9k | Automated safety check: Pass | Custom licence | |
| README Badges and Headersjal-co/shieldcn | 919 | — | ~4.3k | Automated safety check: Pass | MIT | |
| Release Managerukorvl/lightweight-charts-react-components | 137 | — | ~1.7k | Automated safety check: Pass | Custom licence |
andrewyng/context-hub
Fetches current documentation for third-party APIs and SDKs with the chub CLI before the agent writes code against them, instead of relying on remembered API shapes.
dotnet/core
Audits and updates the supported-os.json files for .NET releases, checking them against upstream lifecycle data and regenerating the markdown with the release-notes tool.
SeemSeam/claude_codex_bridge
Maintain this CCB project's GitHub-facing release and npm publication surface.
jal-co/shieldcn
Adds shadcn/ui-styled README badges, badge groups, download charts, header banners and sponsor or contributor grids using the shieldcn service.
ukorvl/lightweight-charts-react-components
Prepare or finalize semver releases for this repository. An agent skill from ukorvl/lightweight-charts-react-components.
pnp/sp-dev-fx-aces
Verify a "new sample" PR in pnp/sp-dev-fx-aces builds successfully, then produce a deployment + testing checklist from the sample README so it can be manually deployed and tested before merging.
concord-consortium/codap
A skill your agent uses when deploying, updating, or syncing assets to the codap-resources S3 bucket - plugins, example documents, boundary files, banners, or notification configs
concord-consortium/codap
A skill your agent uses when regenerating, updating, or auditing the CODAP v3 log-events dictionary CSV (the list of every log event the v3 app can emit, with placeholders/parameters/descriptions).
concord-consortium/codap
A skill your agent uses when preparing a CODAP v3 release, creating release notes, updating version files, creating release PRs, tagging releases, or deploying to staging/production.
Works with
Categories
A skill your agent uses when regenerating, checking, or auditing the CODAP v3 Plugin API reference in v3/doc/plugin-api/ — the per-resource pages, the quick-reference tables, the JSON inventory, or…. Plugin API Docs is an agent skill from concord-consortium/codap. Use when regenerating, checking, or auditing the CODAP v3 Plugin API reference in v3/doc/plugin-api/ — the per-resource pages, the quick-reference tables, the JSON inventory, or the request schema.
Plugin API Docs fits situations like: auditing the CODAP v3 Plugin API reference in v3/doc/plugin-api/ — the per-resource pages; the quick-reference tables; the JSON inventory; the request schema.
Run `npx skills add concord-consortium/codap --skill plugin-api-docs -a claude-code`. Or copy the skill folder (.claude/skills/plugin-api-docs in concord-consortium/codap) into .claude/skills/plugin-api-docs in your project. Claude Code loads it when a task matches its description.
Run `npx skills add concord-consortium/codap --skill plugin-api-docs -a codex`. Or copy the skill folder (.claude/skills/plugin-api-docs in concord-consortium/codap) into .agents/skills/plugin-api-docs in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add concord-consortium/codap --skill plugin-api-docs -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/plugin-api-docs, .gemini/skills/plugin-api-docs, .github/skills/plugin-api-docs and .opencode/skills/plugin-api-docs in your project.
Going by SKILL.md and its folder, Plugin API Docs needs the command-line tools its instructions call (npm).
SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Plugin API Docs is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.4k tokens (SKILL.md is roughly 5.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Plugin API Docs: Get API Docs with chub (andrewyng/context-hub, 14k stars), Update .NET Supported OS Matrix (dotnet/core, 22k stars), Ccb GitHub (SeemSeam/claude_codex_bridge, 3.6k stars) and README Badges and Headers (jal-co/shieldcn, 919 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
concord-consortium (a GitHub organization) maintains it in concord-consortium/codap, which has 106 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 9, 2026.
Source: concord-consortium/codap on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.