Skip to content

docs: Update README with supply chain protection features#18

Merged
ProduktEntdecker merged 6 commits into
mainfrom
docs/17-update-readme-supply-chain
Jun 11, 2026
Merged

docs: Update README with supply chain protection features#18
ProduktEntdecker merged 6 commits into
mainfrom
docs/17-update-readme-supply-chain

Conversation

@ProduktEntdecker

@ProduktEntdecker ProduktEntdecker commented Apr 2, 2026

Copy link
Copy Markdown
Owner

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

coderabbitai Bot commented Apr 2, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@ProduktEntdecker, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 18 minutes and 39 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more credits in the billing tab to continue.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: d2899422-998b-4738-b2ed-21922765bb7a

📥 Commits

Reviewing files that changed from the base of the PR and between 6b65a4a and 8bbaa5b.

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

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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

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
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>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

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>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

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>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

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

…nflict

Combined both Limitations additions and brought the supply chain and
decision logic tables up to date with main (MAL-* malware blocking,
UNKNOWN severity ask, typosquat detection from PR #23).

https://claude.ai/code/session_01QTEvxicjPZXdx2hvmvnmzH
@ProduktEntdecker ProduktEntdecker merged commit 4a4fcda into main Jun 11, 2026
4 checks passed
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

2 participants