# CI Schema Invariant Gate

> CI Schema Invariant Gate is an Agent Skill for devops & security published in the Bottelet/DaybydayCRM repository on GitHub: a SKILL.md instruction file an AI agent can load to do this task.

Ensures correct execution order of migrations, seeders, and tests in CI

- Skill name: `ci-schema-invariant-gate`
- Category: [DevOps & Security](https://www.openparable.com/skill/devops-security/1)
- Source: https://github.com/Bottelet/DaybydayCRM/blob/HEAD/.claude/skills/ci-schema-invariant-gate/SKILL.md
- Repository: Bottelet/DaybydayCRM (2,321 GitHub stars when collected)

## SKILL.md

# CI Schema Gate

## Purpose

Enforces correct execution order of database setup and test execution in CI.

---

# 1. Execution Order (Strict)

CI MUST run in this order:

```bash
php artisan migrate:fresh --seed
php artisan test
```

No deviations allowed.

---

# 2. Responsibility

This skill ONLY controls:

- execution sequencing
- CI pipeline ordering
- ensuring seed runs before tests

It does NOT validate:
- schema correctness
- factory correctness
- business logic correctness

These are handled by other skills.

---

# 3. Failure Behavior

If CI fails:

- migrations failing → schema issue (handled by data-layer-contracts)
- seed failing → factory/data issue (handled by data-layer-contracts)
- tests failing → behavior issue (handled by test layer)

CI does NOT interpret or classify failures.

---

# 4. Determinism Requirement

Test execution MUST always run on a fresh database state created by:

```bash
migrate:fresh --seed
```

No cached or partial state is allowed.

---

# 5. Core Principle

CI defines execution order only.

It does not define correctness of the system.

---

Source: https://www.openparable.com/skill/devops-security/ci-schema-invariant-gate (OpenParable). Cite the canonical URL above.
