spec-driven-presentation-maker ã¯ãã©ã® .pptx ãã¡ã€ã«ã§ããã³ãã¬ãŒããšããŠäœ¿ããŸãã
ãã³ãã¬ãŒãã®ã¬ã€ã¢ãŠããé
è²ããã©ã³ãããã¬ãŒã¹ãã«ããŒãèªåã§è§£æããã®ã§ãæäœæ¥ã®èšå®ã¯äžèŠã§ãã
ãã³ãã¬ãŒãã®ã»ãã«ã次ã®ãªãœãŒã¹ããŠãŒã¶ãŒããšã«ã«ã¹ã¿ãã€ãºã§ããŸãã
- ãã³ãã¬ãŒãïŒ
.pptxïŒ: ã¹ã©ã€ããã¹ã¿ãŒ - ã¹ã¿ã€ã«ïŒ
.htmlïŒ: ãšãŒãžã§ã³ãã䜿ããã¶ã€ã³ã¬ã€ã - ã¢ã»ããïŒ
.svgã.pngãªã©ã®ç»åïŒ: ã¢ã€ã³ã³ãããŽãã€ã©ã¹ã - èšå®ïŒ
config.jsonïŒ: åºåå ãã£ã¬ã¯ããªã远å ã®ã¢ã»ãããœãŒã¹ãªã©
4 ã€ãšãããŠãŒã¶ãŒããšã®ããŒã«ã«ãªå Žæã«çœ®ããŸããpip install --upgrade ããªããžããªã®å clone ã®
åŸãã«ã¹ã¿ãã€ãºãæ®ããŸãã
analyze_template ãåŒã¶ãšããšã³ãžã³ã¯ .pptx ãã¡ã€ã«ã調ã¹ãŠæ¬¡ã®æ
å ±ãåãåºããŸãã
- ã¹ã©ã€ãã¬ã€ã¢ãŠã: ååã寞æ³ããã¬ãŒã¹ãã«ããŒã®äœçœ®ãšãµã€ãº
- ããŒãã®é è²: èæ¯ãã¢ã¯ã»ã³ããæåã®è²
- ãã©ã³ã: èŠåºããšæ¬æã®ãã©ã³ã
- ãã¬ãŒã¹ãã«ããŒ: ã¿ã€ãã«ãæ¬æãããã¿ãŒãšãã®æ£ç¢ºãªåº§æš
ãšãŒãžã§ã³ãã¯ãã®æ å ±ã䜿ãããã³ãã¬ãŒãã®ãã¶ã€ã³ã«æ²¿ã£ãŠèŠçŽ ãæ£ç¢ºã«é 眮ããŸãã
HTML ãããïŒdeck.json ã® outputFormat: "html"ïŒãåã .pptx ãã³ãã¬ãŒãã䜿ããŸãããšã³ãžã³ã¯
ãã³ãã¬ãŒããæ¬¡ã® 3 ã€ã«å€æããŸããtheme.cssïŒãã£ã³ãã¹ã®ãµã€ãºãããŒãã®é
è²ããã©ã³ãã
ãã¬ãŒã¹ãã«ããŒã®äœçœ®ãšæåã®ã¹ã¿ã€ã«ïŒãtemplate.jsonïŒã¬ã€ã¢ãŠãããã¬ãŒã¹ãã«ããŒãã¹ã©ã€ãçªå·ãš
ããã¿ãŒã®é
眮ïŒããããŠãã¹ã¿ãŒãšã¬ã€ã¢ãŠããæãè£
食ïŒããŽã垯ãèæ¯ç»åïŒãã¬ã€ã¢ãŠãããšã« 1 æã®
SVG ã«ãããã®ãçµæã¯ãã³ãã¬ãŒãã®å
容ã®ããã·ã¥ãããŒã« sdpm/.cache/template-html/ ã«ãã£ãã·ã¥
ãããã®ã§ã.pptx ãç·šéãããšå€æãããçŽãããŸããè£
é£Ÿã®æç»ã«ã¯ LibreOffice ãš poppler ãå¿
èŠã§ãã
ç¡ããŠãæ§é ã¯å€æãããè¶³ããªãããŒã«ããã«ãã 1 床ã ãäŒããŸãããã¬ãŒã¹ãã«ããŒä»¥å€ã«äœãæããªã
ãã³ãã¬ãŒãïŒå梱㮠blank-light / blank-dark ãªã©ïŒã§ã¯ãã©ã¡ããäžèŠã§ãã
PowerPointãGoogle ã¹ã©ã€ããKeynote ã§ãã³ãã¬ãŒãããã¶ã€ã³ããŸãïŒ.pptx ã§æžãåºãïŒã
-
ã¹ã©ã€ãã¬ã€ã¢ãŠããå®çŸ©ãã: å°ãªããšã次ãçšæããŸãã
- ã¿ã€ãã«ã¹ã©ã€ãã®ã¬ã€ã¢ãŠã
- ã³ã³ãã³ãã¹ã©ã€ãã®ã¬ã€ã¢ãŠãïŒã¿ã€ãã«ã®ãã¬ãŒã¹ãã«ã㌠+ æ¬æã®é åïŒ
- ã»ã¯ã·ã§ã³åºåãã®ã¬ã€ã¢ãŠãïŒä»»æïŒ
- çœçŽã®ã¬ã€ã¢ãŠãïŒèªç±ãªãã¶ã€ã³çšïŒ
-
ããŒãã®é è²ãèšå®ãã: ã¹ã©ã€ããã¹ã¿ãŒã®ã«ã©ãŒããŒãã«ãã©ã³ãã®è²ãå®çŸ©ããŸãããšãŒãžã§ã³ã㯠ãããèªã¿åããäžè²«ããŠäœ¿ããŸãã
-
ãã©ã³ããèšå®ãã: ã¹ã©ã€ããã¹ã¿ãŒã§èŠåºããšæ¬æã®ãã©ã³ããå®çŸ©ããŸãããšãŒãžã§ã³ããèªåã§ åãåºããŸãã
-
äœèšãªãã®ãæ®ããªã: ã¬ã€ã¢ãŠããããµã³ãã«ã®å å®¹ãæ¶ããŸãããšãŒãžã§ã³ãã䜿ãã®ã¯ãã¬ãŒã¹ ãã«ããŒã®äœçœ®ã§ããµã³ãã«ã®æåã§ã¯ãããŸããã
-
ã¹ããŒã«ãŒããŒãã«ã¬ã€ã¢ãŠãã®äœ¿ãæ¹ãæžã: åã¬ã€ã¢ãŠãã®ãµã³ãã«ã¹ã©ã€ãã®ã¹ããŒã«ãŒããŒãã«ã äœ¿ãæ¹ãæžããŸãããšãŒãžã§ã³ãã¯ãã³ãã¬ãŒãã®è§£ææã«ãããèªã¿ããã®ã¬ã€ã¢ãŠãã§ã¹ã©ã€ããäœããšãã« åŸããŸãã
äŸ:
- ã2 åã®æ¯èŒã«ã¯ãã®ã¬ã€ã¢ãŠãã䜿ãã
- ãç»åã¯å³åŽã«ã ã眮ãã
- ãã¿ã€ãã«ã¯ 1 è¡ã«åããã
- ã¬ã€ã¢ãŠãã«ã¯å 容ãåããååãä»ããŸãïŒãContent with ImageããTwo Columnããªã©ïŒããšãŒãžã§ã³ã㯠ãã®ååãèªã¿ãŸã
- èæ¯ãšæåã®ã³ã³ãã©ã¹ãæ¯ã¯ 4.5:1 以äžã«ããŸã
analyze_templateãå®è¡ããŠåºåã確èªãããã³ãã¬ãŒãã詊ããŸã
ã©ã®ã¹ã©ã€ããµã€ãºã§ã䜿ããŸãã16:9ã4:3ã16:10 ãªã©ã®æ¯çã«å¯Ÿå¿ããŠããŸãã ãšã³ãžã³ã¯ãã³ãã¬ãŒãã®å®éã®å¯žæ³ããæç»ãã£ã³ãã¹ã決ããŸãã
座æšç³»ã¯ å¹ 1920 pxãé«ãã¯çžŠæšªæ¯ã«åããã 圢ã§ãã
| ãã³ãã¬ãŒãã®ã¹ã©ã€ããµã€ãº | ã¹ã©ã€ã JSON ã®ãã£ã³ãã¹ |
|---|---|
| 16:9ïŒ13.33 à 7.5 inïŒ | 1920 à 1080 px |
| 4:3ïŒ10 à 7.5 inïŒ | 1920 à 1440 px |
| 16:10 | 1920 Ã 1200 px |
analyze_template ã¯ãã£ã³ãã¹ã®ãµã€ãºã slide_size ãšããŠè¿ãããšãŒãžã§ã³ãã¯ããã deck.json ã«
slideSize ãšããŠèšé²ããŸããããã§ã¹ã©ã€ãã®äœææã«ãã£ã³ãã¹å
šäœã䜿ããŸãã
16:9 以å€ã®ãã³ãã¬ãŒãã§ã®æ¢ç¥ã®å¶é:
- ã¢ãŒããã¯ãã£å³ã®ããã¯ã¹: #285 ã§ä¿®æ£æžã¿ã§ããããã¯ã¹ã®èªåã®é«ãã¯
slideSize.ptPerPxïŒanalyze_templateãè¿ãdeck.jsonã«ä¿åããã pt ãã px ãžã®æç®çïŒã§èª¿æŽãããŸãã现ãã 調æŽããããšãã¯ãæç€ºçãªbox.heightãåŒãç¶ã䜿ããŸãã - ã¹ã¿ã€ã«ã®ãã¢: 忢±ã®ã¹ã¿ã€ã«ã®ã£ã©ãªãŒã® HTML 㯠16:9 ã®åºå®ãã£ã³ãã¹ã§ããäœãããã¹ã©ã€ãã«ã¯ 圱é¿ããŸããïŒäœ¿ãããã®ã¯ãã¶ã€ã³ããŒã¯ã³ã ãã§ãïŒã
- ãããäžèЧã®ãµã ãã€ã«: Web UI ã®ãããäžèЧã¯ãã«ãŒãã®é«ããããããããã«ãµã ãã€ã«ãåºå®ã®æ¯çã§ åãæããŸããã¹ã©ã€ãã®ãã¬ãã¥ãŒïŒäœæ¥ç»é¢ãã«ã«ãŒã»ã«ïŒã¯å®éã®çžŠæšªæ¯ã§è¡šç€ºãããŸãã
# List all layouts
uv run python3 scripts/pptx_builder.py analyze_template my-template.pptx
# Show specific layout details
uv run python3 scripts/pptx_builder.py analyze_template my-template.pptx --layout "Content"ãšãŒãžã§ã³ãã¯èšèšã®æ®µéã§ analyze_template ãèªåã§åŒã³ãŸããçŽæ¥é Œãããšãã§ããŸãã
ããã³ãã¬ãŒããè§£æããŠã䜿ããã¬ã€ã¢ãŠããèŠããŠã
ãã³ãã¬ãŒã㯠S3 ã«ä¿åãããŸãïŒã¡ã¿ããŒã¿ã¯ DynamoDB ã«ãã£ãã·ã¥ãããŸãïŒããšãŒãžã§ã³ãã¯
list_templates ã§äœ¿ãããã³ãã¬ãŒãã確èªããéžãã ãã³ãã¬ãŒãã® ID ã§ analyze_template ãåŒã³ãŸãã
.pptx ãã¡ã€ã«ãåç §ã§ããå Žæã«çœ®ãããããã®äœææã«ãã¹ãæå®ããŸãã
{
"tool": "init_deck_workspace",
"arguments": {
"name": "My Deck"
}
}ãŸãã¯ããšãŒãžã§ã³ãã«ããã®ãã¬ãŒã³ã«ã¯ my-template.pptx ã䜿ã£ãŠããšäŒããã ãã§ãæ§ããŸããã
<user-config>/templates/ïŒäžã®ããŠãŒã¶ãŒããŒã«ã«ã®ãã³ãã¬ãŒãããåç
§ïŒã«çœ®ãããã³ãã¬ãŒãã¯ãèªåã§
list_templates ã«è¡šç€ºãããŸããsdpm/templates/ ã¯å梱ã®ãã³ãã¬ãŒãã®çœ®ãå Žæã§ããã€ã³ã¹ããŒã«ãã SDPM ã§ã¯
sdpm update ã管çãã ~/.sdpm/checkout ã®äžéšãªã®ã§ãèªåã®ãã³ãã¬ãŒãã¯çœ®ããªãã§ãã ããã
忢±ã®ãã³ãã¬ãŒã:
sdpm/templates/
âââ blank-dark.pptx
âââ blank-light.pptx
ã«ã¹ã¿ã ãã³ãã¬ãŒãã¯ããã±ãŒãžã®å€ã«ã眮ããŸãããããããš pip install --upgrade ããªããžããªã®
å clone ã®åŸãæ®ããŸããKiro CLI / pptx_builder.py ã¯æ¬¡ã®å Žæãé ã«æ¢ããçµæããŸãšããŠ
list_templates ã«åºããŸãã
$SDPM_TEMPLATES_DIRã«äžŠã¹ããã£ã¬ã¯ããªïŒåºåãæåã¯ãã©ãããã©ãŒã ã«åŸããUnix ã¯:ãWindows ã¯;ãPATHãšåãæ±ãïŒ<user-config>/templates/ïŒäžã® ãŠãŒã¶ãŒããŒã«ã«ã®ãã£ã¬ã¯ããªæ§æ ãåç §ïŒsdpm/templates/ïŒããã±ãŒãžã«å梱ïŒ
åããã¡ã€ã«åãªãããŠãŒã¶ãŒããŒã«ã«ã®ãã³ãã¬ãŒãã忢±ã®ãã®ããåªå ãããŸãããªããžããªãç·šéããã« ãµã³ãã«ã®ãã³ãã¬ãŒããå·®ãæ¿ããããŸãã
ãŠãŒã¶ãŒããŒã«ã«ã®åºæºãã£ã¬ã¯ããªã¯ãã©ãããã©ãŒã ã«ãã£ãŠç°ãªããŸãã
| ãã©ãããã©ãŒã | å Žæ |
|---|---|
| macOS / Linux | $XDG_CONFIG_HOME/sdpm/ïŒæ¢å®: ~/.config/sdpm/ïŒ |
| Windows | %APPDATA%/sdpm/ïŒæ¢å®: C:\Users\<you>\AppData\Roaming\sdpm\ïŒ |
æ§æ:
<user-config>/sdpm/
âââ templates/ # User-local .pptx templates
âââ styles/ # User-local style HTMLs (see "Custom Styles" below)
âââ assets/ # User-local asset sources (see "Custom Assets" below)
â âââ my-company/
â âââ manifest.json
â âââ logo.svg
âââ config.json # Per-user config overrides (output_dir, extra_sources, âŠ)
ãããã®ãã¹ã¯æ¢å®ã§ã¯ååšããŸãããå¿
èŠãªãã®ã ããäœã£ãŠãã ããïŒmkdir -p ~/.config/sdpm/styles ãªã©ïŒã
ãã³ãã¬ãŒãã S3 ã«ã¢ããããŒãããDynamoDB ã«ç»é²ããŸãã
uv run python scripts/upload_template.py \
--file my-template.pptx \
--name "Corporate 2026" \
--bucket <ResourceBucketName> \
--table <TableName>| ãã©ã¡ãŒã¿ | å¿ é | 説æ |
|---|---|---|
--file |
â | .pptx ãã³ãã¬ãŒããã¡ã€ã«ã®ãã¹ |
--name |
â | ãã³ãã¬ãŒãã®è¡šç€ºå |
--bucket |
â | S3 ãã±ããåïŒCDK ã®åºå ResourceBucketNameïŒ |
--table |
â | Amazon DynamoDB ã®ããŒãã«åïŒCDK ã®åºå TableNameïŒ |
ã¹ã¯ãªããã S3 ãžã®ã¢ããããŒãããã³ãã¬ãŒãã®è§£æãAmazon DynamoDB ãžã®ã¡ã¿ããŒã¿ç»é²ããŸãšããŠè¡ããŸãã
ã¯ã©ãŠãã® Web UI ã§ã¯ãåãŠãŒã¶ãŒã ãã³ãã¬ãŒã ç»é¢ããçµã¿èŸŒã¿ãã³ãã¬ãŒããšèªåã®ãã³ãã¬ãŒãã« èªåã ãã®ã¡ã¢ãä»ããããŸãããšãŒãžã§ã³ãã¯ãã³ãã¬ãŒããææ¡ã»éžæãããšãããã®ã¡ã¢ïŒäœ¿ãå Žé¢ã奜ã¿ã æ¢å®ã§äœ¿ã£ãŠã»ãããšããåžæãªã©ïŒãèæ ®ããŸãã
ã¹ã¿ã€ã«ã¯ 1 ã€ã® HTML ãã¡ã€ã«ã§ãã«ãŒã«ããã¯ãåèè³æãã®ã£ã©ãªãŒã®ãµã³ãã«ãå
ŒããŸãã:root ã®
ããŒã¯ã³ïŒé
è²ã--fs-* ã®ãã©ã³ããµã€ãºã寞æ³ïŒã¯ apply_style ãšãã«ãæã®ãã§ãã¯ãæ©æ¢°çã«èªã¿åããŸãã
ã¹ã©ã€ãã®éšåã¯ããã®ã¹ã¿ã€ã«ã§äœã£ãããã®ã¹ã¿ã€ã«ã«ã€ããŠã®çããããã§ããã«ãŒã«ãã¿ã€ãã«ãšç« ã®åœ¢ã
ç¹°ãè¿ã䜿ããã¿ãŒã³ïŒæ¯èŒãæé ã衚ãã°ã©ãâŠïŒããšã« 1 æã®ã¹ã©ã€ãããããããããã«äœ¿ã£ãŠããé åãš
éšåãã³ã¡ã³ãã§æžãããŠããŸããã®ã£ã©ãªãŒã«è¡šç€ºããããã®ãããã®ã¹ã¿ã€ã«ã®ãããã®èŠãç®ãã®ãã®ã§ãã
ã³ã³ããŒã¶ãŒã¯ãã¡ã€ã«å
šäœã specs/art-direction.html ãšããŠèªã¿ããªãŒã±ã¹ãã¬ãŒã¿ãŒã¯ã¢ãŠãã©ã€ã³ã
æžãåã«ãã® Message & Outline ã®éšåãèªã¿ãŸãããã®ãããã¹ã¿ã€ã«ã¯èŠãç®ã ãã§ãªããããã®æ§æã
決ããŸãã骚çµã¿ãšããŒã¯ã³ã®çŽæäºã¯ style ã¯ãŒã¯ãããŒïŒstart_style() ãè¿ããã®ïŒã§å®çŸ©ãããŠããŸãã
忢±ã¹ã¿ã€ã«ã¯ 2 çš®é¡ãšãæ¥æ¬èªã®ãããåãã® 2 ã€ã§ããå®çª ã¯èŠãç®ãèããããªããšãã®ããã®ãã®ã§ãã©ããªé¡æãèãæã æããã»æãã«ãåããŸããã³ã³ã»ãã ã¯èŠãç®ã§éžã¶ãã®ã§ãåã¹ã¿ã€ã«ã 1 ã€ã®èŠèŠçãªã¢ã€ãã¢ã« çµãããããã©ããŸã§æŒãåºããŠããããæ±ºããŠããŸããç®çããšã®æ§æïŒææ¥ãã¯ãŒã¯ã·ã§ããã®ãããã ã©ãçµããïŒã¯ã¹ã¿ã€ã«ã§ã¯ãªãã¢ãŠãã©ã€ã³ãæ ãã®ã§ãã©ã®ã³ã³ã»ããã¹ã¿ã€ã«ã§ãã©ããªçš®é¡ã®ãããã äœããŸãã
å®çª: è¿·ã£ãããã®äžãã
| ã¹ã¿ã€ã« | åããŠããçšé | èŠãç® |
|---|---|---|
report |
1 人ã§èªãææžãæ°åã衚ãçµè«ãå | çœå°ãã»ãªãäœã®çµè«ãæ·±ç·ã®ã¢ã¯ã»ã³ã 1 è²ã衚ãšå°ããªå³ã®äžŠã³ãã°ã¬ãŒã¹ã±ãŒã«ã§ãèªãã |
briefing |
äŒå Žã§è©±ããåŸã§èªã¿è¿ãããããã | æãå°ããã£ãŒã«ã®ã¢ã¯ã»ã³ã 1 è²ãåè©å¥ã®ã¿ã€ãã«ãšãããã¯ã»ã³ãã³ã¹ãã«ãŒãã®ä»£ããã«èŠåºã垯ãšçœ«ç· |
aws-dark / aws-light |
AWS ã®ãµãŒãã¹ãã¢ãŒããã¯ãã£ãã³ã¹ãã«ã€ããŠã®ããããç»å£ããã¢ïŒdarkïŒãææžãå°å·ïŒlightïŒ | Squid Ink ãçœã®å°ãèå¥ã®ããã®å ¬åŒãµãŒãã¹ã«ããŽãªãŒè²ãå ¬åŒã¢ã€ã³ã³ã匷調㯠Smile Orange 1 ãæ |
ã³ã³ã»ãã: èŠãç®ã§éžã¶
| ã¹ã¿ã€ã« | ã¢ã€ã㢠| èŠãç® |
|---|---|---|
neo-brutalist |
磚ãäžãããççŽãªéå±€ããé æ ®ããªãã | ã¯ãªãŒã è²ã®å°ã6px ã®é»æ ã12px ãããã硬ã圱ãåè²ã®ãã¿å¡ãã倧æåã®ã©ãã«ãè§ã¯åè§ |
typographic |
æåãã®ãã®ãç»åã1 æã« 1 ã€ã®æ | çœå°ã巊端ããã¯ã¿åºã 384px ã®å€§ããªæåãé»ãšèãã°ã¬ãŒã®éããèµ€ãèªãæ°åã¯å€ã㊠1 ã€ãå³åœ¢ã眫ç·ãäžåãªã |
signal |
èŠå衚瀺ã®èªåœã1 ã€ã®ãã®ã ããç®ç«ããã | ã»ãŒé»ã®å°ã1 æã« 1 ã€ã®å®å šé»è²ã®ããã«ãçŽç«ããæ¥µå€ªã®èŠåºãã倧ããªæ°åãçå¹ ã®ã¡ã¿æ å ±ããã¶ãŒãã®çž 1 æ¬ |
racing |
å¢ããã©ã®ã¹ã©ã€ããæ¬¡ãžã€ãªã | ã»ãŒé»ã®å°ãæäœã®è©°ãŸã£ãèŠåºããäžç«¯ã«éã»çŽ«ã»èµ€ã®åž¯ã现ãçœã®ã¹ããŒãç·ãèµ€ãèŠçŽ 1 〠|
bento |
1 ã¿ã€ã« 1 äºå®ãã¢ãžã¥ãŒã«åŒã®è£œå玹ä»ã®ãªãºã | æãããã°ã¬ãŒã®å°ã24px ã®ã°ãªããã«è§äžž 20px ã®çœãã¿ã€ã«ã1 æã«æãã¿ã€ã«ã¡ããã© 1 ã€ãšéãã¢ã¯ã»ã³ãã®ã¿ã€ã«å€ã㊠1 ã€ãããããªåœ± |
newspaper |
æ°èã®çŽé¢ãèªãããã®ããã | å€ã³ãçŽãã»ãŒé»ã®ã»ãªãäœã®èŠåºãã3px ã®é¡åäžã®çœ«ãš 1px ã®çŽ°çœ«ã2ã3 段ã®äž¡ç«¯ãããããããããã£ãããèµ€ãæ°åã眫 1 〠|
swiss-poster |
èµ€ã幟äœåŠå³åœ¢ 1 ã€ãçŽé¢ãæ¯ãã | çœå°ãã¯ã¿åºããªããã¹ã¿ãŒãµã€ãºã®é»ãæåãèµ€ãåã»æ£ã»åž¯ã»åè§ãã¡ããã© 1 ã€ïŒã¯ã¿åºããŠããïŒãã°ãªããç· 1ã2 æ¬ã瞊æžãã®ã©ãã« |
duotone |
硬ãå¢ç® 1 æ¬ãš 2 ã€ã®é¢ãçæ¹ã«äž»åŒµãããçæ¹ã«æ ¹æ | ã»ãŒé»ãšé®®ãããªãªã¬ã³ãžã50/50 ã 33/67 ã®åå²ïŒçžŠã暪ïŒããªã¬ã³ãžã®äžã¯ã»ãŒé»ã®æåãã»ãŒé»ã®äžã¯çœãšãªã¬ã³ãžã®æåãã°ã¬ãŒã¯ã¡ã¿æ å ±ã ããçœãæ£ 1 æ¬ãå«ãæ£ã°ã©ã |
agent-spectrum |
èŠãããããã®ãããïŒç»é¢é²ç»ãã¢ãã¡ãŒã·ã§ã³ã®ãã¬ãã¥ãŒãREADME ã®éæ¢ç»ïŒãè²ã¯å³ã®éšåãèŠåããããã ãã«äœ¿ã | ãã©ãããªã»ãŒé»ã®å°ãæããæåã5 ã€ã®ãã«ããŒè²ïŒéããã£ãŒã«ã玫ãç¥çããã³ã¯ïŒãåžžã«ãã®é ã§äœ¿ããå šã¹ã©ã€ãã« 5 è²ã®åž¯ãçå¹ ã®ã©ãã«ãšã¿ã°ãç Žç·ã®é åæ ãã°ã©ããŒã·ã§ã³ãçºå ã圱ã¯ãªã |
prism-dark |
ã°ã©ããŒã·ã§ã³ã¯æã瀺ããã®ãã¿ã€ãã«ãèªã 1 ç¹ã ãã«äœ¿ããã»ãã¯ãã¹ãŠãã©ãã | ã»ãŒé»ã®å°ã玫ãããã³ã¯ãžã®ã°ã©ããŒã·ã§ã³ 1 çš®é¡ããèŠã®æ°åã®ã°ã©ããŒã·ã§ã³æåãéžãã ã«ãŒãã® 4px ã®æ + å¡ãã®ãã« 1 ã€ããŸãã¯ã°ã©ããŒã·ã§ã³ã®æ£ 1 æ¬ã«äœ¿ãã巊端ã«äžãã 40px ã®ã°ã©ããŒã·ã§ã³ã®åž¯ã ããåžžã«ãããã°ã©ããŒã·ã§ã³ã®ããã«ããŒãããçºå ã¯ãªã |
prism-light |
prism-dark ãšåãã«ãŒã«ããæããéšå±ãšå°å·åãã« |
çœå°ãã»ãŒé»ã®æåã1px ã®æ ã®ãã©ãããªçœãã«ãŒããåã玫ãããã³ã¯ãžã®ã°ã©ããŒã·ã§ã³ãåãæã瀺ã圹å²ã§äœ¿ã |
aws-console |
ãããã AWS ãããžã¡ã³ãã³ã³ãœãŒã«ã®ç»é¢ãç»é¢ã®éšåãã¹ãŠããããã®æ å ±ãéã¶ | 2 æ¬ã®æãèŠåºã垯ïŒaws ã®ããŽããããã®ã¿ã€ãã«ãšã¹ã©ã€ãçªå·ã衚瀺ããæ€çŽ¢ããã¯ã¹ãæªå¯Ÿå¿ã®ã¢ã¯ã·ã§ã³æ°ã瀺ãéç¥ãããžããªãŒãžã§ã³ãšã¢ã«ãŠã³ãã®äœçœ®ã«æ¥ä»ãšçºè¡šè ãç« ããšã®çªå·ä»ããããã䞊ã¶ãæ°ã«å ¥ãã®è¡ã§ãçŸåšã®ç« ãç¹ç¯ïŒã®äžã«çœãããŒã«ããŒãInfo ãªã³ã¯ä»ãã®ããŒãžã¿ã€ãã«ãšãæ ç·ãã¿ã³ãšãªã¬ã³ãžã®ãã¿ã³ã®çµããã©ãã°ãã³ãã«ãInfoãã±ããã¡ãã¥ãŒããªãµã€ãºãã³ãã«ä»ãã® 2px ã®æ ã®çœãã³ã³ãããéããªã³ã¯ãšéãææšãåºå®ã®ç¶æ è² 3 ã€ã56px ã®è©°ãŸã£ãè¡ãæç« ãªã |
æ¥æ¬èª: èŠæ¬ã®æãšã¿ã€ãã«ã®ææ³ãæ¥æ¬èª
| ã¹ã¿ã€ã« | åããŠããçšé | èŠãç® |
|---|---|---|
gradient-card |
ç»é¢å ±æã§æè¡ãé ã«èª¬æãããèãæãä»ã©ã®é ç®ã®è©±ãã远ãã | é»ãå°ã«çœ«ç·ã垯ãäžžã®ã¢ã€ã³ã³ã®ããŒããã€ãªãç·ãéãã玫ãžã®çްãã°ã©ããŒã·ã§ã³ãç·ãšããŒãã®çžã«äœ¿ããæ ã¯å¢çã®ãããã®ã ããäž»é¡ã«ããŒã³ã¿ã®æ ã 1 ã€ãäœèšæ¢ãã®ã¿ã€ãã«ãšãªãŒãæ |
mono-blue |
瀟å åããã客æ§åãã®èª¬æã§ãäžåºŠèŠããåŸã«è³æãšããŠäžäººã§èªãŸãã | çœå°ã«å¢šäžè²ãæ¿ãã¹ã¬ãŒãã®çªå·ãšæ ç·ã®ã«ãŒãããã§ãã»ãŸããã§çµããæã®ã¿ã€ãã«ãå šã¹ã©ã€ãã«ã°ã¬ãŒã®ãŸãšãã®åž¯ãéãæ ãæ·¡ãéã®åž¯ãã¡ããã© 1 〠|
æ°ããã¹ã¿ã€ã«ã® HTML 㯠style ã¯ãŒã¯ãããŒïŒãšãŒãžã§ã³ããé²ããïŒã§äœããŸãã
ã¯ãŒã¯ãããŒã¯ <user-config>/styles/{name}.htmlãã€ãŸã macOS / Linux ãªã ~/.config/sdpm/styles/ã
Windows ãªã %APPDATA%/sdpm/styles/ ã«æžãåºããŸãã
æ¢åã®ã¹ã¿ã€ã«ãæã§ã³ããŒããããšãã§ããŸãã
mkdir -p ~/.config/sdpm/styles
cp sdpm/references/examples/styles/report.html \
~/.config/sdpm/styles/my-style.htmlæ¢ãé åºïŒåããã¡ã€ã«åãªãå ã«èŠã€ãã£ããã®ã䜿ãïŒ:
$SDPM_STYLES_DIRã«äžŠã¹ããã£ã¬ã¯ããªïŒåºåãæåã¯ãã©ãããã©ãŒã ã«åŸããPATHãšåãïŒ<user-config>/styles/sdpm/references/examples/styles/ïŒããã±ãŒãžã«å梱ã®ãµã³ãã«ïŒ
list_stylesïŒMCP ã®ããŒã«ãš CLI ã®ã³ãã³ãïŒã¯ 3 ãæãã¹ãŠãèªã¿ã1 ã€ã®äžèЧã§è¿ããŸãã
MCP Apps ã«å¯Ÿå¿ããã¯ã©ã€ã¢ã³ãã§ã¯ãããŒã«ã®çµæããã£ããã®äžã®ã¹ã¿ã€ã«ã®ã£ã©ãªãŒãšããŠè¡šç€ºãããŸããåãååãªãããŠãŒã¶ãŒããŒã«ã«ã®ã¹ã¿ã€ã«ã忢±ã®ãã®ããåªå
ãããã®ã§ã
ãªããžããªã«è§Šããã«ãµã³ãã«ãå·®ãæ¿ããããŸãã
spec-driven-presentation-maker ã«ã¯ã2 ã€ã®ã¢ã€ã³ã³ã»ããã®ããŠã³ããŒãã¹ã¯ãªãããä»ããŠããŸãã
# AWS Architecture Icons
uv run python3 scripts/download_aws_icons.py
# Material Symbols (Google)
uv run python3 scripts/download_material_icons.pyã¢ã€ã³ã³ã¯ sdpm/assets/ ã«ããœãŒã¹ããšã® manifest.json ãšäžç·ã«ä¿åãããŸãã
sdpm/assets/
âââ config.json # Optional: user settings (gitignored, see config.example.json)
âââ config.example.json # Example config (git-managed)
âââ aws/
â âââ manifest.json # {"icons": [{"name": "Lambda", "file": "Lambda.svg", "tags": [...]}]}
â âââ *.svg
âââ material/
âââ manifest.json
âââ *.svg
{
"type": "image",
"src": "assets:aws/Lambda",
"x": 100, "y": 200, "width": 64, "height": 64
}åç §ã®æžãæ¹:
assets:{source}/{name}: ç¹å®ã®ãœãŒã¹ããïŒäŸ:assets:aws/LambdaïŒicons:{name}: ãã¹ãŠã®ãœãŒã¹ããæ¢ãïŒåŸæ¹äºæïŒ
ã«ã¹ã¿ã ã®ã¢ã»ãããœãŒã¹ïŒèªç€Ÿã®ããŽãªã©ïŒã远å ããæ¹æ³ã¯ 2 ã€ãããŸãã
ãœãŒã¹ã®ãã£ã¬ã¯ããªããŠãŒã¶ãŒããŒã«ã«ã®ã¢ã»ããã®å Žæã«çœ®ããŸããå®è¡æã«èªåã§èªã¿èŸŒãŸããèšå®ã® 倿Žã¯èŠããŸããã
~/.config/sdpm/assets/my-company/ # (Windows: %APPDATA%/sdpm/assets/my-company/)
âââ manifest.json
âââ logo.svg
manifest.json ã¯çµã¿èŸŒã¿ã®ãã®ãšåã圢åŒã§ãã
{
"source": "my-company",
"icons": [
{"name": "my-logo", "file": "logo.svg", "tags": ["brand", "logo"], "type": "service"}
]
}slides.json ããã®åç
§:
{ "type": "image", "src": "assets:my-company/logo", "x": 100, "y": 200, "width": 64, "height": 64 }ãã¡ã€ã«ããã£ã¹ã¯äžã®ä»»æã®å ŽæïŒå ±æã®ãããã¯ãŒã¯ãã©ã€ããªã©ïŒã«ããå Žåããæ¢åã®ãã£ã¬ã¯ããªã åãããã«æãããå Žåã«äœ¿ããŸãã
{
"extra_sources": [
{
"source": "mybrand",
"manifest": "/path/to/my-icons/manifest.json",
"files_dir": "/path/to/my-icons/"
}
]
}<user-config>/config.json ãšããŠä¿åããŸãïŒäžã® ãŠãŒã¶ãŒèšå® ãåç
§ïŒã
åãååã®ã¢ã»ãããè€æ°ã®ãœãŒã¹ã«ããå Žåã¯ãå ã®ãœãŒã¹ãåªå ãããŸãã
config.jsonã®extra_sources: æç€ºçãªäžæžã<user-config>/assets/: èªåã§æ€åºããããŠãŒã¶ãŒããŒã«ã«ã®ãœãŒã¹sdpm/assets/: çµã¿èŸŒã¿ã®ãœãŒã¹ïŒawsãmaterialïŒ- æ§æ¥ã®
icons/ãã£ã¬ã¯ããªïŒããå Žåã®ã¿ïŒ
extra_sources ã¯ãŠãŒã¶ãŒããŒã«ã«ã®ãœãŒã¹ããããŠãŒã¶ãŒããŒã«ã«ã®ãœãŒã¹ã¯å梱ã®ãã®ããåªå
ãããŸãã
çµã¿èŸŒã¿ã®ååã extra_sources ã«ç»é²ããã°ã忢±ã®ã¢ã€ã³ã³ãæå³çã«èªåã®ãã®ã«å·®ãæ¿ããããŸãã
ãŠãŒã¶ãŒããšã®èšå®ã¯ <user-config>/config.jsonïŒmacOS / Linux ãªã ~/.config/sdpm/config.jsonã
Windows ãªã %APPDATA%/sdpm/config.jsonïŒã«çœ®ããŸãããã®ãã¡ã€ã«ã¯ä»»æã§ãç¡ãããŒã¯æ¢å®å€ã«ãªããŸãã
æ¢å®å€ãå«ãå šäœã®åœ¢:
{
"output_dir": "~/Documents/SDPM-Presentations",
"extra_sources": []
}output_dir: ãããã®ä¿åå ãCLI ãš MCP ãµãŒããŒãããããšçæãã PPTX ãã¡ã€ã«ãããã«æžãåºãã ããŒã«ã«ã® Web UI ã¯ããã«ããããããäžèЧã«åºããŸãã~ãå±éãã空ãªãããã©ã«ãã䜿ããŸãã$SDPM_DECK_ROOTãæ¬¡ã«$SDPM_OUTPUT_DIRãèšå®ãããšããã¡ããåªå ãããŸããextra_sources: 远å ã®ã¢ã»ããã®ãããã§ã¹ãïŒäžã® æ¹æ³ B ãåç §ïŒã
以å忢±ããŠãã sdpm/assets/config.json ã¯ãããèªã¿èŸŒãŸããŸãããpip install --upgrade ã§
倱ãããŠãããããäžã®ãŠãŒã¶ãŒããŒã«ã«ã®å Žæã«çœ®ãæããŸããã
uv run python scripts/upload_assets.py \
--dir ./my-icons/ \
--bucket <ResourceBucketName> \
--category icons- ã¯ããã«: SDPM ã®ã€ã³ã¹ããŒã«ãšäœ¿ãæ¹
- Developer guideïŒè±èªïŒ: CDK ã§ã®ãããã€ãšãã³ãã¬ãŒãã®ã¢ããããŒã
- ArchitectureïŒè±èªïŒ: ã¢ã»ããã®è§£æ±ºã®ããã¿