๐• f B! L
ๆกˆไปถใƒปๆฑ‚ไบบๆ•ฐ 12,345ไปถ
ๆกˆไปถใ‚’ๆŽขใ™๏ผˆๆบ–ๅ‚™ไธญ๏ผ‰ ใ‚จใƒผใ‚ธใ‚งใƒณใƒˆใ‚’ๆŽขใ™๏ผˆๆบ–ๅ‚™ไธญ๏ผ‰ ใŠๅฝน็ซ‹ใกๆƒ…ๅ ฑ ใƒญใ‚ฐใ‚คใƒณ
ๆกˆไปถใƒปๆฑ‚ไบบๆ•ฐ 12,345ไปถ
OpenAI Codex CLIๅฎŸ่ทตใƒ†ใ‚ฏใƒ‹ใƒƒใ‚ฏ้›†๏ฝœใ‚ตใƒณใƒ‰ใƒœใƒƒใ‚ฏใ‚นๆดป็”จใƒปใƒžใƒซใƒใƒ•ใ‚กใ‚คใƒซ็ทจ้›†ใƒปCI้€ฃๆบ

OpenAI Codex CLIๅฎŸ่ทตใƒ†ใ‚ฏใƒ‹ใƒƒใ‚ฏ้›†๏ฝœใ‚ตใƒณใƒ‰ใƒœใƒƒใ‚ฏใ‚นๆดป็”จใƒปใƒžใƒซใƒใƒ•ใ‚กใ‚คใƒซ็ทจ้›†ใƒปCI้€ฃๆบ

OpenAI CodexAIใ‚ณใƒผใƒ‡ใ‚ฃใƒณใ‚ฐCLICI/CDSESใ‚จใƒณใ‚ธใƒ‹ใ‚ขๅฎŸ่ทต
็›ฎๆฌก
โšก 3็ง’ใงใ‚ใ‹ใ‚‹๏ผใ“ใฎ่จ˜ไบ‹ใฎใƒใ‚คใƒณใƒˆ
  • ใ‚ตใƒณใƒ‰ใƒœใƒƒใ‚ฏใ‚นใƒขใƒผใƒ‰ใ‚’ไฝฟใ„ใ“ใชใ›ใฐๅฎ‰ๅ…จใซๆœฌ็•ช็ดšใฎ่‡ชๅ‹•ๅŒ–ใŒๅฏ่ƒฝ
  • ใƒžใƒซใƒใƒ•ใ‚กใ‚คใƒซ็ทจ้›†ใงใƒชใƒ•ใ‚กใ‚ฏใ‚ฟใƒชใƒณใ‚ฐใƒปๅž‹ๅค‰ๆ›ดใŒไธ€็™บใงๅฎŒไบ†
  • CI/CDใƒ‘ใ‚คใƒ—ใƒฉใ‚คใƒณใซ็ต„ใฟ่พผใ‚ใฐใ‚ณใƒผใƒ‰ใƒฌใƒ“ใƒฅใƒผใ‚’่‡ชๅ‹•ๅŒ–ใงใใ‚‹

ๅ‰ๅ›žใฎๅ…ฅ้–€็ทจใงใฏใ€Codex CLIใฎใ‚คใƒณใ‚นใƒˆใƒผใƒซใ‹ใ‚‰ๅŸบๆœฌๆ“ไฝœใพใงใ‚’่งฃ่ชฌใ—ใพใ—ใŸใ€‚ไปŠๅ›žใฏๅฎŸ่ทต็ทจใจใ—ใฆใ€็พๅ ดใงใ™ใใซไฝฟใˆใ‚‹ใƒ†ใ‚ฏใƒ‹ใƒƒใ‚ฏใ‚’ๆทฑๆŽ˜ใ‚Šใ—ใพใ™ใ€‚

ใ‚ตใƒณใƒ‰ใƒœใƒƒใ‚ฏใ‚นใฎ้ซ˜ๅบฆใชๆดป็”จๆณ•ใ€่ค‡ๆ•ฐใƒ•ใ‚กใ‚คใƒซใฎไธ€ๆ‹ฌ็ทจ้›†ใ€CI/CDใจใฎ้€ฃๆบใ€ใใ—ใฆSES็พๅ ดใง็‰นใซๅฝน็ซ‹ใคใ‚ณใƒผใƒ‰ใƒฌใƒ“ใƒฅใƒผ่‡ชๅ‹•ๅŒ–ใพใงใ€ๅ…ทไฝ“็š„ใชใ‚ณใƒžใƒณใƒ‰ไพ‹ใจใจใ‚‚ใซ็ดนไป‹ใ—ใพใ™ใ€‚

Codex CLIๅฎŸ่ทตใƒ†ใ‚ฏใƒ‹ใƒƒใ‚ฏใฎๅ…จไฝ“ๅƒใ‚คใƒณใƒ•ใ‚ฉใ‚ฐใƒฉใƒ•ใ‚ฃใƒƒใ‚ฏ

ใ‚ตใƒณใƒ‰ใƒœใƒƒใ‚ฏใ‚นใƒขใƒผใƒ‰ใ‚’ไฝฟใ„ใ“ใชใ™

