Skip to content

decisions: register the owner decisions of 30 October 2026; P-03 rev20.1 in force - #73

Merged
BotshareAI merged 2 commits into
mainfrom
claude/tender-bardeen-y74r2d
Nov 1, 2026
Merged

BotshareAI merged 2 commits into
mainfrom
claude/tender-bardeen-y74r2d

Conversation

@BotshareAI

@BotshareAI BotshareAI commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

Summary

This PR registers the platform lead's decisions of 30 October 2026 and makes P-03 rev20.1 the addendum in force. Changed paths: decisions.yaml, tests/test_check_decisions.py, WATCHDOG.md (accepted-words table regenerated from the register).

New entries:

Entry Status Decision
UI-MANUAL-VELOCITY-INPUT open (Proposed) /ui/cmd_vel, geometry_msgs/TwistStamped, into the twist_mux manual input. /safety/stop_lock (std_msgs/Bool, reliable, transient local) is engaged by /safety/stop_lock_engage and released only by /safety/stop_lock_release (std_srvs/Trigger)
STATUS-VOCABULARY recorded Robot states READY, EXECUTING, WAITING, BLOCKED, RECOVERING, NEEDS_ASSISTANCE, SAFETY_STOPPED, FAULTED. UI presentation states DISCONNECTED, UNKNOWN, STALE, STOPPED (SOFTWARE). SAFETY_STOPPED comes only from the hardwired chain's diagnostic signal
STOP-SCOPE recorded "Stop (software)" is a robot-side functional stop. It covers base motion only today and is labelled base-only. The target is one robot-side stop for base, arms and lift, designed by the platform lead and the safety owner. "E-stop" means only the hardwired buttons (E-01 rev1.5)
OPERATOR-PANEL recorded Getac ZX80, 8 inch, 1920 x 1200, landscape. Cites P-03 rev20.1 item 24 (whole chest layout, including the ZX80 correction of 28 October 2026). Supersedes ZX10
UI-GATE-A recorded Full UI Gate A on 6 November 2026. 30 October 2026 was the partial A1 result. This is a UI milestone, kept distinct from the hardware Gate A (Teensy, MPU6500)

Changes to existing entries:

  • in_force moves from P-03-rev19.6 (2026-10-18) to P-03-rev20.1 (2026-10-30). P-03-rev20.1 is listed under sources, and the rev19.6 and rev20.0 source titles now say "earlier revision".
  • HEAD-CAMERA-IDENTITY and CONFIG-IDS now cite P-03-rev20.1, along with their check messages. Values are unchanged: baseline 30 degrees and hp30, superseding 25 degrees and hp25.

UI-MANUAL-VELOCITY-INPUT stays open with "Proposed:" in its title, so it is not scanned until its source PR merges and the owner accepts it. The register's schema has no Proposed status, and this PR does not change the checker.

Work package

#72 (contract change request)

Integration Gate

Consumer PRs that implement these entries (step 3 of "Changing a decision"):

Entry Consumer PRs Follow-up consumers
UI-MANUAL-VELOCITY-INPUT openAMRobot/openamrobot-ui#50 (manual velocity input and stop lock) openamr-platform-sw (source PR #90, head 710c98bc, open)
STATUS-VOCABULARY openAMRobot/openamrobot-ui#54; openAMRobot/openamrobot-interfaces#31 (proposal) openamr-platform-sw, openamr-upperbody-sw
STOP-SCOPE openAMRobot/openamrobot-interfaces#31 (proposal); openAMRobot/openamrobot-ui#49 (Stop (software) wording) openamr-platform-sw, openamr-upperbody-sw
OPERATOR-PANEL openAMRobot/openamrobot-ui#49 none
UI-GATE-A none linked none
HEAD-CAMERA-IDENTITY, CONFIG-IDS no value change; citation only none

openamrobot-docs is affected by every new entry, and no docs PR is linked yet.

Whole-robot readiness contract owner: Kunal (skunal3318), from 30 October 2026. This is recorded in this PR description only, not in the register or maintainers.yaml.

