From a973ff3753f4a0df0b1d4e563e6fa501437e6bec Mon Sep 17 00:00:00 2001 From: Fox Danger Piacenti Date: Sat, 11 Jul 2026 12:58:14 -0500 Subject: [PATCH 1/4] feat: Core Contributor program (TIP-PROC-0006) --- .../TIP-PROC-0006_core_contributor_program.md | 315 ++++++++++++++++++ src/SUMMARY.md | 1 + 2 files changed, 316 insertions(+) create mode 100644 src/Process/TIP-PROC-0006_core_contributor_program.md diff --git a/src/Process/TIP-PROC-0006_core_contributor_program.md b/src/Process/TIP-PROC-0006_core_contributor_program.md new file mode 100644 index 0000000..c57bcb5 --- /dev/null +++ b/src/Process/TIP-PROC-0006_core_contributor_program.md @@ -0,0 +1,315 @@ +# P-TIP-PROC-6: Core Contributor Program + +| TIP | [P-TIP-PROC-6](#p-tip-proc-6-core-contributor-program) | +|---------------|--------------------------------------------------------| +| Title | Core Contributor Program | +| Last Modified | 2026-07-11 | +| Authors | Fox Piacenti <fox@vulpinity.com> | +| Status | Proposed | +| Type | Process | +| Created | 2026-07-29 | + +## Overview + +The Core Contributor (CC) program enables community members who have demonstrated the three Cs-- Conduct, Caliber, and +Commitment, to take ownership and responsibility of elements of the Tari project. + +Core Contributors (CCs) are empowered to make on-the-ground decisions about the project, +and [elect the Tari Council][CouncilElection]. + +To become a Core Contributor, you must be active in the community and consistently contributing with high quality. +Over time, you demonstrate your trustworthiness and, at the discretion of the team, are nominated to a CC position. +After a review of the evidence, you may then be inducted into the Core Contributors. + +There is no automatic path, where you contribute X amount of work in Y time, or check enough boxes to 'win' +Core Contributor status. Rather, it is given at the discretion and in trust by those who have earned that trust before +you. Some guidelines are given in this document to help team members judge readiness, but the judgment is ultimately up +to the current CCs whether to admit a new member. + +## Motivation + +Tari is for everyone. It is a community project. To better distribute the work of the project, improve governance, +reduce silos, and set standards, the core contributor program enables community members with demonstrated Commitment, +Conduct, and Caliber ([the three Cs](#requirements)) to have greater stake in the project's success and say in the +project's direction. + +## Requirements + +All Core Contributors are expected to meet the three Cs: + +* Commitment: Core Contributors must demonstrate a firm commitment to the project, maintaining continuous contribution. +* Conduct: Core Contributors must be welcoming, helpful, and able to disagree without resorting to attacks. They must + demonstrate good judgment and give other community members a fair shake. They must not disparage others for personal + attributes beyond their control, should retain a polite demeanor, and should give feedback constructively. +* Caliber: Core Contributors must demonstrate competence in their domain. They must demonstrate excellence in their + community work, and must hold their fellow core contributors to high standards, mentoring prospective Core + Contributors and new contributors. + +Core Contributors may have additional requirements based on their [category](#categories) or +[rights](#contributor-powers-and-rights). + +Core Contributors are expected to maintain the three Cs and other requirements before and during their tenure. Core +Contributors who lapse in their commitment, conduct, and caliber [may be removed](#involuntary-exits). + +At a minimum, all Core Contributors must have at least six months of history and participation in the Tari project. + +## Contributor Powers and Rights + +Core Contributors may be given power to handle any element of the project which is not the exclusive +responsibility of the council. For an example, a core contributor can be granted: + +* commit or maintainer rights on a code repository +* access to social media accounts +* forum/chat moderation powers +* DNS administration capabilities +* server and online service access +* seat licenses to software +* One key from a set of signature keys for multisig community wallets (if also approved by supermajority (2/3) council vote) +* signature powers for scoped project/budget wallets (if also approved by supermajority (2/3) council vote) +* project management responsibilities +* ...or other assets which the Tari Foundation and Council hold in trust by the community. + +For counterexample, a core contributor may not be granted: + +* the right to vote on behalf of a council member +* the ability to bind the community, Tari Council, or the Tari Foundation to contract +* final say on high-level budgetary decisions, though they may advise them + +Core contributor status does not automatically confer any particular power or access right. Access rights are granted on +an as-needed basis. Core Contributors are the first (and, in most cases, only) community members considered for access +to project resources. + +### Categories + +Core Contributors are organized into categories for administrative convenience. Categories may be granted access or +licenses to specific resources en masse, and may have categorical expectations and responsibilities as part of their +work. Core Contributors may be part of multiple categories, or may have no category. Core Contributors are permitted to +contribute in areas outside their category, but may not be granted specific rights and responsibilities of those +categories without membership. + +The current categories are: + +* [Code](#code-ccs) +* [Product](#product-ccs) +* [Ecosystem](#ecosystem-ccs) +* [Community](#community-ccs) +* [Project](#project-ccs). + +A brief overview of each category is below. Further refinement of expectations and requirements for each may be +submitted in subsequent TIPs. + +To distinguish between, for instance, all code contributors and specifically Core Contributors in the Code Category, we +will use 'code contributors' or 'contributors' for the former and 'Code CCs' for the latter. + +#### Code CCs + +Code CCs are community members with demonstrated software engineering skills who have consistently delivered high +quality code contributions to the Tari project. + +Code CCs are expected to follow best practices in software engineering. These include, but are not limited to: + +1. Not committing directly to special branches (such as 'main') but using a pull request instead +2. Having all code reviewed by at least one Code CC, even their own. +3. Reviewing code of other contributors +4. Writing automated tests for code whenever reasonable automated tests can be written, and providing detailed testing + instructions when not +5. Including documentation and testing instructions with changes + +Code CCs may elect to use code generation tools according to their judgment. They must, however, bear +responsibility for generated code, and must review any code generated before requesting another contributor to review +their pull requests. They must not commit code they do not understand to their respective repositories, and are expected +to guard their repositories from code which does not follow best practices via the review process. + +**Example Evidence of Code CC readiness:** + +* Delivering multiple major features at high quality +* Delivering many thoughtful code improvements +* Providing constructive code review with a keen eye for other contributors +* Writing up issues and bugs with clear descriptions and acceptance criteria +* Provides quality tests with code contributed + +#### Product CCs + +Product CCs guide the holistic implementation of features by providing UI/UX designs that contributors can +implement via code, and by carefully considering the whole impact of a feature for real-world users. They provide review +of new features and may provide art such as iconography which aids in communicating a product's functionality. + +Product CCs are expected to review product TIPs and feature requests to assist in their prioritization and +design. They assist the community by rethinking how we meet the needs of the ever-evolving real-world needs of users. + +**Example Evidence of Product CC readiness:** + +* Delivers multiple quality feature proposals with UI/UX Designs that are accepted for development +* Delivers multiple enhancements to existing features via improved UI/UX designs that are accepted for development +* Demonstrates skill in working with developers and project contributors to verify and validate feature changes against + designs + +#### Ecosystem CCs + +Ecosystem CCs grow Tari beyond its own repositories: the integrations, partnerships, and real-world adoption built on +top of the protocol. Ecosystem CCs might do things like: + +* Source and support integrations with exchanges, wallets, payment processors, and other protocols +* Source and develop partnerships with businesses and institutions that bring real-world usage to Tari +* Support third-party teams building on Tari with onboarding, technical liaison, and go-to-market help +* Represent Tari with enterprises, at industry events, and in adjacent ecosystems +* Advise the council on ecosystem strategy, deal structure, and market development + +**Example Evidence of Ecosystem CC readiness:** + +* Demonstrates decorum, clarity, technical acumen and helpfulness in onboarding community members with wallets and other + Tari software +* Maintains a welcoming attitude toward others +* Performs live presentation demos of technology and products +* Makes quality referrals to and from the Tari community and other teams + +#### Infrastructure CCs + +Infrastructure CCs run Tari-project managed infrastructure. They are charged with keeping community resources in working +order. Infrastructure CCs might do things like: + +* Run and maintain boostrap/seed nodes +* Perform DevOps work on servers and web applications such as the forums +* Maintain mining guides and establish best practices for deploying Tari tools + +**Example Evidence of Infrastructure CC readiness:** + +* Demonstrated ability to deploy and maintain services +* Assists community members in mining and software setup +* Writes guides and contributes documentation for practical deployments + +#### Project CCs + +Project CCs are team members who are in charge of large community-wide projects and/or who perform critical +metawork that helps the Tari project run smoothly. Project CCs may do things like: + +* Coordinating work between contributors to deliver strategic objectives set by the council +* Assisting with administration of the project, such as managing access to resources, or onboarding/offboarding + Core Contributors and council members +* Coordinating dates, schedules, and other resources to ensure project delivery +* Ensure that TIP-defined processes are followed and contribute updates and new processes where appropriate +* Flesh out day-to-day processes implied but not explicitly defined by TIPs +* Run large-scale events beyond the scope of what Community CCs handle on their own + +**Example Evidence of Project CC readiness:** + +* Self-starts projects and recruits community members to deliver value to the community +* Assists in coordinating workgroup activities +* Gives quality feedback on items like feature and initiative prioritization +* Is able to work amicably with a wide swath of people from varying backgrounds and viewpoints + +#### Community CCs + +Community CCs help with day-to-day community affairs. Community CCs might do things like: + +* Moderate chats and forums +* Run day-to-day community events +* Craft messaging for social media and public announcements, ensuring messaging is tailored for each venue +* Provide art and design for marketing campaigns +* Work with Project CCs to run large-scale events +* Translate resources and run language-specific discussions and community events + +**Examples of Community CC Readiness:** + +* Conducts themselves in public chats/forums with decorum and a welcoming demeanor +* Assists in mediation when tempers flare, and does not stoke flames +* Helps newcomers and points them in constructive directions +* Brings useful discussion topics to the table +* Assists in running community events + +## Nomination + +Core Contributors must have a sponsoring nominator. Only existing Core Contributors and current council members may +nominate someone for Core Contributor status. Core Contributor nominations shall be posted in an appropriate forum +category. Any nomination should contain the following: + +* Who is being nominated +* Evidence that they meet [the requirements for being a Core Contributor](#requirements), as links and/or testimony +* **Any corporate entity which is sponsoring their contributions** +* A date, 14 days from the date of posting, by which any votes for or against their candidacy must be given + +For example: + +> I am nominating JimBob for the Core Contributor program as a Code CC. +> +> JimBob has been a contributor of code to our repositories for several months, and proved his excellence when +> implementing spline reticulation. He is very helpful on the forums, always has a good attitude, and contributes +> quality code. You can review some of his pull requests here: +> +> Link 1 +> Link 2 +> Link 3 +> +> JimBob's contributions are backed by CompanyName Inc. +> +> Please provide your vote and feedback by August 24th! + +Core Contributors should reply to the thread either with affirmative votes or with nos. Nos should be accompanied by +feedback. The attitude of feedback should not be 'never' but 'not yet', explaining what improvements the current Core +Contributors would need to see before approving their addition to the team. + +The nomination will be considered approved if five Core Contributors give an affirmative vote and there are not any 'no' +votes by the time the feedback period has ended. In the event there are not five Core Contributors, unanimous +affirmative votes must be collected. + +In the event of an explicit 'no' vote, the candidate may elect to appeal to the Tari Council. The Tari Council will +consider the application of the candidate, and vote on the applicant's candidacy. The candidate will be approved if the +Council decides in their favor with full unanimity. Any override vote must be completed within 14 days, and +must include publicly published reasoning for the override, and their view of the evidence in light of the standards +in this document. Otherwise, the answer is 'no.' + +### Bootstrap Period + +Until the Core Contributor program has inducted 11 members over time, the council will hold voting rights during the +nomination process. After the 11th inducted member, the council shall no longer have the right to vote in +Core Contributor nominations, excepting through the appeals process mentioned in [Nomination](#nomination). + +### Category Expansion + +Expansion of categories is done similar to [nomination](#nomination). A forum post requesting category expansion, +with reason given and evidence of competency supplied, shall be made. If after 7 days there are at least three +affirmative votes and no negative votes, the CC's category will be expanded. Voting rights are the same as described in +[Nomination](#nomination). + +## Exiting the Program + +A Core Contributor who is either unable or unwilling to continue their work as a core contributor may exit the program. + +### Voluntary Exits + +Core Contributors are people. They may be called to new projects, may lose interest, or may lose any sponsorship that +assisted their role as contributor. Whatever the reason, a Core Contributor may submit their resignation to the Council +at any time. They will then be offboarded from the program. To leave in good standing, a notice period of at least 14 +days and good faith work to perform clean handoffs are required. + +### Involuntary Exits + +If a Core Contributor fails to meet the standards of Commitment, Conduct, and Caliber required of the program, and no +remediation is possible or forthcoming (such as a major breach of trust, a refusal to address critical feedback, or +extended lack of contribution) they may be removed from the program by a majority vote of the council and have all +CC rights revoked. + +In the event an involuntary removal occurs, a public reason for this removal must be published by the council within +72 hours of the action taken. The removed may appeal to the council within 7 days, and upon appeal, the council +will consider their evidence and will vote once more, requiring a supermajority (2/3) to maintain removal. +They shall vote and publish their verdict within 7 days of the appeal being posted. + +## Council Voting + +Core Contributors are the exclusive electors of the council. Council members who are not core contributors do not have +voting rights for council membership, as the core contributors are the workers who choose their leaders. Councilors are +encouraged to become Core Contributors either before or during their tenure, but this is not a requirement. + +Two months before a Councilor's term is up, nominations shall be solicited from the community for any who would like to +hold the position. The current incumbent must affirmatively and publicly indicate they wish to continue their tenure +during this time. Nomination closes one month plus one week before the councilor's term ends. + +After one week of setup for voting, elections shall begin, with two weeks for each Core Contributor to submit their +ranked choice (AKA 'instant run-off') ballot. The final two weeks between terms will be used for onboarding and +hand-off, with decision-making power only manifesting when the new electee's term begins. + +## Amendments + +This document may only be amended or replaced via unanimous vote of the council and majority vote of the CCs. + +[CouncilElection]: ../TIP-0002_tari_community_charter.md#article-vii-nomination-and-selection \ No newline at end of file diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 03d606a..f9e9559 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -6,6 +6,7 @@ - [TIP-PROC-1: Tari Improvement Proposals](TIP-0001_tari_improvement_proposals.md) - [TIP-PROC-3: Community Forums](TIP-0003_community_forums.md) - [TIP-RFC-O-8003: Tari Use Cases](RFC-8003_TariUseCases.md) + - [TIP-PROC-0006: Core Contributor Program](Process/TIP-PROC-0006_core_contributor_program.md) - [Accepted](accepted.md) - [TIP-RFC-MT-0241: XMR Atomic swap](RFC-0241_AtomicSwapXMR.md) - [Implemented](implemented.md) From a4ea3bbc8fda8e1d28d5a3e90c2de6ea011ead62 Mon Sep 17 00:00:00 2001 From: Fox Danger Piacenti Date: Thu, 30 Jul 2026 08:06:00 -0500 Subject: [PATCH 2/4] fix: exit voting, key mentions removed, appropriate reviewers --- .../TIP-PROC-0006_core_contributor_program.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Process/TIP-PROC-0006_core_contributor_program.md b/src/Process/TIP-PROC-0006_core_contributor_program.md index c57bcb5..2a39221 100644 --- a/src/Process/TIP-PROC-0006_core_contributor_program.md +++ b/src/Process/TIP-PROC-0006_core_contributor_program.md @@ -64,8 +64,6 @@ responsibility of the council. For an example, a core contributor can be granted * DNS administration capabilities * server and online service access * seat licenses to software -* One key from a set of signature keys for multisig community wallets (if also approved by supermajority (2/3) council vote) -* signature powers for scoped project/budget wallets (if also approved by supermajority (2/3) council vote) * project management responsibilities * ...or other assets which the Tari Foundation and Council hold in trust by the community. @@ -110,10 +108,11 @@ Code CCs are expected to follow best practices in software engineering. These in 1. Not committing directly to special branches (such as 'main') but using a pull request instead 2. Having all code reviewed by at least one Code CC, even their own. -3. Reviewing code of other contributors -4. Writing automated tests for code whenever reasonable automated tests can be written, and providing detailed testing +3. Selecting appropriate reviewers for their pull requests. +4. Reviewing code of other contributors +5. Writing automated tests for code whenever reasonable automated tests can be written, and providing detailed testing instructions when not -5. Including documentation and testing instructions with changes +6. Including documentation and testing instructions with changes Code CCs may elect to use code generation tools according to their judgment. They must, however, bear responsibility for generated code, and must review any code generated before requesting another contributor to review @@ -290,9 +289,10 @@ extended lack of contribution) they may be removed from the program by a majorit CC rights revoked. In the event an involuntary removal occurs, a public reason for this removal must be published by the council within -72 hours of the action taken. The removed may appeal to the council within 7 days, and upon appeal, the council -will consider their evidence and will vote once more, requiring a supermajority (2/3) to maintain removal. -They shall vote and publish their verdict within 7 days of the appeal being posted. +72 hours of the action taken. The removed may appeal to the council and the CC body within 7 days. Upon appeal, +the matter will be put before the CCs and the council for a vote over a 14-day period. If the majority of CCs who cast +a vote choose removal, and the council votes unanimously for removal, the removal will stay. Otherwise, the CC will be +reinstated. ## Council Voting From f9e86cca3b5229ec4ecec356d0838bd7f8730ccd Mon Sep 17 00:00:00 2001 From: Fox Danger Piacenti Date: Thu, 30 Jul 2026 13:27:32 -0500 Subject: [PATCH 3/4] fix: confidential voting --- src/Process/TIP-PROC-0006_core_contributor_program.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Process/TIP-PROC-0006_core_contributor_program.md b/src/Process/TIP-PROC-0006_core_contributor_program.md index 2a39221..51d8b31 100644 --- a/src/Process/TIP-PROC-0006_core_contributor_program.md +++ b/src/Process/TIP-PROC-0006_core_contributor_program.md @@ -305,8 +305,9 @@ hold the position. The current incumbent must affirmatively and publicly indicat during this time. Nomination closes one month plus one week before the councilor's term ends. After one week of setup for voting, elections shall begin, with two weeks for each Core Contributor to submit their -ranked choice (AKA 'instant run-off') ballot. The final two weeks between terms will be used for onboarding and -hand-off, with decision-making power only manifesting when the new electee's term begins. +ranked choice (AKA 'instant run-off') ballot. If an adequate confidential voting solution is available, it should be +used. The final two weeks between terms will be used for onboarding and hand-off, with decision-making power only +manifesting when the new electee's term begins. ## Amendments From 5535b8d80bb11435e1677ab1145eb100bd0ac4cb Mon Sep 17 00:00:00 2001 From: Fox Danger Piacenti Date: Fri, 7 Aug 2026 09:27:48 -0500 Subject: [PATCH 4/4] chore: mark CC TIP implemented --- src/Process/TIP-PROC-0006_core_contributor_program.md | 4 ++-- src/SUMMARY.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Process/TIP-PROC-0006_core_contributor_program.md b/src/Process/TIP-PROC-0006_core_contributor_program.md index 51d8b31..c323d55 100644 --- a/src/Process/TIP-PROC-0006_core_contributor_program.md +++ b/src/Process/TIP-PROC-0006_core_contributor_program.md @@ -1,6 +1,6 @@ -# P-TIP-PROC-6: Core Contributor Program +# I-TIP-PROC-6: Core Contributor Program -| TIP | [P-TIP-PROC-6](#p-tip-proc-6-core-contributor-program) | +| TIP | [I-TIP-PROC-6](#i-tip-proc-6-core-contributor-program) | |---------------|--------------------------------------------------------| | Title | Core Contributor Program | | Last Modified | 2026-07-11 | diff --git a/src/SUMMARY.md b/src/SUMMARY.md index f9e9559..30ad86d 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -6,12 +6,12 @@ - [TIP-PROC-1: Tari Improvement Proposals](TIP-0001_tari_improvement_proposals.md) - [TIP-PROC-3: Community Forums](TIP-0003_community_forums.md) - [TIP-RFC-O-8003: Tari Use Cases](RFC-8003_TariUseCases.md) - - [TIP-PROC-0006: Core Contributor Program](Process/TIP-PROC-0006_core_contributor_program.md) - [Accepted](accepted.md) - [TIP-RFC-MT-0241: XMR Atomic swap](RFC-0241_AtomicSwapXMR.md) - [Implemented](implemented.md) - [TIP-PROC-2: The Tari Community Charter](TIP-0002_tari_community_charter.md) - [TIP-0005: Adjust Bridge Limits](Process/TIP-PROC-0005_adjust_bridge_limits.md) + - [TIP-PROC-0006: Core Contributor Program](Process/TIP-PROC-0006_core_contributor_program.md) - [RFC](implemented_rfc.md) - [RFC-0001: An overview of the Tari network](RFC-0001_overview.md) - [The Tari Base Layer](base_layer.md)