plan-release-cycle
정보
이 스킬은 개발자들이 마일스톤, 기능 동결, 품질 게이트를 포함한 체계적인 소프트웨어 릴리스 주기를 계획하도록 지원합니다. 팀 간 릴리스 조정이나 임시적 릴리스에서 정기적 주기로 전환할 때, 달력 기반 및 기능 기반 릴리스 전략을 모두 지원합니다. 주요/부차적 릴리스 계획, 최초 공개 릴리스(v1.0.0) 준비, 규제 프로젝트를 위한 품질 게이트 구현 시 활용하세요.
빠른 설치
Claude Code
추천npx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/plan-release-cycleClaude Code에서 이 명령을 복사하여 붙여넣어 스킬을 설치하세요
문서
Release-Zyklus planen
Einen strukturierten Software-Release-Zyklus planen durch Definition der Strategie (kalenderbasiert oder funktionsbasiert), Festlegung von Meilensteinen mit Zieldaten, Etablierung von Feature-Freeze-Kriterien, Verwaltung von Release Candidates, Definition von Go/No-Go-Checklisten und Dokumentation von Rollback-Plaenen. Erzeugt ein RELEASE-PLAN.md-Artefakt, das das Team von der Entwicklung bis zum Release leitet.
Wann verwenden
- Beginn der Planung fuer ein Major- oder Minor-Versions-Release
- Uebergang von Ad-hoc-Releases zu einer strukturierten Release-Kadenz
- Koordination eines Releases ueber mehrere Teams oder Komponenten
- Definition von Qualitaets-Gates und Release-Kriterien fuer ein reguliertes Projekt
- Planung des ersten oeffentlichen Releases (v1.0.0) eines Projekts
Eingaben
- Erforderlich: Ziel-Versionsnummer (z.B. v2.0.0)
- Erforderlich: Gewuenschtes Release-Datum oder Release-Fenster
- Erforderlich: Liste geplanter Funktionen oder Umfang (Backlog, Roadmap oder Beschreibung)
- Optional: Teamgroesse und Verfuegbarkeit
- Optional: Release-Strategie-Praeferenz (kalenderbasiert oder funktionsbasiert)
- Optional: Regulatorische oder Compliance-Anforderungen, die das Release beeinflussen
- Optional: Fruehere Release-Geschwindigkeit oder Zyklusdauerdaten
Vorgehensweise
Schritt 1: Release-Strategie bestimmen
Zwischen zwei primaeren Strategien waehlen:
Kalenderbasiert (zeitlich begrenzt):
- Release nach festem Zeitplan (z.B. alle 4 Wochen, quartalsweise)
- Funktionen, die nicht bereit sind, werden auf das naechste Release verschoben
- Vorhersagbar fuer Benutzer und nachgelagerte Projekte
- Am besten fuer: Bibliotheken, Frameworks, Werkzeuge mit externen Nutzern
Funktionsbasiert (umfangsgesteuert):
- Release, wenn ein definierter Satz von Funktionen vollstaendig ist
- Datum passt sich dem Umfang an
- Risiko von Umfangserweiterung und unbefristeten Verzoegerungen
- Am besten fuer: interne Werkzeuge, Erst-Releases, grosse Neuentwicklungen
Fuer die meisten Projekte funktioniert ein hybrider Ansatz gut: ein Zieldatum mit definiertem Umfang setzen, aber einen 1-2-Wochen-Puffer zulassen. Wenn der Umfang bis zur Puffer-Frist nicht erreicht ist, verbleibende Funktionen verschieben.
Die Strategiewahl mit Begruendung dokumentieren.
Erwartet: Release-Strategie mit Begruendung dokumentiert, passend zum Projektkontext.
Bei Fehler: Wenn sich das Team nicht auf eine Strategie einigen kann, standardmaessig kalenderbasiert mit einer Funktionsprioritaetsliste waehlen. Zeitliche Begrenzung erzwingt Priorisierungsentscheidungen.
Schritt 2: Meilensteine definieren
Den Release-Zyklus in Phasen mit Zieldaten unterteilen:
## Release Plan: v2.0.0
### Timeline
| Phase | Start | End | Duration | Description |
|---|---|---|---|---|
| Development | 2026-02-17 | 2026-03-14 | 4 weeks | Active feature development |
| Feature Freeze | 2026-03-15 | 2026-03-15 | 1 day | No new features merged after this date |
| Stabilization | 2026-03-15 | 2026-03-21 | 1 week | Bug fixes, documentation, testing only |
| RC1 | 2026-03-22 | 2026-03-22 | 1 day | First release candidate tagged |
| RC Testing | 2026-03-22 | 2026-03-28 | 1 week | Community/team testing of RC |
| RC2 (if needed) | 2026-03-29 | 2026-03-29 | 1 day | Second RC if critical issues found |
| Go/No-Go | 2026-03-31 | 2026-03-31 | 1 day | Final decision meeting |
| Release | 2026-04-01 | 2026-04-01 | 1 day | Tag, publish, announce |
Typische Phasendauern:
- Entwicklung: 50-70% des Gesamtzyklus
- Stabilisierung: 15-25% des Gesamtzyklus
- RC-Tests: 10-20% des Gesamtzyklus
Erwartet: Meilensteintabelle mit Daten, Dauern und Beschreibungen fuer jede Phase.
Bei Fehler: Wenn der Zeitplan zu komprimiert ist (Stabilisierung < 1 Woche), entweder das Release-Datum verlaengern oder den Umfang reduzieren. Niemals die Stabilisierung ueberspringen.
Schritt 3: Feature-Freeze-Kriterien festlegen
Definieren, was "Feature Freeze" fuer dieses Release bedeutet:
### Feature Freeze Criteria
After feature freeze (2026-03-15):
- **Allowed**: Bug fixes, test additions, documentation updates, dependency security patches
- **Not allowed**: New features, API changes, refactoring, dependency upgrades (non-security)
- **Exception process**: Feature freeze exceptions require written justification and approval from [release owner]
### Feature Priority List
| Priority | Feature | Status | Owner | Notes |
|---|---|---|---|---|
| P0 (must) | New export format | In progress | [Name] | Blocks release |
| P0 (must) | Security audit fixes | Not started | [Name] | Compliance requirement |
| P1 (should) | Performance optimization | In progress | [Name] | Defer if not ready |
| P2 (nice) | Dark mode support | Not started | [Name] | Defer to v2.1.0 if needed |
P0-Funktionen blockieren das Release. P1-Funktionen sollten eingeschlossen werden, wenn sie bereit sind. P2-Funktionen werden ohne Verzoegerung verschoben.
Erwartet: Feature-Freeze-Regeln mit Ausnahmeverfahren und priorisierter Funktionsliste dokumentiert.
Bei Fehler: Wenn P0-Funktionen Gefahr laufen, den Freeze-Termin zu verpassen, sofort eskalieren. Optionen: Entwicklungsphase verlaengern, die Funktion in eine kleinere Liefereinheit aufteilen oder auf ein Punkt-Release (v2.0.1) verschieben.
Schritt 4: Release-Candidate-Prozess planen
Definieren, wie Release Candidates erzeugt und getestet werden:
### Release Candidate Process
1. **RC1 Tag**: Tag from the stabilization branch after all P0 features merged and CI green
```bash
git tag -a v2.0.0-rc.1 -m "Release candidate 1 for v2.0.0"
-
RC Distribution: Publish RC to staging/testing channel
- R:
install.packages("pkg", repos = "https://staging.r-universe.dev/user") - Node.js:
npm install pkg@next - Internal: Deploy to staging environment
- R:
-
RC Testing Period: 5-7 business days
- Run full test suite including integration tests
- Verify all P0 features work as documented
- Test upgrade path from previous version
- Check for regressions in existing functionality
-
RC Evaluation:
- No critical/high bugs: Proceed to release
- Critical bugs found: Fix, tag RC2, restart testing period
- More than 2 RCs needed: Revisit scope and timeline
-
RC2+ Tags: Only if critical issues found in previous RC
git tag -a v2.0.0-rc.2 -m "Release candidate 2 for v2.0.0"
**Erwartet:** RC-Prozess dokumentiert mit Tagging-Konvention, Verteilungsmethode, Test-Checkliste und Eskalationskriterien.
**Bei Fehler:** Wenn der RC-Prozess uebersprungen wird (Druck zum Release), das Risiko dokumentieren. Ungetestete Releases haben eine hoehere Rollback-Wahrscheinlichkeit.
### Schritt 5: Go/No-Go-Checkliste definieren
Die Kriterien erstellen, die vor der Release-Freigabe erfuellt sein muessen:
```markdown
### Go/No-Go Checklist
#### Must Pass (release blocked if any fail)
- [ ] All CI checks passing on release branch
- [ ] Zero critical bugs open against this version
- [ ] Zero high-severity security vulnerabilities
- [ ] All P0 features verified and documented
- [ ] Changelog complete and reviewed
- [ ] Upgrade path tested from previous version (v1.x -> v2.0.0)
- [ ] License and attribution files up to date
#### Should Pass (release proceeds with documented risk)
- [ ] Zero high bugs open (non-critical)
- [ ] All P1 features included
- [ ] Performance benchmarks within acceptable range
- [ ] Documentation reviewed and spell-checked
- [ ] External dependencies at latest stable versions
#### Decision
- **Go**: All "Must Pass" items checked, majority of "Should Pass" items checked
- **No-Go**: Any "Must Pass" item unchecked
- **Conditional Go**: All "Must Pass" checked, significant "Should Pass" items unchecked — document accepted risks
Erwartet: Go/No-Go-Checkliste mit klaren Bestanden/Nicht-Bestanden-Kriterien und Entscheidungsregeln.
Bei Fehler: Wenn das Go/No-Go-Meeting zu einem No-Go fuehrt, die blockierenden Punkte identifizieren, Verantwortliche zuweisen, ein neues Zieldatum setzen (typischerweise 1-2 Wochen spaeter) und den Release-Plan aktualisieren.
Schritt 6: Rollback-Plan dokumentieren
Definieren, wie zurueckgerollt wird, wenn das Release kritische Probleme in der Produktion verursacht:
### Rollback Plan
#### Rollback Triggers
- Critical bug affecting >10% of users
- Data corruption or loss
- Security vulnerability introduced by the release
- Breaking change not documented in changelog
#### Rollback Procedure
1. **Revert package registry**: Unpublish or yank the release
- R/CRAN: Contact CRAN maintainers (cannot self-unpublish)
- npm: `npm unpublish [email protected]` (within 72 hours)
- GitHub: Mark release as pre-release, publish point fix
2. **Communicate**: Notify users via GitHub issue, mailing list, or social channels
- Template: "v2.0.0 has been rolled back due to [issue]. Please use v1.x.y until a fix is released."
3. **Fix forward**: Prefer a v2.0.1 patch release over a full rollback when possible
4. **Post-mortem**: Conduct a post-mortem within 48 hours of rollback to identify process gaps
#### Point Release Policy
- v2.0.1 for critical bug fixes within 1 week of release
- v2.0.2 for additional fixes within 2 weeks
- Patch releases do not require full RC cycle but must pass CI and critical test suite
Den vollstaendigen Release-Plan in RELEASE-PLAN.md oder RELEASE-PLAN-v2.0.0.md schreiben.
Erwartet: Rollback-Plan dokumentiert mit Ausloesern, Verfahren, Kommunikationsvorlage und Punkt-Release-Richtlinie. Vollstaendige RELEASE-PLAN.md geschrieben.
Bei Fehler: Wenn Rollback nicht machbar ist (z.B. Datenbankmigration bereits durchgefuehrt), stattdessen das Forward-Fix-Verfahren dokumentieren. Jedes Release sollte einen Wiederherstellungspfad haben.
Validierung
- Release-Strategie (kalender-/funktionsbasiert/hybrid) mit Begruendung dokumentiert
- Meilensteintabelle enthaelt alle Phasen mit Daten: Entwicklung, Freeze, Stabilisierung, RC, Release
- Feature-Freeze-Kriterien mit erlaubten/nicht erlaubten Aenderungstypen definiert
- Funktionsprioritaetsliste kategorisiert (P0 muss / P1 sollte / P2 wuenschenswert)
- RC-Prozess dokumentiert: Tagging-Konvention, Verteilung, Testzeitraum, Eskalation
- Go/No-Go-Checkliste hat klare "Muss bestehen"- und "Sollte bestehen"-Abschnitte
- Rollback-Plan enthaelt Ausloeser, Verfahren und Kommunikationsvorlage
- RELEASE-PLAN.md (oder Aequivalent) erstellt und gespeichert
- Zeitplan ist realistisch (Stabilisierung betraegt mindestens 15% des Gesamtzyklus)
Haeufige Stolperfallen
- Keine Stabilisierungsphase: Direkt von Entwicklung zum Release gehen. Selbst eine 3-taegige Stabilisierungsphase entdeckt Probleme, die aktive Entwicklung maskiert
- Umfangserweiterung nach Freeze: "Nur noch eine Funktion" nach Feature Freeze zulassen. Jede Post-Freeze-Ergaenzung setzt Tests zurueck und fuehrt zu Regressionsrisiko
- P0-Risiken ignorieren: Nicht fruehzeitig eskalieren, wenn eine P0-Funktion gefaehrdet ist. Je frueher der Umfang angepasst wird, desto weniger Stoerung fuer den Zeitplan
- RC fuer "kleine" Releases ueberspringen: Auch Minor-Releases profitieren von mindestens einem RC. Ein Tag RC-Tests ist guenstiger als ein Post-Release-Hotfix
- Kein Rollback-Plan: Annehmen, dass das Release erfolgreich sein wird. Jeder Release-Plan sollte "Was wenn das schiefgeht?" vor der Veroeffentlichung beantworten
- Kalenderdruck ueberwiegt Qualitaet: An einem Datum releasen, weil es versprochen wurde, trotz Nichtbestehens der Go/No-Go-Kriterien. Ein verspaetetes Release ist eine kleine Unannehmlichkeit; ein kaputtes Release ist ein Vertrauensbruch
Verwandte Skills
apply-semantic-versioning— Die Versionsnummer fuer das geplante Release bestimmenmanage-changelog— Das Changelog pflegen, das in die Release Notes einfliesstplan-sprint— Sprint-Planung innerhalb der Entwicklungsphase des Release-Zyklusdraft-project-charter— Projektcharta kann die Release-Roadmap und Erfolgskriterien definierengenerate-status-report— Fortschritt gegen Release-Meilensteine verfolgen
GitHub 저장소
연관 스킬
llamaguard
기타LlamaGuard는 폭력 및 혐오 발언 등 6가지 안전 범주에서 LLM 입력과 출력을 조정하기 위한 Meta의 70-80억 파라미터 모델입니다. 94-95% 정확도를 제공하며 vLLM, Hugging Face 또는 Amazon SageMaker를 사용해 배포할 수 있습니다. 이 기술을 사용하여 AI 애플리케이션에 콘텐츠 필터링 및 안전 가드레일을 손쉽게 통합하세요.
cost-optimization
기타이 Claude Skill은 리소스 적정화, 태깅 전략, 지출 분석을 통해 개발자들이 클라우드 비용을 최적화할 수 있도록 지원합니다. AWS, Azure, GCP에서 클라우드 비용을 절감하고 비용 거버넌스를 구현하기 위한 프레임워크를 제공합니다. 인프라 비용을 분석하거나, 리소스를 적정화하거나, 예산 제약을 충족해야 할 때 사용하세요.
quantizing-models-bitsandbytes
기타이 스킬은 bitsandbytes를 사용하여 LLM을 8비트 또는 4비트 정밀도로 양자화하며, 최소한의 정확도 손실로 50-75%의 메모리 감소를 달성합니다. 제한된 GPU 메모리에서 더 큰 모델을 실행하거나 추론을 가속화하는 데 이상적이며, INT8, NF4, FP4와 같은 형식을 지원합니다. 이 스킬은 HuggingFace Transformers와 통합되어 QLoRA 학습 및 8비트 옵티마이저를 가능하게 합니다.
dispatching-parallel-agents
기타이 Claude Skill은 3개 이상의 독립적인 문제를 동시에 조사하고 해결하기 위해 다중 에이전트를 배치합니다. 공유 상태나 의존성 없이 해결 가능한 무관련 장애 시나리오에 맞게 설계되었습니다. 핵심 기능은 병렬 문제 해결로, 각 독립 문제 영역마다 하나의 에이전트를 할당하여 효율성을 극대화합니다.
