๐• f B! L
ๆกˆไปถใƒปๆฑ‚ไบบๆ•ฐ 12,345ไปถ
ๆกˆไปถใ‚’ๆŽขใ™๏ผˆๆบ–ๅ‚™ไธญ๏ผ‰ ใ‚จใƒผใ‚ธใ‚งใƒณใƒˆใ‚’ๆŽขใ™๏ผˆๆบ–ๅ‚™ไธญ๏ผ‰ ใŠๅฝน็ซ‹ใกๆƒ…ๅ ฑ ใƒญใ‚ฐใ‚คใƒณ
ๆกˆไปถใƒปๆฑ‚ไบบๆ•ฐ 12,345ไปถ
OpenClawใง่‡ชไฝœใฎใ‚ซใ‚นใ‚ฟใƒ ใƒ„ใƒผใƒซใƒปใ‚นใ‚ญใƒซใ‚’่ฟฝๅŠ ใ™ใ‚‹ๆ–นๆณ•

OpenClawใง่‡ชไฝœใฎใ‚ซใ‚นใ‚ฟใƒ ใƒ„ใƒผใƒซใƒปใ‚นใ‚ญใƒซใ‚’่ฟฝๅŠ ใ™ใ‚‹ๆ–นๆณ•

OpenClawใ‚ซใ‚นใ‚ฟใƒ ใƒ„ใƒผใƒซใ‚นใ‚ญใƒซ้–‹็™บAIใ‚จใƒผใ‚ธใ‚งใƒณใƒˆSESใ‚จใƒณใ‚ธใƒ‹ใ‚ข
็›ฎๆฌก
โšก 3็ง’ใงใ‚ใ‹ใ‚‹๏ผใ“ใฎ่จ˜ไบ‹ใฎใƒใ‚คใƒณใƒˆ
  • OpenClawใฎใ‚นใ‚ญใƒซใฏSKILL.mdใƒ•ใ‚กใ‚คใƒซใฒใจใคใงๅฎš็พฉใงใใ€่‡ช็„ถ่จ€่ชžใฎใƒˆใƒชใ‚ฌใƒผใงๅ‘ผใณๅ‡บใ›ใ‚‹
  • Slack้€š็ŸฅใƒปGitHubใ‚ณใƒกใƒณใƒˆใƒปJiraใƒใ‚ฑใƒƒใƒˆไฝœๆˆใชใฉใฎๅค–้ƒจใƒ„ใƒผใƒซ้€ฃๆบใ‚นใ‚ญใƒซใ‚’ใ‚ทใ‚งใƒซใ‚นใ‚ฏใƒชใƒ—ใƒˆใงๅฎŸ่ฃ…ใงใใ‚‹
  • ไฝœๆˆใ—ใŸใ‚นใ‚ญใƒซใฏใƒ•ใ‚กใ‚คใƒซใ‚’ๅ…ฑๆœ‰ใ™ใ‚‹ใ ใ‘ใงใƒใƒผใƒ ใซๅฑ•้–‹ใงใใ€SES็พๅ ดใฎๅฎšๅž‹ไฝœๆฅญใ‚’่‡ชๅ‹•ๅŒ–ใงใใ‚‹

ใ€ŒๆฏŽๆ—ฅๅŒใ˜ใ‚ˆใ†ใชSlackๅ ฑๅ‘Šใ‚’ๆ‰‹ใงๆ›ธใ„ใฆใ„ใ‚‹ใ€ใ€Œใ‚ณใƒผใƒ‰ใƒฌใƒ“ใƒฅใƒผไพ้ ผใฎใ‚ณใƒกใƒณใƒˆใ‚’GitHubใซๆŠ•็จฟใ™ใ‚‹ใฎใŒๅœฐๅ‘ณใซ้ขๅ€’ใใ•ใ„ใ€ใ€ŒJiraใฎใƒใ‚ฑใƒƒใƒˆไฝœๆˆใ‚’ๅพŒๅ›žใ—ใซใ—ใฆใ—ใพใ†ใ€โ€”โ€”SES็พๅ ดใงใฏใ“ใ†ใ„ใฃใŸๅฐใ•ใช็นฐใ‚Š่ฟ”ใ—ไฝœๆฅญใŒ็ฉใฟ้‡ใชใฃใฆใ€ๆœฌๆฅใฎ้–‹็™บใซ้›†ไธญใงใใชใ„ๆ™‚้–“ใŒ็”Ÿใพใ‚ŒใŒใกใงใ™ใ€‚

OpenClawใฎใ‚นใ‚ญใƒซใ‚ทใ‚นใƒ†ใƒ ใ‚’ไฝฟใˆใฐใ€ใ“ใ‚Œใ‚‰ใฎๅฎšๅž‹ไฝœๆฅญใ‚’**ใ€ŒSlackใซ้€š็Ÿฅใ—ใฆใ€ใ€Œใƒฌใƒ“ใƒฅใƒผไพ้ ผใ—ใฆใŠใ„ใฆใ€ใจ่‡ช็„ถ่จ€่ชžใง่ฉฑใ—ใ‹ใ‘ใ‚‹ใ ใ‘**ใงๅฎŸ่กŒใงใใ‚‹ใ‚ซใ‚นใ‚ฟใƒ ใƒ„ใƒผใƒซใจใ—ใฆ็™ป้Œฒใงใใพใ™ใ€‚ใ“ใฎ่จ˜ไบ‹ใงใฏใ€ใ‚นใ‚ญใƒซใฎไป•็ต„ใฟใ‹ใ‚‰ๅฎŸ่ทต็š„ใชใ‚นใ‚ญใƒซไฝœๆˆใพใงใ€้ †ใ‚’่ฟฝใฃใฆ่งฃ่ชฌใ—ใพใ™ใ€‚

OpenClawใฎใ‚นใ‚ญใƒซใ‚ทใ‚นใƒ†ใƒ ใจใฏ

OpenClawใฏใ€ClaudeใƒปGPTใƒปGeminiใชใฉ่ค‡ๆ•ฐใฎAIใƒขใƒ‡ใƒซใ‚’็ตฑๅˆใ—ใŸ่‡ชๅพ‹ๅž‹AIใ‚จใƒผใ‚ธใ‚งใƒณใƒˆใƒ—ใƒฉใƒƒใƒˆใƒ•ใ‚ฉใƒผใƒ ใงใ™ใ€‚Node.js่ฃฝใงใ‚ใ‚Šใ€npm install -g openclaw ใงใ‚ฐใƒญใƒผใƒใƒซใ‚คใƒณใ‚นใƒˆใƒผใƒซใ—ใฆไฝฟใ„ใพใ™ใ€‚

OpenClawใฎๆœ€ๅคงใฎ็‰นๅพดใฎใฒใจใคใŒใ‚นใ‚ญใƒซใ‚ทใ‚นใƒ†ใƒ ใงใ™ใ€‚ใ‚นใ‚ญใƒซใจใฏใ€OpenClawใซ่ฟฝๅŠ ใ™ใ‚‹ๆฉŸ่ƒฝใƒขใ‚ธใƒฅใƒผใƒซใฎใ“ใจใงใ€ไปฅไธ‹ใฎใ‚ˆใ†ใชไป•็ต„ใฟใงๅ‹•ใใพใ™ใ€‚

  1. ใ‚นใ‚ญใƒซใฏ ~/.openclaw/skills/[ใ‚นใ‚ญใƒซๅ]/ ใจใ„ใ†ใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒชใซ้…็ฝฎใ™ใ‚‹
  2. ใใฎใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒชๅ†…ใฎ SKILL.md ใŒใ‚นใ‚ญใƒซใฎๅฎš็พฉใƒ•ใ‚กใ‚คใƒซ
  3. SKILL.md ใซๆ›ธใ‹ใ‚ŒใŸ่‡ช็„ถ่จ€่ชžใฎใ€Œใƒˆใƒชใ‚ฌใƒผใ€ใซใƒžใƒƒใƒใ™ใ‚‹ๆŒ‡็คบใŒใ‚ใ‚‹ใจใ€OpenClawใŒใใฎใ‚นใ‚ญใƒซใ‚’่‡ชๅ‹•ใง้ธๆŠžใ—ใฆๅฎŸ่กŒใ™ใ‚‹
