Initial import from garrytan/gstack@026751e (main snapshot via local relay)
Some checks failed
Workflow Lint / actionlint (push) Has been cancelled
Build CI Image / build (push) Has been cancelled
Skill Docs Freshness / check-freshness (push) Has been cancelled
Periodic Evals / build-image (push) Has been cancelled
Periodic Evals / evals (map[file:test/codex-e2e.test.ts name:e2e-codex]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/gemini-e2e.test.ts name:e2e-gemini]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-e2e-design.test.ts name:e2e-design]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-e2e-plan.test.ts name:e2e-plan]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-e2e-qa-bugs.test.ts name:e2e-qa-bugs]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-e2e-qa-workflow.test.ts name:e2e-qa-workflow]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-e2e-review.test.ts name:e2e-review]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-e2e-workflow.test.ts name:e2e-workflow]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-routing-e2e.test.ts name:e2e-routing]) (push) Has been cancelled
Some checks failed
Workflow Lint / actionlint (push) Has been cancelled
Build CI Image / build (push) Has been cancelled
Skill Docs Freshness / check-freshness (push) Has been cancelled
Periodic Evals / build-image (push) Has been cancelled
Periodic Evals / evals (map[file:test/codex-e2e.test.ts name:e2e-codex]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/gemini-e2e.test.ts name:e2e-gemini]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-e2e-design.test.ts name:e2e-design]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-e2e-plan.test.ts name:e2e-plan]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-e2e-qa-bugs.test.ts name:e2e-qa-bugs]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-e2e-qa-workflow.test.ts name:e2e-qa-workflow]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-e2e-review.test.ts name:e2e-review]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-e2e-workflow.test.ts name:e2e-workflow]) (push) Has been cancelled
Periodic Evals / evals (map[file:test/skill-routing-e2e.test.ts name:e2e-routing]) (push) Has been cancelled
Source: https://github.com/garrytan/gstack/commit/026751e
This commit is contained in:
48
review/specialists/data-migration.md
Normal file
48
review/specialists/data-migration.md
Normal file
@@ -0,0 +1,48 @@
|
||||
# Data Migration Specialist Review Checklist
|
||||
|
||||
Scope: When SCOPE_MIGRATIONS=true
|
||||
Output: JSON objects, one finding per line. Schema:
|
||||
{"severity":"CRITICAL|INFORMATIONAL","confidence":N,"path":"file","line":N,"category":"data-migration","summary":"...","fix":"...","fingerprint":"path:line:data-migration","specialist":"data-migration"}
|
||||
Optional: line, fix, fingerprint, evidence, test_stub.
|
||||
If no findings: output `NO FINDINGS` and nothing else.
|
||||
|
||||
---
|
||||
|
||||
## Categories
|
||||
|
||||
### Reversibility
|
||||
- Can this migration be rolled back without data loss?
|
||||
- Is there a corresponding down/rollback migration?
|
||||
- Does the rollback actually undo the change or just no-op?
|
||||
- Would rolling back break the current application code?
|
||||
|
||||
### Data Loss Risk
|
||||
- Dropping columns that still contain data (add deprecation period first)
|
||||
- Changing column types that truncate data (varchar(255) → varchar(50))
|
||||
- Removing tables without verifying no code references them
|
||||
- Renaming columns without updating all references (ORM, raw SQL, views)
|
||||
- NOT NULL constraints added to columns with existing NULL values (needs backfill first)
|
||||
|
||||
### Lock Duration
|
||||
- ALTER TABLE on large tables without CONCURRENTLY (PostgreSQL)
|
||||
- Adding indexes without CONCURRENTLY on tables with >100K rows
|
||||
- Multiple ALTER TABLE statements that could be combined into one lock acquisition
|
||||
- Schema changes that acquire exclusive locks during peak traffic hours
|
||||
|
||||
### Backfill Strategy
|
||||
- New NOT NULL columns without DEFAULT value (requires backfill before constraint)
|
||||
- New columns with computed defaults that need batch population
|
||||
- Missing backfill script or rake task for existing records
|
||||
- Backfill that updates all rows at once instead of batching (locks table)
|
||||
|
||||
### Index Creation
|
||||
- CREATE INDEX without CONCURRENTLY on production tables
|
||||
- Duplicate indexes (new index covers same columns as existing one)
|
||||
- Missing indexes on new foreign key columns
|
||||
- Partial indexes where a full index would be more useful (or vice versa)
|
||||
|
||||
### Multi-Phase Safety
|
||||
- Migrations that must be deployed in a specific order with application code
|
||||
- Schema changes that break the current running code (deploy code first, then migrate)
|
||||
- Migrations that assume a deploy boundary (old code + new schema = crash)
|
||||
- Missing feature flag to handle mixed old/new code during rolling deploy
|
||||
Reference in New Issue
Block a user