Skip to content

docs: doc-review 2026-10-13 — war-room automation trigger, IM switch removal, alert-rule Go templates, CLI/SDK drift - #1048

Merged
ysyneu merged 2 commits into
mainfrom
doc-review/2026-10-13-081100
Oct 13, 2026
Merged

ysyneu merged 2 commits into
mainfrom
doc-review/2026-10-13-081100

Conversation

@flashduty

@flashduty flashduty Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

Doc Review — 2026-10-13

Mode: diff (since 2026-10-12T08:00:37Z, the previous successful run)
Findings: 20 total — 2 high, 10 medium, 8 low
Window: 12 source repos with changes (fc-event, ai-sre-web, fc-saas-web, fc-saas-monit, fc-saas-rum, fc-safari, flashduty-runner, flashduty-cli, go-flashduty, monit-webapi, monit-edge, fc-rum); 9 unchanged (fc-datasource, fc-oncall, fc-pgy, fc-statuspage, flashduty-app, flashduty-mcp-server, terraform-provider-flashduty, flashduty-website, and the fc-foundation-app superproject — its submodule packages are covered through the standalone submodule clones).

Changes

Finding Type Module Doc Action
f001 missing_coverage ai-sre ai-sre/automations.mdx Added the fourth automation trigger 「作战室创建触发」 (war_room_created) with its 协作空间 / 严重程度 conditions, API field table (war_room_trigger_enabled / war_room_channel_ids / war_room_severities), IM-group session note, execution-environment rule, and the war_room_initial_analysis preset template; updated every trigger enumeration on the page
f002 stale_content ai-sre ai-sre/im.mdx, ai-sre/overview.mdx, ai-sre/quickstart.mdx, ai-sre.mdx War-room diagnosis is no longer automatic: rewrote the intro card, the front-matter description, deleted the 「自动发起 AI 故障分析」 switch bullet, dropped the now-unsupported platform-matrix column, and rewrote the 「作战室自动诊断」 section as rule-driven, with a link to the automation trigger — then swept the three further pages the finding's evidence cross-references (overview.mdx, quickstart.mdx, the AI SRE landing page), which all still promised the diagnosis as an unconditional result of creating a war room
f003 stale_content on-call/integration/instant-messaging .../instant-messaging/{slack,lark,dingtalk,wecom}.mdx Removed the deleted 「自动发起 AI 故障分析」 switch from all four pages and replaced it with one sentence pointing at the AI SRE automation rule; singularised the intro sentence where only one toggle is left
f004 stale_content on-call on-call/advanced/war-room.mdx Made the war-room preliminary diagnosis conditional on an enabled matching automation rule (intro paragraph + 「自动初步诊断」 card)
f005 config_drift ai-sre ai-sre/automations.mdx Run history: added the 执行位置 column (execution_place, IM / Web 控制台) and its fallback rule, bumped the 触发类型 filter to six options, added war_room_created to the trigger_kind value list
f006 feature_drift ai-sre ai-sre/automations.mdx Qualified the run-row click behaviour: IM-side runs no longer navigate and instead show 「本分析位于 IM,请进入 IM 查看。」
f007 config_drift ai-sre ai-sre/automations.mdx Documented that 立即执行 is absent (list and detail page) for a rule whose only trigger is the war room
f008 missing_coverage cli developer/cli.mdx Documented --max-data-points and --preserve-builtin-variables on monit dashboard-runtime-queries-resolve
f009 missing_coverage cli developer/cli.mdx Stated the <31-day --since/--until window cap for alert list and alert-event list, as already stated for incident list / change list
f010 feature_drift cli developer/cli.mdx Completed the automation runs --trigger-kind value list (schedule/debug/manual/http_post/oncall_incident/war_room_created) and explained war_room_created
f011 missing_coverage cli developer/cli.mdx Documented the new --data stderr warning for fields unknown to the installed CLI version
f012 config_drift go-sdk developer/go-sdk.mdx Return-value example *ListIncidentsResponse → the real *IncidentListResponse; audited every other response type named on the page
f013 stale_content go-sdk developer/go-sdk.mdx client.Sessions.Info → client.Sessions.ReadInfo
f014 missing_coverage go-sdk developer/go-sdk.mdx Added the missing client.Dashboards and client.RuleFolders rows (table now matches genServices 1:1 at 39 rows)
f015 missing_coverage monitors monitors/alert-rules/prometheus.mdx (+ 7 datasource pages) Documented Go template {{ $labels.<label> }} in 关联查询 / 恢复查询: which three field kinds accept it (never main queries), the mixed-syntax rejection, $labels-only context, the function whitelist, dotted labels via index, and the monit-edge ≥ v0.75.4 save gate; one clause added to the other six datasource pages
f016 missing_coverage monitors monitors/alert-rules/prometheus.mdx Documented the Edge rendering contract: per-instance rendering, the expression owning its own quoting, and the visible consequence of a render failure (render related query rule-context error, query skipped; recovery expressions with {{ render per instance)
f017 missing_coverage rum rum/sdk/{web,ios,android}/data-collection.mdx Added the geo.province / geo_province row to the three SDK geo attribute tables
f018 missing_coverage derivative changelog/changelog.mdx Added a new <Update label="2026-10-13"> block with both features of this window (war-room trigger + IM switch removal; Go template in alert-rule queries)
f019 feature_drift derivative on-call/comparison/{vs-pagerduty,vs-opsgenie}.mdx Flashduty-side only: added the fourth automation trigger to the enumeration and made the war-room diagnosis row rule-driven; competitor cells untouched
f020 config_drift monitors monitors/alert-rules/mysql.mdx Corrected the 「恢复查询」 row: MySQL alert SQL must be fully determined at save, so neither ${label_name} nor Go template is accepted; added the reason in prose

All 20 findings were applied; none were skipped or failed. Both languages changed for every file (26 zh + 26 en files, +314 / −104 across two commits: 94351dd0 the main pass, 1cfed726 completing f002's cross-referenced pages).

Review checklist

  • Verify config field names and defaults match current code
  • Check that feature descriptions accurately reflect user-facing behaviour
  • Ensure tone and style match the rest of the docs
  • Confirm the war-room trigger wording is consistent across ai-sre/automations.mdx, ai-sre/im.mdx, ai-sre/overview.mdx, ai-sre/quickstart.mdx, ai-sre.mdx, on-call/advanced/war-room.mdx, the four IM integration pages and the two comparison pages (nine files, edited by independent passes — the phrasing is intentionally the same everywhere: the diagnosis is driven by an enabled automation rule with the War room created trigger that matches the incident's channel and severity)

Cross-repo follow-ups (flashduty-website)

None. The derivative pass checked all four registered surfaces:

  • Website changelog (content/changelog/) — no entry for either feature, but this surface publishes in curated batches and lags: the docs changelog's 2026-09-30 and 2026-10-09 blocks (dashboard time variables, RUM analytics, MCP OAuth, CLI --timezone, RUM code repositories) have no website counterparts either, so "must have an entry" could not be established mechanically. Flagged for a product decision, not filed as a finding.
  • Website integrations catalog — no stale count: the IM integration change alters no integration count, and grep for the removed switch wording over content/ and messages/ returns zero hits. (The pre-existing "60+" vs the site's own 267-alert/41-change numbers is out-of-window and not filed.)
  • Docs changelog and product comparison are docs-repo surfaces and were fixed in this PR (f018, f019).

Mapping warnings

  1. derivative_surfaces.comparison_page.paths = zh|en/on-call/quickstart/comparison.mdx — neither file exists; on-call/quickstart/ holds only faq.mdx, mobile-app.mdx, quickstart.mdx. The real comparison pages are zh|en/on-call/comparison/vs-pagerduty.mdx and vs-opsgenie.mdx (plus an unregistered zh|en/on-call/statuspage/comparison.mdx). This round's comparison check was run against the real paths (f019), but until mapping.yaml is fixed that derivative check silently does nothing.
  2. fc-event paths are missing cmd/server/controller/war_room, cmd/server/routes.go and logic/incident_trigger_subscription — the path filter therefore dropped the decisive half of this window's fc-event change (war-room creation no longer starting the analysis; the new POST /ai-sre/war-room/turn route). The repo really changed 60 files; the filtered diff had 23. Evidence was recovered with an explicit git diff <base> <head> -- <path>. Suggested: add logic/incident_trigger_subscription to the on-call module and the two cmd/server paths to ai-sre.
  3. fc-foundation-app's mapped paths are git submodules. Submodule URLs in .gitmodules are SSH form and the container has no ssh client, so git clone --recurse-submodules fails partway; the analysis used standalone clones of the submodule repos (fc-saas-web → src/Packages/saas, fc-saas-monit → src/Packages/monit, fc-saas-rum → src/Packages/rum, ai-sre-web → src/Packages/ai-sre) and reports paths in the mapping's form. No URL was rewritten and no environment-specific file was added to the repo.
  4. mapping.yaml has no entry for the runner/CLI-adjacent surfaces touched this window beyond the existing ai-sre / cli / go-sdk modules — no missing path, listed for completeness.

Skipped

  • Nothing from the findings file was removed.
  • One deliberately dropped edit: the optional geo_province example in zh|en/rum/explorer/data-query.mdx (part of f017's suggested action). Open PR docs(rum): describe Ask AI in the explorer and fix the device type example #1026 touches the same example block in both files; the province field is fully documented in the three SDK pages, so the example was left for that PR's author to fold in.
  • Two verification notes for the reviewer:
    • The preset template war_room_initial_analysis carries enabled: false in fc-safari/etc/automation_templates/*.yml, but that flag is catalog metadata — ai-sre-web automationTemplateToPrefill forces the prefilled draft to enabled: true and comments that the template's flag is "not the new rule's state". The docs therefore say nothing about a default enabled state.
    • The {{ $labels.<label> }} template gate is registered as FeatureAlertRuleQueryExprTemplate = v0.75.4 in monit-webapi/pkg/edgecompat/catalog.go; the docs state the version requirement as a save-time rejection on all matched monit-edge instances.
    • The preset template's name is taken from the backend catalog (fc-safari/etc/automation_templates/zh-CN.yml: name: 作战室初步分析 / en-US.yml: War room initial analysis). The string 「作战室初诊」 appears only in ai-sre-web src/pages/Automations/helpers.test.ts fixtures, never in the UI — helpers.test.ts is test-only, so it is not used as a source of truth.

Follow-ups found while fixing, not actionable in docs

  • flashduty-cli help text is stale (source fix, not a docs fix): internal/cli/automation.go:436 prints Trigger kind filter: schedule, debug, or http_post and :438 registers completion for only those three, while the server's ListRunsRequest.TriggerKind oneof accepts six (… manual http_post oncall_incident war_room_created). registerEnumFlag (internal/cli/completion.go:12) only wires completion and does not validate, so the newer values work — the help string and completion list should be widened. This round's docs (f010) state the correct six.
  • dashboard-panel-preview's --max-data-points help omits the "omit or send null for the server default of 100" clause that panel-run and runtime-queries-resolve carry (zz_generated_dashboards.go).
  • Merge-time dedupe: f009 adds the <31-day window statement to the alert section paragraph at zh:688 / en:693, which sits inside PR docs: doc-review 2026-10-12 — RUM auto-analysis, AI SRE IM attachments, CLI --fields, incident/integration/monitors drift #1045's ~684-700 region. If docs: doc-review 2026-10-12 — RUM auto-analysis, AI SRE IM attachments, CLI --fields, incident/integration/monitors drift #1045 also lands a window note for alert list / alert-event list, the merged page may state the 31-day rule twice — worth one pass when resolving that conflict.

flashduty[bot] added 2 commits October 13, 2026 09:20
…removal, alert-rule Go templates, CLI/SDK drift

Diff mode, window 2026-10-12T08:00:37Z .. 2026-10-13T08:11Z. 20 findings (2 high, 10 medium, 8 low) applied across 23 zh + 23 en files.

See .doc-review/findings-2026-10-13-081100.{yaml,json,html} for the full findings (gitignored; attached to the automation run).
…w, quickstart, AI SRE landing)

The war-room diagnosis finding's evidence cross-references these pages: they all
still promised the preliminary diagnosis as an unconditional result of creating
a war room. Reworded to the automation-rule framing (War room created trigger,
requiring an enabled rule that matches the incident's channel and severity),
consistent with ai-sre/im.mdx, on-call/advanced/war-room.mdx and the comparison pages.
@ysyneu
ysyneu merged commit 9673ea2 into main Oct 13, 2026
1 check passed
@ysyneu
ysyneu deleted the doc-review/2026-10-13-081100 branch October 13, 2026 11:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant