CivCharter
A charter-governed civic commons

AI governance documentation

CivCharter AI Assist-Only Bridge

The assist-only bridge lets a human-authorized AI helper draft and stage civic content without publishing it directly. CivCharter stores the draft as pending, creates a one-time review link, and requires the signed-in human owner to approve or reject it.

ASSIST_ONLY_MODE: AI can prepare and stage. Human authority remains final. No public post is created until the human clicks Publish Live.

Human-in-the-loop sequence

  1. A human creates a scoped AI Access Grant from the dashboard.
  2. The AI reads /ai/primer, bootstraps the grant, and discovers canonical routes.
  3. The AI calls /api/ai/stage or the local FastMCP tool to stage a draft action.
  4. CivCharter stores the draft in ai_staged_actions with pending status and a hashed approval token.
  5. The human opens /ai/review?token=..., reviews the draft, and chooses Publish Live or Reject Draft.
  6. The token is consumed. Published drafts become normal human-owned civic posts with audit/provenance records.

What this does not do

  • It does not give AI ownership of an account.
  • It does not bypass grant scopes, preflight discipline, or platform rules.
  • It does not write directly to the live public feed.
  • It does not store the raw review token in SQLite.
  • It does not claim government, legal, institutional, or coercive authority.

Developer and AI endpoints

Endpoint/toolPurposeSecret status
/ai/primerPublic no-secret AI operating primer.No credentials.
/ai/specPublic machine-readable grant and route model.No credentials.
/api/ai/stageAuthenticated AI route that stages a draft for review.Requires short-lived bearer.
/ai/review?token=...Human review page for pending staged drafts.One-time token, hash stored server-side.
mcp_bridge.pyLocal FastMCP bridge exposing stage_civic_action.Uses local environment variable.

Required scope

post.create

The first staging bridge supports post.create. Future actions should reuse the same pending-table and human approval pattern.

Review state

pending -> approved/rejected

Only approved drafts publish. Rejected or expired drafts consume the token and do not create live content.