ๅ…ฅ้–€็ทจใงใ‚ตใƒณใƒ‰ใƒœใƒƒใ‚ฏใ‚นใฎๅŸบๆœฌใฏ็†่งฃใงใใŸใฏใšใงใ™ใ€‚ใ“ใ“ใงใฏๅฎŸๅ‹™ใงๅทฎใŒใคใใ‚ตใƒณใƒ‰ใƒœใƒƒใ‚ฏใ‚นใฎๆดป็”จใƒ†ใ‚ฏใƒ‹ใƒƒใ‚ฏใ‚’่งฃ่ชฌใ—ใพใ™ใ€‚

full-autoใƒขใƒผใƒ‰ใฎๅฎŸ่ทต็š„ใชไฝฟใ„ๆ–น

--full-autoใƒขใƒผใƒ‰ใฏใ€ใ‚ตใƒณใƒ‰ใƒœใƒƒใ‚ฏใ‚นๅ†…ใงAIใŒ่‡ชๅพ‹็š„ใซใ‚ณใƒผใƒ‰ๅฎŸ่กŒใƒปไฟฎๆญฃใƒปใƒ†ใ‚นใƒˆใ‚’็นฐใ‚Š่ฟ”ใ—ใพใ™ใ€‚ไบบ้–“ใŒๆฏŽๅ›žๆ‰ฟ่ชใ™ใ‚‹ๅฟ…่ฆใŒใชใ„ใŸใ‚ใ€ๅคงใใชใ‚ฟใ‚นใ‚ฏใ‚’ไปปใ›ใ‚‹ใฎใซๆœ€้ฉใงใ™ใ€‚

codex --full-auto "src/้…ไธ‹ใฎTypeScriptใƒ•ใ‚กใ‚คใƒซใ‚’ESLintไฟฎๆญฃใ—ใฆใ€ใƒ†ใ‚นใƒˆใŒ้€šใ‚‹ใ“ใจใ‚’็ขบ่ชใ—ใฆ"

ใ“ใฎใ‚ณใƒžใƒณใƒ‰ใ ใ‘ใงใ€Codex CLIใฏไปฅไธ‹ใ‚’่‡ชๅ‹•ใง่กŒใ„ใพใ™ใ€‚

full-autoใƒขใƒผใƒ‰ใฎๅฎŸ่กŒใƒ•ใƒญใƒผ
  1. src/้…ไธ‹ใฎTypeScriptใƒ•ใ‚กใ‚คใƒซใ‚’ใ‚นใ‚ญใƒฃใƒณ
  2. ESLintใƒซใƒผใƒซใซๅŸบใฅใ„ใฆ่‡ชๅ‹•ไฟฎๆญฃ
  3. ไฟฎๆญฃๅพŒใซใƒ†ใ‚นใƒˆใ‚’ๅฎŸ่กŒ
  4. ใƒ†ใ‚นใƒˆๅคฑๆ•—ใŒใ‚ใ‚ŒใฐๅŽŸๅ› ใ‚’ๅˆ†ๆžใ—ใฆๅ†ไฟฎๆญฃ
  5. ๅ…จใƒ†ใ‚นใƒˆใŒ้€šใ‚‹ใพใง็นฐใ‚Š่ฟ”ใ™

ใ‚ตใƒณใƒ‰ใƒœใƒƒใ‚ฏใ‚นๅ†…ใงใฎๅฎŸ่กŒใชใฎใงใ€ไธ‡ใŒไธ€AIใŒๆšด่ตฐใ—ใฆใ‚‚ใƒ›ใ‚นใƒˆ็’ฐๅขƒใซใฏไธ€ๅˆ‡ๅฝฑ้Ÿฟใ—ใพใ›ใ‚“ใ€‚็ตๆžœใ‚’็ขบ่ชใ—ใฆใ‹ใ‚‰ๆ‰ฟ่ชใ™ใ‚ŒใฐOKใงใ™ใ€‚

ใ‚ตใƒณใƒ‰ใƒœใƒƒใ‚ฏใ‚นใฎใ‚ซใ‚นใ‚ฟใƒžใ‚คใ‚บ

Codex CLIใงใฏใ‚ตใƒณใƒ‰ใƒœใƒƒใ‚ฏใ‚นใฎๆŒ™ๅ‹•ใ‚’ใ‚ซใ‚นใ‚ฟใƒžใ‚คใ‚บใงใใพใ™ใ€‚ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใƒซใƒผใƒˆใซcodex.md๏ผˆใพใŸใฏAGENTS.md๏ผ‰ใ‚’้…็ฝฎใ™ใ‚‹ใ“ใจใงใ€AIใฎๅ‹•ไฝœใ‚’ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใซๅˆใ‚ใ›ใฆๅˆถๅพกใงใใพใ™ใ€‚

# codex.md

## ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใƒซใƒผใƒซ
- ใƒ†ใ‚นใƒˆใƒ•ใƒฌใƒผใƒ ใƒฏใƒผใ‚ฏ: vitest
- ใƒ‘ใƒƒใ‚ฑใƒผใ‚ธใƒžใƒใƒผใ‚ธใƒฃ: pnpm
- ใ‚ณใƒผใƒ‡ใ‚ฃใƒณใ‚ฐ่ฆ็ด„: src/ ้…ไธ‹ใฏๅŽณๅฏ†ใชๅž‹ๅฎš็พฉใ‚’ไฝฟใ†ใ“ใจ
- ใƒ†ใ‚นใƒˆๅฎŸ่กŒใ‚ณใƒžใƒณใƒ‰: pnpm test
- ๅค‰ๆ›ด็ฆๆญข: .env*, config/production.*

