Skip to content

Commit 3c99822

Browse files
felickzCopilot
andcommitted
Add table validation rules and Dependencies table guardrail to copilot instructions
Prevents the most common editing mistake: adding version columns to the Dependencies table or creating mismatched pipe counts that break markdown table rendering. Adds a validation section with an awk one-liner agents can run to verify table consistency. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent 679852e commit 3c99822

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

.github/instructions/GHASonGHESMatrix.instructions.md

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,29 @@ When asked to update this Advanced Security feature matrix for a new GHES versio
3535
- **EXCLUDE:** Minor bug fixes, new versions of existing langagues/framework support added (ex: Go 1.25 or Swift 6.1.2), simple renames (e.g., "Generic" -> "Experimental"), or UI tweaks without functional impact.
3636

3737
## 3. Matrix Update Rules
38-
- **New Column:** Always add a new column for the new version in *every* table, even if there are no specific changes for that table.
38+
- **New Column:** Always add a new column for the new version in *every* feature table, even if there are no specific changes for that table.
3939
- **Carry Forward:** Pull forward the feature status from the previous version. Update the status icon only if it has changed (e.g., ☑️ to ✅).
4040
- **New Rows:** Insert new rows for new features found during research. Give the feature a few word summary, always prefer to deep link it to the docs for the new feature.
4141
- **End-of-Life Versions:** When a version has passed its deprecation date, consider whether it should be archived. The document uses an archive pattern — see the "End of life Archive" section at the top of the matrix. Do not remove columns without moving them to the archive first.
42+
- **Dependencies Table:** The Dependencies table at the bottom of the document has a **different column structure** (Feature, GHAS license, Actions, Connect, Documentation, Notes). Do **NOT** add GHES version columns to it. Only modify the Dependencies table if there are actual dependency requirement changes.
4243

43-
## 4. Pull Request & Output Instructions
44+
## 4. Table Formatting Validation
45+
**CRITICAL:** After making any edits, you MUST validate that all markdown tables still render correctly. Broken tables are the most common mistake when editing this file.
46+
47+
**Validation rules:**
48+
1. Every row in a table must have the **same number of pipe (`|`) characters** as the header row of that table.
49+
2. The separator row (`|---|---|...`) must have exactly as many column separators as the header.
50+
3. The document contains **multiple independent tables** with different column counts — verify each table independently.
51+
4. Do not add or remove pipe characters from any table row without updating the entire table to match.
52+
53+
**To validate,** count the pipes in each row and confirm consistency within each table. You can run this check with:
54+
```bash
55+
awk '/^\|/ { n=gsub(/\|/,"&"); if (prev>0 && n!=prev) printf "ERROR line %d: expected %d pipes, got %d: %s\n", NR, prev, n, $0; prev=n } /^[^|]/ { prev=0 }' GHAS-on-GHES-feature-matrix.md
56+
```
57+
58+
If any table has inconsistent column counts, fix them before committing or creating a PR.
59+
60+
## 5. Pull Request & Output Instructions
4461
When generating the Pull Request description or summary of changes:
4562
- **List Omissions:** Explicitly list any advanced security / security features you saw in the release notes but decided *not* to include in the matrix. This helps the reviewer confirm if they should be added.
4663
- **Rendered Link:** Include a link to the rendered view of the Markdown file so the reviewer can easily visualize the table columns.

0 commit comments

Comments
 (0)