OpenSEO maintains a tightly controlled contribution model: external code is not merged; instead, maintainers act on well-filed issues (using the /simple-issue-description skill for consistency), while changes to CI configuration, control-plane files, and agent skills trigger explicit review gates. The CI pipeline (ci:check) enforces code quality across formatting, linting, type-safety, and plugin sync before merge; deployments (deploy script) atomically run migrations then build, ensuring database state stays ahead of application code.
open-seo does not accept external pull requests for merging; the preferred contribution method is filing clear issues.[1] The /simple-issue-description agent skill formats issue reports in a consistent, succinct voice and is installed with npx skills add every-app/open-seo --skill simple-issue-description.[1][2]
Changes to .greptile/**, AGENTS.md, CLAUDE.md, .agents/skills/**, and .github/** alter the review control plane and require explicit maintainer review.[3]
The ci:check script runs prettier, knip, TypeScript checks (main and badseo tsconfigs), oxlint, plugin skill sync, and asserts that plugins/openseo/skills has no uncommitted changes — all must pass before merging.[4] The deploy script runs database migrations before building and deploying: npm run db:migrate:prod && npm run build && wrangler deploy.[4] The plugin skill sync step in ci:check ensures that agent skills defined inside plugins are reflected in the committed plugins/openseo/skills directory; any mismatch between generated and committed files causes CI to fail.
Sources