source_monitor 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +17 -0
  3. data/Gemfile.lock +1 -1
  4. data/README.md +15 -11
  5. data/config/coverage_baseline.json +350 -107
  6. data/docs/deployment.md +8 -0
  7. data/docs/gh-cli-workflow.md +5 -1
  8. data/docs/setup-validation-log.md +36 -0
  9. data/docs/setup.md +144 -0
  10. data/lib/generators/source_monitor/install/install_generator.rb +1 -1
  11. data/lib/source_monitor/setup/bundle_installer.rb +17 -0
  12. data/lib/source_monitor/setup/cli.rb +51 -0
  13. data/lib/source_monitor/setup/dependency_checker.rb +165 -0
  14. data/lib/source_monitor/setup/detectors.rb +67 -0
  15. data/lib/source_monitor/setup/gemfile_editor.rb +29 -0
  16. data/lib/source_monitor/setup/initializer_patcher.rb +59 -0
  17. data/lib/source_monitor/setup/install_generator.rb +22 -0
  18. data/lib/source_monitor/setup/migration_installer.rb +40 -0
  19. data/lib/source_monitor/setup/node_installer.rb +27 -0
  20. data/lib/source_monitor/setup/prompter.rb +34 -0
  21. data/lib/source_monitor/setup/requirements.rb +51 -0
  22. data/lib/source_monitor/setup/shell_runner.rb +14 -0
  23. data/lib/source_monitor/setup/verification/action_cable_verifier.rb +79 -0
  24. data/lib/source_monitor/setup/verification/printer.rb +24 -0
  25. data/lib/source_monitor/setup/verification/result.rb +68 -0
  26. data/lib/source_monitor/setup/verification/runner.rb +24 -0
  27. data/lib/source_monitor/setup/verification/solid_queue_verifier.rb +75 -0
  28. data/lib/source_monitor/setup/verification/telemetry_logger.rb +33 -0
  29. data/lib/source_monitor/setup/workflow.rb +99 -0
  30. data/lib/source_monitor/version.rb +1 -1
  31. data/lib/source_monitor.rb +19 -0
  32. data/lib/tasks/source_monitor_setup.rake +39 -0
  33. data/tasks/prd-setup-workflow-streamlining.md +68 -0
  34. data/tasks/tasks-setup-workflow-streamlining.md +51 -0
  35. metadata +25 -2
  36. data/docs/installation.md +0 -144
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 90320cedd371ba574e94a72530899c9c186ee1e90f6b27dd221dca6e5831a626
4
- data.tar.gz: 67db4a9fb817b386cbdffd675c44ec8e32cfa806ad4be284e95a80756180cf82
3
+ metadata.gz: 3831f3ec3fa841e1e15fb16fc7ab780177d35353fce96975338c2e7aa129bd9f
4
+ data.tar.gz: ac970a0b226c1b8c1c9a266a892754941d92173b8753ac37d2a4cd89f1895fd9
5
5
  SHA512:
