Learn logo

Learn

OrganizationPopular
agenticnotetaking
learn

Research a topic and grow your knowledge graph. Uses Exa deep researcher, web search, or basic search to investigate topics, files results with full provenance, and chains to processing pipeline. Triggers on "/learn", "/learn [topic]", "research this", "find out about".

Overview

Publisheragenticnotetaking
Repositoryarscontexta
Skill namelearn
Stars
3.5K
Forks
226
Bundled files
1
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 1 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by agenticnotetaking on GitHub. Read the source before you install it.

Installation

Install the Learn AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/agenticnotetaking/arscontexta.git /tmp/arscontexta
mkdir -p .claude/skills
cp -r /tmp/arscontexta/skill-sources/learn .claude/skills/learn
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Learn in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Learn on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Learn is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

EXECUTE NOW

Topic: $ARGUMENTS

Parse immediately:

  • If topic provided: research that topic
  • If topic empty: read self/goals.md for highest-priority unexplored direction and propose it
  • If topic includes --deep/--light/--moderate: force that depth, strip flag from topic
  • If no topic and no goals.md: ask "What would you like to research?"

Steps:

  1. Read config — tool preferences, depth, domain vocabulary
  2. Determine depth — from flags, config default, or fallback to moderate
  3. Research — tool cascade: primary → fallback → last resort
  4. File to inbox — with full provenance metadata
  5. Chain to processing — next step based on pipeline chaining mode
  6. Update goals.md — append new research directions discovered

START NOW. Reference below explains methodology.


Step 1: Read Configuration

ops/config.yaml             — research tools, depth, pipeline chaining
ops/derivation-manifest.md  — domain vocabulary (inbox folder, reduce skill name)

From config.yaml (defaults if missing):

yaml
research:
  primary: exa-deep-research      # exa-deep-research | exa-web-search | web-search
  fallback: exa-web-search
  last_resort: web-search
  default_depth: moderate          # light | moderate | deep
pipeline:
  chaining: suggested             # manual | suggested | automatic

From derivation-manifest.md (universal defaults if missing):

  • Inbox folder: inbox/ (could be journal/, encounters/, etc.)
  • Reduce skill name: /reduce (could be /surface, /break-down, etc.)
  • Domain name and hub MOC name

Step 2: Determine Depth

Priority: explicit flag > config default > moderate

DepthToolSourcesDurationUse When
lightWebSearch2-3~5sChecking a specific fact
moderatemcp__exa__web_search_exa5-8~10-30sExploring a subtopic
deepmcp__exa__deep_researcher_startComprehensive15s-3minMajor research direction

Step 3: Research — Tool Cascade

Output header:

Researching: [topic]

  Depth: [depth]
  Using: [tool name]

Try tools in config priority order. If a tool fails (MCP unavailable, error, empty results), fall to next tier. If ALL tiers fail:

FAIL: Research failed — no research tools available

  Tried:
    1. [primary] — [error]
    2. [fallback] — [error]
    3. WebSearch — [error]

  Try again later or manually add research to [inbox-folder]/

Tool Invocation Patterns

exa-deep-research:

mcp__exa__deep_researcher_start
  instructions: "Research comprehensively: [topic]. Focus on practical findings, key patterns, recent developments, and actionable insights."
  model: "exa-research-fast" (moderate) | "exa-research" (deep)

Poll with mcp__exa__deep_researcher_check until completed. Output during wait:

  Research ID: [id]
  Waiting for results...

exa-web-search:

mcp__exa__web_search_exa  query: "[topic]"  numResults: 8

web-search (last resort, also used for light depth):

WebSearch  query: "[topic]"

On completion: Research complete — [source count] sources analyzed


Step 4: File Results to Inbox

Filename: YYYY-MM-DD-[slugified-topic].md — lowercase, spaces to hyphens, no special chars.

Write to the domain inbox folder (from derivation-manifest, default inbox/). Create folder if missing.

Provenance Frontmatter

