Skip to content

fix(templates): replace Claude-only TodoWrite instruction with a generic todo list - #1403

Merged
clay-good merged 1 commit into
mainfrom
fix/generic-todo-tracking
Jul 22, 2026
Merged

fix(templates): replace Claude-only TodoWrite instruction with a generic todo list#1403
clay-good merged 1 commit into
mainfrom
fix/generic-todo-tracking

Conversation

@clay-good

@clay-good clay-good commented Jul 21, 2026

Copy link
Copy Markdown
Collaborator

Status: Ready for review. CI green on all platforms; CodeRabbit reviewed with no actionable comments. Full suite: 2,027 passed; the only local failures are the 17 known environment-only ZshInstaller tests (#1321, fixed separately in #1400).

What was wrong

The generated openspec-propose and openspec-ff-change skills (and their /opsx:propose / /opsx:ff commands) instructed agents to "Use the TodoWrite tool to track progress through the artifacts." TodoWrite is a Claude Code-specific tool — the same templates generate commands for every supported tool, so Codex, Cursor, Gemini, Copilot, and the rest were told to use a tool they don't have. Reported in #643 (and TodoWrite is one of the unsupported references reported for Codex in #1103); the maintainer note on #643 already pointed the way: "this instruction probably needs to be generic anyways."

How it was fixed

The instruction is now runtime-neutral:

-   Use the **TodoWrite tool** to track progress through the artifacts.
+   Use a todo list to track progress through the artifacts.

Applied to all 4 template sites (propose + ff-change, skill and command variants), with the static skills/ copies regenerated via npm run generate:skills and the golden hashes in skill-templates-parity.test.ts updated. Tools with a native todo mechanism (Claude Code) still use it; tools without one track progress however they normally would. No behavior, CLI, or schema changes.

Proof

End-to-end from the built CLI (init --tools claude,codex,cursor, plus a custom-profile run that installs the ff workflow), then inspecting every generated asset:

$ grep -rn "TodoWrite" <project>          # → no matches
$ grep -c "Use a todo list to track progress through the artifacts" ...
.claude/commands/opsx/ff.md:1
.claude/skills/openspec-ff-change/SKILL.md:1
.codex/skills/openspec-ff-change/SKILL.md:1
.cursor/commands/opsx-ff.md:1
.cursor/skills/openspec-ff-change/SKILL.md:1

(Same result for the propose assets across all three tools.)

Notes

Fixes #643

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Bug Fixes
    • Updated workflow guidance to use a tool-neutral todo list for tracking progress.
    • Removed references to a Claude-specific task-tracking tool from proposal and fast-forward instructions.
  • Documentation
    • Aligned generated skill and command instructions with the updated progress-tracking guidance.

@clay-good
clay-good requested a review from TabishB as a code owner July 21, 2026 00:49
@coderabbitai

coderabbitai Bot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 3a2a51e6-fab4-44c2-ba7b-a41cc8b1e223

📥 Commits

Reviewing files that changed from the base of the PR and between d7be4fa and 55ff3ca.

📒 Files selected for processing (6)
  • .changeset/generic-todo-tracking.md
  • skills/openspec-ff-change/SKILL.md
  • skills/openspec-propose/SKILL.md
  • src/core/templates/workflows/ff-change.ts
  • src/core/templates/workflows/propose.ts
  • test/core/templates/skill-templates-parity.test.ts
🚧 Files skipped from review as they are similar to previous changes (3)
  • src/core/templates/workflows/propose.ts
  • src/core/templates/workflows/ff-change.ts
  • test/core/templates/skill-templates-parity.test.ts

📝 Walkthrough

Walkthrough

Propose and fast-forward workflow instructions now use generic todo lists instead of the Claude-specific TodoWrite tool. Corresponding generated skill content, parity hashes, and the package patch changeset were updated.

Changes

Runtime-neutral todo tracking

Layer / File(s) Summary
Update propose and fast-forward instructions
src/core/templates/workflows/*, skills/openspec-*-change/SKILL.md, skills/openspec-propose/SKILL.md
Replaces TodoWrite references with generic todo-list progress tracking in propose and fast-forward templates and skills.
Refresh parity checks and release metadata
test/core/templates/skill-templates-parity.test.ts, .changeset/generic-todo-tracking.md
Updates template and generated-skill hash baselines and adds a patch changeset describing the wording changes.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Possibly related PRs

Suggested reviewers: tabishb, alfred-openspec

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely summarizes the main template change.
Linked Issues check ✅ Passed The PR replaces the TodoWrite instruction with a generic todo-list instruction as required by issue #643.
Out of Scope Changes check ✅ Passed The changes stay within the template, static skill copy, and hash update scope needed for the TodoWrite wording change.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/generic-todo-tracking

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@alfred-openspec alfred-openspec left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All four generated workflow variants now use runtime-neutral todo guidance, the checked-in skills regenerate cleanly, and no TodoWrite references remain. Exact-head build, 20 template/parity tests, CodeRabbit, and the full cross-platform matrix passed.

…ric todo list

The propose and ff-change skill/command templates told agents to use the
TodoWrite tool, which only exists in Claude Code. The same templates
generate commands for every supported tool, so Codex, Cursor, Gemini,
and the rest were instructed to use a tool they don't have. The
instruction is now runtime-neutral.

Fixes #643

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

@alfred-openspec alfred-openspec left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The rebase preserves the runtime-neutral todo guidance across all four propose and fast-forward variants. Exact-head build, clean skill regeneration, a zero-result TodoWrite scan, 37 focused generation/parity tests, and the full CI/CodeQL matrix pass.

@clay-good
clay-good added this pull request to the merge queue Jul 22, 2026
Merged via the queue into main with commit 2d6c447 Jul 22, 2026
14 checks passed
@clay-good
clay-good deleted the fix/generic-todo-tracking branch July 22, 2026 15:12
pull Bot pushed a commit to igaozp/OpenSpec that referenced this pull request Jul 27, 2026
…neutral ask-the-user guidance (Fission-AI#1464)

The workflow skill/command templates told agents to use the
AskUserQuestion tool, which only exists in Claude Code. The same
templates generate skills and commands for every supported tool, so
OpenCode (whose tool is named question), Factory Droid (whose native
AskUser parser errors on the instruction), Codex, and the rest were
instructed to use a tool they don't have. The guidance is now
runtime-neutral, matching the TodoWrite fix in Fission-AI#1403.

Fixes Fission-AI#920
Fixes Fission-AI#717

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fast forward command instructs to use TodoWrite tool but claude no longer has it

2 participants