ใ‚นใ‚ญใƒซใจใ‚จใƒผใ‚ธใ‚งใƒณใƒˆใฎ้•ใ„

ใ‚นใ‚ญใƒซใฏใ€Œ็‰นๅฎšใฎๅค–้ƒจใƒ„ใƒผใƒซใ‚„ใ‚ตใƒผใƒ“ใ‚นใจ้€ฃๆบใ™ใ‚‹ๅ˜ไธ€ใฎๆฉŸ่ƒฝใ€ใ‚’ๆ‹…ใ„ใพใ™ใ€‚ไธ€ๆ–นใ€OpenClawๆœฌไฝ“ใฎAIใ‚จใƒผใ‚ธใ‚งใƒณใƒˆๆฉŸ่ƒฝใฏใ‚นใ‚ญใƒซใ‚’็ต„ใฟๅˆใ‚ใ›ใฆ่ค‡้›‘ใชใ‚ฟใ‚นใ‚ฏใ‚’่‡ชๅพ‹็š„ใซๅฎŸ่กŒใ—ใพใ™ใ€‚ใ‚นใ‚ญใƒซใฏใใฎใŸใ‚ใฎใ€Œ้“ๅ…ท็ฎฑใ€ใจ่€ƒใˆใ‚‹ใจ็†่งฃใ—ใ‚„ใ™ใ„ใงใ™ใ€‚

ใ‚นใ‚ญใƒซใฎใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒชๆง‹้€ 

ใ‚นใ‚ญใƒซใฎ้…็ฝฎๅ ดๆ‰€ใจๅŸบๆœฌ็š„ใชใƒ•ใ‚กใ‚คใƒซๆง‹ๆˆใฏไปฅไธ‹ใฎใจใŠใ‚Šใงใ™ใ€‚

~/.openclaw/skills/
โ”œโ”€โ”€ slack-notifier/
โ”‚   โ”œโ”€โ”€ SKILL.md          # ใ‚นใ‚ญใƒซใฎๅฎš็พฉ๏ผˆๅฟ…้ ˆ๏ผ‰
โ”‚   โ””โ”€โ”€ notify.sh         # ๅฎŸ่กŒใ‚นใ‚ฏใƒชใƒ—ใƒˆ๏ผˆใ‚ชใƒ—ใ‚ทใƒงใƒณ๏ผ‰
โ”œโ”€โ”€ github-reviewer/
โ”‚   โ”œโ”€โ”€ SKILL.md
โ”‚   โ””โ”€โ”€ post-review.sh
โ”œโ”€โ”€ jira-ticket/
โ”‚   โ”œโ”€โ”€ SKILL.md
โ”‚   โ””โ”€โ”€ create-ticket.sh
โ””โ”€โ”€ daily-report/
    โ”œโ”€โ”€ SKILL.md
    โ””โ”€โ”€ send-report.sh

ๆœ€ไฝŽ้™ๅฟ…่ฆใชใฎใฏ SKILL.md ใ ใ‘ใงใ™ใ€‚ใ‚ทใ‚งใƒซใ‚นใ‚ฏใƒชใƒ—ใƒˆใ‚„ไป–ใฎใƒ•ใ‚กใ‚คใƒซใฏใ‚ชใƒ—ใ‚ทใƒงใƒณใงใ™ใŒใ€ๅค–้ƒจAPIใ‚’ๅ‘ผใณๅ‡บใ™ๅ‡ฆ็†ใฏๅˆฅใƒ•ใ‚กใ‚คใƒซใซๆ›ธใใจ็ฎก็†ใ—ใ‚„ใ™ใใชใ‚Šใพใ™ใ€‚

SKILL.mdใฎๆ›ธใๆ–น

SKILL.mdใฏใ‚นใ‚ญใƒซใฎใ€Œไป•ๆง˜ๆ›ธใ€ใจใ€Œไฝฟใ„ๆ–นใƒžใƒ‹ใƒฅใ‚ขใƒซใ€ใ‚’ๅ…ผใญใŸใƒ•ใ‚กใ‚คใƒซใงใ™ใ€‚OpenClawใฏใ“ใฎใƒ•ใ‚กใ‚คใƒซใ‚’่ชญใฟ่พผใ‚“ใงใ€ใฉใ‚“ใชๆŒ‡็คบใซๅๅฟœใ™ในใใ‹ใƒปไฝ•ใ‚’ใ™ในใใ‹ใ‚’ๅˆคๆ–ญใ—ใพใ™ใ€‚

ๅŸบๆœฌๅฝขๅผ

---
name: slack-notifier
description: SlackใฎๆŒ‡ๅฎšใƒใƒฃใƒณใƒใƒซใซใƒกใƒƒใ‚ปใƒผใ‚ธใ‚’้€ไฟกใ™ใ‚‹ใ‚นใ‚ญใƒซ
version: 1.0.0
author: your-name
triggers:
  - "Slackใซ้€š็Ÿฅใ—ใฆ"
  - "Slackใงๅ ฑๅ‘Šใ—ใฆ"
  - "Slackใซ้€ใฃใฆ"
  - "Slack้€š็Ÿฅ"
requires:
  env:
    - SLACK_WEBHOOK_URL
---

## ๆฆ‚่ฆ

Slack Incoming Webhook URLใ‚’ไฝฟ็”จใ—ใฆใ€ๆŒ‡ๅฎšใƒใƒฃใƒณใƒใƒซใซใƒกใƒƒใ‚ปใƒผใ‚ธใ‚’้€ไฟกใ™ใ‚‹ใ‚นใ‚ญใƒซใงใ™ใ€‚

## ่จญๅฎš

ไปฅไธ‹ใฎ็’ฐๅขƒๅค‰ๆ•ฐใ‚’ไบ‹ๅ‰ใซ่จญๅฎšใ—ใฆใใ ใ•ใ„ใ€‚