Every field serves the provenance chain. The exa_prompt field is most critical — it captures the intellectual context that shaped the research.

yaml
---
description: [1-2 sentence summary of key findings]
source_type: exa-deep-research | exa-web-search | web-search
exa_prompt: "[full query/instruction string sent to the research tool]"
exa_research_id: "[deep researcher ID, omit for web search]"
exa_model: "[exa-research-fast | exa-research, omit for web search]"
exa_tool: "[mcp tool name, omit for deep researcher]"
generated: [ISO 8601 timestamp — run: date -u +"%Y-%m-%dT%H:%M:%SZ"]
domain: "[domain name from derivation-manifest]"
topics: ["[[domain-hub-moc]]"]
---

Include only the fields relevant to the tool used:

  • Deep researcher: source_type, exa_prompt, exa_research_id, exa_model, generated, domain, topics
  • Exa web search: source_type, exa_prompt, exa_tool, generated, domain, topics
  • WebSearch: source_type, exa_prompt, exa_tool, generated, domain, topics

Body Structure

Format for downstream reduce extraction — findings as clear propositions, not raw dumps:

markdown
# [Topic Title]

## Key Findings

[Synthesized findings organized by theme, not by source. Each finding
should be a clear proposition the reduce phase can extract as an atomic insight.]

## Sources

[List of sources with titles and URLs]

## Research Directions

[New questions, unexplored angles, follow-up topics. These feed goals.md.]

Step 5: Chain to Processing

Read chaining mode from config (default: suggested).

Research complete

  Filed to: [inbox-folder]/[filename]

  Next: /[reduce-skill-name] [inbox-folder]/[filename]

Append based on mode:

  • manual: (nothing extra)
  • suggested: Ready for processing when you are.
  • automatic: Replace "Next" line with Queued for /[reduce-skill-name] -- processing will begin automatically.

Step 6: Update goals.md

If self/goals.md exists AND the research uncovered meaningful new directions:

  1. Read goals.md, match existing format
  2. Append under the appropriate section:
    - [New direction] (discovered via /learn: [original topic])

Skip silently if goals.md missing or no meaningful directions found. Do not add filler.


Output Summary

Clean output wrapping the full flow:

ars contexta

Researching: [topic]

  Depth: [depth]
  Using: [tool name]
  [Research ID: abc-123]

  Research complete -- [N] sources analyzed

  Filed to: [inbox-folder]/[filename]

  Next: /[reduce-skill-name] [inbox-folder]/[filename]
    [chaining context]

  [goals.md updated with N new research directions]

Error Handling

ErrorBehavior
No topic, no goals.mdAsk: "What would you like to research?"
Exa MCP unavailableFall through cascade to WebSearch
All tools failReport failures with FAIL status, suggest manual inbox filing
Deep researcher timeout (>5 min)Report timeout, suggest --moderate
Empty resultsReport "No results found", suggest refining topic
Config files missingUse defaults silently
Inbox folder missingCreate it before writing

Skill Selection Routing

After /learn, the self-building loop continues:

PhaseSkillPurpose
Extract insights/[reduce-name]Mine research for atomic propositions
Find connections/[reflect-name]Link new insights to existing graph
Update old notes/[reweave-name]Backward pass on touched notes
Quality check/[verify-name]Description quality, schema, links

/learn is the entry point. Each run feeds the graph, and the graph feeds the next direction through goals.md.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Learn AI skill do?

Research a topic and grow your knowledge graph. Uses Exa deep researcher, web search, or basic search to investigate topics, files results with full provenance, and chains to processing pipeline. Triggers on "/learn", "/learn [topic]", "research this", "find out about".

Why use Learn on TypingMind?

Because you install it once and use it with any model. Learn is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Learn in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/agenticnotetaking/arscontexta/tree/main/skill-sources/learn. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Learn?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Learn?

As many as you like. As long as a model supports skills, you can use Learn with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Learn AI skill free?

Yes. It is published on GitHub by agenticnotetaking under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