# Task: Add batch shared-child order creation ## Identity - Task ID: 20260908-shared-child-batch-create-4e7c2a91 - Mode: Feature - Branch: codex/20260908-shared-child-batch-create-4e7c2a91-shared-child-batch-create - Worktree: /Users/inmanx/Documents/lwltAPI-shared-child-batch-create-4e7c2a91 - Base commit: 515b545b32fcbb30311b56c5b90a36f3d3834d95 - Owner: codex - Status: Ready for integration ## Scope - Add a Program-only `shared_child_order_batch_create` business route for the directive `散拼团多个新增子单`. - Parse one inclusive departure date range plus customer, product, optional leader, passenger counts, and optional special requests. - Resolve every matching shared mother plan in the range before the first write, then create one identical child order per resolved parent sequentially. - Add strict execution validation, batch receipts, stop-on-first-failure behavior, database route constraints, tests, and the synchronized Chrome extension release artifact. ## Intent And Constraints - Program processing only: do not add or modify any Skill, Agent prompt, external-Agent directive route, or Agent parsing action. - The product is a required hard match against the visible shared-plan row; booking customer and leader are child-order fields and must not filter mother plans. - Enumerate and validate the complete target set before the first ERP write. Zero targets, incomplete parent references, or duplicate/conflicting parent identity must fail closed. - Execute targets in date/tid order, retain per-parent receipts, stop after the first blocked/failed/uncertain result, and never retry a write automatically. - No live ERP write, deployment, restart, or external send is authorized by this task. ## Outcome - Added the nineteenth machine business route, `shared_child_order_batch_create`, with the Program-only directive `散拼团多个新增子单`; the external Agent continues to expose and validate only its original eighteen routes. - The deterministic parser now accepts the inclusive `出发日期` range and emits customer, product, optional leader, passenger counts, and optional special requests under parser version `ltjt-program-parser-v1.0.7`. - The browser adapter performs a complete read-only, per-date shared-plan enumeration before the write boundary, hard-matches the product on concrete native parent rows, rejects empty/incomplete/conflicting/oversized target sets, and binds each target to its parent group number, numeric `tid`, and departure date. - Batch execution reuses the verified single-child path once per resolved parent in deterministic order, records per-parent outcomes and child-order receipts, stops at the first blocked/failed/uncertain result, leaves remaining targets `not_started`, and never retries a write automatically. - Added schema, mapping, UI label, reply profile, migration `022_shared_child_order_batch_create.sql`, fail-closed authorization compatibility, parser/browser/Agent-boundary regression coverage, and Chrome extension release `0.5.170`. - Rebuilt `dist/ltjt-order-assistant-0.5.170.zip` from the final extension source and synchronized `dist/release-manifest.json`; the previously tracked `0.5.169` archive is replaced by the new version and remains recoverable from Git history. - No Skill, Agent prompt, Agent directive registry, Agent parsing schema, live ERP data, deployed service, or running process was changed. ## Verification - `node --check chrome-extension/ltjt-order-assistant/background.js` — passed. - `node --check chrome-extension/ltjt-order-assistant/inpage.js` — passed. - `node --check chrome-extension/ltjt-order-assistant/operation-plans.js` — passed. - Targeted Program parser and Program-only route tests — passed, including the supplied `10-06到11-03` sample and the Agent rejection boundary. - Targeted operation-plan, lifecycle-contract, and external-Agent tests — passed. - `node --run check` — passed. - `node --run test:control-plane` — passed. - `node --run test:legacy` — passed (277 tests). - `node --run build` — passed. - `node --run check:repo` — passed, including exact release archive/source and SHA-256 consistency. - `git diff --check` — passed. ## Follow-ups - Deployment is intentionally out of scope. Before production use, apply migration 022, deploy the control plane/platform changes, install extension `0.5.170`, and explicitly grant the new route to each intended non-administrator account; the migration does not auto-grant it. - Run a separately authorized, bounded ERP acceptance task before broad production rollout because this task performed no live ERP write. ## Promotion Candidates - Integration should promote parser `v1.0.7`, machine route count 19, Program-only route count 3, migration 022, and extension `0.5.170` into canonical project state, architecture, business-rule, and release records. - A later documentation-only integration may clarify references to “18 machine routes” as “18 external-Agent routes / 19 total machine routes” without adding this Program-only business to any Skill or Agent processing path.