Skip to content

feat: add github-projects skill β€” Project v2 board administration πŸ€–πŸ€–πŸ€– - #2686

Open
surapuramakhil wants to merge 1 commit into
github:mainfrom
surapuramakhil:add-github-projects-skill
Open

feat: add github-projects skill β€” Project v2 board administration πŸ€–πŸ€–πŸ€–#2686
surapuramakhil wants to merge 1 commit into
github:mainfrom
surapuramakhil:add-github-projects-skill

Conversation

@surapuramakhil

Copy link
Copy Markdown

What this adds

A skill for administering GitHub Projects (v2) boards β€” the setup/config layer that sits above item management.

skills/github-projects/
β”œβ”€β”€ SKILL.md                    # board-admin knowledge + verified API walls
└── scripts/seed-project.mjs    # idempotent release-cycle seeding reference

Why (the gap)

The existing github-issues skill's Projects V2 reference covers item operations (add/update items, find projects, set field values) but not board administration. This skill covers the rest, dogfooded end-to-end on a real org board (fields + options + two views + 13-issue seed, executed via these exact commands):

  • Evergreen-board pattern: one long-lived project per product; a release is a Release single-select option + filtered view β€” not a per-release project
  • Project creation, single-select field/option management (rename, recolor, full-replace merge semantics)
  • View creation (BOARD/TABLE/ROADMAP layouts)
  • Idempotent seeding per release cycle (bundled script resolves IDs dynamically β€” never hardcode option IDs)

Verified API walls (schema-introspected, live-tested 2026-08)

These are the things that reliably trip agents up:

Wall Detail
Input-key casing updateProjectV2Field takes fieldId; createProjectV2View takes projectId; gh project item-edit needs both --project-id and --id
Option inputs every singleSelectOption requires name + color + description; enum has no TEAL/MAGENTA
Replace semantics singleSelectOptions replaces the full list β€” merge before sending
Read-only via API view grouping/filter; board workflows (updateProjectV2Workflow doesn't exist) β€” one-time web-UI steps
CLI quirk gh project item-edit prints empty stdout on success β€” scripting pitfall

Validation

  • npm run skill:validate β†’ βœ… github-projects is valid (all 409 skills pass)
  • npm run build run; docs/README.skills.md regenerated
  • Branch cut from main (not staged) per CONTRIBUTING

… gh CLI

Covers board administration beyond item ops: project creation, the
evergreen-board pattern (releases as a Release field option + filtered
view, not per-release projects), single-select field/option management,
view creation, and idempotent release-cycle seeding with a bundled
reference script.

Documents API walls verified live against the GraphQL schema:
- camelCase input keys that differ per mutation (fieldId vs projectId)
- every singleSelectOption requires name + color + description
  (full color enum included)
- singleSelectOptions replaces the full option list β€” merge semantics
- view grouping/filter and workflow automation are UI-only (no
  updateProjectV2Workflow in schema)
- gh project item-edit needs --project-id AND --id; prints empty
  stdout on success (scripting pitfall)

Complements the github-issues skill's Projects V2 reference, which
covers item add/update but not board administration.
@github-actions github-actions Bot added new-submission PR adds at least one new contribution skills PR touches skills labels Aug 16, 2026
@github-actions

Copy link
Copy Markdown
Contributor

πŸ”’ PR Risk Scan Results

Scanned 2 changed file(s).

Severity Count
πŸ”΄ High 0
🟠 Medium 0
ℹ️ Info 1
Severity Rule File Line Match
ℹ️ skill-script-touched skills/github-projects/scripts/seed-project.mjs 1 skills/github-projects/scripts/seed-project.mjs

This is an automated soft-gate report. Findings indicate review targets and do not block merge by themselves.

@github-actions

Copy link
Copy Markdown
Contributor

πŸ” Vally Lint Results

βœ… All checks passed

Scope Checked
Skills 1
Agents 0
Total 1
Severity Count
❌ Errors 0
⚠️ Warnings 0
ℹ️ Advisories 0

Summary

Level Finding
ℹ️ βœ… github-projects (2/2 checks passed)
ℹ️ βœ“ [spec-compliance] All 1 skill(s) are spec-compliant.
ℹ️ βœ“ spec-compliance: All spec checks passed.
ℹ️ βœ“ [valid-refs] All file references across 1 skill(s) are valid.
ℹ️ βœ“ valid-refs: All file references resolve to existing files within the skill directory.
ℹ️ 1 skill(s) linted, 1 passed
Full linter output
### Linting skills/github-projects
βœ… github-projects (2/2 checks passed)
    βœ“ [spec-compliance] All 1 skill(s) are spec-compliant.
        βœ“ spec-compliance: All spec checks passed.
    βœ“ [valid-refs] All file references across 1 skill(s) are valid.
        βœ“ valid-refs: All file references resolve to existing files within the skill directory.

1 skill(s) linted, 1 passed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new-submission PR adds at least one new contribution skills PR touches skills

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant