AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified Apache-2.0 Self-run

Ingest

skill-pssah4-vault-operator-ingest · by pssah4

Quick single-pass ingest of a source (PDF/Markdown/URL/DOCX/PPTX/XLSX) into one note (frontmatter + overview + key points + original text). PDFs stay page-refs (no mirror enforcement). Block-refs to the source rendered as a discreet ↗ symbol per key point. No multi-turn dialog.

No reviews yet
0 installs
36 views
0.0% view→install

Install

$ agentstack add skill-pssah4-vault-operator-ingest

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-pssah4-vault-operator-ingest)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
3mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Ingest? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

/ingest -- Schneller Single-Pass-Ingest

Wann nutzen

Schnelle Inbox-Aufnahme, image-heavy PDFs, kurze Webclips, Office-Files. Erwartung: 30 Sekunden bis 2 Minuten, eine Datei als Output.

Nicht fuer tiefe Sense-Making-Notes (-> /ingest-deep), nicht fuer Meeting-Transkripte (-> /meeting-summary).

Kosten-Disziplin

  • Ein Tool-Call. ingest_document. Keine read_document-Pre-Reads,

keine list_files-Erkundung.

  • STOP-on-Error. Bei Tool-Fehler: User informieren, fertig.

Step 0a: Template lesen (Pflicht, vor dem ingest_document-Aufruf)

Das Frontmatter-Template kommt aus den Settings: vaultIngest.templates.ingestNoteTemplate (vault-relativer Pfad). Wird beim First-Run vom Wizard auf /Quelle Template.md (DE) bzw. /Source Template.md (EN) gesetzt (siehe FEAT-29-14). Der TemplatesFolder kommt aus dem Obsidian-Core-Templates-Plugin (.obsidian/templates.json).

Vorgehen (Reihenfolge ist Pflicht):

  1. Setting-Wert pruefen. Wenn nicht-leer:
  • read_file path="" -> extrahiere den Frontmatter-

Block zwischen den ----Zeilen.

  • Diese Felder bilden die Frontmatter-Basis fuer den

header_content.

  • Werte aus der Quelle (Autor, Jahr, URL etc.) einfuellen,

unbekannte Felder leer lassen.

  • Bevorzuge IMMER das User-Template wenn vorhanden -- es

spiegelt die Konvention des Vaults wider (Sprache, custom Felder). Der Inline-Default unten ist NUR Fallback.

  1. Wenn Setting leer: nutze den Inline-Default.

Inline-Default (Fallback wenn Setting leer):

---
Zusammenfassung:
Autor:
Jahr:
ISBN:
URL:
Notizen:
Themen:
Konzepte:
Meeting-Notizen:
Kategorie:
  - Quelle
Typ:
tags:
Permanent: false
---

Pflicht-Felder die der Skill aus der Quelle ableitet und einfuellt: Zusammenfassung, Autor, Jahr, URL, Themen, Konzepte, Typ, tags.

Kategorie-Wert (Pflicht-Format): YAML-Listen-Element mit Bindestrich, ein Wert. Englischer Vault: - Source. Deutscher Vault: - Quelle. Niemals als Inline-Array [Quelle] -- das matcht den Auto-Trigger nicht (FEAT-19-27).

Step 0: Source-Typ und Tool-Wahl

Schau in deinen Kontext:

| Quelle | Aufruf | |---|---| | ` ohne vaultpath (frisch in Chat geladen) | ingestdocument mit attachmentindex: 0 -- **TURN 1 noch waehrend das Attachment lebt**. Auf spaeteren Turns ist das Attachment weg. | | oder User nennt Vault-Pfad | ingestdocument mit sourcepath: "" | | Reine URL ohne Attachment | requestUrl + write_file (Tool-Pfad ohne ingest_document) | | Markdown im Vault | ingestdocument mit sourcepath ist optional; bei reinen MD-Sources reicht updatefrontmatter` + Block-IDs |

