LobeHub Alint Rule Set Maintenance
lobehub/lobehub
Maintains LobeHub's model-backed alint rule set: writing rules, removing false positives against real code, deciding warn versus error and tracking token cost.
Enforce security policies and coding standards for Figma API integrations.
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill figma-policy-guardrails -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace figma-policy-guardrails --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/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/.curated/figma-policy-guardrails .claude/skills/figma-policy-guardrails && 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 "figma-policy-guardrails" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/figma-policy-guardrails into .claude/skills/figma-policy-guardrails/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "figma-policy-guardrails", 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/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/figma-policy-guardrailsType 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 jeremylongshore/tons-of-skills-marketplace --skill figma-policy-guardrails -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace figma-policy-guardrails --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/.curated/figma-policy-guardrails .agents/skills/figma-policy-guardrails && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "figma-policy-guardrails" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/figma-policy-guardrails into .agents/skills/figma-policy-guardrails/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "figma-policy-guardrails", 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 jeremylongshore/tons-of-skills-marketplace --skill figma-policy-guardrails -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace figma-policy-guardrails --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/.curated/figma-policy-guardrails .cursor/skills/figma-policy-guardrails && 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 "figma-policy-guardrails" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/figma-policy-guardrails into .cursor/skills/figma-policy-guardrails/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "figma-policy-guardrails", 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/jeremylongshore/tons-of-skills-marketplace.git --path skills/.curated/figma-policy-guardrails--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 jeremylongshore/tons-of-skills-marketplace --skill figma-policy-guardrails -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace figma-policy-guardrails --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/.curated/figma-policy-guardrails .gemini/skills/figma-policy-guardrails && 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 "figma-policy-guardrails" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/figma-policy-guardrails into .gemini/skills/figma-policy-guardrails/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "figma-policy-guardrails", 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 jeremylongshore/tons-of-skills-marketplace figma-policy-guardrailsInstalls 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 jeremylongshore/tons-of-skills-marketplace --skill figma-policy-guardrails -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/.curated/figma-policy-guardrails .github/skills/figma-policy-guardrails && 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 "figma-policy-guardrails" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/figma-policy-guardrails into .github/skills/figma-policy-guardrails/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "figma-policy-guardrails", 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 jeremylongshore/tons-of-skills-marketplace --skill figma-policy-guardrails -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace figma-policy-guardrails --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/.curated/figma-policy-guardrails .opencode/skills/figma-policy-guardrails && 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 "figma-policy-guardrails" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/skills/.curated/figma-policy-guardrails into .opencode/skills/figma-policy-guardrails/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "figma-policy-guardrails", 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.
figma-policy-guardrailsEnforce security policies and coding standards for Figma API integrations.
Figma Policy Guardrails is an agent skill from jeremylongshore/tons-of-skills-marketplace. Enforce security policies and coding standards for Figma API integrations. Use when setting up linting rules for Figma tokens, preventing accidental credential leaks, or enforcing API usage best practices. Trigger with phrases like "figma policy", "figma lint", "figma guardrails", "figma security rules", "figma best practices check".
Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including reference files (for example `references/api-usage-policies.md`, `references/audit-logging.md` and `references/configuration-validation.md`). Compatibility notes: Designed for Claude Code
It sits in Development, covering Linting and formatting, LLM guardrails and Third-party API integration. It works with Figma and ESLint. The repository describes itself as: Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com. The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit cfae287. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadWriteEditBash(npx:*)From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
developers.figma.compre-commit.comeslint.orgFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
FIGMA_FILE_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Designed for Claude Code
From compatibility in the SKILL.md frontmatter.
Figma Policy Guardrails loads about 2k tokens when it runs, and up to ~3.9k if it reads all its reference files. Until then it costs about 90 tokens; SKILL.md has 195 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 noted patterns worth knowing about, such as sudo or a known installer.
echo "Store tokens in .env files (which should be in .gitignore)"- name: Check .env files not committedAutomated 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 jeremylongshore/tons-of-skills-marketplace at commit cfae287, republished under its MIT licence (© jeremylongshore). 195 words, ~2,017 tokens.
.claude/skills/figma-policy-guardrails/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.Automated guardrails for Figma API integrations: prevent token leaks, enforce scope minimization, validate webhook configurations, and catch common anti-patterns in CI.
# .pre-commit-config.yaml -- catch Figma tokens before commit
repos:
- repo: local
hooks:
- id: no-figma-tokens
name: Check for Figma PAT leaks
entry: bash -c '
if git diff --cached --diff-filter=ACM -z -- . |
xargs -0 grep -lP "figd_[a-zA-Z0-9_-]{20,}" 2>/dev/null; then
echo "ERROR: Figma PAT found in staged files"
echo "Store tokens in .env files (which should be in .gitignore)"
exit 1
fi
'
language: system
pass_filenames: false# GitHub Actions secret scanning
# .github/workflows/figma-security.yml
name: Figma Security Check
on: [push, pull_request]
jobs:
security:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Scan for Figma tokens
run: |
if grep -rP "figd_[a-zA-Z0-9_-]{20,}" \
--include="*.ts" --include="*.js" --include="*.json" \
--exclude-dir=node_modules .; then
echo "::error::Figma PAT found in source code"
exit 1
fi
- name: Check .env files not committed
run: |
if git ls-files --cached | grep -E '^\.(env|env\.local|env\.production)$'; then
echo "::error::.env file committed to repository"
exit 1
fi// eslint-rules/no-figma-token-literal.js
module.exports = {
meta: {
type: 'problem',
docs: { description: 'Disallow hardcoded Figma PATs' },
},
create(context) {
return {
Literal(node) {
if (typeof node.value === 'string' && /^figd_[a-zA-Z0-9_-]{20,}/.test(node.value)) {
context.report({
node,
message: 'Hardcoded Figma PAT detected. Use process.env.FIGMA_PAT instead.',
});
}
},
TemplateLiteral(node) {
for (const quasi of node.quasis) {
if (/figd_[a-zA-Z0-9_-]{20,}/.test(quasi.value.raw)) {
context.report({
node,
message: 'Hardcoded Figma PAT in template literal.',
});
}
}
},
};
},
};// Runtime guardrails for Figma API usage
// Policy 1: No full-file fetches without justification
function validateFigmaRequest(path: string) {
// Block unoptimized full file fetches
if (path.match(/\/v1\/files\/[^/]+$/) && !path.includes('depth=')) {
console.warn(
'[figma-policy] Full file fetch without depth parameter. ' +
'Use ?depth=1 or /nodes endpoint for better performance.'
);
}
// Block deprecated scope indicator
if (path.includes('files:read')) {
throw new Error(
'[figma-policy] files:read scope is deprecated. ' +
'Use file_content:read instead.'
);
}
}
// Policy 2: Enforce timeout on all Figma calls
function validateTimeout(options: RequestInit) {
if (!options.signal) {
console.warn(
'[figma-policy] Figma request without AbortSignal. ' +
'Use AbortSignal.timeout() to prevent hung requests.'
);
}
}
// Policy 3: Rate limit safety margin
const MAX_REQUESTS_PER_MINUTE = 25; // Conservative limit
let requestsThisMinute = 0;
let minuteStart = Date.now();
function enforceRatePolicy() {
if (Date.now() - minuteStart > 60_000) {
requestsThisMinute = 0;
minuteStart = Date.now();
}
requestsThisMinute++;
if (requestsThisMinute > MAX_REQUESTS_PER_MINUTE) {
throw new Error(
`[figma-policy] Rate limit safety: ${requestsThisMinute} requests/min ` +
`exceeds policy limit of ${MAX_REQUESTS_PER_MINUTE}`
);
}
}// Validate Figma config at startup, fail fast if misconfigured
function validateFigmaConfig() {
const errors: string[] = [];
// Token format
const pat = process.env.FIGMA_PAT;
if (!pat) {
errors.push('FIGMA_PAT is not set');
} else if (!pat.startsWith('figd_')) {
errors.push('FIGMA_PAT does not have expected figd_ prefix');
}
// File key format
const fileKey = process.env.FIGMA_FILE_KEY;
if (!fileKey) {
errors.push('FIGMA_FILE_KEY is not set');
} else if (fileKey.length < 10) {
errors.push('FIGMA_FILE_KEY seems too short');
}
// Webhook passcode (if webhooks are configured)
if (process.env.FIGMA_WEBHOOK_ENABLED === 'true') {
if (!process.env.FIGMA_WEBHOOK_PASSCODE) {
errors.push('FIGMA_WEBHOOK_PASSCODE required when webhooks are enabled');
} else if (process.env.FIGMA_WEBHOOK_PASSCODE.length < 16) {
errors.push('FIGMA_WEBHOOK_PASSCODE should be at least 16 characters');
}
}
if (errors.length > 0) {
console.error('[figma-policy] Configuration errors:');
errors.forEach(e => console.error(` - ${e}`));
throw new Error(`Figma configuration invalid: ${errors.length} errors`);
}
console.log('[figma-policy] Configuration validated');
}
// Call at startup
validateFigmaConfig();// Log all Figma API operations for compliance
interface FigmaAuditEntry {
timestamp: string;
action: string;
endpoint: string;
fileKey?: string;
status: number;
userId?: string;
}
function auditFigmaCall(entry: Omit<FigmaAuditEntry, 'timestamp'>) {
const log: FigmaAuditEntry = {
...entry,
timestamp: new Date().toISOString(),
};
// Structured log for aggregation
console.log(JSON.stringify({ type: 'figma_audit', ...log }));
}| Issue | Cause | Solution |
|---|---|---|
| False positive on token scan | Test fixture contains figd_ | Exclude test fixtures directory |
| Policy blocks legitimate request | Too restrictive | Add exception list for specific paths |
| Startup validation fails | Missing env vars | Check deployment config |
| Audit log noise | Too many entries | Filter to write operations only |
Catch a hardcoded Figma PAT before it reaches a commit (Step 1 pre-commit hook):
echo 'const PAT = "figd_AbCdEf123456789";' > leak.ts
git add leak.ts && git commit -m "test"
# pre-commit: BLOCKED — figd_ token detected in leak.tsLint a violation of the API usage policy (Step 2 ESLint rule flags full-file fetches):
src/sync.ts
14:3 error Figma file fetch without depth parameter — use ?depth=1
or /nodes?ids=... (figma/no-unbounded-file-fetch)Policy rule catalog and the audit-log event shape: references/api-usage-policies.md and references/audit-logging.md.
For architecture blueprints, see figma-architecture-variants.
© jeremylongshore, MIT. 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 6 other files (references) in skills/.curated/figma-policy-guardrails of jeremylongshore/tons-of-skills-marketplace.
Open the folder on GitHubat commit cfae287
Figma Policy Guardrails 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 |
|---|---|---|---|---|---|---|
| Figma Policy Guardrails this skilljeremylongshore/tons-of-skills-marketplace | 2.8k | — | ~2k | Automated safety check: Notes | MIT | |
| LobeHub Alint Rule Set Maintenancelobehub/lobehub | 83k | — | ~1.9k | Automated safety check: Pass | Custom licence | |
| Existing Repoalinaqi/maggy | 707 | — | ~4k | Automated safety check: Notes | MIT | |
| Code Qualityredis/RedisInsight | 8.9k | — | ~1.2k | Automated safety check: Pass | Custom licence | |
| Obsidian Plugin Development Guidelinesgapmiss/obsidian-plugin-skill | 191 | — | ~4.5k | Automated safety check: Pass | MIT | |
| Cb Code QualityBlkLeg/CircuitBreaker | 201 | — | ~1.9k | Automated safety check: Pass | MIT |
lobehub/lobehub
Maintains LobeHub's model-backed alint rule set: writing rules, removing false positives against real code, deciding warn versus error and tracking token cost.
alinaqi/maggy
Analyze existing repositories, maintain structure, setup guardrails and best practices
redis/RedisInsight
Code-quality standards for RedisInsight: TypeScript strictness, naming conventions (camelCase, PascalCase, UPPERSNAKECASE), linting rules, no any without reason, no !important in styles, and…
gapmiss/obsidian-plugin-skill
Rules and references for building Obsidian plugins: ESLint rules, TypeScript practices, memory cleanup, API choices, UI standards and the community submission process.
BlkLeg/CircuitBreaker
Circuit Breaker code conventions and the quality gates that actually block a push — ruff, mypy, eslint, the pytest coverage ratchet, and the make verify tiers.
Sidiora-Labs/centra-llm-agents
Code quality standards and best practices. An agent skill from Sidiora-Labs/centra-llm-agents.
jeremylongshore/tons-of-skills-marketplace
Execute this skill enables AI assistant to conduct a security-focused code review using the security-agent plugin.
jeremylongshore/tons-of-skills-marketplace
Build this skill automates the adaptation of pre-trained machine learning models using transfer learning techniques.
jeremylongshore/tons-of-skills-marketplace
Execute proactive auto-loading: automatically detects and loads agents.md files.
jeremylongshore/tons-of-skills-marketplace
Aggregate and centralize performance metrics from applications, systems, databases, caches, and services.
jeremylongshore/tons-of-skills-marketplace
Execute this skill enables AI assistant to analyze capacity requirements and plan for future growth.
jeremylongshore/tons-of-skills-marketplace
Process use when you need to work with database indexing. An agent skill from jeremylongshore/tons-of-skills-marketplace.
Enforce security policies and coding standards for Figma API integrations. Figma Policy Guardrails is an agent skill from jeremylongshore/tons-of-skills-marketplace. Enforce security policies and coding standards for Figma API integrations.
Figma Policy Guardrails fits situations like: setting up linting rules for Figma tokens; preventing accidental credential leaks; enforcing API usage best practices; with phrases like figma policy.
Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill figma-policy-guardrails -a claude-code`. Or copy the skill folder (skills/.curated/figma-policy-guardrails in jeremylongshore/tons-of-skills-marketplace) into .claude/skills/figma-policy-guardrails in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill figma-policy-guardrails -a codex`. Or copy the skill folder (skills/.curated/figma-policy-guardrails in jeremylongshore/tons-of-skills-marketplace) into .agents/skills/figma-policy-guardrails 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 jeremylongshore/tons-of-skills-marketplace --skill figma-policy-guardrails -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/figma-policy-guardrails, .gemini/skills/figma-policy-guardrails, .github/skills/figma-policy-guardrails and .opencode/skills/figma-policy-guardrails in your project.
Going by SKILL.md and its folder, Figma Policy Guardrails needs the command-line tools its instructions call (git) and credentials named FIGMA_FILE_KEY. Our summary lists: A credential in FIGMA_FILE_KEY. Its frontmatter pre-approves these tools: Read, Write, Edit, Bash(npx:*). Compatibility (from SKILL.md): Designed for Claude Code.
SKILL.md names 3 domains. As links in the text: developers.figma.com, pre-commit.com and eslint.org. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Figma Policy Guardrails is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 8.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.9k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Figma Policy Guardrails: LobeHub Alint Rule Set Maintenance (lobehub/lobehub, 83k stars), Existing Repo (alinaqi/maggy, 707 stars), Code Quality (redis/RedisInsight, 8.9k stars) and Obsidian Plugin Development Guidelines (gapmiss/obsidian-plugin-skill, 191 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jeremylongshore (a GitHub user) maintains it in jeremylongshore/tons-of-skills-marketplace, which has 2,827 GitHub stars. The repository holds 3,342 skills in this directory. The repository was last updated on October 10, 2026.
Source: jeremylongshore/tons-of-skills-marketplace on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.