{"id":28447534,"url":"https://github.com/wronai/domd","last_synced_at":"2025-06-30T10:31:15.777Z","repository":{"id":297593301,"uuid":"997279396","full_name":"wronai/domd","owner":"wronai","description":"To-DoMD automatically detects and tests project commands from various configuration files, then generates a detailed TODO.md file for failed commands with error reports and suggested fixes.","archived":false,"fork":false,"pushed_at":"2025-06-13T12:37:00.000Z","size":3698,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-13T13:45:21.139Z","etag":null,"topics":["bugfix","cline","cursor","deeepseed","fix","gpt","json","llm","makefile","mistral","npm","ollama","package","python","todo","vscode","windsurf"],"latest_commit_sha":null,"homepage":"https://wronai.github.io/domd/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wronai.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-06T08:57:58.000Z","updated_at":"2025-06-13T12:37:04.000Z","dependencies_parsed_at":"2025-06-06T10:28:45.510Z","dependency_job_id":null,"html_url":"https://github.com/wronai/domd","commit_stats":null,"previous_names":["wronai/domd","wronai/todomd"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/wronai/domd","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wronai%2Fdomd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wronai%2Fdomd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wronai%2Fdomd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wronai%2Fdomd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wronai","download_url":"https://codeload.github.com/wronai/domd/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wronai%2Fdomd/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260162892,"owners_count":22968153,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bugfix","cline","cursor","deeepseed","fix","gpt","json","llm","makefile","mistral","npm","ollama","package","python","todo","vscode","windsurf"],"created_at":"2025-06-06T12:05:57.045Z","updated_at":"2025-06-30T10:31:15.732Z","avatar_url":"https://github.com/wronai.png","language":"Python","readme":"# ✓ DoMD - Do Markdown Docs\n\n[![License: Apache-2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![Python Version](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)\n[![Code Style: Black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)\n[![Tests](https://github.com/wronai/domd/workflows/Tests/badge.svg)](https://github.com/wronai/domd/actions)\n[![Docker Support][docker-badge]][docker-url]\n[![Documentation][docs-badge]][docs-url]\n\n**DoMD** (Do Markdown Docs) is a powerful tool that helps you maintain up-to-date project documentation by automatically detecting, running, and documenting commands from your project files. It generates and updates `TODO.md` and `DONE.md` files based on command execution results, making it easier to track what works and what needs attention.\n\n```bash\n# Start DoMD analyzer\ndomd\n```\n\n## Web Interface\n\nDoMD comes with a modern web interface that allows you to interact with your project's commands through a user-friendly dashboard.\n\n### Starting the Web Interface\n\n```bash\n# Start the web interface on default port (3000)\ndomd web\n\n# Specify a custom port\ndomd web --port 8088\n\n# Start without automatically opening a browser\ndomd web --no-browser\n```\n\n### Web Interface Features\n\n- **Command Management**: View, run, and manage all your project commands from one place\n- **Real-time Output**: See command execution results in real-time\n- **History Tracking**: Keep track of command execution history\n- **Responsive Design**: Works on both desktop and mobile devices\n- **Dark Mode**: Built-in dark theme for comfortable viewing\n\n### Requirements\n\n- Node.js 16+ and npm 8+\n- Python 3.9+\n- Modern web browser (Chrome, Firefox, Safari, or Edge)\n\n### Web Interface Setup\n\n1. Start the web interface:\n\n   ```bash\n   domd web --port 8088\n   ```\n\n2. Open your browser and navigate to [http://localhost:8088](http://localhost:8088)\n\n3. The interface will automatically detect and display your project's commands\n\n### Development Mode\n\nFor development, you can run the frontend and backend separately:\n\n```bash\n# Terminal 1 - Start the backend API\ncd backend\npython -m domd.api\n\n# Terminal 2 - Start the frontend development server\ncd frontend\nnpm start\n```\n\n## ✨ Core Features\n\n- **Automatic Command Detection** - Discovers and extracts commands from various project files\n- **Smart Execution** - Runs commands and captures their output and status\n- **Docker Integration** - Execute commands in isolated containers for consistency\n- **Command Testing** - Validate and test commands in Docker containers\n- **Smart .doignore Management** - Automatically update ignore patterns based on test results\n- **Comprehensive Reporting** - Generates detailed reports in markdown format\n- **Customizable** - Configure includes, excludes, and command behavior\n- **Cross-Platform** - Works on Linux, macOS, and Windows\n- **Extensible** - Add support for new command types and tools\n- **REST API** - Full programmatic access to all features\n\n## Demo\n\n[![Watch the demo](https://img.youtube.com/vi/YOUR_VIDEO_ID/0.jpg)](https://www.youtube.com/watch?v=YOUR_VIDEO_ID)\n\n## Examples\n\nExplore our comprehensive collection of examples to get started with DoMD:\n\n- [Basic Examples](docs/examples/basic/) - Simple examples to get you started\n- [Advanced Usage](docs/examples/advanced/) - Complex scenarios and custom configurations\n- [Web Interface Guide](docs/examples/web/) - How to use the DoMD web interface\n- [CI/CD Integration](docs/examples/ci_cd/) - Automate documentation with GitHub Actions and more\n- [Integration Examples](docs/examples/integration/) - Using DoMD with other tools and platforms\n\n![img.png](img.png)\n\n## Command Testing\n\nDoMD includes powerful command testing capabilities that help you validate and test shell commands in isolated Docker containers:\n\n```bash\n# Test individual commands\ndomd test-commands \"ls -la\" \"pwd\" \"echo Hello\"\n\n# Test commands from a file and update .doignore\ndomd test-commands --update-doignore -f commands.txt\n\n# Skip Docker testing (only validate commands)\ndomd test-commands --no-docker -f commands.txt\n```\n\n### Testing Features\n\n- **Command Validation**: Automatically detect valid shell commands vs documentation\n- **Docker Testing**: Test commands in isolated containers\n- **Automatic .doignore Updates**: Update ignore patterns based on test results\n- **REST API**: Full programmatic access to testing features\n\nFor more details, see the [Command Testing Documentation](docs/command_testing.md).\n\n## Quick Start\n\n### Prerequisites\n\n- Python 3.8 or newer\n- pip (Python package manager)\n- (Optional) Docker for containerized execution\n\n### Installation\n\nChoose the installation method that works best for you:\n\n```bash\n1. **Install DoMD** (if not already installed):\n\n   ```bash\n   pip install domd\n   ```\n\n   Or using Docker (no installation required):\n\n   ```bash\n   docker run --rm -v $(pwd):/app ghcr.io/wronai/domd domd\n   ```\n\n## Basic Usage\n\n1. **Navigate to your project directory**:\n\n   ```bash\n   cd /path/to/your/project\n   ```\n\n2. **Run DoMD**:\n\n   ```bash\n   # Basic scan\n   domd\n   ```\n\n   Or use the web interface:\n\n   ```bash\n   domd web\n   ```\n\n## Web Interface Overview\n\nDoMD includes a secure web-based interface for a more interactive experience:\n\n### Web Interface Setup\n\n```bash\n# Start the web interface (default port: 3003)\ndomd web\n\n# Specify a custom port\ndomd web --port 8088\n\n# Start without opening browser automatically\ndomd web --no-browser\n\n# Start with specific host binding\ndomd web --host 0.0.0.0\n```\n\n   DoMD will:\n   - Scan your project for available commands\n   - Execute the commands in the correct context\n   - Generate a report in `TODO.md` with any issues found\n   - Update `DONE.md` with successfully executed commands\n\n### Common Commands\n\n- List available commands without executing them:\n  ```bash\n  domd --list\n  ```\n\n- Run a specific command by name or pattern:\n  ```bash\n  domd run test\n  domd run \"test*\"\n  ```\n\n- Generate a report without executing commands:\n  ```bash\n  domd --dry-run\n  ```\n\n- Get help with available options:\n  ```bash\n  domd --help\n  ```\n\n\u003e Pro Tip: Run `domd` regularly to keep your project documentation in sync with your actual project state!\n\n## Web Interface\n\nDoMD comes with a web-based interface for a more interactive experience. Here's how to get it running:\n\n### Development Prerequisites\n\n- Node.js (v14 or later)\n- npm (comes with Node.js) or Yarn\n\n### Running the Development Server\n\n1. Navigate to the frontend directory:\n\n   ```bash\n   cd frontend\n   ```\n\n2. Install dependencies:\n\n   ```bash\n   npm install\n   # or if you use Yarn:\n   # yarn\n   ```\n\n3. Start the development server:\n\n   ```bash\n   npm start\n   # or if you use Yarn:\n   # yarn start\n   ```\n\n4. Open your browser and visit [http://localhost:3003](http://localhost:3003)\n\n### Building for Production\n\nTo create a production build:\n\n```bash\ncd frontend\nnpm run build\n# or with Yarn:\n# yarn build\n```\n\nThis will create an optimized production build in the `build` directory.\n\n## Documentation\n\nFor detailed documentation, please visit our [documentation site](https://wronai.github.io/domd/) or check the [docs](./docs) directory.\n\n- [Installation Guide](./docs/installation.md)\n- [Usage Guide](./docs/usage.md)\n- [Docker Integration](./docs/docker.md)\n- [Advanced Configuration](./docs/features/core.md)\n- [API Reference](./docs/api.md)\n\n## Contributing\n\nContributions are welcome! Please read our [Contributing Guide][contributing] for details on how to get started.\n\n## License\n\nThis project is licensed under the Apache 2.0 License - see the [LICENSE](LICENSE) file for details.\n\n## Need Help?\n\nOpen an [issue][issues] if you need help or have questions.\n\n[contributing]: https://github.com/wronai/domd/blob/main/CONTRIBUTING.md\n[issues]: https://github.com/wronai/domd/issues\n\n## Pattern Matching\n\n- Patterns support glob-style wildcards (`*` matches any sequence of characters)\n- Matches are case-insensitive\n\n### Subdirectory README.md Support\n\nDoMD can automatically scan first-level subdirectories for additional `README.md` files and execute commands found within them. This is particularly useful for monorepos or projects with multiple components.\n\n### Local Development\n\nFor local development, you can start both the backend and frontend services:\n\n```bash\n# Start the backend server\npoetry run uvicorn domd.main:app --reload --port 8008\n\n# In a separate terminal, start the frontend\ncd frontend\nnpm install\nnpm start\n```\n\n### Authentication and Login\n\nThe web interface is protected by authentication. Use the following default credentials:\n\n- URL: [http://localhost:3000](http://localhost:3000) (frontend development server) or [http://localhost:3003](http://localhost:3003) (production build)\n- Username: admin\n- Password: admin123\n- **URL**: [http://localhost:3000](http://localhost:3000) (frontend development server) or [http://localhost:3003](http://localhost:3003) (production build)\n- **Username**: admin\n- **Password**: admin123\n\n\u003e **Security Note**\n\u003e\n\u003e Change the default password after first login by navigating to User Settings in the web interface.\n\n#### First-Time Login\n\n1. Open your web browser and navigate to http://localhost:3000 (development) or http://localhost:3003 (production)\n2. Enter the default credentials:\n   - Email/Username: `admin`\n   - Password: `admin123`\n3. Click \"Sign In\"\n4. Immediately change your password in the User Settings menu\n\n### Web Interface Features\n\n- **Secure Login**: Protected by username/password authentication\n- **Interactive Dashboard**: View command execution results in real-time\n- **Command History**: Browse through previously executed commands\n- **Filtering**: Filter commands by status, type, or search term\n- **Detailed Views**: See full command output and execution details\n- **User Management**: Manage users and permissions (admin only)\n- **Responsive Design**: Works on desktop and mobile devices\n\n### Troubleshooting Login Issues\n\nIf you're having trouble logging in:\n\n1. Ensure the backend server is running (check terminal for errors)\n2. Verify the frontend is properly connected to the backend (check browser's developer console for errors)\n3. Clear your browser cache and cookies if experiencing persistent login issues\n4. Check that your credentials are correct (default: admin/admin123)\n5. If you've forgotten your password, you can reset it by:\n   - Stopping the server\n   - Deleting the `domd.db` file (or your configured database file)\n   - Restarting the server (this will recreate the database with default credentials)\n\nThen:\n\n1. Open http://localhost:3003 in your browser\n2. Log in with the default credentials\n3. Navigate to Settings \u003e Users to change the default password\n4. (Optional) Create additional users with appropriate permissions\n\n### Prerequisites\n\nTo use the web interface, you'll need:\n\n- Node.js (v16 or later) and npm (v8 or later)\n- Python 3.8+ with DoMD installed\n- Internet connection (for loading external resources)\n- Modern web browser (Chrome, Firefox, Safari, or Edge)\n\n## Basic Command Line Usage\n\n1. Navigate to your project directory:\n\n   ```bash\n   cd /path/to/your/project\n   ```\n\n2. Run DoMD with the web interface:\n\n   ```bash\n   # Start the web server\n   domd web\n\n   # The interface will be available at http://localhost:3003 by default\n   ```\n\n3. Open your browser and navigate to the displayed URL\n\n## Advanced Command Line Usage\n\nFor command-line usage, you can run:\n\n```bash\ndomd\n```\n\n   DoMD will:\n   - Scan your project for available commands\n   - Execute the commands in the correct context\n   - Generate a report in `TODO.md` with any issues found\n   - Update `DONE.md` with successfully executed commands\n\n### Common Commands\n\n- **List available commands** without executing them:\n  ```bash\n  domd --list\n  ```\n\n- **Run a specific command** by name or pattern:\n  ```bash\n  domd run test\n  domd run \"test*\"\n  ```\n\n- **Generate a report** without executing commands:\n  ```bash\n  domd --dry-run\n  ```\n\n- **Get help** with available options:\n  ```bash\n  domd --help\n  ```\n\n\u003e 💡 **Pro Tip**: Run `domd` regularly to keep your project documentation in sync with your actual project state!\n\n## 🌐 Web Interface\n\nDoMD comes with a web-based interface for a more interactive experience. Here's how to get it running:\n\n### Development Prerequisites\n\n- Node.js (v14 or later)\n- npm (comes with Node.js) or Yarn\n\n### Running the Development Server\n\n1. Navigate to the frontend directory:\n\n   ```bash\n   cd frontend\n   ```\n\n2. Install dependencies:\n\n   ```bash\n   npm install\n   # or if you use Yarn:\n   # yarn\n   ```\n\n3. Start the development server:\n\n   ```bash\n   npm start\n   # or if you use Yarn:\n   # yarn start\n   ```\n\n4. Open your browser and visit [http://localhost:3003](http://localhost:3003)\n\n### Building for Production\n\nTo create a production build:\n\n```bash\ncd frontend\nnpm run build\n# or with Yarn:\n# yarn build\n```\n\nThis will create an optimized production build in the `build` directory.\n\n## 📖 Documentation\n\nFor detailed documentation, please visit our [documentation site](https://wronai.github.io/domd/) or check the [docs](./docs) directory.\n\n- [Installation Guide](./docs/installation.md)\n- [Usage Guide](./docs/usage.md)\n- [Docker Integration](./docs/docker.md)\n- [Advanced Configuration](./docs/features/core.md)\n- [API Reference](./docs/api.md)\n\n## 🤝 Contributing\n\nContributions are welcome! Please read our [Contributing Guide][contributing] for details on how to get started.\n\n## 📄 License\n\nThis project is licensed under the Apache 2.0 License - see the [LICENSE](LICENSE) file for details.\n\n## 💡 Need Help?\n\nOpen an [issue][issues] if you need help or have questions.\n\n[contributing]: https://github.com/wronai/domd/blob/main/CONTRIBUTING.md\n[issues]: https://github.com/wronai/domd/issues\n\n## Pattern Matching\n\n- Patterns support glob-style wildcards (`*` matches any sequence of characters)\n- Matches are case-insensitive\n\n### 📂 Subdirectory README.md Support\n\nDoMD can automatically scan first-level subdirectories for additional `README.md` files and execute commands found within them. This is particularly useful for monorepos or projects with multiple components.\n\n#### How It Works\n\n- DoMD scans all first-level subdirectories in your project\n- For each subdirectory containing a `README.md` file:\n  - Commands are extracted from the `README.md`\n  - Commands are executed with the subdirectory as the working directory\n  - Command output and results are included in the main report\n\n#### Example Project Structure\n\n```text\nmy-project/\n├── README.md           # Commands run from project root\n├── frontend/\n│   └── README.md      # Commands run from frontend/\n├── backend/\n│   └── README.md      # Commands run from backend/\n└── docs/\n    └── README.md      # Commands run from docs/\n```\n\n#### Benefits\n\n- Keep commands close to the code they relate to\n- Maintain separate command sets for different project components\n- Simplify complex project automation\n- Commands run in their proper context\n\n### 🐳 Running Commands in Docker with `.dodocker`\n\nFor better isolation and consistency, you can specify commands that should be executed inside a Docker container using a `.dodocker` file.\n\n#### `.dodocker` File Format\n\n```\n# Commands to run in Docker container\npytest\nblack --check .\nflake8\nmypy .\n```\n\n#### How It Works\n- Each line specifies a command that should be run in a Docker container\n- Commands are executed in the `python:3.9` container by default\n- The project directory is mounted to `/app` in the container\n- The working directory is set to `/app`\n- The container is automatically removed after execution\n\n#### Customizing Docker Configuration\n\nYou can customize the Docker configuration by creating a `Dockerfile` in your project root. For example:\n\n```dockerfile\nFROM python:3.9\n\n# Install additional dependencies\nRUN apt-get update \u0026\u0026 apt-get install -y \\\n    gcc \\\n    libpq-dev \\\n    \u0026\u0026 rm -rf /var/lib/apt/lists/*\n\n# Install Python dependencies\nCOPY pyproject.toml poetry.lock ./\nRUN pip install poetry \u0026\u0026 \\\n    poetry config virtualenvs.create false \u0026\u0026 \\\n    poetry install --no-interaction --no-ansi\n```\n\nDoMD will automatically detect and use this `Dockerfile` when running commands in a container.\n\n## 🤖 Programmatic Usage\n\n```python\nfrom domd import ProjectCommandDetector\n\n# Initialize detector\ndetector = ProjectCommandDetector(\n    project_path=\"./my-project\",\n    timeout=60,\n    exclude_patterns=[\"*.pyc\", \"__pycache__/*\"]\n)\n\n# Scan for commands\ncommands = detector.scan_project()\nprint(f\"Found {len(commands)} commands\")\n\n# Test commands\ndetector.test_commands(commands)\n\n# Generate report\ndetector.generate_output_file(\"RESULTS.md\", \"markdown\")\n\n# Access results\nfailed_commands = detector.failed_commands\nsuccess_rate = (len(commands) - len(failed_commands)) / len(commands) * 100\nprint(f\"Success rate: {success_rate:.1f}%\")\n```\n\n## 🧪 Development\n\n### Setup Development Environment\n```bash\ngit clone https://github.com/wronai/domd.git\ncd domd\npoetry install --with dev,docs,testing\n\n# Install pre-commit hooks\npoetry run pre-commit install\n```\n\n### Running Tests\n```bash\n# Run all tests\npoetry run pytest\n\n# Run with coverage\npoetry run pytest --cov=domd --cov-report=html\n\n# Run specific test categories\npoetry run pytest -m \"unit\"\npoetry run pytest -m \"integration\"\n```\n\n### Code Quality\n```bash\n# Format code\npoetry run black src/ tests/\npoetry run isort src/ tests/\n\n# Linting\npoetry run flake8 src/ tests/\npoetry run mypy src/\n\n# All quality checks\nmake lint\n```\n\n### Building Documentation\n```bash\n# Serve locally\npoetry run mkdocs serve\n\n# Build static site\npoetry run mkdocs build\n```\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.\n\n## Adding New Parsers\n\nTo add support for a new project type, follow these steps:\n\n1. Create a parser in `src/domd/parsers/`\n2. Implement the parser interface\n3. Add tests in `tests/parsers/`\n4. Update documentation\n\nExample parser structure:\n```python\nfrom .base import BaseParser\n\nclass NewProjectParser(BaseParser):\n    def can_parse(self, file_path: Path) -\u003e bool:\n        return file_path.name == \"config.yaml\"\n\n    def parse_commands(self, file_path: Path) -\u003e List[Dict]:\n        # Implementation here\n        pass\n```\n\n## 📄 License\n\nThis project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.\n\n## 🙏 Acknowledgments\n\n- Inspired by the need for automated project health monitoring\n- Built with [Poetry](https://python-poetry.org/) for dependency management\n- Uses [pytest](https://pytest.org/) for testing framework\n- Documentation powered by [MkDocs](https://www.mkdocs.org/)\n\n## 📊 Project Stats\n\n- **Languages Supported**: 10+\n- **File Types Detected**: 20+\n- **Command Types**: 50+\n- **Python Versions**: 3.8+\n\n## 🔗 Links\n\n- [Documentation][docs]\n- [PyPI Package][pypi]\n- [GitHub Repository][github]\n- [Issue Tracker][issues]\n- [Changelog][changelog]\n\n[docs]: https://domd.readthedocs.io\n[pypi]: https://pypi.org/project/domd/\n[github]: https://github.com/wronai/domd\n[issues]: https://github.com/wronai/domd/issues\n[changelog]: https://github.com/wronai/domd/blob/main/CHANGELOG.md\n\n## 💡 Use Cases\n\n- **Pre-deployment Checks**: Verify all project commands work before deployment\n- **CI/CD Integration**: Add as a quality gate in your pipeline\n- **Onboarding**: Help new developers identify setup issues\n- **Project Maintenance**: Regular health checks for legacy projects\n- **Documentation**: Generate comprehensive command documentation\n\n## ⚡ Quick Examples\n\n### CI/CD Integration (GitHub Actions)\n```yaml\nname: Project Health Check\non: [push, pull_request]\n\njobs:\n  health-check:\n    runs-on: ubuntu-latest\n    steps:\n    - uses: actions/checkout@v3\n    - name: Setup Python\n      uses: actions/setup-python@v4\n      with:\n        python-version: '3.9'\n    - name: Install DoMD\n      run: pip install domd\n    - name: Run Project Health Check\n      run: domd --verbose\n    - name: Upload TODO.md if failures\n      if: failure()\n      uses: actions/upload-artifact@v3\n      with:\n        name: failed-commands\n        path: TODO.md\n```\n\n### Make Integration\n```makefile\n.PHONY: health-check\nhealth-check:\n\t@echo \"Running project health check...\"\n\t@domd --quiet || (echo \"❌ Some commands failed. Check TODO.md\" \u0026\u0026 exit 1)\n\t@echo \"✅ All project commands working!\"\n\n.PHONY: health-report\nhealth-report:\n\t@domd --dry-run --verbose\n```\n\n### Pre-commit Hook\n```yaml\n# .pre-commit-config.yaml\nrepos:\n  - repo: local\n    hooks:\n      - id: domd-check\n        name: Project Command Health Check\n        entry: domd\n        language: system\n        pass_filenames: false\n        always_run: true\n```\n\n[docker-badge]: https://img.shields.io/badge/Docker-Supported-2496ED?logo=docker\n[docker-url]: https://www.docker.com/\n[docs-badge]: https://img.shields.io/badge/Docs-Read%20the%20Docs-blue\n[docs-url]: https://wronai.github.io/domd/\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwronai%2Fdomd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwronai%2Fdomd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwronai%2Fdomd/lists"}