{"ok":true,"site":{"host":"henry-bauta.github.io","url":"https://henry-bauta.github.io/samepage/","type":"live","desc":"A living client brief that you and a ChatGPT agent edit together on one page.","tools":[{"name":"get_brief","kind":"answer","impl":"imperative","description":"Read the living client brief currently on this page. Use section to fetch a slice instead of the full document. This is the first tool to call before proposing changes.","title":"Get brief","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"section":{"type":"string","description":"Which slice to return. Defaults to the full brief.","enum":["all","meta","goals","deliverables","constraints","decisions","questions","revisions"]}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/samepage/"},{"name":"add_deliverable","kind":"act","impl":"imperative","description":"Append a deliverable to the brief. Use for new work the client and studio agree to ship. Prefer update_deliverable when the item already exists.","title":"Add deliverable","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"title":{"type":"string","description":"Short name, e.g. 'Weekly menu + allergens'.","minLength":1},"description":{"type":"string","description":"What done looks like."},"owner":{"type":"string","description":"Who is accountable: Studio, client, or both."},"due":{"type":"string","description":"Due date as YYYY-MM-DD."},"status":{"type":"string","enum":["planned","in_progress","review","done"],"description":"Workflow state. Defaults to planned."}},"required":["title"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/samepage/"},{"name":"update_deliverable","kind":"act","impl":"imperative","description":"Patch an existing deliverable by id. Only provided fields change. Use get_brief first if you do not have the id.","title":"Update deliverable","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"Deliverable id, e.g. del-menu.","minLength":1},"title":{"type":"string","description":"Replacement title."},"description":{"type":"string","description":"Replacement description."},"owner":{"type":"string","description":"Replacement owner."},"due":{"type":"string","description":"Replacement due date YYYY-MM-DD."},"status":{"type":"string","enum":["planned","in_progress","review","done"],"description":"Replacement status."}},"required":["id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/samepage/"},{"name":"add_constraint","kind":"act","impl":"imperative","description":"Record a hard limit on budget, timeline, brand, legal, technical, or other. Constraints are visible to the client — write them in plain language.","title":"Add constraint","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"text":{"type":"string","description":"The constraint in one or two sentences.","minLength":1},"kind":{"type":"string","enum":["budget","timeline","brand","legal","technical","other"],"description":"Category. Defaults to other."}},"required":["text"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/samepage/"},{"name":"mark_decision","kind":"act","impl":"imperative","description":"Log a decision that is now closed. Use this when the client or studio has chosen, not for open debate. Open debate belongs in raise_question or propose_revision.","title":"Mark decision","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"text":{"type":"string","description":"What was decided, in client-facing language.","minLength":1},"decidedBy":{"type":"string","enum":["human","agent","client","joint"],"description":"Who closed it. Defaults to joint."}},"required":["text"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/samepage/"},{"name":"raise_question","kind":"act","impl":"imperative","description":"Park a question the human or client still needs to answer. Do not block the rest of the brief on it. The human can answer inline on the page.","title":"Raise question","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"text":{"type":"string","description":"The question, addressed to the client or studio.","minLength":1},"askedBy":{"type":"string","enum":["human","agent","client","joint"],"description":"Who is asking. Defaults to agent."}},"required":["text"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/samepage/"},{"name":"propose_revision","kind":"act","impl":"imperative","description":"Suggest a change without writing it into the brief. The human must accept or reject it. If proposedValue and a target are set, accepting the revision applies that value.","title":"Propose revision","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"summary":{"type":"string","description":"One-line change the client can yes/no.","minLength":1},"rationale":{"type":"string","description":"Why this is better for the client."},"target":{"type":"string","enum":["deliverable","constraint","goal","timeline","notes","meta"],"description":"Where the change would land. Defaults to notes."},"targetId":{"type":"string","description":"Id of a deliverable when target is deliverable."},"proposedValue":{"type":"string","description":"If accepting should write a value, the replacement text (e.g. new deliverable description)."}},"required":["summary"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/samepage/"},{"name":"accept_revision","kind":"act","impl":"imperative","description":"Accept a proposed revision by id. Applies proposedValue when present, and records a joint decision. Prefer that the human does this; use only if they have clearly agreed.","title":"Accept revision","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"Revision id, e.g. rev-soldout.","minLength":1},"note":{"type":"string","description":"Optional note stored on the revision."}},"required":["id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/samepage/"},{"name":"reject_revision","kind":"act","impl":"imperative","description":"Reject a proposed revision by id. Leaves the rest of the brief unchanged. Prefer that the human does this.","title":"Reject revision","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"id":{"type":"string","description":"Revision id.","minLength":1},"note":{"type":"string","description":"Why it was rejected, shown on the brief."}},"required":["id"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/samepage/"},{"name":"export_brief","kind":"act","impl":"imperative","description":"Export the current brief as Markdown or JSON. Use this to hand a snapshot to the client, a contract, or another tool. Does not change the brief.","title":"Export brief","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"format":{"type":"string","enum":["markdown","json"],"description":"Export format. Defaults to markdown."}},"required":[],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/samepage/"}],"category":"Productivity & Business","favicon":"/favicons/henry-bauta.github.io.svg","apiSurface":"spec","toolCount":10}}