import-resource
Use when asked to import, translate, research, or compile something into the vault as a PARA-ZK resource note (file, URL, web, or synthesis).
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when asked to import, translate, research, or compile something into the vault as a PARA-ZK resource note (file, URL, web, or synthesis).
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use when ingesting canonical PARA-ZK sources into the LLM-Wiki — per-import, delta, uncited, or targeted re-ingest.
Use when reorganizing the existing PARA-ZK LLM-Wiki domain topology.
Use when a query or conversation against the LLM-Wiki produces a durable synthesis worth keeping — a multi-source comparison/connection, or a standard concept the wiki lacks. Proposes filing it back as a new or updated wiki page and writes ONLY on the user's confirmation. Skip one-off lookups and navigation.
Use only when the user explicitly asks to lint or health-check the LLM-Wiki. Never run it as part of ingest or normal wiki work.
Install or refresh PARA-ZK Codex custom agents from the plugin's bundled Claude-style agent definitions. Use when a Codex user wants PARA-ZK workflows such as wiki-ingest to spawn named agents like wiki-weaver, or after installing/upgrading the PARA-ZK plugin in Codex.
Use after implementation to run tier-classified review agents and produce a consolidated verdict.
| name | import-resource |
| description | Use when asked to import, translate, research, or compile something into the vault as a PARA-ZK resource note (file, URL, web, or synthesis). |
| argument-hint | <what to import> [from file/URL/web] |
Turn a request into faithful, clean PARA-ZK resource note(s) — for any source and any transform. The CLI provides the unit commands; this skill is how to combine them well. The failure this skill prevents: producing a raw, unreviewed dump (HTML→text artifacts, broken tables, ungrounded claims) and stopping there. The output must read as if written by hand.
The PARA-ZK vault is the user's private, local, single-user store — saving or compiling material into it is personal-use note-taking, not redistribution; do not refuse on distribution grounds. Be honest about provenance and uncertainty: never fabricate facts or sources, and never silently rewrite an author's words when asked to preserve or translate.
Decide four things from the request:
wiki-ingest → wiki-weaver); never "synthesize" the resource note itself.Ask the transform up front — before any gathering. When the request names a concrete source ("import X") but does not say how to treat it, ask the user immediately, before fetching, reading, or converting (those steps are slow; the user should answer right after their request, not after a long wait). One question, dropping any choice the request already fixed:
| Choice | Meaning |
|---|---|
| Verbatim (default) | Keep the source language and structure exactly; fix only conversion artifacts. |
| Translation | Faithful translation into the target language (default: the vault locale). For concrete sources, default scope is full source, not summary. |
| Summary | Condense to the essentials, with citations. |
Skip the question when the request already fixes the transform ("translate it", "summarize it", "keep it verbatim") and proceed with that mode. The same three choices apply to a research / compile request ("research X and import" — e.g. find every Seoul subway line and write one resource): there, verbatim means reproducing the gathered source passages faithfully (quoted and attributed, in their original language), translation the same in the target language, and summary a condensed write-up with citations. Ask the choice up front as usual; only the details that depend on what you find — the translation target language, and the output shape — are confirmed once the material is in view.
For multiple concrete sources, create one translated/verbatim resource per source unless the user requested a compiled overview. If the source set is large, proceed source-by-source and report progress; ask about narrowing only when the user has not fixed the scope or completion is practically impossible in the current run. For open-ended research, state the selected source set once known before committing to the output set.
For multi-source imports, before starting each new source, re-state the active import contract in one line: transform, scope, output title rule, source-language preservation rule, and verification target. Do not reread this whole skill unless the source type changes or the previous source revealed an ambiguity; when the type changes, read only the relevant reference (for example PDF conversion).
If the output shape is ambiguous (e.g. "10 cases" — one compiled note or ten notes?), pick a sensible default and state it; ask only if the choice materially changes the result.
The para-zk:* commands below are the PARA-ZK CLI, run through whichever Obsidian CLI is on
PATH: optsidian para-zk:… when optsidian is installed (preferred), or obsidian para-zk:…
on the native CLI when it is not — the two are interchangeable. The examples in this skill use
the optsidian prefix; substitute obsidian if that is what your environment has, and keep the
same prefix for every call.
Run para-zk:conventions ONCE first for this task, then call para-zk:describe /
para-zk:describe type=resource as reference for the create command + inputs. Use the returned
invocation style for every call. Identify the note(s) to link from (area / project / resource).
Prefer a clean HTML/source rendering when one exists — no extraction step, and exact
text, math, and citations. For arXiv papers, try the HTML view (https://arxiv.org/html/<id>
or https://ar5iv.org/abs/<id>) first; if citations/bibliography come through unresolved
(\cite{...}, keys like [zhang2022kinematic], \printbibliography, missing References),
fetch the arXiv source bundle and use its .tex/.bbl/.bib to restore numbered citations
and the bibliography.
If the source itself is a PDF, or no clean HTML/source rendering exists, read references/pdf.md before converting. Convert PDFs with marker via the bundled script, then treat marker Markdown as a draft: repair residual extraction glitches, attach useful extracted figures, and drop duplicate/debug images before applying the transform.
Record source provenance for everything (URL, file path, identifier, date, license/permission
where relevant). The four core fields go in the resource frontmatter at create time (see step 6):
url, first_author, license, kind — license as an SPDX identifier (short recognizable
token like arXiv when none fits, never a long sentence), kind as a code. Keep any extra detail
(DOI, version, other URLs) in a short body provenance section only when useful. Do not add routine
transform notes such as "translated", "converted", or "cleaned" unless the user explicitly asks for
that metadata or it is needed to avoid ambiguity. For images:
; Obsidian renders
remote images inline, so do not download or attach it. For HTML/web sources, preserve or
absolutize the image URL; do not rewrite it into a vault wikilink such as
![[assets/<slug>/figure.png]] unless the user explicitly asked for offline/local assets.marker extracted from a PDF →
optsidian para-zk:attach-file source=<abs-path> folder=assets/<slug>, then embed only the
returned ![[…]]. Never invent an assets/... path by hand.Apply the transform faithfully, and always make the form tidy:
For translation requests, do the translation yourself, in context — never route the text
through an external machine-translation engine or tool (Google Translate, DeepL, a translation
API or trans-style CLI); only your own translation can apply the rules below, and a generic MT
pass yields translationese and mangles terminology, math, and citations.
Preserve the source's structure, argument flow, and domain precision, but write natural target-language technical prose. A translation is not transliteration, and not source language with target-language particles attached. Keep the source-language form only for source titles and identity-bearing technical names: paper/book/article titles, model/method/architecture names, dataset and benchmark names, standard acronyms/initialisms, proper nouns, symbols, units, code-/API-facing identifiers, citation keys, URLs, and method names (e.g. Attention Is All You Need, Diffusion Policy, ResNet, ImageNet, MMLU). Also keep the handful of ordinary terms the field itself conventionally writes in the source script even though a target word exists (for ML, e.g. epoch, gradient, baseline, advantage, rollout).
Translate ordinary prose and non-identity terms into the field's settled target-language form: common nouns, verbs, adjectives, and explanatory phrases should not remain in the source language just because the topic is technical or near a formula. Use the target field's standard word (observation, demonstration, learning, policy, action, task, inference, success rate, manipulation) or, where the field writes a loanword, its standard transliteration (benchmark, embedding, minibatch). For ordinary prose, when unsure, translate. For identity-bearing names, preserve the source form.
Decide each recurring term once and apply it uniformly; never alternate between the source
word and its translation for the same concept. Inflect the sentence naturally around any kept
source term rather than producing translationese. Do not invent terminology, over-localize,
simplify beyond what was asked, or add bilingual glosses. Preserve equations, symbols, citations,
tables, and figure references unless instructed otherwise. Keep citation markers in the body
([27]); resolve bare citation keys back to the paper's numbered form, and do not rewrite
introduced in [27] as "Zhang et al." unless the source itself does.
Preserve the full source title in the H1, alias, or provenance as requested. When a heading contains an identity-bearing source title, model/method/architecture name, dataset/benchmark name, acronym, proper noun, symbol, or code/API identifier, preserve that named object in source form. Do not infer translation style from existing vault notes unless the user explicitly names a note as the style reference; use these rules and the source text as the standard.
Across all of them: real headings (#/##), valid Markdown tables (no empty cells, no
equations trapped in cells), math as Obsidian MathJax LaTeX ($…$ inline, $$…$$ block;
do not use \(...\)/\[...\]), figures embedded (web images by URL,
local images attached), boilerplate dropped, and any dead intra-document page-anchor scaffolding stripped. Empty <span id="page-N-M"></span> anchors and the [text](#page-N-M) links that point at them do NOT resolve in Obsidian (the link renders as a dead "page-N-M not found" link), so strip every such anchor and delink every [text](#page-N-M) to its plain visible text (그림 [1](#page-0-0)a → 그림 1a; a [Author et al.](#page-13-0) citation → Author et al.); a heading-embedded anchor also breaks PARA-ZK's #heading citation matching. Source provenance lives in the frontmatter (step 6);
only when there is useful overflow detail beyond url/first_author/license/kind (DOI,
version, extra URLs) add a short Source / provenance section at the top — otherwise omit it.
For verbatim imports and translations, include the source's own References/Bibliography section
in the body unless the user asks to omit it. Preserve bibliography entries in their original
bibliographic form, including paper/book titles; do not translate cited work titles inside
References. Numbered in-text citations and bibliography entries ([1], [2], …) stay plain text
— keep each entry as its own plain line [1] …. Never write them as a - [1] list item:
Obsidian renders - [x] whose bracket holds a single character (so - [0] through - [9]) as a
task checkbox, silently turning a bibliography into a to-do list. These are the source's content,
not the note's reference registry — do not copy them into PARA-ZK references. That registry
holds only the connections the vault owner deliberately curates (the area/project it belongs to,
related vault notes); leave it to them to register the few they want, as [[wiki]] links to notes
they actually keep.
Before storing, re-read each draft and repair conversion artifacts, broken/empty table cells, stray HTML, duplicated headers, dangling markers, bad math delimiters, and broken figure embeds. The note must read as hand-written, not auto-generated.
For translations, do not treat artifact checks as quality checks. Compare the source and translated draft for coverage: title, authors, abstract, every section/subsection, tables, equations, figures/captions, appendices, acknowledgments, and references. Confirm that ordinary prose is target-language, identity-bearing names are preserved, and References titles remain in the source language. If the result reads like source-language sentences with target-language particles, rewrite it before storing.
For long translations, quality-sample the beginning, middle, and end before storing. The translation quality must be consistent across the whole source; a polished abstract/introduction does not compensate for later sections reverting to source-language phrasing. If a sampled later section is weaker than the opening, continue the revision pass from that point onward and sample again.
Run a source-language residue scan on the translated draft before storing. Search for common
ordinary terms that agents often over-preserve in technical prose (for ML papers, terms such as
model, layer, network, input, output, position, sequence, training, task,
dataset, performance, method, approach, result, experiment, figure, table,
section, sentence, token, feature, fine-tuning, pre-training, learning rate, and
batch size). Each hit must be either an identity-bearing name, code/API identifier, table label
that is intentionally preserved, or a field-conventional source-script term; otherwise translate
it into natural target-language technical prose. This scan is a whitelist-or-translate check, not
a blanket ban on source-language terms.
For each resource, write the cleaned body to a temp file and create it with a file-backed body (avoids shell-mangling of long/multiline content; use an absolute path), recording provenance in the structured frontmatter:
For a paper resource title / filename, use the source's full title by default. Use a short title
only when the source is widely identified by the model, method, dataset, benchmark, standard, or
acronym it introduced (Transformer, BERT, GPT-3, T5, DPO, RAG), or when the source
title itself names the work in a Name: descriptive subtitle form (then use Name). Preserve the
full original source title in the body metadata/provenance. Do not invent a new abbreviation; if
no recognized representative name exists, use the original title.
optsidian para-zk:create-resource title="<title>" body=@/tmp/<file>.md \
url="<source url>" first_author="<first author>" license="<SPDX id>" kind=<paper|article|book|video|web|code|guide|other> \
domain="<subject domain>"
license is an SPDX identifier (MIT, Apache-2.0, CC-BY-4.0, CC-BY-SA-4.0, CC0-1.0, …); when
no SPDX id fits use a short recognizable token (e.g. arXiv for an arXiv-default paper), never a long
descriptive sentence. kind is one of the codes shown. domain is the subject group for the identity
tag — reuse an existing domain vocabulary; omit it for a flat resource tag. Omit any field you cannot
determine — don't guess.
Then link as requested. To make an existing note reference a resource — e.g. "add a ref to the AI area":
optsidian para-zk:update-area title="AI" key=references op=insert value_json='{"link":"[[<resource title>]]"}'
For a child receiver, use para-zk:update-child root_type=<project|area> root_title="<root>" relpath='<ancestors>' title="<child>" key=references op=insert value_json='{"link":"[[<resource title>]]"}'.
For multiple resources (per chapter, per item), create each and link them into the requested hub — an area, a project, or an index resource — so the set is navigable.
Run para-zk:read-resource title="<title>" key=frontmatter and key=body after creation. Confirm
metadata, body persistence, backlinks/references when linked, no dead page anchors, and Obsidian
math delimiters ($…$, $$…$$; no \(...\) or \[...\]). Fix and repeat if anything is still
broken. Also verify every image embed: web/HTML-origin figures should be remote
 links, and every local ![[…]] image/PDF must have been produced by
para-zk:attach-file and resolve in the vault.
wiki-ingest is a skill, not a CLI command — there is no optsidian wiki-ingest or
obsidian wiki-ingest. After
every resource in this import has been created, linked, and verified, invoke the
para-zk:wiki-ingest skill once for the whole created set: read its SKILL.md and carry out
its workflow yourself (or run the /para-zk:wiki-ingest slash command), background /
session-scoped. The inputs to that skill are:
mode=per-import source_paths='["<created resource path>","<created resource path>"]'
(these are skill inputs, not shell arguments — do not pass them to optsidian). Use the path
returned by each create-resource result in this import. The wiki-ingest skill itself plans the
whole imported set and spawns the wiki-weaver subagents; do not spawn wiki-weaver
yourself, and do not invoke wiki-ingest once per file — one per-import hand-off covers the
entire set.
find the paper "Attention Is All You Need", translate it to Korean, and add it as a resource
→ web research → arXiv → title Papers/LLM/Transformer because the paper introduced the
Transformer architecture and is widely identified by that representative name → full Korean
translation with source title preserved and References titles left in English.read /path/to/report.html and add it as a resource translated to Korean
→ local file → translation → one resource (cite the original).add a resource per chapter following a study path for "Principles of Statistics"
→ research/compile → several per-chapter resources → linked from a study area/index.find every Seoul subway line and write one organized resource
→ web research → structured write-up with sources → one organized resource.para-zk:describe / <command> help=true for exact argument names over assuming.body=@<file> is read by the plugin, so it works through optsidian and the native obsidian
CLI alike; pass an absolute path.title stable — links and backlinks address notes by name.para-zk:wiki-ingest skill (not a CLI command) once,
background / session-scoped, with mode=per-import and all created resource paths in
source_paths.