```bash
export SLACK_WEBHOOK_URL="https://hooks.slack.com/services/YOUR/WEBHOOK/URL"

ไฝฟใ„ๆ–น

่‡ช็„ถ่จ€่ชžใงๆŒ‡็คบใ™ใ‚‹ใ ใ‘ใง้€ไฟกใงใใพใ™ใ€‚

ๅŸบๆœฌ็š„ใชไฝฟใ„ๆ–น

openclaw "ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆAใฎใƒ‡ใƒ—ใƒญใ‚คใŒๅฎŒไบ†ใ—ใŸใ“ใจใ‚’#deployใƒใƒฃใƒณใƒใƒซใซ้€š็Ÿฅใ—ใฆ"
openclaw "ไปŠๆ—ฅใฎไฝœๆฅญๅฎŒไบ†ใ‚’ใƒใƒผใƒ ใฎSlackใซๅ ฑๅ‘Šใ—ใฆ"

ใƒใƒฃใƒณใƒใƒซใ‚’ๆŒ‡ๅฎšใ™ใ‚‹ๅ ดๅˆ

openclaw "#general ใซๆ˜Žๆ—ฅใฎๅฎšไพ‹ใฏ14ๆ™‚ใซๅค‰ๆ›ดใจใชใฃใŸใ“ใจใ‚’Slackใง้€ฃ็ตกใ—ใฆ"

ๅฎŸ่กŒๆ–นๆณ•

ใ“ใฎใ‚นใ‚ญใƒซใฏไปฅไธ‹ใฎใ‚นใ‚ฏใƒชใƒ—ใƒˆใ‚’ๅฎŸ่กŒใ—ใพใ™ใ€‚

bash ~/.openclaw/skills/slack-notifier/notify.sh "$message" "$channel"

ๆณจๆ„ไบ‹้ …

  • Slack Incoming WebhookใฏSlackใƒฏใƒผใ‚ฏใ‚นใƒšใƒผใ‚นใฎ็ฎก็†่€…ใŒ็™บ่กŒใ™ใ‚‹ๅฟ…่ฆใŒใ‚ใ‚Šใพใ™
  • ใƒใƒฃใƒณใƒใƒซๅใฏ # ใ‚’ๅซใ‚€ๅฝขๅผใพใŸใฏๅซใพใชใ„ๅฝขๅผใฎใฉใกใ‚‰ใงใ‚‚ๅ‹•ไฝœใ—ใพใ™

ใƒ•ใƒญใƒณใƒˆใƒžใ‚ฟใƒผ๏ผˆ`---` ใงๅ›ฒใพใ‚ŒใŸ้ƒจๅˆ†๏ผ‰ใฎใƒ•ใ‚ฃใƒผใƒซใƒ‰ใฎๆ„ๅ‘ณใฏไปฅไธ‹ใฎใจใŠใ‚Šใงใ™ใ€‚

| ใƒ•ใ‚ฃใƒผใƒซใƒ‰ | ่ชฌๆ˜Ž |
|---|---|
| `name` | ใ‚นใ‚ญใƒซใฎ่ญ˜ๅˆฅๅญ๏ผˆ่‹ฑๆ•ฐๅญ—ใจใƒใ‚คใƒ•ใƒณ๏ผ‰ |
| `description` | ใ‚นใ‚ญใƒซใฎๆฆ‚่ฆ๏ผˆOpenClawใŒใ‚นใ‚ญใƒซ้ธๆŠžๆ™‚ใซๅ‚็…ง๏ผ‰ |
| `triggers` | ใ“ใฎใ‚นใ‚ญใƒซใ‚’ๅ‘ผใณๅ‡บใ™่‡ช็„ถ่จ€่ชžใ‚ญใƒผใƒฏใƒผใƒ‰ |
| `requires.env` | ๅฟ…่ฆใช็’ฐๅขƒๅค‰ๆ•ฐ๏ผˆๆœช่จญๅฎšๆ™‚ใฏ่ญฆๅ‘Šใ‚’่กจ็คบ๏ผ‰ |

## ใ‚นใƒ†ใƒƒใƒ—ใƒใ‚คใ‚นใƒ†ใƒƒใƒ—๏ผšSlack้€š็Ÿฅใ‚นใ‚ญใƒซใ‚’ไฝœๆˆใ™ใ‚‹

ใงใฏๅฎŸ้š›ใซๆ‰‹ใ‚’ๅ‹•ใ‹ใ—ใฆSlack้€š็Ÿฅใ‚นใ‚ญใƒซใ‚’ไฝœๆˆใ—ใพใ—ใ‚‡ใ†ใ€‚

### ใ‚นใƒ†ใƒƒใƒ—1๏ผšใ‚นใ‚ญใƒซใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒชใ‚’ไฝœๆˆใ™ใ‚‹

```bash
mkdir -p ~/.openclaw/skills/slack-notifier

ใ‚นใƒ†ใƒƒใƒ—2๏ผšๅฎŸ่กŒใ‚นใ‚ฏใƒชใƒ—ใƒˆใ‚’ไฝœๆˆใ™ใ‚‹

cat > ~/.openclaw/skills/slack-notifier/notify.sh << 'EOF'
#!/bin/bash
# Slack้€š็Ÿฅใ‚นใ‚ฏใƒชใƒ—ใƒˆ
# ๅผ•ๆ•ฐ: $1 = ใƒกใƒƒใ‚ปใƒผใ‚ธๆœฌๆ–‡, $2 = ใƒใƒฃใƒณใƒใƒซๅ๏ผˆ็œ็•ฅๅฏ่ƒฝ๏ผ‰

MESSAGE="${1:-ใƒ†ใ‚นใƒˆ้€š็Ÿฅใงใ™}"
CHANNEL="${2:-#general}"
WEBHOOK_URL="${SLACK_WEBHOOK_URL}"

if [ -z "$WEBHOOK_URL" ]; then
  echo "Error: SLACK_WEBHOOK_URL ใŒ่จญๅฎšใ•ใ‚Œใฆใ„ใพใ›ใ‚“" >&2
  exit 1
fi

# ใƒใƒฃใƒณใƒใƒซๅใฎ # ใ‚’้™คๅŽปใ—ใฆ็ตฑไธ€
CHANNEL="${CHANNEL/#/}"

PAYLOAD=$(cat <<JSON
{
  "channel": "#${CHANNEL}",
  "text": "${MESSAGE}",
  "username": "OpenClaw Bot",
  "icon_emoji": ":robot_face:"
}
JSON
)

RESPONSE=$(curl -s -o /dev/null -w "%{http_code}" \
  -X POST \
  -H "Content-Type: application/json" \
  -d "$PAYLOAD" \
  "$WEBHOOK_URL")

if [ "$RESPONSE" -eq 200 ]; then
  echo "Slack้€š็Ÿฅใ‚’้€ไฟกใ—ใพใ—ใŸ๏ผˆใƒใƒฃใƒณใƒใƒซ: #${CHANNEL}๏ผ‰"
else
  echo "Error: Slack้€š็Ÿฅใฎ้€ไฟกใซๅคฑๆ•—ใ—ใพใ—ใŸ๏ผˆHTTPใ‚นใƒ†ใƒผใ‚ฟใ‚น: ${RESPONSE}๏ผ‰" >&2
  exit 1
fi
EOF
chmod +x ~/.openclaw/skills/slack-notifier/notify.sh

ใ‚นใƒ†ใƒƒใƒ—3๏ผšSKILL.mdใ‚’ไฝœๆˆใ™ใ‚‹

ไธŠ่จ˜ใฎใ€ŒๅŸบๆœฌๅฝขๅผใ€ใ‚ปใ‚ฏใ‚ทใƒงใƒณใฎๅ†…ๅฎนใ‚’ ~/.openclaw/skills/slack-notifier/SKILL.md ใจใ—ใฆไฟๅญ˜ใ—ใพใ™ใ€‚

ใ‚นใƒ†ใƒƒใƒ—4๏ผšใ‚นใ‚ญใƒซใ‚’็™ป้Œฒใ—ใฆ็ขบ่ชใ™ใ‚‹

# ใ‚นใ‚ญใƒซใ‚’็™ป้Œฒ
openclaw skill add slack-notifier

# ็™ป้Œฒๆธˆใฟใ‚นใ‚ญใƒซใฎไธ€่ฆงใ‚’็ขบ่ช
openclaw skill list
NAME              VERSION   STATUS    DESCRIPTION
slack-notifier    1.0.0     active    SlackใฎๆŒ‡ๅฎšใƒใƒฃใƒณใƒใƒซใซใƒกใƒƒใ‚ปใƒผใ‚ธใ‚’้€ไฟกใ™ใ‚‹ใ‚นใ‚ญใƒซ

ใ‚นใƒ†ใƒƒใƒ—5๏ผšๅ‹•ไฝœใ‚’ใƒ†ใ‚นใƒˆใ™ใ‚‹

# ็’ฐๅขƒๅค‰ๆ•ฐใ‚’่จญๅฎš
export SLACK_WEBHOOK_URL="https://hooks.slack.com/services/YOUR/WEBHOOK/URL"

