Generate structured PDF checklists and reports using Python libraries in sandbox
61
71%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./benchmarks/gdpval/skills/pdf-checklist-generation/SKILL.mdThis skill provides a workflow for creating professional PDF documents (checklists, reports, scorecards) using Python libraries within an execute_code_sandbox environment.
Choose one based on your needs:
| Library | Best For | Complexity |
|---|---|---|
reportlab | Professional layouts, tables, precise control | Medium |
fpdf | Simple documents, quick generation | Low |
matplotlib | Charts, graphs, visual reports | Medium |
!pip install reportlab # or fpdf, matplotlibExample using reportlab:
from reportlab.lib.pagesizes import letter
from reportlab.platypus import SimpleDocTemplate, Table, TableStyle, Paragraph, Spacer
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.lib import colors
def create_checklist_pdf(filename, checklist_items):
doc = SimpleDocTemplate(filename, pagesize=letter)
styles = getSampleStyleSheet()
elements = []
# Title
elements.append(Paragraph("Assessment Checklist", styles['Heading1']))
elements.append(Spacer(1, 12))
# Table data
data = [['Item', 'Status', 'Score']]
for item in checklist_items:
data.append([item['name'], item['status'], item['score']])
# Create table
table = Table(data)
table.setStyle(TableStyle([
('BACKGROUND', (0, 0), (-1, 0), colors.grey),
('TEXTCOLOR', (0, 0), (-1, 0), colors.whitesmoke),
('ALIGN', (0, 0), (-1, -1), 'CENTER'),
('GRID', (0, 0), (-1, -1), 1, colors.black),
]))
elements.append(table)
doc.build(elements)
print(f"PDF created: {filename}")
# Usage
checklist = [
{'name': 'Security Check', 'status': 'Pass', 'score': 10},
{'name': 'Performance Test', 'status': 'Fail', 'score': 5},
]
create_checklist_pdf('report.pdf', checklist)Run the script using execute_code_sandbox:
execute_code_sandbox(code="<your pdf generation code>")After generation, verify the PDF was created:
read_file(path="report.pdf")Or inspect via shell:
execute_code_sandbox(code="import os; print(os.path.exists('report.pdf'))")| Issue | Solution |
|---|---|
| Import error | Run !pip install <library> first |
| File not found | Check working directory with !pwd |
| Blank PDF | Ensure doc.build() is called |
| Encoding issues | Use Unicode strings, specify encoding |
c5a9c4b
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.