Skip to content

docs: rewrite README with marketing positioning and cross-platform emphasis#530

Open
tylerkron wants to merge 5 commits into
mainfrom
claude/relaxed-jackson-a864c9
Open

docs: rewrite README with marketing positioning and cross-platform emphasis#530
tylerkron wants to merge 5 commits into
mainfrom
claude/relaxed-jackson-a864c9

Conversation

@tylerkron
Copy link
Copy Markdown
Contributor

Summary

  • Rewrites the README with the DAQiFi brand voice, tagline, and brand promise
  • Adds structured sections: hero, quick install, common applications, ecosystem table, feature table, supported device specs, WiFi connectivity guide, requirements, and community/support links
  • Replaces sparse tech-stack bullets with a verified capability table (every row spot-checked against code)
  • Adds CI, license, and platform badges with correct workflow filename (build.yaml)
  • Retains the Mermaid data-flow diagram from the original README, lightly polished
  • Keeps WiFi troubleshooting and port reference content — reorganized under a dedicated section
  • Correctly scopes the app as Windows-only (WPF/net10.0-windows — no false cross-platform claims)
  • Links to GitHub Discussions (confirmed enabled on the repo)
  • Adds ecosystem-layer table positioning daqifi-core and daqifi-desktop as complementary

What changed vs. the original

Original Rewrite
81 lines, sparse 155 lines, structured
No badges CI + license + platform badges
No feature table Verified capability table
No device spec table Nyquist 1 / Nyquist 3 spec table
No ecosystem context Ecosystem layer table
No brand voice Tagline + brand promise in hero
No install steps Step-by-step quick install
No community section Issues + Discussions + daqifi.com

Test plan

  • Badges render: CI badge links to build.yaml workflow, license badge links to LICENSE
  • All links are reachable (daqifi.com, daqifi-core repo, Issues, Discussions, Releases page)
  • Mermaid diagram renders on GitHub
  • Capability claims match code: multi-device (ConnectedDevices list), CSV export (.csv filter), NCalc scaling (AbstractChannel), HID firmware update (HidLibraryTransport), profiles (ProfilesPaneViewModel)
  • No cross-platform claims (app targets net10.0-windows, WPF)

🤖 Generated with Claude Code

@tylerkron tylerkron requested a review from a team as a code owner May 17, 2026 03:16
@qodo-code-review
Copy link
Copy Markdown
Contributor

Review Summary by Qodo

Rewrite README with marketing positioning and structured documentation

📝 Documentation

Grey Divider

Walkthroughs

Description
• Rewrites README with marketing positioning and brand voice
• Adds structured sections: hero, quick install, applications, ecosystem table
• Replaces sparse tech-stack bullets with verified capability table
• Adds CI, license, platform, and .NET badges with correct links
• Includes device specifications, WiFi connectivity guide, and requirements
• Reorganizes troubleshooting and port reference content
• Adds community support links and maintainer release instructions
Diagram
flowchart LR
  A["Original README<br/>81 lines, sparse"] -->|"Add brand voice<br/>and hero section"| B["Marketing Hero<br/>with tagline"]
  A -->|"Replace tech bullets<br/>with tables"| C["Capability Table<br/>Device Specs"]
  A -->|"Add badges and links"| D["CI, License, Platform<br/>Badges"]
  A -->|"Reorganize content"| E["Structured Sections<br/>Quick Install, Apps"]
  B --> F["New README<br/>155 lines, structured"]
  C --> F
  D --> F
  E --> F
Loading

Grey Divider

File Changes

1. README.md 📝 Documentation +108/-53

Complete README restructure with marketing and documentation

• Rewrites entire README with DAQiFi brand voice, tagline, and brand promise in hero section
• Replaces sparse tech-stack bullets with verified capability table (multi-device, CSV export, NCalc
 scaling, HID firmware update, profiles)
• Adds CI, license, platform, and .NET badges with correct workflow filename (build.yaml)
• Introduces structured sections: quick install steps, common applications, ecosystem layer table,
 device specifications table
• Reorganizes WiFi connectivity guide with requirements, troubleshooting steps, and port reference
 table
• Adds community support links (Issues, Discussions, daqifi.com) and maintainer release instructions
• Retains and lightly polishes the Mermaid data-flow diagram from original README
• Correctly scopes app as Windows-only (net10.0-windows, WPF) with no false cross-platform claims

README.md


Grey Divider

Qodo Logo

@qodo-code-review
Copy link
Copy Markdown
Contributor

qodo-code-review Bot commented May 17, 2026

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (1) 📎 Requirement gaps (0)

Grey Divider


Remediation recommended

1. MSI runtime claim wrong ✓ Resolved 🐞 Bug ≡ Correctness
Description
README says the MSI includes the .NET runtime (“no prerequisites”), but the installer is built from
a framework-dependent publish output and the repo contains no WiX/bootstrapper logic to install the
.NET runtime. Users without the .NET 10 Desktop Runtime installed may be unable to launch the app
after installing the MSI.
Code

README.md[25]

+2. Run the installer — no prerequisites beyond the included .NET runtime.
Evidence
The installer harvests the app’s publish directory, and both build/release workflows run `dotnet
publish` without self-contained configuration; the app csproj also lacks self-contained/runtime
identifier settings. This contradicts the README claim that the MSI includes the .NET runtime.

README.md[24-28]
.github/workflows/build.yaml[32-34]
.github/workflows/release.yaml[25-32]
Daqifi.Desktop.Setup/DAQifiDesktopSetup/DAQifiDesktop_Setup.wixproj[9-14]
Daqifi.Desktop/Daqifi.Desktop.csproj[3-15]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
README currently claims the MSI includes the .NET runtime (“no prerequisites beyond the included .NET runtime”), but the build/setup configuration in this repo packages the output of `dotnet publish` without self-contained settings and does not include any runtime-installer/bootstrapper steps.

## Issue Context
The MSI is built by harvesting the `net10.0-windows\publish` directory, which in current workflows is produced via `dotnet publish` without `--self-contained` and without csproj properties enabling self-contained publishing.

## Fix Focus Areas
- README.md[24-28]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


2. README long lines over 120 📘 Rule violation ✧ Quality
Description
README.md introduces multiple new lines that exceed the 120-character maximum (e.g., long
paragraphs and badge/link lines). This violates the line-length requirement and reduces readability
in diffs and reviews.
Code

README.md[18]

+DAQiFi hardware is designed to get out of the way so you can focus on the data, not the collection process. DAQiFi Desktop is the application that makes that possible — connect a Nyquist device over WiFi or USB, configure your channels, start a logging session, and watch your data arrive in real time. No custom scripting required.
Evidence
PR Compliance ID 244820 requires that no added/modified line exceeds 120 characters. The cited
README lines include long inline URLs and long unwrapped prose that clearly exceed this limit.

Rule 244820: Enforce maximum line length of 120 characters
README.md[7-12]
README.md[18-18]
README.md[127-127]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
Several newly added lines in `README.md` exceed the 120-character maximum, violating the repo's line-length rule.

## Issue Context
This PR rewrites the README and includes long paragraphs, long inline links, and workflow badge URLs that push lines well beyond 120 characters.

## Fix Focus Areas
- README.md[7-12]
- README.md[18-18]
- README.md[127-127]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


3. Release trigger doc mismatch ✓ Resolved 🐞 Bug ≡ Correctness
Description
README instructs maintainers to create releases “by pushing a GitHub Release tag,” but
release.yaml only runs on the GitHub Release-created event. Pushing a tag alone will not trigger
the workflow or upload the MSI asset.
Code

README.md[127]