# ใ‚นใ‚ญใƒซๅ˜ไฝ“ใฎใƒ†ใ‚นใƒˆ
openclaw skill test slack-notifier --message "ใƒ†ใ‚นใƒˆใƒกใƒƒใ‚ปใƒผใ‚ธใงใ™" --channel "general"

# ๅฎŸ้š›ใซOpenClawใ‹ใ‚‰ไฝฟใฃใฆใฟใ‚‹
openclaw "ไปŠๆ—ฅใฎใƒ‡ใƒ—ใƒญใ‚คใŒๅฎŒไบ†ใ—ใพใ—ใŸใ€‚ใƒใƒผใ‚ธใƒงใƒณ2.3.0ใงใ™ใ€‚#deployใƒใƒฃใƒณใƒใƒซใซSlack้€š็Ÿฅใ—ใฆ"
๐Ÿ‘ค
ใƒˆใƒชใ‚ฌใƒผใซๅฎŒๅ…จไธ€่‡ดใ™ใ‚‹ใ‚ญใƒผใƒฏใƒผใƒ‰ใ‚’่จ€ใ‚ใชใ„ใจใ‚นใ‚ญใƒซใŒๅ‘ผใฐใ‚Œใชใ„ใงใ™ใ‹๏ผŸ
๐Ÿค–
ใ„ใ„ใˆใ€OpenClawใฎAIใŒSKILL.mdใฎ `description` ใจ `triggers` ใ‚’่ชญใ‚“ใงๆ„ๅ‘ณ็š„ใซๅˆคๆ–ญใ—ใพใ™ใ€‚ใ€ŒSlackใซๅ…ฑๆœ‰ใ—ใฆใ€ใ€ŒSlackใงๅ‘จ็Ÿฅใ—ใฆใ€ใชใฉใ€่กจ็พใŒๅคšๅฐ‘้•ใฃใฆใ‚‚่ช่ญ˜ใ•ใ‚Œใพใ™ใ‚ˆใ€‚

ๅฎŸ่ทตใ‚นใ‚ญใƒซไพ‹2๏ผšGitHubใซใ‚ณใƒผใƒ‰ใƒฌใƒ“ใƒฅใƒผใ‚ณใƒกใƒณใƒˆใ‚’ๆŠ•็จฟใ™ใ‚‹ใ‚นใ‚ญใƒซ

~/.openclaw/skills/github-reviewer/
โ”œโ”€โ”€ SKILL.md
โ””โ”€โ”€ post-review.sh

SKILL.md๏ผš

---
name: github-reviewer
description: ๆŒ‡ๅฎšใ—ใŸGitHubใฎPull Requestใซใƒฌใƒ“ใƒฅใƒผใ‚ณใƒกใƒณใƒˆใ‚„Approvalใ‚’ๆŠ•็จฟใ™ใ‚‹ใ‚นใ‚ญใƒซ
version: 1.0.0
triggers:
  - "GitHubใซใƒฌใƒ“ใƒฅใƒผไพ้ ผ"
  - "PRใซใ‚ณใƒกใƒณใƒˆใ—ใฆ"
  - "ใ‚ณใƒผใƒ‰ใƒฌใƒ“ใƒฅใƒผใ‚’ไพ้ ผใ—ใฆ"
  - "PRใ‚’Approveใ—ใฆ"
requires:
  env:
    - GITHUB_TOKEN
    - GITHUB_REPO
---

## ๆฆ‚่ฆ

GitHub APIใ‚’ไฝฟ็”จใ—ใฆPull Requestใซใ‚ณใƒกใƒณใƒˆใ‚’ๆŠ•็จฟใ—ใŸใ‚Šใ€Approvalใ‚’้€ไฟกใ™ใ‚‹ใ‚นใ‚ญใƒซใงใ™ใ€‚

## ่จญๅฎš

```bash
export GITHUB_TOKEN="ghp_your_token_here"
export GITHUB_REPO="org/repository"   # ไพ‹: mycompany/my-app

ไฝฟใ„ๆ–น

openclaw "PR #42 ใซใ€ŽLGTM๏ผใƒžใƒผใ‚ธใ—ใฆOKใงใ™ใ€ใจใ‚ณใƒกใƒณใƒˆใ—ใฆ"
openclaw "PR #42 ใ‚’Approveใ—ใฆ"
openclaw "PR #42 ใซใ€Žใ“ใฎใƒญใ‚ธใƒƒใ‚ฏใงใ™ใŒใ€ใ‚จใƒƒใ‚ธใ‚ฑใƒผใ‚นใฎๅ‡ฆ็†ใŒๆŠœใ‘ใฆใ„ใพใ™ใ€ใจใƒฌใƒ“ใƒฅใƒผใ‚ณใƒกใƒณใƒˆใ—ใฆ"

post-review.sh๏ผš

```bash
#!/bin/bash
# GitHub PR ใ‚ณใƒกใƒณใƒˆๆŠ•็จฟใ‚นใ‚ฏใƒชใƒ—ใƒˆ
# ๅผ•ๆ•ฐ: $1 = PR็•ชๅท, $2 = ใ‚ณใƒกใƒณใƒˆๆœฌๆ–‡, $3 = ใ‚ขใ‚ฏใ‚ทใƒงใƒณ (comment/approve)

PR_NUMBER="$1"
COMMENT="$2"
ACTION="${3:-comment}"

if [ -z "$GITHUB_TOKEN" ] || [ -z "$GITHUB_REPO" ]; then
  echo "Error: GITHUB_TOKEN ใพใŸใฏ GITHUB_REPO ใŒ่จญๅฎšใ•ใ‚Œใฆใ„ใพใ›ใ‚“" >&2
  exit 1
fi

API_BASE="https://api.github.com/repos/${GITHUB_REPO}"

if [ "$ACTION" = "approve" ]; then
  # Approvalใ‚’้€ไฟก
  PAYLOAD=$(printf '{"event": "APPROVE", "body": "%s"}' "${COMMENT}")
  ENDPOINT="${API_BASE}/pulls/${PR_NUMBER}/reviews"
else
  # ้€šๅธธใ‚ณใƒกใƒณใƒˆใ‚’้€ไฟก
  PAYLOAD=$(printf '{"body": "%s"}' "${COMMENT}")
  ENDPOINT="${API_BASE}/issues/${PR_NUMBER}/comments"
fi

RESPONSE=$(curl -s -w "\n%{http_code}" \
  -X POST \
  -H "Authorization: Bearer ${GITHUB_TOKEN}" \
  -H "Accept: application/vnd.github.v3+json" \
  -H "Content-Type: application/json" \
  -d "$PAYLOAD" \
  "$ENDPOINT")

HTTP_CODE=$(echo "$RESPONSE" | tail -n1)

if [ "$HTTP_CODE" -eq 200 ] || [ "$HTTP_CODE" -eq 201 ]; then
  echo "GitHub PR #${PR_NUMBER} ใธใฎใ‚ณใƒกใƒณใƒˆๆŠ•็จฟใŒๅฎŒไบ†ใ—ใพใ—ใŸ"
else
  echo "Error: GitHubใธใฎๆŠ•็จฟใซๅคฑๆ•—ใ—ใพใ—ใŸ๏ผˆHTTPใ‚นใƒ†ใƒผใ‚ฟใ‚น: ${HTTP_CODE}๏ผ‰" >&2
  exit 1
fi

ๅฎŸ่ทตใ‚นใ‚ญใƒซไพ‹3๏ผšJiraใƒใ‚ฑใƒƒใƒˆใ‚’่‡ชๅ‹•ไฝœๆˆใ™ใ‚‹ใ‚นใ‚ญใƒซ

~/.openclaw/skills/jira-ticket/
โ”œโ”€โ”€ SKILL.md
โ””โ”€โ”€ create-ticket.sh

SKILL.md๏ผš

