SpecWorks Factory
Welcome
The SpecWorks Factory uses AI tooling to materialize software components directly from their specifications. This is a specification-centric ecosystem where components are discovered by problem space, not programming language.
What is SpecWorks?
SpecWorks is a Factory pattern system for creating, cataloging, and distributing software components that implement publicly available specifications. Components are:
- Specification-Compliant - Implement RFCs, W3C standards, ISO specifications, and other public standards
- Multi-Language - Available in .NET, Python, Rust, and other languages
- Discoverable - Find components by problem space, not language
- Quality-Focused - Comprehensive test suites demonstrate compliance
- Open Source - MIT licensed, hosted on GitHub
Available Parts
| Part | Specification | Languages | Test Cases | Status |
|---|---|---|---|---|
| vCard | RFC 6350 - Contact Information | .NET, Python, Rust | testcases/ | ✅ Active |
| JsonDiff | RFC 6902 - JSON Patch | .NET | TestCases/ | ✅ Active |
| iCalendar | RFC 5545 - Calendar Data | .NET | testcases/ | ✅ Active |
| RateLimiter | IETF Draft - HTTP Rate Limits | .NET | testcases/ | ✅ Active |
| linkset | RFC 9264 - Web Link Sets | .NET | testcases/ | ✅ Active |
| MarkMyWord | CommonMark 0.31.2 + ECMA-376 - Markdown/Word Conversion | .NET | — | ✅ Active |
| MarkMyDeck | CommonMark 0.31.2 + ECMA-376 - Markdown/PowerPoint Conversion | .NET | testcases/ | ✅ Active |
| Message | RFC 5322 + MIME - Email Messages | .NET | testcases/ | ✅ Active |
| Sidemark | MRSF v1.0 - Markdown Review Sidecar Format | .NET | testcases/ | ✅ Active |
| OfficeTalk | OfficeTalk/1.0 - Deterministic Office Document Operations | .NET | testcases/ | ✅ Active |
| OfficeTalkEngine | OfficeTalk/1.0 - Execution Engine + CLI | .NET | testcases/ | ✅ Active |
| A2A-Ask | A2A Protocol - Agent-to-Agent Communication CLI | .NET | — | ✅ Active |
Explore the full xRegistry catalog →
Find Parts By Problem Space
- Contact/Address Book Data → vCard
- Calendar/Event Data → iCalendar
- JSON Comparison/Diff → JsonDiff
- HTTP Rate Limiting → RateLimiter
- Web Linking/Link Relations → linkset
- Document Conversion (Markdown/Word) → MarkMyWord
- Presentation Generation (Markdown/PowerPoint) → MarkMyDeck
- Email/Internet Messages → Message
- Markdown Review Comments → Sidemark
- Office Document Operations (Word/Excel/PowerPoint) → OfficeTalk + OfficeTalkEngine
- Agent-to-Agent Communication (A2A Protocol) → A2A-Ask
Quick Start
AI Agent Skills & Plugins
SpecWorks provides AI agent skills that teach coding assistants (GitHub Copilot CLI, Claude Code, VS Code Copilot, Cursor) how to use SpecWorks tools. Install from the SpecWorks Plugins Repository:
| Plugin | Type | Description | Install |
|---|---|---|---|
| a2a-ask | Skill | Interact with remote A2A protocol agents | dotnet tool install --global SpecWorks.A2A-Ask |
| markmyword | Skill | Markdown ↔ Word (.docx) conversion | dotnet tool install --global SpecWorks.MarkMyWord.CLI |
| markmydeck | Skill | Markdown → PowerPoint (.pptx) conversion | dotnet tool install --global SpecWorks.MarkMyDeck.CLI |
| officetalk | Skill | Deterministic Office document operations | dotnet tool install --global SpecWorks.OfficeTalkEngine.CLI |
| xregistry-mcp | MCP Server | xRegistry specification discovery | See README |
To install a skill into your AI coding assistant, copy the SKILL.md from the plugin folder into your skills directory:
# GitHub Copilot CLI (personal)
mkdir -p ~/.copilot/skills/<plugin-name>
cp SKILL.md ~/.copilot/skills/<plugin-name>/SKILL.md
# Claude Code (personal)
mkdir -p ~/.claude/skills/<plugin-name>
cp SKILL.md ~/.claude/skills/<plugin-name>/SKILL.md
Finding a Component
Browse the Available Parts table above, or search the xRegistry catalog to find components by specification or problem space:
- Need to parse contact information? → vCard (RFC 6350)
- Need JSON Patch operations? → JsonDiff (RFC 6902)
- Need calendar/event parsing? → iCalendar (RFC 5545)
- Need email message parsing? → Message (RFC 5322 + MIME)
- Need Markdown review comments? → Sidemark (MRSF v1.0)
Installing a Component
Each Part provides packages for standard package managers:
.NET (NuGet):
dotnet add package SpecWorks.JsonDiff
Python (PyPI):
pip install vcard
Rust (crates.io):
[dependencies]
vcard = "*"
Using a Component
Each Part includes comprehensive documentation with examples:
// Example: Using JsonDiff (.NET)
using SpecWorks.JsonDiff;
var original = JsonDocument.Parse("{\"name\":\"John\"}");
var modified = JsonDocument.Parse("{\"name\":\"Jane\"}");
var patch = JsonDiffer.Diff(original, modified);
Documentation
- Factory Specification - Complete specification for the SpecWorks Factory pattern
- Conventions - Standards and patterns used across all components
- Architecture Decision Records - Design decisions and rationale
Contributing
- Creating a New Part - Step-by-step guide to adding a new component to the factory
- Creating Your Own Factory - Build your own specification factory
Goals
- Operationalize the theory of an AI-powered software factory
- Provide a place to learn and improve AI-assisted developer tooling
- Produce high-quality software components that conform to publicly available specifications
- Demonstrate the viability of LLM-generated software components
Why SpecWorks?
Specification-Centric Discovery
Traditional package search:
"I need a JSON library for .NET"
SpecWorks approach:
"I need to implement RFC 6902 (JSON Patch)"
Find solutions by problem space and specification, not by programming language.
Multi-Language Implementations
A single Part (like vCard) can have implementations in multiple languages, all implementing the same specification. Choose the language that fits your stack.
Quality and Compliance
Every component includes:
- ✅ Comprehensive test suites (typically 20+ tests)
- ✅ Specification compliance documentation
- ✅ Real-world payload examples
- ✅ CI/CD automated testing
Open and Reproducible
The SpecWorks Factory pattern is:
- 📖 Fully documented - Complete specification available
- 🔓 Open source - All code MIT licensed
- 🔄 Reproducible - Create your own factory following the pattern
- 🤖 AI-friendly - Designed for AI-assisted development
Repository Organization
The SpecWorks organization uses a multi-repository pattern:
- Each Part has its own repository (e.g.,
github.com/spec-works/vCard) - Factory specifications and conventions in the
specificationrepository - Shared workflows and documentation in
.githubrepository
This enables:
- Parallel AI-agent operations on different Parts
- Independent version control and release cycles
- Specification-centric organization
Community
- GitHub Organization: github.com/spec-works
- Contributing: Create a new Part or improve existing ones
- Issues and Discussions: Use each Part's repository for specific issues
- Factory Specification: specification repository
License
All SpecWorks components are licensed under the MIT License.
Ready to explore? Browse the xRegistry catalog →