6
- metadata.gz: 1f63265ddc4b7f5a2989a91c04b61645e573ed71b68aa0348197f0f0afb34d8f36b9d8127613d7c63b25df39d7e20603c31cfac445b9f431188bdaf4724f46ee
7
- data.tar.gz: 6ceed78ef9db2de1d61904745c326016529a06f5ad7c56c07f0428bebf4d6c237a769532ec0e6ca5be795970833389e67c9a503b47283e48aa7af524a321d969
6
+ metadata.gz: 46dc5a034c7b7c294877d124a59b632aec2cfbc420544835b06d0809a7e8d574930ffc86cd5bfbceb436516a0bc88b55ffdb34a38a0bb873ae3892bb3615b503
7
+ data.tar.gz: 542c9c82713daadb6f0cfa4151ab99df55440a8e86a553ee46b2223806096f6d36d1e1987890f50aaad83132498c674793cae11c11752a897daca6c36efb1a94
data/CHANGELOG.md CHANGED
@@ -15,6 +15,23 @@ All notable changes to this project are documented below. The format follows [Ke
15
15
 
16
16
  - No unreleased changes yet.
17
17
 
18
+ ## [0.1.2] - 2025-11-13
19
+
20
+ ### Added
21
+
22
+ - Guided setup workflow (`bin/source_monitor install`) with dependency checks, Gemfile automation, migration deduplication, initializer patching, and Devise prompt support.
23
+ - Reusable verification tooling (`bin/source_monitor verify` / `bin/rails source_monitor:setup:verify`) plus Solid Queue/Action Cable verifiers, JSON output, and optional telemetry logging.
24
+ - Fresh documentation (`docs/setup.md`, rollout checklist in `docs/deployment.md`, validation log) outlining prerequisites, rollback steps, and CI adoption guidance.
25
+
26
+ ### Fixed
27
+
28
+ - Enforced coverage/diff checks in CI, added `bin/check-setup-tests`, and expanded test suites so new setup workflow files stay covered.
29
+ - Hardened host harness env defaults to avoid `root` Postgres role errors during CI/app template generation.
30
+
31
+ ### Testing
32
+
33
+ - Full suite (`bin/rails test`), `bin/test-coverage`, `bin/check-diff-coverage`, and `bin/rubocop` all pass on Ruby 3.4.4.
34
+
18
35
  ## [0.1.1] - 2025-11-09
19
36
 
20
37
  ### Changed
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- source_monitor (0.1.1)
4
+ source_monitor (0.1.2)
5
5
  cssbundling-rails (~> 1.4)
6
6
  faraday (~> 2.9)
7
7
  faraday-follow_redirects (~> 0.4)
data/README.md CHANGED
@@ -20,25 +20,29 @@ SourceMonitor is a production-ready Rails 8 mountable engine for ingesting, norm
20
20
 
21
21
  ## Quick Start (Host Application)
22
22
 
23
- > **Note on commands:** The examples below use bare `bundle` and `bin/rails` commands. If you use rbenv, prefix them with `rbenv exec` (e.g., `rbenv exec bundle install`). For Docker/container environments, run commands directly or via your container runtime. Adjust to match your Ruby version management approach.
23
+ > **Command prefixes:** Examples below show bare `bundle`, `bin/rails`, and `bin/source_monitor`. If you use rbenv/asdf or containerized tooling, prefix/adjust commands accordingly so they run inside your Ruby environment.
24
24
 
25
- ### Initial Install
26
- 1. Add `gem "source_monitor", github: "dchuk/source_monitor"` to your Gemfile and run `bundle install`.
27
- 2. Install the engine: `bin/rails generate source_monitor:install --mount-path=/source_monitor` (updates routes, drops the initializer, prints doc links).
28
- 3. Copy migrations: `bin/rails railties:install:migrations FROM=source_monitor`.
29
- 4. Apply migrations: `bin/rails db:migrate` (creates sources/items/logs tables, Solid Cable messages, and Solid Queue schema when required).
30
- 5. Install frontend tooling if you plan to extend engine assets: `npm install`.
31
- 6. Start background workers: `bin/rails solid_queue:start` (or your preferred process manager).
32
- 7. Boot your app and visit the mount path you chose (default `/source_monitor`) to explore the dashboard and confirm Solid Queue metrics render.
25
+ ### Recommended: Guided Workflow
26
+ 1. **Optional prerequisite check:** `bin/rails source_monitor:setup:check`
27
+ 2. **Run the guided installer:** `bin/source_monitor install --yes`
28
+ - Prompts for the mount path (default `/source_monitor`), adds the gem entry when missing, runs `bundle install`, `npm install` (when `package.json` exists), copies/deduplicates migrations, patches the initializer, and runs verification.
29
+ 3. **Start workers / scheduler:** `bin/rails solid_queue:start` and, if you use recurring jobs, `bin/jobs --recurring_schedule_file=config/recurring.yml`.
30
+ 4. **Verify anytime:** `bin/source_monitor verify` (also exposed as `bin/rails source_monitor:setup:verify`). The command prints a human summary plus JSON so CI can gate on Solid Queue and Action Cable health.
31
+ 5. **Visit the dashboard** at the chosen mount path and trigger “Fetch Now” on a source to confirm everything is wired.
33
32
 
34
- Detailed instructions, optional flags, and verification steps live in [docs/installation.md](docs/installation.md), with troubleshooting advice in [docs/troubleshooting.md](docs/troubleshooting.md).
33
+ See [docs/setup.md](docs/setup.md) for the full workflow (prereq table, rollback steps, telemetry flag, Devise system test template).
34
+
35
+ ### Manual Install (Advanced)
36
+ Prefer explicit Rails generator steps or need to customize each phase? The same document covers a full **Manual Installation** section so you can copy/paste each command into bespoke pipelines.
37
+
38
+ Troubleshooting advice lives in [docs/troubleshooting.md](docs/troubleshooting.md).
35
39
 
36
40
  ### Upgrading SourceMonitor
37
41
  1. Bump the gem version in your host `Gemfile` and run `bundle install` (or `bundle update source_monitor` when targeting a specific release).
38
42
  2. Re-run `bin/rails railties:install:migrations FROM=source_monitor` and then `bin/rails db:migrate` to pick up schema changes.
39
43
  3. Compare your `config/initializers/source_monitor.rb` against the newly generated template for configuration diffs (new queue knobs, HTTP options, etc.).
40
44
  4. Review release notes for optional integrations—when enabling Mission Control, ensure `mission_control-jobs` stays mounted and linked via `config.mission_control_dashboard_path`.
41
- 5. Smoke test Solid Queue workers, Action Cable, and admin UI flows after the upgrade.
45
+ 5. Smoke test Solid Queue workers, Action Cable, and admin UI flows after the upgrade, and run `bin/source_monitor verify` so CI/deploys confirm workers/cable health before rollout.
42
46
 
43
47
  ## Example Applications
44
48
  - `examples/basic_host/template.rb` – Minimal host that seeds a Rails blog source and redirects `/` to the dashboard.
@@ -132,21 +132,21 @@
132
132
  82
133
133
  ],