ใ“ใฎ่จญๅฎšใƒ•ใ‚กใ‚คใƒซใซใ‚ˆใ‚Šใ€AIใŒใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใฎๆ–‡่„ˆใ‚’ๆญฃ็ขบใซ็†่งฃใ—ใŸไธŠใงใ‚ณใƒผใƒ‰ใ‚’็”Ÿๆˆใ—ใพใ™ใ€‚็‰นใซSES็พๅ ดใง่ค‡ๆ•ฐใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใ‚’ๆŽ›ใ‘ๆŒใกใ™ใ‚‹ๅ ดๅˆใ€ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใ”ใจใซcodex.mdใ‚’็”จๆ„ใ—ใฆใŠใใจๅˆ‡ใ‚Šๆ›ฟใˆใŒใ‚นใƒ ใƒผใ‚บใงใ™ใ€‚

ใ‚ตใƒณใƒ‰ใƒœใƒƒใ‚ฏใ‚นใงๅฎ‰ๅ…จใซDBๆ“ไฝœใ‚’่ฉฆใ™

ใƒ‡ใƒผใ‚ฟใƒ™ใƒผใ‚นใƒžใ‚คใ‚ฐใƒฌใƒผใ‚ทใƒงใƒณใฎๆคœ่จผใซใ‚‚ใ‚ตใƒณใƒ‰ใƒœใƒƒใ‚ฏใ‚นใฏๆœ‰ๅŠนใงใ™ใ€‚

codex --full-auto "Prismaใ‚นใ‚ญใƒผใƒžใซuserใƒ†ใƒผใƒ–ใƒซใฎemail_verified ใ‚ซใƒฉใƒ ใ‚’่ฟฝๅŠ ใ—ใฆใ€ใƒžใ‚คใ‚ฐใƒฌใƒผใ‚ทใƒงใƒณใƒ•ใ‚กใ‚คใƒซใ‚’็”Ÿๆˆใ—ใฆ"

ใ‚ตใƒณใƒ‰ใƒœใƒƒใ‚ฏใ‚นๅ†…ใงใƒžใ‚คใ‚ฐใƒฌใƒผใ‚ทใƒงใƒณใƒ•ใ‚กใ‚คใƒซใ‚’็”Ÿๆˆใƒป็ขบ่ชใ—ใฆใ‹ใ‚‰ๆœฌ็•ช็’ฐๅขƒใซ้ฉ็”จใงใใ‚‹ใŸใ‚ใ€ใ‚นใ‚ญใƒผใƒžๅค‰ๆ›ดใฎใƒŸใ‚นใ‚’ไบ‹ๅ‰ใซ้˜ฒใ’ใพใ™ใ€‚

ใƒžใƒซใƒใƒ•ใ‚กใ‚คใƒซ็ทจ้›†ใƒ†ใ‚ฏใƒ‹ใƒƒใ‚ฏ

Codex CLIใฎ็œŸไพกใฏใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆๅ…จไฝ“ใ‚’็†่งฃใ—ใŸไธŠใงใฎไธ€ๆ‹ฌ็ทจ้›†ใซใ‚ใ‚Šใพใ™ใ€‚ๅ˜ไธ€ใƒ•ใ‚กใ‚คใƒซใฎไฟฎๆญฃใชใ‚‰ไป–ใฎใƒ„ใƒผใƒซใงใ‚‚ใงใใพใ™ใŒใ€ไพๅญ˜้–ขไฟ‚ใ‚’่ทจใ„ใ ๅค‰ๆ›ดใฏCodex CLIใŒๅพ—ๆ„ใจใ™ใ‚‹้ ˜ๅŸŸใงใ™ใ€‚

ๅž‹ๅฎš็พฉใฎๅค‰ๆ›ดใ‚’ๅ…จใƒ•ใ‚กใ‚คใƒซใซๅๆ˜ 

codex exec "Userๅž‹ใฎidใƒ•ใ‚ฃใƒผใƒซใƒ‰ใ‚’numberใ‹ใ‚‰stringใซๅค‰ๆ›ดใ—ใฆใ€้–ข้€ฃใ™ใ‚‹ๅ…จใƒ•ใ‚กใ‚คใƒซใ‚’ไฟฎๆญฃใ—ใฆ"

Codex CLIใฏไปฅไธ‹ใ‚’ไธ€ๆ‹ฌใงๅ‡ฆ็†ใ—ใพใ™ใ€‚

  • ๅž‹ๅฎš็พฉใƒ•ใ‚กใ‚คใƒซ๏ผˆtypes/user.ts๏ผ‰ใฎไฟฎๆญฃ
  • APIๅฑคใฎใƒใƒชใƒ‡ใƒผใ‚ทใƒงใƒณๆ›ดๆ–ฐ
  • ใƒ†ใ‚นใƒˆใฎใƒขใƒƒใ‚ฏใƒ‡ใƒผใ‚ฟไฟฎๆญฃ
  • ใƒ•ใƒญใƒณใƒˆใ‚จใƒณใƒ‰ใฎใ‚ณใƒณใƒใƒผใƒใƒณใƒˆไฟฎๆญฃ