Other PRs: #70 (harness design, draft) only puts register text inside eval fixtures. It does not change decisions.yaml or the checker, so it does not conflict. #69 and #41 do not touch the register. Reused: the existing entry schema, the RealRegister test pattern and tools/watchdog.py --accepted-words. Rejected: changing ESTOP-SCOPE, which stays the hardware E-stop power scope; and an invented earlier date as supersedes history for UI-GATE-A.

Tests

Six tests were added to tests/test_check_decisions.py (RealRegister): test_p03_rev20_1_is_in_force_and_cited, test_ui_manual_velocity_input_is_proposed_and_not_scanned, test_safety_stopped_comes_only_from_the_hardwired_chain, test_software_stop_is_base_only_and_not_an_estop, test_operator_panel_is_the_getac_zx80, test_ui_gate_a_is_6_november.

Revert runs:

  • Commit 1 (c8fc6e5), with decisions.yaml restored to main: 5 failed, 83 passed.
  • Commit 2 (009f060), with decisions.yaml restored to c8fc6e5: 1 failed, 88 passed (test_p03_rev20_1_is_in_force_and_cited).

With the change applied: 89 passed. Full suite: Tests executed: 284 of 284 (skipped 0).

Evidence

Base SHA: 71c439e
Head SHA: 009f060

python3 -m pytest tests/test_check_decisions.py -q    -> 89 passed
git show HEAD:decisions.yaml > decisions.yaml && python3 -m pytest tests/test_check_decisions.py -q    -> 1 failed, 88 passed (revert run at c8fc6e5; change restored afterwards)
bash rollout/verify.sh    -> Tests executed: 284 of 284 (skipped 0); PASS: test; PASS: evidence
python3 tools/check_decisions.py --decisions decisions.yaml --maintainers maintainers.yaml --validate-only    -> decisions: 44 loaded, 39 recorded and scanned, 2 open, 3 superseded
python3 tools/check_agent_rules.py --canonical agent-rules/SHARED_RULES.md --file AGENTS.md    -> PASS AGENTS.md (v2)
python3 tools/check_decisions.py --decisions decisions.yaml --maintainers maintainers.yaml --root . --repository .github    -> 0 contradiction(s)

Dependencies

None.

Safety impact

None to code or hardware. The register records the meaning of "E-stop", the scope of the functional software stop, and where SAFETY_STOPPED comes from. It implements no stop, lock or safety function. No safety path is touched. The hardwired chain stays authoritative, and the software stop and stop lock are never safety evidence. Platform lead review of STOP-SCOPE and STATUS-VOCABULARY is requested as the entries' owner.

STATE.md

No change: this repository has no STATE.md.

Not verified

AI disclosure

Claude Code (agent) drafted the register changes, check patterns, tests, the regenerated WATCHDOG.md table, change request #72 and this description. It ran the commands above. Values come from the platform lead's instructions; the work-package owner reviews and writes adopt, adapt or reject.

Contribution terms

  • Every commit is signed off under the DCO.
  • I am covered by an accepted Contributor Agreement.
  • Third-party material is identified with source and licence.
  • No confidential, personal, credential or export-controlled information is included.
  • No partner, customer or private person is named; the application is Use_Case_1.

🤖 Generated with Claude Code

https://claude.ai/code/session_01DZnPEPuPSjhPXo4EgGJZMV

Add five entries from P-03 rev20.1 and the platform lead's decisions of
30 October 2026, with sources, supersedes history, check patterns and tests:

- UI-MANUAL-VELOCITY-INPUT: /ui/cmd_vel (TwistStamped) into the twist_mux
  manual input; /safety/stop_lock released only by /safety/stop_lock_release.
  Proposed while openamr-platform-sw #90 is open; stored as status open
  because the schema has no Proposed status, so it is not scanned.
- STATUS-VOCABULARY: robot and UI presentation states; SAFETY_STOPPED only
  from the hardwired chain diagnostic.
- STOP-SCOPE: Stop (software) is a functional stop, base-only today;
  E-stop means only the hardwired buttons (E-01 rev1.5).
