Sub2API Admin
Wei-Shaw/sub2api
Manages a Sub2API deployment from the command line: accounts, redeem and invitation codes, groups, proxies, imports, exports and raw admin API calls.
How to reuse ANY integration check's results in a feature via the universal CheckResultsService (apps/api integration-platform).
$ npx skills add trycompai/comp --skill check-results-service -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install trycompai/comp check-results-service --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/trycompai/comp.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/check-results-service .claude/skills/check-results-service && 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 "check-results-service" agent skill from https://github.com/trycompai/comp/tree/main/.claude/skills/check-results-service into .claude/skills/check-results-service/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "check-results-service", 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/trycompai/comp/tree/main/.claude/skills/check-results-serviceType 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 trycompai/comp --skill check-results-service -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install trycompai/comp check-results-service --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/trycompai/comp.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/check-results-service .agents/skills/check-results-service && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "check-results-service" agent skill from https://github.com/trycompai/comp/tree/main/.claude/skills/check-results-service into .agents/skills/check-results-service/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "check-results-service", 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 trycompai/comp --skill check-results-service -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install trycompai/comp check-results-service --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/trycompai/comp.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/check-results-service .cursor/skills/check-results-service && 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 "check-results-service" agent skill from https://github.com/trycompai/comp/tree/main/.claude/skills/check-results-service into .cursor/skills/check-results-service/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "check-results-service", 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/trycompai/comp.git --path .claude/skills/check-results-service--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 trycompai/comp --skill check-results-service -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install trycompai/comp check-results-service --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/trycompai/comp.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/check-results-service .gemini/skills/check-results-service && 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 "check-results-service" agent skill from https://github.com/trycompai/comp/tree/main/.claude/skills/check-results-service into .gemini/skills/check-results-service/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "check-results-service", 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 trycompai/comp check-results-serviceInstalls 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 trycompai/comp --skill check-results-service -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/trycompai/comp.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/check-results-service .github/skills/check-results-service && 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 "check-results-service" agent skill from https://github.com/trycompai/comp/tree/main/.claude/skills/check-results-service into .github/skills/check-results-service/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "check-results-service", 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 trycompai/comp --skill check-results-service -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install trycompai/comp check-results-service --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/trycompai/comp.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/check-results-service .opencode/skills/check-results-service && 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 "check-results-service" agent skill from https://github.com/trycompai/comp/tree/main/.claude/skills/check-results-service into .opencode/skills/check-results-service/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "check-results-service", 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.
check-results-serviceHow to reuse ANY integration check's results in a feature via the universal CheckResultsService (apps/api integration-platform).
Check Results Service is an agent skill from trycompai/comp. How to reuse ANY integration check's results in a feature via the universal CheckResultsService (apps/api integration-platform). Use whenever a feature needs data produced by an integration check — "show 2FA status on People", "surface AWS S3 findings in X", "reuse a check's results", "per-user/per-resource results from a connected integration", "which integrations feed task T". Read this BEFORE writing your own IntegrationCheckResult / CheckRunRepository query — don't hand-roll it.
Its SKILL.md is about 2.1k 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 Backend & APIs, covering Third-party API integration. It works with Amazon S3. The repository describes itself as: AI Native platform to get companies compliant - Vanta & Drata Alternative. The licence is AGPL-3.0.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 0117612. 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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are typescript).
From 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.
Check Results Service loads about 2.1k tokens when it runs. Until then it costs about 127 tokens; SKILL.md has 824 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 trycompai/comp at commit 0117612, republished under its AGPL-3.0 licence (© trycompai). 824 words, ~2,109 tokens.
.claude/skills/check-results-service/SKILL.md (or your agent's skills folder).Integration checks (2FA, AWS S3 encryption, device posture, …) all write per-resource
results to one table (IntegrationCheckResult). CheckResultsService is the single,
universal, read-only way to get those results into any feature. It is deliberately
feature-agnostic: it fetches results and hands them back in a stable envelope, and it
does not know or care what the data means.
Service = fetch the results (generic). Feature = interpret + map + present.
If you're about to query IntegrationCheckResult or CheckRunRepository directly from a
new feature — stop. Use this service instead.
apps/api/src/integration-platform/services/check-results.service.tsIntegrationPlatformModule — inject it into any feature module.two-factor-source.controller.ts.Use it whenever a feature needs the output of an integration check:
// 1. Discover sources: which connected integrations can feed a task, + connection state.
listSourcesBoundToTask(organizationId, taskTemplateId): Promise<CheckSourceInfo[]>
// 2. The primitive: full results of a check's latest REAL run for ONE connection.
getLatestResultsByCheck({ organizationId, connectionId, checkId, resourceType? }): Promise<CheckResultRow[]>
// 3. Convenience: results for a task-bound check from a chosen source (provider slug).
// Resolves task -> check and slug -> connection for you.
getLatestResultsForTask({ organizationId, taskTemplateId, sourceSlug, resourceType? }): Promise<CheckResultRow[]>Notes:
inconclusive/held and whose connection isn't
disconnected. Held runs (our-side self-heal) never leak to a feature.resourceType filters rows (e.g. 'user', 'bucket'). Omit to get all.Checks about PEOPLE (employee access, 2FA/MFA, training) follow a standard emission shape — this section is the canonical definition of it:
evidence.resourceType: 'user' (exactly this string).resourceId = the person's email, lowercased + trimmed. Fallback username || id
only when the provider genuinely exposes no email (such rows won't join to members —
acceptable, still visible in evidence views).evidence carries what the provider knows: email, name, role, isAdmin,
status, lastLogin, plus a checkedAt timestamp.So a feature joining check results to org members does exactly this — no parsing, no AI:
const rows = await checkResults.getLatestResultsForTask({
organizationId, taskTemplateId, sourceSlug, resourceType: 'user',
});
const forMember = rows.filter((r) => r.resourceId === member.email.toLowerCase());If a source returns zero 'user' rows, its check hasn't been normalized to the standard
yet (or genuinely has no per-person data) — render that as "no per-person data from this
source", and fix the CHECK to emit the shape above. Never work around it by parsing
aggregate evidence in the feature.
interface CheckResultRow {
resourceId: string; // provider-native id: email (2FA), bucket ARN (S3), repo, …
resourceType: string; // 'user' | 'bucket' | …
passed: boolean; // did this resource pass the check
title: string;
description: string | null;
evidence: Prisma.JsonValue; // ← check-SPECIFIC payload. The service does NOT interpret it.
collectedAt: Date;
runId: string;
connectionId: string;
}The evidence rule (important): the envelope is universal; the check-specific data lives
in evidence as raw JSON. The service never types or interprets it. Your feature validates
evidence at its own edge with a zod schema and reads only the fields it understands:
const TwoFaEvidence = z.object({ isEnrolledIn2Sv: z.boolean() });
const parsed = TwoFaEvidence.safeParse(row.evidence);
// use parsed.data.isEnrolledIn2Sv — never `as any`For a simple pass/fail feature you often don't even need evidence — just use row.passed
and row.resourceId (that's all 2FA needs).
Say a feature wants "which AWS S3 buckets failed encryption":
CheckResultsService to your feature's constructor (the module
already exports it; import IntegrationPlatformModule if your module doesn't already).listSourcesBoundToTask or your own connection lookup):const rows = await this.checkResults.getLatestResultsByCheck({
organizationId,
connectionId,
checkId: 'aws-s3-encryption', // the check's manifest id
resourceType: 'bucket',
});getLatestResultsForTask with the task template id and the chosen sourceSlug.resourceId/passed, validate evidence with zod, shape
the response your UI needs. Do not add feature logic to the service.two-factor-source.controller.spec.ts).The People-tab 2FA column is consumer #1. Study it end to end:
two-factor-source.controller.tsavailable-2fa-sources → listSourcesBoundToTask(org, TASK_TEMPLATES.twoFactorAuth)two-factor-statuses → getLatestResultsForTask({ org, taskTemplateId: twoFactorAuth, sourceSlug: org.twoFactorSource, resourceType: 'user' }), then maps resourceId→email
(lowercased) and passed→enabled/missing. Emails with no row are resolved to
"Not provided" on the client, never a false "missing".Organization.twoFactorSource column, the
enabled/missing interpretation). The generic fetch is all in the service.evidence with zod in your feature. No as any.IntegrationCheckResult / CheckRunRepository directly from a feature.user (or email-keyed) rows — that's per-check. If a
chosen source's check emits a different resourceType or a non-mappable resourceId, your
feature should degrade gracefully (e.g. "Not provided"), not crash.Which integration an org uses for a purpose (e.g. Organization.twoFactorSource) is
feature-owned config, mirroring employeeSyncProvider / deviceSyncProvider. Add a column
per feature. (If a 3rd/4th feature needs it, consider generalizing selection then — not
before.)
© trycompai, AGPL-3.0. 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/check-results-service of trycompai/comp.
Open the folder on GitHubat commit 0117612
Check Results Service 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 |
|---|---|---|---|---|---|---|
| Check Results Service this skilltrycompai/comp | 2k | — | ~2.1k | Automated safety check: Pass | AGPL-3.0 | |
| Sub2API AdminWei-Shaw/sub2api | 44k | 1 repos | ~717 | Automated safety check: Pass | LGPL-3.0 | |
| Firecrawl Build Onboardingfirecrawl/firecrawl | 190k | 1 repos | ~1.4k | Automated safety check: Notes | ISC | |
| ToolJet Marketplace Plugin BuilderToolJet/ToolJet | 41k | — | ~2.1k | Automated safety check: Pass | AGPL-3.0 | |
| Firecrawl Search Integrationfirecrawl/firecrawl | 190k | 1 repos | ~1.1k | Automated safety check: Pass | ISC | |
| CoinGecko API Reference2025Emma/vibe-coding-cn | 23k | 1 repos | ~646 | Automated safety check: Pass | MIT |
Wei-Shaw/sub2api
Manages a Sub2API deployment from the command line: accounts, redeem and invitation codes, groups, proxies, imports, exports and raw admin API calls.
firecrawl/firecrawl
Gets Firecrawl working in a project: signs you in through the browser, saves FIRECRAWL_API_KEY to .env and picks the first SDK or REST path.
ToolJet/ToolJet
Turns an API description, such as an OpenAPI file or a Postman collection, into a connector plugin for ToolJet's marketplace and checks it with the repo's validator.
firecrawl/firecrawl
Guidance for adding Firecrawl's /search endpoint to product code and agent workflows when a feature starts from a query rather than a URL.
2025Emma/vibe-coding-cn
CoinGecko API documentation - cryptocurrency market data API, price feeds, market cap, volume, historical data. Use when integrating CoinGecko API, building…
diegosouzapw/OmniRoute
Manages AI provider connections, API keys, OAuth flows and connection tests through OmniRoute's REST API across its 327-provider catalog.
trycompai/comp
The contract every new or modified API endpoint must follow so it is correct for the public OpenAPI spec, the MCP server (npm @trycompai/mcp-server), the ValidationPipe, and the docs.
trycompai/comp
A skill your agent uses when implementing data fetching, API calls, server/client components, or SWR hooks
trycompai/comp
A skill your agent uses when SDK generation failed or seeing errors.
trycompai/comp
A skill your agent uses when building forms - covers React Hook Form, Zod validation, and form patterns
trycompai/comp
A skill your agent uses when writing TypeScript/React code - covers type safety, component patterns, and file organization
trycompai/comp
A skill your agent uses when generating an MCP server from an OpenAPI spec with Speakeasy.
Works with
Categories
How to reuse ANY integration check's results in a feature via the universal CheckResultsService (apps/api integration-platform). Check Results Service is an agent skill from trycompai/comp. How to reuse ANY integration check's results in a feature via the universal CheckResultsService (apps/api integration-platform).
Check Results Service fits situations like: A feature needs data produced by an integration check — show 2FA status on People; surface AWS S3 findings in X; reuse a checks results; per-user/per-resource results from a connected integration.
Run `npx skills add trycompai/comp --skill check-results-service -a claude-code`. Or copy the skill folder (.claude/skills/check-results-service in trycompai/comp) into .claude/skills/check-results-service in your project. Claude Code loads it when a task matches its description.
Run `npx skills add trycompai/comp --skill check-results-service -a codex`. Or copy the skill folder (.claude/skills/check-results-service in trycompai/comp) into .agents/skills/check-results-service 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 trycompai/comp --skill check-results-service -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/check-results-service, .gemini/skills/check-results-service, .github/skills/check-results-service and .opencode/skills/check-results-service in your project.
SKILL.md names no scripts, command-line tools or credentials: Check Results Service is instructions for the agent only.
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.
Check Results Service is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.1k tokens (SKILL.md is roughly 8.4k 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 Check Results Service: Sub2API Admin (Wei-Shaw/sub2api, 44k stars), Firecrawl Build Onboarding (firecrawl/firecrawl, 190k stars), ToolJet Marketplace Plugin Builder (ToolJet/ToolJet, 41k stars) and Firecrawl Search Integration (firecrawl/firecrawl, 190k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
trycompai (a GitHub organization) maintains it in trycompai/comp, which has 2,023 GitHub stars. The repository holds 31 skills in this directory. The repository was last updated on October 7, 2026.
Source: trycompai/comp on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.