Files
community-rule/data/create/customRule/_jobs.json
T
adilalloandCursor bcbc6f30d9 Import the remade decks on stable ids and recommend one card per job, so a saved draft still loads after a chip is renamed.
The real-group profiles stay as a test, so a change that moves a pick fails.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-11-04 14:22:54 -07:00

870 lines
25 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"about": "The engine’s structure for each deck, for the rule agreed on 24 and 27 October. Jobs run in deck order. displayTier and rank set which recommended cards show first, and addedOrder ranks the cards setup answers add. Each card names its job, its priority inside that job, which is the row order that settles the last ties, whether it carries the Every Rule has label and its marks for the six setup answers. The rule that reads this file is in the package README and engine/recommend.ts.",
"version": "2026-11-02",
"displayLimit": 7,
"maxAddedInSeven": 2,
"tierOrder": [
"frame",
"safety",
"answers",
"fitted",
"floor"
],
"traitKeys": [
"network",
"nonvoters",
"employer",
"sponsor",
"records",
"risky"
],
"sizeAnswers": {
"oneMember": "oneMember",
"twoToFive": "twoToFive",
"sixToTwelve": "sixToTwelve",
"thirteenToOneHundred": "thirteenToOneHundred",
"oneHundredToOneHundredK": "oneHundredToOneHundredK"
},
"decks": {
"decisionApproaches": {
"jobs": [
{
"id": "everyday",
"label": "Everyday decisions",
"displayTier": "frame",
"rank": 1,
"why": "Most decisions are small and easy to undo, so every Rule needs to say who can act alone and when they must tell or ask first. Decision speeds also routes every decision to the group’s other cards."
},
{
"id": "big",
"label": "Big decisions",
"displayTier": "fitted",
"rank": 5,
"why": "Decisions that are hard to undo and touch everyone need one named method, which every other card calls a decision of the whole group."
},
{
"id": "rule-change",
"label": "Changing this Rule",
"displayTier": "floor",
"rank": 7,
"why": "A Rule that does not say how it changes either freezes or gets rewritten by whoever holds the pen."
},
{
"id": "emergency",
"label": "Emergencies",
"displayTier": "safety",
"rank": 2,
"why": "Every group meets a day with no time, so it needs a fast path that is reported at once and lapses unless the group confirms it."
},
{
"id": "money",
"label": "Money",
"displayTier": "floor",
"rank": 8,
"why": "Money and keys start much of the trouble, so a Rule must say where shared money is kept, who signs and who checks."
},
{
"id": "spending",
"label": "Spending",
"displayTier": "floor",
"rank": 9,
"why": "Most money trouble starts with who spent what, so a Rule must say what one member can spend alone, what needs a second member and what goes to the whole group."
},
{
"id": "roles",
"label": "Roles and delegation",
"displayTier": "fitted",
"rank": 6,
"why": "Roles are fine and bosses are not, so every role and working group needs a written mandate, a term, a report-back, a check and a recall."
},
{
"id": "other",
"label": "Other tools",
"displayTier": "none",
"why": "Voting systems, tie-breakers and methods for particular kinds of groups that a group adds when its main methods need help."
}
],
"addedOrder": [
"on-site-lead",
"how-we-are-covered",
"pay-and-hiring"
],
"cards": {
"decision-speeds": {
"job": "everyday",
"priority": 1,
"everyRuleHas": true
},
"lazy-consensus": {
"job": "big",
"priority": 1
},
"modified-consensus": {
"job": "big",
"priority": 2
},
"weighted-voting": {
"job": "big",
"priority": 3
},
"general-meeting": {
"job": "big",
"priority": 4
},
"hierarchical-decision-making": {
"job": "big",
"priority": 5
},
"one-person-decides": {
"job": "big",
"priority": 6
},
"two-person-sign-off": {
"job": "everyday",
"priority": 2
},
"shared-money": {
"job": "money",
"priority": 1,
"everyRuleHas": true
},
"spending-limits": {
"job": "spending",
"priority": 1
},
"emergency-decisions": {
"job": "emergency",
"priority": 1,
"everyRuleHas": true
},
"elected-board-of-directors": {
"job": "roles",
"priority": 1
},
"delegated-decision-making": {
"job": "roles",
"priority": 2
},
"changing-this-rule": {
"job": "rule-change",
"priority": 1,
"everyRuleHas": true
},
"do-ocracy": {
"job": "everyday",
"priority": 3
},
"advice-process": {
"job": "everyday",
"priority": 4
},
"consensus-decision-making": {
"job": "big",
"priority": 7
},
"consent-sociocracy": {
"job": "big",
"priority": 8
},
"rotating-roles": {
"job": "roles",
"priority": 3
},
"decisions-about-one-person": {
"job": "roles",
"priority": 4
},
"follow-through": {
"job": "roles",
"priority": 5
},
"majority-rule": {
"job": "big",
"priority": 9
},
"supermajority-rule": {
"job": "big",
"priority": 10
},
"coordinating-committee": {
"job": "roles",
"priority": 6
},
"appointed-board": {
"job": "roles",
"priority": 7
},
"consensus-seeking-with-delegates": {
"job": "big",
"priority": 11
},
"petition-and-referendum": {
"job": "rule-change",
"priority": 2
},
"annual-budget": {
"job": "money",
"priority": 2
},
"pay-and-hiring": {
"job": "money",
"priority": 3,
"traits": {
"beside": [
"employer"
],
"besideJob": "roles"
}
},
"on-site-lead": {
"job": "emergency",
"priority": 2,
"traits": {
"beside": [
"risky"
],
"besideJob": "emergency"
}
},
"conflicts-of-interest": {
"job": "roles",
"priority": 8
},
"closing-the-group": {
"job": "rule-change",
"priority": 3
},
"decide-by-formula": {
"job": "money",
"priority": 4
},
"liquid-democracy": {
"job": "other",
"priority": 1
},
"participatory-budgeting": {
"job": "money",
"priority": 5
},
"ranked-choice-voting": {
"job": "roles",
"priority": 9
},
"approval-voting": {
"job": "other",
"priority": 2
},
"random-choice": {
"job": "other",
"priority": 3
},
"negotiated-decisions": {
"job": "other",
"priority": 4
},
"advisory-committees": {
"job": "other",
"priority": 5
},
"panel-drawn-by-lot": {
"job": "roles",
"priority": 10
},
"score-voting": {
"job": "other",
"priority": 6
},
"cumulative-voting": {
"job": "other",
"priority": 7
},
"quadratic-voting": {
"job": "other",
"priority": 8
},
"continuous-voting": {
"job": "other",
"priority": 9
},
"formal-motions": {
"job": "other",
"priority": 10
},
"how-we-are-covered": {
"job": "money",
"priority": 6,
"traits": {
"beside": [
"sponsor"
],
"besideJob": "money"
}
}
}
},
"membership": {
"jobs": [
{
"id": "joining",
"label": "Joining",
"displayTier": "frame",
"rank": 1,
"why": "Every Rule must say who can become a member and how, so the group knows who counts as everyone when it decides."
},
{
"id": "levels",
"label": "Levels of membership",
"displayTier": "fitted",
"rank": 5,
"why": "What members can do at each stage and how people move between stages, which also sets who the active members are for every threshold."
},
{
"id": "onboarding",
"label": "Learning how we work",
"displayTier": "fitted",
"rank": 6,
"why": "How newcomers learn what we do and why, at a pace that lets the culture take in new people without drifting."
},
{
"id": "staying-and-leaving",
"label": "Staying and leaving",
"displayTier": "fitted",
"rank": 7,
"why": "Activity, rest, leave, stepping down, handing over and coming back, so the work never rests on whoever cannot say no."
},
{
"id": "removal",
"label": "Removal",
"displayTier": "safety",
"rank": 2,
"why": "How a membership ends against someone’s will, with the same steps whichever conflict cards lead there."
}
],
"addedOrder": [
"a-voice-for-people-without-a-vote",
"member-groups"
],
"cards": {
"open-admission": {
"job": "joining",
"priority": 1
},
"worker-owner-candidacy": {
"job": "joining",
"priority": 2
},
"join-by-contributing": {
"job": "joining",
"priority": 3
},
"membership-by-token": {
"job": "joining",
"priority": 4
},
"volunteers-and-core-members": {
"job": "levels",
"priority": 1,
"traits": {
"fits": [
"nonvoters"
]
}
},
"contributors-and-maintainers": {
"job": "levels",
"priority": 2,
"traits": {
"fits": [
"nonvoters"
]
}
},
"companions": {
"job": "onboarding",
"priority": 1
},
"joining-in-crews": {
"job": "onboarding",
"priority": 2
},
"orientation": {
"job": "onboarding",
"priority": 3
},
"rest-and-workload-limits": {
"job": "staying-and-leaving",
"priority": 1
},
"leave-and-return": {
"job": "staying-and-leaving",
"priority": 2
},
"leaving-the-group": {
"job": "staying-and-leaving",
"priority": 3
},
"handing-over-roles": {
"job": "staying-and-leaving",
"priority": 4
},
"ending-a-membership": {
"job": "removal",
"priority": 1,
"everyRuleHas": true
},
"equal-membership": {
"job": "levels",
"priority": 3
},
"starting-with-one-person": {
"job": "levels",
"priority": 4
},
"owners-and-staff": {
"job": "levels",
"priority": 5,
"traits": {
"fits": [
"nonvoters",
"employer"
]
}
},
"paid-staff": {
"job": "levels",
"priority": 6,
"traits": {
"fits": [
"nonvoters",
"employer"
]
}
},
"one-person-one-account": {
"job": "joining",
"priority": 5
},
"trial-period": {
"job": "levels",
"priority": 7
},
"members-approve-new-members": {
"job": "joining",
"priority": 6
},
"application-and-review": {
"job": "joining",
"priority": 7
},
"vouching": {
"job": "joining",
"priority": 8
},
"membership-agreement": {
"job": "joining",
"priority": 9
},
"member-share-or-dues": {
"job": "joining",
"priority": 10
},
"roster-upkeep": {
"job": "staying-and-leaving",
"priority": 5
},
"requirements-for-some-roles": {
"job": "levels",
"priority": 8
},
"member-groups": {
"job": "joining",
"priority": 11,
"traits": {
"beside": [
"network"
],
"besideJob": "levels"
}
},
"common-bond": {
"job": "joining",
"priority": 12
},
"lottery-for-limited-places": {
"job": "joining",
"priority": 13
},
"member-classes": {
"job": "levels",
"priority": 9
},
"a-voice-for-people-without-a-vote": {
"job": "levels",
"priority": 10,
"traits": {
"beside": [
"nonvoters"
],
"besideJob": "levels"
}
}
}
},
"conflictManagement": {
"jobs": [
{
"id": "ladder",
"label": "First steps",
"displayTier": "frame",
"rank": 1,
"why": "Most conflicts can be managed between the two people with a little help, so every Rule needs the order of the first steps and the sorting that sends safety and money cases straight to the last step and lets a power gap skip the one-on-one talk."
},
{
"id": "safety",
"label": "Safety first",
"displayTier": "safety",
"rank": 2,
"why": "When someone may be unsafe, the group acts at once and a fair process follows, so every Rule needs a pause that is not a finding."
},
{
"id": "formal",
"label": "Who hears serious cases",
"displayTier": "fitted",
"rank": 5,
"why": "When the first steps fail, someone named in advance has to hear the case, and the right body depends on the group’s size and kind, so a group picks one."
},
{
"id": "repair-and-removal",
"label": "Repair and removal",
"displayTier": "floor",
"rank": 7,
"why": "What can follow a finding, from repair to removal, in an order everyone knows in advance. Removal itself needs our supermajority share after the person has been heard."
},
{
"id": "other",
"label": "Outside help and legal duties",
"displayTier": "safety",
"rank": 3,
"why": "Who the group calls from outside, and the written procedures the law expects of groups that employ people or hold money. Refined from the brief’s other so groups can see what it holds."
},
{
"id": "legal",
"label": "Legal matters",
"displayTier": "floor",
"rank": 8,
"why": "Every group of two or more can be sued, subpoenaed, cited or handed legal papers, so every Rule says who receives them, who decides to go to court and how disputes that need a final answer are settled. Split from Outside help and legal duties on 21 Oct, because one card per job left Legal action out of every Rule."
},
{
"id": "police",
"label": "Police and arrests",
"displayTier": "safety",
"rank": 4,
"why": "Groups that work in public meet police, immigration officers and arrests, so their Rule says who speaks to officers, what never gets handed over and how we back a member who is held. Added on 21 Oct for groups that share food, give aid or protest in public. Groups that meet no officers, such as DAOs and open source projects, have no card here and skip it."
},
{
"id": "prevention",
"label": "Prevention",
"displayTier": "fitted",
"rank": 6,
"why": "Skills and habits that keep conflict small, early and cheap, and that fix the gaps conflicts show."
}
],
"addedOrder": [],
"cards": {
"conflict-ladder": {
"job": "ladder",
"priority": 1,
"everyRuleHas": true
},
"precautionary-suspension": {
"job": "safety",
"priority": 1,
"everyRuleHas": true
},
"graduated-responses": {
"job": "repair-and-removal",
"priority": 1,
"everyRuleHas": true
},
"conflict-working-group": {
"job": "formal",
"priority": 1
},
"mediation": {
"job": "formal",
"priority": 2
},
"harassment-and-discrimination-complaints": {
"job": "other",
"priority": 1,
"traits": {
"fits": [
"employer"
]
}
},
"code-of-conduct-team": {
"job": "formal",
"priority": 3
},
"hearing-panel": {
"job": "formal",
"priority": 4
},
"managerial-decision": {
"job": "formal",
"priority": 5
},
"outside-help": {
"job": "other",
"priority": 2
},
"conflict-workshops": {
"job": "prevention",
"priority": 2
},
"regular-debriefs": {
"job": "prevention",
"priority": 1
},
"safety-lead": {
"job": "safety",
"priority": 2
},
"legal-action": {
"job": "legal",
"priority": 1,
"everyRuleHas": true
},
"police-and-immigration-visits": {
"job": "police",
"priority": 1
},
"legal-support-for-members": {
"job": "police",
"priority": 2
},
"disputes-with-partners": {
"job": "legal",
"priority": 2
},
"working-with-children": {
"job": "safety",
"priority": 3
},
"restorative-practices": {
"job": "repair-and-removal",
"priority": 2
},
"accountability-process": {
"job": "repair-and-removal",
"priority": 3
},
"circle-processes": {
"job": "prevention",
"priority": 3
},
"whistleblower-protection": {
"job": "other",
"priority": 3
},
"non-binding-arbitration": {
"job": "legal",
"priority": 3
},
"binding-arbitration": {
"job": "legal",
"priority": 4
}
}
},
"communication": {
"jobs": [
{
"id": "chat",
"label": "Day-to-day chat",
"displayTier": "frame",
"rank": 1,
"why": "Most coordination happens in a chat app, so a Rule names one and the settings and norms that keep members safe in it."
},
{
"id": "records",
"label": "Our records",
"displayTier": "floor",
"rank": 7,
"why": "The one place for the Rule, decisions, minutes and how-tos that the shared term our records points to."
},
{
"id": "people",
"label": "Records about people",
"displayTier": "safety",
"rank": 2,
"why": "What we collect about members and the people we serve, who holds it and when it is deleted. Split from Our records, because for mutual aid groups and nonprofits a leak of these records is the most serious harm this deck can prevent, and one card per job left the card out of every Rule."
},
{
"id": "reach-everyone",
"label": "Reaching every member",
"displayTier": "floor",
"rank": 6,
"why": "Announcements and urgent news must reach every member, including those not on the app, because silence counts as consent in several of our methods."
},
{
"id": "conduct",
"label": "How we treat each other",
"displayTier": "safety",
"rank": 3,
"why": "One code for every channel, meeting and space, so tool cards keep only their own settings and norms."
},
{
"id": "access",
"label": "Accounts, keys and security",
"displayTier": "safety",
"rank": 4,
"why": "Money and keys start much of the trouble, so a Rule says who holds every account, login, domain and key and how we keep them and our devices safe."
},
{
"id": "meetings",
"label": "Meetings and discussion",
"displayTier": "fitted",
"rank": 5,
"why": "Where the group talks things through and decides together, in a room, on a call or in a written thread with a deadline. Refined to include writing, because spread-out groups and DAOs deliberate in forums and Loomio."
},
{
"id": "public",
"label": "Reaching the public",
"displayTier": "none",
"why": "New job. Front doors decay, so a group keeps one way in that outlives its founders, speaks through named members and keeps members’ own names and numbers private. Facebook groups, newsletters and the press had nowhere else to go."
}
],
"addedOrder": [],
"cards": {
"how-we-run-meetings": {
"job": "meetings",
"priority": 1
},
"announcements-channel": {
"job": "reach-everyone",
"priority": 1,
"everyRuleHas": true
},
"discourse-forum": {
"job": "meetings",
"priority": 2
},
"signal": {
"job": "chat",
"priority": 1
},
"slack": {
"job": "chat",
"priority": 2
},
"matrix-element": {
"job": "chat",
"priority": 3
},
"discord": {
"job": "chat",
"priority": 4
},
"shared-records": {
"job": "records",
"priority": 1,
"everyRuleHas": true
},
"code-of-conduct": {
"job": "conduct",
"priority": 1,
"everyRuleHas": true
},
"records-about-people": {
"job": "people",
"priority": 1,
"traits": {
"opens": [
"records"
]
}
},
"accounts-and-keys": {
"job": "access",
"priority": 1,
"everyRuleHas": true
},
"email-distribution-list": {
"job": "reach-everyone",
"priority": 2
},
"github-gitlab": {
"job": "records",
"priority": 2
},
"front-door": {
"job": "public",
"priority": 1
},
"in-person-meetings": {
"job": "meetings",
"priority": 3
},
"video-meetings": {
"job": "meetings",
"priority": 4
},
"phone-and-text-tree": {
"job": "reach-everyone",
"priority": 3
},
"deciding-in-threads": {
"job": "meetings",
"priority": 5
},
"loomio": {
"job": "meetings",
"priority": 6
},
"whatsapp": {
"job": "chat",
"priority": 5
},
"chat-channels": {
"job": "chat",
"priority": 6
},
"field-communication": {
"job": "chat",
"priority": 7
},
"password-manager": {
"job": "access",
"priority": 2
},
"security-plan": {
"job": "access",
"priority": 3
},
"speaking-for-the-group": {
"job": "public",
"priority": 2
},
"newsletter": {
"job": "public",
"priority": 3
},
"facebook-and-instagram": {
"job": "public",
"priority": 4
},
"telegram": {
"job": "chat",
"priority": 8
},
"zulip": {
"job": "chat",
"priority": 9
}
}
}
}
}