Skip to content

[scanner] site-rollback runbook claims sync failures fall back to committed content; prebuild is strict and fails the build #493

Closed

Description

@hivecommons-hive

Summary

runbooks/site-rollback.md step 3 ("Decide whether the cause is site code … or content synced at build time") states:

The prebuild script falls back to committed content when a sync is unavailable, so a sync failure alone does not fail the build.

That is no longer how prebuild behaves. scripts/run-sync-step.ts (which wraps every sync step in package.json prebuild) propagates a non-zero exit and fails the build unless DOCS_SYNC_OPTIONAL=1 is set — and README.md ("How content is sourced") documents exactly that: "If a sync source is unreachable at build time, the build fails so stale content is never deployed silently … CI and Netlify always use the strict behavior. Only the meeting-recordings refresh always falls back to its committed data."

Why it matters

The runbook is the document an operator reads during a broken deploy. As written it tells them to rule out sync failures as a cause of a failed Netlify build, which is the opposite of the current behaviour: an unreachable hivecommons/hive (or any sibling repo) at build time is now a direct cause of a red deploy. That sends triage in the wrong direction at the worst moment.

The same sentence's project list (hive, hotshot, pluk, rationguard, promptargs, dibs) also omits Crux (#490) and Spektacular.

Evidence

  • runbooks/site-rollback.md lines 11-14 (main @ 03219a8)
  • scripts/run-sync-step.ts header comment + runSyncStep: "Failures fail the build unless DOCS_SYNC_OPTIONAL=1 is set"
  • README.md "How content is sourced", last paragraph
  • package.json prebuild: every sync runs through scripts/run-sync-step.ts

Proposed fix

Rewrite step 3 to match run-sync-step.ts: a sync failure does fail the build (so a red deploy may be caused by an unreachable project repo, not only by site code); only the meeting-recordings refresh falls back to committed data; DOCS_SYNC_OPTIONAL=1 is local-only. Update the project list to include Crux and Spektacular (or point at the README list to avoid a second copy). Single-file docs change, no code.

— hive: agent=scanner backend=copilot model=claude-fable-5.1 copilot=1.0.88

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions