{
  "version": "2026-06-13.ambitious-2",
  "agent": "Gregers",
  "telegram_bot": "@GregersConcordiumBot",
  "public_domain": "https://gregers.dev",
  "categories": [
    {
      "id": "identity",
      "name": "Public identity and provenance",
      "capabilities": [
        {
          "id": "identity_card",
          "description": "Expose a concise public identity card for Gregers",
          "surfaces": [
            "Telegram /identity",
            "https://gregers.dev/community",
            "status.json"
          ],
          "dfns_required": false
        },
        {
          "id": "agent_card",
          "description": "Serve the CIS-8004/A2A agent card",
          "surfaces": [
            "/.well-known/dfns-agent-card.json"
          ],
          "dfns_required": false
        },
        {
          "id": "onchain_status",
          "description": "Report CIS-8004 token #40 status and known DFNS/CIS-8 caveats",
          "surfaces": [
            "status.json",
            "daily brief"
          ],
          "dfns_required": false
        },
        {
          "id": "hash_anchor",
          "description": "Detect drift between live agent card and on-chain metadata hash",
          "surfaces": [
            "health",
            "daily brief"
          ],
          "dfns_required": false
        },
        {
          "id": "llms_context",
          "description": "Expose llms.txt and public knowledge bundle for other agents",
          "surfaces": [
            "/llms.txt",
            "/static/knowledge-bundle.json",
            "/static/knowledge.html"
          ],
          "dfns_required": false
        },
        {
          "id": "jsonld_manifest",
          "description": "Expose schema.org JSON-LD and agent manifest",
          "surfaces": [
            "/static/schema.jsonld",
            "/static/agent-manifest.json"
          ],
          "dfns_required": false
        }
      ]
    },
    {
      "id": "telegram_community",
      "name": "Telegram community operation",
      "capabilities": [
        {
          "id": "group_onboarding",
          "description": "Detect when added to a group, record chat metadata, notify Alexander",
          "surfaces": [
            "Telegram my_chat_member",
            "state.json"
          ],
          "dfns_required": false
        },
        {
          "id": "admin_packet",
          "description": "Provide community admins with invite instructions",
          "surfaces": [
            "/telegram",
            "/static/telegram.html",
            "/invite"
          ],
          "dfns_required": false
        },
        {
          "id": "public_reply_guardrails",
          "description": "Respond only when relevant, mentioned, or asked high-signal governance/standards questions",
          "surfaces": [
            "Telegram message handler"
          ],
          "dfns_required": false
        },
        {
          "id": "owner_ops",
          "description": "Owner can post, queue, flush, reload, sync groups, and inspect state",
          "surfaces": [
            "Telegram owner commands",
            "gregers_ops.py"
          ],
          "dfns_required": false
        },
        {
          "id": "activity_digest",
          "description": "Produce digest of recently observed Telegram community messages",
          "surfaces": [
            "/digest",
            "daily brief"
          ],
          "dfns_required": false
        }
      ]
    },
    {
      "id": "web_surface",
      "name": "Public web surface",
      "capabilities": [
        {
          "id": "landing",
          "description": "Serve campaign/identity landing page",
          "surfaces": [
            "/",
            "/primary.html"
          ],
          "dfns_required": false
        },
        {
          "id": "community_page",
          "description": "Serve public contact/community page",
          "surfaces": [
            "/community"
          ],
          "dfns_required": false
        },
        {
          "id": "technical_achievements",
          "description": "Serve technical achievements narrative",
          "surfaces": [
            "/achievements"
          ],
          "dfns_required": false
        },
        {
          "id": "machine_status",
          "description": "Serve machine-readable and human-readable runtime status",
          "surfaces": [
            "/static/status.json",
            "/static/status.html"
          ],
          "dfns_required": false
        },
        {
          "id": "web_fallback",
          "description": "Start a user-managed Flask fallback if root web service dies",
          "surfaces": [
            "gregers-web-fallback.service",
            "ops watchdog"
          ],
          "dfns_required": false
        },
        {
          "id": "request_intake",
          "description": "Accept public questions, invitations, bug reports, and technical requests into an append-only intake store",
          "surfaces": [
            "/static/ask.html",
            "/api/intake",
            "/api/intake/summary",
            "Telegram /requests"
          ],
          "dfns_required": false
        },
        {
          "id": "machine_snapshot",
          "description": "Expose a combined status/capabilities/intake snapshot for other agents and monitors",
          "surfaces": [
            "/api/snapshot"
          ],
          "dfns_required": false
        },
        {
          "id": "operator_runbook",
          "description": "Serve a public-safe operations runbook for recovery and maintenance",
          "surfaces": [
            "/static/runbook.html"
          ],
          "dfns_required": false
        },
        {
          "id": "api_documentation",
          "description": "Serve public API documentation for snapshot and intake endpoints",
          "surfaces": [
            "/static/api.html"
          ],
          "dfns_required": false
        },
        {
          "id": "indexing_metadata",
          "description": "Expose robots.txt, sitemap.xml, JSON Feed, and security contact metadata",
          "surfaces": [
            "/robots.txt",
            "/sitemap.xml",
            "/.well-known/security.txt",
            "/static/feed.json"
          ],
          "dfns_required": false
        },
        {
          "id": "security_headers",
          "description": "Apply baseline security headers to public web responses",
          "surfaces": [
            "Flask after_request"
          ],
          "dfns_required": false
        },
        {
          "id": "faq_surface",
          "description": "Serve public FAQ for community/admins",
          "surfaces": [
            "/static/faq.html",
            "/static/faq.json"
          ],
          "dfns_required": false
        },
        {
          "id": "governance_brief",
          "description": "Serve concise governance candidacy brief",
          "surfaces": [
            "/static/governance-brief.html",
            "/static/governance-brief.json"
          ],
          "dfns_required": false
        },
        {
          "id": "press_kit",
          "description": "Serve reusable media/press kit",
          "surfaces": [
            "/static/press.html",
            "/static/press.json"
          ],
          "dfns_required": false
        },
        {
          "id": "links_directory",
          "description": "Serve canonical link directory",
          "surfaces": [
            "/static/links.html",
            "/static/links.json"
          ],
          "dfns_required": false
        },
        {
          "id": "api_schema",
          "description": "Serve OpenAPI description for public API",
          "surfaces": [
            "/static/openapi.json"
          ],
          "dfns_required": false
        },
        {
          "id": "rss_feed",
          "description": "Serve machine-readable update feed",
          "surfaces": [
            "/static/feed.xml"
          ],
          "dfns_required": false
        },
        {
          "id": "metrics_surface",
          "description": "Serve public operational/capability metrics",
          "surfaces": [
            "/static/metrics.html",
            "/static/metrics.json"
          ],
          "dfns_required": false
        },
        {
          "id": "verification_policy",
          "description": "Serve public verification/claims policy",
          "surfaces": [
            "/static/verification-policy.html",
            "/static/verification-policy.json"
          ],
          "dfns_required": false
        },
        {
          "id": "status_badge",
          "description": "Serve embeddable operational badge",
          "surfaces": [
            "/static/badge.svg"
          ],
          "dfns_required": false
        },
        {
          "id": "public_directory",
          "description": "Serve index of public Gregers surfaces",
          "surfaces": [
            "/static/directory.html"
          ],
          "dfns_required": false
        },
        {
          "id": "openapi_spec",
          "description": "Publish OpenAPI spec and API documentation",
          "surfaces": [
            "/static/openapi.json",
            "/static/api.html"
          ],
          "dfns_required": false
        },
        {
          "id": "robots_sitemap_security",
          "description": "Publish robots, sitemap, and security contact metadata",
          "surfaces": [
            "/robots.txt",
            "/sitemap.xml",
            "/.well-known/security.txt"
          ],
          "dfns_required": false
        }
      ]
    },
    {
      "id": "communications_monitoring",
      "name": "Communications monitoring",
      "capabilities": [
        {
          "id": "x_monitor",
          "description": "Monitor X for direct mentions, governance chatter, official posts, CIS/Web3ID/ZKP/PLT topics",
          "surfaces": [
            "x_feed_monitor.py",
            "cron"
          ],
          "dfns_required": false
        },
        {
          "id": "email_monitor",
          "description": "Monitor gregers@gregers.dev for relevant community mail",
          "surfaces": [
            "gregers_email_monitor.py",
            "cron"
          ],
          "dfns_required": false
        },
        {
          "id": "daily_brief",
          "description": "Send daily intelligence brief with Telegram/X/health state",
          "surfaces": [
            "gregers_daily_brief.py",
            "cron"
          ],
          "dfns_required": false
        },
        {
          "id": "silent_watchdogs",
          "description": "Run zero-token watchdogs that alert only on change/failure",
          "surfaces": [
            "Hermes cron no_agent jobs"
          ],
          "dfns_required": false
        },
        {
          "id": "official_monitor",
          "description": "Monitor official Concordium web surfaces for governance/standards changes",
          "surfaces": [
            "gregers_official_monitor.py",
            "/static/official-monitor.json"
          ],
          "dfns_required": false
        },
        {
          "id": "governance_clock",
          "description": "Track nomination deadline countdown and publish machine-readable countdown",
          "surfaces": [
            "gregers_governance_clock.py",
            "/static/governance.json",
            "/static/governance.html"
          ],
          "dfns_required": false
        }
      ]
    },
    {
      "id": "payments_and_onchain",
      "name": "Payments and on-chain actions",
      "capabilities": [
        {
          "id": "registry_queries",
          "description": "Query CIS-8004 registry and agent wallet/status",
          "surfaces": [
            "Concordium MCP",
            "health scripts"
          ],
          "dfns_required": false
        },
        {
          "id": "age_proofs",
          "description": "Generate and verify Concordium age >= 18 proof requests",
          "surfaces": [
            "Concordium wallet MCP"
          ],
          "dfns_required": false
        },
        {
          "id": "send_ccd",
          "description": "Send CCD from DFNS wallet with registry-aware authorization",
          "surfaces": [
            "send_ccd MCP"
          ],
          "dfns_required": true
        },
        {
          "id": "send_plt",
          "description": "Send PLT such as EURR from DFNS wallet",
          "surfaces": [
            "send_plt MCP",
            "/pay"
          ],
          "dfns_required": true
        },
        {
          "id": "set_agent_uri",
          "description": "Update on-chain agent URI/hash after DFNS signing fix",
          "surfaces": [
            "CIS-8004 setAgentURI"
          ],
          "dfns_required": true
        },
        {
          "id": "cis8_broadcast",
          "description": "Broadcast prepared external key bindings",
          "surfaces": [
            "CIS-8 register"
          ],
          "dfns_required": true
        }
      ]
    },
    {
      "id": "safety_and_quality",
      "name": "Safety, quality, and regression",
      "capabilities": [
        {
          "id": "public_claim_regression",
          "description": "Prevent public surfaces from claiming unverified CIS-8 live status",
          "surfaces": [
            "gregers_regression_check.py"
          ],
          "dfns_required": false
        },
        {
          "id": "service_watchdog",
          "description": "Repair bot/web process state without human help",
          "surfaces": [
            "gregers_ops_watchdog.py"
          ],
          "dfns_required": false
        },
        {
          "id": "group_readiness",
          "description": "Verify BotFather group settings and group state",
          "surfaces": [
            "gregers_group_readiness.py"
          ],
          "dfns_required": false
        },
        {
          "id": "capability_tests",
          "description": "Run executable tests over all major Gregers surfaces",
          "surfaces": [
            "gregers_capability_test.py"
          ],
          "dfns_required": false
        },
        {
          "id": "state_backups",
          "description": "Back up Gregers operational state and intake data on a schedule",
          "surfaces": [
            "gregers_backup.py",
            "~/gregers_backups"
          ],
          "dfns_required": false
        },
        {
          "id": "uptime_history",
          "description": "Record public endpoint uptime history and alert on state changes",
          "surfaces": [
            "gregers_uptime_history.py",
            "~/.gregers_uptime_history.jsonl"
          ],
          "dfns_required": false
        },
        {
          "id": "log_cleanup",
          "description": "Prune old logs and backups so the Pi does not fill its disk",
          "surfaces": [
            "gregers_cleanup.py"
          ],
          "dfns_required": false
        },
        {
          "id": "public_surface_audit",
          "description": "Continuously audit endpoints, headers, and public claim safety",
          "surfaces": [
            "gregers_public_audit.py"
          ],
          "dfns_required": false
        },
        {
          "id": "public_snapshot_archive",
          "description": "Archive public status/capability/API snapshots for recovery and diffing",
          "surfaces": [
            "gregers_public_snapshot.py",
            "~/gregers_public_snapshots"
          ],
          "dfns_required": false
        },
        {
          "id": "state_backup_restore",
          "description": "Back up operational state and provide safe restore staging script",
          "surfaces": [
            "gregers_backup.py",
            "gregers_restore.sh"
          ],
          "dfns_required": false
        },
        {
          "id": "public_audit",
          "description": "Audit public endpoints, security headers, and unsafe claims",
          "surfaces": [
            "gregers_public_audit.py"
          ],
          "dfns_required": false
        }
      ]
    }
  ],
  "pending_human_gates": [
    "Community admin adds @GregersConcordiumBot to the Concordium Telegram group",
    "DFNS provider-side Concordium signing fix"
  ]
}
