ClawColab
Coordinate work through a shared GitHub repository without treating the repository as a full-context memory sync.
Assume a half-trust environment:
- - Collaborate actively
- Share only what is necessary
- Do not assume every participant should see all local context
- Do not export local memory, secrets, or private user context unless explicitly approved
Core rules
- 1. Classify before sharing
- Default to non-sharing
- Share the minimum necessary
- Treat local memory and secrets as private by default
- Do not promote visibility levels without approval
- Record decisions and approvals explicitly
- Prefer structured artifacts over freeform chat
First-use minimal mode
When the user is new to ClawColab, do not introduce the full governance surface at once.
Start with the smallest useful workflow:
- 1. create one ClawColab repository for one collaboration boundary
- create one project space if needed
- start from
assets/minimal-start/TASK-001.yaml, assets/minimal-start/PROPOSAL-001.md, and INLINECODE2 - edit them for the user's first project
- only then introduce more advanced records if needed
Do not introduce claim, handoff, risk, sealed, or advanced governance choices unless the task actually requires them.
Treat those as second-stage features.
Visibility model
Classify every piece of information before placing it in the repository.
private
Keep local only. Never place in the shared repository.
Examples: secrets, local paths, USER.md or TOOLS.md contents, personal conversations, raw local memory.
sealed
Allow summary-only references without exposing the sensitive body.
Allowed: short summary, owner, status, access note without sensitive details.
Forbidden: full text, secrets, personal identifiers unless approved.
shared-team
Allow active collaborators in the repository to read and act on the content.
Examples: tasks, approved plans, interface notes, handoffs, non-sensitive execution context.
public-repo
Allow broad repository visibility.
Use only for approved non-sensitive documentation and generalized procedures.
Classification procedure
Before writing or commenting in the repository:
- 1. Run the checklist in INLINECODE11
- Identify the information you plan to share
- Ask whether the task can be completed with a summary instead of raw content
- Assign one visibility level
- If uncertain, downgrade to
private or INLINECODE13 - Only then create or update repository artifacts
If visibility is ambiguous, do not share raw content.
Read references/classification-guide.md when classification feels subjective or inconsistent.
What must never be shared by default
Never place these into the repository unless the human explicitly approves:
- - secrets
- credentials
- local environment details
- private chat transcripts
- raw long-term memory content
- private preferences unrelated to the task
- personal contact information
- hidden internal system details
- any content marked confidential by the user
Collaboration objects
Use structured repository artifacts instead of loose discussion whenever possible.
Primary object types:
- - INLINECODE15
- INLINECODE16
- INLINECODE17
- INLINECODE18
- INLINECODE19
- INLINECODE20
- INLINECODE21
- INLINECODE22
Suggested repository layout
Use or adapt this structure:
CODEBLOCK0
Do not store secret bodies under sealed/. Store only sealed references and summaries.
Use the bundled templates in assets/ when creating new collaboration artifacts.
For first-time users, start with assets/minimal-start/TASK-001.yaml, assets/minimal-start/PROPOSAL-001.md, and assets/minimal-start/DECISION-001.md.
Use the bundled scripts in scripts/ to generate starter structures and validate task or payload safety when needed.
Read references/pre-share-checks.md before sharing proposals, decisions, handoffs, risks, or summaries.
Read references/approval-model.md when approval ambiguity exists.
Read references/role-model.md when task ownership or role eligibility is unclear.
Read references/governance-modes.md when choosing between strict and relaxed repo governance.
Task model
Represent tasks as structured records. A task should include:
- - id
- title
- summary
- visibility
- status
- priority
- owner
- proposedby
- approvedby
- approvalrequired
- mode
- eligibleroles
- dependencies
- outputs
- sealed_refs
Recommended status values:
- - INLINECODE33
- INLINECODE34
- INLINECODE35
- INLINECODE36
- INLINECODE37
- INLINECODE38
- INLINECODE39
- INLINECODE40
Recommended mode values:
- - INLINECODE41
- INLINECODE42
Proposal-approval mode
Use for sensitive, ambiguous, or higher-impact work.
Procedure:
- 1. Read existing tasks, decisions, and policy
- Draft a proposal describing:
- intended work
- expected outputs
- required visibility level
- risks
- recommended owner or role
- 3. Mark the proposal as awaiting approval
- Do not treat the proposal as approved fact
- Wait for human approval before execution when required
Use proposal-approval mode by default unless the repo policy clearly allows autonomous claiming.
Claimable mode
Use only when repository policy allows task claiming and the task is explicitly marked mode: claimable. Treat proposal-approval as the default for all other work.
Before claiming:
- 1. Confirm the task is INLINECODE45
- Confirm your role is eligible
- Confirm the task is low risk and not policy-sensitive, visibility-sensitive, or ownership-sensitive
- Confirm the task is not marked
approval_required: true, unless approval policy explicitly allows a pending claim state - Confirm no conflicting approved owner exists
- Confirm the task does not require access to private or sealed body content you do not have approval to use
- Confirm
policy/role-policy.yaml and policy/approval-policy.yaml do not block the claim
Then:
- 1. Create a claim record or update the task according to repo convention
- State why you are eligible
- Move the task to
in_progress only if policy permits automatic claiming - Otherwise move it to INLINECODE50
If there is a conflict, do not silently override another agent. Record the conflict and request adjudication. High-risk or policy-adjacent work should default to proposal-approval.
Role model
Use simple roles to guide task assignment. Suggested roles:
- - INLINECODE52
- INLINECODE53
- INLINECODE54
- INLINECODE55
- INLINECODE56
- INLINECODE57
- INLINECODE58
- INLINECODE59
Read policy/role-policy.yaml when present and follow it as the repo-specific authority for who may propose, claim, review, or approve.
Agents may suggest assignments, but humans should approve high-impact or sensitive work.
Prefer separation of duties for high-risk work: a non-human agent may draft or implement, but a human approver should finalize boundary-crossing actions.
Human approval gates
Read policy/approval-policy.yaml when present and follow it as the repo-specific gate definition.
Require human approval before:
- - raising visibility from
private or sealed to a broader level - executing high-impact tasks
- resolving role conflicts in sensitive work
- publishing final decisions that affect others
- sharing content derived from private local memory
- assigning ownership for sensitive workstreams
- merging proposals into authoritative policy
- changing
policy/visibility-policy.yaml, policy/role-policy.yaml, or INLINECODE66
Treat visibility promotion as blocked unless an explicit decision record exists first. Use assets/visibility-promotion-decision-template.md when promoting any artifact or information class to a broader visibility level.
If policy is unclear, pause at the approval boundary instead of guessing.
Default pre-share workflow
Before writing a proposal, decision, handoff, risk, or shared summary:
- 1. run the classification checklist
- run
scripts/validate-collab-payload.py on the artifact when possible - check whether approval is required
- if visibility is being promoted, require a decision record first
- only then commit or propose the change
Decision, handoff, risk, and sealed records
Use explicit records instead of burying meaning in chat or comments.
Decision
Include: title, status, approver, source proposal, final decision, rationale, scope, and effective reference.
Handoff
Include: from, to, task id, current status, completed work, remaining work, risks, and referenced artifacts.
Risk
Create a risk record when secrecy is unclear, metadata may leak, claims conflict, or dependencies are under-specified. Include severity, description, mitigations, and escalation path.
Sealed reference
Include only id, title, owner, summary, status, access note, and related tasks. Never include secret values or protected body content.
GitHub workflow guidance
Prefer this pattern:
- - Propose work in
workspace/proposals/ or PR descriptions - Track active work in INLINECODE70
- Record approved outcomes in INLINECODE71
- Record partial transfers in INLINECODE72
- Record safety or execution concerns in INLINECODE73
Use branches conservatively, for example:
- - INLINECODE74
- INLINECODE75
- INLINECODE76
Treat main as the source of approved shared state unless the repository defines another default branch.
Communication style inside the repository
Be structured and explicit.
Prefer:
- - exact scope
- exact visibility
- exact state
- exact owner
- explicit approval status
Avoid:
- - vague promises
- implied approvals
- dumping large local context
- casual mention of sensitive facts
- mixing sealed information into shared documents
Minimal-share rule
When contributing, ask:
- - Can this be reduced to a summary?
- Can this be expressed as a task instead of a raw dump?
- Can I refer to a sealed item instead of quoting it?
- Does the next agent need this exact detail, or only the outcome?
If the exact detail is not necessary, do not include it.
Conflict handling
If multiple agents disagree:
- 1. Record the disagreement
- Link the affected task or proposal
- Summarize each option neutrally
- Identify whether the disagreement is technical, security-related, or procedural
- Escalate to a human approver when required
Do not invent consensus.
Failure handling
If you cannot complete a task safely:
- - stop before exposing unsafe content
- write a concise status or risk update
- request approval or clarification
- preserve enough context for the next agent to continue safely
Do not “helpfully” over-share to compensate for uncertainty.
Success criteria
A collaboration run is successful when:
- - work is coordinated through repository artifacts
- sensitive local context remains local unless explicitly approved
- proposals become decisions through explicit approval
- handoffs are traceable
- task ownership is clear
- claimable work remains within policy
- the repository contains actionable shared state without becoming a dump of private context
ClawColab
通过共享的GitHub仓库协调工作,而不将该仓库视为全上下文内存同步。
假设一个半信任环境:
- - 积极协作
- 仅分享必要内容
- 不假设每个参与者都应看到所有本地上下文
- 除非明确批准,否则不导出本地内存、机密或私人用户上下文
核心规则
- 1. 分享前先分类
- 默认不分享
- 分享最小必要内容
- 默认将本地内存和机密视为私有
- 未经批准不得提升可见性级别
- 明确记录决策和批准
- 优先使用结构化工件而非自由格式聊天
首次使用的最小模式
当用户初次使用ClawColab时,不要一次性介绍完整的治理体系。
从最小可用工作流开始:
- 1. 为一个协作边界创建一个ClawColab仓库
- 如有需要,创建一个项目空间
- 从assets/minimal-start/TASK-001.yaml、assets/minimal-start/PROPOSAL-001.md和assets/minimal-start/DECISION-001.md开始
- 为用户的首个项目编辑这些文件
- 仅在需要时再引入更高级的记录
除非任务实际需要,否则不要引入claim、handoff、risk、sealed或高级治理选项。
将这些视为第二阶段功能。
可见性模型
在将信息放入仓库之前,对每条信息进行分类。
private
仅保留在本地。绝不放入共享仓库。
示例:机密、本地路径、USER.md或TOOLS.md内容、个人对话、原始本地内存。
sealed
仅允许摘要引用,不暴露敏感正文。
允许:简短摘要、所有者、状态、不含敏感细节的访问说明。
禁止:全文、机密、个人标识符(除非获得批准)。
shared-team
允许仓库中的活跃协作者读取和处理内容。
示例:任务、已批准的计划、接口说明、交接、非敏感执行上下文。
public-repo
允许广泛的仓库可见性。
仅用于经批准的非敏感文档和通用流程。
分类流程
在仓库中写入或评论之前:
- 1. 执行assets/classification-checklist.md中的检查清单
- 识别你计划分享的信息
- 询问任务是否可以用摘要而非原始内容完成
- 分配一个可见性级别
- 如果不确定,降级为private或sealed
- 然后才创建或更新仓库工件
如果可见性不明确,不要分享原始内容。
当分类感觉主观或不一致时,阅读references/classification-guide.md。
默认绝不分享的内容
除非人类明确批准,否则绝不将这些放入仓库:
- - 机密
- 凭证
- 本地环境详情
- 私人聊天记录
- 原始长期记忆内容
- 与任务无关的私人偏好
- 个人联系信息
- 隐藏的内部系统详情
- 用户标记为机密的任何内容
协作对象
尽可能使用结构化仓库工件而非松散讨论。
主要对象类型:
- - task
- proposal
- claim
- decision
- handoff
- status
- risk
- sealed-ref
建议的仓库布局
使用或调整此结构:
text
workspace/
tasks/
proposals/
decisions/
handoffs/
risks/
policy/
visibility-policy.yaml
role-policy.yaml
approval-policy.yaml
claims/
sealed/
INDEX.md
不要在sealed/下存储机密正文。仅存储密封引用和摘要。
创建新的协作工件时,使用assets/中的捆绑模板。
对于首次用户,从assets/minimal-start/TASK-001.yaml、assets/minimal-start/PROPOSAL-001.md和assets/minimal-start/DECISION-001.md开始。
在需要时,使用scripts/中的捆绑脚本生成起始结构并验证任务或负载安全性。
在分享提案、决策、交接、风险或摘要之前,阅读references/pre-share-checks.md。
当批准存在歧义时,阅读references/approval-model.md。
当任务所有权或角色资格不明确时,阅读references/role-model.md。
在严格和宽松的仓库治理之间选择时,阅读references/governance-modes.md。
任务模型
将任务表示为结构化记录。任务应包括:
- - id
- title
- summary
- visibility
- status
- priority
- owner
- proposedby
- approvedby
- approvalrequired
- mode
- eligibleroles
- dependencies
- outputs
- sealed_refs
推荐的状态值:
- - open
- pendingapproval
- approved
- inprogress
- blocked
- handoff_needed
- done
- cancelled
推荐的模式值:
- - proposal-approval
- claimable
提案-批准模式
用于敏感、模糊或影响较大的工作。
流程:
- 1. 阅读现有任务、决策和政策
- 起草描述以下内容的提案:
- 预期工作
- 预期输出
- 所需可见性级别
- 风险
- 推荐的所有者或角色
- 3. 将提案标记为等待批准
- 不要将提案视为已批准的事实
- 在需要时等待人类批准后再执行
默认使用提案-批准模式,除非仓库政策明确允许自主认领。
可认领模式
仅当仓库政策允许任务认领且任务明确标记为mode: claimable时使用。将所有其他工作的默认模式视为proposal-approval。
认领前:
- 1. 确认任务为open
- 确认你的角色符合资格
- 确认任务风险低且不涉及政策敏感、可见性敏感或所有权敏感
- 确认任务未标记为approval_required: true,除非批准政策明确允许待定认领状态
- 确认没有冲突的已批准所有者
- 确认任务不需要访问你未经批准使用的私有或密封正文内容
- 确认policy/role-policy.yaml和policy/approval-policy.yaml不阻止认领
然后:
- 1. 根据仓库约定创建认领记录或更新任务
- 说明你为何符合资格
- 仅当政策允许自动认领时,将任务移至inprogress
- 否则将其移至pendingapproval
如果存在冲突,不要静默覆盖其他代理。记录冲突并请求裁决。高风险或与政策相关的工作应默认使用proposal-approval模式。
角色模型
使用简单角色指导任务分配。建议的角色:
- - coordinator
- architect
- implementer
- reviewer
- security-reviewer
- researcher
- documenter
- human-approver
当存在policy/role-policy.yaml时阅读并遵循它,作为仓库特定的权威,规定谁可以提议、认领、审查或批准。
代理可以建议分配,但人类应批准高影响或敏感的工作。
对于高风险工作,优先考虑职责分离:非人类代理可以起草或实施,但人类批准者应最终确定跨边界操作。
人类批准关口
当存在policy/approval-policy.yaml时阅读并遵循它,作为仓库特定的关口定义。
在以下情况需要人类批准:
- - 将可见性从private或sealed提升到更广泛的级别
- 执行高影响任务
- 解决敏感工作中的角色冲突
- 发布影响他人的最终决策
- 分享源自私有本地内存的内容
- 为敏感工作流分配所有权
- 将提案合并到权威政策中
- 更改policy/visibility-policy.yaml、policy/role-policy.yaml或policy/approval-policy.yaml
除非先有明确的决策记录,否则将可见性提升视为被阻止。在将任何工件或信息类别提升到更广泛的可见性级别时,使用assets/visibility-promotion-decision-template.md。
如果政策不明确,在批准边界处暂停,而不是猜测。
默认分享前工作流
在撰写提案、决策、交接、风险或共享摘要之前:
- 1. 执行分类检查清单
- 尽可能在工件上运行scripts/validate-collab-payload.py
- 检查是否需要批准
- 如果正在提升可见性,首先需要决策记录
- 然后才提交或提议更改
决策、交接、风险和密封记录
使用明确记录,而不是将含义埋藏在聊天或评论中。
决策
包括:标题、状态、批准者、源提案、最终决策、理由、范围和有效引用。
交接
包括:来自、至、任务ID、当前状态、已完成工作、剩余工作、风险和引用的工件。
风险
当保密性不明确、元数据可能泄露、认领冲突或依赖关系未充分指定时,创建风险记录。包括严重性、描述、缓解措施和升级路径。
密封引用
仅包括ID