Option
HeimHeim Skill Sicherheit intended-vs-implemented

intended-vs-implemented

phuryn/pm-skills phuryn/pm-skills

Erkennt Diskrepanzen zwischen der dokumentierten Absicht und der tatsächlichen Umsetzung im Quellcode und deckt dabei Fehler auf, die generische Scanner übersehen, da ihnen ein Modell der Absicht fehlt.

...Alle erweitern
0
Zeit aktualisiert 29. September 2026

Geplant vs. umgesetzt: Die Lücke überprüfen

Zweck

Ein Linter scannt Code isoliert. Er kann Ihnen sagen, ob der Code intern konsistent ist; er kann Ihnen jedoch nicht sagen, ob der Code das tut, was Sie beabsichtigt haben, da er kein Modell Ihrer Absicht hat. Die schwerwiegendsten Sicherheits- und Korrektheitsfehler liegen in dieser Lücke – eine dokumentierte, aber nie durchgesetzte Berechtigung, ein „cron-only“-Endpunkt, den jeder aufrufen kann, ein als „public-only“ gekennzeichnetes Feld, das private Daten preisgibt.

Diese Fertigkeit ist die Methode, um diese Lücke zu finden. Sie ist das Alleinstellungsmerkmal: Sie funktioniert nur, wenn die Absicht zuvor schriftlich festgehalten wurde (siehe die Fertigkeit „Shipping-Artifacts“), und genau deshalb können Standardtools sie nicht nachbilden.

Kontext

Verwenden Sie diese Funktion, wenn eine dokumentierte Absicht vorliegt – permissions.md, architecture.md, variables.mdusw. Fehlen diese Dokumente oder sind sie veraltet, ist dieses Fehlen selbst bereits der erste Befund: Man kann keine Absicht prüfen, die man nie festgehalten hat. Es wird empfohlen, zuerst zu dokumentieren und dann zu prüfen.

