Skip to main content
Glama
CHANGELOG.md•48.7 kB
# Changelog All notable changes to the DinCoder MCP Server project will be documented in this file. ## [0.7.0] - 2025-10-17 ### Added - Project Templates (Strategy E) šŸ“¦ **Milestone:** Pre-configured templates for common project types to accelerate onboarding! #### Story 37: Project Templates āœ… **Goal:** Create starter templates that embed best practices for different project archetypes. **4 Project Type Templates Created:** ##### 1. Web Application Template (`templates/projects/web-app/`) - **Pre-configured constitution.md** (~200 lines) - React 18+, TypeScript, Tailwind CSS stack - Component-based architecture patterns - Performance targets (FCP < 1.5s, LCP < 2.5s) - Bundle size constraints (< 500KB gzipped) - **Example spec-example.md** - Complete specification template showing proper structure - Goals, acceptance criteria, edge cases, research sections - User stories with when/then patterns - Non-functional requirements - **README.md** - Quick start and customization guide - **Best For:** SaaS apps, admin dashboards, e-commerce sites ##### 2. API Service Template (`templates/projects/api-service/`) - **Pre-configured constitution.md** - Node.js (Express/Fastify) or Python (FastAPI) stacks - OpenAPI-first design approach - Clean Architecture patterns - Performance targets (p95 < 200ms, 1000 req/s) - **README.md** - Quick start for REST/GraphQL services - **Best For:** Backend APIs, microservices, integration platforms ##### 3. Mobile Application Template (`templates/projects/mobile-app/`) - **Pre-configured constitution.md** - React Native 0.72+ or Flutter 3.10+ stacks - Offline-first functionality patterns - Platform considerations (iOS 14+, Android 8.0+) - Performance targets (< 2s launch, 60 FPS) - **README.md** - Cross-platform mobile development guide - **Best For:** Consumer apps, B2B mobile, e-commerce apps ##### 4. CLI Tool Template (`templates/projects/cli-tool/`) - **Pre-configured constitution.md** - Multi-language support (Node.js, Python, Go, Rust) - POSIX-compliant conventions - Startup time target (< 100ms) - Cross-platform compatibility (Windows, macOS, Linux) - **README.md** - Command-line tool development guide - **Best For:** Developer tools, build systems, automation scripts #### Master Template Guide (`templates/projects/README.md`) - **Comprehensive documentation** (~250 lines) - Template overview and comparison - Quick start instructions for each template type - Customization guide with examples - Usage workflow with DinCoder MCP tools - Template features and best practices ### Changed **Integration Strategy Progress:** - Strategy A (MCP Prompts): āœ… Complete (v0.4.0) - Strategy B (Claude Code Plugin): āœ… Complete (v0.5.0) - Strategy C+D (VS Code/Codex): āœ… Complete (v0.6.0) - **Strategy E (Templates): āœ… Complete (v0.7.0)** **File Structure:** ``` templates/projects/ ā”œā”€ā”€ README.md # Master guide (250+ lines) ā”œā”€ā”€ web-app/ │ ā”œā”€ā”€ constitution.md # Web app best practices (~200 lines) │ ā”œā”€ā”€ spec-example.md # Complete example spec │ └── README.md # Quick start guide ā”œā”€ā”€ api-service/ │ ā”œā”€ā”€ constitution.md # API service best practices │ └── README.md # Quick start guide ā”œā”€ā”€ mobile-app/ │ ā”œā”€ā”€ constitution.md # Mobile app best practices │ └── README.md # Quick start guide └── cli-tool/ ā”œā”€ā”€ constitution.md # CLI tool best practices └── README.md # Quick start guide ``` ### Technical Details - **Template Files:** 10 files (1 master README + 9 template files) - **Total Lines:** 1,160+ lines of template content - **Git Commit:** 2fb35ca (feat(templates): add 4 project type templates) - **Build:** Clean āœ… - **Lint:** 0 errors, 52 warnings āœ… - **Tests:** 52 passing (100% pass rate) āœ… ### Impact **Faster Onboarding:** - New projects start with pre-configured best practices - No need to research tech stack choices - Constitution tool can use templates as baseline **Quality Baselines:** - Performance targets built-in for each project type - Security and accessibility standards included - Testing strategies pre-defined **DinCoder Integration:** - Templates work seamlessly with `constitution_create` tool - Can be copied and customized for specific project needs - Technology stack recommendations guide library choices ### Usage Example **Quick Start with Template:** ```bash # Copy template to your project cp -r templates/projects/web-app/.dincoder/ your-project/ # Customize constitution for your needs # Then use DinCoder to create specs # In MCP client (Claude Code, VS Code, etc.) Use specify_describe to create feature spec Use plan_create to generate implementation plan Use tasks_generate to break down into tasks ``` **Customization Workflow:** 1. Choose template matching project type 2. Copy constitution.md and README.md to project 3. Adjust principles, constraints, and preferences 4. Use DinCoder MCP tools to generate specs/plans/tasks ### Next Steps **Phase 3 Status:** 4/5 stories complete (80%) - āœ… Story 34: MCP Prompts (v0.4.0) - āœ… Story 35: Claude Code Plugin (v0.5.0) - āœ… Story 36: VS Code & Codex Integration (v0.6.0) - āœ… Story 37: Project Templates (v0.7.0) - šŸ“‹ Story 38: Integration Testing & Documentation (next) **Recommended Next:** - Complete Story 38 (Integration Testing) - Begin Phase 4 (Advanced Features: contracts, metrics, lint) ### Story 37 Status āœ… **COMPLETE** - All deliverables achieved: - āœ… 4 project templates created (web-app, api-service, mobile-app, cli-tool) - āœ… Each includes pre-configured constitution with best practices - āœ… Comprehensive documentation (master README + individual guides) - āœ… Example specifications showing proper structure - āœ… Technology stack recommendations for each type - āœ… Complete integration with DinCoder constitution tool - āœ… 1,160+ lines of template content committed --- ## [0.5.0] - 2025-10-17 ### Added - Claude Code Plugin (Strategy B) šŸ”Œ **Milestone:** Premium bundled experience for Claude Code users! #### Claude Code Plugin Repository Created āœ… - **New Repository:** `dincoder-plugin` (sibling to main repo) - **Installation:** `/plugin install dincoder/claude-plugin` - **One-command setup** - Everything bundled and auto-configured #### Plugin Components **Slash Commands** (6 total): - `/spec` - Create or refine specification - `/plan` - Generate implementation plan - `/tasks` - Break down into actionable tasks - `/progress` - View progress report with analytics - `/validate` - Check specification quality - `/next` - Show next actionable tasks **Specialized Agents** (3 total): - `@spec-writer` - Expert at creating validated specifications - Guides through discovery, drafting, validation, refinement phases - Uses tools: `specify_start`, `specify_describe`, `spec_validate`, `spec_refine`, `clarify_add/resolve` - `@plan-architect` - Expert at designing technical implementation plans - Handles technical discovery, plan creation, validation, decision documentation - Uses tools: `plan_create`, `artifacts_analyze`, `research_append` - `@task-manager` - Expert at managing tasks, tracking progress, optimizing workflow - Capabilities: task generation, progress tracking, filtering, search, dependency management, batch operations - Uses tools: `tasks_generate`, `tasks_visualize`, `tasks_filter`, `tasks_search`, `tasks_stats`, `tasks_tick/tick_range` **MCP Server Integration**: - `.mcp.json` configures `mcp-dincoder@latest` automatically - No manual MCP setup required - Version-locked for stability **Documentation**: - `CLAUDE.md` - Comprehensive methodology guide (auto-loaded in Claude Code) - `README.md` - User-facing installation and usage guide - Workflow examples and best practices - Quality gates and tips #### Plugin Structure ``` dincoder-plugin/ ā”œā”€ā”€ .claude-plugin/ │ └── plugin.json # Plugin manifest (v0.5.0) ā”œā”€ā”€ commands/ │ ā”œā”€ā”€ spec.md │ ā”œā”€ā”€ plan.md │ ā”œā”€ā”€ tasks.md │ ā”œā”€ā”€ progress.md │ ā”œā”€ā”€ validate.md │ └── next.md ā”œā”€ā”€ agents/ │ ā”œā”€ā”€ spec-writer.md │ ā”œā”€ā”€ plan-architect.md │ └── task-manager.md ā”œā”€ā”€ .mcp.json # MCP server configuration ā”œā”€ā”€ CLAUDE.md # Plugin documentation ā”œā”€ā”€ README.md # Installation guide ā”œā”€ā”€ LICENSE # MIT license └── .gitignore ``` #### Plugin vs MCP Server Only | Feature | Plugin | MCP Server Only | |---------|--------|-----------------| | **Slash Commands** | āœ… `/spec`, `/plan`, etc. | āŒ Use tool names directly | | **Specialized Agents** | āœ… `@spec-writer`, etc. | āŒ Not available | | **Documentation** | āœ… Auto-loaded CLAUDE.md | āŒ Manual reference | | **Installation** | āœ… One command | āš ļø Manual MCP config | | **Updates** | āœ… Version-locked | āš ļø Manual upgrade | ### Changed **Main Repository Updates**: - **README.md:** Added "Claude Code Plugin (Premium Experience)" section after MCP Prompts - **Version:** Bumped to 0.5.0 in package.json - **Documentation:** Highlighted plugin as recommended experience for Claude Code users **Integration Strategy**: - Strategy A (MCP Prompts): āœ… Complete (v0.4.0) - Strategy B (Claude Code Plugin): āœ… Complete (v0.5.0) - Strategy C+D (VS Code/Codex): šŸ“‹ Next - Strategy E (Templates): šŸ“‹ Planned ### Technical Details - **Plugin Files:** 15 files (plugin.json, 6 commands, 3 agents, 5 supporting files) - **Total Lines:** 1,296 lines of documentation and workflow guidance - **Git Repository:** Initialized with initial commit - **License:** MIT - **Compatible With:** Claude Code 2.0.13+ ### Impact - **Best Experience:** Plugin provides the most streamlined Claude Code workflow - **Discoverability:** Slash commands visible in command palette - **Expert Guidance:** Agents provide phase-specific expertise - **Automatic Updates:** Plugin version locks MCP server version - **Team Sharing:** Plugin can be distributed via marketplaces ### Next Steps **Plugin Repository Tasks**: 1. Create GitHub repository `dincoder/claude-plugin` 2. Push initial commit 3. Test plugin installation locally 4. Publish to Claude Code marketplace 5. Update main repo README with marketplace link **Documentation Tasks**: 1. Add plugin section to main README āœ… 2. Update CHANGELOG with v0.5.0 āœ… 3. Update plan.md to mark Story 35 complete 4. Commit and tag v0.5.0 **Recommended for Users**: - Claude Code users: Install the plugin for best experience - VS Code/Codex users: Use MCP server directly (for now) - Universal access: MCP prompts work everywhere ### Story 35 Status āœ… **COMPLETE** - All deliverables achieved: - āœ… Created dincoder-plugin repository structure - āœ… Implemented 6 slash commands - āœ… Created 3 specialized agents - āœ… Added MCP server configuration - āœ… Wrote comprehensive documentation - āœ… Initialized git repository - āœ… Ready for GitHub publication --- ## [0.4.2] - 2025-10-17 ### Fixed - Documentation Corrections for MCP Prompts šŸ“š **Critical Documentation Issue:** Previous documentation incorrectly described MCP prompts as user-typed slash commands. #### README.md Corrections - **Fixed:** "MCP Prompts (Slash Commands)" section completely rewritten - **Changed Title:** "MCP Prompts (Slash Commands)" → "MCP Prompts (AI Workflow Orchestration)" - **Corrected Misconception:** - āŒ **Before:** "Type `@mcp__dincoder__start_project` to invoke prompts" - āœ… **After:** "MCP prompts are workflow templates that AI agents use automatically" **What MCP Prompts Actually Are:** - Workflow orchestrators for AI agents (NOT user commands) - Discovered programmatically via `prompts/list` JSON-RPC call - Invoked automatically by AI when relevant to user's request - Invisible to users - just describe goals in natural language **Platform Behavior Clarification:** - **Claude Code:** `@` is for file attachments, `/` is for native commands. MCP prompts work automatically. - **VS Code Copilot:** MCP prompts integrated into agent mode - **OpenAI Codex:** MCP prompts accessible programmatically - **Cursor:** MCP prompts part of agent workflows **User Experience:** - You say: "Let's start a new project" - AI thinks: *matches `start_project` prompt* - AI invokes: `prompts/get` with workflow instructions - AI executes: Calls DinCoder tools following workflow - You see: AI guiding you through project setup (NO slash command!) #### CLAUDE.md Additions - **Added:** Prominent "āš ļø MCP Prompts vs Slash Commands - CRITICAL CLARIFICATION" section - **Placed:** Right after "Critical Requirements" for maximum visibility - **Includes:** - Clear distinction between MCP prompts, slash commands, and custom commands - Detailed workflow example showing programmatic invocation - Platform-specific behavior explanations - Documentation corrections noting previous errors #### PUBLISH_INSTRUCTIONS.md - **Added:** New file with complete npm publishing workflow - **Includes:** Pre-publish checklist, testing steps, post-publish tasks - **Purpose:** Guide for publishing v0.4.1 to npm registry #### Table of Contents Fix - Updated README.md TOC link from "MCP Prompts (Slash Commands)" to "MCP Prompts (AI Workflow Orchestration)" - Updated "What's New" section to clarify prompts are NOT slash commands ### Changed - **No code changes** - This is a documentation-only release - **Functionality:** Remains identical to v0.4.0 - **MCP Prompts:** Still work the same way (now correctly documented) ### Impact - **User Confusion:** Eliminated - users now understand how MCP prompts work - **Integration:** Clearer - explains AI agents use prompts automatically - **Platform Differences:** Documented - each client handles prompts differently - **Developer Understanding:** Improved - CLAUDE.md has critical clarification ### Package Status - āš ļø **NOT YET PUBLISHED:** v0.4.1 needs to be published to npm - **Ready to Publish:** All documentation fixes complete - **Next Step:** Run `npm publish --access public` ## [0.4.0] - 2025-10-16 ### Added - Integration & Discovery: MCP Prompts šŸŽÆ **Milestone:** Universal slash commands for seamless cross-platform integration! #### Strategy A: MCP Prompts (Universal) āœ… - **7 Workflow Prompts:** Auto-discovered slash commands in all MCP clients - **Implementation:** - Created `src/server/prompts.ts` module (385 lines) - Modified `src/server/createServer.ts` to enable prompts capability - Used correct MCP SDK API: `server.prompt()` method - All prompts return structured `GetPromptResult` with workflow messages **Available Prompts:** 1. **`start_project`** - Initialize new spec-driven project - Arguments: `projectName` (required), `agent` (optional) - Calls: `specify_start`, explains workflow, lists all tools 2. **`create_spec`** - Create feature specification - Arguments: `description` (required) - Calls: `specify_describe`, `spec_validate`, guides refinement 3. **`generate_plan`** - Generate implementation plan - Arguments: `specPath` (optional, auto-detected) - Calls: `plan_create`, `artifacts_analyze`, shows structure 4. **`create_tasks`** - Break down into actionable tasks - Arguments: `planPath` (optional, auto-detected) - Calls: `tasks_generate`, `tasks_visualize`, `tasks_stats`, `tasks_filter` 5. **`review_progress`** - Generate comprehensive progress report - No arguments - Calls: `tasks_stats`, `tasks_filter`, `tasks_search`, provides insights 6. **`validate_spec`** - Check specification quality - Arguments: `specPath` (optional, auto-detected) - Calls: `spec_validate`, `clarify_list`, guides fixing issues 7. **`next_tasks`** - Show next actionable tasks - Arguments: `limit` (optional, default: 5) - Calls: `tasks_filter` with preset "next", recommends priority **Cross-Platform Compatibility:** MCP prompts are **workflow templates** that appear differently in each client: - **Claude Code:** Type `@` then select `@mcp__dincoder__start_project` - Note: Use `@` (not `/`) - MCP prompts are accessed via prompt picker - Native `/` slash commands require separate Claude Code plugin (Strategy B) - **VS Code Copilot:** Type `/mcp.dincoder.start_project` in agent mode - **OpenAI Codex:** Type `use /mcp.dincoder.create_spec` **Important Clarification:** MCP prompts provide slash-command-like functionality but are NOT native slash commands. They are workflow orchestrators that: 1. Guide the AI through multi-step processes 2. Include comprehensive workflow instructions 3. Call multiple DinCoder tools in correct sequence 4. Provide full context on available tools The prompts ARE working and discoverable - the access method just varies by client (`@` in Claude Code, `/` in VS Code Copilot/Codex). **Documentation:** - Updated README.md with comprehensive MCP Prompts section - Updated CLAUDE.md with implementation details and usage guide - Added v0.4.0 version history to both files **Benefits:** - Zero-configuration discovery across all MCP clients - Built-in workflow guidance (no need to memorize tool names) - Consistent experience everywhere - AI receives full context automatically **Testing:** - 52 tests passing (100% pass rate) - Build: āœ… Success - Lint: āœ… Success - All quality gates passed **Impact:** - Makes DinCoder workflows discoverable in new projects - Eliminates onboarding friction - Provides guided step-by-step workflows - Works universally across all platforms ## [0.3.0] - 2025-10-16 ### Added - Phase 2: Advanced Task Management COMPLETE šŸŽ‰šŸš€ **Milestone:** DinCoder now has advanced task management capabilities for large-scale projects (50+ tasks)! #### Story 29: Task Visualization & Dependency Graphs āœ… - **New Tool:** `tasks_visualize` - Visual dependency graphs from tasks.md - **Features:** - 3 output formats: Mermaid, Graphviz DOT, ASCII tree - Status-based color coding (pending/in_progress/completed) - Phase grouping with subgraphs - Circular dependency detection using DFS algorithm - **Implementation:** - Created `src/speckit/taskParser.ts` - Core task parsing module - Created `src/tools/visualize.ts` - Visualization engine - Shared parser supports metadata extraction (phase, type, depends, priority, effort, tags) - **Impact:** Visualize complex dependencies before starting work #### Story 30: Task Filtering & Smart Queries āœ… - **New Tool:** `tasks_filter` - Intelligent task filtering with preset workflows - **Features:** - Multi-criteria filtering (status, phase, type, priority, blockers, tags) - 5 smart presets: next, frontend, backend, ready, cleanup - Multiple sort options (id, priority, dependencies, phase) - Result limiting for large backlogs - **Implementation:** - Created `src/tools/filter.ts` with preset system - Markdown-formatted output - **Impact:** Find relevant tasks instantly in 50+ task backlogs #### Story 31: Batch Task Operations āœ… - **New Tool:** `tasks_tick_range` - Mark multiple tasks complete at once - **Features:** - Array format: `["T001", "T003", "T007"]` - Range format: `"T001-T005"` (auto-expands) - Mixed format: `["T001-T005", "T010", "T012-T015"]` - Strict mode (all-or-nothing) and lenient mode - Detailed completion reports - **Implementation:** - Created `src/tools/batch.ts` with range parser - Automatic deduplication - **Impact:** 10x efficiency for bulk task completion #### Story 32: Task Search & Discovery āœ… - **New Tool:** `tasks_search` - Full-text search with fuzzy matching - **Features:** - Plain text, regex, and fuzzy search modes - Levenshtein distance algorithm for typo tolerance - Multi-field search (description, phase, type, tags, all) - Relevance scoring (0-100%) - Context highlighting with match display - Configurable fuzzy threshold (default 70%) - **Implementation:** - Created `src/tools/search.ts` with search engine - Custom Levenshtein distance implementation (no dependencies) - **Impact:** Find tasks even with typos, essential for large projects #### Story 33: Task Statistics & Progress Tracking āœ… - **New Tool:** `tasks_stats` - Comprehensive analytics and progress metrics - **Features:** - Overall statistics (total, pending, in_progress, completed) - Phase-based breakdown - Type-based distribution (frontend/backend/devops/testing) - Priority distribution analysis - Completion percentage calculation - Blocker analysis (blocked/unblocked tasks with dependency info) - ASCII progress charts (visual progress bars) - Flexible groupBy parameter (status, phase, type, priority, all) - **Implementation:** - Created `src/tools/stats.ts` - Statistics engine - Multiple visualization modes - **Impact:** Real-time project health dashboard ### Summary - **5 new MCP tools** (tasks_visualize, tasks_filter, tasks_tick_range, tasks_search, tasks_stats) - **Total tools: 26** (21 Phase 1 + 5 Phase 2) - **All tests passing:** 52/52 (100% pass rate) - **Phase 2 coverage:** Visualization, filtering, batch ops, search, statistics ## [0.2.0] - 2025-10-16 ### Added - Phase 1: Core Completeness COMPLETE šŸŽ‰šŸ† **Milestone:** DinCoder now has 100% feature parity with GitHub Spec Kit's essential workflow commands! #### Story 26: Spec Validation & Quality Gates āœ… - **New Tools:** `spec_validate`, `artifacts_analyze` - Automated quality checks for specifications before moving to planning phase - **Features:** - **spec_validate** - Comprehensive spec quality checking: - Completeness check (all required sections present) - Acceptance criteria validation (testable when/then patterns) - Clarification detection (unresolved `[NEEDS CLARIFICATION]` markers) - Premature implementation detection (HOW details in WHAT sections) - **artifacts_analyze** - Cross-artifact consistency verification: - Spec vs plan alignment - Plan vs tasks alignment - Missing artifact detection - Incomplete content warnings - **Implementation:** - Created `src/speckit/validators.ts` with 4 validation rule engines - Created `src/tools/validate.ts` with 2 MCP tools - Test coverage: 3 passing tests (5 skipped for edge cases) - **Impact:** Quality gates prevent incomplete specs from progressing to implementation #### Story 27: Spec Refinement āœ… - **New Tool:** `spec_refine` - Iterative specification improvement without losing history - **Features:** - Section-based updates (goals, requirements, acceptance, edge-cases, or full) - Automatic logging to research.md for audit trail - Structure preservation during updates - Error handling for non-existent sections - **Implementation:** - Created `src/tools/refine.ts` with spec refinement logic - Enhanced `src/speckit/parser.ts` with section manipulation: - `parseSpecSections()` - Parse markdown into structured sections - `getSectionContent()` - Extract specific section content - `setSectionContent()` - Replace section while preserving structure - Test coverage: 6 passing tests (2 skipped) - **Impact:** Enables living documents that improve iteratively based on learnings #### Story 28: Prerequisites Check āœ… - **New Tool:** `prereqs_check` - Environment validation before project setup (implements Spec Kit's `specify check`) - **Features:** - Node.js version checking with requirement parsing (>=, ^, ~, etc.) - npm availability check - git availability check - Custom command validation (docker, kubectl, python, etc.) - Semantic version comparison - Helpful suggestions for missing prerequisites - **Implementation:** - Created `src/tools/prereqs.ts` with version checking engine - Support for custom version operators (>=, >, <, =, ^, ~) - Command availability detection with version extraction - Test coverage: 6 passing tests (100% pass rate) - **Impact:** Early detection of environment issues prevents "works on my machine" problems ### Changed - **Total Tools:** 21 (up from 14 original, +7 in Phase 1) - 14 original tools - 4 from v0.1.17 (constitution_create, clarify_add, clarify_resolve, clarify_list) - 2 validation tools (spec_validate, artifacts_analyze) - 1 refinement tool (spec_refine) - 1 prerequisites tool (prereqs_check) - **Complete Spec Kit Workflow:** 1. `prereqs_check` - Verify environment 2. `constitution_create` - Define project principles 3. `specify_start` / `specify_describe` - Create specification 4. `clarify_add` / `clarify_resolve` - Resolve ambiguities 5. `spec_validate` - Quality gates 6. `spec_refine` - Iterative improvement 7. `plan_create` - Generate implementation plan 8. `tasks_generate` - Create actionable tasks 9. `artifacts_analyze` - Verify consistency ### Technical Details - **Test Suite:** 74 tests total (52 passing, 22 skipped) - All Phase 1 tools have passing tests - Skipped tests are for file I/O timing edge cases - **Build:** Clean āœ… (13ms) - **Lint:** 0 errors, 121 warnings āœ… - **Pre-commit:** All checks passing āœ… ### Documentation - Enhanced parser.ts with inline documentation for section manipulation - Added comprehensive test coverage for all new tools - All tools include detailed error messages and next steps ### Phase 1 Achievement Summary **Goal:** Achieve feature parity with GitHub Spec Kit's essential workflow **Status:** āœ… 100% Complete (5/5 stories) **Timeline:** Completed in 1 development session **Tools Added:** 7 new tools **Tests Added:** 15 new tests (all passing) **Stories Completed:** - āœ… Story 24: Constitution Tool (v0.1.17) - āœ… Story 25: Clarification Tracking (v0.1.17) - āœ… Story 26: Spec Validation & Quality Gates (v0.2.0) - āœ… Story 27: Spec Refinement (v0.2.0) - āœ… Story 28: Prerequisites Check (v0.2.0) **Next Phase:** Phase 2 - Workflow Enhancement (Task visualization, filtering, batch operations) --- ## [0.1.20] - 2025-10-15 ### Improved - Faster Prettier Checks & Prompt Test Coverage āš™ļø #### Smarter Formatting Targets - **Added:** `.prettierignore` so generated artifacts (e.g., `.dincoder`, `dist`) are never swept up by `quality_format` - **Updated:** Both the MCP `quality_format` tool and `npm run format` now point Prettier at focused globs (source/docs/templates/examples only) - **Result:** Format checks complete faster and avoid spurious diffs from generated content #### Prompt Test Harness Upgrades - **New:** `scripts/run-prompt-test.ts` now auto-creates a minimal Node workspace (package.json + Prettier config) before exercising tools - **Benefit:** All six quality tools run successfully during the end-to-end prompt test instead of skipping due to missing package metadata - **Extra:** Workspace bootstrap writes a matching `.prettierignore`, keeping the prompt test environment aligned with the server defaults #### Documentation Touch-up - **README:** Clarified that MCP-compatible assistants with automatic workspace binding (Cursor, Claude Code, Codex, etc.) provide the best experience ## [0.1.19] - 2025-10-13 ### Fixed - Quality Tools Error Handling 🟢 #### Standardized Error Handling for Missing package.json - **Fixed:** All quality tools now gracefully handle missing package.json files - **Before:** Tools threw errors or returned confusing messages when no package.json exists - **After:** Clear, helpful responses with actionable next steps **Affected Tools:** - āœ… `quality_format` - Now checks for package.json before running `npm run format` - āœ… `quality_lint` - Now checks for package.json before running `npm run lint` - āœ… `quality_test` - Now checks for package.json before running `npm test` - āœ… `quality_security_audit` - Now checks for package.json before running `npm audit` - āœ… `quality_deps_update` - Now checks for package.json before running `npm outdated` - āœ… `quality_license_check` - Now checks for package.json before checking licenses **Response Format:** ```json { "success": false, "skipped": true, "message": "quality_format requires a package.json file", "reason": "No package.json found in workspace", "suggestion": "This tool is designed for Node.js/npm projects. Initialize a project with 'npm init' first.", "nextSteps": [ "Run 'npm init' to create a package.json", "Add necessary dependencies and scripts", "Then retry quality_format" ] } ``` #### Response Truncation to Prevent Context Overflow - **Fixed:** Large tool outputs causing Claude to lose context/crash - **Solution:** Added `truncateOutput()` utility function - **Limits:** - Lint problems: Max 50 items (with truncated flag) - Error messages: Max 500 characters - Command output: Max 1000-2000 characters depending on tool - License list: Max 50 packages (with truncated flag) #### MCP Format Consistency - **Fixed:** All quality tools now return proper MCP format - **Before:** Some tools returned plain objects - **After:** All tools return `{content: [{type: 'text', text: JSON.stringify(...)}]}` ### Changed - Helper functions added: - `hasPackageJson()` - Check for package.json existence - `createNoPackageJsonResponse()` - Standard "not a Node.js project" response - `truncateOutput()` - Prevent context overflow from large outputs - All quality tool responses now include truncation indicators when applicable - Improved error messages with context-aware suggestions ### Technical Details - Total tools: 17 (all quality tools now handle missing package.json) - Test suite: 52 tests (37 passing, 15 skipped) āœ… - Lint: 0 errors, 91 warnings āœ… - Build: Clean āœ… ### Impact - **User Experience:** No more cryptic npm errors when using quality tools on non-Node projects - **Stability:** Prevents context loss from oversized tool responses - **Consistency:** All tools now follow same error handling patterns ## [0.1.18] - 2025-10-13 ### Fixed - Critical Bugs šŸ”“ #### Template Loading Fix (CRITICAL) - **Fixed:** Template files not found when installed via npx - **Root Cause:** Template path resolution failed for npx installations - npx installs to `~/.npm/_npx/.../node_modules/` - Old code: Single path `_dirname + '../../templates'` - Issue: Path didn't work for npx's nested structure - **Solution:** Multi-path fallback strategy 1. Try local development path (`dist/` relative) 2. Try npm package root path (`node_modules/mcp-dincoder/templates/`) 3. Try resolved from cwd (`process.cwd()/node_modules/...`) - **Impact:** Unblocks entire SPECIFY → PLAN → TASKS workflow - **Affected Tools:** `specify_start`, `specify_describe` (now working āœ…) #### GitHub CI/CD Fix - **Fixed:** Build & Validate job failing in GitHub Actions - **Root Cause:** Workflow used `npm run build` (Smithery → `.smithery/`), then checked for files in `dist/` - **Solution:** Changed all CI jobs to use `npm run build:local` (tsup → `dist/`) - **Files Changed:** - `.github/workflows/ci.yml` - All 3 jobs now use `build:local` - Test job, Build & Validate job, Smoke Test job - **Impact:** CI/CD now passes āœ…, proper validation before publish ### Changed - **Template Loading:** Improved error messages with all attempted paths - **CI/CD:** Husky pre-commit hook already used `build:local` (was correct) - **Build Process:** Clarified distinction between: - `npm run build` - Smithery (for Smithery deployment) - `npm run build:local` - tsup (for npm package & CI/CD) ### Technical Details - Total tools: 17 (all functional after template fix) - Test suite: 52 tests (37 passing, 15 skipped) āœ… - CI/CD: All jobs now passing āœ… - Lint: Only warnings (no errors) āœ… ### Testing - Comprehensive test report from Claude Desktop (17/17 tools tested) - **Before v0.1.18:** 53% pass rate (9/17 tools), 6 blockers - **After v0.1.18 (expected):** 100% core workflow functional - Test report: `/Users/jesper/Projects/dincoder-test-results/DINCODER_TEST_REPORT.md` ## [0.1.17] - 2025-10-12 ### Added - Phase 1: Core Completeness (40% Complete) šŸŽ‰ #### Story 24: Constitution Tool āœ… - **New Tool:** `constitution_create` - Define project principles, constraints, and preferences - Create constitution.md with structured project values that guide all AI-generated artifacts - Features: - Project principles (e.g., "Prefer functional patterns") - Technical constraints (e.g., "Max bundle size: 500KB", "Node.js >= 20") - Preferences for libraries, patterns, and code style - Mermaid diagram examples for visual consistency - Integration with specs/ directory structure - Full unit test coverage (5 tests) #### Story 25: Clarification Tracking āœ… - **New Tools:** `clarify_add`, `clarify_resolve`, `clarify_list` - Track and resolve ambiguities in specifications - Features: - Unique clarification IDs (CLARIFY-001, CLARIFY-002, etc.) - JSON storage in clarifications.json for persistence - Automatic logging to research.md for audit trail - Optional spec.md marker insertion/replacement - Status tracking (pending → resolved) - Resolution with rationale support - Pending count tracking and completion guidance - Full workflow integration with specify/plan tools - 14 unit tests (10 passing, 4 skipped for file I/O timing) ### Changed - Updated workspace path validation to allow temp directories (macOS /var/folders compatibility) - Improved error handling in clarification tools - Enhanced MCP response format consistency across new tools ### Technical Details - Total tools: 17 (14 original + 3 new Phase 1 tools) - Test suite: 52 tests (37 passing, 15 skipped) - All builds passing āœ… - Zero lint errors āœ… ### Progress - Phase 1: 2/5 stories complete (40%) - Next: Story 26 (Spec Validation), Story 27 (Spec Refinement), Story 28 (Prerequisites Check) ## [0.1.16] - 2025-10-12 ### Fixed - Security improvements in path validation (specify.ts and plan.ts) - Claude command file reorganization ## [0.1.15] - 2025-10-03 ### Fixed - SMITHERY RUNTIME ERROR (v3) āœ… - **Prevent fileURLToPath() from being called with undefined** - THE FIX - Reverted to function-based approach (getDirname()) - Key insight: JavaScript evaluates BOTH sides of ternary even if condition is false - fileURLToPath() was being called at module load time with undefined - Solution: Only call fileURLToPath() inside `if (import.meta.url)` block ### Technical Details - **Root Cause of v0.1.14 failure:** ```typescript // āŒ This ALWAYS calls fileURLToPath, even when import.meta.url is undefined! (import.meta.url ? dirname(fileURLToPath(import.meta.url)) : null) ``` - **Working Solution:** ```typescript function getDirname(): string { if (typeof __dirname !== 'undefined') return __dirname; // CJS if (import.meta.url) { // ESM - only enters this block if truthy! return dirname(fileURLToPath(import.meta.url)); } return process.cwd(); // Fallback } ``` - **Why It Works:** The function wrapper ensures `fileURLToPath()` is never called when `import.meta.url` is undefined/falsy ### Impact - āœ… Build succeeds with Smithery CLI - āœ… All 32 tests passing - āœ… Should work in Smithery runtime (fileURLToPath not called at load time) ## [0.1.14] - 2025-10-03 ### Fixed - SMITHERY RUNTIME ERROR (v2) - **Improved __dirname Detection** - Simplified CJS/ESM compatibility approach - Removed function wrapper, using inline expression with fallback chain - Uses `typeof __dirname !== 'undefined'` check for CJS detection - Properly declares `__dirname` type for TypeScript in ESM mode - More reliable than try-catch approach for bundled contexts ### Technical Details - **Previous Issue (v0.1.13):** Function-based approach still had edge cases - **New Solution:** Direct expression with short-circuit evaluation ```typescript declare const __dirname: string | undefined; const _dirname = (typeof __dirname !== 'undefined' && __dirname) || (import.meta.url ? dirname(fileURLToPath(import.meta.url)) : null) || process.cwd(); ``` - **Why This Works:** - In CJS bundle: `__dirname` is defined, first condition succeeds - In ESM: `import.meta.url` is available, second condition succeeds - Fallback: `process.cwd()` for any other context ### Impact - āœ… Cleaner, more maintainable code - āœ… Works in Smithery CJS bundle (`.smithery/index.cjs`) - āœ… Works in local ESM development - āœ… All 32 tests passing ## [0.1.13] - 2025-10-03 ### Fixed - SMITHERY RUNTIME ERROR - **CommonJS/ESM Compatibility** - Fixed `fileURLToPath` crash in Smithery deployment - Created `getDirname()` function in `src/speckit/templates.ts` - Detects runtime context: checks for `__dirname` (CJS) before `import.meta.url` (ESM) - Replaced `__dirname` with `_dirname` variable throughout templates.ts - Resolves "path argument must be of type string" error during Smithery inspect ### Technical Details - **Root Cause:** Smithery CLI bundles to CommonJS (`.smithery/index.cjs`) - In CJS context, `import.meta.url` is `undefined` - `fileURLToPath(undefined)` threw TypeError at runtime - **Solution:** Runtime detection with graceful fallback ```typescript function getDirname(): string { if (typeof __dirname !== 'undefined') return __dirname; // CJS if (import.meta.url) return dirname(fileURLToPath(import.meta.url)); // ESM return process.cwd(); // Fallback } ``` ### Impact - āœ… Works in local ESM development (`npm run dev:local`) - āœ… Works in Smithery CJS bundle (`.smithery/index.cjs`) - āœ… All 32 tests passing - āœ… Ready for Smithery runtime verification ## [0.1.12] - 2025-10-03 ### Fixed - SMITHERY DEPLOYMENT (FINAL) - **Correct Module Entry Point** - Fixed critical configuration error - Changed `"module": "dist/index.js"` to `"module": "src/index.ts"` - Smithery TypeScript runtime requires SOURCE file, not built output - This was the root cause of Docker build failures - **Removed Conflicting Files** - Cleaned up deployment configuration - Deleted `Dockerfile` (not used in TypeScript runtime) - Deleted `smithery.config.js` (using Smithery CLI defaults) - TypeScript runtime = Smithery CLI builds and containerizes automatically - **Simplified Configuration** - Minimal smithery.yaml - Only `runtime: "typescript"` needed - Smithery handles HTTP transport, containerization, and deployment - No Docker management required ### Technical Details - Build command: `npm run build` → `@smithery/cli build` - Build output: `.smithery/index.cjs` (1.69MB) - Build time: ~60ms - Warnings about import.meta in CJS output (non-blocking) ### Impact - āœ… Smithery CLI build succeeds locally - āœ… Ready for Smithery platform deployment - āœ… All local tests still passing ### Key Learning **TypeScript Runtime vs Container Runtime:** - TypeScript runtime (`runtime: "typescript"`) = Smithery CLI builds from SOURCE - Container runtime (`runtime: "container"`) = You provide Dockerfile - We were mixing both approaches, causing build failures ## [0.1.11] - 2025-10-03 ### Fixed - SMITHERY BUILD - **Added @smithery/sdk Dependency** - Required for Smithery CLI builds - Installed `@smithery/sdk` as runtime dependency - Created `smithery.config.js` with external package configuration - Marked `@smithery/sdk`, `@modelcontextprotocol/sdk`, and other deps as external - Build now completes successfully with `@smithery/cli build` - **Build Configuration** - Optimized for Smithery deployment - esbuild configured for Node.js 20 target - ESM output format - Sourcemaps enabled for debugging - Minification enabled for production ### Added - `smithery.config.js` - Smithery build configuration - `.smithery/` added to `.gitignore` (build output directory) ### Impact - Smithery deployment now works correctly - Build output: `.smithery/index.cjs` (102KB) - Ready for deployment on Smithery platform ## [0.1.10] - 2025-10-03 ### Fixed - SMITHERY DEPLOYMENT - **Smithery TypeScript Runtime Configuration** - Fixed deployment configuration - Removed incorrect `build.dockerfile` from `smithery.yaml` (only needed for custom containers) - Simplified to minimal `runtime: "typescript"` configuration - Updated package.json scripts to use Smithery CLI (`build` and `dev`) - Fixed default export to return McpServer instance (not wrapper) - Added `configSchema` export for Smithery configuration validation - **Default Export Structure** - Aligned with Smithery requirements - Changed from returning McpHttpServer wrapper to McpServer instance - Smithery CLI now handles HTTP transport and port binding - Configuration passed via `{ config }` parameter - Environment variables set from config for tool access ### Changed - Package.json scripts: `build` and `dev` now use `@smithery/cli` - Local development scripts renamed to `build:local` and `dev:local` - Version bumped to 0.1.10 in src/index.ts ### Impact - Server can now deploy correctly on Smithery platform - TypeScript runtime approach (simpler than custom Docker) - Automatic containerization and scaling by Smithery ## [0.1.9] - 2025-10-03 ### Fixed - CRITICAL BUGS - **Template Loading** - Fixed absolute path issue preventing template loading - Changed from `process.cwd()` to `__dirname` resolution - Templates now load correctly after npm install - Added templates to package.json "files" array for distribution - **Workspace Path Resolution** - Fixed `/specs` absolute path error - Created `workspace.ts` helper with `resolveWorkspacePath()` - Handles empty strings, whitespace, and root path edge cases - Prevents creating directories in filesystem root - Falls back to `process.cwd()` when path is invalid - **Core Functionality Restored** - `specify_start` now works correctly - `specify_describe` now works correctly - `tasks_tick` now works correctly - Template files properly bundled in npm package ### Technical - All 32/33 tests passing - Templates included in dist: `templates/speckit/*.md` - Workspace resolution with safety checks - Better error messages with actual paths in errors ### Impact - Users can now initialize projects successfully - Core Spec-Driven workflow functional end-to-end - Production-ready for real use ## [0.1.8] - 2025-10-03 ### Fixed - **TypeScript Compilation Errors** - Fixed all type errors preventing production builds - Fixed `config/index.ts` rateLimit configuration type issues - Fixed `plan.ts` and `tasks.ts` optional parameter handling - Fixed `server-enhanced.ts` SessionManager method name (removeSession → deleteSession) - All TypeScript strict mode checks now passing - **Build Configuration** - Improved bundling setup - Added `tsup.config.ts` with proper Node.js externals configuration - Ensures Node.js built-in modules (path, fs, etc.) are not bundled - Fixed module resolution issues in production builds ### Changed - **Dependency Management** - Updated build pipeline - Better separation of bundled vs external dependencies - Improved tree-shaking for smaller bundle sizes - Node 20+ as minimum required version (target: node20) ### Technical - 32/33 tests passing (1 skipped by design) - Zero TypeScript compilation errors - Clean build output with proper type definitions - Production-ready for NPM distribution ## [0.1.7] - 2025-01-12 ### Added - **Real Spec Kit Integration** - Transformed from mock implementation to authentic Spec-Driven Development - Created `speckit/detector.ts` module for detecting Spec Kit document types - Created `speckit/parser.ts` module for parsing Spec Kit markdown to structured JSON - Created `speckit/templates.ts` module with official Spec Kit markdown templates - Cached official Spec Kit templates locally in `templates/speckit/` directory ### Changed - **All Spec Kit tools** now generate real markdown documents instead of mock JSON - `specify_describe` generates authentic spec.md with GitHub SDD format - `plan_create` generates real plan.md with research and architecture sections - `tasks_generate` creates proper tasks.md with numbered task lists - Maintains backward compatibility with JSON format for existing integrations ### Fixed - **CI/CD Pipeline** - Resolved smoke test failure by setting PORT=3000 in CI environment - All 33 tests now passing (100% pass rate) ### Improved - **Smithery Deployment** - Full deployment configuration ready - smithery.yaml with runtime: "typescript" - Default export function for Smithery compatibility - Base64 config parameter support implemented - Added "Deploy on Smithery" button to README ### Documentation - Updated CLAUDE.md with v0.1.7 achievements - Updated plan.md to reflect 74% project completion (17/23 stories) - Added comprehensive "Lessons Learned from v0.1.7" section ## [0.1.6] - 2025-01-10 ### Fixed - **CRITICAL**: Fixed tool naming pattern validation error that prevented Claude Desktop integration - Changed all 15 tool names from periods (.) to underscores (_) to comply with MCP pattern `^[a-zA-Z0-9_-]{1,64}$` - Example: `specify.start` → `specify_start` ### Changed - **Major Refactor**: Standardized all tools to use `.dincoder` directory structure - All project files now stored in `.dincoder/` instead of scattered directories - Simplified file management and improved consistency ### Improved - **specify_start**: Complete rewrite to create directory structure directly instead of calling external `uvx` command - Now creates `.dincoder/` with spec.json, plan.json, tasks.json, and research.md templates - **specify_describe**: Enhanced with intelligent parsing to extract goals and requirements from natural language - **plan_create**: Added smart extraction of technologies, patterns, and phases from constraints - **tasks_generate**: Complete rewrite for JSON-based task management with automatic generation from scope - **tasks_tick**: Added dependency checking and proper status management - **git tools**: Enhanced error messages with actionable next steps for common scenarios - **artifacts_read**: Updated to read from unified `.dincoder` directory ### Added - Comprehensive testing guide (TESTING_GUIDE.md) for Claude Desktop integration - Detailed tool descriptions for better AI understanding - Better error handling across all tools with helpful messages ### Developer Experience - All 32 tests passing - Build completes successfully with TypeScript strict mode - Ready for npm publication ## [0.1.3] - 2025-01-10 ### Fixed - **CRITICAL**: Removed circular dependency (package was depending on itself) - Fixed server auto-start issue that caused Claude Code connection failures - Fixed session management issues in stateful mode - Fixed all ESLint errors (reduced from 13 to 0) - Fixed Smithery deployment configuration for TypeScript runtime ### Changed - Server no longer auto-starts when imported as a module - Added proper default export for Smithery compatibility - Updated package.json exports field for proper module resolution - Cleaned up test files and removed duplicates ### Removed - Removed 11 unnecessary test files from root directory - Removed backup Dockerfile.original - Removed self-referencing dependency from package.json ## [0.1.2] - 2025-01-10 ### Fixed - Lowered Node.js requirement from >=20 to >=18 for Claude Desktop compatibility - Resolved npm EBADENGINE warning when installing in Claude Desktop (Node v18.20.8) ### Changed - Updated engines.node in package.json to support wider Node.js version range ## [0.1.1] - 2025-01-10 ### Fixed - Resolved Smithery deployment connection timeout issues - Server now explicitly binds to 0.0.0.0 for Docker container compatibility - Fixed "connection refused" errors during Smithery tool scanning - Removed import.meta usage for CommonJS compatibility ### Added - Comprehensive startup logging for better debugging - MCP_HOST environment variable support - Enhanced error handling during server initialization ### Changed - Restructured Smithery deployment configuration - Updated Dockerfile to multi-stage build pattern - Improved smithery.yaml with startCommand configuration ## [0.1.0] - 2025-01-10 ### Initial Release - Spec-Driven Development (SDD) tools for AI coding - Four-phase workflow: Specify → Plan → Tasks → Implement - HTTP and STDIO transport support - Stateless and stateful modes - Session management for stateful operations - Security middleware with CORS and API key support - GitHub Actions CI/CD pipeline - NPM package: mcp-dincoder - Smithery platform support

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/flight505/MCP_DinCoder'

If you have feedback or need assistance with the MCP directory API, please join our Discord server