Ablage-Regel: ALLE Markdown-Outputs landen in / (Default Inbox/, aus den Plugin-Settings). Originale Binaries (PDF/DOCX/PPTX/XLSX) gehen nach Attachements/--.. Keine neuen Ordner anlegen, kein Sources/, kein Notes/. Wenn der defaultOutputFolder fehlt, legt das Plugin ihn beim ersten Schreibvorgang an. Naming-Convention: -- (englisch transliteriert, Bindestriche statt Leerzeichen). Ohne bekannten Author/Year: ``.

Step 1: ingest_document aufrufen

Aufrufkonvention:

ingest_document
  source_path | attachment_index = ""
  output_path = "/--.md"
  header_content = """
    ---
    source: ...
    source_type: pdf | docx | pptx | xlsx | md | url
    ingested_at: 
    cluster: 
    ---

    # 

    ## Overview

    

    ## Kernaussagen

    - . [[#Page |↗]]
    - . [[#^block-|↗]]
    ...
  """

Tool appended automatisch ## Originaltext mit dem geparsten Text.

Step 2: Position-Marker pro Kernaussage (Pflicht)

Jede Kernaussage in ## Kernaussagen traegt am Satzende einen Marker:

| Source-Typ | Marker-Form | |---|---| | PDF | [[#Page \|↗]] -- N aus den ## Page N-Headings im Originaltext | | Markdown / Webclip | [[#^block-\|↗]] | | URL mit Section-IDs | [[#\|↗]] | | DOCX | [[#^block-\|↗]] | | PPTX | [[#Slide \|↗]] | | XLSX | [[#Sheet \|↗]] |

Pflicht-Layout:

  • Display-Text immer nur . Kein "Quelle:", kein "[1]".
  • Inline am Satzende, ein Leerzeichen vor dem Link.
  • Eine Block-Ref pro Kernaussage.

Step 3: Verifikation

Tool gibt einen Position-Marker check: X of Y Kernaussagen carry refs- String zurueck. Bei X " und den Frontmatter-Block zwischen den beiden ----Zeilen verbatim als String halten. Werte werden hinter den Doppelpunkten eingefuellt. Niemals YAML neu rendern -- das bricht das Frontmatter.

Pflicht-Werte:

  • Kategorie: -> - Quellen-Notiz (DE) bzw. - Source note (EN).

Aus dem Template uebernehmen wenn vorhanden.

  • Quellen: -> [[]] (bidirektionaler Link).
  • Zusammenfassung: -> 1-2-Satz-Quintessenz des Take-Aways.

Step 4b: Naming-Konvention

Sense-Making-Note und Zettel sind eigenstaendige Konzept-Notes mit aussagekraeftigen Titeln. Keinen Source-Basename als Prefix.

| ❌ Falsch | ✅ Richtig | |---|---| | Karpathy ... -- Sense-Making.md | Karpathy zu Vibe Coding und Agentic Engineering.md | | Karpathy ... -- LLMs als Ghosts.md | LLMs als Ghosts.md |

Verbindung zur Quelle: Frontmatter Quellen: [[]] + Backlink in der Source (Step 5).

Step 4c (Modus A): Sense-Making-Note

EINE Note via write_file:

  • Pfad: /.md
  • Content (Reihenfolge strikt, keine Leerzeile vor dem Frontmatter):

# 

## Kernaussage

## Take-Aways

-  [[#Page |↗]]
-  [[#^block-|↗]]
- ...

Step 4d (Modus B): Multi-Zettel

Ein Zettel pro Take-Away via write_file:

  • Pfad: /.md
  • Content:

# 

## Quelle

[[]] -- siehe [[#Page |↗]]

Wichtig: Body und Frontmatter-Zusammenfassung: ergaenzen sich. Frontmatter ist die Quintessenz fuer Listing/Suche, Body ist die Ausformulierung. Niemals Body leer lassen.

Namens-Kollision: Wenn .md schon existiert, read_file der existierenden Note, User fragen ob Ergaenzung oder Variante ( ().md). Nie stillschweigend ueberschreiben.

Step 5: Backlink in der Quelle (Pflicht nach Step 4)

Wenn in Step 4 Notes erstellt wurden:

  1. Lade die Quelle-Note via read_file.
  2. Verifikation (AUDIT-024 I-1): Pruefe im Frontmatter, dass die

Note die Kategorie: - Quelle (oder - Source im englischen Vault) traegt. Wenn nicht, ist der Pfad falsch oder die Note ist die falsche -- STOP und frag den User, bevor du irgendwo Notizen: setzt.

  1. Lies das Notizen:-Feld aus dem Frontmatter.
  2. update_frontmatter-Tool: setze Notizen: auf eine Liste mit

[[note1]], [[note2]], .... Bestehende Werte beibehalten (append).

Damit zeigt der Obsidian-Graph die Verbindung Quelle abgeleitete Notes.

Verbote

  • Keine [1]-Marker im Perplexity-Stil.
  • Kein Multi-Turn-Dialog. Wenn Dialog noetig, ist /ingest-deep

das richtige Skill.

  • Kein Markdown-Mirror-Zwang fuer PDFs.
  • Kein Originaltext in der ## Kernaussagen-Section duplizieren.
  • Kein read_document vor ingest_document. Tool parst selber.
  • Kein list_files zur Pfad-Suche. User fragen ist billiger.
  • Keine neuen Ordner. Erlaubte Ziele sind ausschliesslich

Attachements/ (Binaries) und / (Markdown). Kein Sources/, kein Notes/.

  • Keine Source-Duplikate. Liegt die Quelle bereits als Markdown im

Vault (source_path zeigt auf eine .md-Datei), schreibe NICHT eine zweite Note in / -- nutze stattdessen update_frontmatter + manuelle Block-ID-Edits direkt in der Original-Note.

  • Kein Source-Prefix in Sense-Making-/Zettel-Titeln. Konzept-

Titel sind eigenstaendig, die Verbindung zur Quelle steht im Frontmatter (Quellen:).

  • Kein YAML-Re-Render des Templates. Frontmatter-Block ist ein

verbatim String, Werte hinter Doppelpunkten einsetzen. Niemals zerlegen und neu zusammensetzen -- das produziert doppelte --- und kaputte YAML.

  • Keine Transkript-Schnipsel als Note-Body. Eigene Worte, ein

klarer Gedanke pro Note. Roher Source-Text gehoert nicht in den Body -- referenziere via Block-Ref.

  • Themen und Konzepte nicht vermischen. Themen: haelt

ausschliesslich Wikilinks auf Notes mit Kategorie: Thema (breit/generisch, Hub-Note, z.B. [[Agentic AI]]). Konzepte: haelt ausschliesslich Wikilinks auf Notes mit Kategorie: Konzept (spezifisch/abgegrenzt, z.B. [[AI Agents]]). Im Zweifel kurz mit read_file das Kategorie:-Feld der Ziel-Note pruefen, bevor du sie einsortierst.

  • Wikilink-Properties ausschliesslich als YAML-Listen. Themen,

Konzepte, Personen, Quellen, Notizen jede mit Eintraegen als Listen-Elementen, niemals als Komma-String. Block-Form (Themen:\n - "[[X]]"\n - "[[Y]]") oder Flow-Form (Themen: ["[[X]]", "[[Y]]"]) sind beide ok; Themen: [[X]], [[Y]] ist falsch und wird von Obsidian nicht als Liste geparsed. Auch ein einzelner Wert bleibt eine ein-elementige Liste.

Fehlerfaelle

| Fehler | Was tun | |---|---| | Attachment index 0 out of range. 0 attachment(s) available. | Attachment ist nicht (mehr) verfuegbar -- diesen Turn neu starten oder User um neues Upload bitten. Nicht retryen. | | File not found: | Pfad falsch. User fragen, nicht raten. | | File already exists: | output_path aendern (z.B. (2) anhaengen) oder User fragen. |

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.