/ingest

> Classify, route, and store incoming signals into the knowledge base.

170 stars

Best use case

/ingest is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

> Classify, route, and store incoming signals into the knowledge base.

Teams using /ingest should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/ingest/SKILL.md --create-dirs "https://raw.githubusercontent.com/Miosa-osa/canopy/main/library/skills/knowledge/ingest/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/ingest/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How /ingest Compares

Feature / Agent/ingestStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

> Classify, route, and store incoming signals into the knowledge base.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# /ingest

> Classify, route, and store incoming signals into the knowledge base.

## Usage
```
/ingest "<text>" [--genre <genre>] [--title <title>]
/ingest --file <path> [--genre <genre>] [--title <title>]
```

## What It Does
Takes raw input (text or file), classifies it along 5 Signal dimensions (Mode, Genre, Type, Format, Structure), routes it to the correct node(s), writes signal files, indexes in SQLite with FTS5, records in episodic memory, and feeds SICA learning patterns. Rejects signals with S/N < 0.3.

## Implementation
Runs: `cd engine && mix optimal.ingest "<text>" [flags]`

The engine automatically:
1. Classifies S=(M,G,T,F,W) dimensions.
2. Routes to primary node + cross-references.
3. Writes signal files to disk.
4. Indexes in SQLite with FTS5 search.
5. Records in episodic memory.
6. Rejects low-quality signals (S/N < 0.3).

After ingestion, you still need to:
- Update context.md for persistent facts.
- Cross-reference financial data to 11-money-revenue.

## Examples
```bash
# Ingest a call summary
/ingest "Ed called about pricing, wants $2K per seat"

# Ingest with explicit genre
/ingest "Sales team closed the enterprise deal" --genre note

# Ingest from a file
/ingest --file notes/team-sync.md --genre transcript --title "Team Sync"
```