Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Audit Functional Suitability

ASecurity

Audit whether the software actually does what it should, completely and correctly. This is the Functional suitability characteristic of the ISO/IEC 25010 software quality model (completeness, correctness, appropriateness). Cross-checks implemented behavior against requirements in .sdlc/ and surfaces stubs, TODOs, skipped tests, and open bug clusters. Use when the user says /audit-functional-suitability, "functional audit", "does it do what it should", "requirements coverage", "completeness ch...

10 stars
0 votes
0 copies
0 views
Added 10/6/2026
toolsgojavabashnodesecurityperformance

Works with

cli

Security Analysis

A100/100

Scanned 10/6/2026

$npx -y skills add tomzx/agents --skill audit-functional-suitability --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Audit Functional Suitability?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Audit Functional Suitability
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tomzx-audit-functional-suitability/badge)](https://www.skillsdirectory.com/skills/tomzx-audit-functional-suitability)

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

Download with Pro
Files
SKILL.md
---
name: audit-functional-suitability
description: Audit whether the software actually does what it should, completely and correctly. This is the Functional suitability characteristic of the ISO/IEC 25010 software quality model (completeness, correctness, appropriateness). Cross-checks implemented behavior against requirements in .sdlc/ and surfaces stubs, TODOs, skipped tests, and open bug clusters. Use when the user says /audit-functional-suitability, "functional audit", "does it do what it should", "requirements coverage", "completeness check", or runs a 25010 sweep via /audit-sdlc. Read-only; produces a findings report.
argument-hint: "[--severity critical|high|medium|low] [--feature <slug>]"
allowed-tools: Bash, Read, Glob, Grep
---

TODAY=!`date +%Y-%m-%d`

# Functional Suitability Audit (ISO/IEC 25010)

Audits the codebase for **functional suitability**: does the software provide the functions needed to meet stated requirements, completely and correctly? It is the bottom-up check that what was supposed to be built is actually built and working.

This is the **Functional suitability** characteristic of the [ISO/IEC 25010](https://en.wikipedia.org/wiki/ISO/IEC_25010) quality model. Distinct from `check-issue-status` (which checks whether a *single issue* is addressed), this audit scans the whole implementation against its requirements corpus and the code's own incompleteness markers (stubs, TODOs, disabled tests).

## Prerequisites

- Working directory is the root of the repository
- `.sdlc/features/*/requirements.md` present (improves completeness scoring; if absent, the audit falls back to code-honesty signals only)
- Read `.sdlc/context/project-overview.md` if present for scope
- `gh` CLI for open bug-issue signals (optional)

## What This Checks

| Sub-characteristic | What it means | Signals scanned |
|---|---|---|
| Functional completeness | All required functions are implemented | requirements with no matching code; `TODO`/`FIXME`/`NotImplemented`/`stub`/`501`/`raise NotImplementedError`; feature flags wired but never enabled |
| Functional correctness | Functions produce correct results | open bug issues; skipped/disabled/`xfail` tests; assertion-free tests; logic that silently no-ops (empty `except`, `return None` on happy paths) |
| Functional appropriateness | Functions are suitable for the intended use | requirements whose implementation exists but diverges from the stated acceptance criteria; over-broad or surprising behavior |

## Steps

### 1. Inventory requirements (if .sdlc exists)

For each `.sdlc/features/*/requirements.md`, extract functional requirements (`FR-N`) and their acceptance criteria. Record each as a completeness target.

```
find .sdlc/features -name requirements.md 2>/dev/null
```

If no `.sdlc/`, record "no requirements corpus" and rely on code-honesty signals (step 2) plus bug issues (step 3).

### 2. Scan code-honesty markers

Find places where the code admits it is incomplete:

```
rg -n "TODO|FIXME|XXX|HACK|NotImplemented|not implemented|raise NotImplemented|501 Not Implemented|stub|placeholder|coming soon" \
  -g '*.{py,ts,js,go,rs,java}' . \
  | rg -v "test|_test|spec|vendor|node_modules|\.venv"
```

Each marker is a completeness finding (the code states it is not done).

### 3. Check requirements coverage

For each functional requirement, search the code for evidence of implementation (keywords from the requirement). Requirements with no evidence are completeness gaps.

```
rg -n "<requirement keyword>" -g '*.py' .
```

### 4. Correctness signals

- Open bug issues (group by area to spot correctness hotspots):
  ```
  gh search issues --repo <repo> --state open --label bug --limit 100 --json number,title,labels
  ```
- Skipped / disabled / expected-fail tests:
  ```
  rg -n "pytest.mark.skip|@skip|@Ignore|xfail|\.skip\(|test\.todo|it.skip|describe.skip" -g '*.{py,ts,js}' .
  ```
- Assertion-free tests (tests with no assert/expect):
  ```
  rg --files-without-match "assert|expect|should" -g 'test_*.py' -g '*_test.*' .
  ```
- Silent no-ops: empty exception handlers and functions that return without acting:
  ```
  rg -n -U -B1 "except[^:]*:\s*\n\s*(pass|continue|\.\.\.)" -g '*.py' .
  ```

### 5. Appropriateness spot-check

For a sample of requirements where code exists, compare behavior to the acceptance criteria. Flag clear divergences (e.g., requirement says "soft delete" but code hard-deletes). This is judgment-based; keep it to a sample and flag for human review.

### 6. Confirm the decisive findings

Pick the critical or high findings that decide the report. Run the one or two you can: write a scratch script or test under `/tmp` that calls the code, run it, and paste the output, reaching `L3 - Executed` (see [`../sdlc/references/evidence.md`](../sdlc/references/evidence.md)). Never write scratch files into the repository; this audit is read-only and leaves no artifacts behind. Label every other finding with its level and pointer: `L1 - Cited` for a `file:line`, or `L2 - Ruled out` for a walked failure path. When a decisive finding cannot be executed, mark it `unproven` and state what runtime evidence it needed and why that was infeasible.

### 7. Report

Classify each finding by severity (below), then print the report in the Output Format. Do not modify any files.

## Severity

| Severity | Criteria |
|---|---|
| Critical | A documented requirement has zero implementation; a correctness bug on a critical path with an open issue |
| High | Completeness gap on a core function; cluster of skipped tests in a critical module |
| Medium | TODO/stub in a non-critical path; isolated skipped test |
| Low | Cosmetic TODO; minor divergence from acceptance criteria |

## Output Format

```
# Functional Suitability Audit — {TODAY}

## Summary
- Requirements corpus: <present (N FRs) | absent>
- Completeness gaps: N critical, N high
- Correctness signals: N bug issues, N skipped tests, N assertion-free tests
- Code-honesty markers: N

## Completeness (requirements with no implementation)
| FR | Feature | Requirement | Evidence found | Severity |
|---|---|---|---|---|

## Code-honesty markers (incomplete by the code's own admission)
| File:line | Marker | Text | Severity | Evidence |
|---|---|---|---|---|

## Correctness
### Open bug clusters
| Area | Bug count | Sample issues | Evidence |
|---|---|---|---|

### Skipped / disabled tests
| File:line | Marker | Severity | Evidence |
|---|---|---|---|

### Appropriateness divergences
| FR | Expected | Actual | Severity | Evidence |
|---|---|---|---|---|
```

## Example Usage

**Scenario 1: 25010 sweep**
```
/audit-sdlc functional-suitability
```
Runs this skill as part of the full quality-model sweep.

**Scenario 2: Single feature**
```
/audit-functional-suitability --feature 42-notification-system
```
Checks requirements coverage only for one feature directory.

**Scenario 3: No .sdlc yet**
```
/audit-functional-suitability
```
Falls back to code-honesty markers and bug issues. Recommends running `/sync-sdlc` to establish a requirements corpus.

## Relationship to Other Skills

| Skill | Relationship |
|---|---|
| `audit-security`, `audit-performance-efficiency`, `audit-compatibility`, `audit-usability`, `audit-reliability`, `audit-maintainability`, `audit-portability` | The other seven ISO/IEC 25010 characteristics. Compose via `/audit-sdlc`. |
| `audit-sdlc` | Coordinator that runs this and the sibling characteristic audits. |
| `check-issue-status` | Single-issue version of the completeness question. This is the whole-corpus version. |
| `sync-sdlc` | Establishes the requirements corpus this audit scores against. |

## Useful Commands Reference

| Command | Description |
|---|---|
| `rg -n "TODO\|FIXME\|NotImplemented\|stub\|501" -g '*.py' .` | Code-honesty markers |
| `rg -n "pytest.mark.skip\|xfail\|@skip\|@Ignore" .` | Disabled tests |
| `gh search issues --repo <repo> --state open --label bug` | Open correctness bugs |

Attribution

tomzxtomzx
View sourceSee grades on GitHubMore from tomzx →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

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 (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

ucoz-landing-skill

Create and edit uCoz homepage landing pages via MCP: custom templates, hero sections, lead forms, navigation menus, SEO, and responsive layout. Includes a visual design system (style selection, layout/grid, section recipes, typography/spacing, color tokens, component states, icons, modern CSS/JS, motion, imagery, social proof, copy/voice, accessibility). Uses ucoz-mcp tools for templates, site file uploads, and site modules.

107 votes

Paperclip

Interact with the Paperclip control plane API for task coordination and governance. Use when checking assignments, updating issue status, posting comments, delegating work, managing routines, or calling Paperclip API endpoints.

953191 votes

Pptx

Presentation toolkit (.pptx). Create/edit slides, layouts, content, speaker notes, comments, for programmatic presentation creation and modification.

471861 votes

Daw Music

Digital Audio Workstation usage, music composition, interactive music systems, and game audio implementation for immersive soundscapes.

761 votes

Instantly Rdsthomas Mission Control

Instantly.ai cold email outreach API - manage campaigns, leads, accounts, and analytics. Use for cold email automation, lead management, campaign creation/monitoring, and email account warmup.

761 votes
View all in tools →