AGENT SKILL

foxit-pr-check

Review a branch or pull request prepared for a Fox-IT open-source repository (fox-it/dissect.*, dissect.target, dissect.cstruct, flow.record, acquire, ...) against Fox-IT's contribution rules before it is pushed or opened: the Developing, Style guide and Tooling pages (docs.dissect.tools/en/latest/contributing/), the repository's own tox.ini, pyproject.toml (Ruff) and pull request template. USE FOR: commit message format (50-character imperative subject, 72-column body), fix/ and feature/ branches, one change per branch, the PR description and its closing keyword, running the repo's tox lint and tests, missing unit tests, type hints, names, cstruct definitions, dependency reasons, and whether the CLA (DissectBot) is accepted. DO NOT USE FOR: reviewing what the code does (correctness, design); repositories outside fox-it; accepting the CLA (only the author may).

License 许可
MIT
最近更新
2026-10-25
Stars
★ 0
Forks
0

01 前言 Front Matter

name
foxit-pr-check
metadata
{ "author": "local", "sources": "docs.dissect.tools contributing pages (Developing, Style guide, Tooling) as read 2026-10-24; each target repository's tox.ini, pyproject.toml and .github/pull_request_template.md, read at check time", "version": "1.0.0" }
description
Review a branch or pull request prepared for a Fox-IT open-source repository (fox-it/dissect.*, dissect.target, dissect.cstruct, flow.record, acquire, ...) against Fox-IT's contribution rules before it is pushed or opened: the Developing, Style guide and Tooling pages (docs.dissect.tools/en/latest/contributing/), the repository's own tox.ini, pyproject.toml (Ruff) and pull request template. USE FOR: commit message format (50-character imperative subject, 72-column body), fix/ and feature/ branches, one change per branch, the PR description and its closing keyword, running the repo's tox lint and tests, missing unit tests, type hints, names, cstruct definitions, dependency reasons, and whether the CLA (DissectBot) is accepted. DO NOT USE FOR: reviewing what the code does (correctness, design); repositories outside fox-it; accepting the CLA (only the author may).

02 资源文件 5

03 SKILL.md 正文

Fox-IT pull request check

Fox-IT's projects share one contribution process (Dissect's documentation). This skill checks that a contribution conforms to it, so CI and the reviewers see a pull request that follows the rules. It does not judge whether the change is right; review that separately.

Sources, in order of authority (details and every rule: references/guides.md):

  1. The target repository's tox.ini and pyproject.toml: what CI runs. They use Ruff (lint and format, line length 120, Google docstrings) and vermin (the minimum Python). The guide pages still name Black and Flake8.
  2. Its .github/pull_request_template.md (commit style, description, closing keywords).
  3. The Developing, Style guide and Tooling pages.

Run the checker

scripts/foxit_pr_check.py (standard library; needs git, and gh for --pr and --check-cla) checks a clone on the branch to submit, with Fox-IT's repository as a remote (usually upstream):

python3 ~/.claude/skills/foxit-pr-check/scripts/foxit_pr_check.py PATH/TO/CLONE \
    --pr-body pr.md --run-tox            # before opening: the description as a file, and the repo's own tox
python3 ~/.claude/skills/foxit-pr-check/scripts/foxit_pr_check.py PATH/TO/CLONE --pr 42 --check-cla   # once opened
  • git fetch upstream first: "based on main" is checked against the last fetch.
  • --run-tox runs the repo's tox -e lint and tox -e py3 (tox 4.27 or later provisions Ruff, vermin and pytest itself; --tox PATH for a tox outside PATH). CI also runs pypy3, and a failing CI gets no manual review.
  • Exit status 0 with no FAIL, 1 with any, 2 when the check could not run. --json for the findings as data.
Level Meaning
FAIL Breaks a stated rule (a lower-case or full-stop subject, no blank line after it, no fox-it remote, working on main, tox failing, an AI attribution trailer)
WARN A rule stated loosely ("as much as possible"), or a heuristic: subject over 50, not imperative, body over 72, no fix/ prefix, several commits, no test, names, hints, an inline cstruct, a dependency without a reason, no closing keyword
PASS / INFO Checked and fine; or not checked, with why

Then judge what no tool can

Work through the "Left to judgement" list in references/guides.md: one self-contained change; a description that says what and why and how to test; Google docstrings (summary line, blank line, Args:/Returns:/Raises:, no types); import groups; cstruct naming close to the original; dissect.target's path rule. Confirm each WARN or dismiss it with a reason.

Report

List FAIL first, then WARN, each with its rule ID, the file or commit, and the fix. Say what ran (--run-tox or not, the tox environments, the CLA check) and what did not. Do not push, open the pull request, or comment on it unless the user asks for that step.

