@metasession.co/devaudit-cli 0.3.13 → 0.3.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -45,13 +45,13 @@ gh pr merge [PR-NUMBER] --merge --delete-branch=false
45
45
 
46
46
  **Do NOT delete `develop`** — it's the permanent working branch.
47
47
 
48
- ### Step 2: Sync Branches
48
+ ### Step 2: Preserve GitFlow
49
49
 
50
- ```bash
51
- git checkout main && git pull origin main
52
- git checkout develop && git pull origin develop
53
- git merge main --no-edit && git push origin develop
54
- ```
50
+ Normal release synchronization is performed by the portal-dispatched close-out
51
+ PR after the release reaches `released`; do not directly merge the release
52
+ branch into the integration branch. A real hotfix is the exception: after its
53
+ reviewed merge to the release branch, open the mandatory `backmerge/*` PR to the
54
+ integration branch and merge it only after terminal-green checks.
55
55
 
56
56
  ### Step 3: Verify Production Deployment
57
57
 
@@ -149,11 +149,11 @@ The backend stores both with reviewer identity, SHA, and timestamp. This satisfi
149
149
 
150
150
  #### Steps
151
151
 
152
- 1. Wait for `post-deploy-prod.yml` to complete (the workflow's "Advance release status" step prints `Release vYYYY.MM.DD prod_review` when done).
152
+ 1. Wait for `post-deploy-prod.yml` to complete successfully **and** for its host-deployment check to confirm terminal success for the merged SHA.
153
153
  2. Open the release in DevAudit: `https://[DEVAUDIT_BASE_URL]/projects/[PROJECT_SLUG]/releases/[releaseId]`.
154
- 3. Review the `prod-smoke-results.json` evidence (uploaded by the workflow) plus any post-deploy actions logged in the release ticket.
154
+ 3. Review the production deployment and smoke cycle records, their evidence, and any post-deploy actions logged in the release ticket. Do not approve while either cycle or the host deployment remains queued/in progress.
155
155
  4. Click **Approve Production** — status transitions to `prod_approved`.
156
- 5. Click **Mark as Released** — status transitions to `released`. Pipeline lifecycle complete in DevAudit.
156
+ 5. Click **Mark as Released** — status transitions to `released`. This dispatches the automated close-out flow.
157
157
 
158
158
  If the smoke results look wrong or a manual verification fails, click **Reject** on the production approval and follow the Rollback procedure below before retrying.
159
159
 
@@ -161,41 +161,21 @@ If the smoke results look wrong or a manual verification fails, click **Reject**
161
161
 
162
162
  `approval.mode` is checked again here. `dual_actor` means the post-deploy approver must differ from the release creator. `solo_with_gap` accepts self-approval but records the control gap. `auto_low_risk` allows LOW-risk requirements to auto-advance through both transitions on workflow completion; MEDIUM/HIGH always require a human click.
163
163
 
164
- ### Step 6: Finalize Compliance (Tracked Requirements Only)
165
-
166
- > **Automated path (preferred).** Run the synced helper instead of doing this by hand — it flips the ticket Status → `RELEASED` (+ backlinks the release PR and records the sign-off), flips the matching `RTM.md` row, and `git mv`s the ticket to `approved-releases/`, then stages the changes for you to commit:
167
- >
168
- > ```bash
169
- > ./scripts/close-out-release.sh REQ-XXX --release-pr <release-PR-#>
170
- > git add -A && git commit -m "docs(compliance): close out REQ-XXX release ticket (RELEASED)" && git push origin develop
171
- > ```
172
- >
173
- > It is **idempotent** (a no-op if already closed out) and, when `DEVAUDIT_API_KEY` + `DEVAUDIT_BASE_URL` are set, **refuses** unless the portal reports the release as `released` (so you can't flip the local tree ahead of the Production approval). The `close-out-release.yml` workflow runs the same script automatically when the portal marks a release released (and is `workflow_dispatch`-able for catch-up). The manual steps below are the fallback / reference for what the script does.
174
-
175
- ```bash
176
- mv compliance/pending-releases/RELEASE-TICKET-REQ-XXX.md compliance/approved-releases/
177
- ```
164
+ ### Step 6: Automated Close-out (Tracked Requirements Only)
178
165
 
179
- Update `compliance/RTM.md`:
180
- ```markdown
181
- | REQ-XXX | Description | [RISK] | files | evidence | APPROVED - DEPLOYED | [Reviewer] | [Date] |
182
- ```
166
+ When the portal status becomes `released`, it dispatches `release-closed` to the
167
+ consumer repository. `close-out-release.yml` then opens a
168
+ `chore/close-out-REQ-XXX` PR to the configured integration branch. That PR is
169
+ the canonical reconciliation record: it updates the RTM, moves the release
170
+ ticket to `approved-releases/`, and moves manifest-listed absorbed predecessors
171
+ to `superseded-releases/`.
183
172
 
184
- Add audit trail to release ticket:
185
- ```markdown
186
- | [date] | UAT verification passed | [who] | Health + smoke + feature verified on UAT |
187
- | [date] | PR approved | [reviewer] | PR #[number] |
188
- | [date] | CI verification | GitHub Actions | All gates passed independently |
189
- | [date] | Deployed to production | System | Auto-deploy from main |
190
- | [date] | PROD post-deploy verification | [who] | Health + security checks passed on PROD |
191
- ```
192
-
193
- ```bash
194
- git add compliance/RTM.md compliance/approved-releases/ compliance/evidence/REQ-XXX/
195
- git rm compliance/pending-releases/RELEASE-TICKET-REQ-XXX.md 2>/dev/null
196
- git commit -m "compliance: [REQ-XXX] approved and deployed - PR #[number]"
197
- git push origin develop
198
- ```
173
+ Review and merge the close-out PR after its required checks are terminal green
174
+ on its current head SHA. It is an administrative reconciliation PR, not a new
175
+ production release. If the dispatch did not arrive, manually dispatch the
176
+ Release Close-out workflow. Run `scripts/close-out-release.sh` locally only for
177
+ documented recovery or historical catch-up; never create a normal direct
178
+ close-out commit on a protected branch.
199
179
 
200
180
  ### Step 7: Close the GitHub Issue
201
181
 
@@ -207,17 +187,10 @@ gh issue close [ISSUE-NUMBER] --comment "Implemented in PR #[PR-NUMBER] (REQ-XXX
207
187
 
208
188
  This is the final traceability link: Issue → Requirement → PR → Deployment → Issue closed.
209
189
 
210
- ### Step 8: Final Sync
211
-
212
- ```bash
213
- git checkout main && git merge develop --no-edit && git push origin main
214
- git checkout develop
215
- ```
216
-
217
190
  ## Rollback
218
191
 
219
192
  1. **Hosting dashboard:** Redeploy previous version
220
- 2. **Git:** `git checkout main && git revert HEAD --no-edit && git push origin main`
193
+ 2. **Git:** create `hotfix/revert-REQ-XXX` from the release branch, revert the merge, and open a reviewed PR to the release branch. After terminal-green checks and merge, open the mandatory backmerge PR to integration.
221
194
  3. **Document:** Add rollback entry to release ticket audit trail
222
195
  4. **Correlate with incident (DevAudit-Installer#210 §10a):** If the rollback was triggered by a post-deploy smoke failure, the `post-deploy-prod.yml` workflow files an incident issue with the `incident` label. Reference this incident in the rollback commit message (`Fixes #N` or a comment on the issue) so the incident report captures the containment action. This ensures `incident-export.yml` exports the full incident timeline including the rollback.
223
196