Skip to content

taskless rules create: spec version upgrade loop with init #1

Description

@thecodedrift

Summary

taskless rules create rejects version: "2026-03-02" in taskless.json, requiring 2026-03-03 or later and suggesting taskless init to fix it. However, taskless init only reinstalls skills/commands — it does not update the taskless.json config file, creating an unresolvable loop.

Environment

  • CLI version: 0.0.7 (pnpm dlx @taskless/cli@latest)
  • Config spec version: 2026-03-02 (in .taskless/taskless.json)
  • Required spec version: 2026-03-03
  • Platform: Linux (WSL2)

Reproduction Steps

  1. Have an existing Taskless project initialized with spec version 2026-03-02
  2. Run taskless rules create:
    echo '{"prompt": "detect console.log"}' | pnpm dlx @taskless/cli@latest rules create --json
  3. Observe error: Spec version 2026-03-02 is too old for rule generation. Update to 2026-03-03 or later by re-running 'taskless init'
  4. Run the suggested fix: pnpm dlx @taskless/cli@latest init
  5. Output shows skills reinstalled, but .taskless/taskless.json still shows "version": "2026-03-02"
  6. Re-running rules create fails with the same error — infinite loop

Current .taskless/taskless.json

{
  "version": "2026-03-02",
  "astGrepVersion": "0.38.0",
  "orgId": 32312867,
  "repositoryUrl": "https://github.com/taskless/taskless"
}

Root Cause

The init command's scope is limited to skills/commands installation (.claude/skills/, .claude/commands/). It does not touch .taskless/taskless.json. The error message's remediation ("re-run taskless init") is incorrect because init cannot fix the problem.

Possible Resolutions

  1. init should also migrate taskless.json — When taskless init detects an outdated spec version, it should bump the version field (and apply any schema migrations). This makes the error message's suggestion actually work.

  2. Add a dedicated taskless migrate or taskless upgrade command — Separate skill installation from config migration. Update the error message to reference this command instead.

  3. Fix the error message — If init is intentionally not supposed to touch config, the error message should provide the correct remediation.

  4. Scaffold updates via PR — For managed repos, Taskless could open a PR to update the config scaffold when breaking spec changes are introduced (similar to Dependabot/Renovate), preventing users from hitting this issue.

Workaround

Manually editing .taskless/taskless.json to set "version": "2026-03-03" may unblock rule creation, but it's unclear if there are other schema changes between versions that need to be applied.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions