Repository navigation
Conversation
Contributor
|
`rr migrate plan` (rules_requirements v0.2.0) over main e709ffc's traceability-evidence (Test run 37236424393) and hitl-traceability-evidence (HITL tests run 37226247132) lists 210 test cases that count toward two or more requirements, plus 7 targets that several requirements name. requirements/attribution.rrplan records one proposed owner per case, each with a reason taken from what the test asserts and the requirement's text. The PR owners confirm or change them. The worksheet is a data file only: no test, tag or requirements.yaml change, and no verdict change. The .rrplan extension keeps it out of the model, since CI passes `--model requirements` as a directory and every YAML file there is read. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
fughilli
force-pushed
the
s3-attribution-worksheet
branch
from
October 5, 2026 18:53
1b89fe5 to
ead7a22
Compare
This was referenced Oct 5, 2026
This branch had an error being deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this is
Today a single test case can count toward several requirements at once: once for each requirement id it is tagged with, and once more for each requirement whose
verified_bynames its target. FUG-89 moves to per-case ownership. Each test case gets exactly one owner, ornone, and a requirement is verified by the set of cases it owns.requirements/attribution.rrplanis the worksheet for that change. It is the output ofrr migrate plan(rules_requirements v0.2.0) with every case decided, and it holds a proposed owner and a one-line reason for each of the 210 cases that count toward two or more requirements today. Nothing changes yet. The worksheet is data only: no test, tag orrequirements.yamlis touched, and nothing reads the file until S4 runsrr migrate apply. Every verdict stays as it is until you confirm the owners below and the S4 codemod applies them.Evidence used: main e709ffc's
traceability-evidence(Test run 37236424393) andhitl-traceability-evidence(HITL tests run 37226247132, main 907da5a). Of 1294 cases, 554 count toward a requirement, and 210 of those count toward two or more. All 210 have a proposed owner: 21 groups, 14 per-case overrides, 0 open.How to read the tables:
No case under
firmware/,solver/,shared/orfx_compiler/is contested, so those areas have no table.web
//web:clocksync_test/ clocksync//web:improv_provision_test/ provisionViaBle wire + errorprovisionViaBleagainst a fake Improv peripheral: PR-13 "device provisioning".//web:improv_provision_test/ "survives Android's first-attempt GATT flake via retry"//web:flashUsb_test/ flashUsb//web:flashEnv_test/ UA detectors, iOS reason, API-less desktop hint, insecure context//web:flashEnv_test/ capable desktop, two Android WebUSB cases//web:costModel_test/ parseFxb, walkEntry, histCycles, mathFeature, costFor, dynamic histogram//web:costModel_test/ estimateFrameTime, confidenceOf//web:pinhole_test/ lookAtQuat, project//web:pinhole_test/ quatToRotMatpi/server
//pi/server:server_test/ test_handler (mapping session, live map, submit_map/topology, errors)//pi/server:server_test/ test_handler::test_hello_returns_welcome, test_time_sync_pong_timestamps//pi/server:server_test/ test_handler::test_playback_off_is_universal…//pi/server:server_test/ test_proto_wire//pi/server:server_test/ test_session//pi/server:server_integration_test/ test_full_capture_flowpi/reconstruction and pi/led_driver
//pi/reconstruction:reconstruct_test/ test_reconstruct//pi/reconstruction:rust_parity_test/ test_rust_parity//pi/led_driver:led_driver_test/ test_graycode//web:gray_testand//web:fec_test(PR-34).pi/hitl
//pi/hitl/harness:e2e_netstack/ hitl_e2e::flash_boot//pi/hitl/harness:e2e_netstack/ hitl_e2e::improv_provision//pi/hitl/harness:e2e_netstack/ hitl_e2e::websocket_checks//pi/hitl/tests:hitl_test/ test_fx_bench (bundle schema, golden margin, stable_cycles, LED count)deviceProfile.tsand the golden frame-cycle margin: PR-27 "calibrate the cost model, validate against held-out workloads". PR-17's text also names "calibrated performance estimation inputs".//pi/hitl/tests:hitl_test/ test_fx_bench run-health (stamps_run_health + 3 run_health_failure)//pi/hitl/tests:hitl_test/ test_improvpi/hitl/harness/improv.py). The product codecs have their own tests://firmware/player_app:improv_codec_test,//web:improv_test.//pi/hitl/tests:hitl_test/ test_syncsync.py). The app's clock sync is//web:clocksync_test.//pi/hitl/tests:hitl_test/ test_map_upload//pi/hitl/tests:hitl_test/ test_mapping_trigger//pi/hitl/tests:hitl_test/ test_video_bench//tools/touchdesigner/stream_bench:stream_bench_test(PR-10).requirements (CI)
//requirements:model_test/ [target]verified_bytarget and has to rely on HITL evidence.Open questions (each with the proposed default)
pi/provisioning/nix/improv/improv_codec_test.py, which callsimportlib.util.spec_from_file_location. That call only runs underif __name__ == "__main__", never at import time. On a copy without that file, the dry run rewrites 13 files and refuses none. Default: fix the guard upstream so that code reached only from a__main__block does not count as import-time, then run S4. The fallback is to migrate those files by hand.--no-collect-checkonly. pytest collection needs uvicorn,python.runfilesand the Bazel import roots, and none of these could be installed here. Default: S4 runsrr migrate applywith the collection check on, in an environment that has the py_test deps (CI), followed by a re-plan.none. The five pi/hitl/tests harness modules and the 4 fx_bench run-health cases are proposednone. They would fit PR-23 (the harness validates operational flows) and PR-36 (HITL/CI flakiness). That would be a new claim, and the worksheet can only choose among the claims that exist. Default:nonenow. Add PR-23/PR-36 tags in a follow-up if you want them counted.web/tests/captureDeviceDrop.test.tsandpi/server/tests/test_capture_recovery.pyare about surviving device drops, but both are tagged PR-31. Default: accept PR-22 as UNVERIFIED and write a dedicated PR-22 test. The alternative is moving one of those two tests from PR-31 to PR-22.build_info/board_capsto PR-35. The rename echo arguably fits PR-35's "refresh network-facing identity correctly after changes" better. Rename is also in PR-13's text. Default: PR-13 until CheckPlan (S5) splits websocket_checks into separate cases. Then pick per case.failure, although the e2e_netstack phases passed. Default: re-plan with--mergeagainst a green HITL run before S7.How to change a decision
requirements/attribution.rrplan, setowner:on a group (it applies to all its cases), or addowner:andreason:to a single case to override the group. Valid values are a requirement id from that case'scounts_toward, ornone. To make an id outside that list the owner, change the tags orverified_byfirst, in a separate change.rr migrate plan --merge(v0.2.0) keeps the owners but drops everyreason:field, so edit the file in place.rr migrate plan --model requirements --evidence <sw testlogs> <hw testlogs> --merge requirements/attribution.rrplanshould report "0 open".Once you approve, S4 applies the owners with
rr migrate apply. The impliedverified_byedits are: remove PR-23 → model_test, PR-29 → clocksync_test, and PR-16/PR-32 → flashUsb_test. costModel, flashEnv, improv_provision and pinhole are split within one target, which needs v0.3 case selectors.Do not merge until the owners are confirmed.
🤖 Generated with Claude Code