Przejdź do treści
Biblioteka skilli
Produktywność osobista · Automatyzacja

ingest

/ingest

Zapisuje źródło (URL, plik lub wklejony tekst) w raw/ z zachowaniem proweniencji, wyciąga wnioski i proponuje aktualizacje wiki do zatwierdzenia.

Repozytorium
FounderOS ↗
Licencja
MIT
Ostatnia zmiana repozytorium
24.10.2026

Ocena i bezpieczeństwo

100/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
1
Skrypty
0
Komentarze HTML
1
Adresy URL w SKILL.md
0
Przestarzałość

Brak sygnałów. Repozytorium zmienione 24.10.2026, bez odwołań do wycofanych modeli i API.

Licencja

MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.

Co sprawdzić przed instalacją
  • SKILL.md zawiera komentarze HTML (1). Nie widać ich w podglądzie Markdown, a model je czyta.

Co robi i kiedy

Zapisuje źródło (URL, plik lub wklejony tekst) w raw/ z zachowaniem proweniencji, wyciąga wnioski i proponuje aktualizacje wiki do zatwierdzenia.

Wyzwalacze z opisu

ingest thisprocess this sourcefile this articlesave this transcriptadd this thread to the OS
Oryginalny opis (EN)

File a source (URL, file path, or pasted text) into raw/ with provenance preserved. Trigger on "ingest this", "process this source", "file this article", "save this transcript", "add this thread to the OS" (or run /founder-os:ingest). Also fires when the user shares a source they want preserved alongside extracted takeaways. Proposes wiki updates the user approves before writing. Different from knowledge-capture - ingest preserves the source.

Jak działa

  1. Pre-flight
  2. Step 1 - Resolve the source
  3. Step 2 - Write the raw file
  4. Step 3 - Extract candidate wiki updates
  5. Step 4 - Show proposal to user
  6. Step 5 - Apply approved updates
  7. Step 6 - Update raw frontmatter and brain log
  8. Step 7 - Output summary
  9. Output rules
  10. Edge cases
Sekcje z nagłówków SKILL.md, w oryginale · 161 linii, 1 206 słów
Podgląd SKILL.md
---
name: ingest
description: >
  File a source (URL, file path, or pasted text) into raw/ with provenance preserved. Trigger on "ingest this", "process this source", "file this article", "save this transcript", "add this thread to the OS" (or run /founder-os:ingest). Also fires when the user shares a source they want preserved alongside extracted takeaways. Proposes wiki updates the user approves before writing. Different from knowledge-capture - ingest preserves the source.
why: "Preserves a source with provenance intact so you can cite where an idea came from months later - knowledge-capture organises takeaways but ingest keeps the original."
enhance: "Approve 2 to 4 wiki updates per ingest rather than all or none - selectively cross-referencing sources into decisions.md and brain/patterns.md builds a connected knowledge graph over time."
allowed-tools: ["Read", "Write", "Edit", "WebFetch", "Glob", "Grep", "Bash"]
mcp_requirements: []
---

# Ingest

Runs on: local-writes - creates or edits files in your OS folder; needs an agent with write access.

Files a source into the OS with provenance. The raw layer is the immutable archive. The wiki layer holds extracted content with cross-links back to the source.

This skill must:
- Auto-write only the raw source. Every wiki update requires explicit user approval.
- Run on a fresh install (creates `raw/` lazily on first use).
- Never modify a file in `raw/` after it's written.
- Append a single line to `brain/log.md` capturing what was ingested and what wiki updates landed.
- Render the proposal in under 3 seconds for sources under 50KB.

---

## Pre-flight

1. If `core/identity.md` does not exist, stop with: `Founder OS not set up here. Run /founder-os:setup first.`
2. If `raw/` directory does not exist, create it and copy `templates/raw/README.md` into it (so the convention is documented locally).

## Step 1 - Resolve the source

Detect what the user passed in the argument:

