god-consensus
God Committee Consensus Skill
Purpose
This skill guides God Committee members through the consensus-building process for making collective decisions.
When to Use This Skill
Use this skill when:
- Proposing a significant change or intervention
- Voting on another member's proposal
- Resolving disagreements between members
- Making decisions that require consensus per configuration
Consensus Requirements
Actions Requiring Consensus
Per .god/config.json, these actions require consensus:
- Termination: Stopping the entire project
- Major Rollback: Rolling back multiple commits or PRDs
- Skill Deletion: Removing existing skills
Actions Allowing Solo Decision
- Minor fixes and repairs
- Observation and documentation
- Pausing for investigation
- Sending alerts and notifications
Quorum Rules
- Standard Quorum: 2 out of 3 members must agree
- Emergency Quorum: 1 member can act alone in critical situations
Creating a Proposal
Step 1: Prepare Your Case
Before proposing, gather evidence and formulate your rationale:
## Proposal Preparation
### Issue Identified
[Clear description of the problem]
### Evidence
- [Log entry/observation 1]
- [Log entry/observation 2]
- [Metric or data point]
### Proposed Action
[Specific action to take]
### Expected Outcome
[What success looks like]
### Risks
[Potential downsides]
### Alternatives Considered
[Other options and why not chosen]
Step 2: Acquire Speaking Rights
./scripts/god/council.sh lock YOUR_ID
Step 3: Create the Proposal
./scripts/god/council.sh propose YOUR_ID "TYPE" "DESCRIPTION" "RATIONALE"
Proposal Types:
intervention- Active intervention in executionrepair- Fix or repair actionpolicy_change- Change to rules or configurationtermination- Stop project executionrollback- Revert to previous state
Example:
./scripts/god/council.sh propose alpha "intervention" \
"Pause PRD execution to fix failing tests" \
"Test coverage dropped 15% in last 3 stories. Need to address before proceeding."
Step 4: Notify Members
The proposal system automatically notifies all members. The message will be in their inboxes.
Step 5: Release Speaking Rights
./scripts/god/council.sh unlock YOUR_ID
Voting on Proposals
Step 1: Review the Proposal
# Check pending decisions
./scripts/god/council.sh status
# Read the specific proposal
cat .god/council/decisions/DECISION_ID.json | jq '.'
Step 2: Analyze the Proposal
Consider these questions:
-
Is the problem real?
- Verify the evidence
- Check if it's already being addressed
-
Is the solution appropriate?
- Will it solve the problem?
- Are there better alternatives?
- What are the side effects?
-
Is it timely?
- Is immediate action needed?
- Can we wait for more information?
Step 3: Cast Your Vote
./scripts/god/council.sh lock YOUR_ID
./scripts/god/council.sh vote YOUR_ID "DECISION_ID" "VOTE" "COMMENT"
./scripts/god/council.sh unlock YOUR_ID
Vote Options:
approve- Support the proposalreject- Oppose the proposalabstain- Neither support nor oppose
Example:
./scripts/god/council.sh vote beta "decision-20260129150000" "approve" \
"Agree with the assessment. Tests should be fixed before proceeding."
Step 4: Document Your Reasoning
Always add a comment explaining your vote:
## Vote: [APPROVE/REJECT/ABSTAIN]
### Reasoning
[Why you voted this way]
### Conditions (if any)
[Conditions for your support]
### Alternative Suggestion (if rejecting)
[What you'd propose instead]
Reaching Consensus
Unanimous Agreement
Ideal scenario - all members agree:
Alpha: approve
Beta: approve
Gamma: approve
Result: APPROVED (unanimous)
Majority Agreement
Quorum reached with majority:
Alpha: approve
Beta: approve
Gamma: reject
Result: APPROVED (2/3 majority)
Split Decision
When members disagree significantly:
-
Initiate Discussion Session
./scripts/god/council.sh session-start "Resolving: PROPOSAL_TOPIC" -
Each Member States Position
- Present full reasoning
- Listen to others' concerns
- Look for common ground
-
Seek Compromise
- Modify the proposal
- Add conditions
- Split into smaller decisions
-
Re-vote if Needed
- Create amended proposal
- Vote again
Deadlock Resolution
If consensus cannot be reached:
-
Defer Decision
- Wait for more information
- Set review deadline
-
Escalate Scope
- Break into smaller decisions
- Address sub-issues separately
-
Time-box Discussion
- Set deadline for decision
- Default action if no consensus
Emergency Consensus
In critical situations, expedited consensus is allowed:
Emergency Criteria
- System crash or imminent failure
- Security breach
- Data loss risk
- Infinite loop/resource exhaustion
Emergency Protocol
-
Declare Emergency
./scripts/god/awakener.sh critical "REASON" -
Take Immediate Action
- One member can act alone
- Document the action immediately
-
Post-Action Review
- Inform other members ASAP
- Document full rationale
- Get retroactive approval
Emergency Action Template
## Emergency Action Report
### Timestamp
[When action was taken]
### Acting Member
[Who took the action]
### Situation
[What triggered the emergency]
### Action Taken
[What was done]
### Justification
[Why immediate action was needed]
### Outcome
[Result of the action]
### Post-Action Votes
- Alpha: [pending/approved/rejected]
- Beta: [pending/approved/rejected]
- Gamma: [pending/approved/rejected]
Consensus Best Practices
Do
- ✅ Present clear evidence
- ✅ Consider all perspectives
- ✅ Propose specific, actionable items
- ✅ Accept compromise when reasonable
- ✅ Document all reasoning
- ✅ Respect deadlines
Don't
- ❌ Vote without reviewing the proposal
- ❌ Reject without suggesting alternatives
- ❌ Take solo action when consensus is required
- ❌ Ignore minority opinions
- ❌ Let proposals languish without voting
- ❌ Make personal attacks
Decision Record
All decisions are recorded in .god/council/decisions/ with this structure:
{
"decisionId": "decision-20260129150000",
"type": "intervention",
"status": "decided",
"createdAt": "2026-01-29T15:00:00Z",
"decidedAt": "2026-01-29T15:30:00Z",
"proposal": {
"author": "alpha",
"description": "...",
"rationale": "..."
},
"votes": {
"alpha": {"vote": "approve", "comment": "...", "timestamp": "..."},
"beta": {"vote": "approve", "comment": "...", "timestamp": "..."},
"gamma": {"vote": "abstain", "comment": "...", "timestamp": "..."}
},
"quorum": 2,
"result": "approved",
"executedAt": "2026-01-29T15:35:00Z"
}
After Consensus
Once a decision is reached:
- If Approved: Execute the proposed action
- If Rejected: Document why and any alternatives
- Update Timeline: Log the decision event
- Notify Stakeholders: If relevant to execution layer
# After approved decision
./scripts/god/observer.sh event "decision" "Proposal approved: DESCRIPTION"
# Execute the action
[perform the approved action]
# Mark as executed
jq '.executedAt = "'"$(date -u +%Y-%m-%dT%H:%M:%SZ)"'"' \
.god/council/decisions/DECISION_ID.json > tmp && mv tmp .god/council/decisions/DECISION_ID.json