finguard

finguard is a skill for Codex from LeeYudok/doksam-skills. It costs 62 tokens per session (1,103 once invoked), scanned A, original, MIT.

A local security checker that scans source code for specific vulnerability patterns and applies severity-based gates before or after code changes. It uses FinGuard’s Semgrep-based rules.

In plain words
What is it for?
Use it to scan a repository, review findings with their file, line, severity, and message, make small safe fixes, and run the check again. It is not a general code review, software-dependency check, dynamic test, or penetration test.
Why use it?
It helps catch configured security findings before changes proceed and separates blocking issues from possible false positives or out-of-scope results. Passing means no configured blocking findings were detected, not that the code is fully secure.

Skill for Codex

Written for Codex: agents/openai.yaml present.

Good fit Use it to scan a repository, review findings with their file, line, severity, and message, make small safe fixes, and run the check again. It is not a general code review, software-dependency check, dynamic test, or penetration test.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/leeyudok/doksam-skills/finguard
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add LeeYudok/doksam-skills --skill finguard
Clone the repo
git clone --depth 1 https://github.com/LeeYudok/doksam-skills

Made for: Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for finguard

README.md
[![agentmods](https://agentmods.dev/badge/skills/leeyudok/doksam-skills/finguard/github.svg)](https://agentmods.dev/skills/leeyudok/doksam-skills/finguard)
Your own site
<a href="https://agentmods.dev/skills/leeyudok/doksam-skills/finguard"><img src="https://agentmods.dev/badge/skills/leeyudok/doksam-skills/finguard/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for finguard

Your own site · 80×15
<a href="https://agentmods.dev/skills/leeyudok/doksam-skills/finguard"><img src="https://agentmods.dev/badge/skills/leeyudok/doksam-skills/finguard.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 62 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,103 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00062 $0.01103
Opus 5 $0.00031 $0.00551
Sonnet 5 $0.00012 $0.00221
Haiku 4.5 $0.00006 $0.00110

Measured 11d ago against content hash abf58373f1a3, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-11, from the pricing page.

Security

Grade A, and why

finguard scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.

The scan reads SKILL.md. This mod also ships 3 executable files (scripts/run_gate.py, tests/test_contract.py, tests/test_run_gate.py), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/finguard/SKILL.md · 74 lines

What it actually says

finguard

FinGuard의 로컬 scan을 코드 변경 워크플로에 연결하는 보안 검토자다. 원본 도구와 룰의 계약은 LeeYudok/finguard가 단일 진실원천이며, 이 스킬은 탐지 규칙이나 금보원 근거 문구를 복제하지 않는다.

경계

FinGuard는 Semgrep 기반 정적 분석으로 rules/mapping/rules.yaml에 포함된 항목만 찾는다. 다음을 결과에 반드시 반영한다.

  • 통과는 "탐지된 차단 대상 없음"이지 "취약점 없음"이 아니다.
  • SCA/CVE, 동적 분석, 모의해킹, 인가·세션 설계 전수 검토를 대체하지 않는다.
  • 파일 간 데이터 흐름은 Semgrep OSS의 한계로 놓칠 수 있다.
  • 개인정보·결제정보는 코드에 하드코딩되거나 룰에 걸리는 패턴만 검사한다. 운영 데이터의 노출 여부를 검증했다고 말하지 않는다.
  • 일반 코드 품질 리뷰는 이 스킬의 범위가 아니다.

입력과 사전 조건

점검 대상 저장소 경로와 차단 심각도를 확정한다. 차단 심각도 기본값은 ERROR이며, 사용자가 조직 정책을 주면 그대로 쓴다. finguard, semgrep, FinGuard의 rules/, mapping/rules.yaml이 실행 가능한 위치에 있어야 한다. 없으면 설치를 추측하지 말고 누락 항목과 필요한 경로를 보고한다.

로컬 finguard scan은 발견 건수가 있어도 exit 0일 수 있다. 자동 게이트에는 반드시 이 스킬의 래퍼를 사용한다.

python3 <스킬경로>/scripts/run_gate.py \
  --dir <저장소> --block-on ERROR

FinGuard 자산이 실행 파일 옆에 없으면 --rules--mapping을 명시한다.

워크플로

  1. git status와 대상 범위를 확인한다. 사용자 변경을 보안 수정이라는 이유로 되돌리거나 범위 밖 코드를 함께 정리하지 않는다.
  2. 게이트 래퍼로 전체 대상 경로를 스캔한다. 변경 라인만 보는 MR 코멘트와 달리 로컬 scan --dir은 저장소 전체 기준선이다.
  3. 각 finding의 파일·줄·심각도·메시지를 실제 코드와 대조해 다음으로 분류한다.
    • 실제 취약점: 가장 작은 안전한 수정으로 제거한다.
    • 오탐 가능: 근거를 기록하고 사용자의 정책 결정을 요청한다.
    • 범위 밖/기존 부채: 숨기지 않고 별도 잔여 위험으로 보고한다.
  4. 수정 후 관련 테스트와 빌드를 먼저 통과시키고 게이트를 다시 실행한다.
  5. 자동 수정·재검증은 최대 3회로 제한한다. 같은 finding이 남으면 규칙을 무력화하거나 광범위한 예외를 추가하지 말고 원인과 필요한 결정을 보고한다.

ignore 또는 block_on: []는 사용자가 승인한 정책 변경일 때만 사용한다. 테스트·예제 파일이라는 이유만으로 탐지를 일괄 제외하지 않는다. 시크릿으로 보이는 값은 출력이나 최종 보고에 원문을 복사하지 않는다.

pre-commit과 AI-SDLC 연계

pre-commit에서는 프로젝트가 쓰는 훅 프레임워크에 위 래퍼를 연결한다. 훅은 ERROR 등 합의한 심각도에서 실패해야 하며, 경고를 성공으로 바꾸는 || true를 붙이지 않는다. 구체적인 훅 예와 전체 파이프라인의 단계별 입출력·중단 조건은 references/ai-sdlc.md를 따른다.

완료 조건

  • 게이트 명령, 차단 심각도, FinGuard 룰·매핑 경로를 재현 가능하게 기록했다.
  • 차단 finding이 0건이거나, 남은 건마다 근거·영향·후속 결정이 명시됐다.
  • 보안 수정 후 관련 테스트와 빌드가 통과했다.
  • 결과에 검사 범위와 FinGuard의 한계를 함께 적었다.
  • 배포·서버 기동은 별도 승인과 기존 배포 절차를 따르며, 스캔 통과만으로 자동 승인하지 않았다.
Files

What ships with it

8 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 11d ago First seen · 74 lines · 62 tokens per session scan A abf58373f1a3

Subscribe to this mod's changes

finguard is a skill published in the GitHub repository LeeYudok/doksam-skills (10 stars, last pushed 19d ago), licensed MIT. It adds 62 tokens to every session and 1,103 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.