134
134
  "lib/source_monitor.rb": [
135
- 28,
136
- 97,
137
- 113,
138
- 117,
139
- 121,
140
- 125,
141
- 126,
142
- 127,
143
- 129,
144
- 131,
145
- 137,
146
- 141,
147
- 143,
135
+ 29,
136
+ 116,
137
+ 132,
138
+ 136,
139
+ 140,
148
140
  144,
149
- 146
141
+ 145,
142
+ 146,
143
+ 148,
144
+ 150,
145
+ 156,
146
+ 160,
147
+ 162,
148
+ 163,
149
+ 165
150
150
  ],
151
151
  "lib/source_monitor/analytics/source_activity_rates.rb": [
152
152
  44
@@ -458,28 +458,28 @@
458
458
  121
459
459
  ],
460
460
  "lib/source_monitor/engine.rb": [
461
- 47,
462
- 51,
463
- 52,
461
+ 49,
464
462
  53,
465
463
  54,
466
- 59,
467
- 60,
464
+ 55,
465
+ 56,
468
466
  61,
469
467
  62,
470
468
  63,
471
469
  64,
472
470
  65,
473
- 68,
474
- 69,
471
+ 66,
472
+ 67,
475
473
  70,
476
- 73,
477
- 74,
474
+ 71,
475
+ 72,
476
+ 75,
478
477
  76,
479
- 77,
480
- 96,
481
- 97,
482
- 99
478
+ 78,
479
+ 79,
480
+ 98,
481
+ 99,
482
+ 101
483
483
  ],
