Harjoitus 08: Manuaalinen deploy-skill¶
Tavoite
Luoda manuaalisesti laukaistava deploy-skill, joka ei automaattisesti käynnistä deploya ilman käyttäjän hyväksyntää.
Taustaa¶
Tärkein turvallisuusperiaate: tuotantoon siirtyminen vaatii aina ihmisen hyväksynnän.
Claude-ohjautuva deploy (model invocation) voi olla riski, joten:
disable-model-invocation: true→ estää Clauden itsenäisen deploy-päätöksenuser-invocable: true→ käyttäjä voi kutsua/deploymanuaalisesti
Tehtävä¶
Luo .claude/skills/deploy/SKILL.md, joka:
✅ Nimi: deploy
✅ disable-model-invocation: true
✅ user-invocable: true
✅ Vastaanottaa argumenttina ympäristön (staging, production)
✅ Sallii ainoastaan Bash(git status), Bash(git diff)
Ratkaisu¶
Tiedosto: .claude/skills/deploy/SKILL.md¶
```yaml¶
name: deploy description: Deploy to staging or production with manual approval gate. argument-hint: [environment] arguments: [environment] disable-model-invocation: true user-invocable: true allowed-tools: - Bash(git status ) - Bash(git diff ) model: sonnet
Deploy-prosessi¶
- Tarkista siisti pöytäkirja (git status)
- Tarkista diff (git diff)
- Aja testit (npm test)
- Varmista että environment on validi: $ARGUMENTS[0]
- Odota käyttäjän hyväksyntää ennen todellista deployia
Warning
Tuotantoon siirtyminen vaatii aina suoraan käyttäjän vahvistuksen.
Ympäristöt¶
| Ympäristö | Käynnistys |
|---|---|
staging |
/deploy staging |
production |
/deploy production |
Lähde: Esimerkki 08 [S1], [S8]