Driven Intent Negotiation — Contract-Oriented Deterministic Executable Runtime DinCoder brings the…
Driven Intent Negotiation — Contract-Oriented Deterministic Executable Runtime
The MCP implementation of GitHub's Spec Kit methodology — transforming specifications into executable artifacts
An official Model Context Protocol server implementing GitHub's Spec-Driven Development (SDD) methodology
DinCoder brings the power of GitHub Spec Kit to any AI coding agent through the Model Context Protocol. It transforms the traditional "prompt-then-code-dump" workflow into a systematic, specification-driven process where specifications don't serve code—code serves specifications.
Available Prompts:
start_project - Initialize new spec-driven projectcreate_spec - Create feature specificationgenerate_plan - Generate implementation plancreate_tasks - Break down into actionable tasksreview_progress - Generate progress reportvalidate_spec - Check specification qualitynext_tasks - Show actionable tasksNote: These are NOT slash commands you type. They're workflow templates that your AI agent uses automatically when you describe your goals!
constitution_createclarify_add, clarify_resolve, clarify_list🎯 Quick Decision Guide:
- Using Claude Code? → Install the Plugin (easier, includes slash commands & agents)
- Using VS Code/Codex/Cursor? → Install MCP Server Only (plugins not supported)
⚠️ Don't install both! The plugin automatically installs the MCP server - installing both may cause conflicts.
To install DinCoder automatically via Smithery:
npx -y @smithery/cli install @flight505/mcp_dincoderclaude mcp add dincoder -- npx -y mcp-dincoder@latestConfigure the MCP server inside Cursor's MCP settings; once you select a project, Cursor injects the workspace path automatically.
Install globally:
npm install -g mcp-dincoder@latestRecommended clients: DinCoder expects the MCP client to bind the active project directory automatically so generated specs, plans, and tasks land in the repo you are working on. Cursor, Claude Code, and Codex do this for every request. Claude Desktop's chat UI does not, so commands default to the server's own install directory; only use Claude Desktop if you plan to pass
workspacePathmanually on each call.
Important: DinCoder creates all files in your current working directory (where you run your AI agent from).
your-project/
├── specs/ # Created automatically
│ ├── 001-feature-name/ # Feature directory (auto-numbered)
│ │ ├── constitution.md # Project principles (optional, recommended first step)
│ │ ├── spec.md # Requirements & user stories
│ │ ├── plan.md # Technical implementation plan
│ │ ├── tasks.md # Executable task list
│ │ ├── research.md # Technical decisions & research
│ │ ├── clarifications.json # Q&A tracking
│ │ └── contracts/ # API contracts, data models
│ └── 002-next-feature/
└── .dincoder/ # Backward compatibility (legacy)Tip: Launch your MCP client from the project root so every tool writes into the correct repo.
Transform ideas into production-ready code through three powerful commands:
/specify — Transform Ideas into Specifications/specify Build a team productivity platform with Kanban boards and real-time collaborationWhat happens:
[NEEDS CLARIFICATION]Output: A comprehensive PRD focusing on WHAT users need and WHY—never HOW to implement.
/plan — Map Specifications to Technical Decisions/plan Use Next.js with Prisma and PostgreSQL, WebSockets for real-time updatesWhat happens:
Output: Complete implementation plan with every decision traced to requirements.
/tasks — Generate Executable Task Lists/tasksWhat happens:
[P]Output: Numbered task list ready for systematic implementation.
1. Write PRD in document (2-3 hours)
2. Create design documents (2-3 hours)
3. Set up project structure (30 minutes)
4. Write technical specs (3-4 hours)
5. Create test plans (2 hours)# Step 1: Create specification (5 minutes)
/specify Real-time chat with message history, user presence, and typing indicators
# Automatically creates:
# - Branch "003-real-time-chat"
# - specs/003-real-time-chat/spec.md with:
# • User stories and personas
# • Acceptance criteria
# • [NEEDS CLARIFICATION] markers for ambiguities
# Step 2: Generate implementation plan (5 minutes)
/plan WebSocket for real-time, PostgreSQL for history, Redis for presence
# Generates:
# - plan.md with phased implementation
# - data-model.md (Message, User, Channel schemas)
# - contracts/websocket-events.json
# - contracts/rest-api.yaml
# - research.md with library comparisons
# Step 3: Create task list (5 minutes)
/tasks
# Produces executable tasks:
# 1. [P] Create WebSocket contract tests
# 2. [P] Create REST API contract tests
# 3. Set up PostgreSQL schema
# 4. Implement message persistence
# 5. Add Redis presence tracking
# ... (numbered, ordered, parallelizable)Result: Complete, executable specifications ready for any AI agent to implement.
</details>New in v0.4.0: DinCoder includes 7 MCP prompts that provide guided workflows for AI agents. These are NOT slash commands you type—they're workflow templates that your AI agent (Claude, Copilot, etc.) automatically discovers and uses to help you.
MCP prompts are invisible to users but powerful for AI agents:
You don't "run" these prompts directly. Just describe what you want in natural language, and your AI agent will use the appropriate prompt workflow automatically!
| Prompt Name | When AI Uses It | What It Does |
|---|---|---|
start_project | You ask to "start a new project" | Initializes .dincoder/, creates spec template |
create_spec | You describe a feature to build | Generates comprehensive specification |
generate_plan | You ask for implementation plan | Creates technical architecture from spec |
create_tasks | You ask to break down work | Generates executable task list from plan |
review_progress | You ask "how's it going?" | Shows statistics, charts, next actions |
validate_spec | You ask to check spec quality | Runs quality gates before implementation |
next_tasks | You ask "what's next?" | Shows unblocked, actionable tasks |
You say: "Let's start a new task manager project"
AI thinks: This matches the start_project prompt. Let me follow its workflow...
AI does:
specify_start tool with projectName="task-manager"specify_describe with your requirementsspec_validateYou don't see: The prompt invocation—just the AI following the workflow naturally!
<details> <summary><strong>See detailed prompt workflows (click to expand)</strong></summary>start_project - Initialize New Spec-Driven ProjectAI receives this workflow when you want to start a project:
1. Call `specify_start` with projectName and agent type
2. Explain .dincoder/ directory structure to user
3. Explain spec-driven workflow: Specify → Plan → Execute
4. Ask what they want to build
5. Guide through specification creationExample conversation:
create_spec - Create Feature SpecificationAI receives this workflow when you describe a feature:
1. Check if .dincoder/ exists (run specify_start if not)
2. Gather requirements by asking:
- What problem does this solve?
- Who are the users?
- What are success criteria?
- What's out of scope?
3. Call `specify_describe` with complete specification
4. Call `spec_validate` to check quality
5. Address validation issues with `spec_refine`
6. Confirm spec is completeExample conversation:
generate_plan - Generate Implementation PlanAI receives this workflow when planning is needed:
1. Verify spec exists (guide user to create if missing)
2. Run `spec_validate` if not already validated
3. Call `plan_create` with technical constraints
4. Call `artifacts_analyze` to verify spec-plan alignment
5. Present plan structure to user
6. Ask if ready for task generationExample conversation:
create_tasks - Break Down into Actionable TasksAI receives this workflow for task generation:
1. Verify plan exists (guide to create if missing)
2. Call `tasks_generate` with granular scope
3. Call `tasks_visualize` to show dependency graph
4. Call `tasks_stats` to show effort estimates
5. Call `tasks_filter` with preset:"next" for actionable items
6. Guide user to start first taskExample conversation:
review_progress - Generate Progress ReportAI receives this workflow for progress checks:
1. Call `tasks_stats` with charts and blockers
2. Call `tasks_filter` preset:"next" for actionable items
3. Call `tasks_search` for in-progress tasks
4. Summarize in structured format:
- Overall completion %
- Recent accomplishments
- Current work
- Next actions (unblocked)
- Blockers
- Recommendations
5. Include visual progress chartsExample conversation:
validate_spec - Check Specification QualityAI receives this workflow for validation:
1. Call `spec_validate` with all checks enabled
2. Check for:
- Completeness (all required sections)
- Acceptance criteria (testable when/then)
- Clarifications (no unresolved markers)
- Implementation leakage (no HOW in WHAT)
3. Call `clarify_list` for pending questions
4. If validation fails:
- List specific issues
- Call `spec_refine` to fix
- Re-validate
5. If passes: suggest `plan_create` nextExample conversation:
next_tasks - Show Next Actionable TasksAI receives this workflow when you ask what's next:
1. Call `tasks_filter` with preset:"next" and priority sorting
2. For each task display:
- Task ID and description
- Metadata (phase, type, priority, effort)
- Why it's actionable
3. Recommend which task to start based on:
- Priority level
- Dependencies completed
- Effort estimate
4. Offer task details on requestExample conversation:
MCP prompts work across all MCP-compatible clients:
| Client | How It Works |
|---|---|
| Claude Code | Prompts auto-discovered; AI uses them automatically when relevant |
| VS Code Copilot | Prompts available in agent mode; AI invokes based on context |
| OpenAI Codex | Prompts accessible via MCP protocol; AI uses for complex workflows |
| Cursor | MCP prompts integrated into agent workflows |
Important distinction:
/help, /clear in Claude Code.claude/commands/): Project-specific slash commands you createIn practice: You describe what you want in natural language ("Let's start a new project"), and your AI agent automatically uses the appropriate MCP prompt workflow!
New in v0.5.0: For the best Claude Code experience, install the DinCoder Plugin which bundles slash commands, specialized agents, and automatically installs the MCP server.
⚠️ Important: The plugin includes the MCP server - you don't need to install both! Choose one installation method:
- Plugin (Claude Code only) → Slash commands + agents + MCP server (all-in-one)
- MCP Server only (VS Code, Codex, etc.) → Just the tools (manual setup required)
Before installing the plugin:
Step 1: Add the DinCoder marketplace
# In Claude Code
/plugin marketplace add flight505/dincoder-pluginStep 2: Install the plugin
/plugin install dincoderStep 3: Restart Claude Code
Cmd+Q (Mac) or Alt+F4 (Windows) to quit, then reopenCmd/Ctrl+Shift+P → "Developer: Reload Window"After restart, check that:
/spec, /plan, /tasks, /progress, /validate, /next@spec-writer, @plan-architect, @task-manager✨ Slash Commands - Quick access without memorizing tool names
/spec - Create or refine specification/plan - Generate implementation plan/tasks - Break down into actionable tasks/progress - View progress report/validate - Check spec quality/next - Show next actionable tasks🤖 Specialized Agents - Expert assistance for each phase
@spec-writer - Expert at creating validated specifications@plan-architect - Expert at designing technical plans@task-manager - Expert at managing tasks and progress🔧 Automatic MCP Server - Installs and configures mcp-dincoder@latest from npm automatically
npx -y mcp-dincoder@latest on installation📝 Built-in Documentation - CLAUDE.md loads automatically with methodology guide
| Feature | Plugin (Claude Code) | MCP Server Only (VS Code/Codex) |
|---|---|---|
| Platform | Claude Code 2.0.13+ | VS Code, Codex, Cursor, etc. |
| Slash Commands | ✅ /spec, /plan, etc. | ❌ Not supported (plugins only) |
| Specialized Agents | ✅ @spec-writer, etc. | ❌ Not supported (plugins only) |
| MCP Tools | ✅ 30+ tools (auto-installed) | ✅ 30+ tools (manual install) |
| Installation | ✅ Two commands (marketplace add + install) | ⚠️ Manual .mcp.json config |
| MCP Server Updates | ✅ Auto (uses @latest) | ⚠️ Manual version bump |
Choose Your Installation Method:
⚠️ Avoid Dual Installation: If you're using the plugin, do NOT also manually configure the MCP server in your MCP settings. The plugin handles this automatically and doing both may cause conflicts.
Plugin Repository: flight505/dincoder-plugin
New in v0.6.0: Full support for VS Code with GitHub Copilot integration through MCP.
Copy template files to your project:
cp -r templates/vscode/.vscode your-project/
cp -r templates/vscode/.github your-project/Open project in VS Code:
cd your-project
code .Reload window:
Cmd+Shift+P (Mac) or Ctrl+Shift+P (Windows/Linux)Developer: Reload WindowVerify setup:
In Copilot Chat, use MCP prompts or reference tools directly:
/mcp.dincoder.start_project my-app
/mcp.dincoder.create_spec "Build a task management API"
#dincoder.tasks_stats✨ Template Files:
.vscode/mcp.json - MCP server configuration.vscode/settings.json - VS Code MCP settings.github/copilot-instructions.md - Context for GitHub Copilot📖 Comprehensive Guide: docs/integration/vscode.md
🎯 Ready-to-Use Templates: templates/vscode/
New in v0.6.0: Full support for OpenAI Codex (CLI and IDE extension) through MCP.
# Add DinCoder MCP server
codex mcp add dincoder -- npx -y mcp-dincoder@latest
# Verify
codex mcp listCopy global config:
cp templates/codex/config.toml ~/.codex/config.tomlCopy workspace instructions:
cp templates/codex/.codex your-project/Restart Codex:
# CLI: Restart terminal
# IDE: Reload windowCLI Commands:
codex "use /mcp.dincoder.start_project my-app"
codex "use /mcp.dincoder.create_spec 'Build a REST API'"IDE Extension:
@dincoder.specify_start
@dincoder.tasks_filter preset="next"✨ Template Files:
config.toml - Codex MCP server configuration (for ~/.codex/config.toml).codex/instructions.md - Workspace-specific instructions📖 Comprehensive Guide: docs/integration/codex.md
🎯 Ready-to-Use Templates: templates/codex/
This is your end-to-end guide for using DinCoder with any AI agent (Claude, Copilot, Gemini, Cursor).
// In your AI agent's chat:
"Use constitution_create to define principles for 'task-manager' with these details:
Principles:
- Prefer functional programming over OOP
- Write tests before implementation (TDD)
- Keep bundle size under 500KB
Constraints:
- Node.js >= 20.0.0 required
- Maximum 3 external dependencies for core functionality
Preferences:
- Libraries: React Query over Redux, Zod for validation
- Patterns: Repository pattern for data access"
// What happens:
// ✓ Creates specs/001-task-manager/ directory
// ✓ Generates constitution.md with structured principles
// ✓ All future specs/plans will respect these constraintsWhy use this: Constitution ensures consistency across your entire project. AI agents will reference these principles when generating specs and plans.
"Use specify_start to initialize a new project called 'task-manager' with claude agent"
// What happens:
// ✓ Creates specs/001-task-manager/ directory
// ✓ Generates spec.md template
// ✓ Creates contracts/ folder
// ✓ Initializes research.md"Use specify_describe with this description:
Build a task management system where users can:
- Create tasks with titles, descriptions, and due dates
- Organize tasks into projects
- Mark tasks as complete
- Filter by status and project
- Get daily summary emails"
// What happens:
// ✓ Updates spec.md with user stories
// ✓ Adds acceptance criteria
// ✓ Marks uncertainties with [NEEDS CLARIFICATION]
// ✓ Separates WHAT from HOWPro tip: Be specific about user needs, not implementation. Focus on what users want and why they need it.
// If you notice ambiguities while writing specs:
"Use clarify_add with this question:
'Should task due dates support time zones or just dates?'
with context 'Task scheduling requirements'"
// Later, when you have an answer:
"Use clarify_resolve for CLARIFY-001 with resolution:
'Use UTC timestamps with user timezone preference.'"
// Check all clarifications:
"Use clarify_list to see all pending clarifications""Use plan_create with these constraints:
- Next.js 14 with App Router
- PostgreSQL with Prisma ORM
- tRPC for type-safe APIs
- Tailwind CSS for styling"
// What happens:
// ✓ Creates plan.md with phased approach
// ✓ Generates data-model.md (Task, Project, User schemas)
// ✓ Updates research.md with architecture decisions
// ✓ Enforces constitutional compliance"Use tasks_generate with scope 'MVP - core task management'"
// What happens:
// ✓ Creates tasks.md with numbered, ordered tasks
// ✓ Marks parallelizable tasks with [P]
// ✓ Orders by dependency (contracts → tests → implementation)// Start with first task
"Let's implement T001 - Create Prisma schema for Task model"
// After completing a task
"Use tasks_tick with taskId 'T001'"
// See what's next
"Use artifacts_read with artifactType 'tasks'"DinCoder implements the complete Spec Kit workflow through these MCP tools:
| Tool | Purpose | Usage Example |
|---|---|---|
specify_start | Initialize project | {"projectName": "taskify", "agent": "claude"} |
specify_describe | Generate PRD | {"description": "Build a photo organizer with albums"} |
constitution_create | Define project DNA | {"principles": [...], "constraints": [...]} |
clarify_add | Track ambiguities | {"question": "Auth method?", "context": "Security"} |
clarify_resolve | Resolve uncertainties | {"clarificationId": "CLARIFY-001", "resolution": "..."} |
spec_validate | Check spec quality | {"checks": {"completeness": true, "acceptanceCriteria": true}} |
research_append | Document findings | {"content": "WebSocket benchmarks show..."} |
| Tool | Purpose | Usage Example |
|---|---|---|
plan_create | Technical planning | {"constraintsText": "Next.js, Prisma, PostgreSQL"} |
spec_refine | Update specs | {"section": "requirements", "changes": "..."} |
artifacts_analyze | Verify alignment | {"artifacts": ["spec", "plan"]} |
| Tool | Purpose | Usage Example |
|---|---|---|
tasks_generate | Create task list | {"scope": "MVP"} |
tasks_tick | Track completion | {"taskId": "T001"} |
tasks_tick_range | Bulk completion | {"taskIds": ["T001-T005"]} |
tasks_filter | Show actionable items | {"preset": "next", "limit": 5} |
tasks_search | Find tasks | {"query": "authentication", "fuzzy": true} |
tasks_visualize | Dependency graphs | {"format": "mermaid"} |
tasks_stats | Progress analytics | {"groupBy": "phase", "includeCharts": true} |
| Tool | Purpose | Usage Example |
|---|---|---|
git_create_branch | Feature isolation | {"branchName": "feature/chat-system"} |
quality_format | Code formatting | {"fix": true} |
quality_lint | Static analysis | {"fix": true} |
quality_test | Execute tests | {"coverage": true} |
quality_security_audit | Check vulnerabilities | {"fix": false} |
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/transport/streamable-http.js';
const transport = new StreamableHTTPClientTransport({
url: new URL('http://localhost:3000/mcp'),
});
const client = new Client({
name: 'my-client',
version: '1.0.0',
});
await client.connect(transport);
// Use tools
const result = await client.callTool('specify_describe', {
description: 'A task management API',
});See examples/ for complete examples:
local-client.ts - Connect to local serverspec-workflow.md - Complete spec-driven workflowTL;DR: Specifications are executable contracts that generate consistent, maintainable code. Change the spec → regenerate the implementation. No more "vibe coding."
For decades, code has been king. Specifications were scaffolding—built, used, then discarded. Spec-Driven Development inverts this power structure:
This transformation is possible because AI can understand complex specifications and implement them systematically. But raw AI generation without structure produces chaos. DinCoder provides that structure through GitHub's proven Spec Kit methodology.
Three converging trends make SDD essential:
Traditional development treats changes as disruptions. SDD transforms them into systematic regenerations. Change a requirement → update affected plans → regenerate implementation.
Read the full philosophy: Why Spec-Driven Development?
DinCoder is actively evolving! We're at v0.4.0 with 28/36 stories complete (78%).
Current Phase: Phase 3 - Advanced Task Management (In Progress)
Upcoming Features:
Vote on features and view the complete roadmap: docs/ROADMAP.md
We welcome contributions from the community! Whether you have:
Get Started:
git clone, npm install, npm run build, npm testWe appreciate all contributions, big or small!
MIT License - see LICENSE file for details.