---
name: jira-ticket
description: Jiraใซๆ–ฐใ—ใ„ใ‚ฟใ‚นใ‚ฏใ‚„ใƒใ‚ฐใƒใ‚ฑใƒƒใƒˆใ‚’ไฝœๆˆใ™ใ‚‹ใ‚นใ‚ญใƒซ
version: 1.0.0
triggers:
  - "Jiraใซใƒใ‚ฑใƒƒใƒˆไฝœๆˆ"
  - "Jiraใซใ‚ฟใ‚นใ‚ฏใ‚’็™ป้Œฒ"
  - "ใƒใ‚ฐใƒใ‚ฑใƒƒใƒˆใ‚’ไฝœใฃใฆ"
  - "Jiraใซ่ตท็ฅจใ—ใฆ"
requires:
  env:
    - JIRA_BASE_URL
    - JIRA_EMAIL
    - JIRA_API_TOKEN
    - JIRA_PROJECT_KEY
---

## ๆฆ‚่ฆ

Jira REST APIใ‚’ไฝฟ็”จใ—ใฆๆ–ฐใ—ใ„ใƒใ‚ฑใƒƒใƒˆ๏ผˆIssue๏ผ‰ใ‚’ไฝœๆˆใ™ใ‚‹ใ‚นใ‚ญใƒซใงใ™ใ€‚

## ่จญๅฎš

```bash
export JIRA_BASE_URL="https://yourcompany.atlassian.net"
export JIRA_EMAIL="[email protected]"
export JIRA_API_TOKEN="your_api_token"
export JIRA_PROJECT_KEY="PROJ"

ไฝฟใ„ๆ–น

openclaw "ใƒญใ‚ฐใ‚คใƒณ็”ป้ขใงใƒ‘ใ‚นใƒฏใƒผใƒ‰ใƒชใ‚ปใƒƒใƒˆใŒๅŠนใ‹ใชใ„ใƒใ‚ฐใ‚’Jiraใซ่ตท็ฅจใ—ใฆ"
openclaw "ๆฅ้€ฑใฎใƒชใƒชใƒผใ‚น็”จใซๆฑบๆธˆใƒ•ใƒญใƒผๆ”นๅ–„ใฎใ‚ฟใ‚นใ‚ฏใ‚’Jiraใซไฝœๆˆใ—ใฆใ€‚ๅ„ชๅ…ˆๅบฆใฏ้ซ˜ใง"

<div class="balloon">
  <div class="balloon-avatar">๐Ÿ‘ค</div>
  <div class="balloon-text">ใ‚นใ‚ฏใƒชใƒ—ใƒˆใ‚’ๆ›ธใใฎใŒ้›ฃใ—ใใ†ใซ่ฆ‹ใˆใพใ™ใŒใ€ใ‚‚ใฃใจใ‚ทใƒณใƒ—ใƒซใซใงใใพใ™ใ‹๏ผŸ</div>
</div>
<div class="balloon balloon-right">
  <div class="balloon-avatar">๐Ÿค–</div>
  <div class="balloon-text">SKILL.md ใ ใ‘ใงๅฎŒ็ตใ•ใ›ใ‚‹ใ“ใจใ‚‚ใงใใพใ™ใ€‚ใ‚นใ‚ฏใƒชใƒ—ใƒˆใชใ—ใงใ€ŒOpenClaw่‡ช่บซใซcurlใ‚ณใƒžใƒณใƒ‰ใ‚’็ต„ใฟ็ซ‹ใฆใฆๅฎŸ่กŒใ•ใ›ใ‚‹ใ€ๆ–นๅผใชใ‚‰SKILL.mdใซๆŒ‡็คบใ‚’ๆ›ธใใ ใ‘ใงOKใงใ™ใ‚ˆใ€‚</div>
</div>

## ใ‚นใ‚ฏใƒชใƒ—ใƒˆใชใ—ใงSKILL.mdใ ใ‘ใงๅฎŒ็ตใ•ใ›ใ‚‹ๆ–นๆณ•

ใ‚ทใ‚งใƒซใ‚นใ‚ฏใƒชใƒ—ใƒˆใ‚’ๆ›ธใ‹ใชใใฆใ‚‚ใ€SKILL.mdใซ่ฉณ็ดฐใชๆŒ‡็คบใ‚’ๆ›ธใใ“ใจใงOpenClaw่‡ช่บซใซใƒ„ใƒผใƒซๅฎŸ่กŒใ‚’ไปปใ›ใ‚‹ใ“ใจใŒใงใใพใ™ใ€‚

```markdown
---
name: slack-notifier-simple
description: SlackใฎๆŒ‡ๅฎšใƒใƒฃใƒณใƒใƒซใซcurlใงWebhook้€š็Ÿฅใ‚’้€ใ‚‹ใ‚นใ‚ญใƒซ
version: 1.0.0
triggers:
  - "Slackใซ้€š็Ÿฅใ—ใฆ"
  - "Slackใงๅ ฑๅ‘Šใ—ใฆ"
requires:
  env:
    - SLACK_WEBHOOK_URL
---

## ๅฎŸ่กŒๆ‰‹้ †

ไปฅไธ‹ใฎcurlใ‚ณใƒžใƒณใƒ‰ใ‚’ไฝฟใฃใฆSlack้€š็Ÿฅใ‚’้€ไฟกใ—ใฆใใ ใ•ใ„ใ€‚

1. ็’ฐๅขƒๅค‰ๆ•ฐ `SLACK_WEBHOOK_URL` ใ‹ใ‚‰Webhook URLใ‚’ๅ–ๅพ—ใ™ใ‚‹
2. ใƒฆใƒผใ‚ถใƒผใฎๆŒ‡็คบใ‹ใ‚‰ใƒกใƒƒใ‚ปใƒผใ‚ธๆœฌๆ–‡ใจใƒใƒฃใƒณใƒใƒซๅใ‚’ๆŠฝๅ‡บใ™ใ‚‹
3. ไปฅไธ‹ใฎใ‚ณใƒžใƒณใƒ‰ใ‚’ๅฎŸ่กŒใ™ใ‚‹๏ผš

```bash
curl -s -X POST \
  -H "Content-Type: application/json" \
  -d "{\"text\": \"[ใƒกใƒƒใ‚ปใƒผใ‚ธๆœฌๆ–‡]\", \"channel\": \"[ใƒใƒฃใƒณใƒใƒซๅ]\"}" \
  "$SLACK_WEBHOOK_URL"
  1. HTTPใ‚นใƒ†ใƒผใ‚ฟใ‚นใ‚ณใƒผใƒ‰ใ‚’็ขบ่ชใ—ใฆๆˆๅŠŸ/ๅคฑๆ•—ใ‚’ใƒฆใƒผใ‚ถใƒผใซๅ ฑๅ‘Šใ™ใ‚‹

ใ“ใฎๆ–นๆณ•ใฎใƒกใƒชใƒƒใƒˆใฏ่จญๅฎšใŒ้žๅธธใซใ‚ทใƒณใƒ—ใƒซใงใ‚ใ‚‹็‚นใงใ€ใƒ‡ใƒกใƒชใƒƒใƒˆใฏOpenClawใŒๆฏŽๅ›žใ‚ณใƒžใƒณใƒ‰ใ‚’่งฃ้‡ˆใƒป็ต„ใฟ็ซ‹ใฆใ™ใ‚‹ใŸใ‚ใ€่ค‡้›‘ใชๅ‡ฆ็†ใงใฏ็ฒพๅบฆใŒไธ‹ใŒใ‚‹ๅ ดๅˆใŒใ‚ใ‚Šใพใ™ใ€‚ๆœฌ็•ช้‹็”จใงใฏใ‚ทใ‚งใƒซใ‚นใ‚ฏใƒชใƒ—ใƒˆใ‚’ไฝฟใ†ๆ–นๆณ•ใ‚’ๆŽจๅฅจใ—ใพใ™ใ€‚

## ใ‚นใ‚ญใƒซใฎใƒ‡ใƒใƒƒใ‚ฐๆ–นๆณ•

ใ‚นใ‚ญใƒซใŒๆœŸๅพ…้€šใ‚Šใซๅ‹•ใ‹ใชใ„ๅ ดๅˆใฎใƒ‡ใƒใƒƒใ‚ฐๆ‰‹้ †ใงใ™ใ€‚

```bash
# ใ‚นใ‚ญใƒซใฎ่ฉณ็ดฐๆƒ…ๅ ฑใ‚’็ขบ่ช
openclaw skill info slack-notifier