- OPERATOR-PANEL: Getac ZX80, 8 inch, 1920 x 1200, landscape; supersedes ZX10.
- UI-GATE-A: full UI Gate A on 6 November 2026; 30 October was partial (A1).

Head camera baseline pitch hp30 is already registered (HEAD-CAMERA-IDENTITY,
CONFIG-IDS); unchanged. WATCHDOG.md accepted-words table regenerated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DZnPEPuPSjhPXo4EgGJZMV
Signed-off-by: Alex Reznichenko <info@botshare.ai>
… panel (#72)

- in_force moves to P-03-rev20.1 (2026-10-30); rev19.6 and rev20.0 are
  labelled earlier revisions in their source titles.
- HEAD-CAMERA-IDENTITY and CONFIG-IDS cite P-03-rev20.1; values unchanged
  (baseline 30 degrees, hp30).
- OPERATOR-PANEL cites P-03-rev20.1 item 24 (whole chest layout, including
  the ZX80 correction of 28 Oct 2026); date 2026-10-28.
- Test: in_force and the three citations name P-03-rev20.1.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DZnPEPuPSjhPXo4EgGJZMV
Signed-off-by: Alex Reznichenko <info@botshare.ai>
@BotshareAI BotshareAI changed the title decisions: register the owner decisions of 30 October 2026 (UI velocity input and stop lock, status vocabulary, stop scope, operator panel, UI Gate A) decisions: register the owner decisions of 30 October 2026; P-03 rev20.1 in force Oct 30, 2026
@BotshareAI
BotshareAI requested a review from wikki26 October 30, 2026 13:01

@panthera-momagdii panthera-momagdii left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Focused register/provenance review of head 009f060 (decisions.yaml, WATCHDOG table, tests). The new entries clearly distinguish a proposed /ui/cmd_vel contract from recorded vocabulary, base-only software stop, operator panel and UI milestone. I inspected the diff and the successful Repository quality workflow; the source documents P-03 rev20.1, E-01 rev1.5 and the 30 Oct decision record are not in this repository, and I did not independently validate those primary records. Before recording approval, please obtain the platform lead's source-backed confirmation of (1) the exact revision/date and that items 15/17/18 retain hp30 and the camera datums, (2) what rev20.1 item 24 covers, reconciling the carried rev20.0 item-24 second E-stop citation and the newer chest/panel statements, and (3) the owner decision evidence for UI Gate A on 6 Nov. These uncertainties are already disclosed in Not verified, but switching in_force makes them authoritative for downstream consumers. Keep the linked consumer/contract PRs and register ownership checks intact, and do not promote the open UI-MANUAL-VELOCITY-INPUT entry until its source PR and owner acceptance. The linked whole-robot status proposal #31 has an unresolved Q8 about charging versus SAFETY_STOPPED; do not prematurely treat its proposed branch as approved vocabulary. Reviewer did not rerun 284 tests, access plan-set source documents, scan all consumers, or perform hardware/safety validation. This is COMMENT, not approval of the register's technical truth or any harness activation; #70 remains draft and activation requires separate authorization on .github#43. AI-assisted focused review.

@panthera-momagdii panthera-momagdii left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Focused follow-up at 009f060 on claude/tender-bardeen-y74r2d. This review adds a reproducible checker finding; it does not change any technical decision, safety implementation or source document.

[P2] Narrow the new line-wide unless exemptions so they do not suppress affirmative contradictions. tools/check_decisions.py checks each unless against the entire line. Two examples match the new contradiction patterns but are then silently exempted:

  1. STATUS-VOCABULARY: SAFETY_STOPPED comes only from the software stop. The generic only exemption suppresses the finding. Removing only correctly produces a finding. This sentence directly contradicts the rule that SAFETY_STOPPED comes from the hardwired chain diagnostic, not the software stop.
  2. STOP-SCOPE: Stop (software) is a functional safety function. The generic functional exemption suppresses the finding. Removing functional correctly produces a finding, although both sentences incorrectly claim a safety function.

Please make those exceptions specific to the allowed/negated statement rather than a single word anywhere on the line. Add both examples to the existing RealRegister negative tests and retain the positive controls The stop lock shows STOPPED (SOFTWARE), not SAFETY_STOPPED. and Stop (software) is a functional stop, not a safety function. Regenerate the WATCHDOG accepted-words table if the exemptions change.

Validation: inspected the exact decision patterns and the unchanged scan loop; ran six isolated Python regex-plus-unless probes using the same line-matching behavior. Four controls behaved as expected and the two affirmative contradictions above were missed. This is not a claim that the full repository test suite or all consumers were run locally. The prior source/provenance review still stands, and the UI manual velocity entry correctly remains Proposed/open until its source and owner acceptance. Keep draft pending owner review. AI-assisted source inspection and isolated checker probes; no hardware or safety validation.

@wikki26 wikki26 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

CI/conventions review at 009f060.

Locally ran python3 -m pytest -q tests/test_check_decisions.py: 89 passed, 110 subtests passed. python3 tools/check_decisions.py --decisions decisions.yaml --maintainers maintainers.yaml --validate-only passes: 44 loaded, 39 recorded/scanned, 2 open, 3 superseded.

The UI velocity entry remains explicitly Proposed/open and unscanned, and the generated WATCHDOG table reflects that boundary. The 30 Oct team message corroborates the base-only software-stop label, ZX80 landscape panel, hp30 and 6 Nov UI Gate A target, but I have not independently inspected P-03 rev20.1/E-01 rev1.5. This does not resolve the source-provenance questions or the two affirmative-contradiction exemptions already identified in Mohamed's changes-requested review. Please retain those blockers and their negative-test requests; passing the existing suite does not establish those missed cases are fixed.

No source/decision changes or hardware/safety acceptance. OpenAI ChatGPT/Codex-assisted scoped review, not approval.

wikki26 commented Oct 31, 2026

Copy link
Copy Markdown

Source-document verification for register PR #73 (31 Oct):

I checked the actual P-03 Decision Addendum rev20.1 in the connected project documents rather than relying only on the Slack summary. The document header is Revision 20.1 / 30 October 2026. Items 15, 17 and 18 do retain the 30-degree head-camera baseline (hp30), and the opening rev20.1 correction confirms the ZX80 landscape panel; item 24 includes lift sensors, equipment/chest layout and the revised second E-stop placement. Item 24 also records 6 November as the full simulation Gate A after the partial 30 October A1 result.

That supports the date/revision and relevant model/panel citations. Two distinctions still need author/owner resolution before approval: (1) item 24 changes the second E-stop placement compared with older moving-chest language, so ensure the existing SAFETY-PROCUREMENT reference and any UI/description consumers do not imply the superseded position; (2) the separate UI Gate A decision is supported by Alex's 30 October team instructions, but P-03's explicit Gate A statement is for simulation—do not present it as completed UI acceptance.

Most importantly, Mohammad's two reproducible false-negative checker cases remain unresolved at this head: SAFETY_STOPPED comes only from the software stop. and Stop (software) is a functional safety function. must be caught. Narrow the broad unless exemptions, test both negative sentences plus the two correct negative controls, and regenerate WATCHDOG.md. These are the blocker to my CI/checker approval; verifying the source revision alone does not clear them.

No register values, hardware or safety logic were modified in this review.

@BotshareAI

Copy link
Copy Markdown
Contributor Author

adopt

@BotshareAI
BotshareAI marked this pull request as ready for review November 1, 2026 02:15
@BotshareAI
BotshareAI merged commit ed98001 into main Nov 1, 2026
6 checks passed
@BotshareAI
BotshareAI deleted the claude/tender-bardeen-y74r2d branch November 1, 2026 02:17
BotshareAI added a commit that referenced this pull request Nov 1, 2026
…y rule, tablet mount, EV_ICM-42688-P)

