Skip to content
Back to skills

Check Code Hygiene

ASecurity

Check code for standardization, readability, maintenance complexity, and defensive coding practices

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 9, 2026
testinggoswiftbash

Works with

  • cli

Security analysis

A100/100

Scanned September 9, 2026

npx -y skills add brianwestphal/apple-fm --skill check-code-hygiene --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Check Code Hygiene?

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

Security grade badge for Check Code Hygiene
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/brianwestphal-check-code-hygiene/badge)](https://www.skillsdirectory.com/skills/brianwestphal-check-code-hygiene)

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: check-code-hygiene
description: Check code for standardization, readability, maintenance complexity, and defensive coding practices
allowed-tools: Read, Grep, Glob, Bash, Agent
---

Analyze the apple-fm codebase for code hygiene issues. Generate a report on
standardization, readability, maintenance complexity, and defensive coding.

Scope: `src/`, `apple-fm-helper/main.swift`, and (where relevant) `tests/`.

## Analysis Areas

### 1. Standardization
- **File naming**: `src/` is lowercase/camelCase matching the primary concept
  (`cliArgs.ts`, `protocol.ts`, `session.ts`). Flag a name that matches neither.
- **Identifier casing**: camelCase values, PascalCase types, SCREAMING_SNAKE
  constants. Flag inconsistencies.
- **Import style**: all relative imports use `.js`; `import type` for type-only
  imports (eslint enforces order — if lint passes, order is fine). The `.js`
  check is your responsibility.
- **Error messages**: throws should be descriptive and actionable (e.g.
  `--temp expects a number, got "abc"`). Flag terse `throw new Error('failed')`.
- **Protocol parity**: the event names / error codes in `src/protocol.ts`,
  `apple-fm-helper/main.swift`, `tests/fixtures/stub-helper.js`, and
  `docs/4-protocol.md` must all agree. Flag any divergence.

### 2. Readability
- **File length**: flag any `src/*.ts` over ~200 LOC.
- **Function length / nesting**: flag functions over ~50 lines or nesting deeper
  than 3.
- **Magic numbers**: defaults like the compaction threshold, keep-recent count,
  timeout, and chars-per-token live as named constants — flag any new inline
  literal that should be one.
- **Comments**: house style is *why*, not *what*. Flag both noise comments and
  missing rationale on non-obvious code (e.g. the cumulative-partial diffing in
  the Swift streaming path).

### 3. Maintenance Complexity
- **Layering**: only `apple-fm-helper/main.swift` may touch `FoundationModels`;
  only `helper.ts` spawns the process; pure logic stays in `protocol.ts` /
  `session.ts` / `cliArgs.ts`. Flag any layer violation (e.g. `session.ts`
  spawning directly instead of going through an injected `GenerateFn`).
- **Dependencies**: `package.json` `dependencies` stays empty. Flag additions.
- **Duplicate patterns**: spot-check with grep for repeated spawn/JSON idioms.

### 4. Defensive Coding
- **Boundary validation**: `parseArgs` rejects unknown commands/flags and bad
  numbers; `parseEvent` throws on malformed lines; `helper.ts` bounds the
  subprocess with a timeout and captures stderr. Verify these still hold.
- **`any` / non-null**: grep `src/` for `: any`, `as any`, `<any>`, and `!`
  non-null assertions (tests get a pass). House style is `unknown` + narrowing.
- **Subprocess safety**: stdin EPIPE swallowed; timeout kills the child; nonzero
  exit surfaces stderr. Flag any regression.
- **Swift helper**: every failure path emits an `error` event (not a bare crash)
  and exits nonzero; availability is checked before generation.

## Report Format

For each finding: **File** (path + lines), **Category**
(standardization | readability | maintenance | defensive), **Severity**
(high | medium | low), **Description**, **Suggestion**.

End with a prioritized top-N (apple-fm is small — expect 0–5 in a healthy state).
Suggest Hot Sheet tickets (`hs-task` for cleanups, `hs-bug` for defects) for
non-trivial findings.

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…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.