484
484
  "lib/source_monitor/events.rb": [
485
485
  9,
@@ -823,10 +823,6 @@
823
823
  32,
824
824
  33,
825
825
  37,
826
- 41,
827
- 42,
828
- 45,
829
- 46,
830
826
  50,
831
827
  52,
832
828
  53,
@@ -843,8 +839,6 @@
843
839
  69,
844
840
  70,
845
841
  71,
846
- 77,
847
- 79,
848
842
  84,
849
843
  85,
850
844
  89,
@@ -932,8 +926,7 @@
932
926
  35,
933
927
  39,
934
928
  43,
935
- 44,
936
- 49
929
+ 44
937
930
  ],
938
931
  "lib/source_monitor/items/item_creator.rb": [
939
932
  16,
@@ -1268,6 +1261,13 @@
1268
1261
  77,
1269
1262
  80
1270
1263
  ],
1264
+ "lib/source_monitor/jobs/fetch_failure_subscriber.rb": [
1265
+ 62,
1266
+ 98,
1267
+ 111,
1268
+ 120,
1269
+ 122
1270
+ ],
1271
1271
  "lib/source_monitor/jobs/solid_queue_metrics.rb": [
1272
1272
  20,
1273
1273
  27,
@@ -1330,24 +1330,9 @@
1330
1330
  43,
1331
1331
  48,
1332
1332
  49,
1333
- 54,
1334
1333
  56,
1335
- 60,
1336
- 64,
1337
- 65,
1338
1334
  70,
1339
1335
  71,
1340
- 76,
1341
- 80,
1342
- 85,
1343
- 86,
1344
- 88,
1345
- 90,
1346
- 91,
1347
- 92,
1348
- 93,
1349
- 94,
1350
- 95,
1351
1336
  102,
1352
1337
  103,
1353
1338
  105,
@@ -1397,13 +1382,8 @@
1397
1382
  117
1398
1383
  ],
1399
1384
  "lib/source_monitor/metrics.rb": [
1400
- 10,
1401
- 14,
1402
1385
  18,
1403
1386
  22,
1404
- 26,
1405
- 30,
1406
- 31,
1407
1387
  38,
1408
1388
  39,
1409
1389
  43,
@@ -1412,16 +1392,7 @@
1412
1392
  46,
1413
1393
  48,
1414
1394
  51,
1415
- 52,
1416
- 56,
1417
- 57,
1418
- 59,
1419
- 60,
1420
- 61,
1421
- 62,
1422
- 63,
1423
- 70,
1424
- 74
1395
+ 52
1425
1396
  ],
1426
1397
  "lib/source_monitor/model_extensions.rb": [
1427
1398
  53,
@@ -1465,11 +1436,6 @@
1465
1436
  93
1466
1437
  ],
1467
1438
  "lib/source_monitor/realtime/broadcaster.rb": [
1468
- 33,
1469
- 34,
1470
- 35,
1471
- 37,
1472
- 38,
1473
1439
  42,
1474
1440
  43,
1475
1441
  44,
@@ -1511,20 +1477,11 @@
1511
1477
  148,
1512
1478
  149,
1513
1479
  150,
1514
- 155,
1515
1480
  167,
1516
- 171,
1517
- 180,
1518
1481
  187,
1519
- 191,
1520
- 193,
1521
1482
  195,
1522
- 199,
1523
- 202,
1524
- 204,
1525
1483
  206,
1526
1484
  210,
1527
- 214,
1528
1485
  231,
1529
1486
  233
1530
1487
  ],
@@ -1534,34 +1491,6 @@
1534
1491
  "lib/source_monitor/release/runner.rb": [
1535
1492
  68
1536
1493
  ],