ๆ‰‹ไฝœๆฅญใชใ‚‰ๆ•ฐๆ™‚้–“ใ‹ใ‹ใ‚‹ๅค‰ๆ›ดใŒๆ•ฐๅˆ†ใงๅฎŒไบ†ใ—ใพใ™ใ€‚

APIไป•ๆง˜ๅค‰ๆ›ดใฎไธ€ๆ‹ฌๅฏพๅฟœ

codex exec "REST APIใฎใƒฌใ‚นใƒใƒณใ‚นๅฝขๅผใ‚’ { data: T, meta: { total: number } } ใซ็ตฑไธ€ใ—ใฆใ€‚ๅ…จใ‚จใƒณใƒ‰ใƒใ‚คใƒณใƒˆใจใƒ†ใ‚นใƒˆใ‚’ไฟฎๆญฃใ—ใฆ"

ใƒžใƒซใƒใƒ•ใ‚กใ‚คใƒซ็ทจ้›†ๅพŒใฏๅฟ…ใšdiffใ‚’็ขบ่ชใ—ใฆใใ ใ•ใ„ใ€‚AIใŒไบˆๆœŸใ—ใชใ„ใƒ•ใ‚กใ‚คใƒซใ‚’ๅค‰ๆ›ดใ—ใฆใ„ใ‚‹ๅฏ่ƒฝๆ€งใŒใ‚ใ‚Šใพใ™ใ€‚git diff --statใงๅค‰ๆ›ดใƒ•ใ‚กใ‚คใƒซไธ€่ฆงใ‚’็ขบ่ชใ™ใ‚‹็ฟ’ๆ…ฃใ‚’ใคใ‘ใพใ—ใ‚‡ใ†ใ€‚

ใ‚คใƒณใƒใƒผใƒˆใƒ‘ใ‚นใฎไธ€ๆ‹ฌๅค‰ๆ›ด

ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆๆง‹ๆˆใฎๅค‰ๆ›ดๆ™‚ใซๅจๅŠ›ใ‚’็™บๆฎใ—ใพใ™ใ€‚

codex exec "src/utils/ ใ‚’ src/lib/utils/ ใซ็งปๅ‹•ใ—ใฆใ€ๅ…จใƒ•ใ‚กใ‚คใƒซใฎimportใƒ‘ใ‚นใ‚’ๆ›ดๆ–ฐใ—ใฆ"

ใƒ•ใ‚กใ‚คใƒซ็งปๅ‹•ใ ใ‘ใงใชใใ€importๆ–‡ใฎๆ›ธใๆ›ใˆใ€tsconfig.jsonใฎpaths่จญๅฎšใพใงไพๅญ˜้–ขไฟ‚ใ‚’่€ƒๆ…ฎใ—ใฆไธ€ๆ‹ฌๆ›ดๆ–ฐใ—ใฆใใ‚Œใพใ™ใ€‚

CI/CDใƒ‘ใ‚คใƒ—ใƒฉใ‚คใƒณใจใฎ้€ฃๆบ

Codex CLIใฏใ‚ฟใƒผใƒŸใƒŠใƒซใงๅ‹•ใใŸใ‚ใ€CI/CDใƒ‘ใ‚คใƒ—ใƒฉใ‚คใƒณใธใฎ็ต„ใฟ่พผใฟใŒๅฎนๆ˜“ใงใ™ใ€‚GitHub Actionsใ‚„GitLab CIใง่‡ชๅ‹•ๅŒ–ใ™ใ‚‹ๅ…ทไฝ“็š„ใชๆ–นๆณ•ใ‚’่งฃ่ชฌใ—ใพใ™ใ€‚

GitHub Actionsใงใ‚ณใƒผใƒ‰ใƒฌใƒ“ใƒฅใƒผ่‡ชๅ‹•ๅŒ–

Codex CLIใ‚’GitHub Actionsใซ็ต„ใฟ่พผใ‚€ใ“ใจใงใ€PRใ”ใจใซ่‡ชๅ‹•ใ‚ณใƒผใƒ‰ใƒฌใƒ“ใƒฅใƒผใŒๅฎŸ่กŒใ•ใ‚Œใพใ™ใ€‚

# .github/workflows/codex-review.yml
name: Codex Code Review
on:
  pull_request:
    types: [opened, synchronize]

jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - uses: actions/setup-node@v4
        with:
          node-version: 22
      - run: npm install -g @openai/codex
      - name: Run Codex Review
        env:
          OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
        run: |
          DIFF=$(git diff origin/main...HEAD)
          codex exec "ไปฅไธ‹ใฎdiffใ‚’ใƒฌใƒ“ใƒฅใƒผใ—ใฆใ€ๅ•้กŒ็‚นใ‚’ใƒžใƒผใ‚ฏใƒ€ใ‚ฆใƒณใงๅ‡บๅŠ›ใ—ใฆ: $DIFF" > review.md
      - name: Post Review Comment
        uses: actions/github-script@v7
        with:
          script: |
            const fs = require('fs');
            const body = fs.readFileSync('review.md', 'utf8');
            github.rest.issues.createComment({
              issue_number: context.issue.number,
              owner: context.repo.owner,
              repo: context.repo.repo,
              body: `## ๐Ÿค– Codex CLI Auto Review\n\n${body}`
            });

