$npx -y skills add volcengine/OpenViking --skill ov-add-paperLoad when the user asks to add, import, compile, or ingest a research paper/PDF into OpenViking, especially when they mention ov-add-paper, ARA, claims, evidence, figures, tables, or paper-to-OV knowledge resources.
| 1 | # ov-add-paper |
| 2 | |
| 3 | ## Goal |
| 4 | |
| 5 | Turn a research paper into an OpenViking-ready structured resource, then complete ingestion with `ov add-resource`. The job is not done until the generated artifact directory has been validated and submitted to OpenViking. |
| 6 | |
| 7 | ## Inputs |
| 8 | |
| 9 | - Required: a paper source, usually a local PDF path or paper URL. |
| 10 | - Optional: output directory, OpenViking target URI, domain notes, related repo/source files, and whether to wait for OV processing. |
| 11 | - If the paper source is missing or inaccessible, ask for it before starting. |
| 12 | |
| 13 | ## Workflow |
| 14 | |
| 15 | 1. Read the paper completely, including appendices and all numbered figures/tables. |
| 16 | 2. Compile an ARA-style artifact directory using `references/ara-compiler-profile.md`. |
| 17 | 3. Validate the artifact with `scripts/validate_ara.py`. |
| 18 | 4. Fix validation failures unless the user explicitly accepts them. |
| 19 | 5. Ingest the validated artifact directory with `ov add-resource` directly. |
| 20 | 6. Confirm the target with `ov stat`/`ov tree` and return the artifact path, OV target/root URI, validation result, ingest result, and any unresolved gaps. |
| 21 | |
| 22 | ## Output Contract |
| 23 | |
| 24 | The generated artifact must include: |
| 25 | |
| 26 | - `PAPER.md` |
| 27 | - `logic/problem.md`, `logic/claims.md`, `logic/concepts.md`, `logic/experiments.md`, `logic/related_work.md` |
| 28 | - `logic/solution/constraints.md` |
| 29 | - `src/environment.md` |
| 30 | - `trace/exploration_tree.yaml` |
| 31 | - `evidence/README.md` |
| 32 | - Markdown plus PNG evidence files for every filed numbered table and figure |
| 33 | |
| 34 | The final response must include the `ov add-resource` command result, or the recovery checks proving the target landed despite a broken `--wait`, or the exact blocker that prevented ingestion. |
| 35 | |
| 36 | ## Verification |
| 37 | |
| 38 | Run from this skill directory, or use an absolute path to the validator: |
| 39 | |
| 40 | ```bash |
| 41 | python3 scripts/validate_ara.py <artifact-dir> |
| 42 | ``` |
| 43 | |
| 44 | Then ingest with the OV CLI: |
| 45 | |
| 46 | ```bash |
| 47 | ov add-resource <artifact-dir> --to viking://resources/papers/<slug> --wait --timeout 300 |
| 48 | ``` |
| 49 | |
| 50 | Before ingest, use `ov -o json stat <target-uri>` to check whether the target already exists. After ingest, verify with `ov -o json stat <target-uri>` and `ov tree <target-uri>`. |
| 51 | |
| 52 | ## Permissions |
| 53 | |
| 54 | - Writing a new OpenViking resource is allowed when the user asked to add or ingest the paper. |
| 55 | - Ask before intentionally reusing a target URI that may overwrite or replace an existing resource. |
| 56 | - `--skip-validation` may be used only when the user explicitly accepts the listed validation errors. |
| 57 | |
| 58 | ## Boundaries |
| 59 | |
| 60 | - Do not use `ov add-skill`; this skill creates paper resources, not OV skills. |
| 61 | - Do not silently skip `ov add-resource`; if ingestion fails, report the command, error, and recovery path. |
| 62 | - If `ov add-resource --wait` exits with a connection error after creating the target, do not immediately retry the same URI. Run `ov stat`, `ov wait --timeout <seconds>`, `ov observer queue`, and `ov tree` to determine whether ingestion completed. |
| 63 | - Do not invent claims, evidence, source refs, code, numbers, or research history. |
| 64 | - Do not overwrite an explicit existing OV target unless the user asked for that target. |
| 65 | - Mark unsupported or unreadable content as unavailable instead of filling it in. |
| 66 | |
| 67 | ## Runtime Resources |
| 68 | |
| 69 | - Load `references/ara-compiler-profile.md` before compiling the artifact. |
| 70 | - Load `references/openviking-ingest.md` before running OV ingestion or debugging an ingestion failure. |
| 71 | - Use `scripts/validate_ara.py` for deterministic checks. |