- in_force P-03-rev20.2 / 2026-11-01; sources P-03-rev20.2 and BOM-Issue-7.14
- BOM-ISSUE-IN-FORCE: Issue 7.14; Issue 7.10 and 7.11 retired (pattern and supersedes)
- POWER-RAILS: SAFE 24 V converter MEAN WELL DDR-240B-24 behind F-LIFT 15 A
- BASE-CONTROLLER-GATES, FRAMES-REP105: TDK EV_ICM-42688-P replaces MIKROE-4237;
  MIKROE-4237 presented as current is reported
- DRIVETRAIN: ZLTECH brake data of 18 Oct 2026; LIFT: holding-test release gate
- new COMPONENT-AVAILABILITY (limit) and TABLET-MOUNT (configuration);
  CONFIG-IDS note that the tablet position is not a configuration ID
- CONTRIBUTING.md availability paragraph; WATCHDOG.md table regenerated; STATE.md added
- OPERATOR-PANEL (from #73): rotatable mount, landscape by default with a portrait
  second position; its portrait check now flags only portrait as the default (UI code files)
- tests for every new or changed pattern

Safety-path entries (SAFETY-PROCUREMENT, SAFETY-CHAIN-IO) are unchanged.

Refs #77

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DZnPEQ6n3s6T414BJWdJ6m
Signed-off-by: Alex Reznichenko <alex@botshare.ai>
BotshareAI added a commit that referenced this pull request Nov 1, 2026
…y rule, tablet mount, EV_ICM-42688-P)

