From 5c24412e7adb551cd792debc6cac48a8d1ec4a62 Mon Sep 17 00:00:00 2001 From: Wasiu Bakare Date: Fri, 15 May 2026 11:13:23 +0100 Subject: [PATCH 1/2] chore: add implementation issue template --- .github/ISSUE_TEMPLATE/implementation.yml | 135 ++++++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/implementation.yml diff --git a/.github/ISSUE_TEMPLATE/implementation.yml b/.github/ISSUE_TEMPLATE/implementation.yml new file mode 100644 index 0000000..18e2043 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/implementation.yml @@ -0,0 +1,135 @@ +name: "Implementation Issue" +description: "Implementation task from the Ori Platform Bootstrap or Implementation Reference" +title: "[REPLACE-PREFIX-NNN] " +labels: [] +body: + - type: markdown + attributes: + value: | + > Every issue must have clear acceptance criteria, explicit dependencies, and enough context + > that a contributor who has never seen the codebase can deliver against it. + + - type: textarea + id: context + attributes: + label: Context + description: "Why this work exists. Link to the implementation reference section and the architectural purpose." + placeholder: | + One paragraph. A contributor who reads only this should understand the "why." + validations: + required: true + + - type: textarea + id: scope + attributes: + label: Scope + description: "What this issue delivers. Be specific about files, packages, and interfaces." + placeholder: | + - [ ] File/package to create or modify + - [ ] Interface or struct to implement + - [ ] Config or contract changes + validations: + required: true + + - type: textarea + id: non-goals + attributes: + label: Non-Goals + description: "What this issue explicitly does NOT do. Prevents scope creep." + placeholder: | + - This issue does not implement X. + - This issue does not modify Y. + validations: + required: true + + - type: textarea + id: technical-spec + attributes: + label: Technical Specification + description: "Code signatures, data types, algorithms, error handling. Enough detail to implement without guessing." + placeholder: | + ```go + func NewFromConfig(cfg ProviderConfig) (Provider, error) + ``` + validations: + required: true + + - type: textarea + id: acceptance-criteria + attributes: + label: Acceptance Criteria + description: "Checkboxes. Every one must be checked before the PR is merged." + placeholder: | + - [ ] Criterion 1 + - [ ] Criterion 2 + - [ ] All existing tests pass + - [ ] New tests cover happy path and at least one failure path + validations: + required: true + + - type: textarea + id: tests + attributes: + label: Tests Required + description: "Specific test names and what each verifies." + placeholder: | + | Test | Verifies | + |------|----------| + | `TestX` | Happy path | + | `TestY` | Error path | + validations: + required: true + + - type: textarea + id: invariants + attributes: + label: "Invariants — Do Not Violate" + description: "Copy the specific AGENTS.md invariants that apply to this issue." + placeholder: | + - **GW-2**: Every response must echo `request_id`. + validations: + required: true + + - type: textarea + id: dependencies + attributes: + label: Dependencies + description: "What blocks this issue and what it unblocks." + placeholder: | + **Blocked by:** + - #NN — short title + + **Unblocks:** + - #MM — short title + validations: + required: true + + - type: textarea + id: references + attributes: + label: Contract References + description: "Links to specs, implementation references, or runtime code." + placeholder: | + - `ori-specs/gateway-api/v1.md` + - Implementation Reference §4.4 + validations: + required: false + + - type: dropdown + id: priority + attributes: + label: Priority + options: + - "poc-critical" + - "post-poc" + validations: + required: true + + - type: checkboxes + id: labels-check + attributes: + label: Additional Labels + options: + - label: "contract-change — modifies cross-repo contract" + - label: "runtime-impact — requires follow-up PR in ori-runtime" + - label: "security-sensitive — touches signing, tokens, keypairs, or Tier D" From 2122f0141a632f936609272c41bce20b67a77c39 Mon Sep 17 00:00:00 2001 From: Wasiu Bakare Date: Fri, 15 May 2026 12:01:32 +0100 Subject: [PATCH 2/2] chore: tailor implementation issue template --- .github/ISSUE_TEMPLATE/implementation.yml | 53 ++++++++++++++--------- 1 file changed, 33 insertions(+), 20 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/implementation.yml b/.github/ISSUE_TEMPLATE/implementation.yml index 18e2043..34e39c0 100644 --- a/.github/ISSUE_TEMPLATE/implementation.yml +++ b/.github/ISSUE_TEMPLATE/implementation.yml @@ -1,6 +1,6 @@ name: "Implementation Issue" -description: "Implementation task from the Ori Platform Bootstrap or Implementation Reference" -title: "[REPLACE-PREFIX-NNN] " +description: "Implementation task from the Ori SDK Python Implementation Reference" +title: "[SDK-NNN] " labels: [] body: - type: markdown @@ -8,6 +8,8 @@ body: value: | > Every issue must have clear acceptance criteria, explicit dependencies, and enough context > that a contributor who has never seen the codebase can deliver against it. + > Keep this issue scoped to the repository contract below. + - type: textarea id: context @@ -25,9 +27,10 @@ body: label: Scope description: "What this issue delivers. Be specific about files, packages, and interfaces." placeholder: | - - [ ] File/package to create or modify - - [ ] Interface or struct to implement - - [ ] Config or contract changes + - [ ] Python module under `ori_sdk/` to create or modify + - [ ] Public dataclass/helper/API to expose from `ori_sdk.__init__` if needed + - [ ] Contract fixture under `tests/fixtures/` if schema-facing + - [ ] Tests under `tests/` validations: required: true @@ -37,8 +40,8 @@ body: label: Non-Goals description: "What this issue explicitly does NOT do. Prevents scope creep." placeholder: | - - This issue does not implement X. - - This issue does not modify Y. + - This issue does not implement unrelated repo work. + - This issue does not change cross-repo contracts unless explicitly labelled contract-change. validations: required: true @@ -48,8 +51,13 @@ body: label: Technical Specification description: "Code signatures, data types, algorithms, error handling. Enough detail to implement without guessing." placeholder: | - ```go - func NewFromConfig(cfg ProviderConfig) (Provider, error) + ```python + from dataclasses import dataclass + + @dataclass(frozen=True) + class SkillPackage: + name: str + version: str ``` validations: required: true @@ -60,10 +68,11 @@ body: label: Acceptance Criteria description: "Checkboxes. Every one must be checked before the PR is merged." placeholder: | - - [ ] Criterion 1 - - [ ] Criterion 2 - - [ ] All existing tests pass - - [ ] New tests cover happy path and at least one failure path + - [ ] Public API is typed and documented + - [ ] Contract fixtures round-trip where applicable + - [ ] `pytest` passes + - [ ] `mypy` strict passes + - [ ] `ruff check` and `ruff format --check` pass validations: required: true @@ -75,8 +84,8 @@ body: placeholder: | | Test | Verifies | |------|----------| - | `TestX` | Happy path | - | `TestY` | Error path | + | `test__happy_path` | Expected typed contract behavior | + | `test__rejects_invalid_input` | Bad input is rejected deterministically | validations: required: true @@ -86,7 +95,8 @@ body: label: "Invariants — Do Not Violate" description: "Copy the specific AGENTS.md invariants that apply to this issue." placeholder: | - - **GW-2**: Every response must echo `request_id`. + - SDK mirrors `ori-specs` and runtime contracts; it must not redefine them. + - Security-sensitive Ed25519 work uses `cryptography`, not PyNaCl, for runtime interoperability. validations: required: true @@ -108,10 +118,13 @@ body: id: references attributes: label: Contract References - description: "Links to specs, implementation references, or runtime code." + description: "Links to specs, implementation references, runtime code, or SDK contract files relevant to this repo." placeholder: | - - `ori-specs/gateway-api/v1.md` - - Implementation Reference §4.4 + - `ori-specs/skill-package/v1.md` — skill package schema, when relevant + - `ori-specs/signing/v1.md` — Ed25519 signing, when relevant + - `ori-specs/gateway-api/v1.md` — gateway request/response contracts, when relevant + - SDK Phase 2 Implementation Reference section for this issue + - Runtime v0.9.0-beta.2 contract files when mirroring runtime behavior validations: required: false @@ -132,4 +145,4 @@ body: options: - label: "contract-change — modifies cross-repo contract" - label: "runtime-impact — requires follow-up PR in ori-runtime" - - label: "security-sensitive — touches signing, tokens, keypairs, or Tier D" + - label: "security-sensitive — touches signing, tokens, keypairs, Tier C/D, or device credentials"