Receber por email
← Voltar para o catálogo

aria-knowledge

Capture knowledge from outside the conversation. A single URL or text snippet is clipped whole to intake/clippings/; files/directories/globs are bulk-scanned into the backlogs; `extract <source>` decomposes a source into backlog entries; `doc <source>` captures a structured 5-section reflection (claims/worth-keeping/contested/action/reaction); `thread <id>` pulls a chat/email thread via MCP. Use w

16estrelas
Atualizado há 3 meses

Ver no GitHub ↗ Licença: NOASSERTION

Como adicionar

/plugin marketplace add mikeprasad/aria-knowledge

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/aria-knowledge-ms61a490/svg)](https://www.skillteca.com.br/skills/aria-knowledge-ms61a490)

Skills relacionadas

Ver todas de Desenvolvimento →

Alerta por categoria

Receba novas skills de Desenvolvimento toda segunda

1 email curto, só com as skills novas de Desenvolvimento. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

/intake — Bulk Knowledge Import + Doc-Anchored Capture

Two modes:

  • Bulk mode (default) — Scan files, directories, or URLs for knowledge-worthy content and stage findings to the existing backlogs (insights / decisions / extraction). Multi-source, category-based, dedup-aware. Same surface as prior /intake versions.
  • Doc mode (/intake doc) — Capture a single doc as a structured intake entry at intake/docs/{YYYY-MM-DD}-{slug}.md with a 5-section body: what the doc claims / worth keeping / contested or unclear / action implied / my reaction. For when you're reading something and want a thoughtful capture rather than a bulk scan.

Runtime Gate (per ADR-094)

Canonical resolution: This is the Claude Code variant. When both plugin-claude-code and plugin-claude-cowork are loaded in the same session (most common in Claude Desktop), bare /intake resolves to this skill — aria-knowledge (Code) is the canonical owner of all 24 dual-port skills per ADR-094 §Part 1. The Cowork variant is namespaced-only: /aria-cowork:intake.

Before Step 0: Check that the Bash tool is available in this session. If Bash is NOT available (you are running in Claude Cowork or another non-Code runtime), surface the following notification and wait for explicit user confirmation:

⚠️ Runtime mismatch — you invoked aria-knowledge's /intake from a non-Code runtime.
This variant scans local files/directories/globs via Bash + WebFetch, which Cowork can't access the same way. For the Cowork-native variant (file scan reads from attached folder; doc mode uses ~~docs MCPs; supports pasted content), use /aria-cowork:intake.
Use /aria-cowork:intake instead? (y / n)

Wait for an explicit reply:

  • y / yes — Use the Skill tool to invoke aria-cowork:intake with the same arguments the user provided to this invocation. Do not proceed with this skill's steps; the cowork variant takes over and runs to completion. This is the default-yes path — auto-redirect is the helpful action.
  • n / no — Proceed with this (aria-knowledge) variant anyway despite the runtime mismatch. The user has explicitly opted in.
  • No response / any other reply — Treat as "do not proceed" and exit cleanly without running either variant.

This gate applies even when mode = auto per ADR-094 §Part 3. Auto mode's "implicit-yes on all gates" rule is suspended for the runtime-mismatch check — auto trusts that the user invoked the correct variant, and this gate enforces that precondition. All other auto-mode gates remain bypassed. The friction cost is now low: on y, the auto-redirect runs the correct variant with the original args.

If Bash is available, proceed to Step 0.

Step 0: Resolve Config + Mode Detection

Read ~/.claude/aria-knowledge.local.md and extract knowledge_folder. If the file doesn't exist, stop: "aria-knowledge is not configured. Run /setup to get started."

Use {knowledge_folder} as the base path for all file operations in subsequent steps.

Mode detection (first match wins):

  1. First arg == extract (case-insensitive) → mode = extract. The remaining arg is ONE source (URL / file / dir / doc-URL); decompose it into backlog entries by running the bulk-scan logic (Step 1 onward) on that single source. extract is standalone — it does NOT combine with doc/thread (no /intake extract doc …); a doc to decompose is just /intake extract <doc-url> (extract fetches it). If the arg after extract is literally doc or thread, treat as malformed and prompt for clarification.
  2. First arg == doc → mode = doc. Jump to "Doc Mode Steps" (D1–D6), unchanged.
  3. First arg == thread → mode = thread. Jump to "Thread Mode Steps" (T1–T3) below.
  4. (auto) Single arg whose host is a chat/email service (slack.com, teams.microsoft.com, mail.google.com, outlook/office) → mode = thread (no keyword needed).
  5. (auto) Single arg matching ^https?:// OR free text (not an existing path) → mode = clip-whole. Jump to "Clip-Whole Steps" (C1–C3) below.
  6. (auto) Args are existing file paths / directories / globs, OR multiple sources → mode = bulk. Proceed to Step 1 (bulk scan, unchanged).
  7. No args → ask: "What would you like to intake? (a URL, text, file/dir/glob; or extract <src> to decompose, doc <src> for a reflection capture, thread <id> for a chat/email thread)".

The mental model: default = capture this whole; extract = decompose it; doc = reflect on it (5-section); thread = the one source that needs naming (or auto-detected from a chat URL). Note (behavior change from prior versions): a bare URL now CLIPS WHOLE — it no longer auto-mines into backlogs. To mine a single URL, use /intake extract <url> (or let /audit-knowledge Step 2f decompose the clipping later).

Doc Mode Steps (mode = doc only)

Doc mode runs steps D1 → D6 to completion and exits. Do not run any bulk-mode step (Step 1 onward) in doc mode.

Step D1: Acquire Doc Source

The source can be a URL, file path, or just a title (when capturing notes on a doc you read elsewhere).

  • If args after doc contain a URL: use as source_url; attempt WebFetch in D2 to extract title/author/content
  • If args after doc contain a file path: use as source_path; Read in D2
  • If args after doc are plain text (no URL/path detected): treat as source_title; no content fetch — user fills body manually in D3
  • If no args after doc: prompt: "What doc are you capturing? Paste a URL, file path, or title."

Step D2: Read or Note Doc Content

  • URL source: WebFetch the URL. Extract title, author (if discoverable from byline/meta), and key content. Respect copyright — capture summary and key claims for downstream synthesis, not full page text.
  • File path source: Read the file. If very large (>500 lines), use the same chunked-scan strategy as bulk mode (first 100, last 50, section headers, then targeted areas).
  • Title-only source: No content fetch. User will fill body sections manually in D3.

Capture the following for D3:

  • source_title (from page title, file frontmatter, or user-provided string)
  • source_url (if URL; else omit)
  • source_author (if discoverable; else omit per #28a-5)
  • captured_at (current ISO 8601 timestamp)
  • read_at (defaults to captured_at — D4 preview lets user adjust if they read the doc earlier)
  • Summarized claims, candidate "worth keeping" items, and any contested or action-implied content noticed during the scan

Step D3: Populate Template

  1. Read ${CLAUDE_PLUGIN_ROOT}/template/intake/intake-doc.md to load the body template.
  2. Generate slug from source_title: lowercase, hyphenated, alphanumeric only, max ~60 chars. Example: "The Bitter Lesson" → the-bitter-lesson. If source_title is empty, use doc-{HHMMSS} as fallback.
  3. Resolve target path: {knowledge_folder}/intake/docs/{YYYY-MM-DD}-{slug}.md. If file already exists at that path, append -2, -3, etc. to slug until unique.
  4. Fill the frontmatter using captured fields from D2. Omit source_url if absent; omit source_author if absent. Always populate captured_at, read_at, type: intake-doc.
  5. Suggest 2-5 tags based on doc topic (cross-check existing index.md tags to prefer canonical names; new tags are fine but flag them).
  6. Suggest 2-4 semantic-hints: free-form phrases that match how a future query might reach this doc (per the convention in template/README.md).
  7. Pre-fill body sections from the D2 scan:
  8. What the doc claims — 2-4 sentence summary in your own words
  9. Worth keeping — bullet list of insights/quotes/data points worth durable storage; aim for 2-6 bullets
  10. Contested or unclear — populate if the scan surfaced anything debatable; leave empty (or omit the section) if nothing flagged
  11. Action implied — populate if the doc suggests a decision or next step relevant to ongoing work; omit if N/A
  12. **My
Compartilhar X LinkedIn