Skip to content

Promote formal verification to tasks; renumber roadmap items#511

Merged
leynos merged 4 commits intomainfrom
promote-formal-verification-tasks-8g5drr
Mar 23, 2026
Merged

Promote formal verification to tasks; renumber roadmap items#511
leynos merged 4 commits intomainfrom
promote-formal-verification-tasks-8g5drr

Conversation

@leynos
Copy link
Copy Markdown
Owner

@leynos leynos commented Mar 23, 2026

Summary

  • Reorganizes formal verification planning into dedicated tasks and updates roadmap references across docs to reflect new numbering (9.8. Formal verification checks → 10.x/11.x).

Changes

Roadmap and formal verification section

  • Replaced the old "9.8. Formal verification checks" block with a new "10. Formal verification" section.
  • Renamed and reflowed sub-items to 10.x and 11.x designations (e.g., 10.1.x through 10.5.x, 11.x where appropriate).
  • Adjusted wording to align with the new task-based workflow and separate CI/make targets as task-style items.

Documentation updates

  • docs/users-guide.md: update references from roadmap item 10.3.2 to 11.3.2.
  • docs/wireframe-client-design.md: update decision records from 10.4.1 to 11.4.1; fix narrative accordingly.
  • Other cross-document references adjusted to maintain consistency (see diff).

Notes

  • No code changes; all changes are documentation-only.

Testing

  • Docs build checks and cross-link validation in CI to ensure anchors and references remain correct.

◳ Generated by DevBoxer


ℹ️ Tag @devboxerhub to ask questions and address PR feedback

📎 Task: https://www.devboxer.com/task/afded234-af14-4bf3-ae3e-2243e7c883d1

Summary by Sourcery

Reorganize the roadmap’s formal verification work into a dedicated, task-based phase and renumber downstream roadmap sections accordingly.

Enhancements:

  • Promote the former formal verification checklist into a new "10. Formal verification" phase with structured sub-tasks, explicit dependencies, and success criteria.
  • Renumber the Wireframe client, ergonomics, advanced features, and documentation roadmap sections and items (10.x→11.x, 11.x→12.x, etc.) to accommodate the new verification phase.

Documentation:

  • Update documentation references in the user guide and client design docs to point to the new roadmap item numbers (e.g., 10.3.2→11.3.2, 10.4.1→11.4.1) and keep their narratives consistent.
  • Clarify fragment reassembly helper documentation formatting for better readability.

…ion phase

The roadmap documentation has been reorganized to renumber phases following formal verification, expanding the formal verification section from former 9.8 to 10.x with more detailed substeps. This includes separating tooling setup, protocol decisions, verification harnesses, model checks, and proofs into distinct checklist items with updated references and success criteria. Subsequent phases are renumbered to maintain consistency, and related docs references have been updated accordingly.

Co-authored-by: devboxerhub[bot] <devboxerhub[bot]@users.noreply.github.com>
@sourcery-ai
Copy link
Copy Markdown
Contributor

sourcery-ai Bot commented Mar 23, 2026

Reviewer's Guide

Reorganizes the roadmap’s formal verification work into a dedicated phase with task-style items and success criteria, renumbers downstream roadmap sections accordingly, and updates all in-doc references (including user and client design guides) to align with the new 10.x/11.x numbering scheme.

Flow diagram for 10.x formal verification task dependencies in the roadmap

