openspec update --dry-run --json: say what an update would change, without changing it
Maintainers usually reply within 2 days
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 38/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- cli, typescript
Research direction
Start with the openspec update command, which the issue says has to report every file it would add, change or delete, including files outside the repo such as home-folder skills and the settings file. Find where the update step decides and writes those paths, and separate planning from writing. Done when openspec update --dry-run --json prints the planned list and writes nothing, and a test runs a dry run and a real update on the same fixture and checks that the lists match.
Written by the indexing model from the issue text.
Description
The ask
Add a way to ask openspec update what it would change, without changing anything:
openspec update --dry-run --json
It prints the list of files it would add, change or delete. It writes nothing.
Why
OpenSpec Desktop shows people what an update will change before they agree to it.
Today the CLI can't tell us that. So the app does a workaround:
- Copy the repository's agent folders (
.claude,.cursor, …) into a temp folder - Run
openspec updateon the copy - Compare the copy before and after
This workaround keeps breaking:
- It's slow and can fail. Claude Code keeps whole copies of the repo in
.claude/worktrees(81 GB on one machine). The copy hit its size limit, and the update check failed for every repository. Fixed for now in Fission-AI/openspec-desktop#100 by skipping that folder. - It has to guess what to copy. If we copy too little, the preview is wrong and nobody notices. If we copy too much, it's slow or fails.
If the CLI tells us the plan itself, there's no copy, no size limit and no guessing.
What the output could look like
{
"changes": [
{ "path": ".claude/skills/openspec-explore/SKILL.md", "action": "update", "tool": "claude" },
{ "path": ".claude/commands/opsx/old-name.md", "action": "delete", "tool": "claude" },
{ "path": "~/.codex/skills/openspec-propose/SKILL.md", "action": "add", "tool": "codex" }
]
}
It needs to:
- Cover every file
updatewould touch, including files outside the repository (home-folder skills, OpenSpec's settings file). - Write nothing.
- Give the same answer the real
updatewould act on.
Done when
openspec update --dry-run --jsonexists and writes nothing- Its list matches what a real
openspec updatethen changes (a test runs both and compares) - OpenSpec Desktop can stop making scratch copies
- Dominant language
- TypeScript
- Stars
- 71.6k
- Forks
- 4.9k
- Avg merge
- 2d 6h
- Merged PRs (30d)
- 82
Getting set up
Starts the project's dev container in your browser, under your own GitHub account.
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Fission-AI/OpenSpec
-
bug needs-triage
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Fission-AI/OpenSpec#2099 ·
Maintainers usually reply within 2 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Fission-AI/OpenSpec#2098 ·
Maintainers usually reply within 2 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Fission-AI/OpenSpec#1966 · 1 comment ·
Maintainers usually reply within 2 days
-
feat(schemas): open each proposal with a short review focusPossibly taken @GaoSSR claimed this 27 days ago. Opendesign-review
Difficulty 1/5 1-3 hours Newbie friendliness 90/100
Fission-AI/OpenSpec#1908 ·
Maintainers usually reply within 2 days
-
validate: a scenario with no WHEN/GIVEN or THEN step counts as a scenario and passesPossibly taken @artemasmith claimed this 3 days ago. Open
Difficulty 3/5 1-2 days Newbie friendliness 68/100
Fission-AI/OpenSpec#2078 · 1 comment ·
Maintainers usually reply within 2 days
All issues in Fission-AI/OpenSpec
Similar issues
-
documentation good first issue
Difficulty 2/5 Half a day Newbie friendliness 72/100
sujithputta02/Esapay#13 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
ehmpathy/rhachet-roles-bhuild#468 ·
Maintainers usually reply within 1 day
-
Share dialog: the address book's contact count reads "1 contacts" (no singular form in any language)Possibly taken @chibenwa claimed this today. Openai-driven-qa bug claude Cosmetic
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
linagora/twake-contacts-frontend#271 · 1 comment ·
Maintainers usually reply within 1 day
-
factory-active task-identify-harness-labels-done task-identify-issue-type-done
Difficulty 1/5 Under an hour Newbie friendliness 70/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Koenkk/zigbee2mqtt#33402 ·
Maintainers usually reply within 1 day