Propose Data Product Row
Module · Stable
Propose a row or fix to a data product; its owner confirms. The only way agents add knowledge
This is the ONLY way an agent adds knowledge. Never write a fact into a prompt, an instruction or a notebook: propose it to the data product that holds that kind of fact, and its owner decides. Pass values for a new row, or row_id (from a lookup) plus changes for a correction. Always pass source: where you learned it — the ticket, a short quote, a URL (the run id is added for you). Works only on a product whose write policy is agents_propose; an owner_only product refuses and names its owner. A new row is stored at once at low trust (its status is proposed), so it reads as unconfirmed until the owner accepts it; a correction changes nothing until accepted. The trust columns (status, confirmed on, confirmed by) are the owner’s and are refused. The same proposal is never stored twice: duplicate is true and message says whether it is still waiting, was already accepted, or was rejected — a rejected proposal must not be made again. The owner accepts, edits and accepts, or rejects it from the Inbox; accepted rows become high trust.
When to use
Section titled “When to use”Use when a conversation, a document or a run taught you a fact that belongs in a data product and the product does not have it, or has it wrong — a price, a policy, a part name. Look it up first (Look Up Data Product or Ask Data Product): propose a correction with the row_id when a row is wrong, a new row when nothing was found. Tell the person it is proposed, not confirmed.
When not to use
Section titled “When not to use”Never to remember something for yourself — no prompt, notebook or memory note instead of a proposal. Not for an ordinary table that is not a data product (use Create Record), and not for a product whose write policy is owner_only. Do not re-propose a proposal that came back rejected.
Inputs
Section titled “Inputs”Configured per use: dp, values, row_id, changes, source.
Outputs
Section titled “Outputs”Auto-generated from the skill registry (load_skills()). Do not edit by hand.