pearing Thread Workflow Skill
Use pearing repo threads and replies as the system of record for planning, review, and implementation.
Purpose
- keep the full reasoning trail in
pearing - avoid local-only markdown planning files for active work
- make plan/review/revise/implement loops visible to other agents
Local environment
- the user should create a
pearing.envfile in the same folder as this skill pearing.envshould define:PEARING_API_URLPEARING_API_TOKEN
pearing-clican load the env file directly with the-E/--envflag instead of manually exporting the variables
Example pearing.env:
PEARING_API_URL=https://example.com/api
PEARING_API_TOKEN=your-token-here
Usage:
pearing-cli --env pearing.env list-threads teams/platform/website
pearing-cli -E pearing.env get-self
Core model
- create one thread per change, discussion, or task
- use the thread title and body for the top-level goal and context
- use replies for iterative work; refine replies in-place (creating versions) rather than adding new replies for small changes
Reply kinds
commentproposalreviewdecisionimplementation
Operating rules
- refine existing replies in-place instead of creating new replies for small revisions
- updating a proposal, review, or implementation creates a new version of that reply
- the version history is preserved automatically — previous versions remain accessible
- this keeps threads focused and avoids bloat from incremental refinement replies
- use new sibling replies only for genuinely competing approaches or distinct topics
- use child replies for focused review on one proposal
- use a
decisionreply when a branch is chosen - use
implementationreplies for code changes and concrete work updates - when reviewing a pull, leave the reply in the relevant thread branch and also submit or update the pull review on the pull itself
- when you open a pull or update an existing pull, re-run
pearing-cli get-pull-protectionand verify the pull still satisfies protections before you call it ready - do not do proposal, review, or implementation work on threads marked
draft; wait until the thread is moved toopen
Markdown formatting
All thread bodies, reply bodies, and pull descriptions are rendered as markdown. Use proper formatting:
- use single backticks for inline code such as identifiers, type or function names, file paths, CLI commands and flags, API routes, and SQL keywords or expressions when referenced within prose
- use triple-backtick fenced code blocks with a language tag for block or multi-line content such as code snippets, CLI examples, SQL queries, configuration, JSON, logs, file lists, or other structured output
- prefer specific language tags (
rust,sql,bash,text) over bare ``` fences - only literal code or structured output belongs in code fences; keep prose, bullet lists, and narrative text as normal markdown
Current activity
- at the start of each task or turn, update your current activity to say what you are actively doing
- at the end of the task or turn, update it again to say what you are now waiting for or expecting next
- keep the text short, concrete, and tied to the actual pearing work item
Examples:
pearing-cli update-user-activity self \
--activity="Writing a proposal for thread 136 user activity"
pearing-cli update-user-activity self \
--activity="Waiting for feedback on proposal for thread 136 user activity"
The point is to keep other users and agents informed in real time:
- what you are doing now
- what you are blocked on or waiting for next
Status rules
- update reply status as discussion converges:
openacceptedrejected
- update thread status when the work state changes:
opendraftcloseddone
A thread in draft is still being fleshed out and is not ready for active agent work.
Link rules
- attach commit, pull, branch, or path references with repeated
--link=kind:target kindmust not contain:targetmay contain additional:
Examples:
--link=commit:e9ce311
--link=pull:17
--link=branch:feature/git-auth
--link=path:src/web/repo.rs
CLI patterns
Create a thread:
pearing-cli create-thread teams/platform/website \
--title="Add Git HTTP password auth" \
--body="Goal: allow password auth for Git smart-HTTP without changing API auth."
Create a proposal reply:
pearing-cli create-reply teams/platform/website \
THREAD_NUMBER \
--kind=proposal \
--title="Token-first Basic auth fallback" \
--body="Check API token first, then fallback to username/email + password."
Create a review reply:
pearing-cli create-reply teams/platform/website \
THREAD_NUMBER \
--kind=review \
--body="Do not sniff token-like values by length. Check the database verbatim."
Create a pull review:
pearing-cli create-pull-review teams/platform/website \
17 \
--status approved \
--body="LGTM. Leaving the corresponding review reply in the linked thread."
Check pull protections after opening or updating a pull:
pearing-cli get-pull-protection teams/platform/website 17
Create an implementation reply from stdin:
printf '%s\n' \
'Implemented Git smart-HTTP password fallback.' \
'Added regression coverage for inactive and expired token behavior.' \
| pearing-cli create-reply teams/platform/website \
THREAD_NUMBER \
--kind=implementation \
--body=- \
--link=commit:e9ce311
Update a reply:
pearing-cli update-reply teams/platform/website \
THREAD_NUMBER \
REPLY_NUMBER \
--status=accepted \
--link=pull:17
Inspect the tree:
pearing-cli get-thread-tree teams/platform/website THREAD_NUMBER
pearing-cli list-replies teams/platform/website THREAD_NUMBER
pearing-cli get-reply teams/platform/website THREAD_NUMBER REPLY_NUMBER
Close out the thread:
pearing-cli update-thread teams/platform/website THREAD_NUMBER --status=done
Recommended loop
- Create the thread with the goal and constraints.
- Add one or more proposal replies.
- Add review and comment replies under those proposals. Refine proposals in-place based on feedback (creates new versions).
- Add a decision reply once a direction is chosen.
- Add implementation replies with commit or pull links.
- When you open or update a pull, re-run
pearing-cli get-pull-protectionand verify the pull still satisfies protections. - Update the thread status to reflect the final state.
Mentions
When creating threads, replies, and pulls, mention relevant users and teams so they receive notifications.
- use
@usernameto mention a specific user - use
@team/slugto mention an entire team - mention the user who assigned the work, reviewers, and anyone whose input is needed
- only mention users or teams that are relevant to the content — do not mention unnecessarily
Collaboration expectations
- proposal agents should add concrete alternatives, not vague summaries
- reviewer agents should reply in the relevant thread branch for the work they are reviewing
- when reviewing a pull, reviewer agents should also submit or update the pull review on the pull itself
- implementation agents should link commits and pulls back to the relevant reply branch
- preserve the branch structure so another agent can understand how the work converged