About spec-it
A skill that uses Matt Pocock's `to-spec` skill to publish a specification as a GitHub issue, then applies and verifies required labels. It is for repository workflows that need a published spec and preserved issue triage state.
Key features
- 01Invokes the `to-spec` skill
- 02Publishes a spec as a GitHub issue
- 03Adds only missing labels
- 04Preserves existing triage labels
- 05Verifies issue labels and URL
Use cases
- 01Publishing a specification to GitHub
- 02Adding `spec` to a published issue
- 03Setting `status/todo` when no status label exists
- 04Resuming labeling without duplicating an issue
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ goncalvesjoao/ ship-it --skill spec-itAfter installing, type/spec-itin Claude Code to confirm it loaded.
Bundled filesagents/openai.yaml
Details
From the project READMESpec it
User questions
Before asking or relaying any user question, read and follow the user question rules.
Requires Matt Pocock's to-spec skill, its prerequisites, and authenticated GitHub CLI (gh).
-
Locate and read the installed
to-specskill. Invoke it using the Skill tool when available; otherwise follow itsSKILL.md. Preserve its exploration, test-seam confirmation, spec template, and triage labels, with GitHub as the publishing destination. If a prerequisite is missing or the target repository is ambiguous, report the blocker before publishing. -
Retain the published issue URL and resolve its repository and issue number. Continue only when
to-spechas published a GitHub issue. On a resumed labeling attempt, reuse that issue instead of publishing another spec. -
Read the issue's current labels:
gh issue view <issue-number> --repo <owner/repo> --json url,labelsAdd
speconly if it is missing. Addstatus/todoonly if no current label starts withstatus/. Preserve all existing labels, including any existing status and upstream triage labels. -
For each label that needs adding, check whether it exists in the repository. Create missing repository labels with
gh label create <label> --repo <owner/repo>, preserving existing label settings. Add only the missing issue labels withgh issue edit <issue-number> --repo <owner/repo> --add-label <label>. Use explicit repository arguments and quote values safely. -
Fetch the issue labels again. Verify that
specis present and at least one label starts withstatus/. Return the issue URL and the resulting labels only after verification succeeds.
If labeling or verification fails, report the issue URL and incomplete operation. Inspect the current labels before retrying so recovery updates the existing issue without replacing its status or creating a duplicate.