Skip to content

docs: Update README with supply chain protection features#18

Open
ProduktEntdecker wants to merge 5 commits intomainfrom
docs/17-update-readme-supply-chain
Open

docs: Update README with supply chain protection features#18
ProduktEntdecker wants to merge 5 commits intomainfrom
docs/17-update-readme-supply-chain

Conversation

@ProduktEntdecker
Copy link
Copy Markdown
Owner

@ProduktEntdecker ProduktEntdecker commented Apr 2, 2026

Summary

  • Document version quarantine (72h), new package detection (7d), low download check
  • Reference the Axios supply chain attack as motivation
  • Update decision logic table with supply chain signals
  • Update limitations section

Closes #17

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Dokumentation
    • Erweiterung: PatchPilot führt CVE‑(OSV)‑Prüfungen und Supply‑Chain‑Risikoanalysen parallel durch.
    • Neue „Supply Chain Protection“-Sektion mit drei Heuristiken (Quarantäne <72h, neu entdeckte Pakete <7 Tage, npm Downloads <100/Woche); Supply‑Chain‑Funde lösen eine „ask“-Aktion aus.
    • Entscheidungs‑Matrix jetzt quellbewusst: CVE CRITICAL/HIGH → Block, CVE MODERATE → Ask, CVE LOW → Allow (Warnung).
    • Limitierungen erweitert: Offline‑Anforderungen auf Registry‑Checks ausgeweitet; unvollständige Zero‑Day‑Abdeckung angegeben.

Add documentation for version quarantine (72h), new package detection
(7d), and low download check (<100/week). Reference the Axios supply
chain attack as motivation. Update decision logic table and limitations.

Closes #17

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 2, 2026

Walkthrough

Die README beschreibt jetzt kombinierte CVE‑ und Supply‑Chain‑Prüfungen vor Installationen, zeigt OSV‑ und Registry‑Metadaten‑Prüfungen parallel im Ablauf und ergänzt eine quellenbewusste Entscheidungslogik sowie erweiterte Limitierungen. (≤50 Wörter)

Changes

Cohort / File(s) Summary
README‑Dokumentation
README.md
Ersetzt CVE‑only Beschreibung durch kombinte CVE‑ und Supply‑Chain‑Checks. "How It Works" aktualisiert für parallele OSV‑ und Registry‑Prüfungen. Neue "Supply Chain Protection" Sektion mit drei Heuristiken (Version‑Quarantäne <72h, neues Paket <7d, npm‑Downloads <100/Woche) und ask statt automatischem Block. Entscheidungs‑Matrix nach Quelle: CVE (CRITICAL/HIGH → block/manual approval, MODERATE → ask, LOW → allow+warn), Supply‑Chain → ask. Limitations erweitert (Offline‑Anforderungen für OSV und Registries, Zero‑day‑Einschränkungen).

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant PatchPilot
    participant OSV
    participant Registry
    participant DecisionEngine

    User->>PatchPilot: Installationsanfrage
    PatchPilot->>OSV: CVE‑Abfrage
    PatchPilot->>Registry: Paket‑Metadaten anfordern
    par Parallel evaluation
        OSV-->>PatchPilot: CVE‑Ergebnisse
        Registry-->>PatchPilot: Supply‑Chain‑Signale
    end
    PatchPilot->>DecisionEngine: CVE + Supply‑Chain Ergebnisse
    DecisionEngine-->>PatchPilot: Aktion (block / allow with warn / ask)
    PatchPilot-->>User: Aktion / Ergebnis anzeigen
