Citation Diversifier

v1.0.0

Raise citation diversity/density (NO NEW FACTS): generate an in-scope “citation budget” plan per H3 so drafts stop failing the global unique-citation gate an...

0· 145·1 current·1 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for willoscar/citation-diversifier.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Citation Diversifier" (willoscar/citation-diversifier) from ClawHub.
Skill page: https://clawhub.ai/willoscar/citation-diversifier
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install citation-diversifier

ClawHub CLI

Package manager switcher

npx clawhub@latest install citation-diversifier
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description (raise citation density without inventing facts) matches the code and SKILL.md: the scripts read draft/outline/writer_context_packs/ref.bib and generate a per-H3 budget. Required binaries (python) are appropriate and proportional.
Instruction Scope
SKILL.md instructions are specific and constrained: operate on workspace files, honor 'NO NEW FACTS', and produce output/CITATION_BUDGET_REPORT.md. The included run.py implements that behavior and does not read unrelated system files or environment variables.
Install Mechanism
No install spec (instruction-only with bundled Python scripts). Requiring Python is reasonable; there are no downloads, external package installs, or archive extraction steps.
Credentials
The skill declares no required env vars, no credentials, and the code does not access secrets or external services. It only reads workspace files and writes a local report.
Persistence & Privilege
always:false and default autonomous invocation settings are present (normal). The skill does not modify other skills or system-wide agent settings and only writes its own output artifact in the workspace.
Assessment
This skill appears to do exactly what it says: analyze output/DRAFT.md, outline/*, writer_context_packs.jsonl and citations/ref.bib to suggest in-scope unused citation keys and write output/CITATION_BUDGET_REPORT.md. Before installing or running, verify you are comfortable with the agent having read access to the project workspace (these inputs may contain unpublished text or private BibTeX entries). Also review any omitted files (the toolset includes large quality-gate/ideation modules not fully printed here); if you require stronger assurance, inspect the remaining source files for network, subprocess, or credential access. Running in a contained workspace is recommended if you are unsure.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

Any binpython3, python
latestvk970ke7bpxa39nfv0mpkphk0y9836arw
145downloads
0stars
1versions
Updated 1mo ago
v1.0.0
MIT-0

Citation Diversifier (budget-as-constraints) [NO NEW FACTS]

Purpose: fix a common survey failure mode:

  • the draft reads under-cited (or reuses the same few citations everywhere)
  • the pipeline fails the global unique-citation gate

This skill does not change prose by itself. It produces a constraint sheet: output/CITATION_BUDGET_REPORT.md.

Inputs

  • output/DRAFT.md
  • outline/outline.yml (H3 ids/titles; used to allocate budgets per subsection)
  • outline/writer_context_packs.jsonl (source of allowed_bibkeys_{selected,mapped,chapter,global} per H3)
  • citations/ref.bib

Output

  • output/CITATION_BUDGET_REPORT.md

Non-negotiables (NO NEW FACTS)

  • Only propose citation keys that exist in citations/ref.bib.
  • Only propose keys that are in-scope for the target H3 (prefer subsection-first scope; use chapter/global only when truly cross-cutting).
  • Do not propose “padding citations” that would require adding new claims or new numbers.

What a good budget report looks like (contract)

The report should feel like a constraint sheet, not a random list:

  • It states the blocking policy target and the gap-to-target (how many unique keys are missing; policy default is recommended).
  • For each H3, it proposes a scope-safe budget sized to actually close the gap:
    • small gaps: 3-6 keys / H3 is often enough
    • A150++ gaps: plan for ~6-12 keys / H3 (and avoid duplicates across H3 budgets)
  • It gives placement guidance (where in the subsection those keys can be embedded without adding new facts).

Canonical (parseable) lines required (downstream validators depend on these):

  • The target is derived from queries.md:citation_target (recommended by default for A150++).
  • - Global target (policy; blocking): >= <N> ...
  • - Gap: <K> (gap-to-target; if 0, injection can be a no-op PASS)

Optional (always reported; may be blocking depending on citation_target):

  • - Global recommended target: >= <N> ...
  • - Gap to recommended: <K>

Recommended prioritization (scope-safe):

  • allowed_bibkeys_selectedallowed_bibkeys_mappedallowed_bibkeys_chapter
  • Use allowed_bibkeys_global only for:
    • benchmarks/protocol papers
    • widely-used datasets/suites
    • cross-cutting surveys/method papers referenced across chapters

How this connects to writing (LLM-first)

After you generate the budget report:

  • Apply it using citation-injector (LLM edits to output/DRAFT.md, NO NEW FACTS).
  • Then run draft-polisher to remove any “budget dump voice” while keeping citation keys unchanged.

Important: citation-injector is LLM-first. Its script is validation-only.

Workflow

  1. Diagnose the global situation
  • Read output/DRAFT.md and estimate the “unique-key gap” (or use pipeline-auditor’s FAIL reason).
  1. Allocate budgets per H3 (scope-first)
  • Use outline/outline.yml to enumerate H3s in paper order.
  • For each H3, read its allowed key sets from outline/writer_context_packs.jsonl.
  • Pick a small set of unused keys that strengthen positioning without requiring new claims.
  1. Write output/CITATION_BUDGET_REPORT.md Required structure:
  • - Status: PASS|FAIL
  • - Global target (policy; blocking): >= <N> ...
  • - Gap: <K>
  • ## Summary (gap + strategy)
  • ## Per-subsection budgets (H3 id/title → suggested keys → placement hint)

Script (optional; deterministic report generator)

If you want a deterministic first-pass budget report, run the helper script. Treat it as a baseline and refine the plan as needed.

Quick Start

  • python scripts/run.py --help
  • python scripts/run.py --workspace workspaces/<ws>

All Options

  • --workspace <dir>
  • --unit-id <U###> (optional)
  • --inputs <semicolon-separated> (rare override; prefer defaults)
  • --outputs <semicolon-separated> (rare override; default writes output/CITATION_BUDGET_REPORT.md)
  • --checkpoint <C#> (optional)

Examples

  • Default IO:
    • python scripts/run.py --workspace workspaces/<ws>

Done criteria

  • output/CITATION_BUDGET_REPORT.md exists and has actionable, in-scope budgets.
  • After applying the plan via citation-injector, pipeline-auditor no longer FAILs on global unique citations.

Comments

Loading comments...