feat: add Corp v1 UAT channel skill

This commit is contained in:
2026-09-23 13:56:46 +00:00
parent d5a3ff4561
commit d556a30cb2
5 changed files with 191 additions and 0 deletions
+18
View File
@@ -0,0 +1,18 @@
# Defect and retest workflow
## Classification
- **Product defect:** deployed behavior contradicts an approved acceptance outcome or requirement.
- **Environment defect:** routing, dependency, data, identity, or infrastructure prevents valid execution.
- **Test defect:** the journey implementation or fixture is incorrect.
- **Unresolved:** evidence is insufficient; investigate without assigning blame.
## Return packet
A returned failure names the journey ID, deployment tuple, first failing step/assertion, expected and actual behavior, trace/screenshot reference, reproducibility, classification, and owning Kanban/Delivery task.
UAT does not patch the application or desired state. Delivery supplies a new application/image/GitOps identity after remediation.
## Retest
Run the failed journey, materially coupled journeys, and the required smoke set. A narrow retest may verify the correction, but the final verdict must satisfy the release's declared journey set against one frozen deployment identity.
@@ -0,0 +1,25 @@
# Deployment evidence contract
A UAT run binds to one immutable deployment tuple:
```text
application_commit
image_digests
GitOps_commit
ArgoCD_application
ArgoCD_sync_revision
cluster_environment
base_url
```
Before execution, assert that the Argo CD application is synchronized to the declared GitOps commit and healthy. Where the environment exposes a version endpoint, compare its source/image identity with the handoff.
Reject the handoff when:
- an image tag is mutable and no digest is supplied;
- Argo CD reports `OutOfSync`, `Unknown`, `Degraded`, or another non-healthy state;
- the deployed source cannot be correlated to the handoff;
- the base URL resolves to a different environment;
- a newer synchronization occurs after the run begins.
If deployment identity changes during execution, end the run as invalidated and start a new run after the new identity is frozen.
+29
View File
@@ -0,0 +1,29 @@
# Journey repository contract
The UAT repository is a standalone pnpm project. It contains no Kubernetes/Helm/Argo CD manifests and no application implementation.
Required baseline:
```text
journeys/
smoke/
regression/
fixtures/
helpers/
playwright.config.ts
package.json
pnpm-lock.yaml
Taskfile.yml
.gitea/workflows/validate.yaml
```
Rules:
- Stable journey IDs appear in test titles and evidence.
- `UAT_BASE_URL` is required; no production-looking default is embedded.
- Authentication is loaded from runtime secrets and never persisted in storage-state files committed to Git.
- Retries are explicit and low; a retry cannot turn a flaky first failure into an undisclosed pass.
- Failure evidence includes trace and screenshot; video is opt-in when data handling permits it.
- CI validates types, lint, journey discovery, and a non-network contract test. Environment execution is a separately authorized job.
- Taskfile is the human/automation entry point and delegates to package scripts.
- The repository README documents local execution, evidence locations, environment variables by name only, and failure classification.
+18
View File
@@ -0,0 +1,18 @@
# Status and reporting
Lead with the verdict and exact environment. Keep canonical Task flow, deployment state, UAT verdict, and release decision separate.
Recommended update:
```markdown
## UAT result — <VERDICT>
- Run: <run ID>
- Environment: <name and base URL>
- Deployment: app <commit>; images <digests>; GitOps <commit>; Argo CD <sync/health>
- Journeys: <passed>/<failed>/<skipped>; <browser matrix>
- Evidence: <artifact index>
- Defects/blockers: <links or none>
- Next action: <one owner and action>
```
Never say “released,” “production-ready,” or “DONE” from a UAT pass alone. Releases owns promotion and final release status.