ใƒ†ใ‚นใƒˆ็”Ÿๆˆใฎ่‡ชๅ‹•ๅŒ–

ๆ–ฐใ—ใ„ใƒ•ใ‚กใ‚คใƒซใŒ่ฟฝๅŠ ใ•ใ‚ŒใŸPRใซๅฏพใ—ใฆใ€ใƒ†ใ‚นใƒˆใŒไธ่ถณใ—ใฆใ„ใ‚Œใฐ่‡ชๅ‹•ใง็”Ÿๆˆใ™ใ‚‹ใƒฏใƒผใ‚ฏใƒ•ใƒญใƒผใ‚‚ๆง‹็ฏ‰ใงใใพใ™ใ€‚

- name: Generate Missing Tests
  run: |
    NEW_FILES=$(git diff --name-only origin/main...HEAD -- '*.ts' '*.tsx' | grep -v '.test.')
    for file in $NEW_FILES; do
      TEST_FILE="${file%.ts}.test.ts"
      if [ ! -f "$TEST_FILE" ]; then
        codex exec "$file ใฎใƒฆใƒ‹ใƒƒใƒˆใƒ†ใ‚นใƒˆใ‚’ $TEST_FILE ใซไฝœๆˆใ—ใฆ"
      fi
    done

CI้€ฃๆบๆ™‚ใฎๆณจๆ„็‚น

CI/CD้€ฃๆบใฎใƒ™ใ‚นใƒˆใƒ—ใƒฉใ‚ฏใƒ†ใ‚ฃใ‚น
  • APIใ‚ญใƒผใฎ็ฎก็†: GitHub Secretsใซไฟๅญ˜ใ—ใ€ใƒญใ‚ฐใซๅ‡บๅŠ›ใ•ใ‚Œใชใ„ใ‚ˆใ†ๆณจๆ„
  • ใ‚ณใ‚นใƒˆๅˆถๅพก: CIใงใฎๅฎŸ่กŒใฏAPIใ‚ณใ‚นใƒˆใŒ็™บ็”Ÿใ™ใ‚‹ใŸใ‚ใ€on: pull_requestใฎใƒˆใƒชใ‚ฌใƒผใ‚’็ตžใ‚‹
  • ใ‚ฟใ‚คใƒ ใ‚ขใ‚ฆใƒˆ่จญๅฎš: Codex CLIใฎๅฎŸ่กŒใซๆ™‚้–“ๅˆถ้™ใ‚’่จญใ‘ใ‚‹๏ผˆtimeout-minutes: 10๏ผ‰
  • ใ‚ญใƒฃใƒƒใ‚ทใƒฅ: node_modulesใ‚’ใ‚ญใƒฃใƒƒใ‚ทใƒฅใ—ใฆใ‚คใƒณใ‚นใƒˆใƒผใƒซๆ™‚้–“ใ‚’็Ÿญ็ธฎ

SES็พๅ ดใงใฎใ‚ณใƒผใƒ‰ใƒฌใƒ“ใƒฅใƒผ่‡ชๅ‹•ๅŒ–

SES็พๅ ดใงใฏใ‚ณใƒผใƒ‰ใƒฌใƒ“ใƒฅใƒผใฎๅฑžไบบๅŒ–ใŒ่ชฒ้กŒใซใชใ‚ŠใŒใกใงใ™ใ€‚Codex CLIใ‚’ๆดป็”จใ™ใ‚Œใฐใ€ไธ€ๅฎšๅ“่ณชใฎใƒฌใƒ“ใƒฅใƒผใ‚’่‡ชๅ‹•ๅŒ–ใงใใพใ™ใ€‚

ใƒฌใƒ“ใƒฅใƒผ่ฆณ็‚นใฎๆจ™ๆบ–ๅŒ–

ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆๅ›บๆœ‰ใฎใƒฌใƒ“ใƒฅใƒผ่ฆณ็‚นใ‚’codex.mdใซ่จ˜่ผ‰ใ—ใฆใŠใใ“ใจใงใ€AIใƒฌใƒ“ใƒฅใƒผใฎๅ“่ณชใŒๅฎ‰ๅฎšใ—ใพใ™ใ€‚

# codex.md - ใƒฌใƒ“ใƒฅใƒผ่ฆณ็‚น

