/ PLAYBOOK.scm
PLAYBOOK.scm
1 ;; SPDX-License-Identifier: AGPL-3.0-or-later 2 ;; SPDX-FileCopyrightText: 2025 Hyperpolymath Contributors 3 ;; 4 ;; PLAYBOOK.scm - Operational runbooks and procedures 5 6 (playbook 7 (version 1) 8 (project "bebop-v-ffi") 9 10 (runbooks 11 ((id "add-new-message-type") 12 (description "Add a new Bebop message type to the FFI") 13 (steps 14 "1. Add message to schemas/*.bop" 15 "2. Run scripts/gen_c_from_schema.sh" 16 "3. Add corresponding struct to include/bebop_v_ffi.h" 17 "4. Add decode/encode functions to header" 18 "5. Update v/bebop_bridge.v with V bindings" 19 "6. Implement in Zig (implementations/zig/)" 20 "7. Add golden test vectors" 21 "8. Update docs if needed")) 22 23 ((id "add-implementation") 24 (description "Add a new language implementation (e.g., Rust)") 25 (steps 26 "1. Create implementations/<lang>/ directory" 27 "2. Implement all functions from bebop_v_ffi.h" 28 "3. Use VBytes for all byte slices" 29 "4. Implement context-based allocation" 30 "5. Pass all golden vector tests" 31 "6. Document build process" 32 "7. Add to CI matrix")) 33 34 ((id "release-checklist") 35 (description "Steps before tagging a release") 36 (steps 37 "1. All golden vector tests pass" 38 "2. ABI header unchanged or version bumped" 39 "3. CHANGELOG updated" 40 "4. STATE.scm updated" 41 "5. Docs reflect current state" 42 "6. CI green on all platforms" 43 "7. Tag with semantic version")) 44 45 ((id "debug-decode-failure") 46 (description "Troubleshoot decode failures") 47 (steps 48 "1. Check wire bytes against golden vectors" 49 "2. Verify framing (4-byte length prefix)" 50 "3. Check endianness (little-endian)" 51 "4. Validate schema version match" 52 "5. Check context not already freed" 53 "6. Run with debug logging enabled")) 54 55 ((id "abi-breaking-change") 56 (description "Process for ABI-breaking changes") 57 (steps 58 "1. Document reason in ADR" 59 "2. Bump major version" 60 "3. Update all implementations" 61 "4. Update V bindings" 62 "5. Regenerate golden vectors" 63 "6. Notify downstream consumers" 64 "7. Update migration guide"))) 65 66 (emergency-procedures 67 ((id "revert-bad-release") 68 (steps 69 "1. git revert to last known good" 70 "2. Tag new patch release" 71 "3. Notify consumers" 72 "4. Post-mortem in docs/incidents/"))))