spec-kitty / spec-kitty/spec-kitty

bug: stale/frozen worktree lane rewind is reported as generic force override instead of targeted diagnostic

Open
#1,711 1 comment 0 reactions 0 assignees View on GitHub
git priority:P2 reliability workflow
Dominant language
Python
Stars
1.6k
Forks
165
Avg merge
14h 22m
Merged PRs (30d)
343

Description

## Summary

During a watched Spec Kitty session on 2026-06-04, retrospective analysis showed a forced lane override on WP02. The agent later classified it as a known frozen-worktree stale-state quirk on `move-task`, not a real guard failure.

The product currently records force transitions, and merge hollow-review warnings look at force-heavy histories. That is useful, but stale/frozen worktree repair cases need a targeted diagnostic so operators do not read them as review independence failures or arbitrary guard bypasses.

## Current behavior

`move-task` can emit forced backward/rewind transitions, and status snapshots track `force_count`.

Merge then warns about hollow reviews when `force_count >= 2` or reviewer self-approval events are present.

This lumps together different cases:

- real guard override
- self-review fallback
- reviewer rejection rewind
- stale/frozen worktree state repair

## Expected behavior

When `move-task` encounters or repairs stale/frozen worktree state, the event trail should preserve a machine-readable reason/category distinct from generic force override.

Possible shape:

```json
{
"force": true,
"reason": "stale_worktree_repair: ...",
"policy_metadata": {
"force_category": "stale_worktree_repair",
"diagnostic_code": "STALE_WORKTREE_REWIND_REPAIR"
}
}
```

## Acceptance criteria

- Add a reproduction fixture for the frozen/stale worktree rewind case that currently requires/records force.
- The emitted event has a distinct diagnostic/category.
- Merge hollow-review warning excludes or separately reports stale-worktree repair force events.
- `spec-kitty doctor` or status output gives a direct remediation for stale/frozen worktree state.

Contributor guide

Open the contributing guide

Research direction

Start by tracing the move-task force transitions and the status snapshot force_count handling, then follow how merge produces hollow-review warnings. Reproduce the frozen/stale worktree rewind case, inspect the emitted event and the spec-kitty doctor or status output, and verify that the new diagnostic is distinct, warning behavior is separated, and remediation is shown.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli, devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.