## ใ‚ณใƒผใƒ‰ใƒฌใƒ“ใƒฅใƒผๆ™‚ใฎใƒใ‚งใƒƒใ‚ฏ้ …็›ฎ
1. ใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃ: SQLใ‚คใƒณใ‚ธใ‚งใ‚ฏใ‚ทใƒงใƒณใ€XSSใ€่ช่จผๆผใ‚Œ
2. ใƒ‘ใƒ•ใ‚ฉใƒผใƒžใƒณใ‚น: N+1ใ‚ฏใ‚จใƒชใ€ไธ่ฆใชๅ†ใƒฌใƒณใƒ€ใƒชใƒณใ‚ฐ
3. ๅฏ่ชญๆ€ง: ้–ขๆ•ฐใฎ้•ทใ•๏ผˆ50่กŒไปฅไธŠใฏๅˆ†ๅ‰ฒใ‚’ๆๆกˆ๏ผ‰
4. ใƒ†ใ‚นใƒˆ: ใ‚ซใƒใƒฌใƒƒใ‚ธไธ่ถณใฎๆŒ‡ๆ‘˜
5. ๅž‹ๅฎ‰ๅ…จๆ€ง: anyๅž‹ใฎไฝฟ็”จ็ฆๆญข

ใƒญใƒผใ‚ซใƒซใงใฎใ‚ปใƒซใƒ•ใƒฌใƒ“ใƒฅใƒผ

PRใ‚’ๅ‡บใ™ๅ‰ใซใ€ใƒญใƒผใ‚ซใƒซใงCodex CLIใซใ‚ˆใ‚‹ใ‚ปใƒซใƒ•ใƒฌใƒ“ใƒฅใƒผใ‚’ๅฎŸ่กŒใ™ใ‚‹็ฟ’ๆ…ฃใ‚’ใคใ‘ใพใ—ใ‚‡ใ†ใ€‚

# ใ‚ณใƒŸใƒƒใƒˆๅ‰ใฎใ‚ปใƒซใƒ•ใƒฌใƒ“ใƒฅใƒผ
codex exec "git diff --cached ใฎใ‚ณใƒผใƒ‰ใ‚’ใƒฌใƒ“ใƒฅใƒผใ—ใฆใ€‚ใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃใƒปใƒ‘ใƒ•ใ‚ฉใƒผใƒžใƒณใ‚นใƒปๅฏ่ชญๆ€งใฎ่ฆณ็‚นใงๅ•้กŒ็‚นใ‚’ๆŒ‡ๆ‘˜ใ—ใฆ"

ใ“ใ‚Œใซใ‚ˆใ‚Šใ€ใƒฌใƒ“ใƒฅใ‚ขใƒผใฎ่ฒ ๆ‹…ใ‚’ๆธ›ใ‚‰ใ—ใคใคใ€PRใฎๅ“่ณชใ‚’ๅบ•ไธŠใ’ใงใใพใ™ใ€‚SES็พๅ ดใงใฏใ€Œใƒฌใƒ“ใƒฅใƒผๆŒ‡ๆ‘˜ใŒๅฐ‘ใชใ„๏ผไฟก้ ผใ•ใ‚Œใ‚‹ใ€ใฎใงใ€่ฉ•ไพกใ‚ขใƒƒใƒ—ใซใ‚‚็›ด็ตใ—ใพใ™ใ€‚

ใƒใƒผใƒ ๅฑ•้–‹ใฎใ‚นใƒ†ใƒƒใƒ—

SES็พๅ ดใงใฎCodex CLIๅฐŽๅ…ฅใ‚นใƒ†ใƒƒใƒ—
  1. ๅ€‹ไบบๅˆฉ็”จใ‹ใ‚‰ๅง‹ใ‚ใ‚‹: ใพใš่‡ชๅˆ†ใฎใ‚ปใƒซใƒ•ใƒฌใƒ“ใƒฅใƒผใงๅŠนๆžœใ‚’ๅฎŸๆ„Ÿ
  2. ๆˆๆžœใ‚’ๅฏ่ฆ–ๅŒ–: ใƒฌใƒ“ใƒฅใƒผๆŒ‡ๆ‘˜ไปถๆ•ฐใฎๆŽจ็งปใ€ไฟฎๆญฃๆ™‚้–“ใฎ็Ÿญ็ธฎใ‚’ใƒ‡ใƒผใ‚ฟใง็คบใ™
  3. ใƒใƒผใƒ ใซๆๆกˆ: CI้€ฃๆบใฎใƒ‡ใƒขใ‚’่ฆ‹ใ›ใฆๅฐŽๅ…ฅใ‚’ๆๆกˆ
  4. ใƒซใƒผใƒซๆ•ดๅ‚™: codex.mdใฎใƒฌใƒ“ใƒฅใƒผ่ฆณ็‚นใ‚’ใƒใƒผใƒ ใงๅˆๆ„
  5. ๆฎต้šŽ็š„ๅฑ•้–‹: ใพใš1ใคใฎใƒชใƒใ‚ธใƒˆใƒชใง่ฉฆ้จ“้‹็”จโ†’ๅ…จไฝ“ๅฑ•้–‹

ๅฎŸ่ทตใ‚ณใƒžใƒณใƒ‰ใƒใƒผใƒˆใ‚ทใƒผใƒˆ

็พๅ ดใงใ™ใใ‚ณใƒ”ใƒšใงใใ‚‹ใ‚ณใƒžใƒณใƒ‰้›†ใงใ™ใ€‚

