Capture Knowledge
adamayoung/TMDb
Records non-obvious lessons from a finished task, such as gotchas, API quirks and design decisions, into a project's knowledge folder before a pull request opens.
Validate an existing knowledge base connector against its service's API docs
$ npx skills add simstudioai/sim --skill validate-connector -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install simstudioai/sim validate-connector --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/simstudioai/sim.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/validate-connector .claude/skills/validate-connector && 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 "validate-connector" agent skill from https://github.com/simstudioai/sim/tree/main/.agents/skills/validate-connector into .claude/skills/validate-connector/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "validate-connector", 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/simstudioai/sim/tree/main/.agents/skills/validate-connectorType 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 simstudioai/sim --skill validate-connector -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install simstudioai/sim validate-connector --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/simstudioai/sim.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/validate-connector .agents/skills/validate-connector && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "validate-connector" agent skill from https://github.com/simstudioai/sim/tree/main/.agents/skills/validate-connector into .agents/skills/validate-connector/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "validate-connector", 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 simstudioai/sim --skill validate-connector -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install simstudioai/sim validate-connector --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/simstudioai/sim.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/validate-connector .cursor/skills/validate-connector && 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 "validate-connector" agent skill from https://github.com/simstudioai/sim/tree/main/.agents/skills/validate-connector into .cursor/skills/validate-connector/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "validate-connector", 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/simstudioai/sim.git --path .agents/skills/validate-connector--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 simstudioai/sim --skill validate-connector -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install simstudioai/sim validate-connector --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/simstudioai/sim.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/validate-connector .gemini/skills/validate-connector && 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 "validate-connector" agent skill from https://github.com/simstudioai/sim/tree/main/.agents/skills/validate-connector into .gemini/skills/validate-connector/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "validate-connector", 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 simstudioai/sim validate-connectorInstalls 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 simstudioai/sim --skill validate-connector -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/simstudioai/sim.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/validate-connector .github/skills/validate-connector && 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 "validate-connector" agent skill from https://github.com/simstudioai/sim/tree/main/.agents/skills/validate-connector into .github/skills/validate-connector/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "validate-connector", 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 simstudioai/sim --skill validate-connector -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install simstudioai/sim validate-connector --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/simstudioai/sim.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/validate-connector .opencode/skills/validate-connector && 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 "validate-connector" agent skill from https://github.com/simstudioai/sim/tree/main/.agents/skills/validate-connector into .opencode/skills/validate-connector/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "validate-connector", 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.
validate-connectorValidate an existing knowledge base connector against its service's API docs
Validate Connector is an agent skill from simstudioai/sim. Validate an existing knowledge base connector against its service's API docs
Its SKILL.md is about 5.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).
It sits in Development, covering Technical documentation and Knowledge bases. The repository describes itself as: Sim is the collaborative workspace to build, deploy, and monitor AI agents and workflows. Used by 100,000+ builders. The licence is Apache-2.0.
11 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 546d4e7. 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:
bunFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
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.
Validate Connector loads about 5.7k tokens when it runs. Until then it costs about 24 tokens; SKILL.md has 2,619 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 simstudioai/sim at commit 546d4e7, republished under its Apache-2.0 licence (© simstudioai). 2,619 words, ~5,686 tokens.
.claude/skills/validate-connector/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.For Sim Search, validate the live provider registration and access pipeline: catalog and metadata parity, both search/read handlers, current member grants, service-source restrictions, safe scoped references, pagination, provenance, and provider failure behavior. Test real localhost setup/search/read with authorized fixtures when available, and distinguish those results from mocked provider tests. Live Search must not enqueue content indexing or background ACL/directory builds; GitLab still computes request-time permissions or uses current CSV grants.
The ingestion-specific checks below apply to ordinary workspace KB connectors only. Do not require a live-only provider to implement content hashes, ingestion cursors, embeddings, or stored ACL snapshots.
You are an expert auditor for Sim knowledge base connectors. Your job is to thoroughly validate that an existing connector is correct, complete, and follows all conventions.
When the user asks you to validate a connector:
Read every file for the connector — do not skip any:
apps/sim/connectors/{service}/meta.ts # ConnectorMeta — client-safe metadata (icon, name, auth, configFields, tagDefinitions)
apps/sim/connectors/{service}/{service}.ts # Connector implementation — spreads the meta + runtime functions
apps/sim/connectors/{service}/index.ts # Barrel export
apps/sim/connectors/registry.server.ts # Server-only full registry entry (CONNECTOR_REGISTRY; full connector)
apps/sim/connectors/registry.ts # Client-safe meta registry entry (CONNECTOR_META_REGISTRY)
apps/sim/connectors/types.ts # ConnectorMeta / ConnectorConfig interfaces, ExternalDocument, etc.
apps/sim/connectors/utils.ts # Shared utilities (computeContentHash, htmlToPlainText, etc.)
apps/sim/lib/oauth/oauth.ts # OAUTH_PROVIDERS — single source of truth for scopes
apps/sim/lib/oauth/utils.ts # getCanonicalScopesForProvider, getScopesForService, SCOPE_DESCRIPTIONS
apps/sim/lib/oauth/types.ts # OAuthService union type
apps/sim/components/icons.tsx # Icon definition for the serviceIf the connector uses selectors, also read:
apps/sim/lib/selectors/manifest.ts # Browser-safe exhaustive metadata
apps/sim/lib/selectors/types.ts # Selector context and option types
apps/sim/lib/selectors/context.ts # Active canonical context projection
apps/sim/lib/selectors/server/registry.ts # Exhaustive server attachments
apps/sim/lib/selectors/server/providers/* # Matching provider attachmentApply the validate-selector skill to the matching key and provider primitive. There is no client
provider selector registry.
Fetch the official API docs for the service. This is the source of truth for:
Use Context7 (resolve-library-id → query-docs) or WebFetch to retrieve documentation. If both fail, note which claims are based on training knowledge vs verified docs.
If the service docs do not clearly show document list responses, document fetch responses, metadata fields, or pagination shapes, you MUST tell the user instead of guessing.
If a schema is unknown, validation must explicitly recommend:
For every API call in the connector (listDocuments, getDocument, validateConfig, and any helper functions), verify against the API docs:
Authorization: Bearer ${accessToken}Content-Type is set for POST/PUT/PATCH requestsNotion-Version, Dropbox-API-Arg)null or empty unless the API expects that)$filter: single quotes escaped with '' (e.g., externalId.replace(/'/g, "''"))\'encodeURIComponent() appliedsiteUrl, instanceUrl) are normalized:https:// / http:// prefix if the API expects bare domains/.trim() before validationdata.results vs data.items vs data)?? null or || undefinedScopes must be correctly declared and sufficient for all API calls the connector makes.
requiredScopes in the connector's auth config lists all scopes needed by the connectorrequiredScopes is a real, valid scope recognized by the service's APIrequiredScopes exists in the OAuth provider's scopes array in lib/oauth/oauth.tsOAUTH_PROVIDERS[providerGroup].services[serviceId].scopesrequiredScopes ⊆ OAUTH_PROVIDERS scopes (every required scope is present in the provider config)For each API endpoint the connector calls:
requiredScopesrequiredScopes, flag as warninggetProviderAuthConfig (lib/oauth/oauth.ts)useBasicAuth matches the service's token exchange requirementssupportsRefreshTokenRotation matches whether the service issues rotating refresh tokensnext_cursor, nextPageToken, @odata.nextLink, offset)hasMore is correctly determined from the responsenextCursor is correctly passed back for the next pagemaxItems / maxRecords cap is correctly applied across pages using syncContext.totalDocsFetchedmaxItems cap exists, the final page request uses Math.min(PAGE_SIZE, remaining) to avoid fetching more records than neededlistingCapped) — CRITICALThe sync engine tombstones, then hard-deletes, any stored document absent from a full listing. Audit every path where listDocuments can return less than the full source set:
syncContext.listingCapped = true is set when a maxItems-style cap truncates the listing while more documents existlistingCapped is set when a transient per-item error drops a still-existing document from the listinglistingCapped is NOT set when the source is genuinely exhausted (deleted documents must reconcile) or for intentional scope filters (date cutoffs)
Verify it against the checkpoint.unsafe computation in lib/knowledge/connectors/listing-checkpoint.ts.syncContext is used to cache state across pages (user names, field maps, instance URLs, portal IDs, etc.)syncContext is correctly initialized on first page and reused on subsequent pagesConnectors that require per-document API calls to fetch content (file download, export, blocks fetch) MUST use contentDeferred: true. This is the standard pattern for reliability — without it, content downloads during listing can exhaust the sync task's time budget before any documents are saved.
listDocuments, it MUST use contentDeferred: true insteadlistDocuments returns lightweight stubs with content: '' and contentDeferred: truegetDocument fetches actual content and returns the full document with contentDeferred: falsefileToStub) is used by both listDocuments and getDocument to guarantee contentHash consistencycontentHash is metadata-based (e.g., service:{id}:{modifiedTime}), NOT content-based — it must be derivable from list metadata alonecontentHash is identical whether produced by listDocuments or getDocumentConnectors where the list API already returns content inline (e.g., Slack messages, Reddit posts) do NOT need contentDeferred.
externalId is a stable, unique identifier from the source APItitle is extracted from the correct field and has a sensible fallback (e.g., 'Untitled')content is plain text — HTML content is stripped using htmlToPlainText from @/connectors/utilsmimeType is 'text/plain' for extracted text, or the document hands over sourceFile for a format the KB pipeline parsescontentHash uses a metadata-based format (e.g., service:{id}:{modifiedTime}) for connectors with contentDeferred: true, or computeContentHash from @/connectors/utils for inline-content connectorssourceUrl is a valid, complete URL back to the original resource (not relative)metadata contains all fields referenced by mapTags and tagDefinitionsBuffer.byteLength(text, 'utf8') not text.length when comparing against byte-based limits (e.g., MAX_FILE_SIZE in bytes)tagDefinition has an id, displayName, and fieldTypefieldType matches the actual data type: 'text' for strings, 'number' for numbers, 'date' for dates, 'boolean' for booleansid in tagDefinitions is returned by mapTagstagDefinition references a field that mapTags never producestagDefinition id values exactlyparseTagDate from @/connectors/utilsjoinTagArray from @/connectors/utilsNaN)mapTags match what listDocuments/getDocument store in metadataid, title, typerequired is set explicitly (not omitted)options with label and id for each optiontype: 'selector' field with selectorKey, canonicalParamId, mode: 'basic'type: 'short-input' field with the same canonicalParamId, mode: 'advanced'required is identical on both fields in the pairdependsOn references selector field id values, not canonicalParamIdvalidate-selector skillNumber.isNaN, positive values)VALIDATE_RETRY_OPTIONS for retry budget{ valid: true } on success{ valid: false, error: 'descriptive message' } on failureexternalIdnull for 404 / not found (does not throw)ExternalDocument shape as listDocumentslistDocuments uses contentDeferred: true, getDocument MUST fetch actual content and return contentDeferred: falselistDocuments uses contentDeferred: true, getDocument MUST use the same stub function to ensure contentHash is identicallistDocuments can produce (e.g., if listDocuments returns both pages and blogposts, getDocument must handle both — not hardcode one endpoint)syncContext if it needs cached state (user names, field maps, etc.)fetchWithRetry (or secureFetchWithRetry for user-controlled hosts) from @/lib/knowledge/documents/secure-fetch.serverfetch() calls to external APIsVALIDATE_RETRY_OPTIONS used in validateConfigvalidateConfig calls a shared helper (e.g., linearGraphQL, resolveId), that helper must accept and forward retryOptions to fetchWithRetrylistDocuments/getDocument$select, sysparm_fields, fields) should request only the fields the connector needs — in both listDocuments AND getDocumentPromise.all and a concurrency limit of 3-5Promise.all over large arrayscreateLogger from @sim/logger (not console.log)info levelwarn or error level with contextconnectors/{service}/meta.ts exports {service}ConnectorMeta: ConnectorMeta (id, name, description, version, icon, auth, configFields, and any tagDefinitions / supportsIncrementalSync)meta.ts imports ONLY the icon from @/components/icons, ConnectorMeta (type-only), and pure-data constants — NO server/runtime imports (@/lib/knowledge/..., input-validation.server, fetchWithRetry, etc.); any such import in meta.ts is critical (breaks the client bundle)connectors/{service}/{service}.ts spreads ...{service}ConnectorMeta as the first property and adds the runtime functions (listDocuments, getDocument, validateConfig, mapTags?)meta.ts, not duplicated in {service}.tsconnectors/{service}/index.tsconnectors/registry.server.ts (server-only registry, CONNECTOR_REGISTRY)connectors/registry.ts (client-safe registry, CONNECTOR_META_REGISTRY), importing @/connectors/{service}/metaid fieldGroup findings by severity:
Critical (will cause runtime errors, data loss, or auth failures):
syncContext.listingCapped = true when a cap or transient error truncates the listing — the sync engine tombstones and later hard-deletes the documents absent from the partial listingrequiredScopes not a subset of OAuth provider scopes$filter, SOQL, or query strings without escapinglistDocuments without contentDeferred: true — causes sync timeouts for large document setscontentHash mismatch between listDocuments stub and getDocument return — causes unnecessary re-processing every syncmeta.ts (e.g. @/lib/knowledge/..., input-validation.server, fetchWithRetry) — pulls server-only code into the client bundle and breaks the buildconnectors/registry.ts (the client-safe meta registry) — or its entry there imports the runtime module instead of meta.ts — the knowledge UI can't render itWarning (incorrect behavior, data quality issues, or convention violations):
htmlToPlainTextgetDocument not forwarding syncContextgetDocument hardcoded to one content type when listDocuments returns multiple (e.g., only pages but not blogposts)tagDefinition for metadata fields returned by mapTagsuseBasicAuth or supportsRefreshTokenRotation in token refresh configtext.length (character count) instead of Buffer.byteLength (byte count) for byte-based limitsVALIDATE_RETRY_OPTIONS not threaded through helper functions called by validateConfigSuggestion (minor improvements):
orderBy for deterministic paginationsyncContextPromise.all (concurrency 3-5)$select, sysparm_fields, fields)getDocument re-fetches data already included in the initial API response (e.g., comments returned with post)PAGE_SIZE when fewer records remain (Math.min(PAGE_SIZE, remaining))After reporting, fix every critical and warning issue. Apply suggestions where they don't add unnecessary complexity.
After fixing, confirm:
bun run lint passesBefore reporting, confirm every step above was checked, issues are grouped by severity, critical and warning fixes are applied, and bun run lint plus type-check pass.
© simstudioai, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in .agents/skills/validate-connector of simstudioai/sim.
Open the folder on GitHubat commit 546d4e7
Validate Connector 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 |
|---|---|---|---|---|---|---|
| Validate Connector this skillsimstudioai/sim | 30k | — | ~5.7k | Automated safety check: Pass | Apache-2.0 | |
| Capture Knowledgeadamayoung/TMDb | 178 | — | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| New LoopAI-Builder-Club/skills | 1.3k | — | ~1.2k | Automated safety check: Notes | None | |
| Codebase Docsespennilsen/pi | 122 | — | ~1.8k | Automated safety check: Pass | MIT | |
| Tech Distilleryaofeino1/tech-distiller | 144 | — | ~1.2k | Automated safety check: Pass | None | |
| Obsidian WriterAtmosphere/atmosphere | 3.8k | — | ~2.6k | Automated safety check: Pass | Apache-2.0 |
adamayoung/TMDb
Records non-obvious lessons from a finished task, such as gotchas, API quirks and design decisions, into a project's knowledge folder before a pull request opens.
AI-Builder-Club/skills
Spin up a new loop (domain) in a file-based knowledge base — bootstrap the substrate if it's missing, gather the loop's charter, scaffold domains/<loop/README.md, then do ONE real test run and…
espennilsen/pi
Generate and maintain AI-readable markdown documentation for a codebase in docs/.
yaofeino1/tech-distiller
Collects technical documents from URLs, files, wikis or APIs, filters them by role or technical direction, and writes a structured report on architecture, algorithms and design decisions.
Atmosphere/atmosphere
Write well-formatted notes to the atmosphere-vault Obsidian knowledge base.
Egonex-AI/Understand-Anything
Writes an onboarding guide for new team members from a project's existing knowledge graph, after checking that the graph still matches the current commit.
simstudioai/sim
Install, upgrade, and operate the Sim Helm chart on Kubernetes.
simstudioai/sim
Add a new table column type to Sim — registry entry, icon, storage shape, coercion, and the behavioral hooks the grid and API read.
simstudioai/sim
Add a code-defined table enrichment (registry entry) under apps/sim/enrichments/ backed by an ordered provider cascade, ensuring every provider tool it calls has hosted-key support.
simstudioai/sim
Add hosted API key support to a tool so Sim provides the key (metered and billed to the workspace) when a user has not brought their own.
simstudioai/sim
Add or upgrade a curated, immutable managed CLI for Sim Function sandboxes, including client-safe catalog metadata, a pinned server-only installation recipe, checksum and executable verification…
simstudioai/sim
Add or update a Sim dynamic selector using the shared manifest, server attachment, and selectors.execute path.
Validate an existing knowledge base connector against its service's API docs. Validate Connector is an agent skill from simstudioai/sim.
Validate Connector fits situations like: tasks that involve Technical documentation; tasks that involve Knowledge bases.
Run `npx skills add simstudioai/sim --skill validate-connector -a claude-code`. Or copy the skill folder (.agents/skills/validate-connector in simstudioai/sim) into .claude/skills/validate-connector in your project. Claude Code loads it when a task matches its description.
Run `npx skills add simstudioai/sim --skill validate-connector -a codex`. Or copy the skill folder (.agents/skills/validate-connector in simstudioai/sim) into .agents/skills/validate-connector 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 simstudioai/sim --skill validate-connector -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/validate-connector, .gemini/skills/validate-connector, .github/skills/validate-connector and .opencode/skills/validate-connector in your project.
Going by SKILL.md and its folder, Validate Connector needs the command-line tools its instructions call (bun).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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.
Validate Connector is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.7k tokens (SKILL.md is roughly 23k 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 Validate Connector: Capture Knowledge (adamayoung/TMDb, 178 stars), New Loop (AI-Builder-Club/skills, 1.3k stars), Codebase Docs (espennilsen/pi, 122 stars) and Tech Distiller (yaofeino1/tech-distiller, 144 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
simstudioai (a GitHub organization) maintains it in simstudioai/sim, which has 29,785 GitHub stars. The repository holds 40 skills in this directory. The repository was last updated on October 7, 2026.
Source: simstudioai/sim on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.