Answers before the workflow gets expensive.
Most CafeKit mistakes come from skipping scope, skipping validation, or treating chat as state. This page clarifies the common edge cases.
Is OpenCode supported?#
Yes. The installer writes a self-contained .opencode/ runtime with skills, agents, commands, rules, references, scripts, runtime.json, and TypeScript plugins under .opencode/plugins/. It also writes a root AGENTS.md and merges opencode.json. OpenCode does not share files with .claude/.
Should every task start with /hapo:specs?#
No. Use specs for meaningful feature work. Use /hapo:debug and /hapo:hotfix for bugs. Tiny local fixes may not need a full spec.
Why does CafeKit care about task files?#
Task files preserve scope, steps, completion criteria, and evidence. They are the bridge between human intent and machine-checkable state.
Is NO_TESTS a pass?#
No. NO_TESTS only means no real test suite ran. Build health, runtime proof, and task evidence still matter.
Can a task be marked done from chat?#
No. done requires physical state sync in spec.json and task markdown after fresh verification.
What should I use for production bugs?#
Start with /hapo:debug when root cause is unknown. Use /hapo:hotfix after diagnosis or when the bug and target fix are already clear.