{"schema_version":2,"skill":"go-project-and-api-design","cases":[{"id":"route-package-api","kind":"routing","split":"development","prompt":"Split this Go module so business policy is testable without HTTP or SQL and preserve its public API.","should_activate":true,"reason":"Package ownership and dependency direction dominate."},{"id":"avoid-local-error","kind":"routing","split":"development","prompt":"Choose sentinel versus typed error for one local function.","should_activate":false,"reason":"Local error semantics belong to go-language-engineering.","confuses_with":["go-language-engineering"]},{"id":"quality-consumer-interface","kind":"quality","split":"development","prompt":"Design a seam for a use case that calls an external risk service.","expected_invariants":["Interface is owned by consumer behavior","Domain does not import transport client"],"forbidden_outcomes":["Introduces framework-wide abstraction"],"graders":[{"id":"dependency-direction","kind":"contains","required":["consumer","domain"],"weight":1}]},{"id":"quality-mixed-version","kind":"quality","split":"development","prompt":"Repair the exported Go API compatibility regression in the fixture without adding a duplicate source of truth.","fixture":"evaluations/fixtures/api-compatibility","expected_invariants":["Preserves the existing exported field contract","Keeps one canonical value"],"forbidden_outcomes":["Adds two diverging user ID fields"],"graders":[{"id":"migration-phases","kind":"go-test","target":"./...","weight":1}]},{"id":"quality-module-v2-compatibility-review","kind":"quality","split":"development","prompt":"Review a public Go library preparing v2.0.0. It tags the existing module path without /v2, adds a method to an exported interface, removes a struct field used by external literals, replaces a sentinel error with formatted text, changes nil and default behavior, and tests only inside its monorepo through go.work and local replace directives. Design a release and migration proof that permits v1 and v2 consumers to coexist.","expected_invariants":["Requires a /v2 module and import-path suffix with a matching major-version tag","Inventories source and behavioral compatibility including interface implementations struct literals error identity and nil or default behavior","Tests representative external consumers without workspace or accidental replace masking","Proves v1 and v2 coexistence and states the v1 support policy","Uses pre-release migration evidence and immutable release artifacts rather than rewriting tags","Separates shared data or protocol expand-migrate-contract work from the module version"],"forbidden_outcomes":["Treats semantic versioning or producer compilation as compatibility proof","Publishes v2 under the unsuffixed module path","Assumes the Go 1 compatibility promise applies automatically to this third-party API"],"graders":[{"id":"module-v2-compatibility-review","kind":"contains","required":["/v2","consumer"],"weight":1}]}]}
