peertable 0.4.28 → 0.4.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/room/client.mjs +1 -1
- package/skill/SKILL.md +7 -3
- package/skill/templates/done.sh +28 -3
- package/skill/templates/member.md +4 -3
- package/skill/templates/parent.md +2 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "peertable",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.29",
|
|
4
4
|
"description": "A round table of peer agents. No orchestrator at the head. Turn Claude Code, Codex, and Grok sessions into a team of equal, long-lived peers.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
package/room/client.mjs
CHANGED
|
@@ -13,7 +13,7 @@ import { findModelsDoc, resolveSeatIdentity } from '../skill/scripts/resolve-sea
|
|
|
13
13
|
|
|
14
14
|
// client.mjs 側のハードコード版数。package.json の version と一致していることを
|
|
15
15
|
// diagnostics の version_consistency が見る(2 つの版数源の drift 検出。決定45)
|
|
16
|
-
const MCP_VERSION = '0.4.
|
|
16
|
+
const MCP_VERSION = '0.4.29'
|
|
17
17
|
const PKG_ROOT = join(dirname(fileURLToPath(import.meta.url)), '..')
|
|
18
18
|
|
|
19
19
|
const USAGE = `usage:
|
package/skill/SKILL.md
CHANGED
|
@@ -175,8 +175,10 @@ witness をどう生成するかは**対象 project 側の作法に従う**(La
|
|
|
175
175
|
room で一声かけて各自の作業中変更を対象限定 commit してもらう必要がある。
|
|
176
176
|
- **隔離実行層へ載せる前提**: companion planでも、current HEADへ束縛された
|
|
177
177
|
witness と `independence compile` が揃ってから `lattice run intake` を実行する。
|
|
178
|
-
|
|
179
|
-
|
|
178
|
+
remaining A(まだ done でない ready / blocked)を同じ witness に含める。
|
|
179
|
+
現在の ready だけを compile すると、次の frontier の `todo start` が
|
|
180
|
+
`INDEPENDENCE_UNVERIFIED` になる。`coverage=missing` / `stale` のままではleaseを受けず、
|
|
181
|
+
canonical共有木での作業と隔離runを混同しない。
|
|
180
182
|
- **task 単位の push はできない。** git の push は連続した history の先頭までを送る操作であり、
|
|
181
183
|
途中の特定 commit だけを選んで送ることはできない(実測・結論: nagi, 2026-08-11)。ある task の
|
|
182
184
|
クローズ済み成果を push すると、**その手前にある他 task の未クローズcommitも一緒にoriginへ運ばれる**。
|
|
@@ -225,7 +227,9 @@ witness をどう生成するかは**対象 project 側の作法に従う**(La
|
|
|
225
227
|
## 運用知識(V2/V3 実測の焼き込み)
|
|
226
228
|
|
|
227
229
|
- Lattice 書込には actor 環境変数 3 点が必須
|
|
228
|
-
- `--parallel-frontier` が要るのは、**ready が複数あって誰も着手していない frontier の最初の start だけ**(無いと `PARALLEL_DISPATCH_REQUIRED / parallel_frontier_requires_declaration` で弾かれる)。ready が1件だけ、または既に誰かが着手している frontier へ後から乗る場合は素の `start` でよい。フラグが効くのは**取る task が `next_ready` に居る時だけ**で、他人が着手済みの task へ付けると `PARALLEL_DISPATCH_INVALID / parallel_frontier_not_applicable` になる——「フラグが使えない」ではなく「**その task
|
|
230
|
+
- `--parallel-frontier` が要るのは、**ready が複数あって誰も着手していない frontier の最初の start だけ**(無いと `PARALLEL_DISPATCH_REQUIRED / parallel_frontier_requires_declaration` で弾かれる)。ready が1件だけ、または既に誰かが着手している frontier へ後から乗る場合は素の `start` でよい。フラグが効くのは**取る task が `next_ready` に居る時だけ**で、他人が着手済みの task へ付けると `PARALLEL_DISPATCH_INVALID / parallel_frontier_not_applicable` になる——「フラグが使えない」ではなく「**その task はもう空いていない**」の意味である。記録があるのに対象工程が未宣言・失効なら `todo start` は `INDEPENDENCE_UNVERIFIED` で拒否する(Lattice ADR 0182)。記録が無い plan の start は従来どおり助言だけ
|
|
231
|
+
- **`done.sh` は feat SHA が `origin/main` の祖先になるまで `LANDING_NOT_ON_MAIN` で止まる。** 親が着地してから監査担当が再実行する。lattice run receipt の未着地は別軸で、警告のまま
|
|
232
|
+
- **independence compile は remaining A を含める。** 現在の ready だけを compile すると、次の frontier の start が拒否される。`next_ready` が witness に無い compile 自体も `INDEPENDENCE_READY_UNDECLARED` で拒否する
|
|
229
233
|
- 同時書込は `STORE_WRITE_CONFLICT` 等で明示的に負ける。1〜2 秒待って再実行すれば通る(正常系)
|
|
230
234
|
- evidence は記述子 JSON。記述子ファイル自体も repo 内相対パスに置く(repo 外絶対パスは INVALID_ARGUMENTS)。`.team/scripts/done.sh` が正規経路。証跡の置き場は **`evidence/<plan_key>/<task_id>.md`**——task_id は campaign を跨いで再利用されるので、平置きにすると前の campaign の監査証跡を上書きで消す(2026-08-08 実測)
|
|
231
235
|
- **外部ペイン(決定53)は Lattice 0.50.0 以降が要る。** それ以前の Lattice に `external_pane` 入りの `project.json` を差すと、identity 検証が完全一致キーで落ちて `lattice todo status` ごと死ぬ(`PROJECT_IDENTITY_INVALID / identity_schema_invalid`・0.49.0 で実測)。工程正本が読めなくなる=卓が止まるので、Lattice が古い環境では Lattice 併用 setup を走らせない
|
package/skill/templates/done.sh
CHANGED
|
@@ -35,8 +35,9 @@ usage: done.sh <task_id> [--plan <plan_key>] [--evidence-from <隔離worktreeの
|
|
|
35
35
|
evidence/<plan>/<task>.md を commit 済みにして done.sh <task_id> を実行する。
|
|
36
36
|
wrapper が証跡から記述子を生成し、lattice todo doneで同じ本文を最終試験結果として canonical store へ記録する。
|
|
37
37
|
pull run の worktree で作業した場合だけ --evidence-from に同じrepoの絶対pathを渡す。
|
|
38
|
-
この script は監査担当が打つ。
|
|
39
|
-
|
|
38
|
+
この script は監査担当が打つ。feat SHA が origin/main の祖先になってから打つ。
|
|
39
|
+
accept は intake 席が todo done の後に打つ(engine 正順)。
|
|
40
|
+
未accept と lattice run receipt の未着地は警告だけで、done を止めない。
|
|
40
41
|
USAGE
|
|
41
42
|
}
|
|
42
43
|
|
|
@@ -240,9 +241,33 @@ case "$task_status" in
|
|
|
240
241
|
*) echo "ERROR: 完了処理を続けられない: ToDoが完了可能状態でない: $task_status" >&2; exit 1 ;;
|
|
241
242
|
esac
|
|
242
243
|
|
|
244
|
+
# feat SHA が origin/main の祖先になるまで todo done を打たない。
|
|
245
|
+
# 監査担当の done は着地後。親が先に origin/main へ乗せる。
|
|
246
|
+
# --evidence-from があるときは隔離 worktree の HEAD を feat とする。
|
|
247
|
+
feat_dir="."
|
|
248
|
+
if [ -n "$evidence_from" ]; then
|
|
249
|
+
feat_dir=$(dirname "$evidence_from")
|
|
250
|
+
fi
|
|
251
|
+
feat_sha=$(git -C "$feat_dir" rev-parse HEAD) || {
|
|
252
|
+
echo "ERROR: LANDING_HEAD_UNRESOLVED: feat HEAD を読めない" >&2
|
|
253
|
+
exit 1
|
|
254
|
+
}
|
|
255
|
+
if ! git fetch -q origin; then
|
|
256
|
+
echo "ERROR: LANDING_FETCH_FAILED: origin を fetch できない。done は打たない" >&2
|
|
257
|
+
exit 1
|
|
258
|
+
fi
|
|
259
|
+
if ! git rev-parse --verify --quiet origin/main >/dev/null; then
|
|
260
|
+
echo "ERROR: LANDING_ORIGIN_MISSING: origin/main が無い。done は打たない" >&2
|
|
261
|
+
exit 1
|
|
262
|
+
fi
|
|
263
|
+
if ! git merge-base --is-ancestor "$feat_sha" origin/main; then
|
|
264
|
+
echo "ERROR: LANDING_NOT_ON_MAIN: ${feat_sha} は origin/main の祖先ではない。親が着地してから done.sh を再実行すること" >&2
|
|
265
|
+
exit 1
|
|
266
|
+
fi
|
|
267
|
+
|
|
243
268
|
# **done と accept は別軸。** engine は todo done の後にだけ accept できる。
|
|
244
269
|
# 監査担当が done.sh で閉じ、intake 席が accept する。未 accept を done の拒否条件にすると循環する。
|
|
245
|
-
# 読めない状態は成功へ倒さない。未accept
|
|
270
|
+
# 読めない状態は成功へ倒さない。未accept・run receipt 未着地は警告。
|
|
246
271
|
# **実行層に載っていない task は素通しする**——pull run の利用は任意で、載っていない卓を止めない。
|
|
247
272
|
gate_runs=$("$done_gate_cli" run list --json 2>&1) || {
|
|
248
273
|
echo "ERROR: receipt の状態を読めない(run list が失敗): $gate_runs" >&2; exit 1;
|
|
@@ -21,12 +21,12 @@
|
|
|
21
21
|
|
|
22
22
|
1. `lattice todo status --json` で ready なタスクを見る。{{CLAIM_SCOPE}}
|
|
23
23
|
2. 憲章の手順で `post(to: "all", message: "[claim] <タスク>")` を一度だけ送る。**この `[claim]` が唯一の着手通知である。別の `[工程着手]` や自動着手通知は送らない。** `[claim]` は独立した1発言で出し、完了報告や他タスクの話と同じ発言に畳まない
|
|
24
|
-
3. `lattice todo start --plan {{PLAN_KEY}} --task <id>` で着手を記録する。**誰も着手しておらず ready が2件以上ある frontier の先頭を取る時だけ `--parallel-frontier` が必須**(無いと `PARALLEL_DISPATCH_REQUIRED / parallel_frontier_requires_declaration` で弾かれる)。ready が1件だけ、または既に誰かが着手している frontier へ後から乗る時は素の start
|
|
24
|
+
3. `lattice todo start --plan {{PLAN_KEY}} --task <id>` で着手を記録する。**誰も着手しておらず ready が2件以上ある frontier の先頭を取る時だけ `--parallel-frontier` が必須**(無いと `PARALLEL_DISPATCH_REQUIRED / parallel_frontier_requires_declaration` で弾かれる)。ready が1件だけ、または既に誰かが着手している frontier へ後から乗る時は素の start でよい。**`INDEPENDENCE_UNVERIFIED` で落ちたら実装に入らない。** 記録があるのにこの工程が未宣言・失効なので、親が remaining A を witness に足して compile するまで待つ
|
|
25
25
|
4. 実装し、自ら必要な試験と自己監査を行う。工程を次に進めてよい水準まで自分の責任で完成させる。着手後に先行工程由来の不具合が判明しても、先行工程をreopenせず、前担当者へ戻さず、修正工程も追加しない。現在の工程を成立させる修正として自ら直し、最終試験結果へ含める。誰かに用事がある時はその相手へDMし、誰に聞けばよいか分からない時は `post(to: "all")` で聞く
|
|
26
26
|
5. 証跡ファイル `evidence/{{PLAN_KEY}}/<task_id>.md` に、最終的な試験内容と試験結果を含めて「何を作り、どう確認したか」を書き、変更ファイルと証跡だけをcommitする
|
|
27
27
|
6. その証跡と同じ最終試験内容・結果を監査担当へ渡す。作業者自身は `.team/scripts/done.sh` や `lattice todo done` を実行しない
|
|
28
28
|
7. 監査担当として結果を受け取った場合は、提出された試験内容と試験結果が元PLAN・工程正本・受入条件に照らして妥当か判断する。試験を再実行せず、個人の思想や計画外の改善を完了条件へ加えない
|
|
29
|
-
8. 妥当なら監査担当が `.team/scripts/done.sh <task_id> --plan <plan_key>`
|
|
29
|
+
8. 妥当なら監査担当が `.team/scripts/done.sh <task_id> --plan <plan_key>` で工程をクローズする。feat SHA が `origin/main` の祖先になるまで `LANDING_NOT_ON_MAIN` で止まる。その時は `[監査OK] 着地してください feat=<sha>` を親へ送り、着地後に再実行する。`done.sh`は証跡と同じ本文をLatticeの`test_result`へ記録する。doneを読返してから `post(to: "all", message: "次の工程に着手してください")` とだけ指示し、具体的な次工程は指示しない
|
|
30
30
|
9. 不合格なら、現在モデルでの修正機会は1回だけとする。再び不合格になったら親へmodel変更を依頼し、`Luna → Terra → Sol`の順で一段昇格する。自分で席設定を変えない
|
|
31
31
|
10. 作業者は監査担当によるクローズを確認し、工程正本から次のreadyを選ぶ
|
|
32
32
|
11. **claimできるToDoが無いなら仕事を発明しない(決定68)。** 依頼されていない監査・他席への状況照会・正典の自主レビューを暇つぶしに始めない。縮退の打診が来たらWIP棚卸しを正直に返す
|
|
@@ -106,7 +106,8 @@ lattice run intake --run .lattice/runs/<run-id> --task <id>
|
|
|
106
106
|
**worktree に commit した証跡は canonical から読める**(複製は要らない)。
|
|
107
107
|
装置が worktree の base→HEAD を独立に観測して受理する。
|
|
108
108
|
最後の landing-only 呼び出しは、accept 済み receipt が canonical default branch へ未着地なら
|
|
109
|
-
`未着地 N
|
|
109
|
+
`未着地 N本`を出す。これは lattice run receipt の軸で、feat SHA の `LANDING_NOT_ON_MAIN`
|
|
110
|
+
とは別である。receipt 側は警告だけで処理は止めない。
|
|
110
111
|
|
|
111
112
|
**成果の正本はあなたの commit ではなく、Lattice が撮った observed diff である。** 受理されるのはその観測であって、commit そのものではない。
|
|
112
113
|
|
|
@@ -20,6 +20,8 @@
|
|
|
20
20
|
|
|
21
21
|
- 着卓(member 登録)と席数制御(決定68の運用側: ready+active実装ToDo数に合わせて起こす/畳む)
|
|
22
22
|
- 作業者から監査担当への最終試験結果提出と、監査担当による工程クローズが正本へ記録されたことの観測
|
|
23
|
+
- 監査OKの feat SHA を `origin/main` へ着地させる。`done.sh` は着地後にしか通らない
|
|
24
|
+
- remaining A(まだ done でない ready / blocked)を witness に含めて `independence compile` する。現在の ready だけを compile すると、次の frontier の `todo start` が `INDEPENDENCE_UNVERIFIED` になる
|
|
23
25
|
- 承認 gate・オーナーとの接点、裁定依頼の運搬(自分で判断せずオーナー宛の議題として運ぶ)
|
|
24
26
|
- model / effort 変更依頼への対応(本人の自然文を親が判断し、確定したtargetだけを
|
|
25
27
|
`change-seat.sh`へ渡す。定型文への言い直しや完全一致の再送は求めない)
|