Curate a git-managed project
The repository is the editing surface: read the evidence, change the context, prove the behavior, review the pull request, and confirm publication before closing the issue.
Before starting, the project needs a connected repository, the Cassis CLI, and access to the issue through the Review screen or MCP. For an app-managed project, use Curate in the web app.
1. Read the issue
Choose the prioritized open issue, then read every occurrence. Check the question, symptom, diagnosis, and any correction the user supplied. Use the full source evidence when the right fix is not obvious.
An ontology_gap needs a definition or relationship. missing_data usually means modeling another source table. Do not rewrite a description when the data itself is absent.
2. Change the context
Create a normal feature branch and edit the files under cassis/. Follow the generated cassis/AGENTS.md modeling guide; use the context file format for exact fields.
git switch -c context/fix-top-seller-ranking
Make the smallest change that fixes the underlying rule for every relevant question, not a special case for one prompt.
3. Prove the change
cassis context fmt
cassis context check
cassis context test -q "the question that was failing"
cassis eval run
Formatting keeps the diff readable, validation catches an invalid tree, the question probe checks the intended fix, and evals catch regressions. If the question should become a regression case, include the candidate SQL and its business assumptions for a domain owner to approve.
4. Open the pull request
The pull request should name the issue, quote the decisive evidence, explain the context change, and include the verification results. The recommended default is independent approval: an agent opens or updates the pull request and stops.
Write Resolves <issue id> in the description, one line per issue the change fixes. cassis issues show prints the exact line, Closes and Fixes work too, and the id’s first 13 characters are enough. This is what closes the loop when the pull request merges, on any branch of the connected repository.
5. Close the loop
After merge, the GitHub App or default-branch CI job publishes the context, and the mentions in the pull request description resolve the issues that started the work. Each one records that it was closed by that pull request, so the trail from issue to change survives.
Confirm the published version carries the fix:
- After a GitHub App import, use
get_project_status(itslatest_git_commit_sha) orcassis status --watchto match the published commit. - After a CLI upload, check the job, then do the same: cassis-cli 3.0.0 and newer record the uploaded commit on the published version, even when the upload changed nothing. With an older CLI, use plain
cassis status.
For an outcome that never goes through a pull request, set the status by hand with cassis issues resolve <id> or update_issue_status over MCP. Both need the editor or admin role, so an agent proposes it and a person confirms.
A status change records an outcome; it does not change the context. Resolve only once the published version contains the fix. Dismiss issues you deliberately will not act on, and leave uncertain ones open. An issue nobody closes stays in the triage queue and reads as a gap that was never fixed.
Give the task to an agent
Safe default: open the pull request and stop.
A repository owner can explicitly authorize an agent to merge, wait for publication, and resolve the issue. Enforce that authority with repository permissions, required checks, and credential scope; Cassis does not add a separate human-approval gate.