- **URL** (matches `https?://`) - fetch with WebFetch. If WebFetch fails, ask the user to paste the content directly.
- **File path** (exists on disk per Glob) - Read the file content.
- **Anything else** - treat as pasted text. The argument body IS the source.

Determine `source_type` from URL or content:
- gist.github.com or raw markdown -> `gist`
- youtube.com, podcast platforms, audio transcript -> `podcast` (or `transcript` if cleaner)
- arxiv, pdf, paper -> `article`
- twitter.com, x.com, linkedin.com posts, reddit threads -> `thread`
- generic article URL -> `article`
- file ending .pdf, .epub, .mobi -> `book`
- otherwise -> `document` or `other`

Determine `source_title`:
- For URLs: extract page title from fetched content. Fall back to URL slug.
- For file paths: use the filename.
- For pasted text: ask the user for a one-line title if not obvious from the first line.

Determine `source_author`:
- For URLs: extract from byline/meta if found, otherwise omit.
- Otherwise: omit unless obvious.

## Step 2 - Write the raw file

Filename: `raw/YYYY-MM-DD-<slug>.md` where `<slug>` is a kebab-case 3-5 word version of the title.

If a file with that name already exists, append `-2`, `-3`, etc.

Write the file with this structure:

```markdown
---
source_type: <type>
source_url: <url if applicable, omit if not>
source_title: <title>
source_author: <author if known, omit if not>
ingested_at: <YYYY-MM-DD>
ingested_by: ingest
wiki_pages: []
---

<the full source content>
```

`wiki_pages` is left empty for now. It gets updated in Step 6 with whatever the user approved.

Confirm to the user: `Source filed to raw/<filename>. Now proposing wiki updates.`

## Step 3 - Extract candidate wiki updates

Read the source. Extract candidate updates across these categories:

| Category | Target file | What qualifies |
|---|---|---|
| Person | `context/clients.md` (append a roster row) | A person worth tracking in the roster. Check `context/clients.md` first; append a new row only if not already there. |
| Decision input | `context/decisions.md` (append) | Information that bears on an open or pending decision. Check current `context/decisions.md` for matches. |
| Pattern | `brain/patterns.md` (append) | A recurring pattern, framework, concept, or principle worth remembering. |
| Action item | `cadence/daily-anchors.md` or `cadence/weekly-commitments.md` (append to Could Do) | A concrete next action surfaced by the source. |
| Company | `companies/<slug>-business.md` (operator path, append a Source notes section) OR `companies/prospects/<slug>.md` (prospect path, append a Notes entry) | Information about a company or organisation. Check the operator path first, then the prospect path. If no file exists at either path and the company is one the user runs, propose creating the operator file with a one-line description. If the company is one the user is selling to or watching, propose running the `prospect-init` flow instead. |

Aim for 2-5 candidates total. Do NOT propose more than 7. If a source produces zero clear candidates, that's fine - proceed to Step 4 with an empty list.

## Step 4 - Show proposal to user

Output the proposal as a single fenced block:

```
INGESTED: <title>
Source: raw/<filename>

Proposed wiki updates (you approve each):

[1] <category>: <target file>
    <one-sentence summary of the proposed addition>

[2] <category>: <target file>
    <one-sentence summary>

...

Reply with: yes (all), or list numbers to keep (e.g. "1,3"), or no (skip all).
```

If there are zero candidates: `No clear wiki updates surfaced. Source filed to raw/<filename> for later reference.` Then jump to Step 6 with an empty approval list.

## Step 5 - Apply approved updates

For each approved update:

- **Person (append):** Append a roster row to `context/clients.md` with `<name> - <one-line note>` plus `Per [[raw/<filename>]]`.
- **Decision input (append):** Append to `context/decisions.md` under the relevant decision header with provenance: `Per [[raw/<filename>]]: <update>`.
- **Pattern (append):** Append to `brain/patterns.md`: `## YYYY-MM-DD - <pattern title>` plus body and `[[raw/<filename>]]` reference.
- **Action item (append):** Append to the relevant cadence file's "Could Do" section with `[[raw/<filename>]]` reference.
- **Company (append or create):** Check `companies/<slug>-business.md` first (operator path). If it exists, append to a "Source notes" section with `[[raw/<filename>]]` reference. If the operator file does not exist, check `companies/prospects/<slug>.md` (prospect path) and append to its **Notes** section with the same reference. If neither file exists, propose creating the operator file (for companies the user runs) or running the `prospect-init` flow (for companies the user sells to or watches) before appending. Do not write both files in one pass - the source belongs at one path, not both.

