NSFC Chinese-English Abstract Generator
Objective: Write a 5-sentence abstract that "reviewers can understand at a glance", covering all five elements: importance, scientific problem, feasibility evidence, research content, and scientific significance; and output an English translation consistent with it.
Input (Collect Information First, Ask for Missing Details)
Prioritize asking the user to provide information according to the information form (see
skills/nsfc-abstract/references/info_form.md
). If the user only provides scattered information, use 3-6 questions to fill in the most critical gaps:
- Which type do you prefer the title to lean towards: "mechanism-oriented / method-oriented / translational-oriented / scenario-oriented"? (You can skip if unsure; mixed candidates will be provided by default)
- What is the research object/scenario? (Disease/material/system/task)
- What are the field pain points and unsolved scientific problems? (One sentence)
- What are your key preliminary findings/preliminary experiments/data points? (1-2 points, quantifiable if possible)
- What is the scientific hypothesis/core judgment to be verified? (One sentence)
- What will be done in each of the 3-4 research content points, what methods will be used, and what verifiable results will be obtained?
- What is the expected scientific significance/application value? (Avoid empty statements)
Output Requirements (Hard Constraints)
- Must provide both Chinese and English versions; the English version is a faithful translation of the Chinese version (no expansion, no new assumptions, no introduction of new results).
- Must provide title suggestions: Follow the structural preferences of "winning titles" in
skills/nsfc-abstract/references/title-rules.md
; at least include:
- (At least 5 items; quantity follows
config.yaml:title.title_candidates_default
)
- Chinese Abstract: Default limit ≤400 characters (including punctuation); recommended 5 sentences (follow
config.yaml:limits.zh_recommended_sentences
), each serving one function.
- English Abstract: ≤4000 characters (including punctuation); grammatically correct, consistent terminology.
- Do not use exaggerated/marketing expressions (such as "international leading/filling the gap/pioneering") unless the user provides verifiable evidence and explicitly requests to retain them.
- Do not overstuff background or list methodological nouns; each methodological noun must serve the purpose of "what to verify".
Recommended Structure (5-Sentence Format, Default to Use)
- Importance/Background: One sentence explaining the importance of the object and its harms/bottlenecks (no more than one sentence).
- Scientific Problem: Point out key unknowns and current deficiencies (be specific to gaps in mechanisms/indicators/causal chains).
- Feasibility Evidence: Present 1-2 preliminary findings/preliminary experiments (try to be quantifiable), and propose the scientific hypothesis/core judgment accordingly.
- Research Content (3-4 Points): Start with verbs, clearly state "what to do → how to do it → what to verify/what criteria to obtain" (the number of points follows
config.yaml:limits.content_points_min/max
by default).
- Significance/Value: Summarize expected contributions (scientific mechanism + method/strategy/application potential), forming a closed loop with the problem mentioned in sentence 2.
Output Format (Easy to Paste and Verify)
Write to
in the following format (the title text follows
config.yaml:output.zh_heading/en_heading
). Provide a length self-check at the end (character count rule: count after collapsing consecutive whitespaces into a single space, including punctuation):
text
# Title Suggestions
Recommended Title: ...
1) ... —— Reason: ...
2) ... —— Reason: ...
3) ... —— Reason: ...
4) ... —— Reason: ...
5) ... —— Reason: ...
# Chinese Abstract
(Main text)
# English Abstract
(translation)
## Length Self-Check
- Chinese abstract character count: N/400
- English abstract character count: M/4000
After writing to the file, do not paste the full text again in the conversation (unless the user explicitly requests it), only report:
- The written file path (default )
- Whether the number of title candidates meets the default requirement
- Character counts of Chinese/English abstracts and whether they exceed the limit
Word Limit Exceedance Handling (Closed Loop, Maximum 3 Rounds)
When the user explicitly requests hard constraints such as "Chinese ≤400 characters / English ≤4000 characters", a closed loop must be followed: first detect, then compress, then detect again, and write only after passing the check.
- First generate a readable draft that may exceed the limit (with all 5-sentence elements included).
- Use a deterministic script for detection (must use to let hard coding handle precise counting):
python3 skills/nsfc-abstract/scripts/validate_abstract.py - --json --diff --strict
- Input can be via stdin (no need to write to file first), or verify the file after writing to .
- If exceeding the limit: Perform compression according to the "compression priority", then return to step 2, maximum 3 rounds.
- If still exceeding after 3 consecutive rounds: Stop automatic compression, inform the user of the current excess count (ZH/EN exceeded), and ask the user to choose:
- Allow deletion of certain information (which parts can be deleted)
- Relax the word limit (modify )
- Manually provide a shorter summary of key information (e.g., only retain the most critical 1 piece of evidence + 3 research content points)
Compression Priority (Top to Bottom)
- P0 (Must Retain): Research object/key scientific problem gap/quantitative evidence (if any)/core method name/closed-loop expected contribution
- P1 (Prioritize Streamlining): Degree adverbs, adjective modifiers, background exposition, subjects like "we will/this research", procedural descriptions, prepositional phrases such as "through/adopt", parallel repetitive expressions
- P2 (Can Be Deleted): Empty evaluations ("significant/important/leading" without quantitative support), repeated sentences, background unrelated to scientific problems
For deterministic writing/verification, you can use the scripts:
- Write:
python3 skills/nsfc-abstract/scripts/write_abstracts_md.py <input> --strict
- Verify:
python3 skills/nsfc-abstract/scripts/validate_abstract.py NSFC-ABSTRACTS.md --json --diff --strict