7.2 KiB
Development & Reporting Rules
1. Core Development Principles
-
Align with OpenClaw direction
- Build extensions and tools that are likely to survive upstream upgrades.
-
Clear, simple, beginner-friendly
- Prefer obvious behavior over cleverness.
- Avoid workflows that only the author can understand.
-
Keep docs and logs concise and clear
- README, setup, usage, and troubleshooting should stay short but usable.
-
Search GitHub before building
- Check whether an existing open-source project or pattern already solves the problem.
- Prefer reuse before starting a new repo.
-
Explicit over implicit
- Critical configuration should be defined once at the top level and referenced elsewhere.
- Avoid duplicated constants and scattered behavior switches.
-
Test critical paths, not vanity coverage
- Must verify key flows such as tool invocation, model routing, health checks, and main publish/execute paths.
-
Small PRs, single responsibility
- One commit/PR should do one thing.
- Do not mix unrelated changes in one diff.
-
Semantic versioning
patch= bugfix onlyminor= backward-compatible featuremajor= breaking change
-
Graceful failure, never silent failure
- If config is missing or behavior is invalid, fail loudly.
- Do not silently fallback and pretend everything is fine.
-
Every change must be rollback-friendly
- Keep the previous good state recoverable.
- Prefer tags/releases before important deployments.
-
Config changes count as code changes
- CLI args, env vars, and config file changes must be tracked and reviewed like code.
-
External interactions need logs
- Log input summaries and status, but do not dump sensitive full payloads.
-
Main is PM, not the construction crew
- Main handles requirements, planning, dispatch, review, and reporting.
- Main should not personally code except for tiny linear edits.
-
Execution work goes to workers by default
- Coding, QA, docs, ops, and similar execution should be delegated to the right worker.
-
Dispatch includes environment, not just a task
- When creating/dispatching an agent, specify the needed model, tools, skills, context, workspace, persona, and rules.
-
Prefer Claude Opus 4.6 for execution when available
- Default execution preference:
claude-local/claude-opus-4-6 - Secondary:
claude-local/claude-sonnet-4-6 - No silent fallback.
- Default execution preference:
-
Worker git authority is limited by default
- Workers may create local branches and commit locally.
- Workers do not push, open PRs, merge, or rewrite shared history unless explicitly authorized.
-
Parallel workers must isolate work
- Use separate branches.
- Main owns merge order and conflict resolution.
-
QA validates, QA does not secretly fix
- QA should report pass/fail/blockers based on explicit artifacts.
done(FAIL)is different fromblocked.
-
Rules should start light, then tighten
- Avoid over-bureaucratizing small tasks.
- Use lightweight dispatch for small work and formal dispatch for risky or multi-step work.
2. Delivery Rules for Push / PR / Release
For any meaningful delivery, verify all of the following:
-
Code
- Changes are actually pushed.
-
Version
- Version number matches the delivery significance.
-
Docs
- README / config / usage docs are updated when behavior changed.
-
Release
- Important updates should get a release/tag.
-
Release Notes
- Important releases should include clear notes.
Important update triggers
Treat any of the following as an important update:
- security fixes
- new config/env vars
- behavior changes
- installation or usage changes
- user-visible new features or important fixes
Short rule:
Code, version, docs, release, and notes should stay aligned.
3. Workflow / Reporting Rules
Task states
Use only:
planneddispatchingin_progressblockedreviewingdonecancelled
State meanings
dispatchingis notin_progress- no evidence -> cannot claim
in_progress blockedcan recover toin_progressblockedcan return todispatchingif reassigned- tasks can move to
cancelledwhen main stops them
Evidence rule
- No evidence, no milestone/done.
- No validation, no completion.
Good evidence includes:
- non-empty worker reply
- logs
- commit / branch / PR
- test output
- release artifact
Worker -> Main reporting
Default required fields:
statussummary
Conditional:
evidence(required formilestone,done,cancelled,done(FAIL))risk(only if meaningful)next(only if meaningful)artifacts(required when handoff/review needs precision)
Main -> Tao reporting
Main must report at these events:
- formal start
- first real execution evidence
- blocked
- milestone
- completion
- worker switch / re-dispatch
- plan change
Ordering rule
When a worker reports a milestone/completion/blocker:
- update task state if needed
- update Tao
- continue review / next dispatch
Pre-Action Gate
Before main dispatches, re-dispatches, reviews, or switches workers, main must ask:
Has Tao been updated since the last state change?
If no, update Tao first.
Anti-Silent Rules
1. Step Budget
After roughly every 10 meaningful actions, main must self-audit:
- Am I still making progress?
- Does Tao know what I am doing?
- Am I entering a waiting state?
- Am I waiting for something that may never arrive?
2. No Silent Waiting
Before entering a waiting state, main must tell Tao:
- who/what it is waiting for
- what result it expects
- what the next step is if the wait succeeds or fails
3. Context Pressure Awareness
If context gets long or scattered, main should send a short checkpoint with:
- current objective
- current progress
- current blocker or next step
4. Deadlock Prevention
Before waiting, main must ensure the worker has the minimum resources needed to finish independently.
5. Limits
These rules help when main is still able to reason. They do not solve lower-level runtime death, API/provider empty responses, or transport hangs.
4. Lightweight vs Formal Dispatch
Lightweight dispatch
Use for small, low-risk tasks.
Required:
taskscopedeliverabledone_definition
Everything else can inherit defaults.
Formal dispatch
Use for:
- cross-file work
- multi-step work
- high-risk work
- multi-worker work
- dependency chains
- structured handoffs
May include:
depends_onmodeltoolsskillscontextworkspacepersonairon_rulesreportingartifacts_expected
5. Practical Summary
If reduced to the shortest possible operating rules:
- Guard scope.
- No evidence, no completion.
- Main decides; workers execute.
- QA reports; QA does not secretly fix.
- No silent fallback.
- No silent waiting.
- Update Tao on real state changes.
- Keep code/version/docs/release/notes aligned.
- Prefer lightweight process for small work, formal process for risky work.
- If a rule causes friction in practice, propose a revision explicitly instead of silently ignoring it.