flowchart LR
  direction LR

  subgraph Phase10_Formal_verification[10. Formal verification]

    subgraph VWork[10.1 Verification workspace and tooling]
      T10_1_1[10.1.1 Root manifest hybrid workspace]
      T10_1_2[10.1.2 wireframe-verification crate]
      T10_1_3[10.1.3 Kani and Verus pinned tooling]
      T10_1_4[10.1.4 Make targets for verification]
      T10_1_5[10.1.5 CI jobs for Stateright, Kani, Verus]

      T10_1_1 --> T10_1_2
      T10_1_1 --> T10_1_3
      T10_1_3 --> T10_1_4
      T10_1_4 --> T10_1_5
    end

    subgraph ProtocolDecisions[10.2 Protocol contract decisions]
      T10_2_1[10.2.1 Length-prefix width decision]
      T10_2_2[10.2.2 total_body_len semantics decision]
      T10_2_3[10.2.3 ConnectionActor fairness guarantees]
    end

    subgraph KaniChecks[10.3 Kani bounded model checks]
      T10_3_1[10.3.1 Kani smoke harnesses for frames]
      T10_3_2[10.3.2 Kani harnesses for FragmentSeries, Reassembler, MessageSeries]
      T10_3_3[10.3.3 Proptest extensions for fragments and traces]
    end

    subgraph StaterightChecks[10.4 Stateright model checks]
      T10_4_1[10.4.1 ConnectionActor model in wireframe-verification]
      T10_4_2[10.4.2 Shared checker harness]
      T10_4_3[10.4.3 CI-gated BFS model runs]
    end

    subgraph VerusProofs[10.5 Verus proofs for message assembly]
      T10_5_1[10.5.1 Enforce total_body_len contract in runtime]
      T10_5_2[10.5.2 Verus proof modules under verus/]
      T10_5_3[10.5.3 Document proof trigger discipline and expectations]
    end

  end

  %% Cross-subtask dependencies from roadmap
  T10_1_1 --> T10_2_1
  T10_1_1 --> T10_2_2
  T10_1_1 --> T10_2_3

  T10_1_3 --> T10_3_1
  T10_2_1 --> T10_3_1

  T10_1_3 --> T10_3_2
  T10_2_2 --> T10_3_2

  T10_3_1 --> T10_3_3

  T10_1_2 --> T10_4_1
  T10_2_3 --> T10_4_1

  T10_4_1 --> T10_4_2
  T10_1_5 --> T10_4_3
  T10_4_2 --> T10_4_3

  T10_2_2 --> T10_5_1
  T10_1_3 --> T10_5_2
  T10_5_1 --> T10_5_2
  T10_5_2 --> T10_5_3
Loading

File-Level Changes

Change Details Files
Promoted formal verification from a single 9.8 checklist into a standalone 10.x phase with structured task breakdowns, explicit dependencies, and success criteria.
  • Replaced the old 9.8 'Formal verification checks' subsection with a new '10. Formal verification' top-level phase in the roadmap.
  • Split the previous 9.8.x bullets into five themed groups (workspace/tooling, protocol decisions, Kani checks, Stateright checks, Verus proofs) under 10.1–10.5.
  • Converted nested bullet points into numbered task items (10.1.1–10.5.3) with clear prerequisites and measurable success criteria while preserving references to the formal verification guide.
  • Introduced a shared [fv-guide] reference for repeated links to the formal verification guide at the end of roadmap.md.
docs/roadmap.md
Renumbered subsequent roadmap phases and subsections to follow the new formal verification phase and keep the document’s numbering consistent.
  • Shifted 'Wireframe client library foundation' from section 10 to 11 and updated all its sub-items from 10.x.y to 11.x.y.
  • Shifted 'Client ergonomics and extensions' from section 11 to 12 and updated its sub-items from 11.x.y to 12.x.y.
  • Shifted 'Advanced features and ecosystem (future)' from section 12 to 13 and updated its sub-items from 12.x.y to 13.x.y.
  • Shifted 'Documentation and community (ongoing)' from section 13 to 14 and updated its sub-items from 13.x.y to 14.x.y.
docs/roadmap.md
Aligned cross-document references in user-facing docs with the new roadmap numbering.
  • Updated users guide narrative that referenced roadmap item 10.3.2 to reference 11.3.2 after renumbering the client library section.
  • Updated the client design document to reference roadmap item 11.3.2 instead of 10.3.2 in the streaming fairness validation description.
  • Renamed the decision record heading from 'Decision record for 10.4.1' to 'Decision record for 11.4.1' and fixed the rationale text to reference roadmap item 11.4.1.