- in_force P-03-rev20.2 / 2026-11-01; sources P-03-rev20.2 and BOM-Issue-7.14
- BOM-ISSUE-IN-FORCE: Issue 7.14; Issue 7.10 and 7.11 retired (pattern and supersedes)
- POWER-RAILS: SAFE 24 V converter MEAN WELL DDR-240B-24 behind F-LIFT 15 A
- BASE-CONTROLLER-GATES, FRAMES-REP105: TDK EV_ICM-42688-P replaces MIKROE-4237;
  MIKROE-4237 presented as current is reported
- DRIVETRAIN: ZLTECH brake data of 18 Oct 2026; LIFT: holding-test release gate
- new COMPONENT-AVAILABILITY (limit) and TABLET-MOUNT (configuration);
  CONFIG-IDS note that the tablet position is not a configuration ID
- CONTRIBUTING.md availability paragraph; WATCHDOG.md table regenerated; STATE.md added
- OPERATOR-PANEL (from #73): rotatable mount, landscape by default with a portrait
  second position; its portrait check now flags only portrait as the default (UI code files)
- tests for every new or changed pattern

Safety-path entries (SAFETY-PROCUREMENT, SAFETY-CHAIN-IO) are unchanged.

Refs #77

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DZnPEQ6n3s6T414BJWdJ6m
Signed-off-by: Alex Reznichenko <info@botshare.ai>
BotshareAI added a commit that referenced this pull request Nov 1, 2026
…y rule, tablet mount, EV_ICM-42688-P) (#78)

- in_force P-03-rev20.2 / 2026-11-01; sources P-03-rev20.2 and BOM-Issue-7.14
- BOM-ISSUE-IN-FORCE: Issue 7.14; Issue 7.10 and 7.11 retired (pattern and supersedes)
- POWER-RAILS: SAFE 24 V converter MEAN WELL DDR-240B-24 behind F-LIFT 15 A
- BASE-CONTROLLER-GATES, FRAMES-REP105: TDK EV_ICM-42688-P replaces MIKROE-4237;
  MIKROE-4237 presented as current is reported
- DRIVETRAIN: ZLTECH brake data of 18 Oct 2026; LIFT: holding-test release gate
- new COMPONENT-AVAILABILITY (limit) and TABLET-MOUNT (configuration);
  CONFIG-IDS note that the tablet position is not a configuration ID
- CONTRIBUTING.md availability paragraph; WATCHDOG.md table regenerated; STATE.md added
- OPERATOR-PANEL (from #73): rotatable mount, landscape by default with a portrait
  second position; its portrait check now flags only portrait as the default (UI code files)
- tests for every new or changed pattern

Safety-path entries (SAFETY-PROCUREMENT, SAFETY-CHAIN-IO) are unchanged.

Refs #77


Claude-Session: https://claude.ai/code/session_01DZnPEQ6n3s6T414BJWdJ6m

Signed-off-by: Alex Reznichenko <info@botshare.ai>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
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.

3 participants