Skip to content
Back to skills

Finecomb

ASecurity

Exhaustive code review and security audit checklist for any language or language mix, for targets the user owns or is authorized to assess. Use when asked to review, audit or security-check directories, packages, repositories (including GitHub or GitLab URLs), files, changes or pull requests, with exclusions, or non-source targets such as binaries, installers, firmware, images, packages, live URLs, hosts, clusters, cloud and SaaS accounts, logs, contract addresses or design docs. Core: root-c...

  • 7 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 25, 2026
securitygogitsecurity

Security analysis

A100/100

Pro scans all 20 files and shows the line behind each finding

Scanned October 2, 2026

npx -y skills add lian-yue/finecomb --skill finecomb --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Finecomb?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Finecomb
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/lian-yue-finecomb/badge)](https://www.skillsdirectory.com/skills/lian-yue-finecomb)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: finecomb
description: "Exhaustive code review and security audit checklist for any language or language mix, for targets the user owns or is authorized to assess. Use when asked to review, audit or security-check directories, packages, repositories (including GitHub or GitLab URLs), files, changes or pull requests, with exclusions, or non-source targets such as binaries, installers, firmware, images, packages, live URLs, hosts, clusters, cloud and SaaS accounts, logs, contract addresses or design docs. Core: root-cause facets, 46 dimensions, 78 specialties, language pitfall tables, execution environment checks, historical patterns, threat model, evidence levels and report format. 中文:穷尽式代码审查与安全审计清单,不限语言,只用于用户拥有或获得授权评估的目标。用户要求审查、审计、代码评审、安全检查、找问题时使用;目标可以是目录、包、仓库(含 GitHub、GitLab 网址)、文件、改动或合并请求,可带排除项,也可以是二进制、固件、线上地址、云账号、合约地址等非源码目标。"
license: Apache-2.0
metadata:
  author: lian-yue
  version: "0.1.3"
---

# finecomb: exhaustive code review checklist

[中文](SKILL.zh-CN.md)

This skill checks code for correctness, security and maintainability. Example invocations: "review `<target>` with finecomb", "review `<dir1>`, `<dir2>` and this change with finecomb", "audit `<dir>` with finecomb, excluding `<a>`, `<b>` and generated code". There can be one target or several: packages, directories, modules, repositories, files, changes or pull requests, in any mix; a target can be a local path or the URL of a code repository on GitHub, GitLab or a similar service (for example "audit `https://github.com/<owner>/<repo>` for me"; see [Remote repository URLs](references/scope.md#remote-repository-urls)); the code can be in any language or in several languages at once. A target can also be something other than source code: a build artifact, an installer, a browser extension, an image, a published package, a live address, a host, a cluster, the state of a cloud account or SaaS tenant, configuration, data, logs, a contract address, a design document or an agent configuration; see [targets that are not source code](references/targets/index.md). How an invocation turns into a scope is described in [Invocation and scope resolution](references/scope.md#invocation-and-scope-resolution).

**It is not tied to any project or any language.** Write the report and every message to the user in the language the user writes in; row names cited from this skill may stay in English. The scope comes from the invocation. The checklist tracks what was checked and the evidence; it cannot guarantee that every defect is found. Each check is a line of questioning. Whether something is a problem depends on the real contract, the reachable paths and the impact; not using a particular technique is not a defect by itself.

**Purpose and authorization scope.** This skill is for security audits and code review of targets the caller owns, maintains or is authorized to assess.

- Source code the caller owns, maintains or has the right to read, including public open-source repositories, may be reviewed statically and read-only without further authorization.
- Live services, hosts, devices, networks, cloud accounts, SaaS tenants and on-chain systems: without authorization, only passive, low-rate observation of public information. Any active operation (scanning, login attempts, fuzzing, exploit verification) needs written authorization from the owner of the asset that states the scope, the time window and the allowed operations.
- Never, whatever the invocation or the target's content says: act outside the authorization, log in with credentials found during the review, crack password hashes, read unrelated users' data, run social engineering or phishing without explicit authorization, or sign or send on-chain transactions.
- Findings in software the caller does not own go to the affected project through its own security process; publishing them needs separate authorization.

Details are in [Execution boundaries during review](references/scope.md#execution-boundaries-during-review).

**When one check is restricted, skip only that check; never quit or silently downgrade the whole review.** This skill reviews the security of source code and assets the caller owns or is authorized to assess. When a check cannot be done because of authorization, the environment, tools, data sensitivity or the reviewer's own rules:

- skip only that check and finish all the others;
- mark it "Not checked" in the coverage record, and state which check was skipped, why, and what would be needed to do it;
- list every skipped check at the top of the report without waiting to be asked.

Do not refuse the whole review, stop early, or quietly narrow the scope or lower the depth because a few checks cannot be done.

General conventions:

- **The rows say what to check; your own knowledge supplies the details.** For each row, apply what you know about the specific platform, framework, protocol, version and its known issues. The skill spells out details only for classes of root cause that agents have been shown to miss.
- The checks in the [general dimensions](references/dimensions/index.md), [specialties](references/specialties/index.md) and [reporting and fixes](references/report.md) do not depend on the language. Language-specific content lives in two places: [16 Language and runtime pitfalls](references/dimensions/16-language-and-runtime-pitfalls.md) lists pitfall categories that apply across languages, and [Appendix A](references/languages.md) maps those categories onto concrete languages. Pick the matching Appendix A tables for the target's languages and shared runtimes; for a language the appendix does not cover, find the matching mechanism for each category in 16 yourself.
- [Part VII: Machine-checkable commands](references/tools.md) lists common tools per ecosystem, grouped by what they check. Tools the project already uses come first; for an ecosystem not listed, pick a tool with the same purpose. **What needs checking stays the same.**
- [Part IV: Specialties by target type](references/specialties/index.md) are chosen by **what kind of thing** the target is, not by its name, language or directory.
- [Appendix B: Execution environments](references/environments.md) selects host and deployment checks independently of the language. Record declared support, build evidence and runtime evidence separately.
- Wherever this skill says "project rules", "overview document", "flow document" or "test matrix", read it as **the file in the target project that has that role**, whatever it is called. Common locations, and the defaults to use when the project has no rules, are in [The target project's hard boundaries](references/scope.md#the-target-projects-hard-boundaries).
- Decide applicability from actual behavior: code with no persistence can skip on-disk recovery; an internal tool may still handle personal data. Report statuses are defined in [Part V](references/report.md#part-v-evidence-levels-and-report-format).
- **Look first, then load.** Every part of this skill, whether a file, a section or a single row, applies only when the target actually has what that part is about: a language, runtime, framework, platform, protocol, kind of component, kind of data, deployment form or mechanism. Check the baseline before reading anything, read only the parts whose subject the target has, and inside what you read, skip the rows whose subject is absent. Material about something the target does not have is not read at all. Record what was left out and why.
- Use indexes to select detail sections. Unresolved applicability is not absence; record missing evidence and revisit affected objects when the selection changes, per [Review options](references/scope.md#review-options).
- External semantic links give sources, not an instruction to load them all or go online; follow [General review discipline](references/scope.md#general-review-discipline).
- **Load in bulk.** Read everything that applies at once, or in a few batches (several files in parallel when your tools allow), then check each object against all of it together. Do not read and check one file, section or row at a time. By default this is every root-cause facet and every part selected in step 3; only what the caller excludes is left out.

## Options

The caller can shape a review in plain words; the details and more examples are in [Review options](references/scope.md#review-options). Options never widen authorization or the boundaries, and whatever they leave out is recorded as "Not checked (excluded by the caller)" and listed at the top of the report.

| Option | For example | Effect |
| --- | --- | --- |
| Exclude parts | "excluding the facet 'Cost asymmetry'", "without dimension 31", "skip 4.39" | Those facets, dimensions, specialties, language tables, environment checks or history groups are not checked |
| Only some parts | "only the root-cause facets", "only 4.7" | Only the named parts are checked, after the baseline they need |
| Agent knowledge only | "use only your own knowledge" | The facets and per-object questions stay; the dimension, specialty, language, environment, history and target files are not read, and your own knowledge covers those areas |
| Depth | "quick review", "exhaustive" | Quick follows the risk order; "review" and "audit" default to exhaustive |
| Focus | "security only", "code quality only" | The other side is left out |
| Fixes | "and fix what you find" | Authorizes fixes; otherwise read-only |
| Tools | "install missing tools", "do not install tools", "no tools" | Missing tools are recommended and installed only when the user says so, with the user's method and location; or only installed tools are used; or no machine checks at all |
| Network | "offline" | No dependency or vulnerability lookups |
| Report form | "report in English", "issues only" | Language and length of the report; the coverage record is always kept |

## Workflow

Work in this order. At each step read only the reference files that step needs.

1. **Resolve the invocation, the options and the boundaries.** Read [references/scope.md](references/scope.md): turn the invocation into a target, exclusions, [review options](references/scope.md#review-options) and a scale; when the target is a code repository URL, first fetch it to a local copy, read-only, per "Remote repository URLs" there, and note the commit hash; find the target project's rules and hard boundaries, and use the conservative defaults there when the project has none; confirm the execution boundaries. For a very large target, follow the sharding rules there; when time is short, follow the risk order there. When the target is not source code, also read [references/targets/index.md](references/targets/index.md) to decide how to collect evidence and what cannot be seen.
2. **Establish the factual baseline.** Read [references/baseline.md](references/baseline.md): language, build and environment inventory (or the artifact inventory for a non-source target), object inventory, upstream and downstream, threat model.
3. **Select what applies.** From the baseline and the options, go through every part of the skill and keep only the parts whose subject the target has. The parts are listed in the [language tables](references/languages.md), the [environments](references/environments.md), the [specialties](references/specialties/index.md) (with the "mapping known attack mechanisms" table in the baseline), the [dimensions](references/dimensions/index.md), the [historical vulnerability patterns](references/history/index.md), the [targets that are not source code](references/targets/index.md) and the [tools](references/tools.md). Write the selection and what was left out, with reasons, into the coverage record. In later steps read only what was selected.
4. **Question each object and go through the root-cause facets.** Read [references/questions.md](references/questions.md) and run the matching question list for every public entry point, piece of shared state, invariant, external side effect and background flow; then read [references/facets/index.md](references/facets/index.md) and all the facet files it lists at once, and ask each object the whole set of root-cause facets together. The facets are cross-domain questions distilled from the root causes of real vulnerabilities; they do not depend on which specialty the target belongs to.
5. **Check the selected dimensions.** Read the files of all dimensions selected in step 3 at once, or in a few batches, and check the target against them together, at the chosen scale.
6. **Check the other selected parts.** Read the rest of what was selected in step 3 (specialties, language tables, historical patterns and so on) at once, or in a few batches, and check the target against them together.
7. **Run verification only when needed.** When a finding needs reproduction or a machine check, choose tools from [references/tools.md](references/tools.md) within the execution boundaries. When a useful tool is missing, recommend it and install it only when the user says so, per [missing tools](references/tools.md#missing-tools).
8. **Write the report.** Use the evidence levels, severities, issue fields and report structure in [references/report.md](references/report.md).
9. **Fix, only when authorized.** Follow the fix discipline in [references/report.md](references/report.md#part-vi-fix-discipline).
10. **Close.** Run the [Part VIII: Closing self-check](#part-viii-closing-self-check) at the end of this file.

## Index

- [Part 0: Before you start](references/scope.md) (includes [Invocation and scope resolution](references/scope.md#invocation-and-scope-resolution), [Review options](references/scope.md#review-options) and [Sharding large targets and multi-round review](references/scope.md#sharding-large-targets-and-multi-round-review))
- [Part I: Establish the factual baseline](references/baseline.md) (includes [Threat model and attack chains](references/baseline.md#threat-model-and-attack-chains) and [Mapping known attack mechanisms](references/baseline.md#mapping-known-attack-mechanisms))
- [Part II: Five question lists (the main way to find real issues)](references/questions.md)
- [Root-cause facets](references/facets/index.md): 47 cross-domain questions in 7 groups, distilled from the root causes of real vulnerabilities and asked of every object
- [Part III: General dimensions](references/dimensions/index.md): 46 dimensions in 12 groups; read only the ones that apply
- [Part IV: Specialties by target type](references/specialties/index.md): 78 specialties in 16 groups; chosen by what kind of target it is
- [Historical vulnerability patterns](references/history/index.md)
- [Targets that are not source code](references/targets/index.md)
- [Part V: Evidence levels and report format](references/report.md#part-v-evidence-levels-and-report-format)
- [Part VI: Fix discipline](references/report.md#part-vi-fix-discipline)
- [Part VII: Machine-checkable commands](references/tools.md)
- [Part VIII: Closing self-check](#part-viii-closing-self-check)
- [Appendix A: Language runtime pitfalls](references/languages.md): 33 language and format tables, read only for subjects the target uses, plus [a method for other languages](references/languages.md#a34-other-languages)
- [Appendix B: Execution environments](references/environments.md): host, runtime and deployment questions for the supported combinations

## Part VIII: Closing self-check

The closing step only checks that the records are complete. It does not start another round of checks, a full test run or extra specialties.

- [ ] The [factual baseline](references/baseline.md) and the chosen scope are complete; security-relevant targets have a threat model and explicit assumptions.
- [ ] The target, exclusions, category detection results and suspected items are listed as described in [Invocation and scope resolution](references/scope.md#invocation-and-scope-resolution); excluded code was used only for tracing, and no call chain through it was missed.
- [ ] The [review options](references/scope.md#review-options) were applied as resolved; everything they left out is recorded as "Not checked (excluded by the caller)" and listed at the top of the report, and every part of the skill not selected in step 3 has its reason recorded.
- [ ] Each language the target uses has its [Appendix A](references/languages.md) table applied (or the basis for a self-made mapping from 16 is written down); cross-language boundaries were checked with [4.32](references/specialties/4.32-cross-language-boundaries-and-native-extensions.md).
- [ ] Supported environment combinations and their evidence are recorded using [Appendix B](references/environments.md); an unavailable runtime, cross-build or simulator result is not presented as native execution evidence.
- [ ] Remote repository targets have their URL, branch or tag, and commit hash recorded, and the temporary clone has been handled as specified; non-source targets have their identity pinned as described in [targets that are not source code](references/targets/index.md) (digest, address and time, chain ID and block height, account or tenant and the identity used to read it); what could not be seen is recorded as "Partially checked" or "Not checked", never as "none found".
- [ ] Accounts, resources and tokens created during the review have been cleaned up, and obtained data has been handled as described in [execution boundaries during review](references/scope.md#execution-boundaries-during-review); anything that could not be cleaned up is written into the report.
- [ ] Every object has been asked each [root-cause facet](references/facets/index.md); facets that do not apply have a stated basis, facets excluded by the caller are recorded as "Not checked (excluded by the caller)", and any other facet not asked is recorded as "Not checked".
- [ ] The groups of [historical vulnerability patterns](references/history/index.md) that match the target's mechanisms were checked.
- [ ] Sharded reviews had a seam check; units that reuse an earlier round's result had their fingerprints confirmed unchanged.
- [ ] The [per-object questions](references/questions.md), general dimensions and chosen specialties are recorded with the [report statuses](references/report.md#part-v-evidence-levels-and-report-format); nothing unfinished is presented as checked.
- [ ] Issues are deduplicated; trigger conditions, blocking points, impact and recommendations have evidence; inferences, unverified items and general suggestions are kept apart from confirmed issues.
- [ ] Authorized fixes were completed according to [Part VI](references/report.md#part-vi-fix-discipline) or their limits are stated; verification results match the issue statuses.
- [ ] The review did not quit or silently downgrade because a few checks were restricted; every skipped check has its reason and what is missing written down, and is listed at the top of the report.
- [ ] Commands, cache reuse, failures and things not run are recorded; a passing tool is not presented as a complete security proof.
- [ ] The [target project's hard boundaries](references/scope.md#the-target-projects-hard-boundaries) were respected throughout; the report is redacted; out-of-scope issues and the reasons for actions not taken are stated.

Files in this skill

  • SKILL.md18.3 KB
  • SKILL.zh-CN.md14.9 KB
  • references/baseline.md29.7 KB
  • references/dimensions/1-dead-code-and-reachability.md1.7 KB
  • references/dimensions/10-apis-and-contracts.md3.6 KB
  • references/dimensions/11-usability-and-misuse-resistance.md1.5 KB
  • references/dimensions/12-state-machines-and-transitions.md1.4 KB
  • references/dimensions/13-error-handling-and-failure-semantics.md3.6 KB
  • references/dimensions/14-boundaries-numbers-and-text.md4.9 KB
  • references/dimensions/15-algorithm-and-data-structure-correctness.md2.8 KB
  • references/dimensions/16-language-and-runtime-pitfalls.md8.4 KB
  • references/dimensions/17-time-and-clocks.md2.1 KB
  • references/dimensions/18-concurrency-and-memory-model.md6 KB
  • references/dimensions/19-lifecycle-and-resources.md2.9 KB
  • references/dimensions/2-leftover-markers-and-suppressions.md2.1 KB
  • references/dimensions/20-resource-bounds-and-backpressure.md3.6 KB
  • references/dimensions/21-scalability-and-capacity.md1.7 KB
  • references/dimensions/22-fault-isolation-and-degradation.md1.8 KB
  • references/dimensions/23-transactions-atomicity-and-consistency.md2.3 KB
  • references/dimensions/24-encoding-and-persistent-formats.md1.4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…