{# Inline content-check findings rendered inside _quarantine_banner.html. Expects `ic.content.issues` in scope — each issue has file, field, code, hint, optional name. Grouped by file. Field + code names translated to plain English so a non-developer reader still understands what the problem is and which line to edit. #} {% set issues = ic.content.issues %} {# {file → [issue, ...]} grouping preserving first-seen order. #} {% set grouped = namespace(map={}, order=[]) %} {% for issue in issues %} {% set _ = grouped.map.setdefault(issue.file, []) %} {% if issue.file not in grouped.order %}{% set _ = grouped.order.append(issue.file) %}{% endif %} {% set _ = grouped.map[issue.file].append(issue) %} {% endfor %} {# Field-label → plain English. Defined inline so the template stays the single source of truth for what the submitter sees. #} {% set field_label = { 'frontmatter.description': 'Description (the line at the top of the file, after `description:`)', 'plugin.json.description': 'Description (the `description` field in `.claude-plugin/plugin.json`)', 'description': 'Description (on the upload form)', 'body': 'Content (the rest of the file after the description line)', } %} {% set code_label = { 'empty': 'is missing', 'too_short': 'is too short', 'low_word_count': 'needs more distinct words', 'placeholder_text': 'still has placeholder text (TODO, template, etc.)', 'body_too_short': 'is too short', } %} {% set component_label = { 'skill': 'skill', 'agent': 'agent', 'plugin': 'plugin', 'command': 'command', 'submission': 'description', } %}
{{ file }}{% endif %}
See {{ anchor_label }} example ↗