# ใƒ‡ใƒใƒƒใ‚ฐใƒขใƒผใƒ‰ใงๅฎŸ่กŒ๏ผˆใฉใฎใ‚นใ‚ญใƒซใŒ้ธๆŠžใ•ใ‚ŒใŸใ‹ใ‚’่กจ็คบ๏ผ‰
openclaw --debug "Slackใซ้€š็Ÿฅใ—ใฆ"

# ใ‚นใ‚ญใƒซใ‚’็›ดๆŽฅๆŒ‡ๅฎšใ—ใฆๅฎŸ่กŒ๏ผˆใ‚นใ‚ญใƒซ้ธๆŠžใ‚’ใƒใ‚คใƒ‘ใ‚น๏ผ‰
openclaw --skill slack-notifier "ใƒ†ใ‚นใƒˆ้€š็Ÿฅใ‚’#generalใซ้€ใฃใฆ"

# ใ‚นใ‚ญใƒซใฎๆคœ่จผ๏ผˆSKILL.mdใฎๆง‹ๆ–‡ใƒใ‚งใƒƒใ‚ฏ๏ผ‰
openclaw skill validate slack-notifier

ใƒ‡ใƒใƒƒใ‚ฐใƒขใƒผใƒ‰ใงใฏไปฅไธ‹ใฎใ‚ˆใ†ใชๆƒ…ๅ ฑใŒ่กจ็คบใ•ใ‚Œใพใ™ใ€‚

[DEBUG] User input: "Slackใซ้€š็Ÿฅใ—ใฆ"
[DEBUG] Skill matching:
  - slack-notifier: score=0.95 (triggers: "Slackใซ้€š็Ÿฅใ—ใฆ" matched)
  - github-reviewer: score=0.12
[DEBUG] Selected skill: slack-notifier
[DEBUG] Executing: notify.sh

SES็พๅ ดใงใฎๆดป็”จไพ‹

ๆดป็”จไพ‹1๏ผšๆ—ฅๅ ฑใฎ่‡ชๅ‹•็”Ÿๆˆใจ้€ไฟก
`daily-report` ใ‚นใ‚ญใƒซใ‚’ไฝœๆˆใ—ใฆใŠใ‘ใฐใ€ใ€ŒไปŠๆ—ฅใฎๆ—ฅๅ ฑใ‚’Slackใซ้€ใฃใฆใ€ใจๆŒ‡็คบใ™ใ‚‹ใ ใ‘ใงgitใฎใ‚ณใƒŸใƒƒใƒˆๅฑฅๆญดใƒปไฝœๆฅญใƒญใ‚ฐใ‚’่‡ชๅ‹•้›†่จˆใ—ใฆใƒ•ใ‚ฉใƒผใƒžใƒƒใƒˆๆธˆใฟใฎๆ—ฅๅ ฑใ‚’้€ไฟกใงใใพใ™ใ€‚ๆฏŽๆ—ฅ5ใ€œ10ๅˆ†ใ‹ใ‹ใฃใฆใ„ใŸๆ—ฅๅ ฑไฝœๆˆใŒใปใผใ‚ผใƒญใซใชใ‚Šใพใ™ใ€‚
ๆดป็”จไพ‹2๏ผšใ‚ณใƒผใƒ‰ใƒฌใƒ“ใƒฅใƒผไพ้ ผใฎ่‡ชๅ‹•ๅŒ–
ใ€Œใ“ใฎPRใฎใƒฌใƒ“ใƒฅใƒผใ‚’็”ฐไธญใ•ใ‚“ใซไพ้ ผใ—ใฆใ€ใจ่จ€ใ†ใ ใ‘ใงใ€็พๅœจใฎใƒ–ใƒฉใƒณใƒใฎPR็•ชๅทใ‚’่‡ชๅ‹•ๆคœๅ‡บใ—ใ€GitHubใงใ‚ขใ‚ตใ‚คใƒณใ—ใฆSlack DMใงใ€Œใƒฌใƒ“ใƒฅใƒผใŠ้ก˜ใ„ใ—ใพใ™ใ€ใƒกใƒƒใ‚ปใƒผใ‚ธใ‚’้€ใ‚‹ใพใงใ‚’ไธ€้€ฃใฎๆตใ‚ŒใงๅฎŸ่กŒใ™ใ‚‹ใ‚นใ‚ญใƒซใ‚’ๆง‹็ฏ‰ใงใใพใ™ใ€‚
ๆดป็”จไพ‹3๏ผšใƒ‡ใƒ—ใƒญใ‚คๅพŒใฎ้–ขไฟ‚่€…้€š็Ÿฅ
CI/CDใƒ‘ใ‚คใƒ—ใƒฉใ‚คใƒณใฎๆœ€ๅพŒใฎใ‚นใƒ†ใƒƒใƒ—ใงOpenClawใ‚’ๅ‘ผใณๅ‡บใ—ใ€ใ€Œv2.3.0ใฎใƒ‡ใƒ—ใƒญใ‚คใŒๅฎŒไบ†ใ—ใŸใ“ใจใ‚’#deploy-noticeใซ้€š็Ÿฅใ—ใฆใ€Jiraใฎ่ฉฒๅฝ“ใƒใ‚ฑใƒƒใƒˆใ‚’Doneใซๅค‰ๆ›ดใ—ใฆใ€ใจๅฎŸ่กŒใ™ใ‚‹ใ‚นใ‚ฏใƒชใƒ—ใƒˆใ‚’็ต„ใฟ่พผใ‚ใฐใ€ใƒ‡ใƒ—ใƒญใ‚คๅพŒใฎไฝœๆฅญใŒๅ…จ่‡ชๅ‹•ๅŒ–ใงใใพใ™ใ€‚

ใ‚นใ‚ญใƒซใฎๅ…ฑๆœ‰ใจๅ†ๅˆฉ็”จ

ไฝœๆˆใ—ใŸใ‚นใ‚ญใƒซใฏใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒชใ‚’ใพใ‚‹ใ”ใจใ‚ณใƒ”ใƒผใ™ใ‚‹ใ ใ‘ใงๅˆฅ็’ฐๅขƒใซๅฑ•้–‹ใงใใพใ™ใ€‚ใƒใƒผใƒ ใงๅ…ฑๆœ‰ใ™ใ‚‹ๅ ดๅˆใฎๆ–นๆณ•ใ‚’ใ„ใใคใ‹็ดนไป‹ใ—ใพใ™ใ€‚

ๆ–นๆณ•1๏ผšdotfilesใƒชใƒใ‚ธใƒˆใƒชใง็ฎก็†ใ™ใ‚‹

# dotfilesใƒชใƒใ‚ธใƒˆใƒชใซใ‚นใ‚ญใƒซใ‚’่ฟฝๅŠ 
cp -r ~/.openclaw/skills/slack-notifier ~/dotfiles/.openclaw/skills/

# ใ‚ทใƒณใƒœใƒชใƒƒใ‚ฏใƒชใƒณใ‚ฏใง็ฎก็†
ln -s ~/dotfiles/.openclaw/skills ~/.openclaw/skills