Methode

  1. Legen Sie die Absicht fest. Legen Sie die /documentation/*.md als maßgebliche Quelle dafür, was gelten soll: Wer darf auf was zugreifen, welche Grenzen gelten als vertrauenswürdig, welche Daten sind öffentlich? Behandeln Sie die Dokumentation als zu überprüfende Behauptungen, nicht als Beweis.

  2. Sammeln Sie Belege für die Umsetzung. Lesen Sie den Code, der jede Behauptung durchsetzt (oder nicht durchsetzt). Ein Beleg ist eine zitierte Datei und Zeile – die tatsächliche Autorisierungsprüfung, der tatsächliche Abfragefilter, der tatsächliche Sanitizer. „Das wird wahrscheinlich weiter oben abgewickelt“ ist kein Beleg; der Codepfad ist es.

  3. Vergleichen Sie die Angabe mit dem Code, eine Grenze nach der anderen. Fragen Sie bei jeder dokumentierten Regel: Wird sie tatsächlich an einem Durchsetzungspunkt umgesetzt – auf dem Server, auf jedem Pfad? Misstrauen Sie Kommentaren wie „nur intern“, „nur für Admins“ oder „andernorts validiert“ – überprüfen Sie sie im Code.

  4. Klassifizieren Sie jede Abweichung danach, ob sie von Bedeutung ist. Eine Abweichung ist von Bedeutung, wenn ein echter Akteur durch deren Umgehung auf Daten, Geld, Infrastruktur oder einen anderen Mandanten zugreifen kann, auf die er keinen Zugriff haben sollte. Sie ist nicht von Bedeutung, wenn die einzige betroffene Person der Akteur selbst ist, und zwar in Bezug auf seine eigenen Daten. Lassen Sie kosmetische Abweichungen außer Acht; behalten Sie grenzüberschreitende Abweichungen bei.

  5. Vermeiden Sie vage Befunde. Jeder Befund muss Folgendes benennen: die dokumentierte Absicht (zitieren Sie die Dokumentation), die implementierte Realität (zitieren Sie den Code), den Angreifer und das Opfer sowie die konkrete Behebung. Wenn Sie nicht beide Seiten der Lücke zitieren können, handelt es sich um eine zu untersuchende Frage, nicht um einen zu meldenden Befund.

Was zählt

  • Absicht: eine dokumentierte Regel, Grenze, ein Geltungsbereich oder eine Einstufung als öffentlich/privat.
  • Nachweis der Umsetzung: ein zitierter Durchsetzungspunkt (oder dessen nachweisbares Fehlen) im Code.
  • Eine relevante Diskrepanz: Die Dokumentation sagt das eine, der Code tut etwas anderes, und der Unterschied überschreitet eine Vertrauens-, Kosten-, Daten- oder Mandantengrenze.

Anmerkungen

  • „Dokumentiert, aber nicht durchgesetzt“ ist ein Befund für sich – stufen Sie ihn danach ein, was durch das Aufdecken dieser Diskrepanz zutage tritt.
  • „Undokumentiert, aber durchgesetzt“ ist in der Regel in Ordnung, sollte aber gekennzeichnet werden: Die Dokumentation ist mittlerweile veraltet, was die nächste Prüfung schwächt.
  • Diese Methode liefert Input für die Sicherheits- und Leistungsaudits; sie ersetzt nicht deren Analyse auf der „Sink“-Ebene – sie ergänzt diese um die Absichtsachse, die dort fehlt.
  • Erfinden Sie niemals eine Absicht, um eine Lücke zu konstruieren. Wenn die Dokumentation keine Angaben enthält, geben Sie an, dass die Dokumentation keine Angaben enthält.
Auf GitHub ansehen
---
name: intended-vs-implemented
description: Finds gaps between documented intent and actual implementation in codebases, catching bugs that generic scanners miss because they lack a model of intent.
---

# Intended vs. Implemented: Auditing the Gap

## Purpose

A linter scans code in a vacuum. It can tell you the code is *internally* consistent; it cannot tell you the code does what you *meant*, because it has no model of your intent. The highest-value security and correctness bugs live in that gap — a permission documented but never enforced, a "cron-only" endpoint anyone can call, a field marked public-only that leaks private data.

This skill is the method for finding that gap. It is the differentiator: it only works when intent has been written down first (see the **shipping-artifacts** skill), and that's exactly why commodity tools can't replicate it.

## Context

Use this when documented intent exists — `permissions.md`, `architecture.md`, `variables.md`, etc. If those docs are absent or stale, that absence is itself the first finding: you cannot audit intent you never recorded. Recommend documenting first, then auditing.

## Method

1. **Establish intent.** Read the `/documentation/*.md` set as the source of truth for what *should* be true: who may access what, which boundaries are trusted, which data is public. Treat the docs as claims to verify, not as proof.

2. **Gather implementation evidence.** Read the code that enforces (or fails to enforce) each claim. Evidence is a cited file and line — the actual authorization check, the actual query filter, the actual sanitizer. "It's probably handled upstream" is not evidence; the code path is.

3. **Compare claim to code, one boundary at a time.** For each documented rule, ask: does an enforcement point actually implement it, on the server, on every path? Distrust comments like "internal only," "admin only," or "validated elsewhere" — verify them in code.

4. **Classify each mismatch by whether it matters.** A mismatch matters when crossing it lets a real actor reach data, money, infrastructure, or another tenant they shouldn't. It does not matter when the only person affected is the actor themselves on their own data. Drop cosmetic drift; keep boundary-crossing drift.

5. **Avoid hand-wavy findings.** Every finding names: the **documented intent** (quote the doc), the **implemented reality** (cite the code), the **attacker and victim**, and the **concrete fix**. If you cannot cite both sides of the gap, it is a question to investigate, not a finding to report.

## What counts

- **Intent:** a documented rule, boundary, scope, or public/private classification.
- **Implementation evidence:** a cited enforcement point (or its provable absence) in the code.
- **A mismatch that matters:** doc says one thing, code does another, and the difference crosses a trust, cost, data, or tenant boundary.

## Notes

- Documented-but-unenforced is a finding on its own — rank it by what crossing the gap exposes.
- Undocumented-but-enforced is usually fine, but flag it: the docs are now stale, which weakens the next audit.
- This method feeds the security and performance audits; it does not replace their sink-level analysis — it adds the intent axis they lack.
- Never fabricate intent to manufacture a gap. If the docs are silent, say the docs are silent.

Alle Dateien

1 Dateien

intended-vs-implemented installieren

Laden Sie die Skill-Dateien herunter und entpacken Sie sie in Ihr Verzeichnis „.claude/skills/“.

ZIP herunterladen

Klonen Sie das Repository und kopieren Sie die Skill-Dateien in Ihr Projekt.

git clone https://github.com/phuryn/pm-skills/tree/main/pm-ai-shipping/skills/intended-vs-implemented # Copy SKILL.md to your .claude/skills/ directory

Kopieren Kopieren
Schnelle Einrichtung: Kopiere den Skill-Ordner nach „.claude/skills/“. Claude erkennt den Skill automatisch und nutzt ihn.
Repository phuryn/pm-skills

Ähnliche Skills

gmgn-portfolio
Zeit aktualisiert 1. Juli 2026
device-integrity
Zeit aktualisiert 29. Juni 2026
zeroize-audit
Zeit aktualisiert 1. Juli 2026
flutter-use-http-package
Zeit aktualisiert 30. Juni 2026
OR