You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: AI_INSTRUCTIONS.md
+32-3Lines changed: 32 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -50,16 +50,23 @@ This document establishes the foundational architectural decisions and design pa
50
50
- Use bullet points for all lists
51
51
- Group firmware by model and type (Official vs Labs)
52
52
53
-
2.**Check for Uncommitted Changes**
53
+
2.**Branch Validation** (MANDATORY FOR GIT-FLOW)
54
+
-**Real Releases**: Must be performed from `main` branch only
55
+
-**Dry Runs**: Can be performed from `develop`, `release/*`, or `hotfix/*` branches
56
+
-**Release Preparation**: Summary file must be created/updated on the preparation branch (typically `release/*`)
57
+
-**Pre-Release Validation**: Successful dry run required on preparation branch before merging to `main`
58
+
59
+
3.**Check for Uncommitted Changes**
54
60
- Ensure `scripts/release/` directory is clean (no uncommitted changes)
55
61
- Ensure `.github/workflows/` directory is clean (no uncommitted changes)
62
+
- Ensure summary file is committed and pushed to the preparation branch
56
63
- Commit and push all changes before proceeding
57
64
58
-
3.**Use Full Release Script**
65
+
4.**Use Full Release Script**
59
66
- Always use `scripts/release/full-release.zsh` for releases
60
67
- Never run individual scripts unless specifically instructed
61
68
62
-
4.**Output File Requirements** (CRITICAL)
69
+
5.**Output File Requirements** (CRITICAL)
63
70
- ALL transient output files MUST be placed in the `output/` directory
64
71
- NEVER create test files, logs, or any output in the repo root
65
72
- This includes release notes, test files, debug output, etc.
@@ -107,6 +114,14 @@ This document establishes the foundational architectural decisions and design pa
107
114
- By default, all test runs should be performed as dry runs (using `--dry-run`), unless a real release is explicitly requested.
108
115
- Do not run the bump-version, release, or monitor scripts individually unless specifically instructed.
109
116
117
+
**Git-Flow Release Process Requirements:**
118
+
-**Development Phase**: All development work happens on `develop` branch
119
+
-**Release Preparation**: Create `release/*` branch from `develop` for release preparation
120
+
-**Dry Run Validation**: Perform dry run on `release/*` branch to validate release process
121
+
-**Merge to Main**: Only merge to `main` after successful dry run validation
122
+
-**Real Release**: Perform real release only from `main` branch
123
+
-**Hotfix Process**: Use `hotfix/*` branches for urgent fixes, following same validation process
124
+
110
125
## Issue Creation Automation
111
126
112
127
- Whenever the user requests an issue to be created, always create it as a GitHub tracker issue.
@@ -118,6 +133,11 @@ This document establishes the foundational architectural decisions and design pa
118
133
## Release Testing
119
134
120
135
- Always perform test runs for releases as dry runs by default (using the dry-run option), unless a real release is explicitly requested by the user.
136
+
-**Git-Flow Testing Requirements:**
137
+
-**Development Testing**: Run tests on `develop` branch during development
138
+
-**Release Testing**: Perform dry run on `release/*` branch before merging to `main`
139
+
-**Production Testing**: Real releases only from `main` branch after successful dry run validation
140
+
-**Hotfix Testing**: Perform dry run on `hotfix/*` branch before merging to `main`
121
141
122
142
## Script Language Requirements
123
143
@@ -142,6 +162,15 @@ This document establishes the foundational architectural decisions and design pa
142
162
- If a full release (without `--dry-run`) is requested and there are changes in `scripts/release/`, first commit and push those changes, then perform a dry run. Only proceed with the real release if the dry run completes successfully.
143
163
- Whenever a release is requested (dry-run or real), always create or update a file in `docs/release` with a summary of major changes since the requested previous release. The filename must match the convention used by the release process: `docs/release/latest-major-changes-since-<BASE>.md` (where `<BASE>` is the previous version, no leading 'v'). This file must be created every time a release is requested, before the release process starts.
144
164
165
+
**Git-Flow Release Automation Requirements:**
166
+
-**Branch Validation**: Script must validate current branch before proceeding
167
+
- Real releases: Must be on `main` branch
168
+
- Dry runs: Can be on `develop`, `release/*`, or `hotfix/*` branches
169
+
-**Release Preparation**: Summary file must be created/updated on preparation branch
170
+
-**Pre-Release Validation**: Successful dry run required before real release
171
+
-**Merge Requirements**: Real releases only after successful merge to `main`
172
+
-**Hotfix Handling**: Support for urgent fixes via `hotfix/*` branches with same validation
173
+
145
174
## GitHub Issue Management
146
175
- Whenever a new GitHub issue is created, immediately run `scripts/maintenance/generate-issues-markdown.zsh` to update the local Markdown issue list.
147
176
- After generating the issue list, read the output file (`output/github_issues.md`) to ensure you are memorizing and referencing the latest issues in all future work and communication.
- If a dependency is not available via Homebrew, document the alternative installation method and rationale
399
399
- Ensure CI/CD and local environments use the same dependency installation approach for consistency
400
400
401
+
### 11. Git-Flow Release Management
402
+
403
+
**Principle:** Implement and maintain a strict git-flow branching model for all releases, ensuring proper separation between development, release preparation, and production deployment.
404
+
405
+
**Rationale:** Git-flow provides a structured approach to managing releases, hotfixes, and feature development. It ensures that production releases are always stable, that release preparation is properly validated, and that urgent fixes can be deployed without disrupting ongoing development.
406
+
407
+
**Implementation Requirements:**
408
+
-**Branch Structure**: Maintain strict adherence to git-flow branch naming and purpose
409
+
-`main`: Production-ready code only
410
+
-`develop`: Integration branch for development features
0 commit comments