anyplot is a specification-driven platform where AI generates all plot implementations. As a contributor, your main focus is on specifications (what to visualize) rather than code (how to implement).
| Action | When to Use | From anyplot.ai |
|---|---|---|
| Request New Plot | Propose a new plot type | Click "suggest spec" on specs page |
| Report Plot Issue | Problem with a spec or implementation | Click "report issue" on any page |
All contributions go through GitHub Issues with AI-powered validation and processing.
By participating, you agree to our Code of Conduct.
- Create a GitHub Issue with a descriptive title (e.g., "Radar Chart with Multiple Series")
- Don't include the spec-id in the title
- Add the
spec-requestlabel - Wait for automation:
spec-create.ymlanalyzes your request- Assigns a unique spec-id
- Creates a PR with
specification.mdandspecification.yaml
- Review the generated spec (PR comments)
- The spec ends with a
## What a good version looks likesection: 3-6 one-line bullets that name what a good render of this plot type shows. Each bullet starts with its kind —A good version shows:for a property a good render shows, orExpected, not a defect:for something that can look like a flaw but is inherent to the type — and the section has at least one of each. - The AI review scores every implementation against this section, so check it before you approve: it should describe this plot type rather than generic ideals such as "no overlap", contain no numeric thresholds, and not contradict Description, Data, or Notes. See the section's role in the pipeline.
- The spec ends with a
- The repository owner adds the
approvedlabel to the Issue (not the PR); the merge job ignores the label from anyone else - Spec merges to main with
spec-readylabel
Found a problem with a plot (specification or implementation)?
- From anyplot.ai: Click "report issue ↗" on a spec page, or "report" in the footer
- From GitHub: Use the Report Plot Issue template
- Select affected libraries (or leave empty if all/unsure)
- Choose a category (optional): Visual, Data, Functional, or Other
- Describe the issue
AI validates your report and adds structured analysis. Maintainers review and approve fixes.
After a spec has the spec-ready label:
Single Library:
- Add
generate:{library}label to the issue (e.g.,generate:matplotlib)
All Libraries:
gh workflow run bulk-generate.yml -f specification_id=<spec-id> -f library=all| Don't | Why |
|---|---|
Manually create plots/ directories |
Let spec-create.yml handle it |
Write specification.md files directly |
Let AI generate from your Issue |
Include [spec-id] in issue titles |
Spec-id is auto-assigned |
Add approved label to PRs |
Add it to Issues instead |
Run gh pr merge on implementation PRs |
Let impl-merge.yml handle it |
Create metadata/*.yaml manually |
Created automatically on merge |
Manual intervention causes:
- Missing quality scores in metadata
- Missing preview images in GCS
- Issues staying open when complete
- Broken database sync
Trust the automation. It handles: code generation, quality review, repair attempts, image promotion, and database sync.
See workflows/overview.md for the complete label system.
- Check existing Issues for similar requests
- Review the workflows overview for automation details