ๆ–นๆณ•2๏ผštarballใงๅ…ฑๆœ‰ใ™ใ‚‹

# ใ‚นใ‚ญใƒซใ‚’ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใƒณใ‚ฐ
cd ~/.openclaw/skills
tar -czf slack-notifier-skill.tar.gz slack-notifier/

# ๅ—ใ‘ๅ–ใ‚Šๅดใงใ‚คใƒณใ‚นใƒˆใƒผใƒซ
tar -xzf slack-notifier-skill.tar.gz -C ~/.openclaw/skills/
openclaw skill add slack-notifier
ใ‚นใ‚ญใƒซใ‚’ใƒใƒผใƒ ใงๅ…ฑๆœ‰ใ™ใ‚‹้š›ใฎๆณจๆ„็‚น

SKILL.mdใ‚„ๅฎŸ่กŒใ‚นใ‚ฏใƒชใƒ—ใƒˆใซAPIใƒˆใƒผใ‚ฏใƒณใ‚„ใƒ‘ใ‚นใƒฏใƒผใƒ‰ใ‚’็›ดๆŽฅๆ›ธใ‹ใชใ„ใงใใ ใ•ใ„ใ€‚็’ฐๅขƒๅค‰ๆ•ฐ๏ผˆrequires.env๏ผ‰ใงๅฎฃ่จ€ใ—ใ€ๅ„ใƒกใƒณใƒใƒผใŒ่‡ชๅˆ†ใฎ็’ฐๅขƒใง่จญๅฎšใ™ใ‚‹่จญ่จˆใซใ—ใพใ—ใ‚‡ใ†ใ€‚ใ‚นใ‚ญใƒซใฎใƒ•ใ‚กใ‚คใƒซใฏGitHubใฎใƒ—ใƒฉใ‚คใƒ™ใƒผใƒˆใƒชใƒใ‚ธใƒˆใƒชใง็ฎก็†ใ™ใ‚‹ใ“ใจใ‚’ๆŽจๅฅจใ—ใพใ™ใ€‚

ใ‚ˆใใ‚ใ‚‹่ณชๅ•๏ผˆFAQ๏ผ‰

