doc-creator — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited doc-creator (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Purpose: Universal onboarding for creating any structured documents — portfolio guides, comparison tables, training materials, catalogs, reports, presentations. Output: HTML→PDF, DOCX, Slides. When: User wants to create a document, guide, or presentation from sources (docx, PDF, website, data). Any type. Output: Agreed document structure + chosen design + ready generator or file.
Ask user these 4 questions before any work:
(guide / catalog / comparison / report / training / other — let them describe)
(role, expertise level, what they know, what they don't)
(one concrete action or state)
Don't proceed to Step 2 until all 4 answers received. If user answers partially — clarify the missing piece.
Show options explicitly — don't choose by default:
Выбери стиль документа:
A) Compact — dense layout, lots of content per page,
minimal decoration. Good for reference docs,
technical comparisons, internal materials.
B) Rich — large blocks, visual accents, icons,
color highlights. Good for product guides,
client materials, onboarding.
C) Sectioned — color section covers between chapters,
each section starts on a new page.
Good for multi-topic guides, catalogs,
training courses.
D) Custom — describe style in words or attach reference.Rule: for options B, C, D — invoke frontend-design skill to develop the design system (colors, typography, components) before writing code. Don't improvise design during generation.
Wait for explicit answer (A / B / C / D + description for D).
Based on Step 1 answers — propose structure:
Rules:
Show structure as a list. Wait for "ok" or edits. Don't start generating content until structure is confirmed.
Find out what's available:
□ What sources are provided?
- DOCX / text files
- PDF (important: image-based or text? check get_text())
- Website (URL for scraping)
- Structured data (CSV, JSON, tables)
- Only verbal instructions / session memory
□ Is there branding?
- Logo / brand guide → apply
- PDF with examples → run extract-brand-palette
- Nothing → ask user for colors or use neutral paletteFor image-based PDF:
fitz.get_text() returns empty string → signalextract-brand-palette skill)Required principles:
# 1. Data-template separation
# All data — Python dicts/lists.
# HTML — only in render functions. Never mix.
DATA = [{ "name": "...", "fields": {...} }]
def render_card(item): ...
def render_section(items): ...
# 2. Print CSS
@media print {
.card { page-break-inside: avoid; }
.section-cover { page-break-before: always; }
body { font-size: 10pt; }
}
# 3. Encoding (Windows)
import sys
sys.stdout.reconfigure(encoding='utf-8')
# 4. Output
with open('output.html', 'w', encoding='utf-8') as f:
f.write(html)
print("Done. Open in Chrome → Ctrl+P → Save as PDF (A4)")User instructions after generation: Chrome/Edge → open output.html → Ctrl+P → Destination: Save as PDF → Paper: A4 → Margins: None or Minimum → Background graphics: ✓ → Save.
If any item incomplete — return to that step. Don't generate in "guess what's needed" mode.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.