plugins/gwt/skills/gwt-spec-ops/SKILL.md
GitHub Issue-first SPEC orchestration. Use an existing or newly created `gwt-spec` issue to stabilize `spec.md`, `plan.md`, `tasks.md`, analysis gates, and then continue into implementation without stopping at normal handoff boundaries.
npx skillsauth add akiojin/gwt gwt-spec-opsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
GitHub Issues are the single source of truth for specs. Manage every spec as an issue labeled gwt-spec.
gwt-spec-ops starts after the target SPEC issue has already been identified.
gwt-issue-resolve first.gwt-spec-register.gwt-spec issue number, or the target SPEC destination is already known, continue with this skill.gwt-spec-ops is the workflow owner. It may call focused subskills, but it should keep driving the work.
spec.md -> seed it through gwt-spec-register and continuegwt-spec-clarify, then continuegwt-spec-plan, then continuegwt-spec-tasks, then continuegwt-spec-analyze, then continuegwt-spec-implementBefore you create a new spec issue or decide where to integrate a change, use
gwt-issue-search first.
Required behavior:
gh auth status is valid before any index-issues callgwt-spec Issue only when no suitable canonical spec existsTypical cases where this preflight is mandatory:
If gwt-issue-search is unavailable or the Issue index is missing, say so and fall back to the
shortest explicit recovery action. Do not silently skip the search.
SPEC ID = the issue number. Do not use legacy UUID-style spec identifiers.
An issue with the gwt-spec label is a spec issue.
The issue body acts as an artifact index, not as the full spec itself:
<!-- GWT_SPEC_ID:#{number} -->
## Artifact Index
- `doc:spec.md`
- `doc:plan.md`
- `doc:tasks.md`
- `doc:research.md`
- `doc:data-model.md`
- `doc:quickstart.md`
- `contract:*`
- `checklist:*`
## Status
- Phase: ...
- Clarification: ...
- Analysis: ...
## Links
- Parent: ...
- Related: ...
- PRs: ...
Manage spec artifacts as issue comments. Add a marker on the first line:
<!-- GWT_SPEC_ARTIFACT:doc:plan.md -->
doc:plan.md
(content)
Contracts and checklists continue to use:
<!-- GWT_SPEC_ARTIFACT:contract:openapi.yaml -->
contract:openapi.yaml
(content)
Use the shared helper to list, read, and upsert artifact comments:
python3 "${CLAUDE_PLUGIN_ROOT}/skills/gwt-spec-ops/scripts/spec_artifact.py" \
--repo "." \
--issue "<number>" \
--list
The helper uses REST issue-comment endpoints for create/update and should be preferred over direct gh issue comment calls when artifact writes are needed.
gh issue view {number} --json body,title,labels
gh issue edit {number} --body "$(updated body)"
If gh issue edit is rate-limited, resolve the repo slug with gh repo view --json nameWithOwner -q .nameWithOwner and fall back to:
gh api "repos/<owner>/<repo>/issues/{number}" --method PATCH --input /tmp/issue-edit.json
python3 "${CLAUDE_PLUGIN_ROOT}/skills/gwt-spec-ops/scripts/spec_artifact.py" \
--repo "." \
--issue "{number}" \
--upsert \
--artifact "doc:tasks.md" \
--body-file /tmp/tasks.md
gh project item-add {project-number} --owner {owner} --url {issue-url}
gh project item-edit --project-id {project-id} --id {item-id} --field-id {field-id} --single-select-option-id {option-id}
gh issue list --label gwt-spec --state open --json number,title
gh issue list --label gwt-spec --state all --json number,title
Before Specify or Plan, determine whether an existing spec already owns the scope.
gwt-issue-search (index-issues + search-issues)## Research or ## SpecExecution-oriented spec maintenance procedure:
doc:spec.md only as much as needed to unblock planning and implementation.FR-001NFR-001 (performance, security, and so on)SC-001, with measurable completion conditions[NEEDS CLARIFICATION: ...] only when they truly block execution.When doc:spec.md still contains ambiguous points:
gwt-spec-clarify as a focused substep.[NEEDS CLARIFICATION: ...] markers with the resolved answers.doc:spec.md.Run gwt-spec-plan to write doc:plan.md and supporting artifacts:
doc:plan.mddoc:research.mddoc:data-model.mddoc:quickstart.mdcontract:*doc:plan.md must include:
Run gwt-spec-tasks to produce doc:tasks.md.
Run gwt-spec-analyze before implementation starts.
Analysis handling rules:
CLEAR: continue directly into gwt-spec-implementAUTO-FIXABLE: repair the artifact set through clarify/plan/tasks as needed, then rerun analysisNEEDS-DECISION: stop and ask the user only for the missing decisionWhen the artifact set is ready:
gwt-spec-implement.gwt-pr and gwt-pr-fix to keep PR work moving without waiting for extra permission on routine branch-sync or CI fixes.Generate quality checklists for:
Add checklists to the issue as artifact comments through the shared helper:
python3 "${CLAUDE_PLUGIN_ROOT}/skills/gwt-spec-ops/scripts/spec_artifact.py" \
--repo "." \
--issue "{number}" \
--upsert \
--artifact "checklist:requirements.md" \
--body-file /tmp/requirements.md
gh issue develop {number}
Include Fixes #{number} in the commit message or PR body to create an automatic link.
Use the Phase field to track lifecycle state:
| Phase | Meaning | |---|---| | Draft | Spec drafting in progress | | Ready | Spec complete, waiting for review | | Planned | Planning completed | | Ready for Dev | Ready to begin implementation | | In Progress | Implementation in progress | | Done | Completed | | Blocked | Blocked |
gh must be installed and authenticated.gwt-spec label created.$GWT_PROJECT_ROOT environment variable is available for explicit repo resolution.Only stop the workflow for one of these reasons:
gh auth status or required repo access is unavailabletools
Create distinctive, production-grade terminal user interfaces. Use when building TUI components with ratatui, CLI output styling, or xterm.js terminal rendering. Triggers: 'design TUI', 'terminal UI', 'TUIデザイン', 'ターミナルUI', 'ratatui widget'
testing
Semantic search over SPEC Issues (GitHub Issue cache at ~/.gwt/cache/issues/) using vector embeddings. Use when searching for existing specs, finding related specs, checking for duplicate specs, or determining which spec owns a scope. Mandatory preflight before gwt-discussion when the work may need a SPEC owner. Use when user says 'search specs', 'find related specs', 'check for duplicate specs', or asks which spec owns a scope.
testing
Mandatory preflight before gwt-discussion, gwt-register-issue, and gwt-fix-issue. Use proactively before creating any SPEC or Issue owner or before reusing an existing one. Searches SPEC Issues, GitHub Issues, and project files via ChromaDB. Triggers: 'search', 'find related', 'check duplicates'.
business
Use when the user wants to register new work from a bug report, idea, or task description and an existing GitHub Issue number is not already known.