Baseline and Release Policy
Status: Permanent
Applies to: All baseline freezes
Authority: ChatGPT Desktop (Architect) instructs; Developer executes
Purpose
This document defines when freeze, backup, commit, tag, and GitHub push occur in the development workflow. These actions are never automatic and always require Architecture Review approval first.
Technical freeze rules live in core/methodology/GIT_FREEZE_PROCEDURE.md. Release document structure lives in docs/planning/RELEASE_PLAN.md. This document covers operational timing and role boundaries.
Golden Rule
No Git action without Architecture Review approval.
Runtime Adapter / Native IDE does not commit, tag, or push at freeze by default. ChatGPT Desktop does not execute Git operations. The Developer executes only when the Architect explicitly instructs after freeze approval.
When ChatGPT Instructs Each Action
Freeze
When: After implementation, hardening (if any), tests, and architecture review all pass.
ChatGPT confirms:
- Phase scope complete
- Frozen platforms untouched
- Remaining risks documented
- Release doc drafted or ready to create
ChatGPT says: “Freeze approved. Proceed to release documentation, then backup, commit, tag, push.”
Does NOT mean: Git operations happen immediately — freeze approval authorizes the sequence.
Backup
When: After release document is ready, before Git commit.
ChatGPT confirms:
- Freeze review passed
- This is a major baseline (or other backup trigger per BACKUP_POLICY.md)
ChatGPT says: “Create local backup: Dental-Clinic-ROS-v3.8-Production-Hardening-Baseline.zip”
Commit
When: After backup (if instructed), with staged scope matching approved phase files only.
ChatGPT confirms:
- Release doc exists
- Backup completed (if required)
- Commit message provided
ChatGPT says: “Commit with message: Release: Production Platform v3.8 (Phase 8A freeze) with Governance Foundation (Phase 8B).”
Follow-up: If release doc had Commit: TBD, ChatGPT instructs hash update commit.
Tag
When: After successful commit, working tree clean for phase scope.
ChatGPT confirms:
- Commit hash matches release doc
- Tag name matches release doc header
ChatGPT says: “Create annotated tag: v3.8-production-platform”
GitHub Push
When: After tag verified locally.
ChatGPT confirms:
git rev-parse {tag}^{commit}matches release commit- Developer ready to publish baseline to remote
ChatGPT says: “Push branch and tags to GitHub.”
Combined Baseline Example (v3.8)
Phase 8A (Production Hardening) and Phase 8B (Governance Foundation) ship as one Git baseline:
| Item | Value |
|---|---|
| Tag | v3.8-production-platform |
| Release doc | docs/releases/v3.8-production-platform.md |
| Internal record | docs/releases/v3.8-governance-foundation.md (not independently tagged) |
| Prior baseline | v3.7-observability-platform |
Governance Foundation has no independent Git tag — it is incorporated into the production baseline.
What Is Never Automatic
| Action | Never triggered by |
|---|---|
| Freeze | Cursor completing implementation |
| Backup | Cursor test pass |
| Commit | Cursor unless Developer explicitly requests in prompt |
| Tag | Release doc creation alone |
| GitHub Push | Local tag creation alone |
Approval Gate Summary
Implementation Report
↓
Architecture Review ──▶ Rejected → rework
↓ Approved
[Hardening if required] → re-review
↓
Freeze Review ──▶ Not approved → stop
↓ Approved
Release Document
↓
Backup (if instructed)
↓
Commit (instructed)
↓
Tag (instructed)
↓
GitHub Push (instructed)
↓
Next PhaseRelease Validation Checklist (ChatGPT)
Before instructing commit:
- [ ] Canonical release doc path confirmed
- [ ] Tag name matches doc header
- [ ] Prior baseline chain documented
- [ ] Frozen platforms table complete
- [ ] Verification commands documented
- [ ] Remaining risks section present
- [ ] Next phase declared not started
Related Documents
- BACKUP_POLICY.md
- PHASE_CHECKLIST.md
- DEVELOPMENT_WORKFLOW.md
core/methodology/GIT_FREEZE_PROCEDURE.mddocs/planning/RELEASE_PLAN.md
ChatGPT Desktop (Architect) approves the sequence. Developer executes it. Runtime Adapter never owns freeze Git.