-
Notifications
You must be signed in to change notification settings - Fork 6.9k
Description
No matter how many times I try to adjust the constitution/spec/plan/tasks, I cannot get Spec Kit to reliably ensure all tests are passing when it finishes a task. Much of this appears to be the context rot and the LLM "forgetting" about end-of-task guardrails. I've filed an issue with vscode copilot chat to help with this, but the core problem is that the Spec Kit workflow doesn't offer a clear way to deal with this.
I can type "fix the following broken tests, ensuring that you're respecting the constitution/spec/plan/tasks. Ensure that you're understanding if it's the code that is broken or the tests that are broken and fix appropriately. At the end of this, YOU MUST RERUN THE ENTIRE TEST SUITE, fixing any new broken tests."
But that's a pain, so I added a /fixtests command that I can easily run in a new session. However, there are other guardrails, this won't fix, such as "halt after each chunk of work and let the user commit." It works at first, but as context rot sets in, it doesn't and Spec Kit happily commits the changes for me.
I don't have a clear solution for this, but "end of task" guardrails that must never be skipped are routinely skipped. It would be nice if there was some way of addressing this. I keep trying to make tasks as small as possible, but some problems, even when broken into small chunks, turn out to be hard problems.