SKILL.md
Abstract Writing Guide
A skill for writing effective research abstracts that clearly communicate your study's purpose, methods, results, and significance. Covers structured and unstructured formats, word count optimization, and common pitfalls.
Abstract Structures
Structured Abstract (IMRaD)
Most journals in science and medicine require a structured abstract:
BACKGROUND/OBJECTIVE: 1-2 sentences on the problem and study aim
METHODS: 2-3 sentences on study design, participants, and analysis
RESULTS: 2-4 sentences with key quantitative findings
CONCLUSION: 1-2 sentences on implications and significance
Total: typically 150-300 words (check journal requirements)
Unstructured Abstract
Common in social sciences and humanities:
Sentence 1: Context and problem statement
Sentence 2: Research gap or objective
Sentence 3: Methods overview
Sentence 4-5: Key findings
Sentence 6: Implications and significance
Total: typically 150-250 words
Writing Process
Step-by-Step Framework
def generate_abstract_outline(study_info: dict) -> dict:
"""
Generate an abstract outline from study information.
Args:
study_info: Dict with keys: 'problem', 'gap', 'objective',
'design', 'sample', 'methods', 'key_findings',
'implications', 'word_limit'
Returns:
Structured abstract outline with estimated word counts
"""
word_limit = study_info.get('word_limit', 250)
# Allocate words proportionally
sections = {
'background': {
'allocation_pct': 0.15,
'content': [study_info['problem'], study_info['gap']],
'template': "Despite {problem}, {gap}. This study aimed to {objective}."
},
'methods': {
'allocation_pct': 0.25,
'content': [study_info['design'], study_info['sample'], study_info['methods']],
'template': "A {design} was conducted with {sample}. {methods}."
},
'results': {
'allocation_pct': 0.35,
'content': study_info['key_findings'],
'template': "Results showed {findings}."
},
'conclusion': {
'allocation_pct': 0.25,
'content': study_info['implications'],
'template': "These findings suggest {implications}."
}
}
for section in sections.values():
section['target_words'] = round(word_limit * section['allocation_pct'])
return {
'sections': sections,
'word_limit': word_limit,
'tips': [
'Write the Results section first (most important)',
'Use past tense for methods and results',
'Avoid abbreviations unless space-saving is critical',
'Include at least one quantitative result with effect size',
'Do not include citations in the abstract'
]
}
