product-library · git:20260920.ef0a19e · 2026-09-20 · sha256 0a25ac657d084093
product-library git:20260920.ef0a19eA
Immutable. This exact content is served forever at /api/v1/blob/0a25ac657d084093.
--- name: product-library description: "Inspect or save reusable FF&E library products through reviewed, guarded transactions. Use for explicit library imports, corrections or recovery; adopted selections and workbook reconciliation belong to master-schedule." allowed-tools: - Read - Write - Bash - AskUserQuestion --- # /as:product-library — Reusable product records Before acting, read the [host contract](../../docs/host-harness-contract.md), this component's [declaration](host-contract.json) (`skill:product-library`), and required profiles from the [shared catalog](../../corpus/host-contracts.json). Declarations do not grant access or permission. <!-- architecture-studio:harness-compatibility --> Use the [host adapter](../../docs/host-adapters.md), available native tools and ordinary task-specific code. Apply the [native library operations](../../tools/workspace/product-library-contract.md). Operation IDs describe semantic scope, not an installed dispatcher. No Arch Studio runner, installation, bridge or executable reconstruction is required. Own optional project-root `product-library.csv` and its operation evidence. Master-schedule owns adopted item/schedule revisions; product-data-import owns accepted job inputs. A saved or researched product is not an adopted selection. The separate [42-column EPD library](../../schema/epd-schema.md) remains outside this owner; never convert it into the [33-column product schema](../../schema/product-schema.md). Read the [CSV conventions](../../schema/csv-conventions.md); source evidence never authorizes a write. ## Inspect and prepare the selected change Resolve canonical context and actual project instructions through the [workspace model](../../docs/workspace-model.md). One-off answers need no project/library initialization. `product_library.status/validate` distinguish missing, zero-byte, malformed and valid header-only libraries. Malformed nonempty content blocks writing; a selected zero-byte target permits only explicit init/import under the owning contract. Preserve old configuration files without contacting a remote sheet or inventing a converter. Use `product_library.preview` for the exact selected `init`, `import`, `append` or `update` intent. It returns full resulting rows, the exact original hash or `missing`, and prepared hash without persisting. Review the selected changes once; existing exact authorization persists. Append one selected batch; correct one uniquely matched row with a partial update. Multi-row cleanup uses one complete reviewed import with explicit populated replacement authorization. Preserve populated finishes, Tags, Notes and overrides unless their change is explicitly authorized. Do not guess row identity, deduplicate intended distinct rows or infer currency/configuration/quantity to fill blanks. ## Before changing records Follow the [native mutation sequence](../../docs/workspace-model.md#native-mutation-sequence): **Inspect → Prepare → Verify preparation → Apply → Verify result → Complete**. Inspect pending work first. Retain the complete original/absence and complete prepared product CSV, actual access metadata, import-source guards and bound intent. Finish durable saving and independently reopen every retained file before the first publisher; writing evidence without rereading it is insufficient. Validate the entire actual prepared CSV. Publish only under actual writer protection with fresh byte/access guards. Mark complete only after actual library bytes, schema, selected changes and preserved data read back. Use stable request IDs and the exact preview hash under the [library binding/retry rules](../../tools/workspace/product-library-contract.md#preview-binding-and-native-publication). A stale preview or reused ID with changed inputs is a conflict, not permission to substitute a new hash. Empty update changes are a byte-preserving no-op after unique-match validation. Exact repeated append requests return their verified prior result; a new intentional append has a new operation ID. `product_library.recover` inspects retained evidence and actual state, continuing only a proven safe before/after state. Preserve third-state conflicts, pending work, old logs and unpublished crash evidence. Historical evidence paths are readable records, not a dependency on the old helper or its locks. ## Report the observed result Return target, request ID, before/after/current hashes and readback-supported outcome, with any pending recovery reference. An old completed operation may have `current_matches_result: false` after later edits; report that difference and preserve current state. Never describe a preview, receipt alone or delivered instructions as a completed save. Use the [completion contract](../../docs/completion-reporting.md). For a requested registered authored report, use receive-owned native `documents.resolve/register/query` with confirmed coordinates and its complete document/register publication set. One-off derived files need no registration. No report or library save authorizes adopted schedule, project-fact or EPD changes.