🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Ctf Writeup

by @gandli

Generates a single standardized submission-style CTF writeup for competition handoff and organizer review. Use after solving a CTF challenge to document the...

Versionv1.0.0
Downloads969
TERMINAL
clawhub install ctf-writeup

πŸ“– About This Skill


name: ctf-writeup description: Generates a single standardized submission-style CTF writeup for competition handoff and organizer review. Use after solving a CTF challenge to document the solution steps, tools used, and lessons learned in a structured format. license: MIT compatibility: Requires filesystem-based agent (Claude Code or similar) with bash and Python 3. allowed-tools: Bash Read Write Edit Glob Grep Task WebFetch WebSearch metadata: user-invocable: "true" argument-hint: "[challenge-name]"

CTF Write-up Generator

Generate a standardized submission-style CTF writeup for a solved challenge.

Default behavior:

  • During an active competition, optimize for speed, clarity, and reproducibility
  • Keep writeups short enough that a teammate or organizer can validate the solve quickly
  • Always produce a submission-style writeup
  • Prefer one complete solve script from challenge data to final flag
  • Workflow

    Step 1: Gather Information

    Collect the following from the current session, challenge files, and user input:

    1. Challenge metadata β€” name, CTF event, category, difficulty, points, flag format 2. Solution artifacts β€” exploit scripts, payloads, screenshots, command output 3. Timeline β€” key steps taken, dead ends, pivots

    # Scan for exploit scripts and artifacts
    find . -name '*.py' -o -name '*.sh' -o -name 'exploit*' -o -name 'solve*' | head -20
    

    Check for flags in output files

    grep -rniE '(flag|ctf|eno|htb|pico)\{' . 2>/dev/null

    Step 2: Generate Write-up

    Write the writeup file as writeup.md (or writeup-.md) using the submission template below.


    Templates

    Submission Format

    ---
    title: ""
    ctf: ""
    date: YYYY-MM-DD
    category: web|pwn|crypto|reverse|forensics|osint|malware|misc
    difficulty: easy|medium|hard
    points: 
    flag_format: "flag{...}"
    author: ""
    

    Summary

    <1-2 sentences: what the challenge was and the core technique. Keep it direct.>

    Solution

    Step 1:

    \\\python \\\

    Step 2: (optional)

    Step 3: (optional)

    Flag

    \\\ flag{example_flag_here} \\\

    Guidance:

  • Prefer 1-3 short steps total
  • Keep code to the smallest complete solving script
  • Do not split "recover secret", "derive key", and "decrypt flag" into separate partial snippets
  • The script should start from the challenge data and end by printing the flag
  • Avoid long background sections
  • Avoid dead ends unless they explain a key pivot
  • Avoid multiple alternative solves; pick one clean path
  • Redact the flag only if the user explicitly asks for redaction

  • Best Practices Checklist

    Before finalizing the writeup, verify:

  • [ ] Metadata complete β€” title, CTF, date, category, difficulty, points, author all filled
  • [ ] Flag handling matches request β€” keep the real flag unless the user asked for redaction
  • [ ] Reproducible steps β€” a reader can follow your writeup and reproduce the solution
  • [ ] Code is runnable β€” exploit scripts include all imports, correct variable names, and comments
  • [ ] No sensitive data β€” no real credentials, API keys, or private infrastructure details
  • [ ] Length stays concise β€” the writeup is short enough for fast review
  • [ ] Tools and versions noted β€” mention specific tool versions if behavior depends on them
  • [ ] Proper attribution β€” credit teammates, referenced writeups, or tools that were essential
  • [ ] Grammar and formatting β€” consistent heading levels, code blocks have language tags
  • Quality Guidelines

    DO:

  • Explain just enough for fast verification
  • Include one complete solving path, not multiple alternative routes
  • Include one complete script that goes all the way to the final flag
  • Show actual output (truncated if very long) to prove the approach worked
  • Tag code blocks with language (python, bash, sql, etc.)
  • Keep the main path front-loaded so a reader can validate it quickly
  • DON'T:

  • Copy-paste raw terminal dumps without explanation
  • Paste several partial snippets that force the reader to reconstruct the final solve
  • Leave placeholder text in the final writeup
  • Include irrelevant tangents that don't contribute to the solution
  • Assume the reader knows the specific challenge setup
  • Challenge

    $ARGUMENTS