Loading...
Loading...
Compare original and translation side by side
skeeperskeeperskeeper.lockpre-commitpre-merge-commitskeeper.lockpre-push<namespace>/__branches__/<source-branch>diffhydratereconcilerescueupdate.git/skeeper/rescue/gitghskeeper initskeeper.lockpre-commitpre-merge-commitskeeper.lockpre-push<namespace>/__branches__/<source-branch>diffhydratereconcilerescueupdate.git/skeeper/rescue/gitskeeper initghskeeper.lockSKEEPER_SKIP=1.git/skeeper/bypass.jsonstatusfsckpre-pushskeeper syncgit commit --no-verifypre-pushflowchart LR
A[git commit] --> B[existing user hook content]
B --> C[skeeper pre-commit block]
C --> D[reconcile staged specs and ownership]
D --> E[fetch and rebase sidecar branch]
E --> F[mirror namespace files into .skeeper/]
F --> G[commit and push sidecar]
G --> H[write and stage skeeper.lock]
H --> I[main commit proceeds]
I --> J[git push]
J --> K[skeeper pre-push verify]skeeper.lockSKEEPER_SKIP=1.git/skeeper/bypass.jsonstatusfsckpre-pushskeeper syncgit commit --no-verifypre-pushflowchart LR
A[git commit] --> B[existing user hook content]
B --> C[skeeper pre-commit block]
C --> D[reconcile staged specs and ownership]
D --> E[fetch and rebase sidecar branch]
E --> F[mirror namespace files into .skeeper/]
F --> G[commit and push sidecar]
G --> H[write and stage skeeper.lock]
H --> I[main commit proceeds]
I --> J[git push]
J --> K[skeeper pre-push verify]undefinedundefined
If the working tree already contains specs that should be sidecar-managed, run `skeeper adopt <glob>` after `init` to migrate them in one transaction.
如果工作区中已有需要由侧仓管理的规范文件,可在`init`之后执行`skeeper adopt <glob>`命令,一次性将它们迁移到侧仓管理。| Command | Purpose | Read-only? |
|---|---|---|
| Interactively bootstrap | no |
| Restore spec files from the sidecar commits recorded in | no |
| Mirror current specs to the sidecar and stage | no |
| Move main-tracked specs under sidecar coverage | no |
| Reverse adoption: stop tracking specs in the main repo | no |
| Preview which working-tree files a glob would match | yes |
| Add a glob to a namespace and update | no |
| Show sidecar URL, branch, lock state, namespace digests, repair, bypass | yes |
| Show sidecar history for a single spec file (default: locked commit; | yes |
| Compare working-tree specs against | yes |
| List path-level drift classes such as local-only, missing, modified, and conflict | yes |
| Resolve drift explicitly by adopting, pruning to rescue, merging, or choosing ours/theirs | no |
| Validate | yes |
| Install or refresh the strict hooks, | no |
| Validate that managed hook blocks and the merge driver are wired correctly | yes |
| Regenerate | no |
| List rescue manifests for files moved aside before prune or overwrite | yes |
| Restore all or selected files from a rescue manifest | no |
| Agent-friendly update workflow: fast-forward, verify, hydrate, fsck, hooks | no |
| Show the active transaction and any pending bypass | yes |
| Re-run the recorded plan after a transient failure | no |
| Clear the transaction (only safe before main-index mutation) | no |
| Print build metadata | yes |
--json--dry-run--forcesettings.guardrailsreferences/cli-reference.md| 命令 | 用途 | 是否只读 |
|---|---|---|
| 交互式引导创建 | 否 |
| 根据 | 否 |
| 将当前规范文件镜像到侧仓并暂存 | 否 |
| 将主仓库跟踪的规范文件纳入侧仓管理 | 否 |
| 取消侧仓管理:停止在主仓库跟踪规范文件 | 否 |
| 预览通配符会匹配工作区中的哪些文件 | 是 |
| 向命名空间添加通配符,并更新 | 否 |
| 显示侧仓URL、分支、锁文件状态、命名空间摘要、修复记录、绕过记录 | 是 |
| 显示单个规范文件的侧仓历史记录(默认:锁定的提交; | 是 |
| 对比工作区规范文件与 | 是 |
| 列出路径级别的漂移类型,如本地独有、缺失、已修改、冲突 | 是 |
| 通过纳入本地修改、修剪至救援目录、合并或选择本地/远程版本来明确解决漂移 | 否 |
| 验证 | 是 |
| 安装或刷新严格钩子、 | 否 |
| 验证托管钩子块和合并驱动是否正确配置 | 是 |
| 在Git合并期间重新生成 | 否 |
| 列出在修剪或覆盖前被移至救援目录的文件清单 | 是 |
| 从救援清单中恢复全部或选定文件 | 否 |
| 适用于代理的更新工作流:快进、验证、hydrate、fsck、钩子检查 | 否 |
| 显示当前活动事务和任何待处理的绕过记录 | 是 |
| 在临时故障后重新运行已记录的计划 | 否 |
| 清除事务(仅在主索引未修改时安全) | 否 |
| 打印构建元数据 | 是 |
--json--dry-run--forcesettings.guardrailsreferences/cli-reference.md.skeeper.ymlsidecar: git@github.com:user/myproject-specs.git
namespaces:
- name: project
patterns:
- "**/SPEC.md"
- "docs/specs/**"
- ".claude/plans/**"
- "**/*.spec.md"
exclude:
- "docs/specs/private/**"settings:
guardrails:
max_files: 100 # default 100
max_bytes: 10485760 # default 10 MiB
hooks:
pre_push_timeout: 30s # default 30s
allow_skip_env: SKEEPER_SKIP # default SKEEPER_SKIPexclude!docs/private/**patternsexclude__branches__references/config-reference.md.skeeper.ymlsidecar: git@github.com:user/myproject-specs.git
namespaces:
- name: project
patterns:
- "**/SPEC.md"
- "docs/specs/**"
- ".claude/plans/**"
- "**/*.spec.md"
exclude:
- "docs/specs/private/**"settings:
guardrails:
max_files: 100 # 默认值100
max_bytes: 10485760 # 默认值10 MiB
hooks:
pre_push_timeout: 30s # 默认值30s
allow_skip_env: SKEEPER_SKIP # 默认值SKEEPER_SKIPexcludepatterns!docs/private/**exclude__branches__references/config-reference.mdskeeper init \
--sidecar-name myproject-specs \
--visibility private \
--namespace project \
--patterns "**/SPEC.md" \
--patterns "docs/specs/**"
skeeper hooks install
git add .skeeper.yml .gitignore
git commit -m "chore: bootstrap skeeper"skeeper init \
--sidecar-name myproject-specs \
--visibility private \
--namespace project \
--patterns "**/SPEC.md" \
--patterns "docs/specs/**"
skeeper hooks install
git add .skeeper.yml .gitignore
git commit -m "chore: bootstrap skeeper"skeeper init --sidecar git@github.com:user/shared-specs.git \
--namespace project \
--patterns "**/SPEC.md"
skeeper hydrateskeeper initskeeper hooks installskeeper init --sidecar git@github.com:user/shared-specs.git \
--namespace project \
--patterns "**/SPEC.md"
skeeper hydrateskeeper initskeeper hooks installskeeper pattern test "docs/adrs/**" # confirm matches
skeeper adopt --dry-run "docs/adrs/**" # preview move
skeeper adopt "docs/adrs/**" # execute
git commit -m "chore: adopt ADRs into sidecar"skeeper pattern test "docs/adrs/**" # 确认匹配的文件
skeeper adopt --dry-run "docs/adrs/**" # 预览迁移操作
skeeper adopt "docs/adrs/**" # 执行迁移
git commit -m "chore: adopt ADRs into sidecar"skeeper repair statusskeeper repair statusundefinedundefinedskeeper diff --modified
skeeper hydrate --dry-run
skeeper reconcile --adopt-localskeeper diff --modified
skeeper hydrate --dry-run
skeeper reconcile --adopt-local
Use `reconcile --adopt-local` when local edits are the intended spec state. Use `reconcile --prune-local` when local-only files should be preserved in `.git/skeeper/rescue/<id>/` before restoring the locked sidecar content. Use `--merge`, `--ours`, or `--theirs` only when that conflict policy is explicit.
当本地编辑是预期的规范状态时,使用`reconcile --adopt-local`。当本地独有文件需要在恢复锁定的侧仓内容前保留到`.git/skeeper/rescue/<id>/`目录时,使用`reconcile --prune-local`。仅当冲突策略明确时,才使用`--merge`、`--ours`或`--theirs`。skeeper update
skeeper update --reconcile keep-localupdateskeeper.lockfsckskeeper update
skeeper update --reconcile keep-localupdateskeeper.lockfsckskeeper.lockskeeper.lockgit merge feature/auth-redesigngit merge feature/auth-redesignundefinedundefinedname: skeeper
on:
pull_request:
push:
branches: [main]
jobs:
verify:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: compozy/skeeper@v0.2.1
with:
args: |
verify
--json
ssh-private-key: ${{ secrets.SKEEPER_SSH_PRIVATE_KEY }}ssh-private-keyGIT_SSH_COMMANDtokenGIT_CONFIG_GLOBAL::add-mask::name: skeeper
on:
pull_request:
push:
branches: [main]
jobs:
verify:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: compozy/skeeper@v0.2.1
with:
args: |
verify
--json
ssh-private-key: ${{ secrets.SKEEPER_SSH_PRIVATE_KEY }}ssh-private-keyGIT_SSH_COMMANDtokenGIT_CONFIG_GLOBAL::add-mask::SKEEPER_SKIP=1SKEEPER_SKIP=1git commit --no-verifySKEEPER_SKIP=1skeeper.lockskeeper syncskeeper merge-driverskeeper repair abortskeeper repair resumeSKEEPER_SKIP=1skeeper syncstatusfsckpre-pushpatternsexcludeskeeper.lockskeeper verifyskeeper hydrate--latestskeeper logskeeper diff--adopt-local--prune-local--merge--ours--theirsgit commit --no-verifySKEEPER_SKIP=1skeeper.lockskeeper syncskeeper merge-driverskeeper repair abortskeeper repair resumeSKEEPER_SKIP=1skeeper syncstatusfsckpre-pushpatternsexcludeskeeper.lockskeeper verifyskeeper hydrate--latestskeeper logskeeper diff--adopt-local--prune-local--merge--ours--theirsreferences/cli-reference.mdreferences/config-reference.md.skeeper.ymlreferences/cli-reference.mdreferences/config-reference.md.skeeper.yml