1537
- "lib/source_monitor/scheduler.rb": [
1538
- 12,
1539
- 16,
1540
- 17,
1541
- 21,
1542
- 23,
1543
- 24,
1544
- 25,
1545
- 26,
1546
- 28,
1547
- 29,
1548
- 32,
1549
- 34,
1550
- 43,
1551
- 45,
1552
- 46,
1553
- 47,
1554
- 48,
1555
- 51,
1556
- 55,
1557
- 63,
1558
- 64,
1559
- 68,
1560
- 70,
1561
- 71,
1562
- 72,
1563
- 74
1564
- ],
1565
1494
  "lib/source_monitor/scrapers/base.rb": [
1566
1495
  29,
1567
1496
  33,
@@ -1991,6 +1920,293 @@
1991
1920
  19,
1992
1921
  23
1993
1922
  ],
1923
+ "lib/source_monitor/setup/bundle_installer.rb": [
1924
+ 5,
1925
+ 9
1926
+ ],
1927
+ "lib/source_monitor/setup/cli.rb": [
1928
+ 11,
1929
+ 14,
1930
+ 15,
1931
+ 20,
1932
+ 21,
1933
+ 27,
1934
+ 28,
1935
+ 29,
1936
+ 33,
1937
+ 37,
1938
+ 41,
1939
+ 43,
1940
+ 47
1941
+ ],
1942
+ "lib/source_monitor/setup/dependency_checker.rb": [
1943
+ 23,
1944
+ 27,
1945
+ 31,
1946
+ 35,
1947
+ 43,
1948
+ 47,
1949
+ 48,
1950
+ 50,
1951
+ 54,
1952
+ 58,
1953
+ 62,
1954
+ 66,
1955
+ 70,
1956
+ 75,
1957
+ 79,
1958
+ 85,
1959
+ 86,
1960
+ 87,
1961
+ 89,
1962
+ 100,
1963
+ 102,
1964
+ 106,
1965
+ 107,
1966
+ 109,
1967
+ 113,
1968
+ 114,
1969
+ 116,
1970
+ 121,
1971
+ 126,
1972
+ 130,
1973
+ 137,
1974
+ 144,
1975
+ 151,
1976
+ 158
1977
+ ],
1978
+ "lib/source_monitor/setup/detectors.rb": [
1979
+ 7,
1980
+ 11,
1981
+ 13,
1982
+ 17,
1983
+ 18,
1984
+ 20,
1985
+ 22,
1986
+ 26,
1987
+ 27,
1988
+ 29,
1989
+ 31,
1990
+ 35,
1991
+ 36,
1992
+ 42,
1993
+ 44,
1994
+ 46,
1995
+ 50,
1996
+ 52,
1997
+ 55,
1998
+ 59,
1999
+ 61,
2000
+ 63
2001
+ ],
2002
+ "lib/source_monitor/setup/gemfile_editor.rb": [
2003
+ 9,
2004
+ 13,
2005
+ 15,
2006
+ 16,
2007
+ 18,
2008
+ 19,
2009
+ 25
2010
+ ],
2011
+ "lib/source_monitor/setup/initializer_patcher.rb": [
2012
+ 9,
2013
+ 13,
2014
+ 15,
2015
+ 16,
2016
+ 17,
2017
+ 19,
2018
+ 20,
2019
+ 21,
2020
+ 25,
2021
+ 27,
2022
+ 28,
2023
+ 30,
2024
+ 31,
2025
+ 32,
2026
+ 34,
2027
+ 37,
2028
+ 38,
2029
+ 46,
2030
+ 50
2031
+ ],
2032
+ "lib/source_monitor/setup/install_generator.rb": [
2033
+ 5,
2034
+ 9
2035
+ ],
2036
+ "lib/source_monitor/setup/migration_installer.rb": [
2037
+ 10,
2038
+ 11,
2039
+ 15,
2040
+ 16,
2041
+ 17,
2042
+ 25,
2043
+ 29,
2044
+ 30,
2045
+ 32,
2046
+ 36
2047
+ ],
2048
+ "lib/source_monitor/setup/node_installer.rb": [
2049
+ 7,
2050
+ 8,
2051
+ 12,
2052
+ 14,
2053
+ 15,
2054
+ 23
2055
+ ],
2056
+ "lib/source_monitor/setup/prompter.rb": [
2057
+ 7,
2058
+ 8,
2059
+ 12,
2060
+ 14,
2061
+ 15,
2062
+ 16,
2063
+ 20,
2064
+ 22,
2065
+ 23,
2066
+ 24,
2067
+ 26
2068
+ ],
2069
+ "lib/source_monitor/setup/requirements.rb": [
2070
+ 8,
2071
+ 12,
2072
+ 16,
2073
+ 18,
2074
+ 19,
2075
+ 21,
2076
+ 25,
2077
+ 26,
2078
+ 28,
2079
+ 36,
2080
+ 40,
2081
+ 44,
2082
+ 46
2083
+ ],
2084
+ "lib/source_monitor/setup/shell_runner.rb": [
2085
+ 7,
2086
+ 8,
2087
+ 10
2088
+ ],
2089
+ "lib/source_monitor/setup/verification/action_cable_verifier.rb": [
2090
+ 6,
2091
+ 7,
2092
+ 8,
2093
+ 12,
2094
+ 14,
2095
+ 16,
2096
+ 18,
2097
+ 21,
2098
+ 29,
2099
+ 33,
2100
+ 35,
2101
+ 39,
2102
+ 41,
2103
+ 45,
2104
+ 46,
2105
+ 49,
2106
+ 50,
2107
+ 53,
2108
+ 57,
2109
+ 58,
2110
+ 59,
2111
+ 62,
2112
+ 66,
2113
+ 70,
2114
+ 74
2115
+ ],
2116
+ "lib/source_monitor/setup/verification/printer.rb": [
2117
+ 6,
2118
+ 10,
2119
+ 11,
2120
+ 12,
2121
+ 13,
2122
+ 15
2123
+ ],
2124
+ "lib/source_monitor/setup/verification/result.rb": [
2125
+ 15,
2126
+ 19,
2127
+ 23,
2128
+ 28,
2129
+ 41,
2130
+ 45,
2131
+ 46,
2132
+ 48,
2133
+ 52,
2134
+ 57,
2135
+ 63
2136
+ ],
2137
+ "lib/source_monitor/setup/verification/runner.rb": [
2138
+ 6,
2139
+ 10,
2140
+ 11,
2141
+ 19
2142
+ ],
2143
+ "lib/source_monitor/setup/verification/solid_queue_verifier.rb": [
2144
+ 8,
2145
+ 9,
2146
+ 10,
2147
+ 14,
2148
+ 15,
2149
+ 17,
2150
+ 19,
2151
+ 20,
2152
+ 22,
2153
+ 25,
2154
+ 33,
2155
+ 37,
2156
+ 39,
2157
+ 43,
2158
+ 45,
2159
+ 49,
2160
+ 50,
2161
+ 54,
2162
+ 58,
2163
+ 62,
2164
+ 66,
2165
+ 70
2166
+ ],
2167
+ "lib/source_monitor/setup/verification/telemetry_logger.rb": [
2168
+ 9,
2169
+ 13,
2170
+ 14,
2171
+ 15,
2172
+ 24,
2173
+ 25,
2174
+ 27
2175
+ ],
2176
+ "lib/source_monitor/setup/workflow.rb": [
2177
+ 12,
2178
+ 13,
2179
+ 19,
2180
+ 20,
2181
+ 22,
2182
+ 38,
2183
+ 39,
2184
+ 40,
2185
+ 41,
2186
+ 42,
2187
+ 43,
2188
+ 44,
2189
+ 45,
2190
+ 46,
2191
+ 47,
2192
+ 51,
2193
+ 52,
2194
+ 54,
2195
+ 56,
2196
+ 57,
2197
+ 58,
2198
+ 59,
2199
+ 60,
2200
+ 61,
2201
+ 63,
2202
+ 64,
2203
+ 67,
2204
+ 84,
2205
+ 88,
2206
+ 92,
2207
+ 93,
2208
+ 95
2209
+ ],
1994
2210
  "lib/source_monitor/turbo_streams/stream_responder.rb": [
1995
2211
  35,
1996
2212
  36,
@@ -2006,5 +2222,32 @@
2006
2222
  1,
2007
2223
  2,
2008
2224
  3
2225
+ ],
2226
+ "lib/tasks/source_monitor_assets.rake": [
2227
+ 7,
2228
+ 12
2229
+ ],
2230
+ "lib/tasks/source_monitor_setup.rake": [
2231
+ 31
2232
+ ],
2233
+ "lib/tasks/source_monitor_tasks.rake": [
2234
+ 5,
2235
+ 7,
2236
+ 8,
2237
+ 9,
2238
+ 10,
2239
+ 13,
2240
+ 14,
2241
+ 17,
2242
+ 22,
2243
+ 23,
2244
+ 24,
2245
+ 26
2246
+ ],
2247
+ "lib/tasks/test_smoke.rake": [
2248
+ 6,
2249
+ 7,
2250
+ 8,
2251
+ 10
2009
2252
  ]
