{
  "name": "DeerDawn",
  "description": "AI session memory. DeerDawn stores a project brief — current task, recent decisions, tech stack, open questions, and where you left off — and hands it to every new AI session across Claude, ChatGPT, Codex, Cursor, and Claude Code, so no session starts cold.",
  "supportedInterfaces": [
    {
      "url": "https://api.deerdawn.com/a2a/v1",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "1.0"
    }
  ],
  "provider": {
    "organization": "DeerDawn",
    "url": "https://deerdawn.com"
  },
  "version": "1.0.0",
  "documentationUrl": "https://deerdawn.com/connect",
  "iconUrl": "https://deerdawn.com/brand-mark.png",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "extendedAgentCard": false
  },
  "securitySchemes": {
    "oauth2": {
      "oauth2SecurityScheme": {
        "description": "OAuth 2.1 authorization code + PKCE. Public clients only; register dynamically (RFC 7591) or via a Client ID Metadata Document.",
        "oauth2MetadataUrl": "https://api.deerdawn.com/.well-known/oauth-authorization-server",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://api.deerdawn.com/api/v1/oauth/authorize",
            "tokenUrl": "https://api.deerdawn.com/api/v1/oauth/token",
            "scopes": {
              "context:read": "Read project briefs, memory, and task boards.",
              "context:write": "Write updates back into project briefs and task boards."
            },
            "pkceRequired": true
          }
        }
      }
    },
    "apiKey": {
      "httpAuthSecurityScheme": {
        "description": "Send \"Authorization: Bearer <dd_… API key>\" using a key from https://app.deerdawn.com/api-keys.",
        "scheme": "Bearer",
        "bearerFormat": "DeerDawn API key"
      }
    }
  },
  "securityRequirements": [
    {
      "schemes": {
        "oauth2": {
          "list": [
            "context:read",
            "context:write"
          ]
        }
      }
    },
    {
      "schemes": {
        "apiKey": {
          "list": []
        }
      }
    }
  ],
  "defaultInputModes": [
    "text/plain",
    "application/json"
  ],
  "defaultOutputModes": [
    "text/plain",
    "application/json"
  ],
  "skills": [
    {
      "id": "load-project-brief",
      "name": "Load project brief",
      "description": "Return the current DeerDawn brief for a project — active task, recent decisions, tech stack, open questions, and where the last session left off — so a calling agent starts warm instead of cold.",
      "tags": [
        "memory",
        "context",
        "briefing",
        "session"
      ],
      "examples": [
        "Load the brief for my DeerDawn project.",
        "What is the current state of the checkout-rewrite project?"
      ]
    },
    {
      "id": "search-memory",
      "name": "Search project memory",
      "description": "Search stored project memory across every workspace project and return the matching tasks, decisions, goals, and open questions with the project they belong to.",
      "tags": [
        "memory",
        "search",
        "retrieval"
      ],
      "examples": [
        "What did we decide about the pricing page?",
        "Search memory for anything about the auth migration."
      ]
    },
    {
      "id": "read-task-board",
      "name": "Read task board",
      "description": "Return the project task board — cards grouped across Backlog, Blocked, In Progress, Integration, Testing, and Done — as structured data.",
      "tags": [
        "tasks",
        "planning",
        "status"
      ],
      "examples": [
        "What is in progress on the DeerDawn board?",
        "Show me the task board."
      ]
    },
    {
      "id": "record-memory-update",
      "name": "Record memory update",
      "description": "Write a summary of what changed — a decision made, a task moved, a feature shipped — back into the project brief so the next session inherits it. Requires the context:write scope.",
      "tags": [
        "memory",
        "write",
        "handoff"
      ],
      "examples": [
        "Record that we chose Postgres over DynamoDB for the event store.",
        "Save this session summary to the project brief."
      ]
    }
  ]
}