# ใ‚ตใƒณใƒ‰ใƒœใƒƒใ‚ฏใ‚นใงใƒชใƒ•ใ‚กใ‚ฏใ‚ฟใƒชใƒณใ‚ฐ
codex --full-auto "src/api/ ใฎ้‡่ค‡ใ‚ณใƒผใƒ‰ใ‚’ๅ…ฑ้€š้–ขๆ•ฐใซๅˆ‡ใ‚Šๅ‡บใ—ใฆ"

# ๅž‹ๅฎš็พฉใ‹ใ‚‰ๅฎŸ่ฃ…ใ‚’่‡ชๅ‹•็”Ÿๆˆ
codex exec "types/api.ts ใฎๅž‹ๅฎš็พฉใซๅŸบใฅใ„ใฆใ€APIใ‚ฏใƒฉใ‚คใ‚ขใƒณใƒˆใ‚’ src/api/client.ts ใซ็”Ÿๆˆใ—ใฆ"

# ใƒ†ใ‚นใƒˆใ‚ซใƒใƒฌใƒƒใ‚ธใ‚’ๅ‘ไธŠ
codex --full-auto "ใ‚ซใƒใƒฌใƒƒใ‚ธใŒไฝŽใ„ใƒ•ใ‚กใ‚คใƒซใ‚’็‰นๅฎšใ—ใฆใ€ใƒ†ใ‚นใƒˆใ‚’่ฟฝๅŠ ใ—ใฆ80%ไปฅไธŠใซใ—ใฆ"

# ใƒ‰ใ‚ญใƒฅใƒกใƒณใƒˆ่‡ชๅ‹•็”Ÿๆˆ
codex exec "src/ ้…ไธ‹ใฎๅ…จexportใซJSDocใ‚’่ฟฝๅŠ ใ—ใฆใ€README.mdใฎAPIไธ€่ฆงใ‚‚ๆ›ดๆ–ฐใ—ใฆ"

# ใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃใƒใ‚งใƒƒใ‚ฏ
codex exec "ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆๅ…จไฝ“ใ‚’ใ‚ปใ‚ญใƒฅใƒชใƒ†ใ‚ฃ่ฆณ็‚นใงใƒฌใƒ“ใƒฅใƒผใ—ใฆใ€‚่„†ๅผฑๆ€งใŒใ‚ใ‚Œใฐไฟฎๆญฃใ—ใฆ"

# ใƒ‘ใƒ•ใ‚ฉใƒผใƒžใƒณใ‚นๆ”นๅ–„
codex exec "src/components/ ใฎReactใ‚ณใƒณใƒใƒผใƒใƒณใƒˆใงใƒกใƒขๅŒ–ใŒไธ่ถณใ—ใฆใ„ใ‚‹็ฎ‡ๆ‰€ใ‚’็‰นๅฎšใ—ใฆไฟฎๆญฃใ—ใฆ"

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

full-autoใƒขใƒผใƒ‰ใงไบˆๆœŸใ—ใชใ„ๅค‰ๆ›ดใŒ่กŒใ‚ใ‚ŒใŸใ‚‰ใฉใ†ใ™ใ‚‹๏ผŸ
ใ‚ตใƒณใƒ‰ใƒœใƒƒใ‚ฏใ‚นๅ†…ใงใฎๅฎŸ่กŒใชใฎใงใ€ใƒ›ใ‚นใƒˆ็’ฐๅขƒใซใฏๅฝฑ้Ÿฟใ—ใพใ›ใ‚“ใ€‚ๅค‰ๆ›ดใฎๆ‰ฟ่ชๅ‰ใซgit diffใง็ขบ่ชใ—ใ€ไธ่ฆใชๅค‰ๆ›ดใŒใ‚ใ‚Œใฐๅดไธ‹ใงใใพใ™ใ€‚ใ“ใพใ‚ใซgit commitใ—ใฆใŠใ‘ใฐgit checkoutใง็ฐกๅ˜ใซๆˆปใ›ใพใ™ใ€‚
CIใงใฎๅฎŸ่กŒใ‚ณใ‚นใƒˆใฏใฉใฎใใ‚‰ใ„๏ผŸ
PRใ‚ใŸใ‚Šใฎใ‚ณใƒผใƒ‰ใƒฌใƒ“ใƒฅใƒผใง็ด„$0.05ใ€œ$0.20ใŒ็›ฎๅฎ‰ใงใ™ใ€‚ๆœˆใซ100PR็จ‹ๅบฆใฎใƒใƒผใƒ ใง$5ใ€œ$20ใ€‚ๆ‰‹ๅ‹•ใƒฌใƒ“ใƒฅใƒผใฎๅทฅๆ•ฐๅ‰Šๆธ›ๅŠนๆžœใ‚’่€ƒใˆใ‚Œใฐๅๅˆ†ใซใƒšใ‚คใ—ใพใ™ใ€‚
codex.mdใจAGENTS.mdใฎ้•ใ„ใฏ๏ผŸ
ใฉใกใ‚‰ใ‚‚Codex CLIใŒ่ชญใฟ่พผใ‚€่จญๅฎšใƒ•ใ‚กใ‚คใƒซใงใ™ใ€‚codex.mdใฏCodex CLIๅฐ‚็”จใ€AGENTS.mdใฏไป–ใฎAIใƒ„ใƒผใƒซ๏ผˆClaude Code็ญ‰๏ผ‰ใจใ‚‚ๅ…ฑๆœ‰ใงใใ‚‹ๆจ™ๆบ–็š„ใชๅๅ‰ใงใ™ใ€‚ใƒ—ใƒญใ‚ธใ‚งใ‚ฏใƒˆใฎๆ–น้‡ใซๅˆใ‚ใ›ใฆ้ธใ‚“ใงใใ ใ•ใ„ใ€‚
SES็พๅ ดใงCI้€ฃๆบใ‚’ๆๆกˆใ™ใ‚‹ใ‚ณใƒ„ใฏ๏ผŸ
ใพใšใƒญใƒผใ‚ซใƒซใงใฎใ‚ปใƒซใƒ•ใƒฌใƒ“ใƒฅใƒผใฎๆˆๆžœ๏ผˆใƒฌใƒ“ใƒฅใƒผๆŒ‡ๆ‘˜ไปถๆ•ฐใฎๅ‰Šๆธ›ใ€ไฟฎๆญฃ้€Ÿๅบฆใฎๅ‘ไธŠ๏ผ‰ใ‚’ใƒ‡ใƒผใ‚ฟใง็คบใ—ใพใ—ใ‚‡ใ†ใ€‚ๆฌกใซCI้€ฃๆบใฎใƒ‡ใƒขใ‚’ๅฐใ•ใชใƒชใƒใ‚ธใƒˆใƒชใงๅฎŸๆ–ฝใ—ใ€ๅŠนๆžœใ‚’ๅฏ่ฆ–ๅŒ–ใ—ใฆใ‹ใ‚‰ๆญฃๅผๆๆกˆใ™ใ‚‹ใฎใŒใŠใ™ใ™ใ‚ใงใ™ใ€‚