The CLA and attribution

  • DissectBot posts Fox-IT's Contribution License Agreement on an account's first pull request. Accepting it is a legal act: tell the author the exact reply (@DissectBot agree, or @DissectBot agree company="..." for work made for an employer), and never post it for them.
  • ai-attribution is this skill's local policy, not Fox-IT's: the CLA has the author represent each contribution as their own creation, so commits and the description carry no Co-Authored-By: Claude, Claude-Session: or "Generated with" lines. Remove them before pushing.

04 同仓库更多 Skills

AtomicGaryBusey
AtomicGaryBusey/AGB-Agent-Skills

wcag22-a11y

暂无简介

★ 0
AtomicGaryBusey
AtomicGaryBusey/AGB-Agent-Skills

wcag22-a11y

Audit web content for WCAG 2.2 conformance (also WCAG 2.1/2.0 Level A/AA) with tool-assisted and manual checks. USE FOR: accessibility (a11y) audits and reviews of web pages, sites, HTML, components (React/JSX/TSX, Vue, Svelte, server templates) and CSS; colour contrast; keyboard access, focus order, focus visible, focus not obscured; target size; screen reader issues in markup (names, roles and states, ARIA); forms, labels and error messages; reflow, zoom and text spacing; accessible authentication, consistent help, redundant entry, dragging; status messages; VPAT/ACR evidence and Section 508 / EN 301 549 mapping at the WCAG level. DO NOT USE FOR: native mobile app platform guidelines beyond WCAG applicability, legal advice, PDF remediation (unless the content is HTML), SEO, performance or security audits, ISO 999 indexes, RFC 3339 timestamps, ASD-STE100 writing.

★ 0
AtomicGaryBusey
AtomicGaryBusey/AGB-Agent-Skills

ste100

Write, rewrite, audit, or answer questions about ASD-STE100 Simplified Technical English (STE, STE100), the controlled language for technical documentation. USE FOR: drafting or rewriting READMEs, guides, manuals, runbooks, install docs, procedures, and help text in STE; technical writing review and STE conformance audits with rule IDs and severities; word questions such as 'Is utilize allowed in ASD-STE100?' or 'is this an approved word?'; approved words, part of speech, technical nouns and technical verbs, a DOCS_TERMS.md term list; sentence length (20/25 words), active voice, imperative steps, WARNING/CAUTION/NOTE safety instructions, punctuation. DO NOT USE FOR: code, code comments, commit messages, chat replies, marketing copy, non-English text, ISO 999 indexes, RFC 3339 timestamps.

★ 0
AtomicGaryBusey
AtomicGaryBusey/AGB-Agent-Skills

rfc3339-ixdtf

暂无简介

★ 0
AtomicGaryBusey
AtomicGaryBusey/AGB-Agent-Skills

rfc3339-ixdtf

Audit code for RFC 3339 (Internet timestamps, the usual 'ISO timestamp format' of APIs and logs) and RFC 9557 (IXDTF: suffixes such as 2026-09-24T12:00:00+02:00[Europe/Paris] and [u-ca=hebrew] tags; Z now means 'local offset unknown'). USE FOR: parsing, validating or emitting these timestamps in any language (Python, JS and Temporal ZonedDateTime, Java, .NET, Go, Rust, Swift); choosing Z or +00:00 when the offset is unknown; leap second 23:59:60 legality; reviewing producers, consumers and schemas (JSON Schema/OpenAPI format date-time, protobuf Timestamp, API contracts); ServiceNow GlideDateTime and Fluent SDK date handling; running conformance vectors against a parser; scanning source for risky date-time APIs (strftime %z, literal 'Z'). DO NOT USE FOR: ISO 8601 durations, week or ordinal dates, intervals; HTTP-date or RFC 5322 email dates; time-zone arithmetic unrelated to serialization.

★ 0
AtomicGaryBusey
AtomicGaryBusey/AGB-Agent-Skills

iso999

Audit indexes and index-producing software for adherence to ISO 999:1996 (content, organization and presentation of indexes). USE FOR: reviewing a back-of-book index or book index; code that generates indexes (collation/filing, locators and page ranges, see/see also resolution, subheading nesting; makeindex/xindy styles, Sphinx genindex, Docusaurus/MkDocs index plugins, custom indexers); linting a generated index (text, Markdown, LaTeX .ind, HTML); reviewing index entries and markup in doc sources (\index{}, .. index::, DITA indexterm). DO NOT USE FOR: general source-code quality, search-engine/database indexes, keyword extraction, tables of contents, or choosing what subjects to index (ISO 5963).

★ 0