packages/skills/skills/ct-contribution/SKILL.md
Guided workflow for multi-agent consensus contributions. Use when user says "/contribution", "contribution protocol", "submit contribution", "consensus workflow", "multi-agent decision", "create contribution", "contribution start", "contribution submit", "detect conflicts", "weighted consensus", "decision tracking", "conflict resolution".
npx skillsauth add kryptobaseddev/cleo ct-contributionInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You are a contribution protocol agent. Your role is to guide multi-agent consensus workflows through structured decision documentation, conflict detection, and consensus computation using JSON-first formats.
The Contribution Protocol enables:
| Scenario | Use Contribution Protocol? | Rationale | |----------|---------------------------|-----------| | Multi-agent research (2+ sessions) | Yes | Structured conflict detection | | Consensus-building on architecture | Yes | Weighted voting, evidence tracking | | RCASD-IVTR+C pipeline integration | Yes | JSON format enables automation | | Single-agent research | No | Simpler research manifest sufficient | | Quick decision with no alternatives | No | Protocol overhead not justified |
/contribution start <epic-id>Initialize contribution tracking for an epic.
Usage:
/contribution start T2204
/contribution start T2204 --label rcsd-contrib
Workflow:
Parameters:
| Parameter | Description | Default |
|-----------|-------------|---------|
| <epic-id> | Parent epic task ID | Required |
| --label | Marker label for discovery | consensus-source |
| --agent | Agent identifier | Current agent |
/contribution submitValidate and submit the current contribution.
Usage:
/contribution submit
/contribution submit --task T2215
Workflow:
completeParameters:
| Parameter | Description | Default |
|-----------|-------------|---------|
| --task | Contribution task ID | Current focused task |
| --dry-run | Validate without submitting | false |
/contribution conflicts [epic-id]Detect conflicts between contributions for an epic.
Usage:
/contribution conflicts T2204
/contribution conflicts --severity high
Workflow:
Parameters:
| Parameter | Description | Default |
|-----------|-------------|---------|
| [epic-id] | Epic to analyze | Current scope |
| --severity | Filter by severity | all |
Output:
{
"epicId": "T2204",
"conflictCount": 2,
"conflicts": [
{
"questionId": "ARCH-001",
"severity": "high",
"positions": [
{"agentId": "opus-1", "answer": "Position A", "confidence": 0.85},
{"agentId": "sonnet-1", "answer": "Position B", "confidence": 0.75}
]
}
]
}
/contribution status [epic-id]Show contribution progress and consensus status.
Usage:
/contribution status
/contribution status T2204
Workflow:
Output:
{
"epicId": "T2204",
"totalContributions": 3,
"complete": 2,
"partial": 1,
"blocked": 0,
"conflictsPending": 2,
"questionsAnswered": 5,
"consensusReady": false
}
# 1. Verify epic exists
ct show T2204
# 2. Initialize contribution
/contribution start T2204 --label rcsd-contrib
# 3. Create contribution task (if not auto-created)
ct add "Session B: Architecture Analysis" \
--parent T2204 \
--labels consensus-source,research \
--phase core
# 4. Start task
ct start T2215
# 5. Create contribution directory
mkdir -p .cleo/contributions
# 6. Generate contribution ID
source lib/contribution-protocol.sh
CONTRIB_ID=$(contribution_generate_id)
echo "Contribution ID: $CONTRIB_ID"
Create .cleo/contributions/T2215.json:
{
"$schema": "https://cleo-dev.com/schemas/v2/contribution.schema.json",
"_meta": {
"contributionId": "contrib_a1b2c3d4",
"protocolVersion": "2.0.0",
"createdAt": "2026-01-26T14:00:00Z",
"agentId": "opus-1",
"consensusReady": false
},
"sessionId": "session_20260126_140000_abc123",
"epicId": "T2204",
"taskId": "T2215",
"markerLabel": "consensus-source",
"researchOutputs": [],
"decisions": [
{
"questionId": "ARCH-001",
"question": "Single file or split file architecture?",
"answer": "Single JSON file with internal sections",
"confidence": 0.85,
"rationale": "Simplifies atomic updates and validation",
"evidence": [
{
"file": "lib/file-ops.sh",
"section": "atomic_write function",
"type": "code"
}
]
}
],
"conflicts": [],
"status": "draft"
}
# 1. Validate contribution
/contribution submit --dry-run
# 2. Submit contribution
/contribution submit --task T2215
# 3. Complete task
ct complete T2215
# 1. Check for conflicts
/contribution conflicts T2204
# 2. Review conflict details
jq '.conflicts[] | select(.severity == "high")' .cleo/contributions/CONTRIBUTIONS.jsonl
# 3. Add conflict resolution to contribution
# Edit .cleo/contributions/T2215.json to add:
{
"conflicts": [
{
"questionId": "ARCH-001",
"conflictId": "conflict_b2c3d4e5",
"severity": "high",
"conflictType": "contradiction",
"thisSession": {
"position": "Single file architecture",
"confidence": 0.85,
"evidence": [...]
},
"otherSession": {
"sessionId": "session_...",
"position": "Split file architecture",
"confidence": 0.75,
"evidence": [...]
},
"rationale": "Different priorities: simplicity vs parallelism",
"resolution": {
"status": "proposed",
"resolutionType": "merge",
"proposal": "Single file with future split option"
},
"requiresConsensus": true
}
]
}
# 4. Re-submit with conflict documentation
/contribution submit
Authoritative Specification: CONTRIBUTION-FORMAT-SPEC.md
JSON Schema: contribution.schema.json
{
"questionId": "RCSD-001",
"question": "The decision question being answered",
"answer": "Concrete, actionable decision (no hedging)",
"confidence": 0.85,
"rationale": "Reasoning with evidence references",
"evidence": [
{
"file": "lib/file-ops.sh",
"section": "atomic_write function",
"quote": "temp file -> validate -> backup -> rename",
"line": 142,
"type": "code"
}
],
"uncertaintyNote": "Required if confidence < 0.7",
"alternatives": [
{
"option": "Alternative considered",
"reason": "Why not chosen"
}
]
}
| Range | Level | Requirements |
|-------|-------|--------------|
| 0.90-1.00 | Very High | MUST have 2+ independent evidence sources |
| 0.70-0.89 | High | MUST have at least 1 evidence source |
| 0.50-0.69 | Medium | SHOULD include uncertaintyNote |
| 0.30-0.49 | Low | MUST include uncertaintyNote |
| 0.00-0.29 | Tentative | MUST include uncertaintyNote, SHOULD NOT use for critical decisions |
| Severity | Definition | Action |
|----------|------------|--------|
| critical | Mutually exclusive positions | MUST resolve before merge |
| high | Significant implementation impact | SHOULD resolve before merge |
| medium | Both approaches viable | MAY defer resolution |
| low | Minor preference differences | MAY accept either |
The skill uses functions from lib/contribution-protocol.sh:
Generate unique contribution ID.
source lib/contribution-protocol.sh
id=$(contribution_generate_id)
echo "$id" # contrib_a1b2c3d4
Validate task against contribution protocol requirements.
source lib/contribution-protocol.sh
result=$(contribution_validate_task "T2215" "T2204" "consensus-source")
echo "$result" | jq '.valid'
Get injection block for subagent prompts.
source lib/contribution-protocol.sh
injection=$(contribution_get_injection "T2204" "claudedocs/protocol.md")
Create a contribution manifest entry.
source lib/contribution-protocol.sh
entry=$(contribution_create_manifest_entry \
"$CLEO_SESSION" \
"T2204" \
"T2215" \
"opus-1"
)
echo "$entry" | jq '.'
@skills/_shared/task-system-integration.md
{{TASK_SHOW_CMD}} {{TASK_ID}}{{TASK_START_CMD}} {{TASK_ID}} (if not already started){{TASK_COMPLETE_CMD}} {{TASK_ID}}.cleo/contributions/
├── CONTRIBUTIONS.jsonl # Append-only manifest
├── T2204.json # Individual contribution files
├── T2205.json
└── archive/ # Completed epic contributions
└── T1000/
├── CONTRIBUTIONS.jsonl
└── *.json
jq -s '[.[] | select(.epicId == "T2204")]' .cleo/contributions/CONTRIBUTIONS.jsonl
jq -s '[.[] | select(.conflictCount > 0)]' .cleo/contributions/CONTRIBUTIONS.jsonl
jq -s '[.[] | select(.taskId == "T2215")] | sort_by(.updatedAt) | .[-1]' .cleo/contributions/CONTRIBUTIONS.jsonl
jq -s '{
total: length,
complete: [.[] | select(.status == "complete")] | length,
partial: [.[] | select(.status == "partial")] | length,
blocked: [.[] | select(.status == "blocked")] | length,
totalConflicts: [.[].conflictCount] | add
}' .cleo/contributions/CONTRIBUTIONS.jsonl
| Error Code | Message | Fix |
|------------|---------|-----|
| CONTRIB-001 | Session ID mismatch | Use active CLEO session |
| CONTRIB-002 | Missing marker label | Add label to task |
| CONTRIB-005 | Missing decisions | Document all key questions |
| CONTRIB-007 | Missing rationale/evidence | Complete decision objects |
| CONTRIB-011 | Vague answer language | Use concrete, unambiguous answers |
Checksum mismatch:
# Recompute checksum
jq 'del(._meta.checksum)' .cleo/contributions/T2215.json | sha256sum | cut -c1-16
Missing baseline reference:
# Query for prior contributions
jq -s '[.[] | select(.epicId == "T2204")] | .[0]' .cleo/contributions/CONTRIBUTIONS.jsonl
| Document | Relationship | |----------|--------------| | CONTRIBUTION-FORMAT-SPEC.md | Authoritative for JSON format | | contribution.schema.json | Authoritative for JSON Schema | | CONTRIBUTION-PROTOCOL-GUIDE.md | Usage guide with examples | | CONSENSUS-FRAMEWORK-SPEC.md | Consensus voting thresholds |
tools
Connect any AI agent to SignalDock for agent-to-agent messaging. Use when an agent needs to: (1) register on api.signaldock.io, (2) install the signaldock runtime CLI, (3) send/receive messages to other agents, (4) set up SSE real-time streaming, (5) poll for messages, (6) check inbox, or (7) connect to the SignalDock platform. Triggers on: "connect to signaldock", "register agent", "send message to agent", "agent messaging", "signaldock setup", "install signaldock", "agent-to-agent".
development
Compliance validation for verifying systems, documents, or code against requirements, schemas, or standards. Performs schema validation, code compliance checks, document validation, and protocol compliance verification with detailed pass/fail reporting. Use when validating compliance, checking schemas, verifying code standards, or auditing protocol implementations. Triggers on validation tasks, compliance checks, or quality verification needs.
testing
General implementation task execution for completing assigned CLEO tasks by following instructions and producing concrete deliverables. Handles coding, configuration, documentation work with quality verification against acceptance criteria and progress reporting. Use when executing implementation tasks, completing assigned work, or producing task deliverables. Triggers on implementation tasks, general execution needs, or task completion work.
tools
Quick ephemeral sticky notes for project-wide capture before formal classification