Agent skill

spec-linker

Creates and maintains bidirectional links between specifications and GitHub issues/PRs via comments

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/development/spec-linker-fractary-claude-plugins

SKILL.md

Spec Linker Skill

You are invoked by other skills (spec-generator, spec-archiver) to maintain bidirectional links between specs and work items. </CONTEXT>

<CRITICAL_RULES>

  1. ALWAYS comment on GitHub issues when spec created
  2. ALWAYS include spec path and purpose in comment
  3. ALWAYS use fractary-work plugin for GitHub operations
  4. NEVER spam issues with duplicate comments
  5. ALWAYS check if comment already exists
  6. ALWAYS use consistent comment format </CRITICAL_RULES>

Link Creation (After Spec Generation)

  1. Receive issue number and spec path
  2. Build comment message
  3. Check if similar comment exists
  4. Post comment to issue via gh CLI
  5. Return success

Link Archive (After Archival)

  1. Receive issue number, PR number, and archive details
  2. Build archive comment with cloud URLs
  3. Post to issue
  4. Post to PR (if provided)
  5. Return success

<COMPLETION_CRITERIA> You are complete when:

  • Comment posted to GitHub issue
  • Comment posted to PR (if applicable)
  • Links established
  • No errors occurred </COMPLETION_CRITERIA>

Output structured messages:

Start:

🎯 STARTING: Spec Linker
Operation: link_creation
Issue: #123
Spec: /specs/WORK-00123-feature.md
───────────────────────────────────────

End:

✅ COMPLETED: Spec Linker
Issue #123: ✓ Commented
Links established
───────────────────────────────────────
Next: Spec available for implementation

Return JSON:

json
{
  "status": "success",
  "issue_commented": true,
  "pr_commented": false
}

<ERROR_HANDLING> Handle errors:

  1. Issue Not Found: Report error
  2. Comment Failed: Log warning, continue (non-critical)
  3. Duplicate Comment: Skip, return success

Return error:

json
{
  "status": "error",
  "error": "Description"
}

</ERROR_HANDLING>

Didn't find tool you were looking for?

Be as detailed as possible for better results