Loading

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 Minuten

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed Der Titel beschreibt präzise die Hauptänderung: Aktualisierung der README mit Dokumentation der Supply-Chain-Schutzfunktionen.
Linked Issues check ✅ Passed Der PR erfüllt alle Anforderungen aus Issue #17: Dokumentation der Version-Quarantäne (72h), Neu-Paket-Erkennung (7d), Low-Download-Checks und aktualisierte Entscheidungslogik.
Out of Scope Changes check ✅ Passed Alle Änderungen beziehen sich auf die README-Dokumentation der Supply-Chain-Schutzfunktionen aus PR #16; keine Out-of-Scope-Änderungen erkannt.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/17-update-readme-supply-chain

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@README.md`:
- Line 14: Die README enthält ein fenced code block ohne Language-Tag (MD040) —
locate the fenced block that contains the sample lines starting with You:
"install lodash for me" and Claude: "npm install lodash@4.17.0" and add a
language identifier (e.g., change the opening ``` to ```text) so markdownlint
passes and syntax highlighting/rendering is correct.
- Line 32: Die README-Angabe "New Package Detection" (< 7 days old) stimmt nicht
mit der Implementierung in src/registry.ts (die aktuell < 30 days verwendet)
überein; bitte synchronisieren: entweder aktualisiere die README-Zeile für "New
Package Detection" auf "< 30 days old" oder ändere den Schwellenwert in
src/registry.ts (die Konstante/Prüfung, z.B. NEW_PACKAGE_THRESHOLD / die
Altersprüfung in src/registry.ts) auf 7 Tage, und stelle sicher, dass Tests/Docs
entsprechend angepasst werden.
- Line 122: Die README-Dokumentation ist falsch: die Tabelle sagt „MODERATE or
LOW → Allow“, aber in src/decision.ts (prüfe die Funktion/Mapping, z.B.
mapCveSeverityToDecision oder getDecisionForCVE) wird MODERATE zu "ask" und nur
LOW zu "allow". Fix: aktualisiere die README.md-Tabelle (die Zeile mit
CVE/MODERATE/LOW) so dass MODERATE klar als "Ask" (oder entsprechendem
Entscheidungstext) und LOW als "Allow" steht, sodass die Dokumentation exakt das
Verhalten in src/decision.ts widerspiegelt.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 74803eb1-0448-4ff0-95d9-a215a1be9ce8

📥 Commits

Reviewing files that changed from the base of the PR and between fb961f0 and d3f3559.

📒 Files selected for processing (1)
  • README.md

Comment thread README.md Outdated
Comment thread README.md
| Check | What it catches | Threshold |
|-------|----------------|-----------|
| **Version Quarantine** | Recently published versions — suggests previous stable release | < 72 hours old |
| **New Package Detection** | Brand-new packages with no history | < 7 days old |
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Schwellenwert für „New Package Detection“ stimmt nicht mit dem Code überein.

Auf Line 32 steht < 7 days old, aber src/registry.ts nutzt aktuell < 30 days. Diese Diskrepanz macht die Doku unzuverlässig.

Vorgeschlagene Korrektur
-| **New Package Detection** | Brand-new packages with no history | < 7 days old |
+| **New Package Detection** | Brand-new packages with no history | < 30 days old |
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
| **New Package Detection** | Brand-new packages with no history | < 7 days old |
| **New Package Detection** | Brand-new packages with no history | < 30 days old |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` at line 32, Die README-Angabe "New Package Detection" (< 7 days
old) stimmt nicht mit der Implementierung in src/registry.ts (die aktuell < 30
days verwendet) überein; bitte synchronisieren: entweder aktualisiere die
README-Zeile für "New Package Detection" auf "< 30 days old" oder ändere den
Schwellenwert in src/registry.ts (die Konstante/Prüfung, z.B.
NEW_PACKAGE_THRESHOLD / die Altersprüfung in src/registry.ts) auf 7 Tage, und
stelle sicher, dass Tests/Docs entsprechend angepasst werden.

Comment thread README.md Outdated
ProduktEntdecker and others added 2 commits April 2, 2026 20:43
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

♻️ Duplicate comments (1)
README.md (1)

14-23: ⚠️ Potential issue | 🟡 Minor

Codeblock mit Sprachkennung versehen.

Der fenced block startet ohne Language-Tag. Das triggert MD040 und sollte auf z. B. text gesetzt werden.

Vorgeschlagene Korrektur
-```
+```text
 You: "install lodash for me"
          ↓
 Claude: "npm install lodash@4.17.0"
          ↓
 PatchPilot: ┌─ OSV database (known CVEs)
             └─ Registry metadata (supply chain signals)
          ↓
 BLOCKED: 4 vulnerabilities found (1 critical, 3 high)
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In @README.md around lines 14 - 23, Der fenced codeblock im README fehlt ein
Language-Tag (verursacht MD040); öffne den betroffenen triple-backtick-Block im
README.md und füge das passende Tag (z. B. text) direkt nach den Backticks hinzu
(text), sodass der Block wie im Vorschlag markiert ist; überprüfe anschliessend, dass der Blockbeginn exakt mit text übereinstimmt und
speichere die Datei.


</details>

</blockquote></details>

</blockquote></details>