Use `[[wiki-link]]` syntax for all cross-references per the Wiki Conventions in CLAUDE.md.

## Step 6 - Update raw frontmatter and brain log

1. Edit the raw file's frontmatter to fill `wiki_pages` with the actually-written list. Empty list if user declined all.

2. Append a single line to `brain/log.md`:
   ```
   ## YYYY-MM-DD ingest | <source title> | wiki updates: <list of files written, or "none">
   ```

## Step 7 - Output summary

Five-line confirmation:

```
INGESTED: <title>
RAW: raw/<filename>
WIKI UPDATES: <count> (<list of files>)
LOG: brain/log.md updated
NEXT: Run /founder-os:lint anytime to audit cross-references.
```

---

## Output rules

- Keep the proposal block scannable. One line per candidate plus one body line.
- Never write to a wiki file without explicit user approval. raw/ is the only auto-write.
- If the user declines all proposals, that's a valid outcome. The source still got filed.

## Edge cases

- **Duplicate source.** If a raw/ file with the same source_url already exists, ask: `This source was ingested on <date>. Re-ingest with a fresh proposal?` Default: no.
- **Very large source (>200KB).** Truncate content in the raw file to the first 200KB and append `... [truncated, original at <url>]`. Note in proposal that extraction was truncated.
- **WebFetch fails.** Ask user to paste the content. Do not make up content.
- **Source has no extractable structure** (e.g., a tweet, a one-line note). Filing to raw/ is still valuable. Output proposal: `No clear wiki updates from this source. Filed for reference.`
- **User says "yes" to a category but the target file is missing.** Create the target file first, then write the update. Mention the file creation in the summary.

<!-- private-tag: not applicable: ingest writes raw source provenance and structured wiki updates; sources are URLs or files, not private speech -->

Wersje

RepozytoriumWynikLicencja
Ta strona · ARCASSystems/FounderOS100MIT
abatyuk/okf100MIT
kriscard/Skills100MIT
wellwelwel/blue-spec100Apache-2.0
zimoliao/scholaraio100MIT
zanderadam/engy100MIT
coreyhaines31/makerskills100MIT
timharris707/skills100MIT
egregore-labs/egregore100MIT

Migawka bazy z 28.10.2026 · wersja paczki f5f2e4aedd90 (skrót SHA-256 całej paczki)

Pobrania w ostatnich 30 dniach: 0 · ranking

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 100wiki-ingest
    Dodaje nowe źródło do wiki, na przykład artykuł, pracę, transkrypt lub plik, i aktualizuje powiązane strony wiki.
  • 100wiki-ingest
    Dodaje podane źródło do vaulta Obsidian z zachowaniem pochodzenia i śledzeniem tez, pojedynczo lub w ograniczonej partii.
  • 100wiki-ingest
    Wczytuje surowy dokument źródłowy do wiki: wyciąga kluczowe informacje, tworzy lub aktualizuje strony, utrzymuje odsyłacze i zapisuje operację w logu.
  • 100wiki-ingest
    Dodaje do wiki opartej na Obsidianie nowe źródło, na przykład wycinek sieciowy lub eksport czatu, i tworzy powiązane strony.
  • 100wiki-ingest
    Dodaje transkrypty, artykuły i notatki do wiki firmowej, wyciąga z nich wiedzę i aktualizuje indeks oraz dziennik.
  • 98wiki-ingest
    Przetwarza pliki źródłowe, artykuły, wycinki i PDF-y w zsyntetyzowane strony wiki oraz pokazuje, co leży w folderze raw i co już zaimportowano.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.