+Releases are created by pushing a GitHub Release tag. The `release.yaml` workflow builds the MSI via WiX Toolset and attaches `DAQifiDesktop_Setup.msi` to the release automatically. The app version is set in `Daqifi.Desktop/Daqifi.Desktop.csproj` (`<Version>`). Follow [semantic versioning](https://semver.org/); breaking changes should use the `feat!:` prefix in the PR title.
Evidence
The README describes tag pushes as the release mechanism, but the workflow is configured to trigger
only when a GitHub Release is created, so the documented procedure won’t run the automation.

README.md[127-127]
.github/workflows/release.yaml[1-6]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
README’s maintainer instructions describe a tag-push driven release process, but the repository’s release automation is configured to run on the GitHub Release-created event.

## Issue Context
The `release.yaml` workflow is triggered by `on: release` with `types: [created]`, not by `push` events on tags.

## Fix Focus Areas
- README.md[127-127]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Qodo Logo

tylerkron and others added 2 commits May 16, 2026 21:22
@tylerkron
Copy link
Copy Markdown
Contributor Author

Addressing all three Qodo review items:

1. Long lines over 120 characters (Rule violation)

Disagreed — not fixing. The 120-character limit in CLAUDE.md is listed under Code Style and applies to C# source files. Markdown prose wraps automatically in every renderer (GitHub, NuGet, VS Code preview), so hard-wrapping at 120 chars has no effect on the rendered output and makes the raw .md file harder to edit. Badge and nav link lines contain literal URLs that can't be split across lines without breaking them. The original README also contained long prose lines; this wasn't enforced there. If the team wants to extend the 120-char rule to markdown files, that should be a separate repo-wide decision captured in CLAUDE.md.

2. MSI runtime claim wrong (Bug — ✓ already resolved)

Fixed in the prior commit (ad09ff5) during the double-check pass before Qodo posted. The quick-install steps now tell users to install the .NET 10.0 Desktop Runtime before running the MSI.

3. Release trigger doc mismatch (Bug)

Fixed in commit 115a786. The maintainer section now correctly states that releases are published via the GitHub Release UI or API, and notes that release.yaml triggers on the release: created event — not on a tag push alone.

tylerkron and others added 2 commits May 17, 2026 22:12
Pulls the data-flow diagram out of the README into docs/architecture.md
and rewrites it against the actual code:
- StreamMessageConsumer / ProtobufMessageParser no longer exist;
  protobuf decoding now happens in Daqifi.Core's ProtobufProtocolHandler
- IChannel.ActiveSample setter is what applies NCalc scaling and fires
  OnChannelUpdated
- LoggingManager iterates a list of ILoggers (DatabaseLogger,
  PlotLogger, SummaryLogger), not just DatabaseLogger
- DatabaseLogger uses a BlockingCollection consumer thread that bulk-
  inserts via EFCore.BulkExtensions every ~100 ms

Adds C4 System Context and Container diagrams so contributors can see
where DAQiFi Desktop sits relative to Nyquist hardware, Sentry, GitHub
Releases, and the Windows Firewall.

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
@github-actions
Copy link
Copy Markdown

📊 Code Coverage Report

Summary

Summary
Generated on: 5/18/2026 - 4:22:59 AM
Coverage date: 5/18/2026 - 4:22:14 AM - 5/18/2026 - 4:22:44 AM
Parser: MultiReport (4x Cobertura)
Assemblies: 3
Classes: 119
Files: 148
Line coverage: 19.3% (1655 of 8566)
Covered lines: 1655
Uncovered lines: 6911
Coverable lines: 8566
Total lines: 26498
Branch coverage: 20.5% (584 of 2844)
Covered branches: 584
Total branches: 2844
Method coverage: Feature is only available for sponsors

Coverage

DAQiFi - 19.1%
Name Line Branch
DAQiFi 19.1% 20.5%
Daqifi.Desktop.App 5.4% 0%
Daqifi.Desktop.Channel.AbstractChannel 40.9% 27.7%
Daqifi.Desktop.Channel.AnalogChannel 58.7% 25%
Daqifi.Desktop.Channel.Channel 11.5% 0%
Daqifi.Desktop.Channel.ChannelColorManager 100% 100%
Daqifi.Desktop.Channel.DataSample 91.6%
Daqifi.Desktop.Channel.DigitalChannel 65.2% 25%
Daqifi.Desktop.Commands.CompositeCommand 0% 0%
Daqifi.Desktop.Commands.HostCommands 0%
Daqifi.Desktop.Commands.WeakEventHandlerManager 0% 0%
Daqifi.Desktop.Configuration.FirewallConfiguration 90.6% 66.6%
Daqifi.Desktop.Configuration.WindowsFirewallWrapper 64% 68.4%
Daqifi.Desktop.ConnectionManager 42.4% 39.2%
Daqifi.Desktop.Converters.BoolToActiveStatusConverter 0% 0%
Daqifi.Desktop.Converters.BoolToConnectionStatusConverter 0% 0%
Daqifi.Desktop.Converters.BoolToStatusColorConverter 0% 0%
Daqifi.Desktop.Converters.BrushColorMatchConverter 0% 0%
Daqifi.Desktop.Converters.ConnectionTypeToColorConverter 0% 0%
Daqifi.Desktop.Converters.ConnectionTypeToUsbConverter 0% 0%
Daqifi.Desktop.Converters.InvertedBoolToVisibilityConverter 0% 0%
Daqifi.Desktop.Converters.ListToStringConverter 0% 0%
Daqifi.Desktop.Converters.NotNullToVisibilityConverter 0% 0%
Daqifi.Desktop.Converters.OxyColorToBrushConverter 0% 0%
Daqifi.Desktop.Device.AbstractStreamingDevice 42.8% 38.2%
Daqifi.Desktop.Device.DeviceMessage 0%
Daqifi.Desktop.Device.Firmware.BootloaderSessionStreamingDeviceAdapter 0% 0%
Daqifi.Desktop.Device.Firmware.WifiPromptDelayProcessRunner 0% 0%
Daqifi.Desktop.Device.NativeMethods 100%
Daqifi.Desktop.Device.SerialDevice.SerialStreamingDevice 27.6% 30.8%
Daqifi.Desktop.Device.WiFiDevice.DaqifiStreamingDevice 40.9% 39.4%
Daqifi.Desktop.DialogService.DialogService 0% 0%
Daqifi.Desktop.DialogService.ServiceLocator 0% 0%
Daqifi.Desktop.DiskSpace.DiskSpaceCheckResult 100%
Daqifi.Desktop.DiskSpace.DiskSpaceEventArgs 100%
Daqifi.Desktop.DiskSpace.DiskSpaceMonitor 88.2% 86.6%
Daqifi.Desktop.DuplicateDeviceCheckResult 100%
Daqifi.Desktop.Exporter.OptimizedLoggingSessionExporter 66.5% 62.7%
Daqifi.Desktop.Exporter.SampleData 100%
Daqifi.Desktop.Helpers.BooleanConverter`1 0% 0%
Daqifi.Desktop.Helpers.BooleanToInverseBoolConverter 0% 0%
Daqifi.Desktop.Helpers.BooleanToVisibilityConverter 0%
Daqifi.Desktop.Helpers.EnumDescriptionConverter 100% 100%
Daqifi.Desktop.Helpers.IntToVisibilityConverter 0% 0%
Daqifi.Desktop.Helpers.MinMaxDownsampler 98.6% 97.9%
Daqifi.Desktop.Helpers.MyMultiValueConverter 0%
Daqifi.Desktop.Helpers.NaturalSortHelper 100% 100%
Daqifi.Desktop.Helpers.OxyPlotDarkTheme 0%
Daqifi.Desktop.Helpers.VersionHelper 98.2% 66.2%
Daqifi.Desktop.Logger.DatabaseLogger 0% 0%
Daqifi.Desktop.Logger.DatabaseMigrator 0% 0%
Daqifi.Desktop.Logger.DeviceLegendGroup 100% 100%
Daqifi.Desktop.Logger.LoggedSeriesLegendItem 0% 0%
Daqifi.Desktop.Logger.LoggingContext 100%
Daqifi.Desktop.Logger.LoggingContextDesignTimeFactory 0%
Daqifi.Desktop.Logger.LoggingManager 0% 0%
Daqifi.Desktop.Logger.LoggingSession 16% 5%
Daqifi.Desktop.Logger.PlotLogger 0% 0%
Daqifi.Desktop.Logger.SessionDeviceMetadata 80%
Daqifi.Desktop.Logger.SummaryLogger 0% 0%
Daqifi.Desktop.Logger.TimestampGapDetector 95% 83.3%
Daqifi.Desktop.Loggers.ImportOptions 0%
Daqifi.Desktop.Loggers.ImportProgress 0% 0%
Daqifi.Desktop.Loggers.SdCardSessionImporter 0% 0%
Daqifi.Desktop.MainWindow 0% 0%
Daqifi.Desktop.Migrations.AddSamplesSessionTimeIndex 0%
Daqifi.Desktop.Migrations.AddSessionDeviceMetadata 0%
Daqifi.Desktop.Migrations.AddSessionSampleCount 0%
Daqifi.Desktop.Migrations.InitialSQLiteMigration 0%
Daqifi.Desktop.Migrations.LoggingContextModelSnapshot 0%
Daqifi.Desktop.Models.AddProfileModel 0%
Daqifi.Desktop.Models.DaqifiSettings 80.5% 83.3%
Daqifi.Desktop.Models.DebugDataCollection 6.6% 0%
Daqifi.Desktop.Models.DebugDataModel 0% 0%
Daqifi.Desktop.Models.Notifications 0%
Daqifi.Desktop.Models.SdCardFile 16.6% 0%
Daqifi.Desktop.Services.WindowsPrincipalAdminChecker 0%
Daqifi.Desktop.Services.WpfMessageBoxService 0%
Daqifi.Desktop.UpdateVersion.VersionNotification 85.7% 58.3%
Daqifi.Desktop.View.ConnectionDialog 0% 0%
Daqifi.Desktop.View.DebugWindow 0% 0%
Daqifi.Desktop.View.DeviceLogsView 0% 0%
Daqifi.Desktop.View.DuplicateDeviceDialog 0% 0%
Daqifi.Desktop.View.ErrorDialog 0% 0%
Daqifi.Desktop.View.ExportDialog 0% 0%
Daqifi.Desktop.View.FirmwareDialog 0% 0%
Daqifi.Desktop.View.Flyouts.FirmwareFlyout 0% 0%
Daqifi.Desktop.View.Flyouts.LiveGraphFlyout 0% 0%
Daqifi.Desktop.View.Flyouts.NotificationsFlyout 0% 0%
Daqifi.Desktop.View.Flyouts.SummaryFlyout 0% 0%
Daqifi.Desktop.View.MigrationStatusWindow 0% 0%
Daqifi.Desktop.View.MinimapInteractionController 0% 0%
Daqifi.Desktop.View.ProfilesPane 0% 0%
Daqifi.Desktop.View.Prototype.ChannelsPanePrototype 0% 0%
Daqifi.Desktop.View.Prototype.DevicesPanePrototype 0% 0%
Daqifi.Desktop.View.Prototype.LiveGraphPane 0% 0%
Daqifi.Desktop.View.Prototype.LoggedDataPanePrototype 0% 0%
Daqifi.Desktop.View.SuccessDialog 0% 0%
Daqifi.Desktop.ViewModels.ChannelsPaneViewModel 0% 0%
Daqifi.Desktop.ViewModels.ChannelTileViewModel 0% 0%
Daqifi.Desktop.ViewModels.ConnectionDialogViewModel 37.3% 39.3%
Daqifi.Desktop.ViewModels.DaqifiViewModel 17.5% 10.9%
Daqifi.Desktop.ViewModels.DeviceLogsViewModel 52.5% 48%
Daqifi.Desktop.ViewModels.DevicesPaneViewModel 0% 0%
Daqifi.Desktop.ViewModels.DeviceTileViewModel 0% 0%
Daqifi.Desktop.ViewModels.DuplicateDeviceDialogViewModel 0%
Daqifi.Desktop.ViewModels.ErrorDialogViewModel 0%
Daqifi.Desktop.ViewModels.ExportDialogViewModel 0% 0%
Daqifi.Desktop.ViewModels.FirmwareDialogViewModel 0% 0%
Daqifi.Desktop.ViewModels.NewProfileChannelItem 0%
Daqifi.Desktop.ViewModels.NewProfileDeviceItem 0% 0%
Daqifi.Desktop.ViewModels.ProfilesPaneViewModel 0% 0%
Daqifi.Desktop.ViewModels.SettingsViewModel 0% 0%
Daqifi.Desktop.ViewModels.SuccessDialogViewModel 85.7%
Daqifi.Desktop.WindowViewModelMapping.IWindowViewModelMappingsContract 0%
Daqifi.Desktop.WindowViewModelMapping.WindowViewModelMappings 0%
Sentry.Generated.BuildPropertyInitializer 100%
Daqifi.Desktop.Common - 30.8%
Name Line Branch
Daqifi.Desktop.Common 30.8% 16.6%
Daqifi.Desktop.Common.Loggers.AppLogger 33.7% 16.6%
Daqifi.Desktop.Common.Loggers.NoOpLogger 0%
Daqifi.Desktop.IO - 100%
Name Line Branch
Daqifi.Desktop.IO 100% ****
Daqifi.Desktop.IO.Messages.MessageEventArgs`1 100%

Coverage report generated by ReportGeneratorView full report in build artifacts

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant