Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DRAFT] CIP-???? | Governance Metadata - Constitutional Committee Votes #12

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
133 changes: 133 additions & 0 deletions CIP-governance-metadata-cc-rationale/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
---
CIP: ?
Title: Governance metadata - Constitutional Committee vote rationale
Category: Metadata
Status: Proposed
Authors:
- Ryan Williams <[email protected]>
- Eysteinh
Implementors: []
Discussions:
- https://github.com/cardano-foundation/CIPs/pull/?
Created: 2024-07-17
License: CC-BY-4.0
---

## Abstract

The Conway ledger era ushers in on-chain governance for Cardano via [CIP-1694 | A First Step Towards On-Chain Decentralized Governance](https://github.com/cardano-foundation/CIPs/blob/master/CIP-1694/README.md), with the addition of many new on-chain governance artifacts.
Some of these artifacts support the linking off-chain metadata, as a way to provide context.

The [CIP-100 | Governance Metadata](https://github.com/cardano-foundation/CIPs/tree/master/CIP-0100) standard provides a base framework for how all off-chain governance metadata should be formed and handled.
But this is intentionally limited in scope, so that it can be expanded upon by more specific subsequent CIPs.

This proposal aims to provide a specification for off-chain metadata vocabulary that can be used to give context to Constitutional Committee votes.

## Motivation: why is this CIP necessary?

### For GA submitters
- Provide clarity to submitters - why their proposal is unconstitutional?

### For voters
- Provide clarity to DReps/ada holders/SPOs
- to show that the CC is fair and reasonable
- so the CC don't get voted out OR "no confidenced" - this instability would risk the perceived legitimacy of the system

## Specification

We define an initial specification for fields which SHOULD be added to constitutional committee votes.

### Extended Vocabulary

The following properties extend the potential vocabulary of [CIP-100](https://github.com/cardano-foundation/CIPs/tree/master/CIP-0100)'s `body` property.

#### `summary`

- A short text field. Limited to `200` characters.
- Authors SHOULD use this field to clearly state their stance on the issue.
- Authors SHOULD use this field to succinctly describe their rationale.
- Authors SHOULD give a brief overview of the main arguments will support your position.
- This SHOULD NOT support markdown text styling.
- Compulsory

#### `rationale-statement`

- A long text field.
- Authors SHOULD use this field to fully describe their rationale.
- Authors SHOULD discuss their the arguments in full detail.
- This SHOULD support markdown text styling.
- Compulsory

#### `precedent-discussion`

- A long text field.
- The author SHOULD use this field to discuss what they feel is relevant precedent.
- directly passed similar proposals (history of proposals)
- (consider precedents can discarded when constitutions change?)
- This SHOULD support markdown text styling.
- Optional

#### `counterarguments-discussion`

- A long text field.
- The author SHOULD use this field to discuss significant counter arguments to the position taken.
- This SHOULD support markdown text styling.
- Optional

#### `references`

- We extend CIP-100's references field.
- We add to CIP-100's `@type`s, with a type of `relevant-articles`.
- Authors SHOULD use this field to list the relevant constitution articles to their argument.
- Optional

### Application

Constitutional committee must include all compulsory fields to be considered CIP-XXX compliant.
As this is an extension to CIP-100, all CIP-100 fields can be included within CIP-XXX compliant metadata.

### Test Vector

// todo

See [test-vector.md](./test-vector.md) for examples.

### Versioning

This proposal should not be versioned, to update this standard a new CIP should be proposed.
Although through the JSON-LD mechanism further CIPs can add to the common governance metadata vocabulary.

## Rationale: how does this CIP achieve its goals?

// todo - fill in details

### `summary`

- useful for users to quickly see a preview of the whole rationale
- gives tooling the option to show a high level intro

#### No `conclusion`

- probably not needed

## Path to Active

### Acceptance Criteria

- [ ] This standard is supported by two different tooling providers used to submit governance actions to chain.
- [ ] This standard is supported by two different chain indexing tools, used to read and render metadata.

### Implementation Plan

#### Solicitation of feedback

- [ ] Run two online workshops to gather insights from stakeholders.
- [ ] Seek community answers on all [Open Questions](#open-questions).

#### Implementation

- [ ] Author to provide example metadata and schema files.

## Copyright

This CIP is licensed under [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/legalcode).
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
{
"@context": {
"@language": "en-us",
"CIP100": "https://github.com/cardano-foundation/CIPs/blob/master/CIP-0100/README.md#",
"CIPXXX": "https://github.com/cardano-foundation/CIPs/blob/master/CIP-0108/README.md#",
"hashAlgorithm": "CIP100:hashAlgorithm",
"body": {
"@id": "CIPXXX:body",
"@context": {
"references": {
"@id": "CIPXXX:references",
"@container": "@set",
"@context": {
"GovernanceMetadata": "CIP100:GovernanceMetadataReference",
"Other": "CIP100:OtherReference",
"label": "CIP100:reference-label",
"uri": "CIP100:reference-uri"
}
},
"summary": "CIPXXX:summary",
"rationale-statement": "CIPXXX:rationale-statement",
"relevant-articles": "CIPXXX:relevant-articles",
"precedents": "CIPXXX:precedents",
"counterarguments": "CIPXXX:counterarguments",
"conclusion": "CIPXXX:conclusion"
}
},
"authors": {
"@id": "CIP100:authors",
"@container": "@set",
"@context": {
"name": "http://xmlns.com/foaf/0.1/name",
"witness": {
"@id": "CIP100:witness",
"@context": {
"witnessAlgorithm": "CIP100:witnessAlgorithm",
"publicKey": "CIP100:publicKey",
"signature": "CIP100:signature"
}
}
}
}
},
"hashAlgorithm": "blake2b-256",
"body": {
"summary": "Ryan using treasury funds to buy an island is unconstitutional.",
"rationale-statement": "The Cardano treasury is not meant to be used for personal gain, it should be for the benefit of the community.",
"precedents": "No precedent",
"counterarguments": "It would be pretty cool.",
"conclusion": "In conclusion spending the treasury to benefit a single dude, bad.",
"references": [
{
"@type": "Relevant Articles",
"label": "Article III section 8.",
"uri": "https://github.com/IntersectMBO/interim-constitution/blob/main/cardano-constitution-0.txt#L231"
},
{
"@type": "Other",
"label": "A cool island for Ryan",
"uri": "https://www.google.com/maps/place/World's+only+5th+order+recursive+island/@62.6511465,-97.7946829,15.75z/data=!4m14!1m7!3m6!1s0x5216a167810cee39:0x11431abdfe4c7421!2sWorld's+only+5th+order+recursive+island!8m2!3d62.651114!4d-97.7872244!16s%2Fg%2F11spwk2b6n!3m5!1s0x5216a167810cee39:0x11431abdfe4c7421!8m2!3d62.651114!4d-97.7872244!16s%2Fg%2F11spwk2b6n?authuser=0&entry=ttu"
}
]
},
"authors": [
{
"name": "Ryan Williams",
"witness": {
"witnessAlgorithm": "ed25519",
"publicKey": "7ea09a34aebb13c9841c71397b1cabfec5ddf950405293dee496cac2f437480a",
"signature": "a476985b4cc0d457f247797611799a6f6a80fc8cb7ec9dcb5a8223888d0618e30de165f3d869c4a0d9107d8a5b612ad7c5e42441907f5b91796f0d7187d64a01"
}
}
]
}