Skip to content
Back to SoftwareForge

Card snapshot

refactory.agent.opsera.dev · 2026-08-07 08:14:43 UTC · d0e91c30e875d17ea1b892766971212a69cd4701ba9e260ae831885ec1205458

This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.

{
  "name": "SoftwareForge",
  "description": "AI-native Day 0 modernization platform \u2014 generates PRDs, BRDs, architecture, work orders, RTMs, and security reviews from product ideas or legacy code",
  "version": "1.0.0",
  "protocolVersion": "1.0",
  "supportedInterfaces": [
    {
      "url": "http://refactory.agent.opsera.dev/a2a",
      "protocol": "JSONRPC",
      "protocolVersion": "1.0"
    }
  ],
  "url": "http://refactory.agent.opsera.dev/a2a",
  "preferredTransport": "JSONRPC",
  "additionalInterfaces": [
    {
      "url": "http://refactory.agent.opsera.dev/a2a",
      "transport": "JSONRPC"
    }
  ],
  "provider": {
    "organization": "Opsera",
    "url": "https://www.opsera.io"
  },
  "capabilities": {
    "streaming": true,
    "pushNotifications": false,
    "extendedAgentCard": true
  },
  "securitySchemes": {
    "forgeToken": {
      "httpAuthSecurityScheme": {
        "scheme": "bearer",
        "bearerFormat": "forge_token",
        "description": "Forge API token (forge_xxx) \u2014 create via Forge UI or POST /tokens"
      }
    }
  },
  "securityRequirements": [
    {
      "forgeToken": []
    }
  ],
  "defaultInputModes": [
    "text/plain",
    "application/json"
  ],
  "defaultOutputModes": [
    "application/json",
    "text/plain"
  ],
  "skills": [
    {
      "id": "generate-assessment",
      "name": "Code Assessment",
      "description": "Analyze a codebase or product description to produce an initial assessment with modernization insights",
      "tags": [
        "generation",
        "assessment",
        "analysis"
      ],
      "examples": [
        "Assess this legacy Java application for modernization"
      ]
    },
    {
      "id": "generate-intent",
      "name": "Analyze Intent",
      "description": "Capture product intent from text, documents, images, and URLs to produce an intent profile",
      "tags": [
        "generation",
        "intent",
        "requirements"
      ],
      "examples": [
        "Analyze the intent for a notification microservice"
      ]
    },
    {
      "id": "generate-brd",
      "name": "Generate BRD",
      "description": "Generate a Business Requirements Document from approved intent profile",
      "tags": [
        "generation",
        "brd",
        "business-requirements"
      ],
      "examples": [
        "Generate a BRD for our CRM modernization"
      ]
    },
    {
      "id": "generate-prd",
      "name": "Generate PRD",
      "description": "Generate a Product Requirements Document with functional specs, user stories overview, and NFRs",
      "tags": [
        "generation",
        "prd",
        "requirements"
      ],
      "examples": [
        "Create a PRD for a real-time notification service"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "generate-prd-spec",
      "name": "Generate PRD Spec",
      "description": "Generate a technical PRD specification with detailed acceptance criteria",
      "tags": [
        "generation",
        "prd-spec",
        "specification"
      ]
    },
    {
      "id": "generate-architecture",
      "name": "Generate Architecture",
      "description": "Produce architecture options with diagrams, technology recommendations, and trade-off analysis",
      "tags": [
        "generation",
        "architecture",
        "design"
      ],
      "examples": [
        "Design the architecture for a microservices-based payment platform"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "generate-work-orders",
      "name": "Generate Work Orders",
      "description": "Break down PRD/architecture into epics and user stories with complexity labels and acceptance criteria",
      "tags": [
        "generation",
        "work-orders",
        "planning"
      ]
    },
    {
      "id": "generate-rtm",
      "name": "Generate RTM",
      "description": "Produce a Requirements Traceability Matrix linking requirements to test cases",
      "tags": [
        "generation",
        "testing",
        "rtm"
      ]
    },
    {
      "id": "council-review",
      "name": "Council Review",
      "description": "Multi-persona AI deliberation reviewing stage outputs for quality, gaps, and technical soundness",
      "tags": [
        "review",
        "quality",
        "council"
      ],
      "examples": [
        "Run a council review on the architecture artifact"
      ]
    },
    {
      "id": "security-analysis",
      "name": "Security Analysis",
      "description": "OWASP-based security analysis of architecture and implementation plans",
      "tags": [
        "security",
        "analysis",
        "owasp"
      ]
    },
    {
      "id": "code-scan",
      "name": "Code Scan",
      "description": "Run Trivy, Grype, Semgrep scanners against a linked repository with optional AI report",
      "tags": [
        "security",
        "code-scan",
        "vulnerability"
      ]
    },
    {
      "id": "migration-recipe",
      "name": "Migration Recipe",
      "description": "Generate step-by-step migration recipes with code search and web research for legacy modernization",
      "tags": [
        "migration",
        "recipe",
        "modernization"
      ]
    },
    {
      "id": "approve-stage",
      "name": "Approve Stage",
      "description": "Approve a journey stage to unlock downstream generation. Returns computed state showing next available steps.",
      "tags": [
        "lifecycle",
        "approval",
        "pipeline"
      ],
      "examples": [
        "Approve the intent stage",
        "Approve PRD"
      ],
      "inputModes": [
        "application/json"
      ]
    },
    {
      "id": "reject-stage",
      "name": "Reject Stage",
      "description": "Reject (un-approve) a journey stage with optional reason. Blocks downstream generation until re-approved.",
      "tags": [
        "lifecycle",
        "approval",
        "pipeline"
      ],
      "examples": [
        "Reject the architecture with reason"
      ]
    },
    {
      "id": "get-journey-state",
      "name": "Get Journey State",
      "description": "Get the current project journey state including stage unlock/completion status, approval flags, artifact pointers, and RAG status. Use to determine which skills to call next.",
      "tags": [
        "lifecycle",
        "state",
        "query"
      ],
      "examples": [
        "Check project progress",
        "What stages are unlocked?"
      ],
      "outputModes": [
        "application/json"
      ]
    }
  ]
}