Skill: aipoch-ai/journal-cover-prompter (version 1.0.0)

--- name: journal-cover-prompter description: Use when creating journal cover images, generating scientific artwork prompts, or designing graphical abstracts. Creates detailed prompts for AI image generators to produce publication-quality scientific visuals. license: MIT skill-author: AIPOCH --- # Journal Cover Image Prompter Generate detailed prompts for creating scientific journal cover images and graphical abstracts using AI image generators. ## When to Use - Use this skill when the task needs Use when creating journal cover images, generating scientific artwork prompts, or designing graphical abstracts. Creates detailed prompts for AI image generators to produce publication-quality scientific visuals. - Use this skill for academic writing tasks that require explicit assumptions, bounded scope, and a reproducible output format. - Use this skill when you need a documented fallback path for missing inputs, execution errors, or partial evidence. ## Key Features - Scope-focused workflow aligned to: Use when creating journal cover images, generating scientific artwork prompts, or designing graphical abstracts. Creates detailed prompts for AI image generators to produce publication-quality scientific visuals. - Packaged executable path(s): `scripts/main.py`. - Reference material available in `references/` for task-specific guidance. - Structured execution path designed to keep outputs consistent and reviewable. ## Dependencies - `Python`: `3.10+`. Repository baseline for current packaged skills. - `Third-party packages`: `not explicitly version-pinned in this skill package`. Add pinned versions if this skill needs stricter environment control. ## Example Usage ```bash cd "20260318/scientific-skills/Academic Writing/journal-cover-prompter" python -m py_compile scripts/main.py python scripts/main.py --help ``` Example run plan: 1. Confirm the user input, output path, and any required config values. 2. Edit the in-file `CONFIG` block or documented parameters if the script uses fixed settings. 3. Run `python scripts/main.py` with the validated inputs. 4. Review the generated output and return the final artifact with any assumptions called out. ## Implementation Details See `## Workflow` above for related details. - Execution model: validate the request, choose the packaged workflow, and produce a bounded deliverable. - Input controls: confirm the source files, scope limits, output format, and acceptance criteria before running any script. - Primary implementation surface: `scripts/main.py`. - Reference guidance: `references/` contains supporting rules, prompts, or checklists. - Parameters to clarify first: input path, output path, scope filters, thresholds, and any domain-specific constraints. - Output discipline: keep results reproducible, identify assumptions explicitly, and avoid undocumented side effects. ## Quick Check Use this command to verify that the packaged script entry point can be parsed before deeper execution. ```bash python -m py_compile scripts/main.py ``` ## Audit-Ready Commands Use these concrete commands for validation. They are intentionally self-contained and avoid placeholder paths. ```bash python -m py_compile scripts/main.py python scripts/main.py --help ``` ## Workflow 1. Confirm the user objective, required inputs, and non-negotiable constraints before doing detailed work. 2. Validate that the request matches the documented scope and stop early if the task would require unsupported assumptions. 3. Use the packaged script path or the documented reasoning path with only the inputs that are actually available. 4. Return a structured result that separates assumptions, deliverables, risks, and unresolved items. 5. If execution fails or inputs are incomplete, switch to the fallback path and state exactly what blocked full completion. ## Quick Start ```python from scripts.cover_prompter import CoverPrompter prompter = CoverPrompter() # Generate prompt prompt = prompter.create_prompt( research_topic="CRISPR gene editing", visual_style="photorealistic", mood="hopeful", key_elements=["DNA strands", "molecular scissors", "cells"] ) ``` ## Core Capabilities ### 1. Prompt Generation ```python prompt = prompter.generate( subject="cancer immunotherapy", style="scientific illustration", color_scheme="blue_gradient", complexity="high" ) ``` **Prompt Structure:** - Subject description - Artistic style - Color palette - Lighting and mood - Technical specifications ### 2. Style Selection ```python style_guide = prompter.select_style( journal_type="nature", subject_matter="molecular_biology" ) ``` **Journal Styles:** - Nature: Dramatic, artistic - Cell: Clean, molecular focus - Science: Conceptual, broad appeal - Medical journals: Clinical, professional ### 3. Technical Specs ```python specs = prompter.get_specs( journal="Nature", cover_type="front" ) # Returns dimensions, resolution, color mode ``` ## CLI Usage ```text python scripts/cover_prompter.py \ --topic "neuroscience synaptic transmission" \ --style artistic \ --output prompt.txt ``` --- **Skill ID**: 211 | **Version**: 1.0 | **License**: MIT ## Output Requirements Every final response should make these items explicit when they are relevant: - Objective or requested deliverable - Inputs used and assumptions introduced - Workflow or decision path - Core result, recommendation, or artifact - Constraints, risks, caveats, or validation needs - Unresolved items and next-step checks ## Error Handling - If required inputs are missing, state exactly which fields are missing and request only the minimum additional information. - If the task goes outside the documented scope, stop instead of guessing or silently widening the assignment. - If `scripts/main.py` fails, report the failure point, summarize what still can be completed safely, and provide a manual fallback. - Do not fabricate files, citations, data, search results, or execution outcomes. ## Input Validation This skill accepts requests that match the documented purpose of `journal-cover-prompter` and include enough context to complete the workflow safely. Do not continue the workflow when the request is out of scope, missing a critical input, or would require unsupported assumptions. Instead respond: > `journal-cover-prompter` only handles its documented workflow. Please provide the missing required inputs or switch to a more suitable skill. ## References - [references/audit-reference.md](references/audit-reference.md) - Supported scope, audit commands, and fallback boundaries ## Response Template Use the following fixed structure for non-trivial requests: 1. Objective 2. Inputs Received 3. Assumptions 4. Workflow 5. Deliverable 6. Risks and Limits 7. Next Checks If the request is simple, you may compress the structure, but still keep assumptions and limits explicit when they affect correctness.