ใพใจใ‚

Codex CLIใฏๅ…ฅ้–€ใƒฌใƒ™ใƒซใฎไฝฟใ„ๆ–นใ ใ‘ใงใฏ็œŸไพกใ‚’็™บๆฎใ—ใพใ›ใ‚“ใ€‚ใ‚ตใƒณใƒ‰ใƒœใƒƒใ‚ฏใ‚นใฎ้ซ˜ๅบฆใชๆดป็”จใ€ใƒžใƒซใƒใƒ•ใ‚กใ‚คใƒซ็ทจ้›†ใ€CI/CD้€ฃๆบใ‚’็ต„ใฟๅˆใ‚ใ›ใ‚‹ใ“ใจใงใ€้–‹็™บ็”Ÿ็”ฃๆ€งใ‚’ๅคงๅน…ใซๅผ•ใไธŠใ’ใ‚‰ใ‚Œใพใ™ใ€‚

ใ“ใฎ่จ˜ไบ‹ใฎใพใจใ‚
  • --full-autoใƒขใƒผใƒ‰ใจใ‚ตใƒณใƒ‰ใƒœใƒƒใ‚ฏใ‚นใงๅฎ‰ๅ…จใ‹ใค่‡ชๅพ‹็š„ใช่‡ชๅ‹•ๅŒ–ใŒๅฏ่ƒฝ
  • ใƒžใƒซใƒใƒ•ใ‚กใ‚คใƒซ็ทจ้›†ใงๅž‹ๅค‰ๆ›ดใƒปAPIไป•ๆง˜ๅค‰ๆ›ดใ‚’ไธ€ๆ‹ฌๅ‡ฆ็†
  • GitHub ActionsใงPRใ”ใจใฎ่‡ชๅ‹•ใ‚ณใƒผใƒ‰ใƒฌใƒ“ใƒฅใƒผใ‚’ๅฎŸ็พ
  • SES็พๅ ดใงใฏใ‚ปใƒซใƒ•ใƒฌใƒ“ใƒฅใƒผโ†’ใƒใƒผใƒ ๅฑ•้–‹ใฎๆฎต้šŽ็š„ใ‚ขใƒ—ใƒญใƒผใƒใŒๆœ‰ๅŠน

AIใ‚ณใƒผใƒ‡ใ‚ฃใƒณใ‚ฐใƒ„ใƒผใƒซใ‚’ๆฏ”่ผƒๆคœ่จŽใ—ใŸใ„ๆ–นใฏใ€ŒAIใ‚ณใƒผใƒ‡ใ‚ฃใƒณใ‚ฐใƒ„ใƒผใƒซๆฏ”่ผƒ2026ใ€ใ‚‚ๅˆใ‚ใ›ใฆใ”่ฆงใใ ใ•ใ„ใ€‚Codex CLIใฎๅŸบๆœฌใ‹ใ‚‰ๅญฆใณใŸใ„ๆ–นใฏใ€ŒCodex CLIไฝฟใ„ๆ–นๅ…ฅ้–€ใ€ใ‚’ใฉใ†ใžใ€‚Claude Codeใจใฎไฝฟใ„ๅˆ†ใ‘ใŒๆฐ—ใซใชใ‚‹ๆ–นใฏใ€ŒClaude Codeไฝฟใ„ๆ–นๅ…ฅ้–€ใ€ใ‚‚ใŠใ™ใ™ใ‚ใงใ™ใ€‚

Link1 Link2 Link3

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

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

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

SES BASE ็ทจ้›†้•ท

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

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