CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl-labs/good-oss-citizen

Rules and skills that teach AI agents how to contribute to open source projects without being the villain.

95

3.55x
Quality

91%

Does it follow best practices?

Impact

96%

3.55x

Average score across 20 eval scenarios

SecuritybySnyk

Advisory

Suggest reviewing before use

Overview
Quality
Evals
Security
Files

criteria.jsonevals/scenario-18/

{
  "context": "This eval tests the body / template compliance rubric's ability to derive a body-local contradiction by inference rather than literal pattern matching. The synthetic PR template has a Compatibility / Migration section with explicit Yes/No fields. The draft body fills that section as backward compatible with no migration needed, but the Summary section earlier says the old `messageBridge.rawCaption` export is removed and plugins still calling it will need to update their imports. The body never uses the word `breaking`; the agent must connect 'export removed, plugins must update imports' to the answers `Backward compatible? Yes` and `Migration needed? No` and recognize the inconsistency. The tile-prescribed result is `Slight deviation`: do not ask for sections already present and do not demand a full rewrite, but do draft a concise clarification comment asking the author which compatibility statement is correct and whether migration guidance is needed. `Matches well enough` with `No comment needed` is wrong because the inferred conflict makes a required answer unreliable.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Recognizes the Compatibility / Migration fields are present but unreliable",
      "description": "The agent notices the body includes `Backward compatible? (Yes/No) Yes`, `Config/env changes? (Yes/No) No`, `Migration needed? (Yes/No) No`, and upgrade steps. It does not incorrectly report the Compatibility / Migration section as missing, but it also does not treat those answers as safely complete once another body sentence implies a contradicting reality.",
      "max_score": 10
    },
    {
      "name": "Infers a body-local contradiction with the Compatibility answers",
      "description": "The agent recognizes that another section of the body describes a behavior change requiring downstream callers to update their code, while the Compatibility / Migration section asserts the change is backward compatible and that no migration is needed. It treats those two positions as logically incompatible. Tile-specific: the rubric tells the agent to surface body-local contradictions even when they require connecting distant sections and even when the body never uses words like `breaking` or `incompatible`. Pattern-matching on the literal phrase `breaking change` does not count — the body deliberately avoids that phrase.",
      "max_score": 16
    },
    {
      "name": "Classifies as Slight deviation, not no-comment match or significant",
      "description": "The result bucket uses the exact label `Result: Slight deviation` because the template is structurally filled but a required answer set is unreliable due to a body-local contradiction. `Matches well enough` with `No comment needed` is incorrect because the author needs to clarify the compatibility claim. `Significant deviation` is also incorrect because this is one focused clarification, not a broad template rewrite.",
      "max_score": 18
    },
    {
      "name": "Drafts a concise clarification comment",
      "description": "The suggested comment asks the PR author to clarify the conflict between the Summary's import-update note and the Compatibility / Migration answers, including whether migration or upgrade guidance is needed. It must not be `No comment needed`, and it must not leave the contradiction only as a private/manual triager note.",
      "max_score": 8
    },
    {
      "name": "Does not over-ask for already-present template content",
      "description": "The agent does not ask for Summary, Security Impact, Compatibility / Migration, Repro / Verification, User-visible changes, Environment, Human verification, or the Yes/No fields to be added, because those fields are already present in the same body. It asks only for clarification/correction of the inconsistent compatibility claim rather than requesting a full template rewrite.",
      "max_score": 8
    },
    {
      "name": "Explains why author clarification is needed",
      "description": "The output briefly explains that the body-local template content is present, but the body's Summary and Compatibility / Migration answers cannot both be correct. It makes clear the author should resolve which statement is accurate before submission. The explanation should not depend on the body using the word `breaking`.",
      "max_score": 6
    }
  ]
}

evals

README.md

tile.json