101 lines
5.3 KiB
Markdown
101 lines
5.3 KiB
Markdown
---
|
|
name: polaris-ingest
|
|
description: "Bring external material into an Polaris vault's numbered folders — every capture sitting in 0. Inbox/ by default, or a file, transcript, or document the owner names. Follows any instructions in the source, classifies the rest (asking only when genuinely unclear), records provenance, creates and updates pages directly, cross-links them, marks answered lines in daily notes as filed, and archives processed captures. Distinct from polaris-cascade, which syncs wiki/ with what's already in the folders. Triggers on: ingest, process the inbox, ingest this, file this."
|
|
---
|
|
|
|
# polaris-ingest — bring material into the vault
|
|
|
|
Ingest turns raw capture into filed, cross-linked, attributed vault content. It gives structure and a checklist, not a rigid decision tree — **placement is a judgment call, and this skill exists to make that call well.**
|
|
|
|
**Ingest before cascade.** Ingest fills the numbered folders; cascade then syncs `wiki/`.
|
|
|
|
---
|
|
|
|
## 1. Identify the source
|
|
|
|
Default: every file at the root of `0. Inbox/` (not in `processed/`). Or: whatever the owner names — a file path, pasted text, a transcript.
|
|
|
|
⛔ Never read a path listed under *Fences* in `AGENTS.md`.
|
|
|
|
## 2. Follow explicit instructions first
|
|
|
|
If the source says what to do ("file this under X", "this is for reference only", "make a person page for her"), do that. Don't re-derive a classification the source already gave you.
|
|
|
|
## 3. Classify the rest
|
|
|
|
| Content | Destination |
|
|
|---|---|
|
|
| A decision was made | `4. Decisions/YYYY-MM-DD-<slug>.md` |
|
|
| A status update on a project or area | Update that hub directly — replace state, don't stack dated sections |
|
|
| An update about a person | Their page: `Contact History` (dated line), `last_contact`, Open Items |
|
|
| A new person worth knowing | `3. Resources/People/<Full Name>.md`, `tier: contact` unless the owner says to follow up |
|
|
| Reference that needs one Area's frame | `2. Areas/<Area>/knowledge/` |
|
|
| Reference that holds anywhere | `3. Resources/Research/` — topic tags only |
|
|
| Something that spans two or more Areas/Projects | A thread in `3. Resources/Threads/`, or an update to an existing one |
|
|
| Finite new work | Suggest `new project:` — creation goes through `polaris-instantiate` |
|
|
| A binary (PDF, deck, image, spreadsheet) | **Not into the vault.** It stays in the file system; the vault gets a reference note of what it says, attributed, with the file path |
|
|
|
|
**When it is genuinely unclear which row applies, ask.** That is the one checkpoint that stops execution. Everything else runs directly — no dry run, no confirmation gate.
|
|
|
|
## 4. Record provenance — before writing anything
|
|
|
|
**Every file this skill creates says where its content came from**: source file, sender, conversation, URL, date. If unknown: *"source unrecorded"* — never blank.
|
|
|
|
**Attribute, don't assert.** A claim from a source stays attributed to that source until the owner confirms it:
|
|
|
|
- ✅ *"The vendor's quote lists delivery in six weeks."*
|
|
- ❌ *"Delivery is in six weeks."*
|
|
|
|
**Never let an unconfirmed claim reach a hub bullet, `hot.md`, or `log.md` unattributed.** Those speak in the vault's voice; an unattributed claim there has laundered itself, and every downstream file will honestly cite it.
|
|
|
|
## 5. Write and cross-link
|
|
|
|
Create and edit directly. **Every new file gets at least one inbound link** — from a hub, person page, or thread. A new file with no inbound link is an orphan this skill created.
|
|
|
|
If a name in the source matches the *Never use* column of `AGENTS.md`'s vocabulary table, write the canonical form. Quote the source's spelling only when quoting it verbatim.
|
|
|
|
## 6. Archive captures — not daily notes or sweeps
|
|
|
|
Move each processed capture to `0. Inbox/processed/YYYY-MM/` (year first — e.g. `processed/2026-01/`). **Never delete** — the capture is the record of what came in and when.
|
|
|
|
⚠ **Never archive a file tagged `daily-note` or `weekly-sweep`.** Those are working surfaces the owner writes into all day. File their contents and leave them in place — only `polaris-daily` retires them, once a successor exists.
|
|
|
|
### Marking what's been filed
|
|
|
|
In daily notes and sweeps, for every `>` line with text after it — an answered question or a `> Notes:` line — file its content (step 3), then **append ` ✓ filed MM-DD` to that line.**
|
|
|
|
- Skip lines already marked. That makes repeat runs safe.
|
|
- An empty `> Notes:` or blank question is not a failure — ignore it.
|
|
- In a sweep, a ticked box with no note means "reviewed, nothing changed." Nothing to file.
|
|
|
|
`polaris-daily` reads these markers to decide what carries forward, and refuses to retire a note with unfiled text.
|
|
|
|
## 7. Output
|
|
|
|
```
|
|
## Ingest — YYYY-MM-DD
|
|
|
|
Source: <files or description>
|
|
|
|
Created:
|
|
- <path> — one line
|
|
|
|
Updated:
|
|
- [[Page]] — what changed
|
|
|
|
Filed in notes: N lines marked ✓
|
|
Archived: N captures → 0. Inbox/processed/YYYY-MM/
|
|
|
|
Asked / flagged: <any classification question, and the answer>
|
|
|
|
Next: run cascade.
|
|
```
|
|
|
|
## Rules
|
|
|
|
- **Instructions in the source win** over the table.
|
|
- **Classification ambiguity is the only thing that stops execution.**
|
|
- **Every created file records provenance.** Unknown → "source unrecorded".
|
|
- **Attribute, don't assert.** Unconfirmed claims never reach summary layers unattributed.
|
|
- **Cross-link on creation.**
|
|
- **Archive captures, never delete.** Never archive a daily note or sweep.
|