<details>
<summary>🤖 Prompt for all review comments with AI agents</summary>

Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In @README.md:

  • Around line 14-23: Der fenced codeblock im README fehlt ein Language-Tag
    (verursacht MD040); öffne den betroffenen triple-backtick-Block im README.md und
    füge das passende Tag (z. B. text) direkt nach den Backticks hinzu (text), sodass der Block wie im Vorschlag markiert ist; überprüfe anschliessend, dass der Blockbeginn exakt mit text übereinstimmt und speichere die Datei.

</details>

---

<details>
<summary>ℹ️ Review info</summary>

<details>
<summary>⚙️ Run configuration</summary>

**Configuration used**: Organization UI

**Review profile**: ASSERTIVE

**Plan**: Pro

**Run ID**: `636d7d45-267c-44a6-9fbb-05e7859d22e7`

</details>

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between d3f35592a7fe9662d227cd83eee510d3f6d30aee and d212d62affb0521219d4ee64d185955305208666.

</details>

<details>
<summary>📒 Files selected for processing (1)</summary>

* `README.md`

</details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->

- Add language tag to fenced code block (MD040)
- Fix decision table: MODERATE → ask (not allow), matches decision.ts
- Note: 7-day threshold for new package detection is correct per code

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@README.md`:
- Line 127: Die Formulierung "zero additional latency" in der Zeile mit "Supply
chain checks run in parallel with CVE checks (zero additional latency) and
fail-open — if the registry is unreachable, installs proceed normally." ist zu
absolut; ersetze sie durch eine präzisere Formulierung wie "no noticeable
additional latency", "minimal additional latency" oder "negligible additional
latency" und behalte den Hinweis auf parallele Ausführung und
fail-open-Verhalten bei, so dass der Satz klarstellt, dass die Checks parallel
laufen und in der Praxis meist keine merkliche Verzögerung erzeugen, aber
Netzwerklatenzen/Timeouts weiterhin Einfluss haben können.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 37584aff-158f-4c6a-b7e4-f83724694c2b

📥 Commits

Reviewing files that changed from the base of the PR and between d212d62 and 133e5c8.

📒 Files selected for processing (1)
  • README.md

Comment thread README.md Outdated
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

♻️ Duplicate comments (1)
README.md (1)

32-32: ⚠️ Potential issue | 🟠 Major

Schwellwert für „New Package Detection“ weiterhin inkonsistent.

Auf Line 32 steht weiterhin < 7 days old, obwohl zuvor bereits die Abweichung zur Implementierung (src/registry.ts mit < 30 days) gemeldet wurde. Bitte Doku und Code auf denselben Wert bringen.

Vorgeschlagene README-Korrektur
-| **New Package Detection** | Brand-new packages with no history | < 7 days old |
+| **New Package Detection** | Brand-new packages with no history | < 30 days old |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@README.md` at line 32, Die README-Zeile für "New Package Detection" zeigt "<
7 days old", ist aber inkonsistent mit der Logik in src/registry.ts, die "< 30
days" verwendet; vereinheitliche den Schwellenwert, indem du entweder die
README-Tabelle auf "< 30 days old" anpasst oder die Implementierung in
src/registry.ts (z. B. die Konstante/Variable, Funktion oder Bedingung, die das
30-Tage-Limit definiert) auf 7 Tage änderst, und führe beide Orte (README und
die betreffende Stelle in src/registry.ts) so zusammen, dass sie denselben Wert
verwenden.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In `@README.md`:
- Line 32: Die README-Zeile für "New Package Detection" zeigt "< 7 days old",
ist aber inkonsistent mit der Logik in src/registry.ts, die "< 30 days"
verwendet; vereinheitliche den Schwellenwert, indem du entweder die
README-Tabelle auf "< 30 days old" anpasst oder die Implementierung in
src/registry.ts (z. B. die Konstante/Variable, Funktion oder Bedingung, die das
30-Tage-Limit definiert) auf 7 Tage änderst, und führe beide Orte (README und
die betreffende Stelle in src/registry.ts) so zusammen, dass sie denselben Wert
verwenden.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 14ff7e2b-7bd3-437e-921c-0930f05cdd22

📥 Commits

Reviewing files that changed from the base of the PR and between 133e5c8 and 6b65a4a.

📒 Files selected for processing (1)
  • README.md

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

docs: Update README and add supply chain protection documentation

1 participant