전용 항목 상류형 분리 설계 #183
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
사용자 승인 원문(2026-10-26 03:3x KST 진단세션 채팅, 현재 운영전달): 「제안 A(자동 조립 동기화)와 B(전용 항목 상류형 분리)를 Kandev 커스텀 관제 설계 작업으로 등록해서 진행해.」 정본 D:/260720_Ai_Workspace/_UserHub/_desk/261019_kandev_native_review/05-stage1-config-plan.md §13.44
13.45. parent3cb75dea-2d37-4a47-8709-7a2d1a885062. 설계 먼저, 구현은 설계 산출 뒤 자식 작업. 전체14/work10/control4와WIP·기존동적모델순서유지. 새구현writer/중복task·상시시험/감시·해시0. source/공용checkout/Gitref/운영플래그/스케줄/배포/자격쓰기0. 설계결과는 자기Native Plan의완결문서와같은queue p330에보존하고 parent3cb로실산출물/미완/다음실행을1회인계. 자기산출문서가필요하면 _UserHub/_task/kandev-custom-design/20261026의자기A또는B파일만사용; 지원권한없으면Plan원문으로이어가고부모가출력연결. 새승인대기/빈RV/가짜선행을추가하지않는다. 과거운영정지지시는해제됐으며WUC보류·기존비용/권한경계는유지. B 전용 항목 상류형 분리 설계. 원목적/기능을보존하며메커니즘은상류,정책·값은plugin/CM. §13.44표와기존상류93c6b4d0-8a64-47d2-b006-4a9067d156db의수용성판정표(작성중)를맞춘다. ①inference capacity→태그별리소스풀 ②#4715→태그별한도(상한14/work10/control4는설정) ③#4718→workspace설정 defaultoff/운영on ④#4628→RO집계API상류+화면plugin ⑤#4714→workflow prompt source provider인터페이스상류+CM공급자plugin. 범용분류기/B1719/#4747은근거에맞게구별. 상류확장점E1~E15·기존PR/기능/이력을읽고중복·거절이유/현한계/호환·마이그레이션·플래그/개인값제외를설계한다. 산출①항목별상류PR범위/plugin·CM범위·보존목적매핑 ②설계급변경상류이슈초안 ③기존PR별수정/분리/대체계획. 게시자5d5cbb5b-c908-401d-8e84-97f3fea8f7f0의기존단일writer역할보존,직접이슈/댓글/PR/push0. 이미사용자가승인한게시범위는기존전담으로인계하며새승인대기로되살리지않는다. 새기능구현은설계산출뒤부모배정자식으로분리. 상류판정표가미완이어도기존확인가능항목을독립설계하고표미수신만전체외부대기로만들지않는다. 첫산출은기동후90분내5항목분리초안목표,실근거/미확인/다음소유자구분. 자기Native Plan에완결설계문서를작성하고결과를parent3cb에1회인계. A의자동조립script/운영workflow/공유ref를중복수정하지않는다.B task1a3413cd-098f-4fe1-ad19-8d0d03520ca6 primary9371b12b RUNNING/primary확인,실git상태읽기18:02:39Z관측. 조사설계기동완료·첫분리초안90분예상. 동일task환경정정·실패이력보존. 상류93판정표pointer연결요청·게시5d역할유지,구현/운영적용0.
부모 3cb 설계 수용: Native Plan 6af525ad 전체와 §11~12의 정정을 읽었다. 5항목 분리 설계·상류 이슈 초안 4건·기존 PR 수정/분리 계획·9개 구현 정의를 설계 산출물로 수용한다. #4715/#4718 불필요 재구현 제외, #4718 workspace 확장은 기존 게시 blocker 아님, #4714 범용 엔진/PR2A·2B 원목적/B18 조사 정정 보존. 상류93/기존게시5d로 실인계 message06362728 sent. 이 수용은 설계 단위 완료이며 구현·게시·상류수용·운영완료나 외부 게시의 새 승인이 아니다. 아래 원설계 전체 보존:
B design package: upstream mechanisms and plugin/CM policy
Status: design complete for parent review; implementation pending. This document is the complete B deliverable, not an implementation completion claim.
Task: 1a3413cd-098f-4fe1-ad19-8d0d03520ca6; session: 9371b12b-7918-4bc1-813e-d0bf5bf07468.
Parent: 3cb75dea-2d37-4a47-8709-7a2d1a885062. Queue identity: KANDEV-B-DES-1026. Preserve this identity and its existing p330 record.
1. Authority, recovery and boundaries
The source decision is 05-stage1-config-plan.md sections 13.44-13.45, under D:/260720_Ai_Workspace/_UserHub/_desk/261019_kandev_native_review/. The user requested A and B as custom-control design work, with implementation assigned subsequently by the parent. This package handles B only.
First actual shell result in this resumed session: chunk 729218 (skill read); initial Git-state result 8ead29 was clean. First recorded clock read: 2026-10-25 18:03:01 UTC / 2026-10-26 03:03:01 KST. No precise timestamp was supplied for chunk 729218, so that clock is not presented as its execution timestamp. Initial five-item draft target: within 90 minutes of resumption. The source decision's 03:3x label is later than this clock; retain its supplied label without inventing chronology.
Initial Native Plan read returned no plan. Existing upstream-controller Plan 2ac71e11-cbcd-4ee9-b4cd-42be7110bf53, version eb7c09a9-7de2-4b5a-b761-010a8a1f8472, was read; it contains historical PR/work evidence, but a completed current acceptability matrix was not located in the retrieved evidence. This is a bounded uncertainty, not a blocker to these designs.
Local checkout HEAD: 9a409a972266b0d4f433c376634d767826c1ae22. It is an integrated production-derived reading baseline, not proof that every capability is upstream.
Preserve total 14, work 10, control 4 as installation policy, current WIP enforcement and dynamic model candidate order. Preserve WUC hold and existing cost/authority boundaries. No source edits, Git mutations, new tasks/workers, permanent tests, monitoring, hashes, flags, schedules, deployment or credential writes were performed or authorized by this design. A owns assembly scripts and shared refs. Existing publisher task 5d5cbb5b-c908-401d-8e84-97f3fea8f7f0 remains the sole issue/comment/PR/push writer. Existing publication authorization is not reopened here.
Requested storage is this Native Plan; repository skill defaults for new spec files are superseded by that explicit storage boundary. Parent owns connecting this actual result to the same queue p330. No duplicate queue or task is proposed.
2. Evidence and interpretation
Read sources:
Observed live heads (all OPEN at read):
These are Git identities reported by the existing API, not newly introduced integrity fingerprints. Past validation in PR bodies is attributed evidence, not tests run by this session. No maintainer rejection of these five mechanisms was established from the retrieved records; automated findings and local architectural fit do not constitute upstream acceptance or rejection. Publisher must reconcile the in-progress acceptance matrix and any newer review before mutation.
Three material differences from the shorthand assignment:
3. Requirements and acceptance
REQ-B-01 / AC-B-01: Native sessions, Office runs and independently executing inference owners consume a common enabled capacity budget exactly once per real owner; transfer/retry does not create a second charge. Unknown inventory is distinguishable from zero. Existing admitted work remains credited after settings edits.
REQ-B-02 / AC-B-02: Arbitrary configured resource labels can constrain admission without built-in control/work semantics; installation configuration reproduces total 14/work 10/control 4. Admission does not reorder models, queue destinations or WIP policy.
REQ-B-03 / AC-B-03: A default-off workspace policy can require a deliberate eligible profile before new task persistence. Off preserves current behavior; enabling does not invalidate existing external-ID replay or active tasks. Previously enabled workflow requirements remain effective during migration.
REQ-B-04 / AC-B-04: Authorized users can read aggregate Office and recorded Native state, distinguish stale/unavailable/unknown from zero, and navigate to source records on desktop and phone. Product-specific interpretation and presentation remain plugin-owned.
REQ-B-05 / AC-B-05: A configured external prompt provider can preview and apply a revision through native workflow authority while preserving workflow/step identity, history, occupied-step protection and committed-event semantics. CM source paths and prompt policy remain outside core.
All requirements are proposed delivery contracts within the authorized design. They do not declare the proposed APIs shipped.
4. Item-by-item separation and preservation map
B1. Shared inference capacity: resource-owner mechanism upstream
Upstream scope: reuse the existing sessionCeilingController admission owner, settings store and inference binding operations. Generalize the label carried by a logical launch; account native session, Office and native inference ownership through adapters to that same controller. Preserve existing owner/attempt/preparation identity checks, retained-child protection, transferNativeRouteLocked behavior and inventory-known state. A reservation becomes the corresponding active owner rather than adding a second unit. Release only on authoritative completion/stop or reconciled absence, never merely on a UI waiting label. Read failures refuse fresh admission when enabled; existing owned work is not fabricated as absent.
Policy/plugin scope: tag assignment, work/control mapping and installation limits. A plugin may supply declared configuration or metadata through existing authorized APIs; it must not maintain a competing live limiter or bypass native admission. No model-order or fallback-policy edit.
Proposed minimal label contract: one exclusive capacity-pool tag per logical execution for this migration, with arbitrary string values. Other profile tags may remain descriptive. Do not infer a pool from profile name or model. Multi-pool intersections and reserved priorities are deferred because they change fairness semantics and are unnecessary for the existing split. This is a design recommendation under the autonomous assignment, not a claim that arbitrary multi-tag scheduling already exists.
Compatibility: existing execution_grade becomes the legacy alias for the exclusive pool label; admitted snapshots remain immutable. Missing required pool configuration is a typed refusal, not an unlimited escape. Inventory rebuild happens through existing startup reconciliation before fresh all-policy admission. A plugin outage cannot erase active ownership.
Current limit: local integrated source contains inference bindings; #4715 explicitly excludes native inference/Office shared-owner follow-up. Therefore B1 is an incremental upstream companion, not an assertion that #4715 already covers it.
B2. #4715: retain total limit, generalize label vocabulary
Upstream scope: keep total limit, arbitrary per-pool limits, atomic admission/reservation credit, saved/effective settings, zero-vs-missing distinction, queue refusal projection and manual-origin replay. GradeLimits is already map[string]int; avoid a disruptive storage rewrite for naming alone. Introduce a documented additive pool-label representation only if upstream requests neutral public naming; reject conflicting legacy/new values instead of selecting silently. Keep legacy read/write compatibility for one supported transition, with one canonical internal value.
CM scope: enabled all-policy; total 14; work pool 10; control pool 4. Do not hardcode these values or label names into upstream defaults, examples claiming universal policy, or plugin Host logic. Preserve current WIP as an independent check.
Setting decreases do not kill or relabel running work; they affect fresh admission. Disabled retains saved maps. Existing environment precedence and lock behavior survive. No additional feature-flag registry is required merely to duplicate the current enabled setting.
Preferred existing-PR action: revise #4715 in place for terminology/contract clarification, reuse its implemented behavior and valid review remediation. B1 follows the accepted base. Do not start a second overlapping limiter PR. If maintainer requests total-only extraction, publisher splits the exact total slice and tracks pool support as its explicit companion; preserve the local working behavior until equivalent capability is available.
B3. #4718: workspace policy with lossless workflow compatibility
Upstream scope: default-off require_explicit_agent_profile on workspace configuration, with the existing task-create pre-persistence validator reused across HTTP/WS/MCP and internal producers. Eligibility still checks existence, enabled state and permitted workspace/global scope. Destination-step deliberate override remains acceptable; incidental creator/parent/workspace/model fallbacks do not satisfy the requirement. Idempotent external-ID replay precedes revalidation.
Migration recommendation: effective requirement = workspace flag OR legacy workflow flag. Existing workflows that opt in stay protected; new workspace values default false. Do not automatically turn the workspace flag on if one workflow was true, because that would strengthen unrelated workflows. Retain the legacy flag as a compatibility field until consumers explicitly migrate. A future removal is a separate bounded decision after readback, not part of this design.
CM scope: turn on for the designated operating workspace via its existing authorized configuration owner; this session does not enable it. No AIWS workspace IDs or names in upstream defaults.
Preferred existing-PR action: amend #4718 with workspace scope and compatibility, preserving existing producer fixes and replay behavior. Do not discard it as duplicate merely because it currently says workflow. Update public configuration documentation and relevant schemas in the same delivery.
B4. #4628: aggregate API upstream, control product in plugin
Upstream scope: extract the existing GET /api/v1/office/workspaces/aggregate and its authorized workspace selection, batched reads, shared bucketing and source IDs. Keep read-only semantics, no schema/write side effects, current owner-route guard before auth-disabled bypass and agent-token exclusion. Preserve #4045 lineage and credit. Recorded Native reads use the existing authorized workspace dashboard; add only missing neutral fields, not CM stage-name recognition.
Plugin scope: integrated attention/stall/workspace comparisons, history folding, recorded wait-reason panel, refresh scheduling and coordinator links. W106's input-wait/blocked/approval/hold derivation remains: observations may overlap; no fake sum, capacity-wait inference or zero for unavailable stage groups. Preserve last successful values with their observation time and one shared error banner.
Existing web types expose plugin routes, page chrome and navigation; use that real route surface rather than inventing an E13 platform. An exact overview slot is optional. The scoped aggregate Host bridge still needs capability/SDK confirmation before implementation; generic api_read does not prove this endpoint is exposed to backend plugins. Prefer an authenticated UI read under the same user route, or a narrowly authorized Host reader if required. Do not widen an owner-only API to agent tokens for convenience.
UI contract: desktop plugin navigation opens overview with attention, workspace comparison and history. Phone uses the same navigation registration, an attention list followed by workspace cards; tap opens the source workspace/run directly, secondary choices use an inset bottom drawer. One content scroll owner, safe-area clearance, minimum 44px touch controls, shared filter/read model and visible stale/denied/off states. Preserve refresh pacing from #4628; no new monitoring service. Mobile-only composition must not overwrite desktop preferences. Existing mobile-control-aggregate-dashboard.spec.ts is the migration exemplar.
Preferred PR action: publisher splits #4628 into API plus any independently generic link correctness change, moves product UI into the dedicated plugin repository. Do not close #4045 or remove current UI until API lineage and equivalent plugin navigation/readback are accepted. No duplicate API submission.
B5. #4714: generic source protocol plus CM provider plugin
Upstream scope: retain transactional revisioned import, read-only preview/diff, immutable revision identity, stable workflow/step IDs, occupied-step rejection, source locks, native creator/permission checks and post-commit event publication. Current plugin Host Workflows reader and generic workspace commands are not evidence of a prompt-source provider contract.
Proposed narrow provider boundary: a declared provider identifier and versioned capability resolves a workspace-scoped source reference to the existing generic template/revision/variables bundle. Provider resolution returns data or a typed unavailable/not-found/invalid result; it cannot write core workflow tables. Host authorizes the caller, resolves the provider outside the workflow transaction, validates the bundle and snapshot, then uses the existing preview/apply service. Apply rechecks occupancy/authority and commits atomically. Provider failure leaves the last applied native workflow usable and unchanged. No automatic import or new background poller.
CM plugin scope: source reference syntax, kandev-prompts path, CM catalog/project selection, rendering inputs and drift presentation. No filesystem path, CM command or secrets are embedded in core. Binding stores provider ID and opaque source reference with existing revision metadata; no added content hashes. Legacy imports without a provider remain the native/import provider. Plugin uninstall preserves the applied workflow/history and source lock; explicit existing-authority detach/export is required before editable ownership transfer.
Keep exact {{task_prompt}} native rendering semantics and the occupied-step/drift fix from #4714. Do not fork the generic renderer inside CM.
Preferred PR action: keep generic #4714 content; propose the provider extension in a focused companion issue/PR when the SDK seam is accepted. Extract only genuinely CM-specific behavior if found in the exact diff. Do not replace the whole transactional engine with plugin-side individual workflow writes.
5. E1-E15 disposition
E1 inbound message policy: outside these five items; preserve existing delivery ownership, no new scheduler.
E2 session role/model exclusions: adjacent to capacity ownership only; no role or model-selection change.
E3 capacity classes: B1/B2's neutral label and shared admission mechanism. Historical reserved quotas are not included.
E4 task class/environment isolation: label compatibility only; no credentials/environment policy change.
E5 question channels: unrelated; retain native authority.
E6 progress signal: aggregate may display existing recorded signals; no new productivity classifier.
E7/E7b routing and provider limits: preserve dynamic candidate order and existing usage signals; supplier rules belong in plugin/CM, generic error normalization remains core.
E8 workflow source/variables/lock: #4714 already covers much of it; B5 adds the missing provider connection only.
E9 plugin task fields/tabs: reuse if a presentation needs them; no dependency for the read-only aggregate route.
E10 rounds/groups: product policy outside core; not needed for five-item delivery.
E11 cursor/event replay: use existing transport where available; do not implement a new replay service for dashboard refresh.
E12 secret resolution: existing platform boundary; no credentials added by B.
E13 UI slots: current route/nav surface exists; B4 can deliver there without a new exact overview slot.
E14 namespaced state: use existing plugin state for plugin preferences/binding metadata only, no direct core DB DDL.
E15 turn context: preserve existing prompt sources/context behavior; not a prerequisite for importing workflow definitions.
These are dispositions, not claims that every historical E proposal has shipped. Only inspected current symbols establish availability.
6. Generic defects remain separate
No new defect implementation or blanket revalidation is authorized by these dispositions.
7. Upstream issue drafts for the existing publisher
Draft 1 title: Resource-pool admission across task sessions and native inference
Problem: a task-session limit alone cannot account for independent native/Office inference without duplicate or missing ownership.
Proposal: build on #4715's existing atomic controller; use arbitrary configured pool labels and authoritative ownership transfer/release; expose unknown inventory distinctly. Existing admitted work is credited before fresh-limit validation.
Scope: shared mechanism and neutral configuration only. No named work/control classes, installation values, reserved priority or model routing policy.
Acceptance: restart/retry/handoff counts each real execution once; fresh work respects configured total/pool limits; off retains behavior. Discuss whether neutral pool terminology should be an additive alias before changing public fields.
Draft 2 title: Workspace-level explicit profile requirement with workflow compatibility
Problem: #4718's workflow-only setting cannot express a workspace-wide deliberate-profile policy.
Proposal: default-off workspace setting; effective OR with legacy workflow requirement during migration; reuse pre-persistence eligibility and replay semantics.
Acceptance: all create entrypoints reject missing/ineligible selections without partial rows when effective; existing replay returns its task; unrelated off workspaces remain unchanged. Existing watch producer selections survive.
Draft 3 title: Extract an authorized workspace aggregate API for plugin dashboards
Problem: #4628 combines a reusable read aggregate with a specific integrated-control presentation.
Proposal: extract the existing authorized API and neutral source fields, keeping #4045 credit and route guards; implement the control presentation as a plugin on existing route/nav contracts.
Acceptance: users see only reachable workspace data, agent tokens remain denied, failed reads are distinguishable from zero, no writes. Confirm the minimal plugin read bridge without weakening owner authorization.
Draft 4 title: Pluggable workflow prompt-source providers over revisioned import
Problem: #4714 supplies the generic transactional engine but lacks a declared provider connection for external source systems.
Proposal: provider resolves an opaque source reference into the existing bundle; Host owns permissions, validation, preview/apply and transaction. CM integration stays in its plugin.
Acceptance: provider unavailable leaves last applied workflow intact; revisions preserve identity/history; no-op and failed imports emit no commit events; occupied-step and native placeholder behavior survive.
Alternatives: keep manual generic import (lowest integration cost, no automatic provider discovery); plugin writes individual workflow objects (rejected because it loses the existing atomic revision contract).
All four are ready-to-review text, not posted issues. Publisher reconciles existing issues/acceptability rows and updates an existing discussion where possible. No new approval wait is introduced.
8. Delivery plan and bounded work orders
All work orders are pending and for parent assignment after this design. Do not spawn them here. Sequence shared capacity work; other scopes can be scheduled by the parent under existing WIP, without a new concurrency rule.
WO-B1 (REQ/AC-B-02; design 4/B2): revise #4715 neutral label contract and compatibility. Own sessioncapacity types/resolver/service, admission grade snapshot and queue projection; exclude inference adapters and installation values. Acceptance: old map round-trips, conflicting representations reject, held reservations survive config edits, queue/model order unchanged. Verification from apps/backend: go test ./internal/system/sessioncapacity ./internal/orchestrator -run 'Grade|Ceiling' -count=1. Use narrow disposable cases for legacy alias conflicts and owned-work preservation; no permanent suite additions.
WO-B2 (REQ/AC-B-01; design 4/B1; depends B1 contract): shared inference adapters using orchestrator/inference_capacity.go, existing binding store and backendapp Office wiring. Acceptance: independent owner charged once, handoff/retry no double count, unknown inventory blocks fresh admission and terminal release is ownership-bound. Verification from apps/backend: go test ./internal/orchestrator ./internal/system/sessioncapacity ./internal/backendapp -run 'Inference|Capacity|Ceiling' -count=1. Temporary scenario must exercise actual reserve/transfer/release entrypoints. Existing commands are planned, not run here.
WO-B3 (REQ/AC-B-03; design 4/B3; no capacity dependency): extend #4718 workspace configuration and migration. Own task workspace models/store/DTO and task-create validator, existing HTTP/WS/MCP schema plumbing. Acceptance: false default, OR compatibility, existing replay, eligible selection and no partial writes. Verification from apps/backend: go test ./internal/task/service ./internal/task/repository/sqlite ./internal/mcp/handlers ./internal/mcp/server -run 'Explicit|Profile|Workflow' -count=1. Disposable API journey covers off/on, legacy workflow and unavailable explicit profile; preserve current producer cases.
WO-B4 (REQ/AC-B-04; design 4/B4): extract the existing aggregate API from #4628. Own backendapp office_scope, office/dashboard and office/repository/sqlite aggregate paths plus API docs. Exclude UI relocation and unrelated #4045 changes. Acceptance: same authorization and batched semantics, no writes, neutral unknown/source metadata. Verification from apps/backend: go test ./internal/office/dashboard ./internal/office/repository/sqlite ./internal/backendapp -run 'Aggregate|OfficeScope' -count=1. Reuse existing scope tests and actual read response; no unbounded query or new watcher.
WO-B5 (REQ/AC-B-04; design 4/B4; depends B4 accepted API/bridge): migrate presentation into the existing dedicated plugin repository chosen by parent. Preserve current wait-reason interpretation, refresh clock, links and failure behavior. Parent must identify that repository's actual build/check scripts before implementation; no invented plugin path/command. Host parity baseline from apps/web: pnpm e2e:run e2e/tests/coordinator/mobile-control-aggregate-dashboard.spec.ts --project=mobile-chrome, after standard production E2E build. Adapt the existing journey or a disposable plugin journey to real plugin navigation; assert source navigation, stale/read failure and touch geometry on phone. Existing host-route success alone cannot prove plugin completion. Do not remove core UI until plugin readback.
WO-B6 (REQ/AC-B-05; design 4/B5): generic source-provider Host/SDK contract, preserving #4714's engine. Own workflow/service/models, plugin wire and pkg/pluginsdk only where the missing interface requires them. Acceptance: provider unavailable is nonmutating, old import still works, permissions and transaction/event behavior unchanged. Verification from apps/backend: go test ./internal/workflow/... ./internal/task/service ./pkg/pluginsdk -run 'PromptSource|Workflow|Protocol' -count=1. Disposable actual provider resolve/preview/apply uses existing service boundary. Keep generated protocol changes coupled to their source; no CM reader in core.
WO-B7 (REQ/AC-B-05; design 4/B5; depends B6): CM prompt provider in the parent's existing plugin/CM ownership lane. Resolve kandev-prompts data to native bundles and preserve source/reference ownership. Acceptance: existing workflow IDs and history survive update/rollback, provider loss leaves applied workflow usable, explicit drift result is truthful. Concrete plugin test/build commands are assigned from its real package at handoff, not fabricated here. Use an isolated instance and disposable source fixture; no operating import or schedule change.
Document/public-copy updates belong to each corresponding implementation, not a separate generic audit task. Existing tests are reused; one-off cases remain outside auto-collected permanent tests and are cleaned after recording outcomes.
9. Compatibility, removal and risk decisions
Recommended alternative is gradual generic mechanisms plus existing plugin surfaces. Retaining every product policy in fork core conflicts with the user's thin-fork goal; moving admission and revision transactions wholesale to plugin/CM would lose atomic native ownership. Therefore only policy, source adapters and presentation move.
Compatibility removal is content-based: keep prior production behavior until its replacement is actually reachable and demonstrates the same five acceptance outcomes. Publisher handles PR replacement/closure; A assembly owner handles subsequent inclusion/removal. B does not mutate their refs or schedules. If upstream rejects an extension, record the actual reason and select supported plugin/CM functionality; do not claim external orchestration can enforce an unavailable atomic native limiter. Preserve the unmet requirement and report that precise capability gap rather than silently dropping the original goal or treating a fork-only core patch as completion.
Open, scoped follow-ups:
10. Validation and handoff
Design checked against source section 13.44's five rows, current PR bodies/files and inspected existing ownership/SDK seams. It preserves each original purpose, labels proposed interfaces and unverified upstream acceptance, and gives four issue drafts plus existing-PR dispositions and seven bounded work orders. No implementation tests were run because production/test source was not changed.
Delivery is complete as a design package; implementation, upstream acceptance, publishing, plugin migration and operating enablement remain future work with the owners above. No new approval gate, empty formal review, duplicate task or timer has been created. Parent receives this Plan once with exact storage identity and remaining p330 connection responsibility.
11. Acceptance inventory reconciliation (2026-10-26, peer evidence received after design handoff)
This addendum supersedes only the affected interpretations above; all original purposes and authority boundaries remain. Sources directly read in this session:
Reconciled findings
The previously unlocated acceptance inventory is now available. Its 46-open/43-possible/zero-private-values totals are that author's reported inventory, not an independently repeated 46-PR audit. Its Section A includes rows explicitly excluded as already published; do not treat its heading or the peer's “11 unsubmitted” shorthand as an independently verified count. This session does not repeat a whole-inventory audit.
#4715 and #4718 are assessed there as already generic and opt-in. Therefore neutral renaming/refactoring is NOT a mandatory correction to make them acceptable. WO-B1 should first reuse the existing string-map behavior without code churn; an alias or terminology change is conditional on a concrete interface need or upstream feedback. #4718's workspace scope remains the explicit section 13.44 design target, but is a scope enhancement, not remediation of a demonstrated hardcoded-policy defect. Preserve default-off and legacy workflow requirements as already designed. No existing publication is blocked awaiting that enhancement.
The inventory confirms the #4628 API/product split and #4714 provider split recommendations. It does not negate the inspected fact that #4714 already contains a generic transactional revision engine. Preserve that engine and extract only an actual CM adapter; do not remove generic identity/history/permission protections under the phrase “interface only”.
Correction: retained inference closure is more than resource-pool accounting
The first package covered shared accounting and owner transfer but did not fully specify historical retained-claim closure. PR 2B's original purpose must also survive; a pool label or missing binding is not proof that provider claims and historical attempts have settled.
Extend REQ-B-01 / AC-B-01 with this acceptance: an explicitly requested same-session retained closure fences new admissions for that scope, preserves the journal and uncertain prompt, settles only its exact observed owner/attempt/provider claims, and admits only its recorded successor after all required owners agree. Unknown historical evidence remains unresolved. A crash resumes the recorded closure stage without resending uncertain work. Ordinary non-closure launch/resume must remain usable when optional closure storage is absent.
System design addition to B1: retain the existing journal/recovery owner for one durable closure checkpoint containing source execution, intended successor and observed terminal population. Reuse authenticated identities, existing provider settlement, normal stop/recover entrypoints and existing operation IDs. Validate the checkpoint at launch, queue dispatch and inference admission. Finish only after the allocated successor observes consumption. Do not infer closure from stop acceptance, a stopped process alone, missing capacity binding, generic recovery completion, or a plugin's local counter. No new hashes, receipt authority, permissions system, polling loop or global admission restriction.
PR 2A is the prerequisite observation contract: optional awaited stop pinned to expected_execution_id returns cancellation, runtime teardown and recorded-child observations separately. It does not resolve historical obligations or clear delivery blocks. Reuse existing upstream contributions such as #4644 where applicable; #4652 reclamation alone is not closure. PR 2A can be independently useful, but PR 2B needs both observation and owner/claim settlement.
Implementation decomposition correction (pending parent assignment, no new persistent tasks created):
These two bounded work orders preserve an original omitted purpose; they are not new product scope. The package now contains nine pending work-order definitions, not seven.
Issue draft 1 must mention shared accounting and retained closure as separately reviewable parts. Its closure companion text: “After interruption, an accepted stop or missing capacity binding cannot establish historical inference settlement. Add an explicit journal-owned closure using observed stop, exact recorded claims and a single recorded successor. Preserve unknown outcomes and legacy non-closure behavior; no external scheduler or CM-only sequence can substitute for the atomic native transition.” Reuse the existing PR 2A/2B draft lineage through 5d, not a duplicate issue/task.
Conflicting B18 labels and stale deployment facts
Resolved on 2026-10-26 after the upstream controller's correction and direct reading of docs/plans/wip-feeder-pull-queue-marker/plan.md, sections Investigation and Scope. The earlier assertion that these were different defects was incorrect: they are stages of the same investigation. The original MCP/engine WIP-admission-bypass allegation was not reproduced; the documented paths perform admission and release. The reproduced defect was pullOneFeederTask retaining queued_for_step_id/queued_at after admission, causing destination auto-start to skip the task. Preserve that investigation history and use inventory A2's feeder-pull marker description for publication, not section 13.5's superseded allegation. This also supersedes section 6's B18 shorthand. The peer reports that parent inspection of commit a3a753dcc514 matches A2; that commit is unavailable in this checkout, so its diff was not independently verified here. No additional implementation or investigation is opened. The peer also reports parent acceptance of the #4715/#4718 generic opt-in and PR2A/2B closure corrections; this is attributed acceptance evidence, not proof of p330 closure.
The inventory's Section B/D repeats older “four missing plus six partial” production statements alongside its A4-complete baseline. Those statements are not fresh proof of current missing content; B does not reopen A's completed integration from this document. A's accepted integration/readback remains the authority.
The E1-E15 pointer in the peer message was imprecise: the actual extension table used by this design remains the ver09 fork-design document, Section 5, already read. No new extension contract is inferred from the native-review document's “not verified” list.
Remaining ownership
Acceptance-matrix availability is resolved. Upstream acceptance itself remains the publisher/maintainer outcome, not this inventory's “possible” assessment. Existing 5d single-writer and prior publication authorization remain. Parent still owns same-p330 linkage and implementation assignment; no duplicate parent handoff is sent solely for receipt. This is a design correction and evidence update only, with no source, operational or Git mutation.
12. Result verification and handoff readback (2026-10-26)
Session 1108b2f8-56e6-4ab7-8b9b-159c753fbec9 read the complete stored Plan at version 70829f0f-cae9-426d-ad98-835cf764fd70, including section 11. The design deliverable contains all five separation mappings, four issue drafts, compatibility and migration decisions, and nine pending work-order definitions. Section 11 governs the corrected interpretations; the seven-work-order count in the initial handoff is historical. No implementation or upstream acceptance is claimed.
The original handoff tool record 47d16792-e4ff-494a-98ed-15d40bace5b4 (2026-10-25T18:08:55.0765139Z) confirms delivery status queued to parent task 3cb75dea-2d37-4a47-8709-7a2d1a885062, session f5713e57-05cb-407c-93c3-c1cc012b7ef8. It does not establish parent consumption or p330 closure. The section-11 correction was sent to upstream controller 93c6b4d0-8a64-47d2-b006-4a9067d156db, session d20fd75b-fa67-42bf-9896-b1ff1e0e48c4, with status sent in tool record 10e90a99-64bf-4064-b309-7482f77c46d5. No unsupported phase field is inferred. Neither message was resent.
Current git status --short is empty. This result-verification step created no source, test, Git, operational or temporary-resource changes. The existing parent-owned same-queue p330 result/acceptance linkage and implementation assignment remain with the parent; their completion was not independently established here. Preserve that ownership rather than create another queue writer or duplicate report. Publisher 5d retains publication ownership. B18 source identification was subsequently resolved as recorded in section 11; actual plugin repository/bridge selection remains with the existing owners. The design is usable for those next actions without a new approval gate.
Native Plan에 다섯 항목의 분리 설계, 상류 이슈 초안 4개, 기존 PR 처리 방안과 구현 작업 단위를 저장했습니다. 이제 저장 내용을 되읽어 확인한 뒤 부모에게 한 번 인계하겠습니다. 기존 queue의 p330 연결은 부모가 처리할 항목으로 명시했습니다.