{"schema":"brainfor/v1","surface":"agent_default","product":"brainfor.ai","decision_rule":"Invite accept/reject decisions MUST be made through Git (commit + push of command files under 00_System/invites/). Projection files and this API status are read-only knowledge. Editing a projection status field does not authorize or accept. Route Grants are created only by the service after a validated accept.","invite_protocol":{"decision_rule":"Invite accept/reject decisions MUST be made through Git (commit + push of command files under 00_System/invites/). Projection files and this API status are read-only knowledge. Editing a projection status field does not authorize or accept. Route Grants are created only by the service after a validated accept.","surface":"github_first_git","authorization":"route_grant_required","paths":{"outbound_request":"00_System/invites/outbound/<peer>.request.json","outbound_projection":"00_System/invites/outbound/<invite_id>.json","inbound_projection":"00_System/invites/inbound/<invite_id>.json","inbound_accept":"00_System/invites/inbound/<invite_id>.accept.json","inbound_reject":"00_System/invites/inbound/<invite_id>.reject.json"},"accept_example":{"path":"00_System/invites/inbound/<invite_id>.accept.json","body":{"schema":"brainfor/v1","type":"invite_accept","invite_id":"<invite_id>"}},"reliability":{"after_edit":"Accept is incomplete until git commit AND push to the default branch succeed. Local edits alone do nothing.","webhook":"Live path: GitHub push webhook → service validates → grants + re-projects both repos.","sync":"If webhook/tunnel is down: after push, POST https://api.brainfor.ai/invite/sync (session) to re-read *.accept.json / *.request.json from GitHub and apply + re-project."},"endpoints":{"agent":"https://api.brainfor.ai/agent","invite_status":"https://api.brainfor.ai/invite/status","invite_sync":"https://api.brainfor.ai/invite/sync","mcp":"https://api.brainfor.ai/mcp"}},"invites":{"schema":"brainfor/v1","surface":"invite_status","decision_rule":"Invite accept/reject decisions MUST be made through Git (commit + push of command files under 00_System/invites/). Projection files and this API status are read-only knowledge. Editing a projection status field does not authorize or accept. Route Grants are created only by the service after a validated accept.","invite_protocol":{"decision_rule":"Invite accept/reject decisions MUST be made through Git (commit + push of command files under 00_System/invites/). Projection files and this API status are read-only knowledge. Editing a projection status field does not authorize or accept. Route Grants are created only by the service after a validated accept.","surface":"github_first_git","authorization":"route_grant_required","paths":{"outbound_request":"00_System/invites/outbound/<peer>.request.json","outbound_projection":"00_System/invites/outbound/<invite_id>.json","inbound_projection":"00_System/invites/inbound/<invite_id>.json","inbound_accept":"00_System/invites/inbound/<invite_id>.accept.json","inbound_reject":"00_System/invites/inbound/<invite_id>.reject.json"},"accept_example":{"path":"00_System/invites/inbound/<invite_id>.accept.json","body":{"schema":"brainfor/v1","type":"invite_accept","invite_id":"<invite_id>"}},"reliability":{"after_edit":"Accept is incomplete until git commit AND push to the default branch succeed. Local edits alone do nothing.","webhook":"Live path: GitHub push webhook → service validates → grants + re-projects both repos.","sync":"If webhook/tunnel is down: after push, POST https://api.brainfor.ai/invite/sync (session) to re-read *.accept.json / *.request.json from GitHub and apply + re-project."},"endpoints":{"agent":"https://api.brainfor.ai/agent","invite_status":"https://api.brainfor.ai/invite/status","invite_sync":"https://api.brainfor.ai/invite/sync","mcp":"https://api.brainfor.ai/mcp"}},"identity":{"github_login":null,"registered":false},"invites":[],"grants":{"active_count":0,"note":"Grants are the only authorization for package delivery. Invite projection status is not a grant."},"agent_instructions":["Read invite statuses here or under 00_System/invites/ in the second-brain repo.","ACCEPT/REJECT only by committing Git command files (see invite_protocol.paths), then push.","Never treat editing invite_projection status as acceptance.","If push webhook may be down: after push, POST /invite/sync (browser session) to apply + re-project.","MCP tools do not accept invites — join only."]},"join":{"mcp":"https://api.brainfor.ai/mcp","note":"MCP is join/onboarding only. Invite accept/reject are Git decisions."},"agent_instructions":["Read invite statuses here or under 00_System/invites/ in the second-brain repo.","ACCEPT/REJECT only by committing Git command files (see invite_protocol.paths), then push.","Never treat editing invite_projection status as acceptance.","If push webhook may be down: after push, POST /invite/sync (browser session) to apply + re-project.","MCP tools do not accept invites — join only."]}