Add a new knowledge domain to your existing system. Derives domain-specific configuration through conversation, generates domain folders, templates, and vocabulary while preserving and connecting to your existing architecture.
中文简介正在准备中。当前显示原文说明。
Add a source file to the processing queue. Checks for duplicates, creates archive folder, moves source from inbox, creates extract task, and updates queue. Triggers on "/seed", "/seed [file]", "queue this for processing".
中文简介正在准备中。当前显示原文说明。
查看安装方法安装前可以查看交给 AI 代理的指令内容。
Target: $ARGUMENTS
The target MUST be a file path. If no target provided, list {DOMAIN:inbox}/ contents and ask which to seed.
Read ops/derivation-manifest.md (or fall back to ops/derivation.md) for domain vocabulary mapping. All output must use domain-native terms. If neither file exists, use universal terms.
START NOW. Seed the source file into the processing queue.
Confirm the target file exists. If it does not, check common locations:
{DOMAIN:inbox}/{filename}If the file cannot be found, report error and stop:
ERROR: Source file not found: {path}
Checked: {locations checked}
Read the file to understand:
Check if this source has already been processed. Two levels of detection:
Search the queue file and archive folders for matching source names:
SOURCE_NAME=$(basename "$FILE" .md | tr ' ' '-' | tr '[:upper:]' '[:lower:]')
# Check queue for existing entry
# Search in ops/queue.yaml, ops/queue/queue.yaml, or ops/queue/queue.json
grep -l "$SOURCE_NAME" ops/queue*.yaml ops/queue/*.yaml ops/queue/*.json 2>/dev/null
# Check archive folders
ls -d ops/queue/archive/*-${SOURCE_NAME}* 2>/dev/null
If semantic search is available (qmd MCP tools or CLI), check for content overlap:
mcp__qmd__search query="claims from {source filename}" limit=5
Or via keyword search in the {DOMAIN:notes}/ directory:
grep -rl "{key terms from source title}" {DOMAIN:notes}/ 2>/dev/null | head -5
If either check finds a match:
Create the archive folder. The date-prefixed folder name ensures uniqueness.
DATE=$(date -u +"%Y-%m-%d")
SOURCE_BASENAME=$(basename "$FILE" .md | tr ' ' '-' | tr '[:upper:]' '[:lower:]')
ARCHIVE_DIR="ops/queue/archive/${DATE}-${SOURCE_BASENAME}"
mkdir -p "$ARCHIVE_DIR"
The archive folder serves two purposes:
Move the source file from its current location to the archive folder. This is the claiming step — once moved, the source is owned by this processing batch.
{DOMAIN:inbox} sources get moved:
if [[ "$FILE" == *"{DOMAIN:inbox}"* ]] || [[ "$FILE" == *"inbox"* ]]; then
mv "$FILE" "$ARCHIVE_DIR/"
FINAL_SOURCE="$ARCHIVE_DIR/$(basename "$FILE")"
fi
Sources outside {DOMAIN:inbox} stay in place:
# Living docs (like configuration files) stay where they are
# Archive folder is still created for task files
FINAL_SOURCE="$FILE"
Use $FINAL_SOURCE in the task file — this is the path all downstream phases reference.
Why move immediately: All references (task files, {DOMAIN:note_plural}' Source footers) use the final archived path from the start. No path updates needed later. If it is in {DOMAIN:inbox}, it is unclaimed. Claimed sources live in archive.
Find the highest existing claim number across the queue and archive to ensure globally unique claim IDs.
# Check queue for highest claim number in file references
QUEUE_MAX=$(grep -oE '[0-9]{3}\.md' ops/queue*.yaml ops/queue/*.yaml 2>/dev/null | \
grep -oE '[0-9]{3}' | sort -n | tail -1)
QUEUE_MAX=${QUEUE_MAX:-0}
# Check archive for highest claim number
ARCHIVE_MAX=$(find ops/queue/archive -name "*-[0-9][0-9][0-9].md" 2>/dev/null | \
grep -v summary | sed 's/.*-\([0-9][0-9][0-9]\)\.md/\1/' | sort -n | tail -1)
ARCHIVE_MAX=${ARCHIVE_MAX:-0}
# Next claim starts after the highest
NEXT_CLAIM_START=$((QUEUE_MAX > ARCHIVE_MAX ? QUEUE_MAX + 1 : ARCHIVE_MAX + 1))
Claim numbers are globally unique and never reused across batches. This ensures every claim file name ({source}-{NNN}.md) is unique vault-wide.
Write the task file to ops/queue/${SOURCE_BASENAME}.md:
---
id: {SOURCE_BASENAME}
type: extract
source: {FINAL_SOURCE}
original_path: {original file path before move}
archive_folder: {ARCHIVE_DIR}
created: {UTC timestamp}
next_claim_start: {NEXT_CLAIM_START}
---
# Extract {DOMAIN:note_plural} from {source filename}
## Source
Original: {original file path}
Archived: {FINAL_SOURCE}
Size: {line count} lines
Content type: {detected type}
## Scope
{scope guidance if provided via --scope, otherwise: "Full document"}
## Acceptance Criteria
- Extract claims, implementation ideas, tensions, and testable hypotheses
- Duplicate check against {DOMAIN:notes}/ during extraction
- Near-duplicates create enrichment tasks (do not skip)
- Each output type gets appropriate handling
## Execution Notes
(filled by /reduce)
## Outputs
(filled by /reduce)
Add the extract task entry to the queue file.
For YAML queues (ops/queue.yaml):
- id: {SOURCE_BASENAME}
type: extract
status: pending
source: "{FINAL_SOURCE}"
file: "{SOURCE_BASENAME}.md"
created: "{UTC timestamp}"
next_claim_start: {NEXT_CLAIM_START}
For JSON queues (ops/queue/queue.json):
{
"id": "{SOURCE_BASENAME}",
"type": "extract",
"status": "pending",
"source": "{FINAL_SOURCE}",
"file": "{SOURCE_BASENAME}.md",
"created": "{UTC timestamp}",
"next_claim_start": {NEXT_CLAIM_START}
}
If no queue file exists: Create one with the appropriate schema header (phase_order definitions) and this first task entry.
--=={ seed }==--
Seeded: {SOURCE_BASENAME}
Source: {original path} -> {FINAL_SOURCE}
Archive folder: {ARCHIVE_DIR}
Size: {line count} lines
Content type: {detected type}
Task file: ops/queue/{SOURCE_BASENAME}.md
Claims will start at: {NEXT_CLAIM_START}
Claim files will be: {SOURCE_BASENAME}-{NNN}.md (unique across vault)
Queue: updated with extract task
Next steps:
/ralph 1 --batch {SOURCE_BASENAME} (extract claims)
/pipeline will handle this automatically
Manual queue management is error-prone. This skill:
Task files use the source basename for human readability:
{source-basename}.md{source-basename}-{NNN}.md{source-basename}-summary.md{date}-{source-basename}/Claim numbers (NNN) are globally unique across all batches, ensuring every filename is unique vault-wide. This is required because wiki links resolve by filename, not path.
{DOMAIN:inbox} source (most common):
{DOMAIN:inbox}/research/article.md
| /seed
v
ops/queue/archive/2026-01-30-article/article.md <- source moved here
ops/queue/article.md <- task file created
Living doc (outside {DOMAIN:inbox}):
CLAUDE.md -> stays as CLAUDE.md (no move)
ops/queue/archive/2026-01-30-claude-md/ <- folder still created
ops/queue/claude-md.md <- task file created
When /archive-batch runs later, it moves task files into the existing archive folder and generates a summary.
Source outside {DOMAIN:inbox}: Works — source stays in place, archive folder is created for task files only.
No queue file: Create ops/queue/queue.yaml (or .json) with schema header and this first entry.
Large source (2500+ lines): Note in output: "Large source ({N} lines) -- /reduce will chunk automatically."
Source is a URL or non-file: Report error: "/seed requires a file path."
No ops/derivation-manifest.md: Use universal vocabulary for all output.
never:
always:
还没有评价。欢迎分享你的使用感受。
无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。
还没有评论。来写第一条吧。
Add a new knowledge domain to your existing system. Derives domain-specific configuration through conversation, generates domain folders, templates, and vocabulary while preserving and connecting to your existing architecture.
中文简介正在准备中。当前显示原文说明。
Research-backed evolution advice for your knowledge system. Analyzes health reports, friction patterns, and derivation history to propose specific changes with research justification. Never auto-implements — proposals require your approval.
中文简介正在准备中。当前显示原文说明。
Query the bundled research knowledge graph for methodology guidance. Routes questions through a 3-tier knowledge base — WHY (research claims), HOW (guidance docs), WHAT IT LOOKS LIKE (domain examples) — plus structured reference documents. Returns research-backed answers grounded in specific claims with practical application to the user's system. Triggers on "/ask", "/ask [question]", "why does my system...", "how should I...".
中文简介正在准备中。当前显示原文说明。
Interactive knowledge graph analysis. Routes natural language questions to graph scripts, interprets results in domain vocabulary, and suggests concrete actions. Triggers on "/graph", "/graph health", "/graph triangles", "find synthesis opportunities", "graph analysis".
中文简介正在准备中。当前显示原文说明。
Run condition-based vault health diagnostics. 8 categories — schema compliance, orphan detection, link health, description quality, three-space boundaries, processing throughput, stale notes, MOC coherence. 3 modes — quick (schema+orphans+links), full (all 8), three-space (boundary violations only). Returns actionable FAIL/WARN/PASS report with specific fixes ranked by impact. Triggers on "/health", "check vault health", "maintenance report", "what needs fixing".
中文简介正在准备中。当前显示原文说明。
Contextual guidance and command discovery. Three modes — narrative (first-time), contextual (mid-task), compact (quick reference). Shows available commands, active skills, and intelligent suggestions based on vault state. Triggers on "/help", "what can I do", "show commands", "how does this work".
中文简介正在准备中。当前显示原文说明。