ใ‚นใ‚ญใƒซใŒๅ‘ผใฐใ‚Œใšใ€OpenClawใŒ็›ดๆŽฅๅ›ž็ญ”ใ—ใ‚ˆใ†ใจใ—ใพใ™ใ€‚ใฉใ†ใ™ใ‚Œใฐใ„ใ„ใงใ™ใ‹๏ผŸ
triggersใฎใ‚ญใƒผใƒฏใƒผใƒ‰ใŒๆŒ‡็คบๅ†…ๅฎนใจๆ„ๅ‘ณ็š„ใซ้ ใ„ๅฏ่ƒฝๆ€งใŒใ‚ใ‚Šใพใ™ใ€‚openclaw skill info [ใ‚นใ‚ญใƒซๅ] ใงใ‚นใ‚ญใƒซใŒๆญฃใ—ใ็™ป้Œฒใ•ใ‚Œใฆใ„ใ‚‹ใ‹็ขบ่ชใ—ใฆใใ ใ•ใ„ใ€‚ใพใŸ --debug ใƒ•ใƒฉใ‚ฐใ‚’ไฝฟใ†ใจใ€ๅ„ใ‚นใ‚ญใƒซใฎใƒžใƒƒใƒใƒณใ‚ฐใ‚นใ‚ณใ‚ขใŒ่กจ็คบใ•ใ‚Œใ‚‹ใฎใงใ€ใฉใฎใ‚ญใƒผใƒฏใƒผใƒ‰ใŒๅผฑใ„ใ‹ใ‚’็‰นๅฎšใงใใพใ™ใ€‚triggersใ‚’ใ‚ˆใ‚Šๅ…ทไฝ“็š„ใชใƒ•ใƒฌใƒผใ‚บใซๅข—ใ‚„ใ™ใ“ใจใงๆ”นๅ–„ใ•ใ‚Œใพใ™ใ€‚
ใ‚นใ‚ญใƒซใฎใ‚นใ‚ฏใƒชใƒ—ใƒˆใŒๅฎŸ่กŒใ•ใ‚Œใพใ—ใŸใŒใ€ๆจฉ้™ใ‚จใƒฉใƒผใŒๅ‡บใพใ™ใ€‚
ใ‚นใ‚ฏใƒชใƒ—ใƒˆใซๅฎŸ่กŒๆจฉ้™ใŒไป˜ไธŽใ•ใ‚Œใฆใ„ใ‚‹ใ‹็ขบ่ชใ—ใฆใใ ใ•ใ„ใ€‚chmod +x ~/.openclaw/skills/[ใ‚นใ‚ญใƒซๅ]/*.sh ใงๅฎŸ่กŒๆจฉ้™ใ‚’ไป˜ไธŽใงใใพใ™ใ€‚ใพใŸใ€ใ‚นใ‚ฏใƒชใƒ—ใƒˆใฎ1่กŒ็›ฎใซshebang๏ผˆ#!/bin/bash๏ผ‰ใŒๆ›ธใ‹ใ‚Œใฆใ„ใ‚‹ใ‹ใ‚‚็ขบ่ชใ—ใฆใใ ใ•ใ„ใ€‚
่ค‡ๆ•ฐใฎใ‚นใ‚ญใƒซใ‚’็ต„ใฟๅˆใ‚ใ›ใฆๅฎŸ่กŒใ•ใ›ใ‚‹ใ“ใจใฏใงใใพใ™ใ‹๏ผŸ
ใงใใพใ™ใ€‚OpenClawใฏใ‚จใƒผใ‚ธใ‚งใƒณใƒˆใจใ—ใฆๅ‹•ไฝœใ™ใ‚‹ใŸใ‚ใ€ใ€ŒPRใ‚’ไฝœๆˆใ—ใฆใƒฌใƒ“ใƒฅใƒผไพ้ ผใ—ใฆใ€ๅฎŒไบ†ใ—ใŸใ‚‰Slackใซ้€š็Ÿฅใ—ใฆใ€ใฎใ‚ˆใ†ใช่ค‡ๅˆๆŒ‡็คบใ‚‚่งฃ้‡ˆใ—ใพใ™ใ€‚ใ“ใฎๅ ดๅˆใ€github-reviewerใจslack-notifierใฎไธกๆ–นใฎใ‚นใ‚ญใƒซใŒ้ †็•ชใซๅ‘ผใณๅ‡บใ•ใ‚Œใพใ™ใ€‚ใŸใ ใ—ใ€่ค‡ๅˆๆŒ‡็คบใฏใ‚ทใƒณใƒ—ใƒซใชๆŒ‡็คบใ‚ˆใ‚Šๅคฑๆ•—ใ—ใ‚„ใ™ใ„ใŸใ‚ใ€้‡่ฆใชไฝœๆฅญใฏๅ€‹ๅˆฅใซๅฎŸ่กŒใ™ใ‚‹ใ“ใจใ‚’ใŠใ™ใ™ใ‚ใ—ใพใ™ใ€‚
ใ‚นใ‚ญใƒซใฎใƒใƒผใ‚ธใƒงใƒณ็ฎก็†ใฏใฉใ†ใ™ใ‚Œใฐใ„ใ„ใงใ™ใ‹๏ผŸ
SKILL.mdใƒ•ใƒญใƒณใƒˆใƒžใ‚ฟใƒผใฎ version ใƒ•ใ‚ฃใƒผใƒซใƒ‰ใซใ‚ปใƒžใƒณใƒ†ใ‚ฃใƒƒใ‚ฏใƒใƒผใ‚ธใƒงใƒ‹ใƒณใ‚ฐใง่จ˜่ผ‰ใ—ใพใ™ใ€‚ใ‚นใ‚ญใƒซใฎใƒ‡ใ‚ฃใƒฌใ‚ฏใƒˆใƒชใ‚’Gitใง็ฎก็†ใ™ใ‚‹ใ“ใจใ‚’ๆŽจๅฅจใ—ใพใ™ใ€‚openclaw skill list ใงใ‚คใƒณใ‚นใƒˆใƒผใƒซๆธˆใฟใฎใƒใƒผใ‚ธใƒงใƒณใŒ็ขบ่ชใงใใ€openclaw skill update [ใ‚นใ‚ญใƒซๅ] ใงๆœ€ๆ–ฐ็‰ˆใซๆ›ดๆ–ฐใงใใพใ™ใ€‚
Windowsใงใ‚‚ๅŒใ˜ใ‚นใ‚ญใƒซใฏๅ‹•ใใพใ™ใ‹๏ผŸ
OpenClaw่‡ชไฝ“ใฏNode.js่ฃฝใฎใŸใ‚Windowsใงใ‚‚ๅ‹•ใใพใ™ใŒใ€ๅฎŸ่กŒใ‚นใ‚ฏใƒชใƒ—ใƒˆใ‚’bashใงๆ›ธใ„ใฆใ„ใ‚‹ๅ ดๅˆใฏGit BashใƒปWSLใƒปCygwinใŒๅฟ…่ฆใงใ™ใ€‚ใ‚ฏใƒญใ‚นใƒ—ใƒฉใƒƒใƒˆใƒ•ใ‚ฉใƒผใƒ ใงๅ‹•ใ‹ใ—ใŸใ„ๅ ดๅˆใฏใ€ใ‚นใ‚ฏใƒชใƒ—ใƒˆใ‚’Node.jsใ‚นใ‚ฏใƒชใƒ—ใƒˆ๏ผˆscript.js๏ผ‰ใงๆ›ธใใ‹ใ€SKILL.mdใฎใฟใงๅฎŒ็ตใ•ใ›ใ‚‹่จญ่จˆใซใ™ใ‚‹ใ“ใจใ‚’ๆคœ่จŽใ—ใฆใใ ใ•ใ„ใ€‚

ใพใจใ‚

OpenClawใฎใ‚นใ‚ญใƒซใ‚ทใ‚นใƒ†ใƒ ใ‚’ไฝฟใ†ใ“ใจใงใ€SES็พๅ ดใงใฎๅฎšๅž‹ไฝœๆฅญใ‚’่‡ช็„ถ่จ€่ชžใฎๆŒ‡็คบใ ใ‘ใง่‡ชๅ‹•ๅŒ–ใงใใพใ™ใ€‚

ใ‚นใ‚ญใƒซใฎๆ ธๅฟƒใฏใ€ŒSKILL.mdใ‚’ๆ›ธใใ ใ‘ใงAIใŒไป•ๆง˜ใ‚’็†่งฃใ—ใฆใใ‚Œใ‚‹ใ€็‚นใงใ™ใ€‚่ค‡้›‘ใชใƒ—ใƒฉใ‚ฐใ‚คใƒณ้–‹็™บใ‚„่จญๅฎšใƒ•ใ‚กใ‚คใƒซใฎ่จ˜่ฟฐใฏไธ่ฆใงใ€ใƒžใƒผใ‚ฏใƒ€ใ‚ฆใƒณๅฝขๅผใฎไป•ๆง˜ๆ›ธใ‚’็ฝฎใใ ใ‘ใงๆฉŸ่ƒฝใ—ใพใ™ใ€‚

ไปŠๅ›žไฝœๆˆใ—ใŸใ‚นใ‚ญใƒซใฎใพใจใ‚๏ผš

  • slack-notifier๏ผšSlack Webhookใ‚’ไฝฟใฃใŸใƒใƒฃใƒณใƒใƒซ้€š็Ÿฅ
  • github-reviewer๏ผšGitHub PRใธใฎใ‚ณใƒกใƒณใƒˆใƒปApprovalๆŠ•็จฟ
  • jira-ticket๏ผšJira REST APIใ‚’ไฝฟใฃใŸใƒใ‚ฑใƒƒใƒˆไฝœๆˆ

ใ“ใ‚Œใ‚‰ใ‚’ใƒ™ใƒผใ‚นใซใ€่‡ชๅˆ†ใฎ็พๅ ด็‰นๆœ‰ใฎไฝœๆฅญใซๅˆใ‚ใ›ใฆใ‚ซใ‚นใ‚ฟใƒžใ‚คใ‚บใ—ใฆใฟใฆใใ ใ•ใ„ใ€‚ใ‚นใ‚ญใƒซใฎๆ•ฐใŒๅข—ใˆใ‚‹ใปใฉใ€OpenClawใŒใ€Œใชใ‚“ใงใ‚‚ใ‚„ใฃใฆใใ‚Œใ‚‹้ ผใ‚Œใ‚‹ๅŒๅƒšใ€ใซใชใฃใฆใ„ใใพใ™ใ€‚

OpenClawใฎใ•ใ‚‰ใชใ‚‹ๆดป็”จๆ–นๆณ•ใซใคใ„ใฆใฏOpenClawๅฎŒๅ…จๆ”ป็•ฅใ‚ทใƒชใƒผใ‚บใ‚’ใ”่ฆงใใ ใ•ใ„ใ€‚AIใƒ„ใƒผใƒซใ‚’ๆดป็”จใ—ใŸSES็พๅ ดใงใฎใ‚ญใƒฃใƒชใ‚ขใ‚ขใƒƒใƒ—ใซใคใ„ใฆใฏSESใ‚จใƒณใ‚ธใƒ‹ใ‚ขใฎใ‚นใ‚ญใƒซใ‚ขใƒƒใƒ—ใƒญใƒผใƒ‰ใƒžใƒƒใƒ—2026ใ‚‚ๅ‚่€ƒใซใฉใ†ใžใ€‚

ใ“ใฎ่จ˜ไบ‹ใฏๅฝนใซ็ซ‹ใกใพใ—ใŸใ‹๏ผŸ

Link1 Link2 Link3

ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚ใ‚

SESๆกˆไปถใ‚’ใŠๆŽขใ—ใงใ™ใ‹๏ผŸ

SES่จ˜ไบ‹ใ‚’ใ‚‚ใฃใจ่ชญใ‚€ โ†’
๐Ÿ—๏ธ

SES BASE ็ทจ้›†้•ท

SESๆฅญ็•Œๆญด10ๅนดไปฅไธŠใฎใƒกใƒณใƒใƒผใŒๅœจ็ฑใ™ใ‚‹็ทจ้›†ใƒใƒผใƒ ใ€‚SESไผๆฅญใงใฎๅ–ถๆฅญใƒปใ‚จใƒณใ‚ธใƒ‹ใ‚ข็ตŒ้จ“ใ€ใƒ•ใƒชใƒผใƒฉใƒณใ‚น็‹ฌ็ซ‹็ตŒ้จ“ใ‚’ๆŒใคใƒกใƒณใƒใƒผใŒใ€ๆฅญ็•Œใฎใƒชใ‚ขใƒซใชๆƒ…ๅ ฑใ‚’ใŠๅฑŠใ‘ใ—ใพใ™ใ€‚

๐Ÿ“Š ๆฅญ็•Œใƒ‡ใƒผใ‚ฟใซๅŸบใฅใ่จ˜ไบ‹ๅˆถไฝœ ๐Ÿ” IPAใƒป็ตŒๆธˆ็”ฃๆฅญ็œใƒ‡ใƒผใ‚ฟๅ‚็…ง ๐Ÿ’ผ SESๅฎŸๅ‹™็ตŒ้จ“่€…ใŒๅŸท็ญ†ใƒป็›ฃไฟฎ