path: journal-cover-prompter_audit_result_v2.json
content: {
  "meta": {
    "skill_name": "journal-cover-prompter",
    "evaluated_on": "2026-03-22",
    "evaluator_version": "skill-auditor@1.0",
    "category": "Academic Writing",
    "execution_mode": "B",
    "complexity": "Moderate",
    "n_inputs": 5
  },
  "veto_gates": {
    "skill_veto": {
      "stability": "PASS",
      "contract": "PASS",
      "determinism": "PASS",
      "security": "PASS",
      "gate": "PASS"
    },
    "research_veto": {
      "applicable": true,
      "scientific_integrity": {
        "result": "PASS",
        "detail": "The legacy review did not flag invented scientific claims in the package's writing-oriented output."
      },
      "practice_boundaries": {
        "result": "PASS",
        "detail": "Practice boundaries held because the package kept to Use when creating journal cover images, generating scientific artwork prompts, or designing... instead of claiming new evidence."
      },
      "methodological_ground": {
        "result": "PASS",
        "detail": "The legacy audit preserved a method-grounded interpretation of the Use when creating journal cover images, generating scientific artwork prompts, or designing graphical abstracts. Creates detailed prompts for AI image generators to produce publication-quality scientific visuals workflow."
      },
      "code_usability": {
        "result": "N/A",
        "detail": "The core deliverable is textual rather than executable, which makes code usability not applicable in this case."
      },
      "gate": "PASS"
    }
  },
  "static_score": {
    "subtotal": 88,
    "max": 100,
    "categories": {
      "functional_suitability": {
        "score": 11,
        "max": 12,
        "note": "Functional fit remained strong, though the final communication package could still be a little tighter."
      },
      "reliability": {
        "score": 10,
        "max": 12,
        "note": "The archived deduction in reliability traces back to: Stabilize executable path and fallback behavior. Some inputs only reached PARTIAL due to execution gaps or weak boundary handling"
      },
      "performance_context": {
        "score": 8,
        "max": 8,
        "note": "Performance context reached full score in the archived evaluation."
      },
      "agent_usability": {
        "score": 14,
        "max": 16,
        "note": "Agent usability was strong, though the workflow could surface its main conversion branches more directly."
      },
      "human_usability": {
        "score": 8,
        "max": 8,
        "note": "Human usability reached full score in the archived evaluation."
      },
      "security": {
        "score": 10,
        "max": 12,
        "note": "Security scored well, though the archived review still left some room to state source-faithful boundaries more explicitly."
      },
      "maintainability": {
        "score": 10,
        "max": 12,
        "note": "Maintainability stayed solid, with modest room to simplify or consolidate the conversion workflow."
      },
      "agent_specific": {
        "score": 17,
        "max": 20,
        "note": "Agent specific was softened by the legacy issue 'Stabilize executable path and fallback behavior'. Some inputs only reached PARTIAL due to execution gaps or weak boundary handling"
      }
    }
  },
  "dynamic_score": {
    "execution_avg": 83.6,
    "max": 100,
    "assertion_pass_rate": {
      "passed": 18,
      "total": 20
    },
    "inputs": [
      {
        "index": 1,
        "type": "Canonical",
        "label": "Use when creating journal cover images, generating scientific artwork prompts, or designing graphical abstracts. Creates detailed prompts for AI image generators to produce publication-quality scientific visuals",
        "status": "COMPLETED",
        "status_flag": "PASS",
        "note": "Use when creating journal cover images, generating scientific... remained well-aligned with the documented contract in the preserved audit.",
        "basic": 38,
        "specialized": 52,
        "total": 90,
        "assertions_passed": 4,
        "assertions_total": 4,
        "assertions": [
          {
            "text": "The journal-cover-prompter output structure covers required deliverable blocks",
            "result": "PASS",
            "note": "The archived evaluation treated the output structure as aligned with the expected deliverable."
          },
          {
            "text": "Script execution path is available (command exit code is 0)",
            "result": "PASS",
            "note": "Command evidence was preserved in the legacy execution summary."
          },
          {
            "text": "The output stays within declared skill scope and target objective",
            "result": "PASS",
            "note": "The legacy audit kept this scenario within the documented skill boundary."
          },
          {
            "text": "Required research safety/boundary guidance is present without overclaims",
            "result": "PASS",
            "note": "The archived evaluation did not see this scenario drift outside the declared scope."
          }
        ]
      },
      {
        "index": 2,
        "type": "Variant A",
        "label": "Use this skill for academic writing tasks that require explicit assumptions, bounded scope, and a reproducible output format",
        "status": "COMPLETED",
        "status_flag": "PASS",
        "note": "The archived evaluation treated Use this skill for academic writing tasks that require explicit... as a clean in-scope run.",
        "basic": 36,
        "specialized": 50,
        "total": 86,
        "assertions_passed": 4,
        "assertions_total": 4,
        "assertions": [
          {
            "text": "The journal-cover-prompter output structure covers required deliverable blocks",
            "result": "PASS",
            "note": "The archived evaluation treated the output structure as aligned with the expected deliverable."
          },
          {
            "text": "Script execution path is available (command exit code is 0)",
            "result": "PASS",
            "note": "Command evidence was preserved in the legacy execution summary."
          },
          {
            "text": "The output stays within declared skill scope and target objective",
            "result": "PASS",
            "note": "The legacy audit kept this scenario within the documented skill boundary."
          },
          {
            "text": "Required research safety/boundary guidance is present without overclaims",
            "result": "PASS",
            "note": "The legacy audit kept this scenario within the documented skill boundary."
          }
        ]
      },
      {
        "index": 3,
        "type": "Edge",
        "label": "Use when creating journal cover images, generating scientific artwork prompts, or designing graphical abstracts. Creates detailed prompts for AI image generators to produce publication-quality scientific visuals",
        "status": "COMPLETED",
        "status_flag": "PASS",
        "note": "The Use when creating journal cover images, generating scientific... path verified the packaged helper command without exposing a deeper execution issue.",
        "basic": 35,
        "specialized": 49,
        "total": 84,
        "assertions_passed": 4,
        "assertions_total": 4,
        "assertions": [
          {
            "text": "The journal-cover-prompter output structure covers required deliverable blocks",
            "result": "PASS",
            "note": "The archived evaluation treated the output structure as aligned with the expected deliverable."
          },
          {
            "text": "Script execution path is available (command exit code is 0)",
            "result": "PASS",
            "note": "Command evidence was preserved in the legacy execution summary."
          },
          {
            "text": "The output stays within declared skill scope and target objective",
            "result": "PASS",
            "note": "The legacy audit kept this scenario within the documented skill boundary."
          },
          {
            "text": "Required research safety/boundary guidance is present without overclaims",
            "result": "PASS",
            "note": "The archived evaluation did not see this scenario drift outside the declared scope."
          }
        ]
      },
      {
        "index": 4,
        "type": "Variant B",
        "label": "Packaged executable path(s): scripts/main.py",
        "status": "COMPLETED",
        "status_flag": "PASS",
        "note": "The Packaged executable path(s): scripts/main.py scenario completed within the documented Use when creating journal cover images, generating scientific artwork prompts, or designing... boundary.",
        "basic": 34,
        "specialized": 48,
        "total": 82,
        "assertions_passed": 4,
        "assertions_total": 4,
        "assertions": [
          {
            "text": "The journal-cover-prompter output structure covers required deliverable blocks",
            "result": "PASS",
            "note": "The legacy audit marked the deliverable structure as passing."
          },
          {
            "text": "Script execution path is available (command exit code is 0)",
            "result": "PASS",
            "note": "The archived execution trace supported this script-path assertion."
          },
          {
            "text": "The output stays within declared skill scope and target objective",
            "result": "PASS",
            "note": "The archived evaluation did not see this scenario drift outside the declared scope."
          },
          {
            "text": "Required research safety/boundary guidance is present without overclaims",
            "result": "PASS",
            "note": "The legacy audit kept this scenario within the documented skill boundary."
          }
        ]
      },
      {
        "index": 5,
        "type": "Stress",
        "label": "End-to-end case for Scope-focused workflow aligned to: Use when creating journal cover images, generating scientific artwork prompts, or designing graphical abstracts. Creates detailed prompts for AI image generators to produce publication-quality scientific visuals",
        "status": "PARTIAL",
        "status_flag": "FAIL",
        "note": "The preserved weakness for End-to-end case for Scope-focused workflow aligned to: Use when creating journal cover images, generating scientific artwork prompts, or designing graphical abstracts. Creates detailed prompts for AI image generators to produce publication-quality scientific visuals was concentrated in one point: The output stays within declared skill scope and target objective.",
        "basic": 31,
        "specialized": 45,
        "total": 76,
        "assertions_passed": 2,
        "assertions_total": 4,
        "assertions": [
          {
            "text": "The journal-cover-prompter output structure covers required deliverable blocks",
            "result": "PASS",
            "note": "The legacy audit marked the deliverable structure as passing."
          },
          {
            "text": "Script execution path is available (command exit code is 0)",
            "result": "PASS",
            "note": "Legacy command notes backed the passing execution-path judgment."
          },
          {
            "text": "The output stays within declared skill scope and target objective",
            "result": "FAIL",
            "note": "A boundary-related issue was preserved for this scenario in the legacy evaluation."
          },
          {
            "text": "Required research safety/boundary guidance is present without overclaims",
            "result": "FAIL",
            "note": "The legacy audit recorded a scope-boundary problem for this scenario."
          }
        ]
      }
    ]
  },
  "final": {
    "static_weighted": 35.2,
    "dynamic_weighted": 50.2,
    "score": 85,
    "max": 100,
    "grade": "Production Ready",
    "grade_symbol": "*",
    "deployable": true,
    "veto_override": false
  },
  "key_strengths": [
    "Primary routing is Academic Writing with execution mode B",
    "Static quality score is 88/100 and dynamic average is 83.6/100",
    "Assertions and command execution outcomes are recorded per input for human review"
  ],
  "recommendations": [
    {
      "priority": "P1",
      "title": "Stabilize executable path and fallback behavior",
      "observed_in": [
        5
      ],
      "problem": "Some inputs only reached PARTIAL due to execution gaps or weak boundary handling",
      "root_cause": "Example commands are not fully runnable or missing deterministic fallback",
      "fix": "Add validated runnable commands and a strict fallback template for missing parameters and execution errors"
    }
  ]
}


