paseokit
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinesepaseokit
paseokit
Paseo shows one workspace per checkout, either a main repo or a git worktree under it, and hangs agents off each one. Worktrees themselves come from plain : gitkit's convention, issuekit's , or your own hands.
git worktreestartPaseo's registry is explicit-only in both directions. A worktree that created is invisible to Paseo until something registers it, and a workspace whose directory was deleted stays in the sidebar forever. There is no discovery setting to turn on and no prune command to run. So the sidebar drifts from the disk in both directions at once: real work that never appears, and finished work that never leaves.
git worktree addpaseokit owns exactly that reconciliation: Paseo's registry, made to match the worktrees that actually exist. One command, machine-wide, and running it twice changes nothing the second time.
It is on-demand by design. Worktrees appear in Paseo when you run , not when they are created. That is a deliberate trade: no git hooks, no scheduler, no background process, nothing written into any repo.
syncPaseo 为每个检出项显示一个workspace,无论是主仓库还是其下的git worktree,并为每个workspace关联agents。工作区本身来自原生的 :gitkit 的约定、issuekit 的 命令,或是你手动创建的。
git worktreestart**Paseo 的注册表在双向操作上均为显式模式。**通过 创建的工作区在被注册前对 Paseo 是不可见的,而目录已被删除的工作区会永远留在侧边栏中。这里没有可开启的发现设置,也没有可执行的清理命令。因此侧边栏会与磁盘状态双向脱节:真实存在的工作区从未显示,已完成的工作区却始终存在。
git worktree addpaseokit 专门负责这种一致性维护:让 Paseo 的注册表与实际存在的工作区保持一致。只需一条命令即可在全机生效,重复执行第二次不会产生任何变化。
它设计为按需触发。工作区只会在你执行 时才会出现在 Paseo 中,而不是在创建时就自动同步。这是一种刻意的取舍:无需 git 钩子、调度器或后台进程,也不会向任何仓库写入内容。
syncThe line paseokit does not cross
paseokit 不会跨越的边界
Git owns the worktree; Paseo owns the row. paseokit never runs to do real work, never invents a path, and never lets Paseo create a branch. Creating and removing a worktree is native under gitkit's convention, so a machine with no Paseo on it runs identical commands.
paseo workspace create --isolation worktreegit worktreepaseokit works one layer up, on the only thing Paseo alone knows: the registry row, meaning that a workspace exists for this path, under this project, with this title.
Two consequences worth stating plainly:
- is registry-only. It removes the row and leaves the directory, the branch, and git's own worktree registration completely intact. That is what lets
paseo workspace archivereap without a destructive-confirm gate, because nothing it does can lose work.sync - Removing a worktree is still gitkit's job. Paseo does not notice a deleted directory, so the row has to be archived afterward, which is precisely what is for.
sync
paseokit never touches the tracker. It reads issues and pull requests to build a title and judge a verdict; it never closes an issue, moves a label, or edits a pull request. A merged pull request whose issue is still open is tracker drift, and it says so, routing to issuekit .
closeGit 管理工作区;Paseo 管理条目。 paseokit 绝不会执行 来创建实际工作区,不会凭空生成路径,也不会让 Paseo 创建分支。创建和删除工作区是遵循 gitkit 约定的原生 操作,因此即使机器上没有 Paseo,也能执行完全相同的命令。
paseo workspace create --isolation worktreegit worktreepaseokit 工作在更高一层,仅处理只有 Paseo 知晓的内容:注册表条目,即某个路径下存在一个工作区,隶属于某个项目,并拥有特定标题。
有两个结果需要明确说明:
- **仅针对注册表。**它只会删除条目,而目录、分支以及 Git 自身的工作区注册信息会完全保留。这也是
paseo workspace archive无需确认即可清理的原因——它的任何操作都不会导致工作内容丢失。sync - 删除工作区仍是 gitkit 的职责。 Paseo 不会察觉到目录已被删除,因此条目必须在删除后进行归档,而这正是 的作用所在。
sync
**paseokit 绝不会触及跟踪系统。**它会读取议题和拉取请求来生成标题并判断状态,但绝不会关闭议题、移动标签或编辑拉取请求。已合并的拉取请求对应的议题仍处于打开状态属于跟踪系统的脱节情况,此时会提示用户使用 issuekit 的 命令处理。
closeWhen this fires
触发场景
- . "What does paseo think my worktrees are", "why isn't my worktree in the sidebar", "show me the drift". Read-only.
list - . "Sync my worktrees to paseo", "register my worktrees", "clean the dead rows out of my sidebar".
sync - . "Where should paseo put new worktrees", "make paseo use my worktree root".
align
If no mode is clear, start with . It is read-only and it names which rows would touch, so it is never the wrong first move.
listsyncNot this skill: creating or removing a worktree (gitkit), closing an issue and tearing down after a merge (issuekit ), or driving agents, since , , , , and the schedule surface all belong to the CLI directly. paseokit is registry hygiene, not agent operation.
closepaseo runattachsendlogspaseo- 模式:“paseo 认为我的工作区有哪些”、“为什么我的工作区不在侧边栏中”、“显示状态差异”。只读模式。
list - 模式:“将我的工作区同步到 paseo”、“注册我的工作区”、“清理侧边栏中的无效条目”。
sync - 模式:“paseo 应该把新工作区放在哪里”、“让 paseo 使用我的工作区根目录”。
align
不属于该工具的操作:创建或删除工作区(gitkit 的职责)、关闭议题并在合并后清理(issuekit 的 命令)、或是管理 agents——因为 、、、 以及调度功能都属于 CLI 的直接操作范围。paseokit 负责注册表的维护,而非 agent 的操作。
closepaseo runattachsendlogspaseoPreflight (every mode)
预检(所有模式通用)
sh
paseo status # CLI installed? daemon running and reachable?- not installed → this machine has no Paseo, so there is nothing to reconcile. Say exactly that and stop. Do not fall back to anything: the worktrees are already fine without Paseo, and nothing else in the workflow depends on this skill.
paseo - Daemon not running or unreachable → name and stop. Do not start a daemon on someone's machine unasked.
paseo start - missing or unauthenticated → titles degrade to the branch name and the tracker column reads "unknown". Nothing else degrades. Unlike a worktree-deleting sweep, no operation here is gated on proving a merge, so a missing
ghnever blocks a mode.gh - A rejected flag or subcommand → the CLI moves fast. Check
paseobefore concluding an operation is unsupported. The goal is the contract, meaning the row registered, the row archived, the title set; the exact flag spelling is not.paseo <command> --help
Verified against Paseo 0.4.0, CLI and daemon. Re-check the seam below against a newer version before trusting a write.
sh
paseo status # CLI 是否已安装?守护进程是否正在运行且可访问?- 未安装 → 该机器上没有 Paseo,无需进行一致性维护。直接告知用户并停止操作。不要回退到其他操作:没有 Paseo 时工作区本身已经正常,且工作流中的其他环节不依赖该工具。
paseo - 守护进程未运行或无法访问 → 告知用户执行 并停止操作。不要未经用户同意就启动守护进程。
paseo start - 缺少 或未认证 → 标题会降级为分支名称,跟踪系统列显示为“未知”。其他功能不受影响。与删除工作区的操作不同,此处的任何操作都无需验证合并状态,因此缺少
gh不会阻塞任何模式的执行。gh - 标志或子命令被拒绝 → CLI 更新速度较快。在判定操作不支持前,请先查看
paseo。目标是完成合约,即完成条目注册、归档、标题设置;具体的标志拼写并不重要。paseo <command> --help
已针对 Paseo 0.4.0 版本的 CLI 和守护进程进行验证。在信任写入操作前,请针对新版本重新检查以下内容。
What Paseo knows about a workspace
Paseo 对工作区的认知
Two surfaces, and the difference between them is load-bearing.
The CLI listing is a thin projection. returns only , (the display name, not the id), , , and . It lists active workspaces only. That is enough to answer one question, which is whether any live row points at this path, and nothing else.
paseo workspace ls --jsonworkspaceIdprojectnameisolationcwdThe state files carry the rest. Everything the modes below actually decide on lives in two JSON files under :
~/.paseo/projects/| file | what it uniquely provides | needed for |
|---|---|---|
| | every registration, since |
| | tombstones, duplicate ordering, retitle safety |
This is a documented seam, not a stable API. Paseo 0.4.0 ships no , rejects both a name and a path, and the id is not derivable from by any hash, so reading the files is unavoidable rather than a shortcut. Treat them as read-only: paseokit parses them and writes through the CLI, never into them.
project ls--projectprj_…projectKeyIf either file is missing, unreadable, or shaped unexpectedly, degrade every writing mode to read-only and say which file and why. Never guess at an id.
A workspace carries a title and a pin, and nothing else, with no issue link and no status field. So -style enrichment has no equivalent here; the title is the entire surface.
link有两个层面的信息,它们之间的差异至关重要。
CLI 列表是一个精简的投影。 仅返回 、(显示名称而非 ID)、、 和 。它仅列出活跃的工作区。这足以回答一个问题:是否有任何活跃条目指向该路径,仅此而已。
paseo workspace ls --jsonworkspaceIdprojectnameisolationcwd**状态文件包含其余信息。**以下模式中实际需要决定的所有内容都存储在 下的两个 JSON 文件中:
~/.paseo/projects/| 文件 | 唯一提供的内容 | 用途 |
|---|---|---|
| 每个 | 所有注册操作,因为 |
| | 已归档条目、重复项排序、标题修改安全性 |
这是一个已公开的衔接点,而非稳定 API。 Paseo 0.4.0 没有提供 命令, 既不接受名称也不接受路径,且 格式的 ID 无法通过任何哈希从 推导出来,因此读取这些文件是不可避免的,而非捷径。请将它们视为只读:paseokit 仅解析这些文件,并通过 CLI 写入,绝不会直接修改它们。
project ls--projectprj_…projectKey如果任一文件缺失、无法读取或格式不符合预期,将所有写入模式降级为只读,并告知用户具体是哪个文件以及原因。切勿猜测 ID。
工作区包含标题和固定标记,无其他内容,没有议题链接或状态字段。因此此处没有类似 样式的增强功能;标题是唯一的展示内容。
linkTwo things the registry gets wrong
注册表存在的两个问题
- is a known lie. Paseo sets it
isPaseoOwnedWorktreefor a worktree that git created and Paseo merely adopted. No CLI corrects it, so the desktop app may offer to delete a worktree that git owns. paseokit documents this and works around nothing; it never reads the flag to make a decision.true - is not idempotent. Two identical calls on one path silently produce two rows with the same
workspace create. Every existence check before a registration is therefore load-bearing rather than an optimization, and it must consider archived rows too, or the tombstone rule below fails silently.cwd
- 是已知的错误标记。 Paseo 会将 Git 创建、Paseo 仅接管的工作区标记为
isPaseoOwnedWorktree。没有 CLI 可以纠正这个标记,因此桌面应用可能会提供删除 Git 所属工作区的选项。paseokit 会记录这个问题,但不会进行任何处理;它绝不会读取该标记来做出决策。true - 不是幂等的。对同一路径执行两次相同的调用会静默生成两个具有相同
workspace create的条目。因此注册前的存在性检查至关重要,而非优化手段,且必须考虑已归档的条目,否则下面的已归档条目规则会静默失效。cwd
Mode: list
list模式:list
listRead-only. Changes nothing, asks nothing, and is the right first move whenever the state is unclear.
Join three sources and match on absolute path, the only key both git and Paseo record:
sh
git -C "$REPO" worktree list --porcelain # per live project in projects.json
paseo workspace ls --json # active rows
paseo ls --json # agents, each with a cwd and a statusTwo filters before anything gets a verdict:
- No symbolic HEAD, no row. A porcelain record carries either or
branch refs/heads/<name>; the detached ones never register. This is the same answerdetachedgives inside the worktree, and it is what keeps debugkit's bisect scratch out of the sidebar.git symbolic-ref -q HEAD - Agent values come back tilde-abbreviated (
cwd). Expand before comparing, or every~/projects/skillscheck quietly returns false.busy
Then give every row a verdict:
| verdict | means | fix |
|---|---|---|
| a non-idle agent's | leave it |
| worktree exists, exactly one active row points at it | nothing |
| worktree exists, no row points at it | |
| an active row points at a path that no longer exists | |
| two or more active rows share one | |
| worktree exists, and its only row is archived | |
| worktree under | |
| a project whose | reported only; no CLI deletes a project |
| pull request merged, issue closed, tree clean | gitkit teardown, then |
Put rows first when any exist. Those are the rows where an action would interrupt live work.
busyA stray project has a clear signature: its matches a real project's while its sits under . That is what a registration without produces, and it is invisible in because the row beneath it may since have been archived.
projectKeyrootPath$WORKTREE_ROOT--projectworkspace ls只读模式。不会更改任何内容,也不会询问任何问题,当状态不明确时,这是正确的第一步。
关联三个数据源,并通过绝对路径进行匹配——这是 Git 和 Paseo 都会记录的唯一键:
sh
git -C "$REPO" worktree list --porcelain # 对应 projects.json 中的每个活跃项目
paseo workspace ls --json # 活跃条目
paseo ls --json # agents,每个都包含 cwd 和状态在给出判定前,先应用两个过滤器:
- 无符号 HEAD,无条目。 porcelain 记录会包含 或
branch refs/heads/<name>;处于 detached 状态的工作区永远不会被注册。这与在工作区内执行detached的结果一致,可避免 debugkit 的二分查找临时工作区出现在侧边栏中。git symbolic-ref -q HEAD - Agent 的 值会以波浪号缩写(如
cwd)。在比较前请展开路径,否则所有“忙碌”检查都会静默返回 false。~/projects/skills
然后为每个条目给出判定:
| 判定结果 | 含义 | 修复方式 |
|---|---|---|
| 非空闲 agent 的 | 保留 |
| 工作区存在,且恰好有一个活跃条目指向它 | 无需操作 |
| 工作区存在,但没有条目指向它 | |
| 活跃条目指向的路径已不存在 | |
| 两个或多个活跃条目共享同一个 | |
| 工作区存在,但唯一的条目已归档 | |
| | |
| 项目的 | 仅报告;没有 CLI 可以删除项目 |
| 拉取请求已合并,议题已关闭,工作区已清理 | gitkit 清理,然后执行 |
**如果存在 条目,请优先显示它们。**这些条目对应的操作会中断正在进行的工作。
busy游离项目有明确的特征:其 与真实项目匹配,但 位于 下。这是未指定 参数的注册操作导致的,且在 中不可见,因为其下的条目可能已被归档。
projectKeyrootPath$WORKTREE_ROOT--projectworkspace lsHand off
后续操作
Write every hand-off in this skill in the procedural register: one instruction per sentence, active voice, present tense, no metaphor.
What changed. Nothing. Say so.
Where it landed. Give one table, with the counts per verdict.
Next. Crown when any row is , , , or . Crown gitkit teardown instead when the only findings are . Say plainly that the sidebar already matches the disk when every row reads .
syncunregisteredorphanedduplicatetombstonedreapableregistered本工具中的所有后续操作说明均采用过程式表述:每句一条指令,主动语态,现在时态,无隐喻。
变更内容:无任何变更。直接告知用户。
当前状态:提供一个表格,按判定结果统计数量。
下一步:如果存在 、、 或 条目,推荐执行 。如果仅发现 条目,则推荐执行 gitkit 清理操作。如果所有条目均为 ,则明确告知用户侧边栏已与磁盘状态一致。
unregisteredorphanedduplicatetombstonedsyncreapableregisteredMode: sync
sync模式:sync
syncThe writing mode, and safe to run repeatedly by construction.
Run 's join first, because acts on exactly those verdicts.
listsync写入模式,且设计为可安全重复执行。
先执行 的关联操作,因为 会根据这些判定结果进行操作。
listsyncStraight through, no confirmation
直接执行,无需确认
Every operation below is non-destructive and proven so, so none of them asks.
Register each worktree:
unregisteredsh
paseo workspace create --isolation local --path "$WT" \
--project "$PROJECT_ID" --title "$TITLE" --json--isolation local$WTkind: "worktree"mainRepoRoot--projectstray project$PROJECT_IDprojects.jsonrootPatharchivedAtArchive each row:
orphanedsh
paseo workspace archive "$WORKSPACE_ID" --jsonCollapse each set to one row: keep the row a live agent is attached to, otherwise the oldest by , and archive the rest.
duplicatecreatedAtRetitle rows whose title Paseo generated rather than a human:
sh
paseo workspace rename "$WORKSPACE_ID" "$TITLE"The title is , with parsed from an branch and the title read with . It degrades to the branch name when is unusable or the branch names no issue.
#<n> · <issue title><n>issue-<n>-<slug>gh issue view "$N" --json titleghOnly ever retitle a row whose is null or exactly the branch name. Anything else was set by a human and is left alone, reported as a disagreement rather than overwritten.
titleSkip anything , naming the agent's short id in the report. Never archive a workspace with a live agent in it.
busy以下所有操作均为非破坏性且已验证,因此无需询问用户。
注册每个 工作区:
unregisteredsh
paseo workspace create --isolation local --path "$WT" \
--project "$PROJECT_ID" --title "$TITLE" --json--isolation local$WTkind: "worktree"mainRepoRoot** 是必填项。**如果未指定,Paseo 会创建一个以工作区路径为根的重复项目,即上面提到的“游离项目”,且没有 CLI 可以删除它。通过匹配 与未归档的主检出项,从 中解析 。**如果无法解析 ID,请跳过注册并报告该问题。**缺少条目可恢复,但游离项目无法处理。
--projectrootPathprojects.json$PROJECT_ID归档每个 条目:
orphanedsh
paseo workspace archive "$WORKSPACE_ID" --json合并每个 条目集合为一个条目:保留关联了活跃 agent 的条目,否则保留创建时间最早的条目,并归档其余条目。
duplicate重命名那些由 Paseo 自动生成而非人工设置标题的条目:
sh
paseo workspace rename "$WORKSPACE_ID" "$TITLE"标题格式为 ,其中 从 格式的分支中解析,标题通过 获取。当 不可用或分支未关联议题时,标题会降级为分支名称。
#<n> · <issue title><n>issue-<n>-<slug>gh issue view "$N" --json titlegh**仅对 为 null 或恰好等于分支名称的条目进行重命名。**其他任何标题都是人工设置的,会保留原样,并报告为不一致情况而非覆盖。
title跳过所有 条目,并在报告中注明 agent 的短 ID。绝不要归档包含活跃 agent 的工作区。
busyGated on one confirmation each
需单独确认的操作
Both of these widen the scope past what the user asked for, so both stop and ask.
Unknown repos. Walk , resolve each candidate to its main checkout with , and collect the repos Paseo has never seen. List them, then on one OK register the main checkout first:
$WORKTREE_ROOT/*git -C "$CANDIDATE" rev-parse --git-common-dirsh
paseo workspace create --isolation local --path "$REPO" --jsonThat call is what brings the project into being. Re-read afterward for the new id, then register the repo's worktrees with it.
projects.jsonprj_…Paseo's own worktrees need no special case. They already carry a row, and their resolves to a repo Paseo knows, so they never reach the unknown-repo bucket, and no hash-directory pattern has to be guessed at.
--git-common-dirTombstones. An archived row suppresses re-registration: someone archived that workspace deliberately, and re-adding it on the next run would undo the decluttering they just did. Name the tombstoned worktrees, restore them on one OK, and leave them alone otherwise.
There is no in 0.4.0. "Restoring" a tombstone means creating a fresh row for the same path, so the archived row stays in and the restored workspace is a new id. Say that when you do it; do not report a resurrection.
paseo workspace unarchiveworkspaces.jsonwks_…这两类操作的范围超出了用户的请求,因此需要停止并询问用户。
未知仓库:遍历 ,通过 将每个候选路径解析为主检出项,并收集 Paseo 从未识别过的仓库。列出这些仓库,在用户确认后先注册主检出项:
$WORKTREE_ROOT/*git -C "$CANDIDATE" rev-parse --git-common-dirsh
paseo workspace create --isolation local --path "$REPO" --json该调用会将项目纳入 Paseo。之后重新读取 获取新的 ID,再使用该 ID 注册仓库的工作区。
projects.jsonprj_…Paseo 自身的工作区无需特殊处理。它们已经存在条目,且其 会解析为 Paseo 已识别的仓库,因此永远不会进入未知仓库的列表,无需猜测哈希目录模式。
--git-common-dir已归档条目:已归档的条目会阻止重新注册——用户特意归档了该工作区,在下一次运行时重新添加会撤销他们刚刚完成的清理操作。列出已归档的工作区,在用户确认后恢复它们,否则保持原样。
Paseo 0.4.0 中没有 命令。“恢复”已归档条目意味着为同一路径创建一个新条目,因此已归档条目仍会保留在 中,恢复后的工作区会拥有新的 ID。执行此操作时请明确告知用户;不要报告为“恢复”操作。
paseo workspace unarchiveworkspaces.jsonwks_…Hand off
后续操作
What changed. Report registrations, archives, collapses, and retitles, each with a count. Name every skip with its reason. Put skips first, because those are live work.
busyWhere it landed. Paseo's registry only. Say plainly that no directory, branch, or git registration changed, and that the sidebar reflects the new rows within a few seconds.
Next. Crown one:
- anything → name the path and the agent. Tell the user to run
busyagain after that agent finishes.sync - any → name it. Say that the fix is manual: edit
stray project, then run~/.paseo/projects/projects.json. Do not perform it, because a daemon restart kills every running agent, including the one reading this.paseo restart - any → route to gitkit teardown, otherwise
reapablefollowed bygit -C "$REPO" worktree remove "$WT"again to archive the row.sync - tracker drift → route to issuekit , otherwise
close <n>.gh issue close <n> - nothing left → say the registry matches the disk and stop. This is not a loop worth repeating.
变更内容:报告注册、归档、合并和重命名的操作数量。列出所有跳过的条目及其原因。优先显示 跳过的条目,因为这些是正在进行的工作。
busy当前状态:仅变更了 Paseo 的注册表。明确告知用户没有修改任何目录、分支或 Git 注册信息,且侧边栏会在几秒内反映新的条目。
下一步:根据情况推荐:
- 存在 条目 → 注明路径和 agent。告知用户在该 agent 完成后重新运行
busy。sync - 存在 → 注明该项目。说明修复方式为手动操作:编辑
stray project,然后执行~/.paseo/projects/projects.json。不要自行执行,因为重启守护进程会终止所有运行中的 agent,包括正在读取此内容的 agent。paseo restart - 存在 条目 → 引导至 gitkit 清理操作,否则执行
reapable,然后重新运行git -C "$REPO" worktree remove "$WT"来归档条目。sync - 跟踪系统脱节 → 引导至 issuekit 的 命令,否则执行
close <n>。gh issue close <n> - 无剩余操作 → 告知用户注册表已与磁盘状态一致,停止操作。无需重复执行。
Mode: align
align模式:align
alignOne-time configuration, per machine. It does not touch a single workspace.
Check the worktree root. Compare in against , which is gitkit's convention, defaulting to unless the environment says otherwise. Two roots in play means every sweep classifies by path forever.
worktrees.root~/.paseo/config.json$WORKTREE_ROOT~/worktreesAligning it only affects worktrees Paseo creates itself. Existing worktrees are untouched, and git stores absolute paths, so nothing moves. Say that out loud, because "aligned" reads like "migrated" and it is not.
Surface . Setting it lets Paseo archive a workspace by itself when its change request merges, which would cover part of 's reaping natively. Recommend it as an experiment to observe, and flag both limits honestly: it is undocumented, and it only reaches workspaces where Paseo detected a pull request. still owns the general case either way.
daemon.autoArchiveAfterMergetruesyncsync一次性配置,针对单台机器。不会修改任何工作区。
**检查工作区根目录。**将 中的 与 进行比较—— 是 gitkit 的约定,默认值为 ,除非环境变量另有指定。存在两个根目录意味着每次扫描都会永久按路径分类。
~/.paseo/config.jsonworktrees.root$WORKTREE_ROOT$WORKTREE_ROOT~/worktrees对齐操作仅会影响 Paseo 自行创建的工作区。现有工作区不会被修改,且 Git 存储的是绝对路径,因此不会有任何内容移动。请明确告知用户这一点,因为“对齐”容易被误解为“迁移”,但实际并非如此。
**显示 设置。**将其设置为 可让 Paseo 在变更请求合并后自动归档工作区,这可原生覆盖 的部分清理功能。推荐用户将其作为实验进行观察,并诚实地说明其局限性:该设置未被文档化,且仅适用于 Paseo 检测到拉取请求的工作区。无论如何, 仍负责通用场景的处理。
daemon.autoArchiveAfterMergetruesyncsyncHand off
后续操作
What changed. Report which config keys you compared, and which the user chose to change.
Where it landed. Report . Repeat that existing worktrees stayed where they were.
~/.paseo/config.jsonNext. Run to see the whole set in one table. Then stop. This is a one-time setting per machine, not a routine.
list变更内容:报告已比较的配置键,以及用户选择修改的键。
当前状态:报告修改了 。再次强调现有工作区未发生移动。
~/.paseo/config.json下一步:执行 以在一个表格中查看所有工作区。然后停止操作。这是针对单台机器的一次性设置,而非常规操作。
listNotes
注意事项
- paseokit is machine-local and always optional. No Paseo on the box means no-op, and nothing else in the workflow may depend on it. gitkit, issuekit, and the rest never call it, because they would break on every machine without the tool. It is a pump you run, not a link in a chain.
- is the sibling, not the predecessor. It reconciles the same worktrees into Orca, whose model is the exact inverse: Orca discovers worktrees on its own and knows nothing about them, so orcakit enriches and cleans up, while paseokit registers and reaps. Both are machine-local and optional, and neither ever calls the other.
orcakit - Worktree facts belong to gitkit. The path convention and the
$WORKTREE_ROOT/<repo>/<branch>branch grammar appear here only as declared portability fallbacks for machines without gitkit. Branch naming, base-ref resolution, and the teardown rules live there, and any other copy of a gitkit fact in this file is a bug.issue-<n>-<slug> - Tracker facts belong to issuekit. paseokit reads issue and pull request state to build a title and a verdict; it writes none of it.
- Read-only modes run straight through; scope-widening ones ask. never asks.
listruns its non-destructive work without a prompt precisely because archiving cannot lose anything, and stops only for the two operations that register something the user did not name.sync - Never write into . paseokit reads those files because 0.4.0 exposes no CLI equivalent, and writes exclusively through
~/.paseo/projects/*.json. A hand-edited state file needs a daemon restart to take effect, and a restart kills every running agent.paseo - No shell available? Then you cannot reach the CLI,
paseo, orgit. Reason from what the user gives you and print the exact commands as a codeblock for them to run, and never report a workspace registered or archived that you could not perform.gh
- **paseokit 是机器本地工具,且始终为可选。**机器上没有 Paseo 时该工具会无操作,且工作流中的其他环节不会依赖它。gitkit、issuekit 及其他工具绝不会调用它,否则会在没有该工具的机器上运行失败。它是一个按需运行的工具,而非工作流中的必要环节。
- **是同级工具,而非前置工具。**它会将相同的工作区同步到 Orca,其模型与 Paseo 完全相反:Orca 会自动发现工作区但对其一无所知,因此 orcakit 负责增强和清理,而 paseokit 负责注册和清理。两者均为机器本地工具且可选,彼此绝不会调用对方。
orcakit - **工作区相关规则属于 gitkit。**路径约定 和
$WORKTREE_ROOT/<repo>/<branch>分支格式仅作为无 gitkit 机器的可移植回写出现在此处。分支命名、基准引用解析和清理规则都存储在 gitkit 中,本文件中任何其他 gitkit 规则的副本均为错误。issue-<n>-<slug> - 跟踪系统相关规则属于 issuekit。 paseokit 仅读取议题和拉取请求的状态来生成标题和判定结果;绝不会写入任何内容。
- 只读模式直接执行;扩大范围的操作需询问。 模式绝不会询问。
list模式会直接执行非破坏性操作,正是因为归档不会丢失任何内容,仅会在执行用户未指定的注册操作时停止并询问。sync - 切勿写入 。 paseokit 读取这些文件是因为 0.4.0 版本没有提供对应的 CLI,且仅通过
~/.paseo/projects/*.json进行写入。手动编辑状态文件需要重启守护进程才能生效,而重启会终止所有运行中的 agent。paseo - 无 shell 可用?此时无法访问 CLI、
paseo或git。根据用户提供的信息进行推理,并将确切命令作为代码块打印供用户执行,绝不要报告未实际执行的工作区注册或归档操作。gh