From 4c98daeda7aee2bd2c39100f5ff1e51891796e0d Mon Sep 17 00:00:00 2001 From: Alex Reznichenko Date: Wed, 23 Sep 2026 18:15:53 +0300 Subject: [PATCH 1/3] Add plan-linked work package issue form --- .github/ISSUE_TEMPLATE/work_package.yml | 110 ++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/work_package.yml diff --git a/.github/ISSUE_TEMPLATE/work_package.yml b/.github/ISSUE_TEMPLATE/work_package.yml new file mode 100644 index 0000000..cfa5f88 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/work_package.yml @@ -0,0 +1,110 @@ +name: Work package +description: Propose a scoped, plan-linked engineering work item for a maintained OpenAMRobot repository. +title: "[WP] " +body: + - type: markdown + attributes: + value: | + Use this form for a focused work item that can be reviewed, implemented, and verified independently. + + For the current Dev_cycle_2 scope, use maintained product repositories only. Do not use this form for archived repositories, the legacy `openamr` monorepo, or fleet-management work. + + - type: input + id: plan_item + attributes: + label: Plan item + description: Identify the authoritative plan item, gate, or quality requirement. + placeholder: "D-03 / Q-01 / N3 / Gate A / other" + validations: + required: true + + - type: input + id: target_repository + attributes: + label: Target repository + description: Repository that owns the implementation or canonical engineering fact. + placeholder: "openAMRobot/" + validations: + required: true + + - type: input + id: workstream + attributes: + label: Workstream + description: Use a role or subsystem, not a person's name. + placeholder: "navigation / base firmware / manipulation / documentation / CI" + validations: + required: true + + - type: textarea + id: objective + attributes: + label: Objective + description: State the problem and the intended engineering outcome. + placeholder: What needs to become true? + validations: + required: true + + - type: textarea + id: scope + attributes: + label: Scope and exclusions + description: List what this work includes and explicitly state nearby work that is out of scope. + placeholder: | + In scope: + - + + Out of scope: + - + validations: + required: true + + - type: textarea + id: acceptance_criteria + attributes: + label: Acceptance criteria + description: Write observable pass/fail conditions. + placeholder: | + - [ ] ... + - [ ] ... + validations: + required: true + + - type: textarea + id: evidence + attributes: + label: Required evidence + description: Specify the commands, logs, measurements, tests, review records, or links required to close the work item. + placeholder: What evidence will demonstrate completion? + validations: + required: true + + - type: textarea + id: dependencies + attributes: + label: Dependencies and affected consumers + description: List upstream decisions, interfaces, repositories, hardware, CI checks, or documentation affected. + placeholder: None, or list each dependency and its owner/workstream. + validations: + required: true + + - type: textarea + id: safety_compatibility + attributes: + label: Safety and compatibility impact + description: Describe effects on motion, power, actuators, safety I/O, interfaces, migration, or release support. Write "None" only after considering each area. + placeholder: None, or describe the impact and required review. + validations: + required: true + + - type: checkboxes + id: review_checks + attributes: + label: Planning checks + options: + - label: I checked that this is not a duplicate of an existing issue or pull request. + required: true + - label: I identified the canonical repository for implementation-sensitive facts. + required: true + - label: I will not describe planned or unverified work as validated, production-ready, or release-ready. + required: true From 2c00e483660fc62403a7e2e7e05211a039d84531 Mon Sep 17 00:00:00 2001 From: Alex Reznichenko Date: Wed, 23 Sep 2026 18:16:12 +0300 Subject: [PATCH 2/3] Add controlled interface change issue form --- .../interface_change_request.yml | 109 ++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/interface_change_request.yml diff --git a/.github/ISSUE_TEMPLATE/interface_change_request.yml b/.github/ISSUE_TEMPLATE/interface_change_request.yml new file mode 100644 index 0000000..1748695 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/interface_change_request.yml @@ -0,0 +1,109 @@ +name: Interface change request +description: Propose a controlled change to a ROS, API, message, schema, or other shared interface. +title: "[INTERFACE] " +body: + - type: markdown + attributes: + value: | + Use this form before changing an interface consumed by another repository, node, service, tool, or operator surface. + + Keep generic interfaces generic. Do not add application-specific manipulation behavior or authoritative safety behavior to a telemetry or navigation contract without an explicit owning design decision. + + - type: input + id: plan_item + attributes: + label: Plan item + description: Identify the authoritative plan item, gate, or quality requirement. + placeholder: "Q-01 / D-03 / N3 / I8 / other" + validations: + required: true + + - type: input + id: contract + attributes: + label: Contract or interface + description: Name the message, service, action, API, schema, topic, or file being changed. + placeholder: "repository, package, path, and interface name" + validations: + required: true + + - type: dropdown + id: change_class + attributes: + label: Change class + description: Select the closest compatibility class; explain the choice below. + options: + - Documentation-only or implementation clarification + - Add an enum, reason code, or constant without changing field layout + - Add, remove, rename, reorder, or retype a field — version bump and consumer rebuild required + - Change the meaning, units, defaults, or validity of an existing value — version bump and consumer review required + - Other — explain below + validations: + required: true + + - type: textarea + id: problem_proposal + attributes: + label: Problem and proposed change + description: Explain the current limitation and the exact proposed contract. + placeholder: | + Current problem: + - + + Proposed change: + - + validations: + required: true + + - type: textarea + id: producers_consumers + attributes: + label: Producers and consumers + description: List current and planned producers, consumers, tools, UI surfaces, logs, and documentation that depend on the contract. + placeholder: | + Producers: + - + + Consumers: + - + validations: + required: true + + - type: textarea + id: compatibility + attributes: + label: Compatibility and migration + description: State whether old and new definitions can coexist, which consumers must rebuild, and how rollout or rollback works. + placeholder: What must change together? + validations: + required: true + + - type: textarea + id: validation + attributes: + label: Validation and evidence + description: Specify schema checks, generated-code builds, producer/consumer tests, simulation or hardware evidence, and documentation updates. + placeholder: How will the change be proven compatible and correct? + validations: + required: true + + - type: textarea + id: safety_boundary + attributes: + label: Safety and operational boundary + description: Describe effects on motion, power, actuators, safety I/O, readiness, operator reporting, or Use_Case_1 behavior. State which component remains authoritative. + placeholder: None, or describe the effect and authoritative owner. + validations: + required: true + + - type: checkboxes + id: review_checks + attributes: + label: Interface review checks + options: + - label: I identified every known producer and consumer, including UI, logs, and documentation where applicable. + required: true + - label: I classified the compatibility impact and will update the contract version when required. + required: true + - label: I have not treated telemetry as authoritative safety evidence. + required: true From 1c838b118ce98e76a23fc2f46057194088ac1840 Mon Sep 17 00:00:00 2001 From: Alex Reznichenko Date: Wed, 23 Sep 2026 18:18:51 +0300 Subject: [PATCH 3/3] Narrow issue form to current cycle scope --- .github/ISSUE_TEMPLATE/work_package.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/work_package.yml b/.github/ISSUE_TEMPLATE/work_package.yml index cfa5f88..920744d 100644 --- a/.github/ISSUE_TEMPLATE/work_package.yml +++ b/.github/ISSUE_TEMPLATE/work_package.yml @@ -7,7 +7,7 @@ body: value: | Use this form for a focused work item that can be reviewed, implemented, and verified independently. - For the current Dev_cycle_2 scope, use maintained product repositories only. Do not use this form for archived repositories, the legacy `openamr` monorepo, or fleet-management work. + For the current Dev_cycle_2 scope, use maintained product repositories only. Do not use this form for archived repositories, the legacy `openamr` monorepo, or unrelated future-cycle topics. - type: input id: plan_item