path: references/audit-reference.md
content: # Audit Reference

## Scope

- Skill: `journal-cover-prompter`
- Core purpose: Use when creating journal cover images, generating scientific artwork prompts, or designing graphical abstracts. Creates detailed prompts for AI image generators to produce publication-quality scientific visuals.
- Use only within the documented workflow and category boundary defined in `SKILL.md`

## Supported Audit Paths

- `python -m py_compile scripts/main.py`
- `python scripts/main.py --help`

## Fallback Boundary

If required inputs are incomplete, the skill should still return:

- the missing required inputs
- the steps that can still be completed safely
- assumptions that need confirmation before execution
- the next checks before accepting the final deliverable


path: scripts/main.py
content: #!/usr/bin/env python3
"""
Journal Cover Prompter
Generate AI art prompts for scientific journal cover designs.
"""

import argparse


class JournalCoverPrompter:
    """Generate prompts for journal cover artwork."""
    
    STYLE_OPTIONS = {
        "realistic": "photorealistic, highly detailed, scientific accuracy",
        "artistic": "artistic interpretation, stylized, visually striking",
        "minimalist": "clean, minimal, elegant, focused composition",
        "dramatic": "dramatic lighting, cinematic, high contrast",
        "abstract": "abstract representation, conceptual, modern art"
    }
    
    MOOD_OPTIONS = {
        "innovative": "cutting-edge, futuristic, breakthrough",
        "hopeful": "optimistic, healing, life-saving",
        "mysterious": "intriguing, discovery, unknown",
        "powerful": "strong, impactful, transformative",
        "serene": "calm, peaceful, balanced"
    }
    
    COLOR_PALETTES = {
        "blue": "deep blue, cyan, scientific blue",
        "green": "emerald, teal, life sciences green",
        "red": "crimson, medical red, vibrant",
        "purple": "violet, scientific purple, rich",
        "warm": "gold, orange, sunset tones",
        "cool": "blue, silver, ice tones",
        "rainbow": "vibrant spectrum, diverse colors"
    }
    
    def generate_prompt(self, research_topic, style="artistic", mood="innovative", 
                       colors="blue", include_text=True):
        """Generate AI art prompt."""
        
        # Base prompt components
        prompt_parts = [
            f"Scientific journal cover art depicting {research_topic}",
            self.STYLE_OPTIONS.get(style, self.STYLE_OPTIONS["artistic"]),
            self.MOOD_OPTIONS.get(mood, self.MOOD_OPTIONS["innovative"]),
            f"color palette: {self.COLOR_PALETTES.get(colors, colors)}",
            "high resolution, professional quality",
            "suitable for journal cover"
        ]
        
        # Technical specifications
        technical = [
            "16:9 aspect ratio",
            "300 DPI",
            "print quality"
        ]
        
        # What to avoid
        negative = [
            "text" if not include_text else "",
            "cluttered",
            "low quality",
            "cartoonish"
        ]
        
        prompt = {
            "main_prompt": ", ".join(prompt_parts),
            "technical_specs": ", ".join(technical),
            "negative_prompt": ", ".join([n for n in negative if n]),
            "suggested_tools": ["Midjourney", "DALL-E 3", "Stable Diffusion"],
            "tips": [
                "Emphasize the central scientific concept",
                "Use metaphorical representations for abstract concepts",
                "Ensure visual clarity at small sizes",
                "Consider how it will look with journal title overlay"
            ]
        }
        
        return prompt
    
    def print_prompt(self, prompt):
        """Print formatted prompt."""
        print(f"\n{'='*70}")
        print("JOURNAL COVER AI ART PROMPT")
        print(f"{'='*70}\n")
        
        print("MAIN PROMPT:")
        print(f"  {prompt['main_prompt']}")
        print()
        
        print("TECHNICAL SPECIFICATIONS:")
        print(f"  {prompt['technical_specs']}")
        print()
        
        if prompt['negative_prompt']:
            print("NEGATIVE PROMPT (what to avoid):")
            print(f"  {prompt['negative_prompt']}")
            print()
        
        print("SUGGESTED AI TOOLS:")
        for tool in prompt['suggested_tools']:
            print(f"  • {tool}")
        print()
        
        print("TIPS:")
        for tip in prompt['tips']:
            print(f"  • {tip}")
        
        print(f"\n{'='*70}\n")


def main():
    parser = argparse.ArgumentParser(description="Journal Cover Prompter")
    parser.add_argument("--topic", "-t", required=True, help="Research topic")
    parser.add_argument("--style", "-s", default="artistic",
                       choices=["realistic", "artistic", "minimalist", "dramatic", "abstract"],
                       help="Art style")
    parser.add_argument("--mood", "-m", default="innovative",
                       choices=["innovative", "hopeful", "mysterious", "powerful", "serene"],
                       help="Mood/atmosphere")
    parser.add_argument("--colors", "-c", default="blue",
                       help="Color palette (blue/green/red/purple/warm/cool/rainbow)")
    parser.add_argument("--no-text", action="store_true", help="Exclude text from image")
    
    args = parser.parse_args()
    
    prompter = JournalCoverPrompter()
    
    prompt = prompter.generate_prompt(
        args.topic,
        args.style,
        args.mood,
        args.colors,
        not args.no_text
    )
    
    prompter.print_prompt(prompt)


if __name__ == "__main__":
    main()


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (HIGH)