feat(canon): add contribution-convention v0.1, contrib/ templates, and first UPR artifact
- canon/standards/contribution-convention_v0.1.md: master spec for BR/FR/EP/UPR artifact types, directory layout, frontmatter schema, ID schemes (EP-DOMAIN-NNN for extension points), status lifecycle, and relationship to State Hub - canon/standards/contrib-templates/: four template files (br, fr, ep, upr) - contrib/upstream-prs/2026-02-26--observablehq--framework--toc-sidebar-inject.md: first real UPR artifact — proposes injectTocTop() to Observable Framework Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
44
canon/standards/contrib-templates/br-template.md
Normal file
44
canon/standards/contrib-templates/br-template.md
Normal file
@@ -0,0 +1,44 @@
|
||||
---
|
||||
id: br-YYYY-MM-DD--org--repo--slug
|
||||
type: br
|
||||
target_org: <github-org-or-owner>
|
||||
target_repo: <repository-name>
|
||||
title: "Short description of the bug"
|
||||
status: draft
|
||||
domain: custodian # change to your domain
|
||||
related_workstream: null
|
||||
state_hub_contribution_id: null
|
||||
created: "YYYY-MM-DD"
|
||||
updated: "YYYY-MM-DD"
|
||||
upstream_version: "X.Y.Z"
|
||||
upstream_issue_url: null
|
||||
---
|
||||
|
||||
# Bug: <short description>
|
||||
|
||||
## Environment
|
||||
|
||||
- **Upstream project**: `<target_org>/<target_repo>` v`<upstream_version>`
|
||||
- **Our usage context**: _which component or module triggered this_
|
||||
|
||||
## Reproduction Steps
|
||||
|
||||
1. …
|
||||
2. …
|
||||
3. …
|
||||
|
||||
## Expected Behaviour
|
||||
|
||||
_What should happen._
|
||||
|
||||
## Actual Behaviour
|
||||
|
||||
_What actually happens. Include error messages or stack traces._
|
||||
|
||||
## Workaround
|
||||
|
||||
_Any workaround currently in use, or "None"._
|
||||
|
||||
## Notes
|
||||
|
||||
_Any additional context, links to related issues, or observations._
|
||||
50
canon/standards/contrib-templates/ep-template.md
Normal file
50
canon/standards/contrib-templates/ep-template.md
Normal file
@@ -0,0 +1,50 @@
|
||||
---
|
||||
id: EP-DOMAIN-NNN
|
||||
type: ep
|
||||
ep_id: EP-DOMAIN-NNN
|
||||
target_org: <github-org-or-owner>
|
||||
target_repo: <repository-name>
|
||||
title: "Short description of the extension point"
|
||||
status: draft
|
||||
domain: custodian # change to your domain
|
||||
related_workstream: null
|
||||
state_hub_contribution_id: null
|
||||
created: "YYYY-MM-DD"
|
||||
updated: "YYYY-MM-DD"
|
||||
location: "src/file.ts:42"
|
||||
upstream_issue_url: null
|
||||
---
|
||||
|
||||
# Extension Point Proposal: EP-DOMAIN-NNN
|
||||
|
||||
## Summary
|
||||
|
||||
_One-paragraph description of the extension point: where in the upstream codebase
|
||||
it would live, what it would enable, and who would benefit._
|
||||
|
||||
## Location
|
||||
|
||||
**File**: `<path/in/upstream/repo>`
|
||||
**Line**: _approximate location where the hook/callback would be inserted_
|
||||
|
||||
## Proposed Interface
|
||||
|
||||
```typescript
|
||||
// or Python, Rust, etc. — match the upstream project's language
|
||||
interface ExtensionPoint {
|
||||
// …
|
||||
}
|
||||
```
|
||||
|
||||
## Rationale
|
||||
|
||||
_Why this extension point is valuable. What use cases does it unlock?
|
||||
Why should upstream accept it rather than keeping it local?_
|
||||
|
||||
## Implementation Sketch
|
||||
|
||||
_Brief notes on how upstream might implement this, if relevant._
|
||||
|
||||
## Notes
|
||||
|
||||
_References to related upstream issues, PRs, or discussions._
|
||||
40
canon/standards/contrib-templates/fr-template.md
Normal file
40
canon/standards/contrib-templates/fr-template.md
Normal file
@@ -0,0 +1,40 @@
|
||||
---
|
||||
id: fr-YYYY-MM-DD--org--repo--slug
|
||||
type: fr
|
||||
target_org: <github-org-or-owner>
|
||||
target_repo: <repository-name>
|
||||
title: "Short description of the requested feature"
|
||||
status: draft
|
||||
domain: custodian # change to your domain
|
||||
related_workstream: null
|
||||
state_hub_contribution_id: null
|
||||
created: "YYYY-MM-DD"
|
||||
updated: "YYYY-MM-DD"
|
||||
upstream_issue_url: null
|
||||
---
|
||||
|
||||
# Feature Request: <short description>
|
||||
|
||||
## Motivation
|
||||
|
||||
_Why we need this feature. What problem does it solve? What becomes possible?_
|
||||
|
||||
## Proposed Interface / API
|
||||
|
||||
```
|
||||
# Sketch of the proposed interface, function signature, or configuration option.
|
||||
```
|
||||
|
||||
## Example Usage
|
||||
|
||||
```
|
||||
# How we would use this feature in our codebase once available.
|
||||
```
|
||||
|
||||
## Alternatives
|
||||
|
||||
_What we currently do instead (workaround, local implementation, etc.)._
|
||||
|
||||
## Notes
|
||||
|
||||
_Any additional context, links to related discussions, or upstream roadmap references._
|
||||
62
canon/standards/contrib-templates/upr-template.md
Normal file
62
canon/standards/contrib-templates/upr-template.md
Normal file
@@ -0,0 +1,62 @@
|
||||
---
|
||||
id: upr-YYYY-MM-DD--org--repo--slug
|
||||
type: upr
|
||||
target_org: <github-org-or-owner>
|
||||
target_repo: <repository-name>
|
||||
title: "Short description of the upstream PR"
|
||||
status: draft
|
||||
domain: custodian # change to your domain
|
||||
related_workstream: null
|
||||
state_hub_contribution_id: null
|
||||
created: "YYYY-MM-DD"
|
||||
updated: "YYYY-MM-DD"
|
||||
local_component_path: "relative/path/in/this/repo/component.js"
|
||||
target_upstream_file: "path/in/upstream/repo/component.js"
|
||||
upstream_pr_url: null
|
||||
---
|
||||
|
||||
# Upstream PR: <short description>
|
||||
|
||||
## Summary
|
||||
|
||||
_What this PR adds or fixes in the upstream project._
|
||||
|
||||
## Motivation
|
||||
|
||||
_Why we want this upstream rather than keeping it as a local fork.
|
||||
What maintenance burden does upstreaming remove?_
|
||||
|
||||
## Local Component
|
||||
|
||||
**Path in this repo**: `<local_component_path>`
|
||||
**Origin story**: _How/when this component was created locally._
|
||||
|
||||
## Target Upstream Location
|
||||
|
||||
**Repo**: `<target_org>/<target_repo>`
|
||||
**File**: `<target_upstream_file>`
|
||||
|
||||
## Draft PR Body
|
||||
|
||||
```markdown
|
||||
## Summary
|
||||
|
||||
_Fill in the PR summary for the upstream project here._
|
||||
|
||||
## Motivation
|
||||
|
||||
_Explain why the upstream project would benefit._
|
||||
|
||||
## Changes
|
||||
|
||||
- …
|
||||
|
||||
## Testing
|
||||
|
||||
- [ ] Tests added
|
||||
- [ ] Existing tests pass
|
||||
```
|
||||
|
||||
## Notes
|
||||
|
||||
_Any upstream discussion, review feedback, or open questions._
|
||||
Reference in New Issue
Block a user