Skip to main content

reduce

Extract structured knowledge from source material. Comprehensive extraction is the default — every insight that serves the domain gets extracted. For domain-relevant sources, skip rate must be below 10%. Zero extraction from a domain-relevant source is a BUG. Triggers on "/reduce", "/reduce [file]", "extract insights", "mine this", "process this".

소스 정보

저장소
agenticnotetaking/arscontexta
최근 소스 활동
2026년 2월 17일 21:44
감지된 SKILL.md 언어
영어
스타
3,517
포크
232

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
2 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
reduce
description
Extract structured knowledge from source material. Comprehensive extraction is the default — every insight that serves the domain gets extracted. For domain-relevant sources, skip rate must be below 10%. Zero extraction from a domain-relevant source is a BUG. Triggers on "/reduce", "/reduce [file]", "extract insights", "mine this", "process this".
version
1.0
generated_from
arscontexta-v1.6
user-invocable
true
allowed-tools
Read, Write, Grep, Glob, mcp__qmd__vector_search
context
fork
## Runtime Configuration (Step 0 — before any processing) Read these files to configure domain-specific behavior: 1. **`ops/derivation-manifest.md`** — vocabulary mapping, extraction categories, platform hints - Use `vocabulary.notes` for the notes folder name - Use `vocabulary.inbox` for the inbox folder name - Use `vocabulary.note` for the note type name in output - Use `vocabulary.note_plural` for the plural form - Use `vocabulary.reduce` for the process verb in output - Use `vocabulary.cmd_reflect` for the next-phase command name - Use `vocabulary.cmd_reweave` for the backward-pass command name - Use `vocabulary.cmd_verify` for the verification command name - Use `vocabulary.extraction_categories` for domain-specific extraction table - Use `vocabulary.topic_map` for MOC/topic map references - Use `vocabulary.topic_maps` for plural form 2. **`ops/config.yaml`** — processing depth, pipeline chaining, selectivity - `processing.depth`: deep | standard | quick - `processing.chaining`: manual | suggested | automatic - `processing.extraction.selectivity`: strict | moderate | permissive 3. **`ops/queue/queue.json`** — current task queue (for handoff mode) If these files don't exist (pre-init invocation or standalone use), use universal defaults: - depth: standard - chaining: suggested - selectivity: moderate - notes folder: `notes/` - inbox folder: `inbox/` --- ## THE MISSION (READ THIS OR YOU WILL FAIL) You are the extraction engine. Raw source material enters. Structured, atomic {vocabulary.note_plural} exit. Everything between is your judgment — and that judgment must err toward extraction, not rejection. ### The Core Distinction | Concept | What It Means | Example | |---------|---------------|---------| | **Having knowledge** | The vault contains information | "We store notes in folders" | | **Articulated reasoning** | The vault explains WHY something works as a traversable {vocabulary.note} | "folder structure mirrors cognitive chunking because..." | **Having knowledge is not the same as articulating it.** Even if information is embedded in the system, the vault may lack the externalized reasoning explaining WHY it works. That reasoning is what you extract. ### The Comprehensive Extraction Principle **For domain-relevant sources, COMPREHENSIVE EXTRACTION is the default.** This means: 1. **Extract ALL core {vocabulary.note_plural}** — direct assertions about the domain that can stand alone as atomic propositions. 2. **Extract ALL evidence and validations** — if source confirms an approach, that confirmation IS the {vocabulary.note}. Evidence is extractable even when the conclusion is already known, because the reasoning path matters. 3. **Extract ALL patterns and methods** — techniques, workflows, practices. Named patterns are referenceable. Unnamed intuitions are not. 4. **Extract ALL tensions** — contradictions, trade-offs, conflicts. These are wisdom, not problems. 5. **Extract ALL enrichments** — if source adds detail to existing {vocabulary.note_plural}, create enrichment tasks. Near-duplicates almost always add value. **"We already know this" means we NEED the articulation, not that we should skip it.** ### The Extraction Question (ask for EVERY candidate) **"Would a future session benefit from this reasoning being a retrievable {vocabulary.note}?"** If YES -> extract to appropriate category If NO -> verify it is truly off-topic before skipping ### INVALID Skip Reasons (these are BUGS) - "validates existing approach" — validations ARE the evidence. Extract them. - "already captured in system config" — config is implementation, not articulation. The WHY needs a {vocabulary.note}. - "we already do this" — DOING is not EXPLAINING. The explanation needs externalization. - "obvious" — obvious to whom? Future sessions need explicit reasoning. - "near-duplicate" — near-duplicates almost always add detail. Create enrichment task. - "not a claim" — is it an implementation idea? tension? validation? Those ARE extractable. ### VALID Skip Reasons (rare) - Completely off-topic (unrelated to {vocabulary.domain}) - Too vague to act on (applies to everything, disagrees with nothing) - Pure summary with zero extractable insight - LITERALLY identical text already exists (not "same topic" — IDENTICAL) **For domain-relevant sources: skip rate < 10%. Zero extraction = BUG.** --- ## EXECUTE NOW **Target: $ARGUMENTS** Parse immediately: - If target contains a file path: extract insights from that file - If target contains `--handoff`: output RALPH HANDOFF block + task entries at end - If target is empty: scan {vocabulary.inbox}/ for unprocessed items, pick one - If target is "inbox" or "all": process all inbox items sequentially **Execute these steps:** 1. Read the source file fully — understand what it contains 2. **Source size check:** If source exceeds 2500 lines, STOP. Plan chunks of 350-1200 lines. Process each chunk with fresh context. See "Large Source Handling" section below. 3. Hunt for insights that serve the domain (see extraction categories below) 4. For each candidate: - Tier 1 (preferred): use `mcp__qmd__vector_search` with query "[claim as sentence]", collection="{vocabulary.notes_collection}", limit=5 - Tier 2 (CLI fallback): `qmd vsearch "[claim as sentence]" --collection {vocabulary.notes_collection} -n 5` - Tier 3 fallback if qmd is unavailable: use keyword grep duplicate checks - If duplicate exists: evaluate for enrichment or skip - Classify as OPEN (needs more investigation) or CLOSED (standalone, ready) 5. Output extraction report with titles, classifications, extraction rationale 6. Wait for user approval before creating files 7. If `--handoff` in target: create per-claim task files, update queue, output RALPH HANDOFF block **START NOW.** Reference below explains methodology — use to guide, not as output. ### Observation Capture (during work, not at end) When you encounter friction, surprises, methodology insights, process gaps, or contradictions — capture IMMEDIATELY: | Observation | Action | |-------------|--------| | Any observation | Create atomic note in `ops/observations/` with prose-sentence title | | Tension: content contradicts existing {vocabulary.note} | Create atomic note in `ops/tensions/` with prose-sentence title | The handoff Learnings section summarizes what you ALREADY logged during processing. --- # Reduce Extract composable {vocabulary.note_plural} from source material into {vocabulary.notes}/. ## Philosophy **Extract the REASONING behind what works, not just observations about what works.** This is the extraction phase of the pipeline. You receive raw content and extract insights that serve the vault's domain. The mission is building **externalized, retrievable reasoning** — a graph of atomic propositions that can be traversed, connected, and built upon. **THE CORE DISTINCTION:** | Concept | Example | What to Extract | |---------|---------|-----------------| | **We DO this** | "We tag notes with topics" | — (not sufficient) | | **We explain WHY** | "topic tagging enables cross-domain navigation because..." | This | The vault is not just an implementation. It is **the articulated argument for WHY the implementation works.** **THE EXTRACTION QUESTION:** - BASIC thinking: "Is this a standalone composable claim?" - BETTER thinking: "Does this serve {vocabulary.domain}?" - BEST thinking: **"Would a future session benefit from this reasoning being a retrievable {vocabulary.note}?"** If YES -> extract to appropriate category (even if "we already know this") If NO -> skip (RARE for domain-relevant sources — verify it is truly off-topic) **THE RULE:** Implementation without articulation is incomplete. If we DO something but lack a {vocabulary.note} explaining WHY it works, that articulation needs extraction. --- ## Extraction Categories ### What To Extract {DOMAIN:extraction_categories} **The structural invariant:** Every domain's extraction has these universal categories regardless of domain: | Category | What to Find | Output Type | Gate Required? | |----------|--------------|-------------|----------------| | Core domain {vocabulary.note_plural} | Direct assertions about {vocabulary.domain} | {vocabulary.note} | NO | | Patterns | Recurring structures across sources | {vocabulary.note} | NO | | Comparisons | How different approaches compare, X vs Y, trade-offs | {vocabulary.note} | NO | | Tensions | Contradictions, conflicts, unresolved trade-offs | tension note | NO | | Anti-patterns | What breaks, what to avoid, failure modes | problem note | NO | | Enrichments | Content that adds detail to existing {vocabulary.note_plural} | enrichment task | NO | | Open questions | Unresolved questions worth tracking | {vocabulary.note} (open) | NO | | Implementation ideas | Techniques, workflows, features to build | methodology note | NO | | Validations | Evidence confirming an approach works | {vocabulary.note} | NO | | Off-topic general content | Insight unrelated to {vocabulary.domain} | apply selectivity gate | YES | **IMPORTANT:** Categories 1-9 bypass the selectivity gate. They extract directly to the appropriate output type. The selectivity gate exists ONLY for filtering off-topic content from general sources. ### Category Detection Signals Hunt for these signals in every source: **Core domain signals:** - Direct assertions: "the key insight is...", "this means that...", "the pattern is..." - Evidence: "research shows...", "data indicates...", "studies confirm..." - Named methods: any named system, technique, or framework relevant to {vocabulary.domain} **Comparison signals:** - "X vs Y", "trade-off between...", "prefer X when...", "unlike Y, this..." - "choose X when...", "depends on whether..." **Tension signals:** - "contrary to...", "however...", "the problem with...", "fails when..." - "on the other hand...", "but this conflicts with..." **Anti-pattern signals:** - "systems fail when...", "the anti-pattern is...", "avoid this because..." - Warnings, cautionary examples, failure postmortems **Enrichment signals:** - Content covering ground similar to an existing {vocabulary.note} - New examples, evidence, or framing for an established claim - Deeper explanation of something already captured shallowly **Implementation signals:** - "we could build...", "would enable...", "a tool that...", "pattern for..." - Actionable techniques, concrete workflows **Validation signals:** - "this supports...", "evidence shows...", "validates...", "confirms..." - Research that grounds existing practice in theory ### The Mission Lens (REQUIRED) For EVERY candidate, ask: **"Does this serve {vocabulary.domain}?"** - YES -> **extract to appropriate category** (gate does NOT apply) - NO -> apply selectivity gate (for off-topic filtering only) **For domain-relevant sources:** almost everything is YES. The gate barely applies. Skip rate < 10%. --- ## The Selectivity Gate (for OFF-TOPIC content filtering) **CRITICAL:** This gate exists to filter OUT content that does not serve {vocabulary.domain}. It applies ONLY to standard claims from GENERAL (off-topic) sources. **Do NOT use gate to reject:** - Implementation ideas ("not a claim" is WRONG — it is roadmap) - Tensions ("not a claim" is WRONG — it is wisdom) - Enrichments ("duplicate" is WRONG — it adds detail) - Validations ("already known" is WRONG — it is evidence) - Open questions ("not testable" is WRONG — it is direction) For STANDARD claims from general sources, verify all four criteria pass: ### 1. Standalone The claim is understandable without source context. Someone reading this {vocabulary.note} cold can grasp what it argues without needing to know where it came from. Fail: "the author's third point about methodology" Pass: "explicit structure beats implicit convention" ### 2. Composable This {vocabulary.note} would be linked FROM elsewhere. {vocabulary.note_plural} function as APIs. If you cannot imagine writing `since [[this claim]]...` in another {vocabulary.note}, it is not composable. Fail: a summary of someone's argument Pass: a claim you could invoke while building your own argument ### 3. Novel Not already captured in the vault. Semantic duplicate check AND existing {vocabulary.note_plural} scan both clear. Fail: semantically equivalent to an existing {vocabulary.note} Pass: genuinely new angle not yet articulated ### 4. Connected Relates to existing thinking in the vault. Isolated insights that do not connect to anything are orphans. They rot. Fail: interesting observation about unrelated domain Pass: extends, contradicts, or deepens existing {vocabulary.note_plural} **If ANY criterion fails: do not extract.** --- ## Workflow ### 1. Orient Before reading the source, understand what already exists: ```bash # Get descriptions from existing notes for f in {vocabulary.notes}/*.md; do [[ -f "$f" ]] && echo "=== $(basename "$f" .md) ===" && rg "^description:" "$f" -A 0 done ``` Scan descriptions to understand current {vocabulary.note_plural}. This prevents duplicate extraction and helps identify connection points and enrichment opportunities. ### 2. Read Source Fully Read the ENTIRE source. Understand what it contains, what it argues, what domain it serves. **Planning the extraction:** - How many {vocabulary.note_plural} do you expect from this source? - What categories will be represented? - Is this domain-relevant (comprehensive extraction) or general (gate applies)? **Explicit signal phrases to hunt:** - "the key insight is..." - "this means that..." - "the pattern is..." - "contrary to..." - "the implication..." - "what matters here is..." - "the real issue is..." - "this suggests..." **Implicit signals (the best insights often hide in):** - Problems that imply solutions - Constraints that reveal what works - Failures that suggest approaches - Asides that contain principles - Tangents that reveal mental models **What you are hunting:** - Assertions that could be argued for or against - Patterns that apply beyond this specific source - Insights that change how you think about something - Claims that would be useful to invoke elsewhere ### 3. Categorize FIRST, Then Route (MANDATORY) **STOP. Before ANY filtering, determine the category of each candidate.** This is the critical step that prevents over-rejection. Categorize FIRST, then route to the appropriate extraction path. | Category | How to Identify | Route To | |----------|-----------------|----------| | Core domain {vocabulary.note} | Direct assertion about {vocabulary.domain} | -> {vocabulary.note} (SKIP selectivity gate) | | Implementation idea | Describes a feature, tool, system, or workflow to build | -> methodology note (SKIP selectivity gate) | | Tension/challenge | Describes a conflict, risk, or trade-off | -> tension note (SKIP selectivity gate) | | Validation | Evidence confirming an approach works | -> {vocabulary.note} (SKIP selectivity gate) | | Near-duplicate | Semantic search finds related vault {vocabulary.note} | -> evaluate for enrichment task | | Off-topic claim | General insight not about {vocabulary.domain} | -> apply selectivity gate |
GitHub에서 보기
이 SKILL.md는 매우 커서 SkillsMP가 여기에는 첫 섹션만 미리 보여줍니다. GitHub에서 보기