nsfc-budget

Generates NSFC budget justification LaTeX projects and compiles budget.pdf from proposal materials.

2.7k|251|Updated Feb 12, 2024
One-click install
npx skills add https://github.com/huangwb8/ChineseResearchLaTeX --skill nsfc-budget
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: nsfc-budget
Source: https://github.com/huangwb8/ChineseResearchLaTeX/tree/main/skills/nsfc-budget
Command: npx skills add https://github.com/huangwb8/ChineseResearchLaTeX --skill nsfc-budget

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires PyYAML, and includes scripts (resource) and references (resource) components.

What problem does it solve?

Writing an NSFC (National Natural Science Foundation of China) budget justification requires aligning every expense with research tasks, keeping amounts consistent across sections, and producing a submission-ready LaTeX document. This Skill automates that process by turning your proposal text and supplementary materials into a validated budget specification and a compiled budget.pdf.

Core Features & Use Cases

  • Structured Budget Authoring: Builds a five-section justification (equipment, business, labor, cooperative transfer, other funding) from your proposal, enforcing a task-expense-calculation-evidence chain for every amount.
  • Validation & Consistency Checks: Verifies that section amounts match budget totals, character counts stay within limits, paths stay safe, and common LaTeX special characters are escaped before compilation.
  • Isolated Workspace & Delivery: Keeps all intermediate files in a hidden .bensz-api task directory and delivers a complete editable LaTeX project plus budget.pdf to your chosen output folder.
  • Use Case: You have finished your NSFC general program proposal main.tex and need a 900-character budget justification for a 50w budget; the Skill initializes a run, drafts the five sections, validates amounts, and renders budget.pdf.

Quick Start

Ask the AI to use the nsfc-budget skill with your working directory, project type (general, local, or youth), total budget, and proposal material paths to generate the budget justification LaTeX project and budget.pdf.

Frequently Asked Questions about nsfc-budget

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I generate an NSFC budget justification PDF from my proposal?

Provide a working directory, your proposal materials, project type (general, local, or youth), and total budget. The Skill initializes a hidden run workspace, drafts a budget_spec.json, validates amounts and lengths, then renders a LaTeX project and compiles budget.pdf with xelatex.

What inputs are required to write an NSFC budget justification?

At minimum you need a working directory, proposal text or supplementary materials, a project type, and a budget scope indicating whether the total is the requested amount or the direct costs to be explained. Optional inputs include target character count and per-section amounts.

Does the 2026 NSFC youth program need a budget justification?

Youth A/B/C projects in 2026 are typically package-based (lump sum) and usually do not require a budget justification. The Skill pauses to confirm before proceeding, and only continues if your institution explicitly requires one or it is a budget-based scenario.

Can I generate the LaTeX project without compiling the PDF?

Yes, the render script supports a --skip-compile flag that produces only the LaTeX project files. The deliverables manifest then reports pdf as null, and you can compile later once xelatex is available.

Why does budget rendering fail with special characters in my text?

Natural language text containing %, #, &, _, or braces can break LaTeX compilation. The render script automatically escapes these common special characters when writing section paragraphs, while preserving the allowed \linebreak{} and \BudgetBold{} commands.

What happens if the budget output directory already exists?

If the output directory is empty, the render script reuses it directly. If it is non-empty, rendering is refused unless you pass --force, which deletes and rebuilds the directory to prevent accidental overwrites.