1use serde::Serialize;
7
8#[derive(Debug, Clone, PartialEq, Eq, Serialize)]
10pub struct GitOverlayGuide {
11 pub topic: &'static str,
12 pub summary: &'static str,
13 pub steps: &'static [&'static str],
14}
15
16pub const GIT_OVERLAY_GUIDE: GitOverlayGuide = GitOverlayGuide {
18 topic: "git-overlay",
19 summary: "Use Heddle as the daily loop with explicit Git projection compatibility: status, diff, commit, start --path, ready, land, push, undo, verify.",
20 steps: &[
21 "heddle status",
22 "heddle init",
23 "heddle diff",
24 "heddle capture -m <message>",
25 "heddle start <name> --path ../<name>",
26 "heddle ready",
27 "heddle land --thread <name>",
28 "heddle push",
29 "heddle undo",
30 "heddle verify",
31 ],
32};
33
34#[cfg(test)]
35mod tests {
36 use super::*;
37
38 #[test]
39 fn guide_shape() {
40 assert_eq!(GIT_OVERLAY_GUIDE.topic, "git-overlay");
41 assert_eq!(GIT_OVERLAY_GUIDE.steps.len(), 10);
42 let v = serde_json::to_value(&GIT_OVERLAY_GUIDE).unwrap();
43 assert_eq!(v["steps"].as_array().unwrap().len(), 10);
44 }
45}