| name | xtarterize |
| description | Apply production-grade conformance configurations (linting, type checking, CI, editor settings, AI skills, release tooling) to JS/TS projects. Scans package.json and config files to auto-detect framework, bundler, and styling, then resolves applicable tasks. Use when user mentions "xtarterize", "conformance", "setup linting", "add CI", "configure project", "init xtarterize", or any task name like "lint/biome", "ts/strict", or "ci/workflow". |
xtarterize
Scans any JS/TS project and applies curated configs via a task-based engine. Always use --format json for agent-driven invocations.
When this skill loads
This skill is activated when the user asks about project conformance, linting setup, CI, or any xtarterize task. Upon loading:
- Assess the ask - is the user requesting a full setup (
init), a single task (add), a status check (check), a task search (query), or diagnostics (doctor)?
- Check current state first - run
check --format json to understand what's already configured before proposing changes
- Never guess task IDs - load the task reference before using
add
- Always use
--format json - parse structured output, never terminal text
Quick reference
npx xtarterize check --format json
npx xtarterize diff --format json
npx xtarterize list --format json
npx xtarterize query "strict typescript" --format json
npx xtarterize doctor --format json
npx xtarterize add lint/biome --format json
npx xtarterize init --format json --yes
JSON parsing patterns
After each command, parse the JSON to decide the next action:
| Command | Parse this field | To decide |
|---|
check --format json | tasks[].status | If any status is "new" or "patch", run init or add |
check --format json | diagnostics[].status | If any is "fail", run doctor before proceeding |
diff --format json | Array length | If [], nothing to change. If non-empty, show diffs to user |
diff --format json | [].filepath | Which files will be modified |
diff --format json | [].stats.added + removed | Magnitude of changes per file |
list --format json | tasks[].status | Find the right task ID to pass to add |
list --format json | profile | Understand the detected stack (framework, bundler, etc.) |
doctor --format json | diagnostics[].status | Any "fail" needs fixing; "warn" is advisory |
init --format json | ok | If false, something went wrong - check stderr |
query --format json | results[].relevance | Score >= threshold means relevant. Use results[].signals to see which fields matched strongest |
query --format json | results[].taskId | Pass to add to apply the matched task |
query --format json | count | If 0, no tasks met the threshold - broaden query or lower --threshold |
All commands
| Command | Purpose | Flags (always add --format json) |
|---|
init | Apply all applicable tasks | --yes, --dry-run, --skip <ids>, --only <ids>, --include-conflicts, --compose <query>, --cwd <path> |
sync | Update existing configs | Same flags as init |
diff | Preview pending changes | --cwd <path> |
check | Audit conformance per task | --verbose, --cwd <path> |
add <id> | Apply one task | --cwd <path> |
list | List tasks with statuses | --cwd <path> |
query <query> | Search tasks by natural language | --limit <n>, --threshold <n>, --cwd <path> |
restore <file> | Recover from backup | Interactive only |
doctor | Environment diagnostics | --verbose, --cwd <path> |
Task statuses: "new" (will create), "patch" (will update), "skip" (conformant), "conflict" (needs review - require --include-conflicts).
Agent workflows
Initialize a project
out=$(npx xtarterize check --format json --cwd "$dir")
out=$(npx xtarterize diff --format json --cwd "$dir")
out=$(npx xtarterize init --format json --yes --cwd "$dir")
Add one task
out=$(npx xtarterize add ts/strict --format json --cwd "$dir")
Diagnose failures
out=$(npx xtarterize doctor --format json --cwd "$dir")
Error handling
| Signal | Likely cause | Fix |
|---|
add <id> → "Task not found" | Wrong task ID | list --format json, parse tasks[].id |
doctor shows tool not installed | Missing dep | xtarterize only writes configs; user may need to install separately |
Task shows "conflict" | Config differs | Never auto-apply - present to user, only with --include-conflicts |
--cwd fails preflight | No package.json | Verify path exists and is a JS/TS project |
query returns empty results | Query too narrow or no matching tasks | Broaden query, try synonyms, or lower --threshold |
Anti-patterns
- NEVER run
init --yes without diff --format json first on existing projects
- NEVER edit
.xtarterize/backups/ - use restore to recover
- NEVER use
--include-conflicts without user approval
- NEVER parse terminal output - always use
--format json
- NEVER guess task IDs - load references/tasks.md first
Reference files
- Load references/tasks.md before
add - find exact task IDs. MANDATORY - READ ENTIRE FILE.
- Load references/commands.md for detailed flag descriptions and JSON output shapes. Do NOT load for basic usage - covered above.