diff --git a/.kiro/hooks/restore-kiro-config.kiro.hook b/.kiro/hooks/restore-kiro-config.kiro.hook
new file mode 100644
index 0000000..f708638
--- /dev/null
+++ b/.kiro/hooks/restore-kiro-config.kiro.hook
@@ -0,0 +1,12 @@
+{
+ "name": "Restore Kiro Config",
+ "version": "1.0.0",
+ "description": "Restores .kiro specs, hooks, and agents from ops/records after switching back to master (where .kiro is gitignored and gets wiped by branch switches)",
+ "when": {
+ "type": "userTriggered"
+ },
+ "then": {
+ "type": "runCommand",
+ "command": "git checkout ops/records -- .kiro/specs/ .kiro/hooks/ .kiro/agents/ .kiro/steering/ && git reset HEAD .kiro/"
+ }
+}
diff --git a/.kiro/steering/workflow.md b/.kiro/steering/workflow.md
index 9e5c5bf..6ff7f2b 100644
--- a/.kiro/steering/workflow.md
+++ b/.kiro/steering/workflow.md
@@ -25,3 +25,55 @@ Each spec folder typically contains:
- Adding to an existing feature — check the spec to understand design constraints
- Investigating unexpected behavior — the spec documents what "correct" looks like
- Refactoring — the spec documents which properties must be preserved
+
+---
+
+## Bug Fix Documentation
+
+When fixing something that is or could be considered a bug, document it with a bug report.
+
+### Process
+
+1. Fix the bug and commit to `master`
+2. Push to both `origin` and `backup` remotes
+3. Stash any uncommitted work: `git stash`
+4. Switch to the `ops/records` branch: `git checkout ops/records`
+5. Add a bug report under `docs/bug-reports/` with the naming convention `--.md`
+6. Commit and push on `ops/records` to both `origin` and `backup`
+7. Switch back to `master`: `git checkout master`
+8. Restore specs (gitignored on master, wiped by branch switch): `git checkout ops/records -- .kiro/specs/` then `git reset HEAD .kiro/specs/`
+9. Pop stash: `git stash pop`
+
+### Bug Report Format
+
+Each bug report follows the **Symptom, Cause, Fix** pattern per bug:
+
+```markdown
+# —
+
+## Summary
+One paragraph describing the scope and root cause category.
+
+**Commit:** `` on `master`
+
+---
+
+## Bug N:
+
+**Symptom:** What the user sees or experiences.
+
+**Cause:** The underlying technical reason.
+
+**Fix:** What was changed and why it resolves the issue.
+
+**Files changed:**
+- `path/to/file.js`
+```
+
+### What Qualifies as a Bug
+
+- Incorrect data display (wrong values, wrong format)
+- UI crashes or blank pages (unhandled exceptions)
+- Features that stopped working after a migration or refactor
+- Missing scope/filter application that was designed but not wired up
+- Regressions from dependency or platform changes (e.g., SQLite to PostgreSQL)