threejs-to-obj-scope-binder
Use only when `workflow/threejs-to-obj-board.json` explicitly selects threejs-to-obj-scope-binder and names one active task item. Bind exactly one epoch-scoped mutation lease; not a startup, discovery
Files1
View on GitHubSKILL.mddocs/references/work-loop/chains/threejs-to-obj/skills/threejs-to-obj-scope-binder/SKILL.md
GitHubBoard-v2 Scope lease
- Activate. Use this skill only after a fresh read of
workflow/threejs-to-obj-board.jsonshows both active fields for it, or exacthandoff_to=threejs-to-obj-scope-binderplus its required_handoff_sequence; that fallback permits only the immediate consume-and-bind activation. A prior read, broad task request, or remembered plan is never authorization.workflow/threejs-to-obj-board.jsonis persistent: never delete, rename, recreate, or clean it up. - Bootstrap or consume. Immediately after this
SKILL.md, make one standalone relative-pathsed -nread ofworkflow/threejs-to-obj-board.json. Do not runrg,rg --files,ls, a glob,pwd,find,mkdir,test,if,&&, a wrapper, a task-file read, a plan, or a later SKILL first. If it is absent, this non-entry role has no authority: do not create it or take a task action. If the fresh board selects this role, do not make a standalone consume normalization: its exact next tool call is block 4’s atomic consume-and-bind handoff, with no task action. - One role action. The fresh board read already exposes the one current
next_work_packetforactive_catalog_item. Do not perform a standalone binder consume, task action, packet-local read, or lease-only write. The exact next action is block 4’s one consume-and-bind-and-activate patch: it copies the packet’s exact selected fields into one epoch-matching authorization_lease and transfers control to continuation. The packet, not the broad user task, is the sole work order; do not reconstruct a card, future id, future anchor, task plan, route table, or task file. - Atomic consume-and-bind handoff. The fresh board read locks its exact next tool action to one board-only
Update Fileas one board-only local diff: retain every unspecified top-level key unchanged, and never duplicate, rename, delete, or recreate a key. In that same patch consume onlythreejs-to-obj-entry-selectorpredecessor handoff fields; Write exactly one epoch-matchingauthorization_leasecopied directly from the currentnext_work_packet, including itslease_scope,mutation, and compactscoped_checkintent; retain itscheckpoint_generationand exactwork_anchor; setmutation_budget=1andauthorization_scope=current_packet_only, treat that anchor asallowed_work_anchor, and do not serialize or name another catalog id or anchor. Do not look up or reconstruct a matching route card. Incrementstage_epochandrecord_generation; keepsummary_permitted=false,handoff_complete=false, andresponse_permitted=false; setactive_stage_id=threejs-to-obj-authorized-continuation,active_skill_name=threejs-to-obj-authorized-continuation, andhandoff_to=threejs-to-obj-authorized-continuationexactly; write onlythreejs-to-obj-authorized-continuationsuccessor_rebuild withsuccessor_skill_read_required=true,successor_board_read_required=true, andresponse_permitted=false; and storerequired_next_commandas the exact block-6 marker plusrequired_handoff_sequence=emit-marker,read-successor-skill,read-board,consume-stub. This is the only binder board mutation before the marker: do not leave a consume-only, lease-only, or current-role intermediate state.
Canonical active-field rule. In the atomic patch, replace the existing top-level active_stage_id and active_skill_name entries in place with threejs-to-obj-authorized-continuation; do not append a second pair at the end of the board. The completed patch must contain each active field and handoff_to exactly once. If a stale predecessor pair remains despite that rule, only the successor's mandatory consume in block 2 may remove it; it is never task authority.
5. No intermediate state. The atomic patch is already the continuation handoff. No task read, task action, catalog selection, planning, marker, or response may occur before the stored marker in block 6.
6. Emit the literal marker. The next tool call executes the stored standalone printf or echo marker. Its marker fields are stage_id=threejs-to-obj-scope-binder, record_generation=, validates_successor=threejs-to-obj-authorized-continuation, validation_status=, rebuild_required=true, handoff_to=threejs-to-obj-authorized-continuation, board_path=workflow/threejs-to-obj-board.json, board_epoch=, continuation_required=true, catalog_item=, handoff_complete=false, response_permitted=false, and next_action=read-threejs-to-obj-authorized-continuation-skill; stage_id is this skill name, never active_catalog_item, and board_path has no /root/ or other workspace prefix. Copy only the just-written decimal record_generation, decimal board_epoch, validation status, and current catalog item into the remaining fields. Use one physical source line with ASCII spaces and one trailing ; no placeholders, shell variables, or combined command.
7. Activate the successor. The marker is evidence only. This threejs-to-obj-scope-binder predecessor remains responsible and its handoff is incomplete until its exact next three independent tool actions finish in order: read threejs-to-obj-authorized-continuation/SKILL.md from the exact installed root used to read this SKILL; make the successor standalone relative-path board read; then let only threejs-to-obj-authorized-continuation consume its rebuild stub in one board-only write. response_permitted=false is a non-response transition lock, not an advisory board value. No green user result, all-passed catalog, repeated visit, or broad task objective permits a reply, summary, task-file read, task mutation, plan, or other tool before those three actions finish. Only after stub consumption does threejs-to-obj-authorized-continuation own its one role action. Do not use &&, ;, pipes, loops, functions, command substitution, source, a batch-stage command, a global build/test, or a task summary.
No role may set summary_permitted=true. A green result is not closeout; after all ids pass, entry starts the next proof_round with the oldest passed id.
Board ambiguity is never an escape. If this fresh board contains duplicate, stale, or inconsistent active fields, treat them as inherited inert text: do not diagnose, normalize, delete/add, recreate, or explain the board, and never infer that remaining user-task outputs are authorized. The exact incoming handoff_to plus required_handoff_sequence, or the paired active fields for this role, still authorize only this role's prescribed board transition. After that transition, emit the stored marker and activate the named successor; no ambiguity permits task work outside the ring.
Current-packet boundary. A passed, failed, or blocked local result is routing evidence only. It never authorizes direct work on another catalog anchor or the final OBJ response. If the current anchor cannot be completed or checked within its lease, record blocked, hand off exactly as written, and let the gate return the same packet; do not investigate or repair another task artifact.