docs/users-guide.md
docs/wireframe-client-design.md

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Mar 23, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: e03d2603-05be-4496-b9a0-d580d5084b6d

📥 Commits

Reviewing files that changed from the base of the PR and between ebeead2 and 66d1941.

📒 Files selected for processing (1)
  • docs/roadmap.md

Summary by CodeRabbit

  • Documentation
    • Reworked the formal verification roadmap into a multi‑phase structure with explicit "Requires" links and clear success criteria for each phase.
    • Split and clarified verification subtasks (workspace/tooling, protocol decisions, bounded checks, model checks, proofs) and added a shared verification‑guide footnote.
    • Renumbered roadmap references across guides, updated cross‑references, and refined example/helper formatting for clarity.

Walkthrough

Summarise the documentation update: restructure the formal verification roadmap into a multi‑phase plan (phase 10 → sub‑phases 10.1–10.5) with explicit "Requires" links and success criteria, add a formal‑verification footnote, and update cross‑references (10.3.211.3.2, 10.4.111.4.1) plus minor formatting tweaks.

Changes

Cohort / File(s) Summary
Formal Verification Phase Restructuring
docs/roadmap.md
Replace single "9.8. Formal verification checks" with a phased "10. Formal verification" layout (10.1–10.5). Split previous checklist into workspace/tooling, protocol contract decisions, bounded Kani checks, Stateright model checks, and Verus proofs. Add "Requires" dependency links, explicit success criteria, CI/Makefile/tooling notes, and a footnote linking the formal‑verification guide.
Cross‑Document Reference & Minor Docs Edits
docs/users-guide.md, docs/wireframe-client-design.md
Update roadmap references (10.3.211.3.2, 10.4.111.4.1). Reformat the assert_fragment_reassembly_error helper list for consistent wrapping; no behavioural or API changes.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

The roadmap turns a single line to five,
Dependencies linked so plans will thrive,
Criteria set and cross‑refs made right,
Docs tidy now — onward to light. ✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately captures the main change: reorganising formal verification work into dedicated tasks and renumbering roadmap items across the documentation.
Description check ✅ Passed The description comprehensively explains the reorganisation of formal verification into a task-based phase, the renumbering scheme, and the documentation updates across multiple files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch promote-formal-verification-tasks-8g5drr

Comment @coderabbitai help to get the list of available commands and usage tips.

codescene-delta-analysis[bot]

This comment was marked as outdated.

@leynos leynos marked this pull request as ready for review March 23, 2026 00:29
Copy link
Copy Markdown
Contributor

@sourcery-ai sourcery-ai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've left some high level feedback:

  • You’ve introduced the [fv-guide] reference but still have several inline links to formal-verification-methods-in-wireframe.md; consider switching those remaining references to [fv-guide] for consistency and to make future URL changes easier.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- You’ve introduced the `[fv-guide]` reference but still have several inline links to `formal-verification-methods-in-wireframe.md`; consider switching those remaining references to `[fv-guide]` for consistency and to make future URL changes easier.

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

The [fv-guide] link definition was using plain Markdown reference-link
syntax instead of GFM footnote syntax ([^fv-guide]).  Align with the
existing [^adr-005], [^adr-006], and [^message-versioning] footnotes
already used in the same file.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@leynos leynos changed the title Promote formal verification checks to tasks and update roadmap refs Promote formal verification to tasks; renumber roadmap items Mar 23, 2026
codescene-delta-analysis[bot]

