peertable 0.4.28 → 0.4.30
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 +3 -1
- package/skill/SKILL.md +8 -3
- package/skill/scripts/setup.sh +1 -0
- package/skill/scripts/upgrade-team-assets.sh +1 -0
- package/skill/templates/done.sh +86 -5
- package/skill/templates/independence-refresh.sh +23 -0
- package/skill/templates/member.md +5 -4
- package/skill/templates/parent.md +1 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "peertable",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.30",
|
|
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.30'
|
|
17
17
|
const PKG_ROOT = join(dirname(fileURLToPath(import.meta.url)), '..')
|
|
18
18
|
|
|
19
19
|
const USAGE = `usage:
|
|
@@ -363,6 +363,8 @@ async function runDiagnostics(asJson) {
|
|
|
363
363
|
'scripts/archive-room-log.py',
|
|
364
364
|
'templates/gen-plan.mjs',
|
|
365
365
|
'templates/done.sh',
|
|
366
|
+
'templates/independence-refresh.sh',
|
|
367
|
+
'templates/parent.md',
|
|
366
368
|
'templates/charter.md',
|
|
367
369
|
'templates/member.md',
|
|
368
370
|
'templates/member-standalone.md',
|
package/skill/SKILL.md
CHANGED
|
@@ -175,8 +175,11 @@ 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` になる。stale なら席が compile し直す。親は compile しない。
|
|
181
|
+
`coverage=missing` / `stale` のままではleaseを受けず、
|
|
182
|
+
canonical共有木での作業と隔離runを混同しない。
|
|
180
183
|
- **task 単位の push はできない。** git の push は連続した history の先頭までを送る操作であり、
|
|
181
184
|
途中の特定 commit だけを選んで送ることはできない(実測・結論: nagi, 2026-08-11)。ある task の
|
|
182
185
|
クローズ済み成果を push すると、**その手前にある他 task の未クローズcommitも一緒にoriginへ運ばれる**。
|
|
@@ -225,7 +228,9 @@ witness をどう生成するかは**対象 project 側の作法に従う**(La
|
|
|
225
228
|
## 運用知識(V2/V3 実測の焼き込み)
|
|
226
229
|
|
|
227
230
|
- 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
|
|
231
|
+
- `--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 は従来どおり助言だけ
|
|
232
|
+
- **`done.sh` は feat SHA が `origin/main` の祖先でなければ canonical main へ merge して push する。** 親は着地しない。続けて remaining の independence を compile してから戻る。lattice run receipt の未着地は別軸で、警告のまま
|
|
233
|
+
- **independence compile は remaining A を含める。** 現在の ready だけを compile すると、次の frontier の start が拒否される。`next_ready` が witness に無い compile 自体も `INDEPENDENCE_READY_UNDECLARED` で拒否する。stale なら席が `.team/scripts/independence-refresh.sh` を打つ。親は compile しない
|
|
229
234
|
- 同時書込は `STORE_WRITE_CONFLICT` 等で明示的に負ける。1〜2 秒待って再実行すれば通る(正常系)
|
|
230
235
|
- evidence は記述子 JSON。記述子ファイル自体も repo 内相対パスに置く(repo 外絶対パスは INVALID_ARGUMENTS)。`.team/scripts/done.sh` が正規経路。証跡の置き場は **`evidence/<plan_key>/<task_id>.md`**——task_id は campaign を跨いで再利用されるので、平置きにすると前の campaign の監査証跡を上書きで消す(2026-08-08 実測)
|
|
231
236
|
- **外部ペイン(決定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/scripts/setup.sh
CHANGED
|
@@ -117,6 +117,7 @@ else
|
|
|
117
117
|
fi
|
|
118
118
|
sed -e "s|{{PLAN_KEY}}|$plan|g" -e "s|{{CLAIM_SCOPE}}|$scope|g" "$tpl/member.md" > "$tdir/roles/member.md"
|
|
119
119
|
cp "$tpl/done.sh" "$tdir/scripts/done.sh" && chmod +x "$tdir/scripts/done.sh"
|
|
120
|
+
cp "$tpl/independence-refresh.sh" "$tdir/scripts/independence-refresh.sh" && chmod +x "$tdir/scripts/independence-refresh.sh"
|
|
120
121
|
fi
|
|
121
122
|
# room MCP 定義は project root の .mcp.json が正(channels は --mcp-config を解決しない。決定44)
|
|
122
123
|
added_root_mcp=false
|
|
@@ -161,6 +161,7 @@ function main() {
|
|
|
161
161
|
? [
|
|
162
162
|
['.team/roles/member.md', 'skill/templates/member.md', 0o644],
|
|
163
163
|
['.team/scripts/done.sh', 'skill/templates/done.sh', 0o755],
|
|
164
|
+
['.team/scripts/independence-refresh.sh', 'skill/templates/independence-refresh.sh', 0o755],
|
|
164
165
|
]
|
|
165
166
|
: [['.team/roles/member.md', 'skill/templates/member-standalone.md', 0o644]]
|
|
166
167
|
const definitions = [...common, ...modeSpecific]
|
package/skill/templates/done.sh
CHANGED
|
@@ -35,8 +35,10 @@ 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
|
+
この script が canonical main へ merge して push する。親は着地しない。
|
|
40
|
+
accept は intake 席が todo done の後に打つ(engine 正順)。
|
|
41
|
+
未accept と lattice run receipt の未着地は警告だけで、done を止めない。
|
|
40
42
|
USAGE
|
|
41
43
|
}
|
|
42
44
|
|
|
@@ -240,9 +242,58 @@ case "$task_status" in
|
|
|
240
242
|
*) echo "ERROR: 完了処理を続けられない: ToDoが完了可能状態でない: $task_status" >&2; exit 1 ;;
|
|
241
243
|
esac
|
|
242
244
|
|
|
245
|
+
# feat SHA が origin/main の祖先になるまで todo done を打たない。
|
|
246
|
+
# 未着地ならこの script が canonical main へ載せて push する。親は呼ばない。
|
|
247
|
+
# --evidence-from があるときは隔離 worktree の HEAD を feat とする。
|
|
248
|
+
feat_dir="."
|
|
249
|
+
if [ -n "$evidence_from" ]; then
|
|
250
|
+
feat_dir=$(dirname "$evidence_from")
|
|
251
|
+
fi
|
|
252
|
+
feat_sha=$(git -C "$feat_dir" rev-parse HEAD) || {
|
|
253
|
+
echo "ERROR: LANDING_HEAD_UNRESOLVED: feat HEAD を読めない" >&2
|
|
254
|
+
exit 1
|
|
255
|
+
}
|
|
256
|
+
if ! git fetch -q origin; then
|
|
257
|
+
echo "ERROR: LANDING_FETCH_FAILED: origin を fetch できない。done は打たない" >&2
|
|
258
|
+
exit 1
|
|
259
|
+
fi
|
|
260
|
+
if ! git rev-parse --verify --quiet origin/main >/dev/null; then
|
|
261
|
+
echo "ERROR: LANDING_ORIGIN_MISSING: origin/main が無い。done は打たない" >&2
|
|
262
|
+
exit 1
|
|
263
|
+
fi
|
|
264
|
+
current_branch=$(git rev-parse --abbrev-ref HEAD) || {
|
|
265
|
+
echo "ERROR: LANDING_HEAD_UNRESOLVED: canonical の branch を読めない" >&2
|
|
266
|
+
exit 1
|
|
267
|
+
}
|
|
268
|
+
if [ "$current_branch" != main ]; then
|
|
269
|
+
echo "ERROR: LANDING_NOT_ON_MAIN_BRANCH: canonical HEAD が main ではない(${current_branch})。done は打たない" >&2
|
|
270
|
+
exit 1
|
|
271
|
+
fi
|
|
272
|
+
if ! git merge-base --is-ancestor "$feat_sha" origin/main; then
|
|
273
|
+
if [ "$(git rev-parse HEAD)" != "$feat_sha" ]; then
|
|
274
|
+
if ! git merge --no-edit -m "着地: ${t} feat=${feat_sha}" "$feat_sha"; then
|
|
275
|
+
echo "ERROR: LANDING_MERGE_FAILED: ${feat_sha} を main へ merge できない。done は打たない" >&2
|
|
276
|
+
exit 1
|
|
277
|
+
fi
|
|
278
|
+
fi
|
|
279
|
+
if ! git push -q origin main; then
|
|
280
|
+
echo "ERROR: LANDING_PUSH_FAILED: origin/main へ push できない。done は打たない" >&2
|
|
281
|
+
exit 1
|
|
282
|
+
fi
|
|
283
|
+
if ! git fetch -q origin; then
|
|
284
|
+
echo "ERROR: LANDING_FETCH_FAILED: 着地後の origin を fetch できない。done は打たない" >&2
|
|
285
|
+
exit 1
|
|
286
|
+
fi
|
|
287
|
+
if ! git merge-base --is-ancestor "$feat_sha" origin/main; then
|
|
288
|
+
echo "ERROR: LANDING_NOT_ON_MAIN: ${feat_sha} を origin/main へ載せられなかった。done は打たない" >&2
|
|
289
|
+
exit 1
|
|
290
|
+
fi
|
|
291
|
+
echo "着地: ${feat_sha} を origin/main の祖先にした" >&2
|
|
292
|
+
fi
|
|
293
|
+
|
|
243
294
|
# **done と accept は別軸。** engine は todo done の後にだけ accept できる。
|
|
244
295
|
# 監査担当が done.sh で閉じ、intake 席が accept する。未 accept を done の拒否条件にすると循環する。
|
|
245
|
-
# 読めない状態は成功へ倒さない。未accept
|
|
296
|
+
# 読めない状態は成功へ倒さない。未accept・run receipt 未着地は警告。
|
|
246
297
|
# **実行層に載っていない task は素通しする**——pull run の利用は任意で、載っていない卓を止めない。
|
|
247
298
|
gate_runs=$("$done_gate_cli" run list --json 2>&1) || {
|
|
248
299
|
echo "ERROR: receipt の状態を読めない(run list が失敗): $gate_runs" >&2; exit 1;
|
|
@@ -361,12 +412,42 @@ task_status=$(task_field status 2>&1) || {
|
|
|
361
412
|
exit 1
|
|
362
413
|
}
|
|
363
414
|
|
|
364
|
-
#
|
|
415
|
+
# remaining の並列記録をこの場で更新する。親は compile しない。
|
|
416
|
+
# 次の工程の start / intake より前に終わるので、記録書き換え中の hold を作らない。
|
|
417
|
+
witness=".lattice/todo/witness/${plan}.json"
|
|
418
|
+
if [ -f "$witness" ]; then
|
|
419
|
+
compile_out=""
|
|
420
|
+
compile_rc=0
|
|
421
|
+
compile_out=$("$done_gate_cli" todo independence compile --plan "$plan" --input "$witness" 2>&1) || compile_rc=$?
|
|
422
|
+
printf '%s\n' "$compile_out"
|
|
423
|
+
if [ "$compile_rc" != 0 ]; then
|
|
424
|
+
echo "ERROR: INDEPENDENCE_COMPILE_FAILED: remaining の並列記録を更新できない。次の工程を始めるな" >&2
|
|
425
|
+
exit 1
|
|
426
|
+
fi
|
|
427
|
+
independence_ref=".lattice/todo/plans/${plan}/v1/independence.json"
|
|
428
|
+
git add -- "$witness"
|
|
429
|
+
[ -f "$independence_ref" ] && git add -- "$independence_ref"
|
|
430
|
+
if ! git diff --cached --quiet -- "$witness" "$independence_ref" 2>/dev/null; then
|
|
431
|
+
compile_msg=$(mktemp "${TMPDIR:-/tmp}/peertable-independence.XXXXXX")
|
|
432
|
+
printf 'Lattice independence を再 compile する plan=%s\n' "$plan" > "$compile_msg"
|
|
433
|
+
if ! git commit -q -F "$compile_msg" -- "$witness" "$independence_ref"; then
|
|
434
|
+
rm -f "$compile_msg"
|
|
435
|
+
echo "ERROR: INDEPENDENCE_COMPILE_FAILED: 更新した並列記録を commit できない。次の工程を始めるな" >&2
|
|
436
|
+
exit 1
|
|
437
|
+
fi
|
|
438
|
+
rm -f "$compile_msg"
|
|
439
|
+
fi
|
|
440
|
+
fi
|
|
441
|
+
|
|
442
|
+
# feat 着地と store / independence の commit を origin へ載せる。親は push しない。
|
|
365
443
|
upstream_ref=$(git rev-parse --abbrev-ref --symbolic-full-name '@{u}' 2>/dev/null || true)
|
|
366
444
|
if [ -n "$upstream_ref" ]; then
|
|
367
445
|
unpushed=$(git rev-list --count "${upstream_ref}..HEAD" 2>/dev/null || true)
|
|
368
446
|
if [ -n "$unpushed" ] && [ "$unpushed" != 0 ]; then
|
|
369
|
-
|
|
447
|
+
if ! git push -q origin HEAD; then
|
|
448
|
+
echo "ERROR: LANDING_PUSH_FAILED: 未push ${unpushed}本を origin へ載せられない" >&2
|
|
449
|
+
exit 1
|
|
450
|
+
fi
|
|
370
451
|
fi
|
|
371
452
|
fi
|
|
372
453
|
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# remaining の並列記録を、今の HEAD で compile し直す。親は呼ばない。
|
|
3
|
+
# usage: independence-refresh.sh <plan_key>
|
|
4
|
+
set -e
|
|
5
|
+
plan="${1:-${PEERTABLE_PLAN:-}}"
|
|
6
|
+
[ -n "$plan" ] || {
|
|
7
|
+
echo "usage: independence-refresh.sh <plan_key>" >&2
|
|
8
|
+
exit 2
|
|
9
|
+
}
|
|
10
|
+
witness=".lattice/todo/witness/${plan}.json"
|
|
11
|
+
[ -f "$witness" ] || {
|
|
12
|
+
echo "ERROR: witness が無い: ${witness}。remaining A を witness に書いてから compile する" >&2
|
|
13
|
+
exit 1
|
|
14
|
+
}
|
|
15
|
+
lattice_cli="${LATTICE_CLI:-lattice}"
|
|
16
|
+
compile_out=""
|
|
17
|
+
compile_rc=0
|
|
18
|
+
compile_out=$("$lattice_cli" todo independence compile --plan "$plan" --input "$witness" 2>&1) || compile_rc=$?
|
|
19
|
+
printf '%s\n' "$compile_out"
|
|
20
|
+
[ "$compile_rc" -eq 0 ] || {
|
|
21
|
+
echo "ERROR: INDEPENDENCE_COMPILE_FAILED: 自分で witness を直して再実行する。親は呼ばない" >&2
|
|
22
|
+
exit 1
|
|
23
|
+
}
|
|
@@ -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` で落ちたら実装に入らない。** 記録があるのにこの工程が未宣言・失効なので、親を待たない。canonical の cwd で `.team/scripts/independence-refresh.sh {{PLAN_KEY}}` を打ち、remaining A が witness に無ければ自分で足してから再 compile し、もう一度 `todo start` する
|
|
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 は `done.sh` が canonical main へ merge して push する。親へ着地を依頼しない。`done.sh` は証跡と同じ本文を Lattice の `test_result` へ記録し、remaining の並列記録も更新してから戻る。done を読返してから `post(to: "all", message: "次の工程に着手してください")` とだけ指示し、具体的な次工程は指示しない
|
|
30
30
|
9. 不合格なら、現在モデルでの修正機会は1回だけとする。再び不合格になったら親へmodel変更を依頼し、`Luna → Terra → Sol`の順で一段昇格する。自分で席設定を変えない
|
|
31
31
|
10. 作業者は監査担当によるクローズを確認し、工程正本から次のreadyを選ぶ
|
|
32
32
|
11. **claimできるToDoが無いなら仕事を発明しない(決定68)。** 依頼されていない監査・他席への状況照会・正典の自主レビューを暇つぶしに始めない。縮退の打診が来たらWIP棚卸しを正直に返す
|
|
@@ -73,7 +73,7 @@ lattice run intake --run .lattice/runs/<run-id> --task <id>
|
|
|
73
73
|
空のまま**である。作った席が他の席の仕事を決めたことにはならない。
|
|
74
74
|
|
|
75
75
|
1. **`todo start` を先に済ませてから intake する。** 装置は Todo 正本の start event へ束縛するので、start していない task は intake できない。**逆順にしない。**
|
|
76
|
-
2. **`intervention.state` を読む。** `none` なら worktree
|
|
76
|
+
2. **`intervention.state` を読む。** `none` なら worktree を使ってそのまま進める。`hold` の理由が `record_stale` または `artifact_binding_mismatch`(並列記録の失効・再 compile との交差)なら、親へ退席も待ちも出さない。未受理 intake を解放し、canonical で `.team/scripts/independence-refresh.sh {{PLAN_KEY}}` を通してから intake を打ち直す。**他の着手済み task と同じ書き込み資源でぶつかった hold** だけが退席対象である。その場合、新しく起きた席または次工程を探した席で既存WIPが無ければ、競合理由と未着手を room へ一度記録し、未受理 intake を解放して `leave-seat.sh` で直ちに退席する。既存WIPがある席だけは工程正本へhandoffを残してから畳む。**hold を無視して進めず、競合解除 poll のために席を温存しない。**
|
|
77
77
|
3. **worktree を受け取ったら、自分の pid を装置へ渡す(attach)。** これをしないと、装置は競合時に「留まれ」と言うことはできても、実際に止めることができない(協調 hold のまま)。
|
|
78
78
|
```
|
|
79
79
|
lattice run intake attach --run <ref> --task <id> --input <file>
|
|
@@ -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 を `done.sh` が origin/main
|
|
110
|
+
へ載せる着地とは別である。receipt 側は警告だけで処理は止めない。
|
|
110
111
|
|
|
111
112
|
**成果の正本はあなたの commit ではなく、Lattice が撮った observed diff である。** 受理されるのはその観測であって、commit そのものではない。
|
|
112
113
|
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
|
|
21
21
|
- 着卓(member 登録)と席数制御(決定68の運用側: ready+active実装ToDo数に合わせて起こす/畳む)
|
|
22
22
|
- 作業者から監査担当への最終試験結果提出と、監査担当による工程クローズが正本へ記録されたことの観測
|
|
23
|
+
- 着地と independence compile は席の仕事である。親は代行しない
|
|
23
24
|
- 承認 gate・オーナーとの接点、裁定依頼の運搬(自分で判断せずオーナー宛の議題として運ぶ)
|
|
24
25
|
- model / effort 変更依頼への対応(本人の自然文を親が判断し、確定したtargetだけを
|
|
25
26
|
`change-seat.sh`へ渡す。定型文への言い直しや完全一致の再送は求めない)
|