{
  "$comment": "Silver Lake Financial Group — agent capability manifest (the 'Signal' surface: how a business gets found by, and safely transacts with, AI agents). Illustrative company; the governed crossing is real.",
  "schema_version": "0.1",
  "name": "Silver Lake Financial Group — LoanIQ",
  "description": "A governed agent interface to a 40-year IBM i lending decision engine. Every request — human or agent — crosses one governed border: identity, scope, decision, audit.",
  "provider": {
    "name": "Silver Lake Financial Group",
    "url": "https://www.silverlakefinancialgroup.com/"
  },
  "governed_on": {
    "pattern": "Pegasus4i governed agent-crossing pattern",
    "url": "https://pegasus4i.ai"
  },
  "identity": {
    "$comment": "KYA — Know Your Agent. KYC asks who the customer is; KYA asks what the agent may bind you to. Autonomy without identity is ungovernable.",
    "required": true,
    "scheme": "KYA",
    "envelope": [
      "agent_credential",
      "scope",
      "correlation_id"
    ],
    "policy": "An agent must present a verifiable, signed agent credential. Unverified agents are refused at the door — the request never reaches the system of record.",
    "verifier": "pluggable — build readiness now, commit to a KYA provider (Visa Verified Agent ID / AP2 / Skyfire / ERC-8004) once the standard settles"
  },
  "actions": [
    {
      "name": "resolve_participant",
      "title": "Resolve participant",
      "description": "Establish the participant the agent is acting for. Read-only; establishes WHO before anything decides.",
      "scope": "prequal"
    },
    {
      "name": "prequal_check",
      "title": "Prequalification crossing",
      "description": "The governed prequalification decision — returns APPROVED / DECLINED / REFER, not a lookup, and writes it append-only with the correlation id. Deterministic rule on IBM i (utilization, tenure, delinquency vs limit).",
      "scope": "prequal",
      "governed_door": "SP_ELIGCHK",
      "binds_anyone": false
    }
  ],
  "audit": {
    "ledger": "append-only",
    "correlation_id": "one id threads the request end to end",
    "reversibility": "compensate with a new appended entry — never erase",
    "gate": "override is structurally refused (SQLSTATE 75001 / 75002)"
  },
  "system_of_record": "IBM i · Db2 for i",
  "boundaries": {
    "$comment": "Exposure principle: expose only what was assessed, within what governance allows, to agents whose identity was vouched for. Access is not training; no data fork.",
    "no_sql_or_tables": "agents call a named, scoped procedure — never a table, never raw SQL",
    "least_privilege": "enforced by the OS at the profile and object level, not promised by the application"
  },
  "open_edge": {
    "$comment": "Honest: the one unsolved question industry-wide.",
    "q4_delegation": "No deployed protocol proves which human authorized which agent at the 3rd/4th delegation hop. Here the delegation chain is designed and recorded — contained, not claimed solved."
  },
  "note": "Silver Lake Financial Group is a FICTITIOUS demonstration company — not a real lender, offering no products and accepting no applications. The governed crossing shown is real; any resemblance to an actual company is coincidental.",
  "planned_actions": {
    "$comment": "Home lending — designed and illustrated at /home-loans, NOT live. Listed so agents and reviewers can see the intended scope boundaries. None of these actions can be invoked today.",
    "status": "illustrative",
    "url": "https://www.silverlakefinancialgroup.com/home-loans",
    "agents": [
      {
        "id": "agent://silverlake/intake",
        "scope": "mortgage.intake",
        "may": [
          "read borrower-uploaded documents",
          "file extracted data via scoped procedure",
          "request missing items"
        ],
        "may_not": [
          "waive a requirement",
          "edit filed data"
        ]
      },
      {
        "id": "agent://silverlake/verify",
        "scope": "mortgage.verify",
        "may": [
          "request employment, deposit and tax verifications with borrower authorization",
          "follow up within retry budget"
        ],
        "may_not": [
          "accept an unverified source",
          "exceed retry budget (escalates to file steward)"
        ]
      },
      {
        "id": "agent://silverlake/coordinate",
        "scope": "mortgage.coordinate",
        "may": [
          "order appraisal, title, insurance binder, HOA documents",
          "update borrower status view"
        ],
        "may_not": [
          "commit fees outside policy"
        ]
      },
      {
        "id": "agent://silverlake/conditions",
        "scope": "mortgage.conditions",
        "may": [
          "package file for underwriting",
          "translate conditions to plain language",
          "draft explanation letters for borrower signature"
        ],
        "may_not": [
          "clear a condition",
          "make or change a credit decision"
        ]
      },
      {
        "id": "agent://silverlake/closing",
        "scope": "mortgage.closing",
        "may": [
          "reconcile fees across parties",
          "draft disclosures from LoanIQ figures",
          "quarantine suspicious payment instructions"
        ],
        "may_not": [
          "release or redirect funds",
          "acknowledge on the borrower's behalf"
        ]
      }
    ],
    "human_gates": [
      {
        "gate": "rate_lock",
        "owner": "borrower with loan officer"
      },
      {
        "gate": "credit_decision",
        "owner": "named underwriter",
        "recorded_on": "IBM i system of record"
      },
      {
        "gate": "closing_disclosure_acknowledgment",
        "owner": "borrower"
      },
      {
        "gate": "release_of_funds",
        "owner": "funding desk",
        "control": "verified phone callback to number on file"
      }
    ]
  },
  "commerce": {
    "$comment": "Marketplace agent checkout at the partner store. Runs live in test mode: nothing is really sold or lent and no real money moves. The walkthrough at /marketplace is illustrated; the store itself is live.",
    "status": "live_test_mode",
    "store_url": "https://shop.silverlakefinancialgroup.com",
    "about_url": "https://www.silverlakefinancialgroup.com/marketplace",
    "merchant": "Alder & Pine Home (fictitious partner merchant)",
    "protocols": [
      "UCP",
      "ACP",
      "MCP"
    ],
    "planned_protocols": [
      "Muse connector"
    ],
    "admission": {
      "credential": "a key per agent, issued by the shopper on the store's own consent page",
      "levels": [
        "blocked",
        "browse",
        "transact"
      ],
      "without_key": "browse at most; never buys",
      "carries": [
        "spending_limit",
        "end_date"
      ],
      "enforcement": "the store enforces the limit across every cart; splitting a purchase does not get around it",
      "planned": "signed agent credentials (Know Your Agent verification)"
    },
    "actions": [
      {
        "name": "search_products",
        "scope": "browse"
      },
      {
        "name": "get_my_limits",
        "scope": "transact"
      },
      {
        "name": "create_cart",
        "scope": "transact",
        "limit": "the shopper's spending limit"
      },
      {
        "name": "request_approval",
        "scope": "transact",
        "effect": "hands the cart to the shopper; nothing is charged"
      },
      {
        "name": "get_order_status",
        "scope": "transact",
        "returns": "paid (with order number), sent back (with reason) or expired"
      }
    ],
    "payment": "the agent never pays; the shopper reviews the cart on their own device and chooses how to pay",
    "financing": {
      "decided_by": "LoanIQ SP_ELIGCHK on IBM i",
      "crosses": "participant id and amount only; no SSN, no date of birth",
      "refer": "credit desk (a person)",
      "shown_to": "the shopper only; the agent never sees or accepts financing terms",
      "accept_terms": "shopper_only"
    },
    "record": "append-only acceptance record, each entry hash-chained to the one before"
  }
}
