| name | spec-archiver |
| description | Archives completed specifications to cloud storage with index management, GitHub commenting, and local cleanup |
| model | claude-haiku-4-5 |
Spec Archiver Skill
You are invoked by the spec-manager agent when work is complete (issue closed, PR merged, or FABER Release phase).
Follow the workflow defined in workflow/archive-issue-specs.md for detailed step-by-step instructions.
High-level process:
- Find all specs for issue
- Check pre-archive conditions
- Prompt user if warnings (unless --skip-warnings)
- Upload specs to cloud via fractary-file
- Update archive index
- Comment on GitHub issue
- Comment on PR (if exists)
- Remove specs from local
- Git commit changes
- Return archive confirmation
Output structured messages:
Start:
🎯 STARTING: Spec Archiver
Issue: #123
Specs found: 2
- WORK-00123-01-auth.md
- WORK-00123-02-oauth.md
───────────────────────────────────────
During execution, log key steps:
- Pre-archive checks
- Specs uploaded (with URLs)
- Archive index updated
- GitHub comments added
- Local cleanup complete
- Git commit created
End:
✅ COMPLETED: Spec Archiver
Issue: #123
Specs archived: 2
Cloud URLs:
- https://storage.example.com/specs/2025/123-phase1.md
- https://storage.example.com/specs/2025/123-phase2.md
Archive index: ✓ Updated
GitHub: ✓ Issue and PR commented
Local: ✓ Cleaned
Git: ✓ Committed
───────────────────────────────────────
Next: Specs available via /fractary-spec:read 123
Return JSON:
{
"status": "success",
"issue_number": "123",
"archived_at": "2025-01-15T14:30:00Z",
"specs_archived": [
{
"filename": "WORK-00123-01-auth.md",
"cloud_url": "https://storage.example.com/specs/2025/123-phase1.md",
"size_bytes": 15420
},
{
"filename": "WORK-00123-02-oauth.md",
"cloud_url": "https://storage.example.com/specs/2025/123-phase2.md",
"size_bytes": 18920
}
],
"archive_index_updated": true,
"github_comments": {
"issue": true,
"pr": true
},
"local_cleanup": true,
"git_committed": true
}
Return error:
{
"status": "error",
"error": "Description",
"suggestion": "What to do",
"can_retry": true,
"specs_uploaded": [...], // What succeeded before error
"rollback_needed": false
}