.remote-cache/kreuzberg-shared-rules/.ai-rulez/skills/taskfile-best-practices-guidelines/SKILL.md
______________________________________________________________________ ## priority: high # Taskfile Best Practices & Guidelines **Modular Design Principles**: - Each language gets its own task file in `.task/languages/` - Workflows (build, test, lint, e2e) are orchestrated internally in `.task/workflows/` - Configuration separated into `.task/config/` (vars.yml, platforms.yml) - Tool tasks in `.task/tools/` (version-sync, pdfium, pre-commit, docs, smoke) - Main Taskfile.yml is minimal - just
npx skillsauth add kreuzberg-dev/html-to-markdown .remote-cache/kreuzberg-shared-rules/.ai-rulez/skills/taskfile-best-practices-guidelinesInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Modular Design Principles:
.task/languages/.task/workflows/.task/config/ (vars.yml, platforms.yml).task/tools/ (version-sync, pdfium, pre-commit, docs, smoke)Creating New Task Files:
.task/languages/{language}.yml for language-specific tasks{language}: taskfile: .task/languages/{language}.ymltask {language}:build, task {language}:test.dev and .release variants of build/test tasksVariable Management:
.task/config/vars.yml (BUILD_PROFILE, VERSION, paths, OS/ARCH).task/config/platforms.yml (EXE_EXT, LIB_EXT, NUM_CPUS)Task Naming Convention:
task {language}:{action} (e.g., rust:build, python:test, node:lint)task {workflow}:{scope} (e.g., build:all, test:all:fast, lint:check)task {tool}:{action} (e.g., version:sync, pdfium:install):dev, :release, :ci, :fast, :checkTask Description Standards:
desc field for every task (used in task --list)Cross-Platform Considerations:
platforms: [linux, darwin] or platforms: [windows] if OS-specificError Handling:
requires: ["task"] or ensure task is availableignore_error: true sparingly; prefer explicit error handlingCaching & Performance:
cargo build -j {{.NUM_CPUS}}:fast variants for quick validation; full tests in separate tasktask rust:build instead of duplicating build commandsDocumentation & Discovery:
task --list to see all available tasks (requires good desc fields)task {language}: to list all tasks in a namespacetools
Convert HTML to Markdown, Djot, or plain text with structured extraction. Use when writing code that calls html-to-markdown APIs in Rust, Python, TypeScript, Go, Ruby, PHP, Java, C#, Elixir, R, C, or WASM. Covers installation, conversion, configuration, metadata extraction, document structure, and CLI usage.
development
Developer quick start guide with prerequisites, setup, and workflow commands
development
Common task runner commands for build, test, lint, and format workflows
tools
______________________________________________________________________ ## priority: high # Workspace Structure & Project Organization **Rust workspace** (Cargo.toml): crates/{kreuzberg,kreuzberg-py,kreuzberg-node,kreuzberg-ffi,kreuzberg-cli}, packages/ruby/ext/kreuzberg_rb/native, tools/{benchmark-harness,e2e-generator}, e2e/{rust,go}. **Language packages**: packages/{python,typescript,ruby,java,go} - thin wrappers around Rust core. **E2E tests**: Auto-generated from fixtures/ via tools/e2e