Skip to content

bidux 0.3.0 - Workflow refresh, auto-layout, and smarter suggestions ✨

Choose a tag to compare

@jrwinget jrwinget released this 30 Aug 15:16
· 25 commits to main since this release
fa17c05

This release reorders the BID workflow, introduces automatic layout selection, and adds accessibility- and telemetry-aware suggestions across the pipeline. It supersedes the unaccepted 0.2.0 submission; the previous public release was 0.1.0.

🚨 Breaking changes

  • Stage order updated: Interpret → Notice → Anticipate → Structure → Validate (more natural flow; still supports iteration).
  • bid_structure() removes layout: Layout is now auto-selected via deterministic heuristics from prior stages. Supplying layout throws a helpful error.
  • Field names standardized (returned objects):
    • previous_questionprevious_central_question
    • previous_story_hookprevious_hook
    • user_personaspersonas (in bid_interpret() output)

⏳ Deprecation (warn now; remove in 0.4.0)

  • target_audience in bid_notice() → move audience to bid_interpret(data_story=..., user_personas=...).
  • interaction_principles in bid_anticipate() → replaced by include_accessibility.

✨ New & improved

  • Auto layout inference in bid_structure() with ranked, concept-grouped suggestions (rationales + relevance scores).
  • Accessibility-focused mitigations in bid_anticipate(include_accessibility = TRUE).
  • Validation flags in bid_validate(): include_exp_design, include_telemetry, include_empower_tools.
  • Telemetry-aware scoring that can avoid problematic patterns (e.g., tabs when nav_dropoff_tabs detected).
  • Improved context propagation across stages + clearer CLI messages.
  • Comprehensive tests for heuristics, deprecation(s), telemetry integration, and errors.

🧭 Migration guide (quick)

Before (≤0.2.x):

notice <- bid_notice(
  problem = "Users confused",
  evidence = "High error rate",
  target_audience = "Analysts"
)

anticipate <- bid_anticipate(
  previous_stage = structure_result,
  interaction_principles = list(hover = "Show details")
)

After (0.3.0):

notice <- bid_notice(
  problem = "Users confused",
  evidence = "High error rate"
)

interpret <- bid_interpret(
  previous_stage = notice,
  data_story = list(audience = "Analysts")
)

anticipate <- bid_anticipate(
  previous_stage = structure_result,
  include_accessibility = TRUE
)

# Field access updates:
# previous_central_question (was previous_question)
# previous_hook (was previous_story_hook)

See the full “MIGRATION GUIDE” section in NEWS.md for more examples.

🧪 QA notes

  • R CMD check: 0 errors | 0 warnings | 0 notes
  • Examples/vignettes run quickly; no long-running examples.

📦 Install

  • CRAN:

    install.packages("bidux")
  • Development:

    # install.packages("pak")
    pak::pak("jrwinget/bidux")

🙌 Acknowledgments

Thanks to the community and reviewers whose feedback informed this release.

📜 Full changelog