You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .github/copilot-instructions.md
+34-17Lines changed: 34 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,7 +4,6 @@ This file provides guidance to GitHub Copilot when working with code in this rep
4
4
5
5
## Important Rules
6
6
7
-
-**No Co-authored-by in commit messages** - Never add `Co-authored-by:` lines to commit messages. Keep commit messages clean without AI attribution footers.
8
7
-**Always write in English** - All output text (code comments, commit messages, PR descriptions, issue comments, documentation) must be in English, even if the user writes in another language.
9
8
10
9
## Task Suitability
@@ -85,17 +84,22 @@ Everything for one plot type lives in a single directory:
│ └── python/ # Per-library metadata (one file per library)
91
+
│ ├── matplotlib.yaml
92
+
│ ├── seaborn.yaml
93
+
│ └── ...
94
+
└── implementations/
95
+
└── python/ # Library implementations (one file per library)
96
+
├── matplotlib.py
97
+
├── seaborn.py
98
+
└── ...
97
99
```
98
100
101
+
The `python/` subdirectory is a deliberate forward-compatibility layer; non-Python implementation languages would live as siblings (e.g. `implementations/r/`) when introduced. All paths in code, prompts, and metadata refer to the language-prefixed form: `plots/{spec-id}/implementations/python/{library}.py` and `plots/{spec-id}/metadata/python/{library}.yaml`.
102
+
99
103
Example: `plots/scatter-basic/` contains everything for the basic scatter plot.
**Quality threshold cascade** (`.github/workflows/impl-review.yml`): the threshold drops by 10 each repair attempt to give partial credit for incremental improvement.
149
+
150
+
| Review # | Repair attempt | Threshold |
151
+
|----------|----------------|-----------|
152
+
| 1 (initial) | 0 | ≥ 90 |
153
+
| 2 | 1 | ≥ 80 |
154
+
| 3 | 2 | ≥ 70 |
155
+
| 4 | 3 | ≥ 60 |
156
+
| 5 | 4 | ≥ 50 |
157
+
158
+
If the score is still below 50 after 4 repair attempts, the PR is closed (`gh pr close`) and the workflow posts a comment with next-step options. Regeneration is **manual**, not automatic — re-apply the `generate:{library}` label on the spec issue to start a fresh attempt.
159
+
144
160
**Specification Lifecycle:**
145
161
```
146
162
[open] spec-request → approved → spec-ready [implementations can start]
echo "::warning::ADMIN_TOKEN secret is not set — merge will fail if main ruleset enforces required status checks. Add a fine-grained PAT with Contents:Write + Pull requests:Write + Administration:Read+Write as repo secret ADMIN_TOKEN."
0 commit comments