From a2aa3699d0131acc439f73a6840454a723b0b078 Mon Sep 17 00:00:00 2001 From: Ryan Williams Date: Tue, 16 Jul 2024 22:23:38 -0600 Subject: [PATCH] init cc vote rationale metadata cip --- .../README.md | 133 ++++++++++++++++++ .../ryans-island-is-unconstitutional.jsonld | 74 ++++++++++ 2 files changed, 207 insertions(+) create mode 100644 CIP-governance-metadata-cc-rationale/README.md create mode 100644 CIP-governance-metadata-cc-rationale/ryans-island-is-unconstitutional.jsonld diff --git a/CIP-governance-metadata-cc-rationale/README.md b/CIP-governance-metadata-cc-rationale/README.md new file mode 100644 index 0000000000..8ef8e30554 --- /dev/null +++ b/CIP-governance-metadata-cc-rationale/README.md @@ -0,0 +1,133 @@ +--- +CIP: ? +Title: Governance metadata - Constitutional Committee vote rationale +Category: Metadata +Status: Proposed +Authors: + - Ryan Williams + - 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). diff --git a/CIP-governance-metadata-cc-rationale/ryans-island-is-unconstitutional.jsonld b/CIP-governance-metadata-cc-rationale/ryans-island-is-unconstitutional.jsonld new file mode 100644 index 0000000000..9d9dc2aacb --- /dev/null +++ b/CIP-governance-metadata-cc-rationale/ryans-island-is-unconstitutional.jsonld @@ -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" + } + } + ] +}