ielts-task1-review — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited ielts-task1-review (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.
Analyze the visual prompt before correcting the student's writing. For Task 1, accurate chart/table/map/process understanding is part of Task Achievement, so do not polish language before identifying the main features.
Use these references in order:
references/visual_analysis_protocol.md to inspect the visual.references/teacher_style.md for Task 1 teacher-style marking.references/ielts_task1_band_descriptors.md before scoring.references/teacher_samples_index.md to find relevant samples, then read full samples from references/teacher_samples/ when useful.references/review_format.md for DOCX layout and cleanup rules..docx, extract embedded images with scripts/extract_docx_images.py..docx, also run scripts/extract_task1_input.py so the review plan can distinguish prompt text from student answer paragraphs.references/teacher_samples_index.md to find similar sample files, then inspect one or two matching full samples.Specify type: bar chart, mention proportions, slightly repetitive, formal, Use comma, This is stated in overview.6, 6.5, or 7. Use .5 when the original answer sits between adjacent whole-band descriptor anchors; do not force criterion scores to integers.Overall and summarize the main features..docx by default.MyAnswer.docx, output MyAnswer(reviewed).docx in the same folder unless the user specifies another path./Users/aaronliang/Desktop/IELTS_Task1_Reviewed_YYYYMMDD_HHMM.docx.Cyber Esme as the Word comment author.Visual Facts section unless the user asks for it or --include-visual-facts is intentionally used.Task, Reviewed Answer, Score, or Model Answer.word/document.xml root namespace declarations and mc:Ignorable; do not leave undeclared prefixes such as w14, w15, w16*, or wp14.To Reach Band 7.5 / 8.0 together; insert another page break before the model answer.review_plan_*.json, extracted scratch images, and unpacked DOCX folders.scripts/extract_docx_images.py creates a unique /private/tmp/ielts_task1_images_* directory by default; delete that scratch directory after validation.references/visual_analysis_protocol.md: checklist for charts, tables, maps, processes, and mixed visuals.references/teacher_style.md: Task 1 teacher-style rules distilled from samples.references/teacher_samples_index.md: sample index with image files and counts.references/teacher_samples/*.json and *.md: full extracted teacher-reviewed samples.references/sample_images/*: extracted visual prompts from the 12 sample DOCX files.references/ielts_task1_band_descriptors.md: complete Task 1 descriptors extracted from the local PDF.references/review_format.md: canonical reviewed document structure.scripts/extract_docx_images.py: extract visual prompts from new input DOCX files to a unique scratch directory by default.scripts/extract_task1_input.py: extract prompt, student answer, and student answer paragraph indices from a Task 1 DOCX.scripts/create_task1_review_docx.py: create a reviewed DOCX from a JSON review plan; DOCX input is copied first, comments are anchored into extracted student answer paragraphs, and score/model sections are appended.scripts/create_and_validate_task1_review.py: create a reviewed DOCX, validate it, and clean extracted scratch images in one command.scripts/validate_task1_review_docx.py: verify comments, italic rewrites, student-answer paragraph comment anchoring when --input-docx is supplied, root namespace compatibility, page breaks, font, author, score lines, retained To Reach Band 7.5 / 8.0 title, removed old headings, and model answer length/four-paragraph structure.scripts/extract_task1_teacher_samples.py: regenerate teacher sample references.scripts/extract_task1_band_descriptors.py: regenerate descriptors from the PDF.When using scripts/create_task1_review_docx.py, first produce a JSON file with this shape:
{
"prompt": "Task prompt or visual prompt summary",
"student_answer_paragraph_indices": [4, 6, 8, 10],
"visual_facts": ["Internal visual facts used for accuracy. These are not shown in the DOCX by default."],
"review_units": [
{
"original": "Student sentence or paragraph.",
"comments": [{"target": "specific phrase", "text": "Short teacher-style comment"}],
"rewrite": "Italic teacher-style improvement."
}
],
"scores": {
"Task Achievement": "6.5",
"Coherence & Cohesion": "7",
"Lexical Resource": "6.5",
"Grammatical Range & Accuracy": "6.5",
"Overall": "6.5"
},
"score_explanation": ["Short evidence-based scoring note."],
"focus_feedback": ["Focus on overview accuracy and natural comparisons."],
"model_answer": [
"Paragraph 1: introduction/paraphrase.",
"Paragraph 2: Overall ...",
"Paragraph 3: first detail group.",
"Paragraph 4: second detail group."
]
}Scores are teacher-style estimates for the review output, so each criterion and Overall may be a whole band or a half band.
Then run:
python scripts/create_task1_review_docx.py review_plan.json --input-docx MyAnswer.docx --cleanup-plan
python scripts/validate_task1_review_docx.py "MyAnswer(reviewed).docx" --input-docx MyAnswer.docxFor a DOCX workflow with automatic image scratch cleanup, run:
python scripts/create_and_validate_task1_review.py review_plan.json --input-docx MyAnswer.docxIf the review plan is a permanent example/reference file, omit --cleanup-plan. Use --include-visual-facts only when the user explicitly asks to see the visual facts note in the reviewed DOCX.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.