2010
2253
  }
data/docs/deployment.md CHANGED
@@ -61,3 +61,11 @@ Keep this guide alongside your platform runbooks so teams can confidently deploy
61
61
  ## Container Reference Stack
62
62
 
63
63
  The repository ships a reusable Docker stack under `examples/docker` that mirrors the recommended process model. It builds a Ruby 3.3 image with Node, mounts your generated example via `APP_PATH`, and launches three services (`web`, `worker`, `scheduler`) alongside Postgres and Redis. Use it to trial production settings locally or as a baseline for ECS/Kubernetes manifests.
64
+
65
+ ## Setup Workflow Rollout Checklist
66
+
67
+ 1. **Adopt the CLI** – add `bin/source_monitor install --yes` (or an equivalent rake task wrapper) to your internal onboarding docs for both greenfield apps and existing hosts. Pair it with `bin/source_monitor verify` so operators can re-check queue/Action Cable health after deployments.
68
+ 2. **CI Gate** – extend your deploy pipeline to invoke `bin/source_monitor verify` right after migrations. Fail the build when the command exits non-zero and surface the JSON blob produced by the printer for diagnostics. This step replaces ad-hoc “did you start Solid Queue?” questions before merging.
69
+ 3. **Telemetry Opt-In** – set `SOURCE_MONITOR_SETUP_TELEMETRY=true` in staging/pre-prod so setup runs append logs to `log/source_monitor_setup.log`. Ship the file as a build artifact for debugging failed installs.
70
+ 4. **Rollback Ready** – reference `docs/setup.md#rollback-steps` in your release checklist so anyone piloting the workflow knows how to revert gem/routes/initializer changes if the experiment needs to pause.
71
+ 5. **Worker Coverage** – ensure at least one Solid Queue worker is running (or emits a heartbeat) before moving the PR out of draft; otherwise verification exits with a warning and CI will fail.
@@ -6,7 +6,11 @@ Use this checklist whenever you create or land a slice. It keeps `gh` commands p
6
6
  1. `git checkout main && git fetch origin && git reset --hard origin/main`
7
7
  2. `git checkout -b <feature|bugfix>/<description>`
8
8
  3. Do the work, run tests/lint, then `git commit -am "scope: summary"`
9
- 4. Push: `git push -u origin <branch>`
9
+ 4. Run the coverage gate locally before pushing:
10
+ - `bin/test-coverage`
11
+ - `bin/check-diff-coverage`
12
+ - If new code is intentionally uncovered, refresh the baseline with `bin/update-coverage-baseline` and commit the updated `config/coverage_baseline.json`.
13
+ 5. Push: `git push -u origin <branch>`
10
14
 
11
15
  ## 2. Open a PR (as draft)
12
16
  1. `gh pr create --base main --head <branch> --title "scope: summary" --body "## Summary\n..." --draft`