This comment was marked as outdated.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/roadmap.md`:
- Around line 552-556: Standardize section reference formatting by enclosing the
referenced section titles in quotes to match other occurrences: update the two
references that mention §Is `total_body_len` authoritative or advisory? and
§What Verus should prove in Wireframe so they become §"Is `total_body_len`
authoritative or advisory?" and §"What Verus should prove in Wireframe"
(preserving the inline code `total_body_len`) to match the quoted style used
elsewhere like §"What widths does Wireframe actually support...".
- Around line 457-463: The task entry for "10.1.2. Add
`crates/wireframe-verification`" is missing its prerequisite; update the task
description in the roadmap (the "10.1.2. Add `crates/wireframe-verification`"
bullet) to append "Requires 10.1.1." so it explicitly depends on the workspace
conversion task 10.1.1; ensure the phrasing is consistent with other dependency
notes in the document and retains the existing success criteria text.
- Around line 471-476: Update the description for task 10.1.4 to declare its
prerequisites by adding "Requires 10.1.2 and 10.1.3." so the Makefile targets
(make test-verification, make kani, make verus, etc.) explicitly state they
depend on the verification crate being present (10.1.2) and the formal tools
being installed (10.1.3); modify the task text that currently lists the targets
and success criteria (task identifier 10.1.4) to include this dependency
sentence.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: e917709d-2440-4c8d-a7fd-fa5c7cf593fb

📥 Commits

Reviewing files that changed from the base of the PR and between b8f874b and e3f0611.

📒 Files selected for processing (1)
  • docs/roadmap.md

Comment thread docs/roadmap.md
Comment thread docs/roadmap.md
Comment thread docs/roadmap.md Outdated
…ncies

1. Quote section references in 10.5.1 (§"Is `total_body_len`..." and
   §"What Verus should prove...") to match style elsewhere.
2. Add "Requires 10.1.1." to task 10.1.2 (verification crate needs workspace).
3. Add "Requires 10.1.2 and 10.1.3." to task 10.1.4 (Makefile targets need
   verification crate and tools installed).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
codescene-delta-analysis[bot]

This comment was marked as outdated.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/roadmap.md`:
- Around line 485-503: Rewrite the three checklist items (10.2.1, 10.2.2,
10.2.3) from intention statements into concrete delivered outcomes: for 10.2.1
replace "Decide whether length-prefix widths are limited to..." with an outcome
like "Support length-prefix widths {…} and enforce them in
constructors/conversions/tests; record decision in ADR" and ensure the success
criteria (constructors enforce chosen widths, tests reject others) are included;
for 10.2.2 replace "Decide whether `total_body_len` is authoritative or
advisory..." with an outcome such as "Treat `total_body_len` as
[authoritative|advisory] and enforce/rename it across message assembly code;
record ADR and add tests for conforming/violating inputs" and include the
runtime enforcement and test criteria; for 10.2.3 replace "Document the intended
fairness and priority guarantees for `ConnectionActor`..." with an outcome like
"Publish named fairness and priority guarantees for `ConnectionActor` and encode
them as model properties for Stateright checks" and include the success criteria
(design doc enumerates named properties and model checks reference them). Use
capability-delivery phrasing for each item and keep the existing success
criteria text paired to the new outcome statements.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 97c25ca4-9a05-4624-bfbf-23131ccab415

📥 Commits

Reviewing files that changed from the base of the PR and between e3f0611 and ebeead2.

📒 Files selected for processing (1)
  • docs/roadmap.md

Comment thread docs/roadmap.md Outdated
Convert tasks 10.2.1, 10.2.2, and 10.2.3 from intention statements
("Decide whether...", "Document the intended...") to capability-delivery
phrasing that describes concrete delivered outcomes:

- 10.2.1: "Support a determined set of length-prefix widths and enforce..."
- 10.2.2: "Treat `total_body_len` as either authoritative or advisory and
  enforce..."
- 10.2.3: "Publish named fairness and priority guarantees for
  `ConnectionActor` and encode..."

Each task retains its existing success criteria paired with the new outcome
statement, ensuring tasks describe what will be built rather than what will
be decided.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@leynos leynos merged commit bb1e2e1 into main Mar 23, 2026
6 checks passed
@leynos leynos deleted the promote-formal-verification-tasks-8g5drr branch March 23, 2026 12:59
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