원클릭으로
create-presentation
Generate a PPTX presentation explaining code changes on the current branch, with matplotlib diagrams and dark theme slides.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Generate a PPTX presentation explaining code changes on the current branch, with matplotlib diagrams and dark theme slides.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Review code, test, and workflow-machinery changes across multiple dimensions using specialized agents with triage-based selection.
Research the codebase and create an implementation plan with architecture notes, design document, and track decomposition. Use when starting a new feature or large change.
Execute the implementation plan: autonomous plan review (Phase 2) on first invocation, then track-by-track execution (Phase A review + decomposition, Phase B implementation, Phase C code review). Use after /create-plan to implement the planned work.
Diagnose and fix a CI test failure from a GitHub PR or workflow run. Includes root cause analysis, dimensional code review, and PR creation.
Apply an edit to `design.md` or `design-mechanics.md` through the mutation discipline: apply → auto-review → iterate → present. Use this instead of directly Editing those files.
Audit a finished design document for hard-to-read or hard-to-understand paragraphs, then harden the house-style rules so future design docs avoid them. Fans out audit sub-agents, classifies each obscure passage as caught-by-an-existing-rule or a gap, and proposes plus (on approval) applies rule changes across the style docs. Use when the user wants to feed a design doc back into the style guide, find obscure paragraphs and fix the rules, harden the writing rules from a real DD, or close the readability feedback loop. Accepts a design-doc path, an adr dir name, or defaults to the current branch's design. Reports the doc's own violations; does not rewrite the doc.
| name | create-presentation |
| description | Generate a PPTX presentation explaining code changes on the current branch, with matplotlib diagrams and dark theme slides. |
| argument-hint | [base-branch] |
| user-invocable | true |
Generate a PPTX presentation explaining the changes on the current branch.
If "$ARGUMENTS" is non-empty, use it as the target branch to compare against.
Otherwise, default to origin/develop.
You are creating a technical presentation for a team of developers. The output
is a .pptx file in the project root that the user can open in Google Slides.
git log --oneline <base>..HEAD to list all commits on this branch.git diff --name-only <base>..HEAD to find changed source files.sql/parser/YouTrackDBSql*.java) from hand-written code.Create a slide outline (15–25 slides) covering:
python3 -m venv .tmp/pptx-venv
.tmp/pptx-venv/bin/pip install python-pptx matplotlib
If the venv already exists, skip creation and just verify imports work.
For every diagram (flowcharts, architecture, data flow, record layouts, before/after
comparisons), generate a matplotlib figure rendered to a PNG BytesIO stream.
Follow these conventions:
MPL_BG = '#121224' # figure/axes background
MPL_FG = '#e0e0e0' # default text
MPL_BLUE = '#64B5F6' # titles, primary boxes
MPL_LBLUE = '#81D4FA' # secondary highlights
MPL_GREEN = '#A5D6A7' # success/safe elements
MPL_ORANGE = '#FFB74D' # accent/new/warning
MPL_RED = '#EF5350' # delete/danger
MPL_BOX_BG = '#1a2a44' # box fill
MPL_BOX_BORDER = '#3a5a8a' # box stroke
Use matplotlib.patches.FancyBboxPatch for boxes and ax.annotate with
arrowprops for arrows. Helper pattern:
def make_box(ax, x, y, w, h, text, facecolor, edgecolor, text_color,
fontsize=11, weight='normal'):
box = FancyBboxPatch((x, y), w, h, boxstyle="round,pad=0.15",
facecolor=facecolor, edgecolor=edgecolor, linewidth=1.5)
ax.add_patch(box)
ax.text(x + w/2, y + h/2, text, ha='center', va='center',
fontsize=fontsize, color=text_color, weight=weight, family='monospace', wrap=True)
def make_arrow(ax, x1, y1, x2, y2, color='#81D4FA', style='->', lw=2):
ax.annotate('', xy=(x2, y2), xytext=(x1, y1),
arrowprops=dict(arrowstyle=style, color=color, lw=lw))
matplotlib.use('Agg') before importing pyplot.fig.savefig(buf, format='png', dpi=200, bbox_inches='tight', facecolor=fig.get_facecolor()).ax.axis('off').figsize appropriate for widescreen (e.g. (12, 5) for wide diagrams, (10, 7) for tall ones).ImageDraw.text() to render ASCII art — the default bitmap
font has broken glyph coverage for box-drawing characters (U+250x) and the
output is unreadable in presentations.dot binary which
may not be installed.Use python-pptx to assemble slides. Follow these conventions:
prs.slide_width = Inches(13.333) # widescreen 16:9
prs.slide_height = Inches(7.5)
BG_COLOR = RGBColor(0x1B, 0x1B, 0x2F) # slide background
TITLE_COLOR = RGBColor(0x64, 0xB5, 0xF6) # slide titles
HEADING_COLOR = RGBColor(0x81, 0xD4, 0xFA) # subtitles
TEXT_COLOR = RGBColor(0xE0, 0xE0, 0xE0) # body text
ACCENT_COLOR = RGBColor(0xFF, 0xB7, 0x4D) # bold highlights
CODE_BG = RGBColor(0x12, 0x12, 0x24) # code block fill
TABLE_HEADER_BG = RGBColor(0x1A, 0x3A, 0x5C) # table header row
TABLE_ROW_BG = RGBColor(0x15, 0x15, 0x2A) # odd table rows
TABLE_ALT_BG = RGBColor(0x1D, 0x1D, 0x35) # even table rows
BORDER_COLOR = RGBColor(0x3A, 0x3A, 0x5C) # code block border
prs.slide_layouts[6] (blank layout) for all slides.slide.background.fill.solid(); slide.background.fill.fore_color.rgb = BG_COLOR.(0.5", 0.3").**bold** parsing to apply ACCENT_COLOR.ROUNDED_RECTANGLE shape with CODE_BG fill, Consolas 13pt, green text.slide.shapes.add_picture(stream, left, top, width).Write the entire generator as a single Python script saved to .tmp/gen-presentation.py.
Structure it as:
set_slide_bg, add_title, add_bullet_text, add_code_block, add_table, add_image).prs.save(output_path) at the end.Run with: .tmp/pptx-venv/bin/python .tmp/gen-presentation.py
Save the PPTX to the project root as <branch-name>-presentation.pptx.
Tell the user the file path and total slide count.
Also leave the Python script at .tmp/gen-presentation.py so the user
can tweak and regenerate.