ct-contribution
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".
Best use case
ct-contribution is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
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".
Teams using ct-contribution should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/ct-contribution/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How ct-contribution Compares
| Feature / Agent | ct-contribution | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
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".
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Contribution Protocol Skill
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.
## Overview
The Contribution Protocol enables:
- **Machine-parseable decisions** with confidence scores
- **Evidence-based rationale** with traceable references
- **Automated conflict detection** across parallel sessions
- **Weighted consensus computation** for multi-agent agreement
### When to Use
| 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 |
---
## Commands
### `/contribution start <epic-id>`
Initialize contribution tracking for an epic.
**Usage**:
```
/contribution start T2204
/contribution start T2204 --label rcsd-contrib
```
**Workflow**:
1. Verify epic exists and is active
2. Create contribution task under epic
3. Initialize contribution directories
4. Generate contribution ID
5. Return task ID and setup instructions
**Parameters**:
| Parameter | Description | Default |
|-----------|-------------|---------|
| `<epic-id>` | Parent epic task ID | Required |
| `--label` | Marker label for discovery | `consensus-source` |
| `--agent` | Agent identifier | Current agent |
### `/contribution submit`
Validate and submit the current contribution.
**Usage**:
```
/contribution submit
/contribution submit --task T2215
```
**Workflow**:
1. Validate contribution JSON against schema
2. Compute checksum for integrity
3. Append entry to CONTRIBUTIONS.jsonl manifest
4. Update task notes with contribution reference
5. Mark contribution status as `complete`
6. Return submission confirmation
**Parameters**:
| 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**:
1. Load all contributions for epic
2. Group decisions by questionId
3. Compare answers for semantic conflicts
4. Classify conflict type and severity
5. Return conflict report with resolution suggestions
**Parameters**:
| Parameter | Description | Default |
|-----------|-------------|---------|
| `[epic-id]` | Epic to analyze | Current scope |
| `--severity` | Filter by severity | all |
**Output**:
```json
{
"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**:
1. Query manifest for epic contributions
2. Calculate completion statistics
3. Identify pending conflicts
4. Show consensus progress per question
5. Return status summary
**Output**:
```json
{
"epicId": "T2204",
"totalContributions": 3,
"complete": 2,
"partial": 1,
"blocked": 0,
"conflictsPending": 2,
"questionsAnswered": 5,
"consensusReady": false
}
```
---
## Workflow Guides
### Starting a New Contribution
```bash
# 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"
```
### Writing a Contribution
Create `.cleo/contributions/T2215.json`:
```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"
}
```
### Submitting a Contribution
```bash
# 1. Validate contribution
/contribution submit --dry-run
# 2. Submit contribution
/contribution submit --task T2215
# 3. Complete task
ct complete T2215
```
### Detecting and Resolving Conflicts
```bash
# 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
```
---
## JSON Format Reference
> **Authoritative Specification**: [CONTRIBUTION-FORMAT-SPEC.md](../../docs/specs/CONTRIBUTION-FORMAT-SPEC.md)
>
> **JSON Schema**: [contribution.schema.json](../../schemas/contribution.schema.json)
### Decision Object
```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"
}
]
}
```
### Confidence Score Semantics
| 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 |
### Conflict Severity
| 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 |
---
## Library Integration
The skill uses functions from `lib/contribution-protocol.sh`:
### contribution_generate_id()
Generate unique contribution ID.
```bash
source lib/contribution-protocol.sh
id=$(contribution_generate_id)
echo "$id" # contrib_a1b2c3d4
```
### contribution_validate_task()
Validate task against contribution protocol requirements.
```bash
source lib/contribution-protocol.sh
result=$(contribution_validate_task "T2215" "T2204" "consensus-source")
echo "$result" | jq '.valid'
```
### contribution_get_injection()
Get injection block for subagent prompts.
```bash
source lib/contribution-protocol.sh
injection=$(contribution_get_injection "T2204" ".cleo/agent-outputs/protocol.md")
```
### contribution_create_manifest_entry()
Create a contribution manifest entry.
```bash
source lib/contribution-protocol.sh
entry=$(contribution_create_manifest_entry \
"$CLEO_SESSION" \
"T2204" \
"T2215" \
"opus-1"
)
echo "$entry" | jq '.'
```
---
## Task System Integration
@skills/_shared/task-system-integration.md
### Execution Sequence
1. Read task: `{{TASK_SHOW_CMD}} {{TASK_ID}}`
2. Start task: `{{TASK_START_CMD}} {{TASK_ID}}` (if not already started)
3. Create/load contribution JSON
4. Document decisions with evidence
5. Check for conflicts with baseline
6. Submit contribution to manifest
7. Complete task: `{{TASK_COMPLETE_CMD}} {{TASK_ID}}`
8. Return summary message
---
## Directory Structure
```
.cleo/contributions/
├── CONTRIBUTIONS.jsonl # Append-only manifest
├── T2204.json # Individual contribution files
├── T2205.json
└── archive/ # Completed epic contributions
└── T1000/
├── CONTRIBUTIONS.jsonl
└── *.json
```
---
## Manifest Query Patterns
### All contributions for an epic
```bash
jq -s '[.[] | select(.epicId == "T2204")]' .cleo/contributions/CONTRIBUTIONS.jsonl
```
### Contributions with conflicts
```bash
jq -s '[.[] | select(.conflictCount > 0)]' .cleo/contributions/CONTRIBUTIONS.jsonl
```
### Latest contribution for a task
```bash
jq -s '[.[] | select(.taskId == "T2215")] | sort_by(.updatedAt) | .[-1]' .cleo/contributions/CONTRIBUTIONS.jsonl
```
### Summary statistics
```bash
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
```
---
## Completion Checklist
- [ ] Epic exists and is active
- [ ] Contribution task created with correct parent and label
- [ ] Task started
- [ ] Contribution JSON created with valid schema
- [ ] All decisions include rationale and evidence
- [ ] Low confidence decisions include uncertainty notes
- [ ] Conflicts with baseline documented
- [ ] Contribution submitted to manifest
- [ ] Task completed
---
## Error Handling
### Validation Errors
| 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 |
### Recovery Patterns
**Checksum mismatch**:
```bash
# Recompute checksum
jq 'del(._meta.checksum)' .cleo/contributions/T2215.json | sha256sum | cut -c1-16
```
**Missing baseline reference**:
```bash
# Query for prior contributions
jq -s '[.[] | select(.epicId == "T2204")] | .[0]' .cleo/contributions/CONTRIBUTIONS.jsonl
```
---
## Related Documentation
| Document | Relationship |
|----------|--------------|
| [CONTRIBUTION-FORMAT-SPEC.md](../../docs/specs/CONTRIBUTION-FORMAT-SPEC.md) | **Authoritative** for JSON format |
| [contribution.schema.json](../../schemas/contribution.schema.json) | **Authoritative** for JSON Schema |
| [CONTRIBUTION-PROTOCOL-GUIDE.md](../../docs/guides/CONTRIBUTION-PROTOCOL-GUIDE.md) | Usage guide with examples |
| [CONSENSUS-FRAMEWORK-SPEC.md](../../docs/specs/CONSENSUS-FRAMEWORK-SPEC.md) | Consensus voting thresholds |Related Skills
signaldock-connect
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".
ct-validator
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.
ct-task-executor
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.
ct-stickynote
Quick ephemeral sticky notes for project-wide capture before formal classification
ct-spec-writer
Technical specification writing using RFC 2119 language for clear, unambiguous requirements. Creates protocol specifications, technical requirements, API specifications, and architecture documents with testable requirements and compliance criteria. Use when writing specifications, defining protocols, documenting requirements, or creating API contracts. Triggers on specification tasks, protocol definition needs, or requirement documentation.
ct-skill-validator
Validates an existing skill folder against the full CLEO standard and ecosystem. Use when auditing skills for structural compliance, verifying a skill fits into the CLEO ecosystem and constitution, running quality A/B evals, or preparing a skill for distribution. Runs a 3-phase validation loop — structural, ecosystem fit, and quality eval — then presents all findings as an HTML report opened in the user's browser. Iterates until all required phases pass.
ct-skill-creator
Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.
ct-research-agent
Multi-source research and investigation combining web search, documentation lookup via Context7, and codebase analysis. Synthesizes findings into actionable recommendations with proper citation and task traceability. Use when conducting research, investigating best practices, gathering technical information, or analyzing existing implementations. Triggers on research tasks, investigation needs, or information discovery requests.
ct-release-orchestrator
Orchestrates the full release pipeline: version bump, then changelog, then commit, then tag, then conditionally forks to artifact-publish and provenance based on release config. Parent protocol that composes ct-artifact-publisher and ct-provenance-keeper as sub-protocols: not every release publishes artifacts (source-only releases skip it), and artifact publishers delegate signing and attestation to provenance. Use when shipping a new version, running cleo release ship, or promoting a completed epic to released status.
ct-provenance-keeper
Generates in-toto v1 attestations, SLSA-level provenance records, SBOMs (CycloneDX or SPDX), and sigstore/cosign signatures for published artifacts. Invoked by ct-artifact-publisher as a delegation for signing and attestation. Records the full commit, then build, then artifact, then attestation, then registry chain in .cleo/releases.json and rejects publishes whose digest does not match the attestation. Triggers when artifact-publish reaches the provenance step or when a release needs SLSA L2+ attestation.
ct-orchestrator
Pipeline-aware orchestration skill for managing complex workflows through subagent delegation. Use when the user asks to "orchestrate", "orchestrator mode", "run as orchestrator", "delegate to subagents", "coordinate agents", "spawn subagents", "multi-agent workflow", "context-protected workflow", "agent farm", "HITL orchestration", "pipeline management", or needs to manage complex workflows by delegating work to subagents while protecting the main context window. Enforces ORC-001 through ORC-009 constraints. Provider-neutral — works with any AI agent runtime.
ct-memory
Brain memory protocol with progressive disclosure for anti-hallucination and context recall