{"id":"347f7e54-f445-4b0a-b528-f33968ecf0ee","entityType":"agent","slug":"clawhub-daav3-agentic-lending-morpho","name":"Agentic Lending Morpho","canonicalUrl":"https://www.xpersona.co/agent/clawhub-daav3-agentic-lending-morpho","canonicalPath":"/agent/clawhub-daav3-agentic-lending-morpho","generatedAt":"2026-10-10T17:34:11.679Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T14:03:11.317Z","emptyReason":null},"description":"Plan and execute the Morpho-first agentic lending workflow for Api3-backed markets. Use when a user wants a Morpho market or market set for selected collater...","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.4K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s176sa2svdwgks5ycz1yngewb184yand:agentic-lending-morpho","sourceUrl":"https://clawhub.ai/daav3/agentic-lending-morpho","homepage":"https://clawhub.ai/daav3/skills/agentic-lending-morpho","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/daav3/agentic-lending-morpho","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/daav3/skills/agentic-lending-morpho","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":63,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Agentic Lending Morpho technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T14:03:11.317Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T14:03:11.317Z","emptyReason":null},"stars":null,"forks":null,"downloads":1398,"packageName":null,"latestVersion":"0.1.11","tractionLabel":"1.4K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T14:03:11.316Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T14:03:11.317Z","lastCrawledAt":"2026-10-10T14:03:11.316Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T14:03:11.316Z","lastVerifiedAt":null,"highlights":[{"version":"0.1.11","createdAt":"2026-06-15T12:04:24.178Z","changelog":"Normalize Morpho funding-mode/docs, accept bare private keys, re-thread live chained deployment from adapter receipts, remove scanner-triggering private-key examples, and publish a trimmed skill bundle without stale run artifacts.","fileCount":47,"zipByteSize":150138},{"version":"0.1.10","createdAt":"2026-05-27T09:50:35.411Z","changelog":"Compact Morpho wrapper payload artifacts: compact default output, payloadRef/dataBytes/payloadOmitted deploy artifacts, dedicated transaction-payload files, and updated handoff/verification docs.","fileCount":58,"zipByteSize":164842},{"version":"0.1.9","createdAt":"2026-05-20T13:07:05.310Z","changelog":"Harden the Morpho live wrapper path with preflight/decision artifacts, placeholder guards, deployment packs, live feed-funding and market verification handoff checks, plus the Arbitrum FRAX/USDC live canary fix for chained deployment artifacts.","fileCount":46,"zipByteSize":138752},{"version":"0.1.8","createdAt":"2026-05-19T13:37:27.205Z","changelog":"Script more of the honest Morpho path, sync the packaged feed-funding runtime to the latest communal-proxy-aware flow, add rollback-plan.json artifacts for resumable runs, and fix packaged bin executability for real installs.","fileCount":46,"zipByteSize":143537},{"version":"0.1.7","createdAt":"2026-05-08T07:40:00.877Z","changelog":"Move deployment bytecode out of inline literals and avoid false-positive secret-literal moderation hits","fileCount":37,"zipByteSize":123245},{"version":"0.1.6","createdAt":"2026-05-08T00:05:32.748Z","changelog":"Replace secret-looking private key placeholders in CLI help text","fileCount":30,"zipByteSize":120397},{"version":"0.1.5","createdAt":"2026-05-08T00:02:53.881Z","changelog":"Self-contained bundle + cold-install smoke fixes","fileCount":30,"zipByteSize":120329},{"version":"0.1.4","createdAt":"2026-05-07T15:40:51.479Z","changelog":"Clarify this is the execution-capable Morpho variant and make the planning-to-live-deployment boundary more explicit.","fileCount":5,"zipByteSize":7188}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s176sa2svdwgks5ycz1yngewb184yand:agentic-lending-morpho","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s176sa2svdwgks5ycz1yngewb184yand:agentic-lending-morpho` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/daav3/agentic-lending-morpho before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-daav3-agentic-lending-morpho/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-daav3-agentic-lending-morpho/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-daav3-agentic-lending-morpho/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-daav3-agentic-lending-morpho/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-daav3-agentic-lending-morpho/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-daav3-agentic-lending-morpho/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T17:34:11.671Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-daav3-agentic-lending-morpho/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-daav3-agentic-lending-morpho/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-daav3-agentic-lending-morpho/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-daav3-agentic-lending-morpho/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T14:03:11.317Z","emptyReason":null},"readme":"Skill: Agentic Lending Morpho\n\nOwner: daav3\n\nSummary: Plan and execute the Morpho-first agentic lending workflow for Api3-backed markets. Use when a user wants a Morpho market or market set for selected collater...\n\nTags: latest:0.1.11\n\nVersion history:\n\nv0.1.11 | 2026-06-15T12:04:24.178Z | user\n\nNormalize Morpho funding-mode/docs, accept bare private keys, re-thread live chained deployment from adapter receipts, remove scanner-triggering private-key examples, and publish a trimmed skill bundle without stale run artifacts.\n\nv0.1.10 | 2026-05-27T09:50:35.411Z | user\n\nCompact Morpho wrapper payload artifacts: compact default output, payloadRef/dataBytes/payloadOmitted deploy artifacts, dedicated transaction-payload files, and updated handoff/verification docs.\n\nv0.1.9 | 2026-05-20T13:07:05.310Z | user\n\nHarden the Morpho live wrapper path with preflight/decision artifacts, placeholder guards, deployment packs, live feed-funding and market verification handoff checks, plus the Arbitrum FRAX/USDC live canary fix for chained deployment artifacts.\n\nv0.1.8 | 2026-05-19T13:37:27.205Z | user\n\nScript more of the honest Morpho path, sync the packaged feed-funding runtime to the latest communal-proxy-aware flow, add rollback-plan.json artifacts for resumable runs, and fix packaged bin executability for real installs.\n\nv0.1.7 | 2026-05-08T07:40:00.877Z | user\n\nMove deployment bytecode out of inline literals and avoid false-positive secret-literal moderation hits\n\nv0.1.6 | 2026-05-08T00:05:32.748Z | user\n\nReplace secret-looking private key placeholders in CLI help text\n\nv0.1.5 | 2026-05-08T00:02:53.881Z | user\n\nSelf-contained bundle + cold-install smoke fixes\n\nv0.1.4 | 2026-05-07T15:40:51.479Z | user\n\nClarify this is the execution-capable Morpho variant and make the planning-to-live-deployment boundary more explicit.\n\nv0.1.3 | 2026-05-06T12:22:06.329Z | user\n\nAdd explicit public metadata and strengthen the Morpho skill’s guarded execution contract, reporting boundaries, and verification language.\n\nv0.1.2 | 2026-05-06T11:55:49.875Z | user\n\nRollback to the 0.1.0 public skill artifact while we investigate newer scanner regressions.\n\nv0.1.1 | 2026-05-06T11:32:49.442Z | user\n\nReduce scanner-trigger language in the published Morpho bundle without changing the workflow contract.\n\nv0.1.0 | 2026-05-05T21:39:32.746Z | user\n\nInitial public Morpho skill release with validated packaging.\n\nArchive index:\n\nArchive v0.1.11: 47 files, 150138 bytes\n\nFiles: data/part2/contract-artifacts/Api3PartialAggregatorV2V3Interface.bytecode.txt (2884b), data/part2/contract-artifacts/Api3PartialAggregatorV2V3Interface.json (5707b), data/part2/contract-artifacts/ChainlinkInfrequentOracle.bytecode.txt (6011b), data/part2/contract-artifacts/ChainlinkInfrequentOracle.json (4247b), data/part2/contract-artifacts/ChainlinkOracle.bytecode.txt (6914b), data/part2/contract-artifacts/ChainlinkOracle.json (4209b), data/part2/contract-artifacts/CrossAdapter.bytecode.txt (4620b), data/part2/contract-artifacts/CrossAdapter.json (3967b), data/part2/contract-artifacts/EulerRouter.bytecode.txt (7835b), data/part2/contract-artifacts/EulerRouter.json (8428b), data/part2/contract-artifacts/GenericFactory.json (866b), data/part2/contract-artifacts/MorphoApi3CompositeOracle.bytecode.txt (4992b), data/part2/contract-artifacts/MorphoApi3CompositeOracle.json (2880b), data/part2/contract-artifacts/MorphoApi3DirectOracle.bytecode.txt (4106b), data/part2/contract-artifacts/MorphoApi3DirectOracle.json (2057b), data/part2/evk-addresses.api3-supported-overlap.json (6720b), data/part2/feed-status.json (1947b), data/part2/market-registry.json (1824b), data/part2/morpho/arbitrum-reference-config.json (1622b), package.json (1209b), references/current_capabilities.md (6345b), references/deployment-packs/arbitrum/operator-notes.md (1076b), references/deployment-packs/arbitrum/order-metadata.json (1065b), references/deployment-packs/base/operator-notes.md (329b), references/deployment-packs/base/order-metadata.json (723b), references/deployment-packs/bsc/operator-notes.md (326b), references/deployment-packs/bsc/order-metadata.json (718b), references/deployment-packs/ethereum/operator-notes.md (330b), references/deployment-packs/ethereum/order-metadata.json (721b), references/example-request.json (440b), references/live-request-template.json (1634b), references/morpho-oracle-adapter.md (1975b), references/state-machine.md (4283b), references/summary-contract.md (5387b), references/workflow.md (3698b), scripts/bin/agentic-lending-morpho.js (173b), scripts/bin/api3-feed-manager.js (170b), scripts/bin/part2-morpho-planner.js (173b), scripts/bin/part2-planner.js (166b), scripts/lib/api3-feed-manager.js (133132b), scripts/lib/part2-chain-bootstrap.js (4049b), scripts/lib/part2-morpho-planner.js (185949b), scripts/lib/part2-planner.js (192051b), scripts/lib/part2-recipes.js (1330b), skill-card.md (3424b), SKILL.md (13813b), _meta.json (142b)\n\nFile v0.1.11:SKILL.md\n\n---\nname: agentic-lending-morpho\ndescription: Plan and execute the Morpho-first agentic lending workflow for Api3-backed markets. Use when a user wants a Morpho market or market set for selected collateral and borrow assets, needs the oracle route resolved for those assets, wants Api3 feed readiness checked or funded when safe, and then wants the Morpho oracle + market deployment and verification path run honestly. This variant can progress from planning into real feed funding and market deployment when the supported path is available and the user explicitly allows signer-backed execution. Default to planning, dry-run, or guarded verification first. Do not use for Euler EVK flows or unsupported oracle routes.\nmetadata:\n  clawdis:\n    homepage: https://github.com/daav3/agentic-lending-project\n    author: daav3\n    requires:\n      bins:\n        - node\n      env:\n        - LIVE_SIGNER_ENV\n      config:\n        - request.morpho-workflow.json\n    primaryEnv: LIVE_SIGNER_ENV\n---\n\n# Agentic Lending Morpho\n\nThis is the execution-capable Morpho workflow skill.\n\nIt is the Morpho-side counterpart to the EVK skill. It is still more conservative than the EVK path, but it now supports a real end-to-end flow for compatible requests: resolve the requested collateral and borrow assets, check feed readiness, execute funding when available, deploy the oracle adapter, deploy the Morpho market, and verify the result.\n\nThis published skill carries its own local runtime and bundled planning artifacts under `scripts/lib/` and `data/part2/` rather than assuming a separate repo checkout is available at execution time.\n\nIt should script as much of the Morpho path as the code can honestly support: feed readiness classification, executable funding, communal proxy deployment when needed, propagation rechecks, adapter deployment, market deployment, verification, resumable artifacts, and a generated `rollback-plan.json` for every orchestrated run.\n\nWhen the supported path is available and the user explicitly asks for it, this variant can send real transactions and should be treated as a guarded execution skill rather than a planning-only helper.\n\n## Golden path for normal use\nUse one request file and one wrapper command. Do not pick lower-level commands unless debugging or resuming a known run.\n\n1. Create `request.json` with exact `collateralAssets`, exact `borrowAssets`, chain, RPC, Morpho policy, feed-funding intent, and send/broadcast intent.\n   - For a live-shaped Arbitrum WETH/USDC example, copy `references/live-request-template.json` and replace every placeholder before use.\n   - `feedFunding.mode` should be written with the canonical enum values: `classify-only`, `dry-run`, or `real-send`.\n   - The runtime also accepts natural aliases (`check-only` → `classify-only`, `simulate` → `dry-run`), but docs and saved request files should stick to the canonical values.\n   - Never paste a raw private key into chat. For live execution, point the request at a local environment variable such as `LIVE_SIGNER_ENV` via `feedFunding.privateKeyEnv` / `send.privateKeyEnv`.\n2. Preflight before live-capable execution:\n\n   `agentic-lending-morpho preflight-morpho-market --input-file ./request.json --format json`\n\n   Stop unless `safeToRun === true`. Preflight rejects placeholder RPCs, dummy addresses, dummy private keys, mismatched RPC chain IDs, and missing live deployment policy.\n3. Run:\n\n   `agentic-lending-morpho ensure-feeds-and-deploy-morpho-market --input-file ./request.json --format json`\n\n   - The wrapper now emits phase-by-phase progress on stderr for preflight, feed classification, funding/handoff, propagation wait, deployment, and verification.\n   - Use `--progress jsonl` for machine-readable progress or `--progress silent` to suppress live progress output.\n\n4. Inspect the persisted run directory, especially `approval-summary.json`, `agent-decision.json`, `summary.json`, `rollback-plan.json`, and `progress-events.jsonl`.\n   - `approval-summary.json` is the explicit handoff artifact for user approval: what will run, whether it may send txs, expected duration, and likely resource impact.\n5. Report full success only when `phase === \"completed\"`, there are no hard blockers, and `verifyResult.verified === true`.\n\nIf the run needs continuation, resume the same run directory rather than reconstructing state from memory:\n\n`agentic-lending-morpho ensure-feeds-and-deploy-morpho-market --resume-from-run-dir <run-dir> --input-file <run-dir>/request.json --format json`\n\nTimeouts and stalls should now name the stalled phase and point back to `--resume-from-run-dir` when that is the right recovery path.\n\n## Safety expectations\n- default to planning, dry-run, or guarded verification first\n- only use signer-backed feed funding or market deployment when the user explicitly asks for it\n- treat browser-assisted funding as an explicit handoff, not a silent autonomous path\n- require exact asset selection before deployment planning or submission\n- require a usable RPC endpoint for any on-chain verification claim\n- never ask the user to paste a raw private key into chat\n- keep signer material in environment variables or local runtime config, never in committed files or request templates\n\n## Read next\n1. `references/workflow.md`\n2. `references/current_capabilities.md`\n3. `references/morpho-oracle-adapter.md`\n4. `references/state-machine.md` when feed activation and market deployment are both in scope\n5. `references/summary-contract.md` before interpreting wrapper output or claiming success\n\n## Minimum required inputs\nGather these before attempting a Morpho-first workflow:\n- chain name and chain id\n- explicit `collateralAssets`\n- explicit `borrowAssets`\n- target market shape or risk intent\n- whether the user wants planning only, dry-run, or transaction submission\n- live RPC availability for the chain if anything beyond planning is expected\n- Morpho policy inputs needed for deployment on that chain when transaction submission is requested\n\nIf any of those are missing, stop and ask instead of inventing them.\n\n## Request-shape rule\nWhen preparing a request for this skill, always express the market assets explicitly as:\n- `collateralAssets`: array of `{ symbol, address }`\n- `borrowAssets`: array of `{ symbol, address }`\n\nDo not leave asset selection implicit. The planner needs the exact collateral and borrow assets in order to resolve feeds, choose a direct-versus-composed oracle route, and verify the final market correctly.\n\nFor live execution, also include explicit `activationMode`, `executionMode`, `rpcPreference`, `morphoCoreAddress`, `morphoPolicy`, `feedFunding`, `send`, and `broadcast` fields. Use `references/live-request-template.json` as the starting shape, and check `references/deployment-packs/<chain>/` for chain-specific operator notes. Never use placeholder RPC URL, raw private keys, signer address, Morpho core address, IRM address, or LLTV without replacing and validating them. Bare 64-hex private keys are accepted and normalized to `0x...`, but environment-variable inputs remain the preferred documented path.\n\n## Default workflow\n1. Normalize the request into:\n   - chain\n   - `collateralAssets`\n   - `borrowAssets`\n   - protocol = `morpho`\n   - market or risk intent\n   - desired execution mode\n2. Treat asset selection as a first-class input.\n   - confirm the exact collateral asset set and borrow asset set the user wants\n   - for multiple collateral assets, remember this becomes a Morpho **market set**: one market per supported collateral/borrow pair\n3. Resolve the oracle path before any deploy step.\n   - prefer a direct pair when the exact requested route is available and usable\n   - otherwise use a supported composed route when the planner can prove it cleanly\n   - keep feed-name matching generic: literal exact pair first, alias-normalized fallback second\n4. Check feed readiness before deployment.\n   - if feeds are already live on the deployable on-chain path, continue\n   - if funding is needed and executable, run the funding path first\n   - if funding executes, wait for live propagation/readability before deployment\n   - if the funding branch is browser-assisted or unsupported, stop and report that honestly instead of pretending transaction submission can continue\n5. Prefer the orchestration wrapper for the real sequence.\n   - use `ensure-feeds-and-deploy-morpho-market` when the goal is to check feeds, fund if needed, deploy communal proxies when needed, wait for propagation, deploy, verify, and persist one coherent run directory\n   - use lower-level commands only when debugging or resuming a prior run\n6. Prepare and deploy the Morpho oracle adapter path.\n   - use the Api3-backed Morpho oracle adapter design as the canonical oracle shape\n   - preserve artifact handoff from adapter deployment into market deployment\n   - keep proxy-first ordering whenever a communal proxy deploy is required\n   - verify the adapter uses the same feed/proxy sources that were proven live\n   - for dry-run previews, allow the planner to show both transactions by threading the predicted adapter address\n   - for live send, require the market creation step to re-thread from the adapter deployment receipt address instead of trusting predicted nonce math alone\n7. Verify the deployed market.\n   - confirm the market exists on-chain\n   - confirm params, IRM, and LLTV expectations\n   - confirm oracle `price()` succeeds and is positive\n8. Stop at the honest boundary.\n   - if the request can only reach planning or funding handoff, say so clearly\n   - do not present Morpho deployment as equivalent to the EVK live deploy path unless the code actually supports the requested environment\n   - do not treat feed discovery, funding readiness, adapter design readiness, deployment readiness, and verified market creation as the same milestone\n\n## Preferred command path\nFor a deployable request, prefer this command shape:\n\n`agentic-lending-morpho ensure-feeds-and-deploy-morpho-market --input-file ./request.json`\n\nUse it when the agent already has a concrete request file with the selected collateral and borrow assets.\n\nUse `--resume-from-run-dir <dir>` when continuing a previously persisted run.\n\nCheck `agent-decision.json` first after wrapper runs. It is the small model-friendly status object with `safeStatus`, `nextCommand`, `mustNotDo`, and `successClaimAllowed`.\n\nCheck `rollback-plan.json` before sending any further dependent transactions. It records whether the run stayed local-only or already created forward-only onchain state.\n\nUse these reliability commands when resuming or auditing:\n- `agentic-lending-morpho explain-next --run-dir <dir> --format json`\n- `agentic-lending-morpho verify-feed-to-market-handoff --run-dir <dir> --format json`\n\nTreat bundled `data/part2/feed-status.json` and `data/part2/market-registry.json` as packaged snapshots. They are valid local inputs for fallback planning paths, but live RPC-backed checks still take precedence whenever the request needs a current on-chain claim.\n\n## Success gates for less capable models\nDo not infer success from narrative text. Use exact wrapper fields and artifacts. Read `references/summary-contract.md` for the full contract.\n\nMinimum full-success predicate:\n- top-level `phase` is `completed`\n- `blockers` is absent or empty\n- feed readiness is proven live, or post-funding `propagationResult.ready === true`\n- `deployResult.sendSummary.completed === true` for live deployment claims\n- `verifyResult.verified === true`\n- `agent-decision.json.successClaimAllowed === true`\n- `rollback-plan.json` has been inspected and reported as local-only or forward-only on-chain state\n\nIf any field is missing, say which artifact or field is missing instead of guessing.\n\n## Feed-to-market handoff checks\nBefore saying the Morpho market uses the activated feed, prove the handoff in artifacts:\n- the required feed route was resolved for the selected collateral/borrow pair\n- the feed was already live, or funding/proxy deployment completed and propagation later reported ready\n- any required communal proxy is deployed and readable before adapter deployment\n- the deployed adapter references the activated feed/proxy source, not a stale or predicted-only address\n- the created market uses the adapter output from this run\n- verification reads the deployed market oracle and receives a positive `price()`\n\nIf those checks are too hard to prove from available artifacts, report `verification-ready` or `blocked`; do not report `completed`.\n\n## Output expectations\nAlways report:\n- whether the request was normalized successfully\n- which collateral assets and borrow assets were selected for the Morpho market or market set\n- whether the required Api3 feeds are already live, fundable, browser-assisted, or unsupported\n- whether feed funding was executed, skipped as unnecessary, or handed off\n- whether post-funding propagation/readability was proven before deployment\n- whether the deployed adapter consumed the activated feed/proxy path\n- whether the deployed market consumed the adapter output from the same run\n- what oracle adapter shape is planned or deployed for Morpho\n- which steps are planning-only versus executable today\n- the exact wrapper phase: `plan-only`, `funding handoff required`, `feeds funded; waiting for propagation`, `market deployment ready`, `verification-ready`, `completed`, or `blocked`\n- exact blockers preventing a full Morpho deployment flow, if any\n- the next concrete command, file, or implementation gap to close\n\n## Tone\nBe blunt about current Morpho limits.\nDo not blur design-doc intent into executable support.\nBut do not understate the implemented path either: if the selected-asset request is executable, say so plainly and use the resolve → feed-check → funding → deploy → verify sequence.\n\nFile v0.1.11:_meta.json\n\n{\n  \"ownerId\": \"kn79961pqqa20q5jwn60zjkxzs84yc3w\",\n  \"slug\": \"agentic-lending-morpho\",\n  \"version\": \"0.1.11\",\n  \"publishedAt\": 1781525064178\n}\n\nFile v0.1.11:references/current_capabilities.md\n\n# Current capabilities and limits\n\nThis skill is intentionally honest about the current Morpho state in the repo.\n\n## What exists today\n- the published skill now carries its own local runtime under `scripts/lib/`\n- the published skill now carries its own packaged planning data under `data/part2/`, including shared planner snapshots and Morpho oracle artifacts\n- the part 2 planner recognizes `protocol = morpho`\n- the repo contains Morpho-first design work and oracle-adapter specifications\n- Api3 feed discovery and readiness logic already exists at the project level\n- the project has prior EVK skill patterns that can be reused for reporting, branching, and safety posture\n- `prepare-morpho-market` exists at the planner layer\n- `deploy-morpho-oracle-adapter`, `deploy-morpho-market`, and `verify-morpho-market` now exist at the planner layer\n- `deploy-and-verify-morpho-market` exists as a one-shot wrapper around deploy plus verify artifact handoff\n- `ensure-feeds-and-deploy-morpho-market` now exists as the Phase 1 orchestration wrapper for feed readiness, executable funding, propagation recheck, deploy, and artifact persistence\n- the wrapper now has an initial Phase 2 resume path, so an operator can point it at a prior run directory and continue from stored request, completed funding, propagation, deploy, and verify artifacts instead of starting from zero\n- funded-feed cache artifacts are now reusable across runs with `--funded-feed-cache-file <path>`; matching cache entries skip repeat funding classification/execution and force a live propagation recheck before deployment\n- the packaged Morpho runtime can now use the newest bundled feed-funding logic, including communal proxy deployment during scripted funding flows when execution is allowed\n- `feedFunding.mode` now documents and prefers the canonical enum `classify-only | dry-run | real-send`, while still accepting natural aliases such as `check-only` and `simulate`\n- bare 64-hex private keys are now accepted and normalized to `0x...`, although `privateKeyEnv` remains the preferred operator path\n- dry-run chained deployment previews can now show both the adapter deployment and market creation transactions by threading the predicted adapter address into the preview\n- live chained deployment now re-threads market creation from the actual adapter deployment receipt address instead of trusting predicted nonce math alone\n- every orchestrated Morpho run now writes `rollback-plan.json`, which records whether the run is still local-only or already has forward-only onchain changes that now need compensating-action thinking instead of fake “undo” language\n- multiple deposit-asset intent is handled as a **Morpho market set**, meaning one Morpho market per collateral/loan asset pair rather than a fake multi-collateral single market\n\n## What is not yet equivalent to EVK\n- there is still not a Morpho deploy path as mature as the EVK workflow\n- browser-assisted feed funding still requires a human handoff, it is not a silent end-to-end auto path\n- the predicted-address preview used for `dry-run` is intentionally not the final source of truth for a live deploy; the live path now upgrades to the receipt-confirmed adapter address before market submission\n- the wrapper now supports resume-from-run-directory for stored deploy/verify artifacts, completed funding artifacts, and reusable funded-feed cache inputs, but broader production run recovery is still incomplete, especially around policy-aware retries and richer operator decisions\n- do not promise a live Morpho canary borrow path from this skill yet\n- oracle-adapter work is still the critical bridge between Api3 feeds and Morpho market deployment\n- on-chain verification depends on a real RPC plus the correct Morpho core and oracle addresses, so it is available but still environment-sensitive\n- bundled `feed-status.json` and `market-registry.json` are local packaged snapshots, so they help planning and fallback behavior but should not be presented as fresher than live RPC-backed checks\n\n## Practical meaning\nUse this skill today for:\n- Morpho-first planning\n- explicit collateral-asset and borrow-asset selection for the target Morpho market or market set\n- route resolution across supported pairs, including direct routes and supported composed routes\n- feed-readiness analysis for the resolved oracle path\n- funding-aware Morpho execution that can classify feed funding paths as ready, executable, browser-assisted, or unsupported before deployment continues\n- Api3-backed oracle-adapter planning and deployment\n- `prepare-morpho-market`\n- `deploy-morpho-market` calldata planning and optional guarded transaction submission when the request includes a Morpho core address plus explicit send/broadcast inputs\n- `verify-morpho-market` readback checks for created markets, IRM/LLTV enablement, and oracle `price()` sanity when the request includes a usable RPC endpoint\n- `deploy-and-verify-morpho-market` when the operator already has feeds ready enough to proceed to deployment\n- `ensure-feeds-and-deploy-morpho-market` when the operator wants one wrapper that can take the selected assets, classify or execute funding, wait for feed usability, deploy, persist a full run directory, write a funded-feed cache artifact, reuse that cache in a later run with `--funded-feed-cache-file`, and later resume verification or continuation from that run directory\n- `ensure-feeds-and-deploy-morpho-market` when the operator also wants the run directory to include an explicit rollback/audit surface instead of only deploy/funding artifacts\n- honest implementation-gap reporting\n\nDo not use it to pretend the repo already has full EVK-style production hardening around every Morpho environment when it does not.\n\n## Honest status language\nPrefer one of these states explicitly:\n- plan-only\n- feed-ready but adapter-planning pending\n- funding handoff required\n- oracle-adapter design ready\n- market preparation ready\n- executable Morpho deployment ready\n\nOnly use `executable Morpho deployment ready` if the repo truly has the selected collateral and borrow assets, a cleanly resolved oracle path for those assets, the required Morpho core address, oracle addresses, IRM/LLTV policy inputs, a deliberate guarded send/broadcast path for the requested run, and a usable RPC endpoint for verification.\n\nFile v0.1.11:references/deployment-packs/arbitrum/operator-notes.md\n\n# Arbitrum Morpho deployment pack\n\nUse this pack for Arbitrum first-canary Morpho market work.\n\n## Required live inputs\n- Arbitrum RPC URL that returns chain id `42161`\n- deployer/signer address and private key supplied only via runtime/local secret handling\n- exact collateral and borrow token addresses\n- Morpho core address for Arbitrum\n- enabled IRM address and LLTV value\n- feed funding mode and send/broadcast intent\n\n## Command order\n1. `agentic-lending-morpho preflight-morpho-market --input-file ./request.json --format json`\n2. Stop unless `safeToRun === true`.\n3. `agentic-lending-morpho ensure-feeds-and-deploy-morpho-market --input-file ./request.json --format json`\n4. If blocked or waiting, run `agentic-lending-morpho explain-next --run-dir <run-dir> --format json`.\n5. Before final success reporting, run `agentic-lending-morpho verify-feed-to-market-handoff --run-dir <run-dir> --format json`.\n\n## Reporting rule\nOnly report live market success when the wrapper completed, `agent-decision.json.successClaimAllowed === true`, and handoff verification passes.\n\nFile v0.1.11:references/deployment-packs/arbitrum/order-metadata.json\n\n{\n  \"chain\": { \"name\": \"arbitrum\", \"chainId\": 42161 },\n  \"preferredOrder\": [\n    \"preflight-morpho-market\",\n    \"ensure-feeds-and-deploy-morpho-market\",\n    \"explain-next\",\n    \"verify-feed-to-market-handoff\"\n  ],\n  \"rpcRequirements\": {\n    \"chainIdMustMatch\": 42161,\n    \"allowPublicFallbackForPlanningOnly\": true,\n    \"requireExplicitRpcForLive\": true\n  },\n  \"liveExecutionGuards\": {\n    \"requiresAcknowledgement\": \"I_UNDERSTAND_THIS_WILL_SEND_TRANSACTIONS\",\n    \"rejectPlaceholders\": true,\n    \"requirePreflightSafeToRun\": true\n  },\n  \"artifactGates\": [\n    \"agent-decision.json.successClaimAllowed === true\",\n    \"summary.json.phase === completed\",\n    \"deploy-output.json.sendSummary.completed === true\",\n    \"verify-output.json.verified === true\"\n  ],\n  \"notes\": [\n    \"Use references/live-request-template.json as the request shape, replacing every placeholder before preflight.\",\n    \"After feed funding, do not deploy until propagation.json.ready is true.\",\n    \"Use verify-feed-to-market-handoff before reporting a final market deployment success.\"\n  ]\n}\n\nFile v0.1.11:references/deployment-packs/base/operator-notes.md\n\n# base Morpho deployment pack\n\nTemplate pack only. Before live use, fill and verify:\n- RPC URL returning chain id `8453`\n- Morpho core address\n- enabled IRM address\n- LLTV value\n- exact collateral/borrow token addresses\n- feed funding and send/broadcast settings\n\nAlways run preflight first and stop unless `safeToRun === true`.\n\nFile v0.1.11:references/deployment-packs/base/order-metadata.json\n\n{\n  \"chain\": { \"name\": \"base\", \"chainId\": 8453 },\n  \"status\": \"template-pack\",\n  \"preferredOrder\": [\n    \"preflight-morpho-market\",\n    \"ensure-feeds-and-deploy-morpho-market\",\n    \"explain-next\",\n    \"verify-feed-to-market-handoff\"\n  ],\n  \"rpcRequirements\": {\n    \"chainIdMustMatch\": 8453,\n    \"requireExplicitRpcForLive\": true\n  },\n  \"liveExecutionGuards\": {\n    \"requiresAcknowledgement\": \"I_UNDERSTAND_THIS_WILL_SEND_TRANSACTIONS\",\n    \"rejectPlaceholders\": true,\n    \"requirePreflightSafeToRun\": true\n  },\n  \"notes\": [\n    \"Fill chain-specific Morpho core, IRM, LLTV, and token addresses before use.\",\n    \"Do not treat this template as a validated deployment pack until chain-specific addresses are confirmed.\"\n  ]\n}\n\nFile v0.1.11:references/deployment-packs/bsc/operator-notes.md\n\n# bsc Morpho deployment pack\n\nTemplate pack only. Before live use, fill and verify:\n- RPC URL returning chain id `56`\n- Morpho core address\n- enabled IRM address\n- LLTV value\n- exact collateral/borrow token addresses\n- feed funding and send/broadcast settings\n\nAlways run preflight first and stop unless `safeToRun === true`.\n\nFile v0.1.11:references/deployment-packs/bsc/order-metadata.json\n\n{\n  \"chain\": { \"name\": \"bsc\", \"chainId\": 56 },\n  \"status\": \"template-pack\",\n  \"preferredOrder\": [\n    \"preflight-morpho-market\",\n    \"ensure-feeds-and-deploy-morpho-market\",\n    \"explain-next\",\n    \"verify-feed-to-market-handoff\"\n  ],\n  \"rpcRequirements\": {\n    \"chainIdMustMatch\": 56,\n    \"requireExplicitRpcForLive\": true\n  },\n  \"liveExecutionGuards\": {\n    \"requiresAcknowledgement\": \"I_UNDERSTAND_THIS_WILL_SEND_TRANSACTIONS\",\n    \"rejectPlaceholders\": true,\n    \"requirePreflightSafeToRun\": true\n  },\n  \"notes\": [\n    \"Fill chain-specific Morpho core, IRM, LLTV, and token addresses before use.\",\n    \"Do not treat this template as a validated deployment pack until chain-specific addresses are confirmed.\"\n  ]\n}\n\nFile v0.1.11:references/deployment-packs/ethereum/operator-notes.md\n\n# ethereum Morpho deployment pack\n\nTemplate pack only. Before live use, fill and verify:\n- RPC URL returning chain id `1`\n- Morpho core address\n- enabled IRM address\n- LLTV value\n- exact collateral/borrow token addresses\n- feed funding and send/broadcast settings\n\nAlways run preflight first and stop unless `safeToRun === true`.\n\nFile v0.1.11:references/deployment-packs/ethereum/order-metadata.json\n\n{\n  \"chain\": { \"name\": \"ethereum\", \"chainId\": 1 },\n  \"status\": \"template-pack\",\n  \"preferredOrder\": [\n    \"preflight-morpho-market\",\n    \"ensure-feeds-and-deploy-morpho-market\",\n    \"explain-next\",\n    \"verify-feed-to-market-handoff\"\n  ],\n  \"rpcRequirements\": {\n    \"chainIdMustMatch\": 1,\n    \"requireExplicitRpcForLive\": true\n  },\n  \"liveExecutionGuards\": {\n    \"requiresAcknowledgement\": \"I_UNDERSTAND_THIS_WILL_SEND_TRANSACTIONS\",\n    \"rejectPlaceholders\": true,\n    \"requirePreflightSafeToRun\": true\n  },\n  \"notes\": [\n    \"Fill chain-specific Morpho core, IRM, LLTV, and token addresses before use.\",\n    \"Do not treat this template as a validated deployment pack until chain-specific addresses are confirmed.\"\n  ]\n}\n\nFile v0.1.11:references/example-request.json\n\n{\n  \"protocol\": \"morpho\",\n  \"chain\": {\n    \"name\": \"arbitrum\",\n    \"chainId\": 42161\n  },\n  \"collateralAssets\": [\n    {\n      \"symbol\": \"WETH\",\n      \"address\": \"0x82af49447d8a07e3bd95bd0d56f35241523fbab1\"\n    }\n  ],\n  \"borrowAssets\": [\n    {\n      \"symbol\": \"USDC\",\n      \"address\": \"0xaf88d065e77c8cC2239327C5EDb3A432268e5831\"\n    }\n  ],\n  \"riskPreset\": \"core\",\n  \"executionMode\": \"planning-only\",\n  \"marketShapeIntent\": \"single-market\"\n}\n\nArchive v0.1.10: 58 files, 164842 bytes\n\nFiles: artifacts/morpho-ensure-deploy/2026-05-27T09-39-31-830Z/agent-decision.json (3057b), artifacts/morpho-ensure-deploy/2026-05-27T09-39-31-830Z/approval-summary.json (2179b), artifacts/morpho-ensure-deploy/2026-05-27T09-39-31-830Z/deploy-output.json (4396b), artifacts/morpho-ensure-deploy/2026-05-27T09-39-31-830Z/perf-summary.json (2987b), artifacts/morpho-ensure-deploy/2026-05-27T09-39-31-830Z/request.json (1390b), artifacts/morpho-ensure-deploy/2026-05-27T09-39-31-830Z/rollback-plan.json (2441b), artifacts/morpho-ensure-deploy/2026-05-27T09-39-31-830Z/summary.json (11237b), artifacts/morpho-ensure-deploy/2026-05-27T09-39-31-830Z/transaction-payloads/001-morpho-deploy-adapter-wbtc__ausd.json (5395b), artifacts/morpho-ensure-deploy/2026-05-27T09-39-31-830Z/transaction-payloads/002-morpho-create-market-wbtc__ausd.json (488b), artifacts/morpho-ensure-deploy/2026-05-27T09-39-31-830Z/verify-output.json (1777b), artifacts/morpho-ensure-deploy/2026-05-27T09-39-31-830Z/workflow.initial.json (21075b), data/part2/contract-artifacts/Api3PartialAggregatorV2V3Interface.bytecode.txt (2884b), data/part2/contract-artifacts/Api3PartialAggregatorV2V3Interface.json (5707b), data/part2/contract-artifacts/ChainlinkInfrequentOracle.bytecode.txt (6011b), data/part2/contract-artifacts/ChainlinkInfrequentOracle.json (4247b), data/part2/contract-artifacts/ChainlinkOracle.bytecode.txt (6914b), data/part2/contract-artifacts/ChainlinkOracle.json (4209b), data/part2/contract-artifacts/CrossAdapter.bytecode.txt (4620b), data/part2/contract-artifacts/CrossAdapter.json (3967b), data/part2/contract-artifacts/EulerRouter.bytecode.txt (7835b), data/part2/contract-artifacts/EulerRouter.json (8428b), data/part2/contract-artifacts/GenericFactory.json (866b), data/part2/contract-artifacts/MorphoApi3CompositeOracle.bytecode.txt (4992b), data/part2/contract-artifacts/MorphoApi3CompositeOracle.json (2880b), data/part2/contract-artifacts/MorphoApi3DirectOracle.bytecode.txt (4106b), data/part2/contract-artifacts/MorphoApi3DirectOracle.json (2057b), data/part2/evk-addresses.api3-supported-overlap.json (6720b), data/part2/feed-status.json (1947b), data/part2/market-registry.json (1824b), data/part2/morpho/arbitrum-reference-config.json (1622b), package.json (1209b), references/current_capabilities.md (5497b), references/deployment-packs/arbitrum/operator-notes.md (1076b), references/deployment-packs/arbitrum/order-metadata.json (1065b), references/deployment-packs/base/operator-notes.md (329b), references/deployment-packs/base/order-metadata.json (723b), references/deployment-packs/bsc/operator-notes.md (326b), references/deployment-packs/bsc/order-metadata.json (718b), references/deployment-packs/ethereum/operator-notes.md (330b), references/deployment-packs/ethereum/order-metadata.json (721b), references/example-request.json (440b), references/live-request-template.json (1630b), references/morpho-oracle-adapter.md (1975b), references/state-machine.md (4138b), references/summary-contract.md (5387b), references/workflow.md (3212b), scripts/bin/agentic-lending-morpho.js (173b), scripts/bin/api3-feed-manager.js (170b), scripts/bin/part2-morpho-planner.js (173b), scripts/bin/part2-planner.js (166b), scripts/lib/api3-feed-manager.js (132675b), scripts/lib/part2-chain-bootstrap.js (4049b), scripts/lib/part2-morpho-planner.js (180906b), scripts/lib/part2-planner.js (192051b), scripts/lib/part2-recipes.js (1330b), skill-card.md (3369b), SKILL.md (13110b), _meta.json (142b)\n\nFile v0.1.10:SKILL.md\n\n---\nname: agentic-lending-morpho\ndescription: Plan and execute the Morpho-first agentic lending workflow for Api3-backed markets. Use when a user wants a Morpho market or market set for selected collateral and borrow assets, needs the oracle route resolved for those assets, wants Api3 feed readiness checked or funded when safe, and then wants the Morpho oracle + market deployment and verification path run honestly. This variant can progress from planning into real feed funding and market deployment when the supported path is available and the user explicitly allows signer-backed execution. Default to planning, dry-run, or guarded verification first. Do not use for Euler EVK flows or unsupported oracle routes.\nmetadata:\n  clawdis:\n    homepage: https://github.com/daav3/agentic-lending-project\n    author: daav3\n    requires:\n      bins:\n        - node\n      env:\n        - LIVE_SIGNER_ENV\n      config:\n        - request.morpho-workflow.json\n    primaryEnv: LIVE_SIGNER_ENV\n---\n\n# Agentic Lending Morpho\n\nThis is the execution-capable Morpho workflow skill.\n\nIt is the Morpho-side counterpart to the EVK skill. It is still more conservative than the EVK path, but it now supports a real end-to-end flow for compatible requests: resolve the requested collateral and borrow assets, check feed readiness, execute funding when available, deploy the oracle adapter, deploy the Morpho market, and verify the result.\n\nThis published skill carries its own local runtime and bundled planning artifacts under `scripts/lib/` and `data/part2/` rather than assuming a separate repo checkout is available at execution time.\n\nIt should script as much of the Morpho path as the code can honestly support: feed readiness classification, executable funding, communal proxy deployment when needed, propagation rechecks, adapter deployment, market deployment, verification, resumable artifacts, and a generated `rollback-plan.json` for every orchestrated run.\n\nWhen the supported path is available and the user explicitly asks for it, this variant can send real transactions and should be treated as a guarded execution skill rather than a planning-only helper.\n\n## Golden path for normal use\nUse one request file and one wrapper command. Do not pick lower-level commands unless debugging or resuming a known run.\n\n1. Create `request.json` with exact `collateralAssets`, exact `borrowAssets`, chain, RPC, Morpho policy, feed-funding intent, and send/broadcast intent.\n   - For a live-shaped Arbitrum WETH/USDC example, copy `references/live-request-template.json` and replace every placeholder before use.\n   - Never paste a raw private key into chat. For live execution, point the request at a local environment variable such as `LIVE_SIGNER_ENV` via `feedFunding.privateKeyEnv` / `send.privateKeyEnv`.\n2. Preflight before live-capable execution:\n\n   `agentic-lending-morpho preflight-morpho-market --input-file ./request.json --format json`\n\n   Stop unless `safeToRun === true`. Preflight rejects placeholder RPCs, dummy addresses, dummy private keys, mismatched RPC chain IDs, and missing live deployment policy.\n3. Run:\n\n   `agentic-lending-morpho ensure-feeds-and-deploy-morpho-market --input-file ./request.json --format json`\n\n   - The wrapper now emits phase-by-phase progress on stderr for preflight, feed classification, funding/handoff, propagation wait, deployment, and verification.\n   - Use `--progress jsonl` for machine-readable progress or `--progress silent` to suppress live progress output.\n\n4. Inspect the persisted run directory, especially `approval-summary.json`, `agent-decision.json`, `summary.json`, `rollback-plan.json`, and `progress-events.jsonl`.\n   - `approval-summary.json` is the explicit handoff artifact for user approval: what will run, whether it may send txs, expected duration, and likely resource impact.\n5. Report full success only when `phase === \"completed\"`, there are no hard blockers, and `verifyResult.verified === true`.\n\nIf the run needs continuation, resume the same run directory rather than reconstructing state from memory:\n\n`agentic-lending-morpho ensure-feeds-and-deploy-morpho-market --resume-from-run-dir <run-dir> --input-file <run-dir>/request.json --format json`\n\nTimeouts and stalls should now name the stalled phase and point back to `--resume-from-run-dir` when that is the right recovery path.\n\n## Safety expectations\n- default to planning, dry-run, or guarded verification first\n- only use signer-backed feed funding or market deployment when the user explicitly asks for it\n- treat browser-assisted funding as an explicit handoff, not a silent autonomous path\n- require exact asset selection before deployment planning or submission\n- require a usable RPC endpoint for any on-chain verification claim\n- never ask the user to paste a raw private key into chat\n- keep signer material in environment variables or local runtime config, never in committed files or request templates\n\n## Read next\n1. `references/workflow.md`\n2. `references/current_capabilities.md`\n3. `references/morpho-oracle-adapter.md`\n4. `references/state-machine.md` when feed activation and market deployment are both in scope\n5. `references/summary-contract.md` before interpreting wrapper output or claiming success\n\n## Minimum required inputs\nGather these before attempting a Morpho-first workflow:\n- chain name and chain id\n- explicit `collateralAssets`\n- explicit `borrowAssets`\n- target market shape or risk intent\n- whether the user wants planning only, dry-run, or transaction submission\n- live RPC availability for the chain if anything beyond planning is expected\n- Morpho policy inputs needed for deployment on that chain when transaction submission is requested\n\nIf any of those are missing, stop and ask instead of inventing them.\n\n## Request-shape rule\nWhen preparing a request for this skill, always express the market assets explicitly as:\n- `collateralAssets`: array of `{ symbol, address }`\n- `borrowAssets`: array of `{ symbol, address }`\n\nDo not leave asset selection implicit. The planner needs the exact collateral and borrow assets in order to resolve feeds, choose a direct-versus-composed oracle route, and verify the final market correctly.\n\nFor live execution, also include explicit `activationMode`, `executionMode`, `rpcPreference`, `morphoCoreAddress`, `morphoPolicy`, `feedFunding`, `send`, and `broadcast` fields. Use `references/live-request-template.json` as the starting shape, and check `references/deployment-packs/<chain>/` for chain-specific operator notes. Never use placeholder RPC URL, raw private keys, signer address, Morpho core address, IRM address, or LLTV without replacing and validating them.\n\n## Default workflow\n1. Normalize the request into:\n   - chain\n   - `collateralAssets`\n   - `borrowAssets`\n   - protocol = `morpho`\n   - market or risk intent\n   - desired execution mode\n2. Treat asset selection as a first-class input.\n   - confirm the exact collateral asset set and borrow asset set the user wants\n   - for multiple collateral assets, remember this becomes a Morpho **market set**: one market per supported collateral/borrow pair\n3. Resolve the oracle path before any deploy step.\n   - prefer a direct pair when the exact requested route is available and usable\n   - otherwise use a supported composed route when the planner can prove it cleanly\n   - keep feed-name matching generic: literal exact pair first, alias-normalized fallback second\n4. Check feed readiness before deployment.\n   - if feeds are already live on the deployable on-chain path, continue\n   - if funding is needed and executable, run the funding path first\n   - if funding executes, wait for live propagation/readability before deployment\n   - if the funding branch is browser-assisted or unsupported, stop and report that honestly instead of pretending transaction submission can continue\n5. Prefer the orchestration wrapper for the real sequence.\n   - use `ensure-feeds-and-deploy-morpho-market` when the goal is to check feeds, fund if needed, deploy communal proxies when needed, wait for propagation, deploy, verify, and persist one coherent run directory\n   - use lower-level commands only when debugging or resuming a prior run\n6. Prepare and deploy the Morpho oracle adapter path.\n   - use the Api3-backed Morpho oracle adapter design as the canonical oracle shape\n   - preserve artifact handoff from adapter deployment into market deployment\n   - keep proxy-first ordering whenever a communal proxy deploy is required\n   - verify the adapter uses the same feed/proxy sources that were proven live\n7. Verify the deployed market.\n   - confirm the market exists on-chain\n   - confirm params, IRM, and LLTV expectations\n   - confirm oracle `price()` succeeds and is positive\n8. Stop at the honest boundary.\n   - if the request can only reach planning or funding handoff, say so clearly\n   - do not present Morpho deployment as equivalent to the EVK live deploy path unless the code actually supports the requested environment\n   - do not treat feed discovery, funding readiness, adapter design readiness, deployment readiness, and verified market creation as the same milestone\n\n## Preferred command path\nFor a deployable request, prefer this command shape:\n\n`agentic-lending-morpho ensure-feeds-and-deploy-morpho-market --input-file ./request.json`\n\nUse it when the agent already has a concrete request file with the selected collateral and borrow assets.\n\nUse `--resume-from-run-dir <dir>` when continuing a previously persisted run.\n\nCheck `agent-decision.json` first after wrapper runs. It is the small model-friendly status object with `safeStatus`, `nextCommand`, `mustNotDo`, and `successClaimAllowed`.\n\nCheck `rollback-plan.json` before sending any further dependent transactions. It records whether the run stayed local-only or already created forward-only onchain state.\n\nUse these reliability commands when resuming or auditing:\n- `agentic-lending-morpho explain-next --run-dir <dir> --format json`\n- `agentic-lending-morpho verify-feed-to-market-handoff --run-dir <dir> --format json`\n\nTreat bundled `data/part2/feed-status.json` and `data/part2/market-registry.json` as packaged snapshots. They are valid local inputs for fallback planning paths, but live RPC-backed checks still take precedence whenever the request needs a current on-chain claim.\n\n## Success gates for less capable models\nDo not infer success from narrative text. Use exact wrapper fields and artifacts. Read `references/summary-contract.md` for the full contract.\n\nMinimum full-success predicate:\n- top-level `phase` is `completed`\n- `blockers` is absent or empty\n- feed readiness is proven live, or post-funding `propagationResult.ready === true`\n- `deployResult.sendSummary.completed === true` for live deployment claims\n- `verifyResult.verified === true`\n- `agent-decision.json.successClaimAllowed === true`\n- `rollback-plan.json` has been inspected and reported as local-only or forward-only on-chain state\n\nIf any field is missing, say which artifact or field is missing instead of guessing.\n\n## Feed-to-market handoff checks\nBefore saying the Morpho market uses the activated feed, prove the handoff in artifacts:\n- the required feed route was resolved for the selected collateral/borrow pair\n- the feed was already live, or funding/proxy deployment completed and propagation later reported ready\n- any required communal proxy is deployed and readable before adapter deployment\n- the deployed adapter references the activated feed/proxy source, not a stale or predicted-only address\n- the created market uses the adapter output from this run\n- verification reads the deployed market oracle and receives a positive `price()`\n\nIf those checks are too hard to prove from available artifacts, report `verification-ready` or `blocked`; do not report `completed`.\n\n## Output expectations\nAlways report:\n- whether the request was normalized successfully\n- which collateral assets and borrow assets were selected for the Morpho market or market set\n- whether the required Api3 feeds are already live, fundable, browser-assisted, or unsupported\n- whether feed funding was executed, skipped as unnecessary, or handed off\n- whether post-funding propagation/readability was proven before deployment\n- whether the deployed adapter consumed the activated feed/proxy path\n- whether the deployed market consumed the adapter output from the same run\n- what oracle adapter shape is planned or deployed for Morpho\n- which steps are planning-only versus executable today\n- the exact wrapper phase: `plan-only`, `funding handoff required`, `feeds funded; waiting for propagation`, `market deployment ready`, `verification-ready`, `completed`, or `blocked`\n- exact blockers preventing a full Morpho deployment flow, if any\n- the next concrete command, file, or implementation gap to close\n\n## Tone\nBe blunt about current Morpho limits.\nDo not blur design-doc intent into executable support.\nBut do not understate the implemented path either: if the selected-asset request is executable, say so plainly and use the resolve → feed-check → funding → deploy → verify sequence.\n\nFile v0.1.10:_meta.json\n\n{\n  \"ownerId\": \"kn79961pqqa20q5jwn60zjkxzs84yc3w\",\n  \"slug\": \"agentic-lending-morpho\",\n  \"version\": \"0.1.10\",\n  \"publishedAt\": 1779875435411\n}\n\nFile v0.1.10:references/current_capabilities.md\n\n# Current capabilities and limits\n\nThis skill is intentionally honest about the current Morpho state in the repo.\n\n## What exists today\n- the published skill now carries its own local runtime under `scripts/lib/`\n- the published skill now carries its own packaged planning data under `data/part2/`, including shared planner snapshots and Morpho oracle artifacts\n- the part 2 planner recognizes `protocol = morpho`\n- the repo contains Morpho-first design work and oracle-adapter specifications\n- Api3 feed discovery and readiness logic already exists at the project level\n- the project has prior EVK skill patterns that can be reused for reporting, branching, and safety posture\n- `prepare-morpho-market` exists at the planner layer\n- `deploy-morpho-oracle-adapter`, `deploy-morpho-market`, and `verify-morpho-market` now exist at the planner layer\n- `deploy-and-verify-morpho-market` exists as a one-shot wrapper around deploy plus verify artifact handoff\n- `ensure-feeds-and-deploy-morpho-market` now exists as the Phase 1 orchestration wrapper for feed readiness, executable funding, propagation recheck, deploy, and artifact persistence\n- the wrapper now has an initial Phase 2 resume path, so an operator can point it at a prior run directory and continue from stored request, completed funding, propagation, deploy, and verify artifacts instead of starting from zero\n- funded-feed cache artifacts are now reusable across runs with `--funded-feed-cache-file <path>`; matching cache entries skip repeat funding classification/execution and force a live propagation recheck before deployment\n- the packaged Morpho runtime can now use the newest bundled feed-funding logic, including communal proxy deployment during scripted funding flows when execution is allowed\n- every orchestrated Morpho run now writes `rollback-plan.json`, which records whether the run is still local-only or already has forward-only onchain changes that now need compensating-action thinking instead of fake “undo” language\n- multiple deposit-asset intent is handled as a **Morpho market set**, meaning one Morpho market per collateral/loan asset pair rather than a fake multi-collateral single market\n\n## What is not yet equivalent to EVK\n- there is still not a Morpho deploy path as mature as the EVK workflow\n- browser-assisted feed funding still requires a human handoff, it is not a silent end-to-end auto path\n- the wrapper now supports resume-from-run-directory for stored deploy/verify artifacts, completed funding artifacts, and reusable funded-feed cache inputs, but broader production run recovery is still incomplete, especially around policy-aware retries and richer operator decisions\n- do not promise a live Morpho canary borrow path from this skill yet\n- oracle-adapter work is still the critical bridge between Api3 feeds and Morpho market deployment\n- on-chain verification depends on a real RPC plus the correct Morpho core and oracle addresses, so it is available but still environment-sensitive\n- bundled `feed-status.json` and `market-registry.json` are local packaged snapshots, so they help planning and fallback behavior but should not be presented as fresher than live RPC-backed checks\n\n## Practical meaning\nUse this skill today for:\n- Morpho-first planning\n- explicit collateral-asset and borrow-asset selection for the target Morpho market or market set\n- route resolution across supported pairs, including direct routes and supported composed routes\n- feed-readiness analysis for the resolved oracle path\n- funding-aware Morpho execution that can classify feed funding paths as ready, executable, browser-assisted, or unsupported before deployment continues\n- Api3-backed oracle-adapter planning and deployment\n- `prepare-morpho-market`\n- `deploy-morpho-market` calldata planning and optional guarded transaction submission when the request includes a Morpho core address plus explicit send/broadcast inputs\n- `verify-morpho-market` readback checks for created markets, IRM/LLTV enablement, and oracle `price()` sanity when the request includes a usable RPC endpoint\n- `deploy-and-verify-morpho-market` when the operator already has feeds ready enough to proceed to deployment\n- `ensure-feeds-and-deploy-morpho-market` when the operator wants one wrapper that can take the selected assets, classify or execute funding, wait for feed usability, deploy, persist a full run directory, write a funded-feed cache artifact, reuse that cache in a later run with `--funded-feed-cache-file`, and later resume verification or continuation from that run directory\n- `ensure-feeds-and-deploy-morpho-market` when the operator also wants the run directory to include an explicit rollback/audit surface instead of only deploy/funding artifacts\n- honest implementation-gap reporting\n\nDo not use it to pretend the repo already has full EVK-style production hardening around every Morpho environment when it does not.\n\n## Honest status language\nPrefer one of these states explicitly:\n- plan-only\n- feed-ready but adapter-planning pending\n- funding handoff required\n- oracle-adapter design ready\n- market preparation ready\n- executable Morpho deployment ready\n\nOnly use `executable Morpho deployment ready` if the repo truly has the selected collateral and borrow assets, a cleanly resolved oracle path for those assets, the required Morpho core address, oracle addresses, IRM/LLTV policy inputs, a deliberate guarded send/broadcast path for the requested run, and a usable RPC endpoint for verification.\n\nFile v0.1.10:references/deployment-packs/arbitrum/operator-notes.md\n\n# Arbitrum Morpho deployment pack\n\nUse this pack for Arbitrum first-canary Morpho market work.\n\n## Required live inputs\n- Arbitrum RPC URL that returns chain id `42161`\n- deployer/signer address and private key supplied only via runtime/local secret handling\n- exact collateral and borrow token addresses\n- Morpho core address for Arbitrum\n- enabled IRM address and LLTV value\n- feed funding mode and send/broadcast intent\n\n## Command order\n1. `agentic-lending-morpho preflight-morpho-market --input-file ./request.json --format json`\n2. Stop unless `safeToRun === true`.\n3. `agentic-lending-morpho ensure-feeds-and-deploy-morpho-market --input-file ./request.json --format json`\n4. If blocked or waiting, run `agentic-lending-morpho explain-next --run-dir <run-dir> --format json`.\n5. Before final success reporting, run `agentic-lending-morpho verify-feed-to-market-handoff --run-dir <run-dir> --format json`.\n\n## Reporting rule\nOnly report live market success when the wrapper completed, `agent-decision.json.successClaimAllowed === true`, and handoff verification passes.\n\nFile v0.1.10:references/deployment-packs/arbitrum/order-metadata.json\n\n{\n  \"chain\": { \"name\": \"arbitrum\", \"chainId\": 42161 },\n  \"preferredOrder\": [\n    \"preflight-morpho-market\",\n    \"ensure-feeds-and-deploy-morpho-market\",\n    \"explain-next\",\n    \"verify-feed-to-market-handoff\"\n  ],\n  \"rpcRequirements\": {\n    \"chainIdMustMatch\": 42161,\n    \"allowPublicFallbackForPlanningOnly\": true,\n    \"requireExplicitRpcForLive\": true\n  },\n  \"liveExecutionGuards\": {\n    \"requiresAcknowledgement\": \"I_UNDERSTAND_THIS_WILL_SEND_TRANSACTIONS\",\n    \"rejectPlaceholders\": true,\n    \"requirePreflightSafeToRun\": true\n  },\n  \"artifactGates\": [\n    \"agent-decision.json.successClaimAllowed === true\",\n    \"summary.json.phase === completed\",\n    \"deploy-output.json.sendSummary.completed === true\",\n    \"verify-output.json.verified === true\"\n  ],\n  \"notes\": [\n    \"Use references/live-request-template.json as the request shape, replacing every placeholder before preflight.\",\n    \"After feed funding, do not deploy until propagation.json.ready is true.\",\n    \"Use verify-feed-to-market-handoff before reporting a final market deployment success.\"\n  ]\n}\n\nFile v0.1.10:references/deployment-packs/base/operator-notes.md\n\n# base Morpho deployment pack\n\nTemplate pack only. Before live use, fill and verify:\n- RPC URL returning chain id `8453`\n- Morpho core address\n- enabled IRM address\n- LLTV value\n- exact collateral/borrow token addresses\n- feed funding and send/broadcast settings\n\nAlways run preflight first and stop unless `safeToRun === true`.\n\nFile v0.1.10:references/deployment-packs/base/order-metadata.json\n\n{\n  \"chain\": { \"name\": \"base\", \"chainId\": 8453 },\n  \"status\": \"template-pack\",\n  \"preferredOrder\": [\n    \"preflight-morpho-market\",\n    \"ensure-feeds-and-deploy-morpho-market\",\n    \"explain-next\",\n    \"verify-feed-to-market-handoff\"\n  ],\n  \"rpcRequirements\": {\n    \"chainIdMustMatch\": 8453,\n    \"requireExplicitRpcForLive\": true\n  },\n  \"liveExecutionGuards\": {\n    \"requiresAcknowledgement\": \"I_UNDERSTAND_THIS_WILL_SEND_TRANSACTIONS\",\n    \"rejectPlaceholders\": true,\n    \"requirePreflightSafeToRun\": true\n  },\n  \"notes\": [\n    \"Fill chain-specific Morpho core, IRM, LLTV, and token addresses before use.\",\n    \"Do not treat this template as a validated deployment pack until chain-specific addresses are confirmed.\"\n  ]\n}\n\nFile v0.1.10:references/deployment-packs/bsc/operator-notes.md\n\n# bsc Morpho deployment pack\n\nTemplate pack only. Before live use, fill and verify:\n- RPC URL returning chain id `56`\n- Morpho core address\n- enabled IRM address\n- LLTV value\n- exact collateral/borrow token addresses\n- feed funding and send/broadcast settings\n\nAlways run preflight first and stop unless `safeToRun === true`.\n\nFile v0.1.10:references/deployment-packs/bsc/order-metadata.json\n\n{\n  \"chain\": { \"name\": \"bsc\", \"chainId\": 56 },\n  \"status\": \"template-pack\",\n  \"preferredOrder\": [\n    \"preflight-morpho-market\",\n    \"ensure-feeds-and-deploy-morpho-market\",\n    \"explain-next\",\n    \"verify-feed-to-market-handoff\"\n  ],\n  \"rpcRequirements\": {\n    \"chainIdMustMatch\": 56,\n    \"requireExplicitRpcForLive\": true\n  },\n  \"liveExecutionGuards\": {\n    \"requiresAcknowledgement\": \"I_UNDERSTAND_THIS_WILL_SEND_TRANSACTIONS\",\n    \"rejectPlaceholders\": true,\n    \"requirePreflightSafeToRun\": true\n  },\n  \"notes\": [\n    \"Fill chain-specific Morpho core, IRM, LLTV, and token addresses before use.\",\n    \"Do not treat this template as a validated deployment pack until chain-specific addresses are confirmed.\"\n  ]\n}\n\nFile v0.1.10:references/deployment-packs/ethereum/operator-notes.md\n\n# ethereum Morpho deployment pack\n\nTemplate pack only. Before live use, fill and verify:\n- RPC URL returning chain id `1`\n- Morpho core address\n- enabled IRM address\n- LLTV value\n- exact collateral/borrow token addresses\n- feed funding and send/broadcast settings\n\nAlways run preflight first and stop unless `safeToRun === true`.\n\nFile v0.1.10:references/deployment-packs/ethereum/order-metadata.json\n\n{\n  \"chain\": { \"name\": \"ethereum\", \"chainId\": 1 },\n  \"status\": \"template-pack\",\n  \"preferredOrder\": [\n    \"preflight-morpho-market\",\n    \"ensure-feeds-and-deploy-morpho-market\",\n    \"explain-next\",\n    \"verify-feed-to-market-handoff\"\n  ],\n  \"rpcRequirements\": {\n    \"chainIdMustMatch\": 1,\n    \"requireExplicitRpcForLive\": true\n  },\n  \"liveExecutionGuards\": {\n    \"requiresAcknowledgement\": \"I_UNDERSTAND_THIS_WILL_SEND_TRANSACTIONS\",\n    \"rejectPlaceholders\": true,\n    \"requirePreflightSafeToRun\": true\n  },\n  \"notes\": [\n    \"Fill chain-specific Morpho core, IRM, LLTV, and token addresses before use.\",\n    \"Do not treat this template as a validated deployment pack until chain-specific addresses are confirmed.\"\n  ]\n}\n\nFile v0.1.10:references/example-request.json\n\n{\n  \"protocol\": \"morpho\",\n  \"chain\": {\n    \"name\": \"arbitrum\",\n    \"chainId\": 42161\n  },\n  \"collateralAssets\": [\n    {\n      \"symbol\": \"WETH\",\n      \"address\": \"0x82af49447d8a07e3bd95bd0d56f35241523fbab1\"\n    }\n  ],\n  \"borrowAssets\": [\n    {\n      \"symbol\": \"USDC\",\n      \"address\": \"0xaf88d065e77c8cC2239327C5EDb3A432268e5831\"\n    }\n  ],\n  \"riskPreset\": \"core\",\n  \"executionMode\": \"planning-only\",\n  \"marketShapeIntent\": \"single-market\"\n}\n\nArchive v0.1.9: 46 files, 138752 bytes\n\nFiles: data/part2/contract-artifacts/Api3PartialAggregatorV2V3Interface.bytecode.txt (2884b), data/part2/contract-artifacts/Api3PartialAggregatorV2V3Interface.json (5707b), data/part2/contract-artifacts/ChainlinkInfrequentOracle.bytecode.txt (6011b), data/part2/contract-artifacts/ChainlinkInfrequentOracle.json (4247b), data/part2/contract-artifacts/ChainlinkOracle.bytecode.txt (6914b), data/part2/contract-artifacts/ChainlinkOracle.json (4209b), data/part2/contract-artifacts/CrossAdapter.bytecode.txt (4620b), data/part2/contract-artifacts/CrossAdapter.json (3967b), data/part2/contract-artifacts/EulerRouter.bytecode.txt (7835b), data/part2/contract-artifacts/EulerRouter.json (8428b), data/part2/contract-artifacts/GenericFactory.json (866b), data/part2/contract-artifacts/MorphoApi3CompositeOracle.bytecode.txt (4992b), data/part2/contract-artifacts/MorphoApi3CompositeOracle.json (2880b), data/part2/contract-artifacts/MorphoApi3DirectOracle.bytecode.txt (4106b), data/part2/contract-artifacts/MorphoApi3DirectOracle.json (2057b), data/part2/evk-addresses.api3-supported-overlap.json (6720b), data/part2/feed-status.json (1947b), data/part2/market-registry.json (1824b), data/part2/morpho/arbitrum-reference-config.json (1622b), package.json (1208b), references/current_capabilities.md (5497b), references/deployment-packs/arbitrum/operator-notes.md (1076b), references/deployment-packs/arbitrum/order-metadata.json (1065b), references/deployment-packs/base/operator-notes.md (329b), references/deployment-packs/base/order-metadata.json (723b), references/deployment-packs/bsc/operator-notes.md (326b), references/deployment-packs/bsc/order-metadata.json (718b), references/deployment-packs/ethereum/operator-notes.md (330b), references/deployment-packs/ethereum/order-metadata.json (721b), references/example-request.json (440b), references/live-request-template.json (1726b), references/morpho-oracle-adapter.md (1975b), references/state-machine.md (4138b), references/summary-contract.md (4748b), references/workflow.md (2843b), scripts/bin/agentic-lending-morpho.js (173b), scripts/bin/api3-feed-manager.js (170b), scripts/bin/part2-morpho-planner.js (173b), scripts/bin/part2-planner.js (166b), scripts/lib/api3-feed-manager.js (130934b), scripts/lib/part2-chain-bootstrap.js (4049b), scripts/lib/part2-morpho-planner.js (146147b), scripts/lib/part2-planner.js (191385b), scripts/lib/part2-recipes.js (1330b), SKILL.md (12198b), _meta.json (141b)\n\nFile v0.1.9:SKILL.md\n\n---\nname: agentic-lending-morpho\ndescription: Plan and execute the Morpho-first agentic lending workflow for Api3-backed markets. Use when a user wants a Morpho market or market set for selected collateral and borrow assets, needs the oracle route resolved for those assets, wants Api3 feed readiness checked or funded when safe, and then wants the Morpho oracle + market deployment and verification path run honestly. This variant can progress from planning into real feed funding and market deployment when the supported path is available and the user explicitly allows signer-backed execution. Default to planning, dry-run, or guarded verification first. Do not use for Euler EVK flows or unsupported oracle routes.\nmetadata:\n  clawdis:\n    homepage: https://github.com/daav3/agentic-lending-project\n    author: daav3\n    requires:\n      bins:\n        - node\n      env:\n        - LIVE_SIGNER_ENV\n      config:\n        - request.morpho-workflow.json\n    primaryEnv: LIVE_SIGNER_ENV\n---\n\n# Agentic Lending Morpho\n\nThis is the execution-capable Morpho workflow skill.\n\nIt is the Morpho-side counterpart to the EVK skill. It is still more conservative than the EVK path, but it now supports a real end-to-end flow for compatible requests: resolve the requested collateral and borrow assets, check feed readiness, execute funding when available, deploy the oracle adapter, deploy the Morpho market, and verify the result.\n\nThis published skill carries its own local runtime and bundled planning artifacts under `scripts/lib/` and `data/part2/` rather than assuming a separate repo checkout is available at execution time.\n\nIt should script as much of the Morpho path as the code can honestly support: feed readiness classification, executable funding, communal proxy deployment when needed, propagation rechecks, adapter deployment, market deployment, verification, resumable artifacts, and a generated `rollback-plan.json` for every orchestrated run.\n\nWhen the supported path is available and the user explicitly asks for it, this variant can send real transactions and should be treated as a guarded execution skill rather than a planning-only helper.\n\n## Golden path for normal use\nUse one request file and one wrapper command. Do not pick lower-level commands unless debugging or resuming a known run.\n\n1. Create `request.json` with exact `collateralAssets`, exact `borrowAssets`, chain, RPC, Morpho policy, feed-funding intent, and send/broadcast intent.\n   - For a live-shaped Arbitrum WETH/USDC example, copy `references/live-request-template.json` and replace every placeholder before use.\n2. Preflight before live-capable execution:\n\n   `agentic-lending-morpho preflight-morpho-market --input-file ./request.json --format json`\n\n   Stop unless `safeToRun === true`. Preflight rejects placeholder RPCs, dummy addresses, dummy private keys, mismatched RPC chain IDs, and missing live deployment policy.\n3. Run:\n\n   `agentic-lending-morpho ensure-feeds-and-deploy-morpho-market --input-file ./request.json --format json`\n\n4. Inspect the persisted run directory, especially `agent-decision.json`, `summary.json`, and `rollback-plan.json`.\n5. Report full success only when `phase === \"completed\"`, there are no hard blockers, and `verifyResult.verified === true`.\n\nIf the run needs continuation, resume the same run directory rather than reconstructing state from memory:\n\n`agentic-lending-morpho ensure-feeds-and-deploy-morpho-market --resume-from-run-dir <run-dir> --input-file <run-dir>/request.json --format json`\n\n## Safety expectations\n- default to planning, dry-run, or guarded verification first\n- only use signer-backed feed funding or market deployment when the user explicitly asks for it\n- treat browser-assisted funding as an explicit handoff, not a silent autonomous path\n- require exact asset selection before deployment planning or submission\n- require a usable RPC endpoint for any on-chain verification claim\n- keep signer material in environment variables or local runtime config, never in committed files\n\n## Read next\n1. `references/workflow.md`\n2. `references/current_capabilities.md`\n3. `references/morpho-oracle-adapter.md`\n4. `references/state-machine.md` when feed activation and market deployment are both in scope\n5. `references/summary-contract.md` before interpreting wrapper output or claiming success\n\n## Minimum required inputs\nGather these before attempting a Morpho-first workflow:\n- chain name and chain id\n- explicit `collateralAssets`\n- explicit `borrowAssets`\n- target market shape or risk intent\n- whether the user wants planning only, dry-run, or transaction submission\n- live RPC availability for the chain if anything beyond planning is expected\n- Morpho policy inputs needed for deployment on that chain when transaction submission is requested\n\nIf any of those are missing, stop and ask instead of inventing them.\n\n## Request-shape rule\nWhen preparing a request for this skill, always express the market assets explicitly as:\n- `collateralAssets`: array of `{ symbol, address }`\n- `borrowAssets`: array of `{ symbol, address }`\n\nDo not leave asset selection implicit. The planner needs the exact collateral and borrow assets in order to resolve feeds, choose a direct-versus-composed oracle route, and verify the final market correctly.\n\nFor live execution, also include explicit `activationMode`, `executionMode`, `rpcPreference`, `morphoCoreAddress`, `morphoPolicy`, `feedFunding`, `send`, and `broadcast` fields. Use `references/live-request-template.json` as the starting shape, and check `references/deployment-packs/<chain>/` for chain-specific operator notes. Never use placeholder RPC URL, private keys, signer address, Morpho core address, IRM address, or LLTV without replacing and validating them.\n\n## Default workflow\n1. Normalize the request into:\n   - chain\n   - `collateralAssets`\n   - `borrowAssets`\n   - protocol = `morpho`\n   - market or risk intent\n   - desired execution mode\n2. Treat asset selection as a first-class input.\n   - confirm the exact collateral asset set and borrow asset set the user wants\n   - for multiple collateral assets, remember this becomes a Morpho **market set**: one market per supported collateral/borrow pair\n3. Resolve the oracle path before any deploy step.\n   - prefer a direct pair when the exact requested route is available and usable\n   - otherwise use a supported composed route when the planner can prove it cleanly\n   - keep feed-name matching generic: literal exact pair first, alias-normalized fallback second\n4. Check feed readiness before deployment.\n   - if feeds are already live on the deployable on-chain path, continue\n   - if funding is needed and executable, run the funding path first\n   - if funding executes, wait for live propagation/readability before deployment\n   - if the funding branch is browser-assisted or unsupported, stop and report that honestly instead of pretending transaction submission can continue\n5. Prefer the orchestration wrapper for the real sequence.\n   - use `ensure-feeds-and-deploy-morpho-market` when the goal is to check feeds, fund if needed, deploy communal proxies when needed, wait for propagation, deploy, verify, and persist one coherent run directory\n   - use lower-level commands only when debugging or resuming a prior run\n6. Prepare and deploy the Morpho oracle adapter path.\n   - use the Api3-backed Morpho oracle adapter design as the canonical oracle shape\n   - preserve artifact handoff from adapter deployment into market deployment\n   - keep proxy-first ordering whenever a communal proxy deploy is required\n   - verify the adapter uses the same feed/proxy sources that were proven live\n7. Verify the deployed market.\n   - confirm the market exists on-chain\n   - confirm params, IRM, and LLTV expectations\n   - confirm oracle `price()` succeeds and is positive\n8. Stop at the honest boundary.\n   - if the request can only reach planning or funding handoff, say so clearly\n   - do not present Morpho deployment as equivalent to the EVK live deploy path unless the code actually supports the requested environment\n   - do not treat feed discovery, funding readiness, adapter design readiness, deployment readiness, and verified market creation as the same milestone\n\n## Preferred command path\nFor a deployable request, prefer this command shape:\n\n`agentic-lending-morpho ensure-feeds-and-deploy-morpho-market --input-file ./request.json`\n\nUse it when the agent already has a concrete request file with the selected collateral and borrow assets.\n\nUse `--resume-from-run-dir <dir>` when continuing a previously persisted run.\n\nCheck `agent-decision.json` first after wrapper runs. It is the small model-friendly status object with `safeStatus`, `nextCommand`, `mustNotDo`, and `successClaimAllowed`.\n\nCheck `rollback-plan.json` before sending any further dependent transactions. It records whether the run stayed local-only or already created forward-only onchain state.\n\nUse these reliability commands when resuming or auditing:\n- `agentic-lending-morpho explain-next --run-dir <dir> --format json`\n- `agentic-lending-morpho verify-feed-to-market-handoff --run-dir <dir> --format json`\n\nTreat bundled `data/part2/feed-status.json` and `data/part2/market-registry.json` as packaged snapshots. They are valid local inputs for fallback planning paths, but live RPC-backed checks still take precedence whenever the request needs a current on-chain claim.\n\n## Success gates for less capable models\nDo not infer success from narrative text. Use exact wrapper fields and artifacts. Read `references/summary-contract.md` for the full contract.\n\nMinimum full-success predicate:\n- top-level `phase` is `completed`\n- `blockers` is absent or empty\n- feed readiness is proven live, or post-funding `propagationResult.ready === true`\n- `deployResult.sendSummary.completed === true` for live deployment claims\n- `verifyResult.verified === true`\n- `agent-decision.json.successClaimAllowed === true`\n- `rollback-plan.json` has been inspected and reported as local-only or forward-only on-chain state\n\nIf any field is missing, say which artifact or field is missing instead of guessing.\n\n## Feed-to-market handoff checks\nBefore saying the Morpho market uses the activated feed, prove the handoff in artifacts:\n- the required feed route was resolved for the selected collateral/borrow pair\n- the feed was already live, or funding/proxy deployment completed and propagation later reported ready\n- any required communal proxy is deployed and readable before adapter deployment\n- the deployed adapter references the activated feed/proxy source, not a stale or predicted-only address\n- the created market uses the adapter output from this run\n- verification reads the deployed market oracle and receives a positive `price()`\n\nIf those checks are too hard to prove from available artifacts, report `verification-ready` or `blocked`; do not report `completed`.\n\n## Output expectations\nAlways report:\n- whether the request was normalized successfully\n- which collateral assets and borrow assets were selected for the Morpho market or market set\n- whether the required Api3 feeds are already live, fundable, browser-assisted, or unsupported\n- whether feed funding was executed, skipped as unnecessary, or handed off\n- whether post-funding propagation/readability was proven before deployment\n- whether the deployed adapter consumed the activated feed/proxy path\n- whether the deployed market consumed the adapter output from the same run\n- what oracle adapter shape is planned or deployed for Morpho\n- which steps are planning-only versus executable today\n- the exact wrapper phase: `plan-only`, `funding handoff required`, `feeds funded; waiting for propagation`, `market deployment ready`, `verification-ready`, `completed`, or `blocked`\n- exact blockers preventing a full Morpho deployment flow, if any\n- the next concrete command, file, or implementation gap to close\n\n## Tone\nBe blunt about current Morpho limits.\nDo not blur design-doc intent into executable support.\nBut do not understate the implemented path either: if the selected-asset request is executable, say so plainly and use the resolve → feed-check → funding → deploy → verify sequence.\n\nFile v0.1.9:_meta.json\n\n{\n  \"ownerId\": \"kn79961pqqa20q5jwn60zjkxzs84yc3w\",\n  \"slug\": \"agentic-lending-morpho\",\n  \"version\": \"0.1.9\",\n  \"publishedAt\": 1779282425310\n}\n\nFile v0.1.9:references/current_capabilities.md\n\n# Current capabilities and limits\n\nThis skill is intentionally honest about the current Morpho state in the repo.\n\n## What exists today\n- the published skill now carries its own local runtime under `scripts/lib/`\n- the published skill now carries its own packaged planning data under `data/part2/`, including shared planner snapshots and Morpho oracle artifacts\n- the part 2 planner recognizes `protocol = morpho`\n- the repo contains Morpho-first design work and oracle-adapter specifications\n- Api3 feed discovery and readiness logic already exists at the project level\n- the project has prior EVK skill patterns that can be reused for reporting, branching, and safety posture\n- `prepare-morpho-market` exists at the planner layer\n- `deploy-morpho-oracle-adapter`, `deploy-morpho-market`, and `verify-morpho-market` now exist at the planner layer\n- `deploy-and-verify-morpho-market` exists as a one-shot wrapper around deploy plus verify artifact handoff\n- `ensure-feeds-and-deploy-morpho-market` now exists as the Phase 1 orchestration wrapper for feed readiness, executable funding, propagation recheck, deploy, and artifact persistence\n- the wrapper now has an initial Phase 2 resume path, so an operator can point it at a prior run directory and continue from stored request, completed funding, propagation, deploy, and verify artifacts instead of starting from zero\n- funded-feed cache artifacts are now reusable across runs with `--funded-feed-cache-file <path>`; matching cache entries skip repeat funding classification/execution and force a live propagation recheck before deployment\n- the packaged Morpho runtime can now use the newest bundled feed-funding logic, including communal proxy deployment during scripted funding flows when execution is allowed\n- every orchestrated Morpho run now writes `rollback-plan.json`, which records whether the run is still local-only or already has forward-only onchain changes that now need compensating-action thinking instead of fake “undo” language\n- multiple deposit-asset intent is handled as a **Morpho market set**, meaning one Morpho market per collateral/loan asset pair rather than a fake multi-collateral single market\n\n## What is not yet equivalent to EVK\n- there is still not a Morpho deploy path as mature as the EVK workflow\n- browser-assisted feed funding still requires a human handoff, it is not a silent end-to-end auto path\n- the wrapper now supports resume-from-run-directory for stored deploy/verify artifacts, completed funding artifacts, and reusable funded-feed cache inputs, but broader production run recovery is still incomplete, especially around policy-aware retries and richer operator decisions\n- do not promise a live Morpho canary borrow path from this skill yet\n- oracle-adapter work is still the critical bridge between Api3 feeds and Morpho market deployment\n- on-chain verification depends on a real RPC plus the correct Morpho core and oracle addresses, so it is available but still environment-sensitive\n- bundled `feed-status.json` and `market-registry.json` are local packaged snapshots, so they help planning and fallback behavior but should not be presented as fresher than live RPC-backed checks\n\n## Practical meaning\nUse this skill today for:\n- Morpho-first planning\n- explicit collateral-asset and borrow-asset selection for the target Morpho market or market set\n- route resolution across supported pairs, including direct routes and supported composed routes\n- feed-readiness analysis for the resolved oracle path\n- funding-aware Morpho execution that can classify feed funding paths as ready, executable, browser-assisted, or unsupported before deployment continues\n- Api3-backed oracle-adapter planning and deployment\n- `prepare-morpho-market`\n- `deploy-morpho-market` calldata planning and optional guarded transaction submission when the request includes a Morpho core address plus explicit send/broadcast inputs\n- `verify-morpho-market` readback checks for created markets, IRM/LLTV enablement, and oracle `price()` sanity when the request includes a usable RPC endpoint\n- `deploy-and-verify-morpho-market` when the operator already has feeds ready enough to proceed to deployment\n- `ensure-feeds-and-deploy-morpho-market` when the operator wants one wrapper that can take the selected assets, classify or execute funding, wait for feed usability, deploy, persist a full run directory, write a funded-feed cache artifact, reuse that cache in a later run with `--funded-feed-cache-file`, and later resume verification or continuation from that run directory\n- `ensure-feeds-and-deploy-morpho-market` when the operator also wants the run directory to include an explicit rollback/audit surface instead of only deploy/funding artifacts\n- honest implementation-gap reporting\n\nDo not use it to pretend the repo already has full EVK-style production hardening around every Morpho environment when it does not.\n\n## Honest status language\nPrefer one of these states explicitly:\n- plan-only\n- feed-ready but adapter-planning pending\n- funding handoff required\n- oracle-adapter design ready\n- market preparation ready\n- executable Morpho deployment ready\n\nOnly use `executable Morpho deployment ready` if the repo truly has the selected collateral and borrow assets, a cleanly resolved oracle path for those assets, the required Morpho core address, oracle addresses, IRM/LLTV policy inputs, a deliberate guarded send/broadcast path for the requested run, and a usable RPC endpoint for verification.\n\nFile v0.1.9:references/deployment-packs/arbitrum/operator-notes.md\n\n# Arbitrum Morpho deployment pack\n\nUse this pack for Arbitrum first-canary Morpho market work.\n\n## Required live inputs\n- Arbitrum RPC URL that returns chain id `42161`\n- deployer/signer address and private key supplied only via runtime/local secret handling\n- exact collateral and borrow token addresses\n- Morpho core address for Arbitrum\n- enabled IRM address and LLTV value\n- feed funding mode and send/broadcast intent\n\n## Command order\n1. `agentic-lending-morpho preflight-morpho-market --input-file ./request.json --format json`\n2. Stop unless `safeToRun === true`.\n3. `agentic-lending-morpho ensure-feeds-and-deploy-morpho-market --input-file ./request.json --format json`\n4. If blocked or waiting, run `agentic-lending-morpho explain-next --run-dir <run-dir> --format json`.\n5. Before final success reporting, run `agentic-lending-morpho verify-feed-to-market-handoff --run-dir <run-dir> --format json`.\n\n## Reporting rule\nOnly report live market success when the wrapper completed, `agent-decision.json.successClaimAllowed === true`, and handoff verification passes.\n\nFile v0.1.9:references/deployment-packs/arbitrum/order-metadata.json\n\n{\n  \"chain\": { \"name\": \"arbitrum\", \"chainId\": 42161 },\n  \"preferredOrder\": [\n    \"preflight-morpho-market\",\n    \"ensure-feeds-and-deploy-morpho-market\",\n    \"explain-next\",\n    \"verify-feed-to-market-handoff\"\n  ],\n  \"rpcRequirements\": {\n    \"chainIdMustMatch\": 42161,\n    \"allowPublicFallbackForPlanningOnly\": true,\n    \"requireExplicitRpcForLive\": true\n  },\n  \"liveExecutionGuards\": {\n    \"requiresAcknowledgement\": \"I_UNDERSTAND_THIS_WILL_SEND_TRANSACTIONS\",\n    \"rejectPlaceholders\": true,\n    \"requirePreflightSafeToRun\": true\n  },\n  \"artifactGates\": [\n    \"agent-decision.json.successClaimAllowed === true\",\n    \"summary.json.phase === completed\",\n    \"deploy-output.json.sendSummary.completed === true\",\n    \"verify-output.json.verified === true\"\n  ],\n  \"notes\": [\n    \"Use references/live-request-template.json as the request shape, replacing every placeholder before preflight.\",\n    \"After feed funding, do not deploy until propagation.json.ready is true.\",\n    \"Use verify-feed-to-market-handoff before reporting a final market deployment success.\"\n  ]\n}\n\nFile v0.1.9:references/deployment-packs/base/operator-notes.md\n\n# base Morpho deployment pack\n\nTemplate pack only. Before live use, fill and verify:\n- RPC URL returning chain id `8453`\n- Morpho core address\n- enabled IRM address\n- LLTV value\n- exact collateral/borrow token addresses\n- feed funding and send/broadcast settings\n\nAlways run preflight first and stop unless `safeToRun === true`.\n\nFile v0.1.9:references/deployment-packs/base/order-metadata.json\n\n{\n  \"chain\": { \"name\": \"base\", \"chainId\": 8453 },\n  \"status\": \"template-pack\",\n  \"preferredOrder\": [\n    \"preflight-morpho-market\",\n    \"ensure-feeds-and-deploy-morpho-market\",\n    \"explain-next\",\n    \"verify-feed-to-market-handoff\"\n  ],\n  \"rpcRequirements\": {\n    \"chainIdMustMatch\": 8453,\n    \"requireExplicitRpcForLive\": true\n  },\n  \"liveExecutionGuards\": {\n    \"requiresAcknowledgement\": \"I_UNDERSTAND_THIS_WILL_SEND_TRANSACTIONS\",\n    \"rejectPlaceholders\": true,\n    \"requirePreflightSafeToRun\": true\n  },\n  \"notes\": [\n    \"Fill chain-specific Morpho core, IRM, LLTV, and token addresses before use.\",\n    \"Do not treat this template as a validated deployment pack until chain-specific addresses are confirmed.\"\n  ]\n}\n\nFile v0.1.9:references/deployment-packs/bsc/operator-notes.md\n\n# bsc Morpho deployment pack\n\nTemplate pack only. Before live use, fill and verify:\n- RPC URL returning chain id `56`\n- Morpho core address\n- enabled IRM address\n- LLTV value\n- exact collateral/borrow token addresses\n- feed funding and send/broadcast settings\n\nAlways run preflight first and stop unless `safeToRun === true`.\n\nFile v0.1.9:references/deployment-packs/bsc/order-metadata.json\n\n{\n  \"chain\": { \"name\": \"bsc\", \"chainId\": 56 },\n  \"status\": \"template-pack\",\n  \"preferredOrder\": [\n    \"preflight-morpho-market\",\n    \"ensure-feeds-and-deploy-morpho-market\",\n    \"explain-next\",\n    \"verify-feed-to-market-handoff\"\n  ],\n  \"rpcRequirements\": {\n    \"chainIdMustMatch\": 56,\n    \"requireExplicitRpcForLive\": true\n  },\n  \"liveExecutionGuards\": {\n    \"requiresAcknowledgement\": \"I_UNDERSTAND_THIS_WILL_SEND_TRANSACTIONS\",\n    \"rejectPlaceholders\": true,\n    \"requirePreflightSafeToRun\": true\n  },\n  \"notes\": [\n    \"Fill chain-specific Morpho core, IRM, LLTV, and token addresses before use.\",\n    \"Do not treat this template as a validated deployment pack until chain-specific addresses are confirmed.\"\n  ]\n}\n\nFile v0.1.9:references/deployment-packs/ethereum/operator-notes.md\n\n# ethereum Morpho deployment pack\n\nTemplate pack only. Before live use, fill and verify:\n- RPC URL returning chain id `1`\n- Morpho core address\n- enabled IRM address\n- LLTV value\n- exact collateral/borrow token addresses\n- feed funding and send/broadcast settings\n\nAlways run preflight first and stop unless `safeToRun === true`.\n\nFile v0.1.9:references/deployment-packs/ethereum/order-metadata.json\n\n{\n  \"chain\": { \"name\": \"ethereum\", \"chainId\": 1 },\n  \"status\": \"template-pack\",\n  \"preferredOrder\": [\n    \"preflight-morpho-market\",\n    \"ensure-feeds-and-deploy-morpho-market\",\n    \"explain-next\",\n    \"verify-feed-to-market-handoff\"\n  ],\n  \"rpcRequirements\": {\n    \"chainIdMustMatch\": 1,\n    \"requireExplicitRpcForLive\": true\n  },\n  \"liveExecutionGuards\": {\n    \"requiresAcknowledgement\": \"I_UNDERSTAND_THIS_WILL_SEND_TRANSACTIONS\",\n    \"rejectPlaceholders\": true,\n    \"requirePreflightSafeToRun\": true\n  },\n  \"notes\": [\n    \"Fill chain-specific Morpho core, IRM, LLTV, and token addresses before use.\",\n    \"Do not treat this template as a validated deployment pack until chain-specific addresses are confirmed.\"\n  ]\n}\n\nFile v0.1.9:references/example-request.json\n\n{\n  \"protocol\": \"morpho\",\n  \"chain\": {\n    \"name\": \"arbitrum\",\n    \"chainId\": 42161\n  },\n  \"collateralAssets\": [\n    {\n      \"symbol\": \"WETH\",\n      \"address\": \"0x82af49447d8a07e3bd95bd0d56f35241523fbab1\"\n    }\n  ],\n  \"borrowAssets\": [\n    {\n      \"symbol\": \"USDC\",\n      \"address\": \"0xaf88d065e77c8cC2239327C5EDb3A432268e5831\"\n    }\n  ],\n  \"riskPreset\": \"core\",\n  \"executionMode\": \"planning-only\",\n  \"marketShapeIntent\": \"single-market\"\n}\n\nArchive v0.1.8: 46 files, 143537 bytes\n\nFiles: artifacts/morpho-ensure-deploy/2026-05-08T08-02-31-748Z/deploy-output.json (9299b), artifacts/morpho-ensure-deploy/2026-05-08T08-02-31-748Z/request.json (1007b), artifacts/morpho-ensure-deploy/2026-05-08T08-02-31-748Z/summary.json (2384b), artifacts/morpho-ensure-deploy/2026-05-08T08-02-31-748Z/workflow.initial.json (22329b), artifacts/morpho-ensure-deploy/2026-05-08T08-10-05-005Z/deploy-output.json (9400b), artifacts/morpho-ensure-deploy/2026-05-08T08-10-05-005Z/request.json (1008b), artifacts/morpho-ensure-deploy/2026-05-08T08-10-05-005Z/summary.json (1975b), artifacts/morpho-ensure-deploy/2026-05-08T08-10-05-005Z/verify-output.json (1777b), artifacts/morpho-ensure-deploy/2026-05-08T08-10-05-005Z/workflow.initial.json (22329b), CHANGELOG.md (1886b), data/part2/contract-artifacts/Api3PartialAggregatorV2V3Interface.bytecode.txt (2884b), data/part2/contract-artifacts/Api3PartialAggregatorV2V3Interface.json (5707b), data/part2/contract-artifacts/ChainlinkInfrequentOracle.bytecode.txt (6011b), data/part2/contract-artifacts/ChainlinkInfrequentOracle.json (4247b), data/part2/contract-artifacts/ChainlinkOracle.bytecode.txt (6914b), data/part2/contract-artifacts/ChainlinkOracle.json (4209b), data/part2/contract-artifacts/CrossAdapter.bytecode.txt (4620b), data/part2/contract-artifacts/CrossAdapter.json (3967b), data/part2/contract-artifacts/EulerRouter.bytecode.txt (7835b), data/part2/contract-artifacts/EulerRouter.json (8428b), data/part2/contract-artifacts/GenericFactory.json (866b), data/part2/contract-artifacts/MorphoApi3CompositeOracle.bytecode.txt (4992b), data/part2/contract-artifacts/MorphoApi3CompositeOracle.json (2880b), data/part2/contract-artifacts/MorphoApi3DirectOracle.bytecode.txt (4106b), data/part2/contract-artifacts/MorphoApi3DirectOracle.json (2057b), data/part2/evk-addresses.api3-supported-overlap.json (6720b), data/part2/feed-status.json (1947b), data/part2/market-registry.json (1824b), data/part2/morpho/arbitrum-reference-config.json (1622b), package.json (1245b), README.md (3625b), references/current_capabilities.md (5497b), references/example-request.json (440b), references/morpho-oracle-adapter.md (1975b), references/workflow.md (2843b), scripts/bin/agentic-lending-morpho.js (173b), scripts/bin/api3-feed-manager.js (170b), scripts/bin/part2-morpho-planner.js (173b), scripts/bin/part2-planner.js (166b), scripts/lib/api3-feed-manager.js (124328b), scripts/lib/part2-chain-bootstrap.js (4049b), scripts/lib/part2-morpho-planner.js (131722b), scripts/lib/part2-planner.js (191385b), scripts/lib/part2-recipes.js (1330b), SKILL.md (7753b), _meta.json (141b)\n\nFile v0.1.8:SKILL.md\n\n---\nname: agentic-lending-morpho\ndescription: Plan and execute the Morpho-first agentic lending workflow for Api3-backed markets. Use when a user wants a Morpho market or market set for selected collateral and borrow assets, needs the oracle route resolved for those assets, wants Api3 feed readiness checked or funded when safe, and then wants the Morpho oracle + market deployment and verification path run honestly. This variant can progress from planning into real feed funding and market deployment when the supported path is available and the user explicitly allows signer-backed execution. Default to planning, dry-run, or guarded verification first. Do not use for Euler EVK flows or unsupported oracle routes.\nmetadata:\n  clawdis:\n    homepage: https://github.com/daav3/agentic-lending-project\n    author: daav3\n    requires:\n      bins:\n        - node\n      env:\n        - LIVE_SIGNER_ENV\n      config:\n        - request.morpho-workflow.json\n    primaryEnv: LIVE_SIGNER_ENV\n---\n\n# Agentic Lending Morpho\n\nThis is the execution-capable Morpho workflow skill.\n\nIt is the Morpho-side counterpart to the EVK skill. It is still more conservative than the EVK path, but it now supports a real end-to-end flow for compatible requests: resolve the requested collateral and borrow assets, check feed readiness, execute funding when available, deploy the oracle adapter, deploy the Morpho market, and verify the result.\n\nThis published skill carries its own local runtime and bundled planning artifacts under `scripts/lib/` and `data/part2/` rather than assuming a separate repo checkout is available at execution time.\n\nIt should script as much of the Morpho path as the code can honestly support: feed readiness classification, executable funding, communal proxy deployment when needed, propagation rechecks, adapter deployment, market deployment, verification, resumable artifacts, and a generated `rollback-plan.json` for every orchestrated run.\n\nWhen the supported path is available and the user explicitly asks for it, this variant can send real transactions and should be treated as a guarded execution skill rather than a planning-only helper.\n\n## Safety expectations\n- default to planning, dry-run, or guarded verification first\n- only use signer-backed feed funding or market deployment when the user explicitly asks for it\n- treat browser-assisted funding as an explicit handoff, not a silent autonomous path\n- require exact asset selection before deployment planning or submission\n- require a usable RPC endpoint for any on-chain verification claim\n- keep signer material in environment variables or local runtime config, never in committed files\n\n## Read next\n1. `references/workflow.md`\n2. `references/current_capabilities.md`\n3. `references/morpho-oracle-adapter.md`\n\n## Minimum required inputs\nGather these before attempting a Morpho-first workflow:\n- chain name and chain id\n- explicit `collateralAssets`\n- explicit `borrowAssets`\n- target market shape or risk intent\n- whether the user wants planning only, dry-run, or transaction submission\n- live RPC availability for the chain if anything beyond planning is expected\n- Morpho policy inputs needed for deployment on that chain when transaction submission is requested\n\nIf any of those are missing, stop and ask instead of inventing them.\n\n## Request-shape rule\nWhen preparing a request for this skill, always express the market assets explicitly as:\n- `collateralAssets`: array of `{ symbol, address }`\n- `borrowAssets`: array of `{ symbol, address }`\n\nDo not leave asset selection implicit. The planner needs the exact collateral and borrow assets in order to resolve feeds, choose a direct-versus-composed oracle route, and verify the final market correctly.\n\n## Default workflow\n1. Normalize the request into:\n   - chain\n   - `collateralAssets`\n   - `borrowAssets`\n   - protocol = `morpho`\n   - market or risk intent\n   - desired execution mode\n2. Treat asset selection as a first-class input.\n   - confirm the exact collateral asset set and borrow asset set the user wants\n   - for multiple collateral assets, remember this becomes a Morpho **market set**: one market per supported collateral/borrow pair\n3. Resolve the oracle path before any deploy step.\n   - prefer a direct pair when the exact requested route is available and usable\n   - otherwise use a supported composed route when the planner can prove it cleanly\n   - keep feed-name matching generic: literal exact pair first, alias-normalized fallback second\n4. Check feed readiness before deployment.\n   - if feeds are already live on the deployable on-chain path, continue\n   - if funding is needed and executable, run the funding path first\n   - if the funding branch is browser-assisted or unsupported, stop and report that honestly instead of pretending transaction submission can continue\n5. Prefer the orchestration wrapper for the real sequence.\n   - use `ensure-feeds-and-deploy-morpho-market` when the goal is to check feeds, fund if needed, deploy communal proxies when needed, wait for propagation, deploy, verify, and persist one coherent run directory\n   - use lower-level commands only when debugging or resuming a prior run\n6. Prepare and deploy the Morpho oracle adapter path.\n   - use the Api3-backed Morpho oracle adapter design as the canonical oracle shape\n   - preserve artifact handoff from adapter deployment into market deployment\n   - keep proxy-first ordering whenever a communal proxy deploy is required\n7. Verify the deployed market.\n   - confirm the market exists on-chain\n   - confirm params, IRM, and LLTV expectations\n   - confirm oracle `price()` succeeds and is positive\n8. Stop at the honest boundary.\n   - if the request can only reach planning or funding handoff, say so clearly\n   - do not present Morpho deployment as equivalent to the EVK live deploy path unless the code actually supports the requested environment\n   - do not treat feed discovery, funding readiness, adapter design readiness, deployment readiness, and verified market creation as the same milestone\n\n## Preferred command path\nFor a deployable request, prefer this command shape:\n\n`agentic-lending-morpho ensure-feeds-and-deploy-morpho-market --input-file ./request.json`\n\nUse it when the agent already has a concrete request file with the selected collateral and borrow assets.\n\nUse `--resume-from-run-dir <dir>` when continuing a previously persisted run.\n\nCheck `rollback-plan.json` in that run directory before sending any further dependent transactions. It records whether the run stayed local-only or already created forward-only onchain state.\n\nTreat bundled `data/part2/feed-status.json` and `data/part2/market-registry.json` as packaged snapshots. They are valid local inputs for fallback planning paths, but live RPC-backed checks still take precedence whenever the request needs a current on-chain claim.\n\n## Output expectations\nAlways report:\n- whether the request was normalized successfully\n- which collateral assets and borrow assets were selected for the Morpho market or market set\n- whether the required Api3 feeds are already live, fundable, browser-assisted, or unsupported\n- whether feed funding was executed, skipped as unnecessary, or handed off\n- what oracle adapter shape is planned or deployed for Morpho\n- which steps are planning-only versus executable today\n- exact blockers preventing a full Morpho deployment flow, if any\n- the next concrete command, file, or implementation gap to close\n\n## Tone\nBe blunt about current Morpho limits.\nDo not blur design-doc intent into executable support.\nBut do not understate the implemented path either: if the selected-asset request is executable, say so plainly and use the resolve → feed-check → funding → deploy → verify sequence.\n\nFile v0.1.8:README.md\n\n# Agentic Lending Morpho\n\nExecution-capable Morpho skill bundle for Api3-backed lending workflows.\n\n## Install + first command\n\n```bash\nnpm install <this-package>\npart2-morpho-planner prepare-morpho-market --input-file ./node_modules/agentic-lending-morpho/references/example-request.json\n```\n\nIf you want the higher-level orchestration entrypoint instead:\n\n```bash\nagentic-lending-morpho ensure-feeds-and-deploy-morpho-market --input-file ./node_modules/agentic-lending-morpho/references/example-request.json\n```\n\nThis published skill now carries its own runnable Morpho execution surface instead of depending on a separate repo checkout for planner runtime and core planning artifacts.\n\nThat wrapper now aims to script the whole honest path: feed classification, executable funding, communal proxy deployment when needed, propagation wait, adapter deploy, market deploy, verification, resumable artifacts, and `rollback-plan.json`.\n\n## Bundled contents\n\n- packaged skill instructions in `SKILL.md`\n- local CLI entrypoint in `scripts/bin/agentic-lending-morpho.js`\n- package metadata for standalone installation and packaging\n- bundled Morpho planner runtime in `scripts/lib/`, including shared planner dependencies `part2-chain-bootstrap.js` and `part2-recipes.js`\n- bundled planning data under `data/part2/`\n  - `feed-status.json`\n  - `market-registry.json`\n  - `evk-addresses.api3-supported-overlap.json` for shared auto-vault/bootstrap helpers\n  - contract artifacts required by the shared planner plus Morpho adapter deployment\n  - `morpho/arbitrum-reference-config.json`\n\n## Published CLI commands\n\nAfter installing this package, the published executables are:\n\n- `agentic-lending-morpho`\n- `api3-feed-manager`\n- `part2-planner`\n- `part2-morpho-planner`\n\n## Quick examples\n\nTop-level Morpho orchestration path:\n\n```bash\nagentic-lending-morpho ensure-feeds-and-deploy-morpho-market --input-file ./request.json\n```\n\nMorpho-specific lower-level entrypoint:\n\n```bash\npart2-morpho-planner prepare-morpho-market --input-file ./node_modules/agentic-lending-morpho/references/example-request.json\npart2-morpho-planner deploy-and-verify-morpho-market --input-file ./node_modules/agentic-lending-morpho/references/example-request.json\n```\n\nShared helper CLIs:\n\n```bash\napi3-feed-manager resolve --dapi-name ETH/USD --chain arbitrum --rpc-url https://arb1.arbitrum.io/rpc\npart2-planner plan-market --input-file ./request.json\n```\n\n## Cold-install expectations\n\n- Node.js `>=20`\n- start from `references/example-request.json` and replace placeholder or planning inputs as needed\n- provide a live RPC URL for on-chain checks or transaction-oriented flows\n- provide Morpho core / policy inputs for executable deployment requests\n- provide signer material only for explicitly user-approved send paths\n- treat bundled planner snapshots as local packaged fallback inputs, not fresh chain truth\n\n## Rollback reality\n\nEach orchestrated run now writes `rollback-plan.json` inside its run directory.\n\n- if no onchain transactions were submitted, rollback is just local artifact cleanup or restoring prior request/config state\n- if transactions were submitted, the file records tx hashes and deployed addresses so you can halt safely and plan compensating actions without guessing\n- it is intentionally honest: Morpho/feed-funding sends are forward-only onchain, so “rollback” here means audit + stop + compensate, not magical undo\n\n## Snapshot honesty\n\nBundled `feed-status.json` and `market-registry.json` are packaged local snapshots for planning fallback and artifact lookup. They are useful inputs, not authoritative global truth.\n\nFile v0.1.8:_meta.json\n\n{\n  \"ownerId\": \"kn79961pqqa20q5jwn60zjkxzs84yc3w\",\n  \"slug\": \"agentic-lending-morpho\",\n  \"version\": \"0.1.8\",\n  \"publishedAt\": 1779197847205\n}\n\nFile v0.1.8:references/current_capabilities.md\n\n# Current capabilities and limits\n\nThis skill is intentionally honest about the current Morpho state in the repo.\n\n## What exists today\n- the published skill now carries its own local runtime under `scripts/lib/`\n- the published skill now carries its own packaged planning data under `data/part2/`, including shared planner snapshots and Morpho oracle artifacts\n- the part 2 planner recognizes `protocol = morpho`\n- the repo contains Morpho-first design work and oracle-adapter specifications\n- Api3 feed discovery and readiness logic already exists at the project level\n- the project has prior EVK skill patterns that can be reused for reporting, branching, and safety posture\n- `prepare-morpho-market` exists at the planner layer\n- `deploy-morpho-oracle-adapter`, `deploy-morpho-market`, and `verify-morpho-market` now exist at the planner layer\n- `deploy-and-verify-morpho-market` exists as a one-shot wrapper around deploy plus verify artifact handoff\n- `ensure-feeds-and-deploy-morpho-market` now exists as the Phase 1 orchestration wrapper for feed readiness, executable funding, propagation recheck, deploy, and artifact persistence\n- the wrapper now has an initial Phase 2 resume path, so an operator can point it at a prior run directory and continue from stored request, completed funding, propagation, deploy, and verify artifacts instead of starting from zero\n- funded-feed cache artifacts are now reusable across runs with `--funded-feed-cache-file <path>`; matching cache entries skip repeat funding classification/execution and force a live propagation recheck before deployment\n- the packaged Morpho runtime can now use the newest bundled feed-funding logic, including communal proxy deployment during scripted funding flows when execution is allowed\n- every orchestrated Morpho run now writes `rollback-plan.json`, which records whether the run is still local-only or already has forward-only onchain changes that now need compensating-action thinking instead of fake “undo” language\n- multiple deposit-asset intent is handled as a **Morpho market set**, meaning one Morpho market per collateral/loan asset pair rather than a fake multi-collateral single market\n\n## What is not yet equivalent to EVK\n- there is still not a Morpho deploy path as mature as the EVK workflow\n- browser-assisted feed funding still requires a human handoff, it is not a silent end-to-end auto path\n- the wrapper now supports resume-from-run-directory for stored deploy/verify artifacts, completed funding artifacts, and reusable funded-feed cache inputs, but broader production run recovery is still incomplete, especially around policy-aware retries and richer operator decisions\n- do not promise a live Morpho canary borrow path from this skill yet\n- oracle-adapter work is still the critical bridge between Api3 feeds and Morpho market deployment\n- on-chain verification depends on a real RPC plus the correct Morpho core and oracle addresses, so it is available but still environment-sensitive\n- bundled `feed-status.json` and `market-registry.json` are local packaged snapshots, so they help planning and fallback behavior but should not be presented as fresher than live RPC-backed checks\n\n## Practical meaning\nUse this skill today for:\n- Morpho-first planning\n- explicit collateral-asset and borrow-asset selection for the target Morpho market or market set\n- route resolution across supported pairs, including direct routes and supported composed routes\n- feed-readiness analysis for the resolved oracle path\n- funding-aware Morpho execution that can classify feed funding paths as ready, executable, browser-assisted, or unsupported before deployment continues\n- Api3-backed oracle-adapter planning and deployment\n- `prepare-morpho-market`\n- `deploy-morpho-market` calldata planning and optional guarded transaction submission when the request includes a Morpho core address plus explicit send/broadcast inputs\n- `verify-morpho-market` readback checks for created markets, IRM/LLTV enablement, and oracle `price()` sanity when the request includes a usable RPC endpoint\n- `deploy-and-verify-morpho-market` when the operator already has feeds ready enough to proceed to deployment\n- `ensure-feeds-and-deploy-morpho-market` when the operator wants one wrapper that can take the selected assets, classify or execute funding, wait for feed usability, deploy, persist a full run directory, write a funded-feed cache artifact, reuse that cache in a later run with `--funded-feed-cache-file`, and later resume verification or continuation from that run directory\n- `ensure-feeds-and-deploy-morpho-market` when the operator also wants the run directory to include an explicit rollback/audit surface instead of only deploy/funding artifacts\n- honest implementation-gap reporting\n\nDo not use it to pretend the repo already has full EVK-style production hardening around every Morpho environment when it does not.\n\n## Honest status language\nPrefer one of these states explicitly:\n- plan-only\n- feed-ready but adapter-planning pending\n- funding handoff required\n- oracle-adapter design ready\n- market preparation ready\n- executable Morpho deployment ready\n\nOnly use `executable Morpho deployment ready` if the repo truly has the selected collateral and borrow assets, a cleanly resolved oracle path for those assets, the required Morpho core address, oracle addresses, IRM/LLTV policy inputs, a deliberate guarded send/broadcast path for the requested run, and a usable RPC endpoint for verification.\n\nFile v0.1.8:references/example-request.json\n\n{\n  \"protocol\": \"morpho\",\n  \"chain\": {\n    \"name\": \"arbitrum\",\n    \"chainId\": 42161\n  },\n  \"collateralAssets\": [\n    {\n      \"symbol\": \"WETH\",\n      \"address\": \"0x82af49447d8a07e3bd95bd0d56f35241523fbab1\"\n    }\n  ],\n  \"borrowAssets\": [\n    {\n      \"symbol\": \"USDC\",\n      \"address\": \"0xaf88d065e77c8cC2239327C5EDb3A432268e5831\"\n    }\n  ],\n  \"riskPreset\": \"core\",\n  \"executionMode\": \"planning-only\",\n  \"marketShapeIntent\": \"single-market\"\n}\n\nFile v0.1.8:references/morpho-oracle-adapter.md\n\n# Morpho oracle adapter, Api3-backed\n\nThis reference captures the intended oracle shape for Morpho markets using Api3.\n\n## Goal\nUse Api3 data feeds as the pricing source for Morpho markets without relying on Euler-specific oracle assumptions.\n\n## Core expectation\nA Morpho-first workflow needs an oracle adapter layer that:\n- reads the relevant Api3-backed price source\n- exposes the interface expected by the Morpho deployment path\n- preserves quote orientation and unit correctness for the intended market\n- works generically across supported collateral/borrow pairs rather than being tied to a small set of previously tested examples\n\n## Route-selection rule\nChoose the oracle path for the selected assets in this order:\n1. exact direct route when the requested pair exists and is deployable\n2. supported composed route when the planner can prove the composition cleanly\n3. stop and report the blocker when neither route is valid\n\nWhen resolving feed names:\n- prefer literal exact pair matching first\n- use alias-normalized matching only as a fallback discovery mechanism\n- do not let alias collisions override a valid literal route for the requested assets\n\n## Agent guidance\nWhen using this skill:\n- do not assume the EVK oracle path can be reused unchanged\n- explicitly verify the adapter interface the Morpho side expects\n- distinguish between:\n  - feed readiness\n  - adapter design readiness\n  - deployment executor readiness\n- treat successful prior canaries as proof that the path can work, not as permission to special-case those same asset pairs in future planning\n\n## Honest boundary\nIf the selected environment only reaches design or planning, say so plainly.\n\nIf the request can reach executable deployment, also say so plainly.\n\nDo not collapse these different states into one claim:\n- the Api3 oracle route is designed\n- the Morpho adapter is specified\n- the packaged executor can deploy for this request\n- the deployed market was actually verified on-chain\n\nFile v0.1.8:references/workflow.md\n\n# Morpho-first workflow\n\nUse this as the default cold-start path.\n\n## Canonical workflow\n1. normalize the market request with `protocol = morpho`\n2. require the agent to specify the exact `collateralAssets` and `borrowAssets`\n3. resolve the oracle route for the requested assets\n   - prefer an exact direct route when it exists and is deployable\n   - otherwise use a supported composed route when the planner can prove the path cleanly\n   - prefer literal exact feed-name matches before alias-normalized fallback matches\n4. inspect required Api3 feeds and funding state for the resolved route\n5. branch on feed readiness:\n   - already live on the deployable on-chain path\n   - directly fundable\n   - browser-assisted\n   - unsupported\n6. if funding is directly executable, run funding before any deployment step\n   - default to also deploying any required communal proxy in the same scripted funding path unless the request explicitly disables that\n7. map the market to the Morpho oracle-adapter design\n8. prefer `ensure-feeds-and-deploy-morpho-market` for the end-to-end path\n9. either:\n   - emit a planning bundle plus implementation gap report, or\n   - continue into executable Morpho deployment, then verify the market and oracle read path\n10. persist and inspect `rollback-plan.json` in the run directory before sending any further dependent transactions\n\n## Generalization rule\nTreat the planner path as asset-agnostic across supported pairs:\n- do not special-case only previously tested pairs\n- use the same resolution, funding, deployment, and verification logic for whichever supported collateral and borrow assets are selected\n- only stop when the route cannot be resolved cleanly, the funding path is unavailable, or the verification invariants cannot be satisfied\n\n## Recommended reporting structure\nFor each run, report:\n- normalized intent\n- feed status\n- oracle-adapter plan\n- executable versus planning-only status\n- rollback reality (`local-only` versus `forward-only onchain changes recorded`)\n- blockers\n- next commands or files to change\n\n## Working implementation target\nThis skill should support:\n- Morpho market intent normalization\n- explicit collateral/borrow asset selection by the requesting agent\n- Api3 feed readiness checks\n- executable feed funding when supported\n- Morpho oracle-adapter preparation and deployment\n- Morpho market deployment and verification\n\nWhen a request cannot reach deployment, fall back honestly to planning, funding handoff, or implementation-gap reporting.\n\n## Packaged artifact note\nIn the published skill bundle, the shared planner data under `data/part2/` is packaged locally.\n- prefer live RPC-backed feed checks when available\n- fall back to bundled `feed-status.json` / `market-registry.json` only as packaged local snapshots\n- do not describe those files as canonical global truth\n\nFile v0.1.8:CHANGELOG.md\n\n# Changelog\n\n## 0.1.8 - 2026-05-19\n- sync the published Morpho bundle to the newest packaged Api3 feed-funding runtime, including scripted communal proxy deployment support\n- default Morpho feed-funding orchestration toward the more-scripted path by requesting communal proxy deployment during executable funding unless explicitly disabled\n- write a `rollback-plan.json` artifact for orchestrated Morpho runs so operators can distinguish local-only runs from forward-only onchain changes\n\n## 0.1.7 - 2026-05-08\n- move deployment bytecode out of inline JSON artifact literals into wrapped sidecar files and rehydrate it at runtime to avoid false-positive secret-literal moderation hits\n\n## 0.1.6 - 2026-05-07\n- replace secret-looking private key placeholders in packaged CLI help text with `<private-key-hex>` to reduce false-positive scanner hits\n\n## 0.1.5 - 2026-05-07\n- finished the self-contained Morpho executor bundle so clean installs carry the packaged runtime, planner data, and Morpho deployment artifacts\n- aligned packaged CLI help text with the published binary names and added a packaged example request path that works from a clean install\n- fixed installed runtime path resolution for user-supplied input files, resume/output paths, and bundled `data/part2/...` lookups discovered during smoke testing\n\n## 0.1.0\n- add standalone package metadata for the published Morpho executor skill\n- add a local Morpho CLI entrypoint for the future bundled runtime\n- bundle the Morpho runtime modules under `scripts/lib/`, including shared planner dependencies `part2-chain-bootstrap.js` and `part2-recipes.js`\n- bundle shared planner snapshots and Morpho deployment artifacts under `data/part2/`, including the overlap snapshot required by shared auto-vault/bootstrap helpers\n- document the published Morpho skill as a self-contained executor artifact with packaged local snapshots\n\nFile v0.1.8:artifacts/morpho-ensure-deploy/2026-05-08T08-02-31-748Z/deploy-output.json\n\n{\n  \"status\": {\n    \"ready\": true,\n    \"morphoCoreAddressConfigured\": true,\n    \"adapterDeploymentCount\": 1,\n    \"transactionCount\": 2,\n    \"created\": false,\n    \"sendRequested\": true,\n    \"sendCompleted\": false,\n    \"sendDryRun\": true,\n    \"autoOracleResolutionMode\": \"predicted-adapter-deployments\"\n  },\n  \"ready\": true,\n  \"mode\": \"single-market\",\n  \"strategy\": \"one-market-per-asset-pair\",\n  \"chain\": {\n    \"name\": \"arbitrum\",\n    \"chainId\": 42161\n  },\n  \"morphoCoreAddress\": \"0x6c247b1f6182318877311737bac0844baa518f5e\",\n  \"autoOracleResolution\": {\n    \"mode\": \"predicted-adapter-deployments\",\n    \"signerAddress\": \"0xaE76b3842872B148303C43dA0703cCa10157f222\",\n    \"startingNonce\": 127,\n    \"byMarketKey\": {\n      \"WBTC__USDT\": \"0xC7a09833CE2137657a33B078c31395e41390d00e\"\n    },\n    \"marketKeys\": [\n      \"WBTC__USDT\"\n    ]\n  },\n  \"marketCount\": 1,\n  \"markets\": [\n    {\n      \"marketKey\": \"WBTC__USDT\",\n      \"displayName\": \"arbitrum WBTC/USDT Morpho market\",\n      \"marketId\": \"0xe59847d3af39cf601b7b4f7b16e80ba49c75fe1451b529970cf5c22f97275329\",\n      \"marketParams\": {\n        \"loanToken\": \"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9\",\n        \"collateralToken\": \"0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f\",\n        \"oracle\": \"0xC7a09833CE2137657a33B078c31395e41390d00e\",\n        \"irm\": \"0x66f30587fb8d4206918deb78eca7d5ebbafd06da\",\n        \"lltv\": \"860000000000000000\"\n      },\n      \"ready\": true,\n      \"oracle\": {\n        \"address\": \"0xC7a09833CE2137657a33B078c31395e41390d00e\",\n        \"deploymentRef\": \"morpho-oracle:WBTC__USDT:composite\",\n        \"routeType\": \"composite\",\n        \"adapterType\": \"MorphoApi3CompositeOracle\"\n      }\n    }\n  ],\n  \"transactionPlan\": [\n    {\n      \"transactionId\": \"morpho-deploy-adapter:WBTC__USDT\",\n      \"kind\": \"contract-deployment\",\n      \"payloadKind\": \"executable\",\n      \"contractName\": \"MorphoApi3CompositeOracle\",\n      \"marketKey\": \"WBTC__USDT\",\n      \"value\": \"0\",\n      \"data\": \"0x61012060405234801561001157600080fd5b5060405161099638038061099683398181016040528101906100339190610197565b8473ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508373ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250508260c0818152505081151560e081151581525050801515610100811515815250505050505050610212565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100f6826100cb565b9050919050565b610106816100eb565b811461011157600080fd5b50565b600081519050610123816100fd565b92915050565b6000819050919050565b61013c81610129565b811461014757600080fd5b50565b60008151905061015981610133565b92915050565b60008115159050919050565b6101748161015f565b811461017f57600080fd5b50565b6000815190506101918161016b565b92915050565b600080600080600060a086880312156101b3576101b26100c6565b5b60006101c188828901610114565b95505060206101d288828901610114565b94505060406101e38882890161014a565b93505060606101f488828901610182565b925050608061020588828901610182565b9150509295509295909350565b60805160a05160c05160e051610100516107166102806000396000818161021c015261029501526000818161011d01526101ad0152600081816101410152818161018c01526101fb0152600081816101da01526102b901526000818161016b015261027101526107166000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063075c0ddc1461006757806387cf469614610085578063a035b1fe146100a3578063e85562b6146100c1578063ebada37b146100df578063faf8b8c7146100fd575b600080fd5b61006f61011b565b60405161007c919061044d565b60405180910390f35b61008d61013f565b60405161009a9190610481565b60405180910390f35b6100ab610163565b6040516100b89190610481565b60405180910390f35b6100c961026f565b6040516100d691906104dd565b60405180910390f35b6100e7610293565b6040516100f4919061044d565b60405180910390f35b6101056102b7565b60405161011291906104dd565b60405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806101d17f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006102db565b905060006102407f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006102db565b9050806ec097ce7bc90715b34b9f10000000008361025e9190610527565b6102689190610598565b9250505090565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008060008573ffffffffffffffffffffffffffffffffffffffff166357de26a46040518163ffffffff1660e01b81526004016040805180830381865afa15801561032a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034e9190610643565b91509150600082601b0b1361038f576040517f7470c3ea00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008163ffffffff16426103a39190610683565b9050858111156103ec5780866040517fee2191120000000000000000000000000000000000000000000000000000000081526004016103e39291906106b7565b60405180910390fd5b600083601b0b905085610405578094505050505061042b565b80670de0b6b3a76400008061041a9190610527565b6104249190610598565b9450505050505b9392505050565b60008115159050919050565b61044781610432565b82525050565b6000602082019050610462600083018461043e565b92915050565b6000819050919050565b61047b81610468565b82525050565b60006020820190506104966000830184610472565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006104c78261049c565b9050919050565b6104d7816104bc565b82525050565b60006020820190506104f260008301846104ce565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061053282610468565b915061053d83610468565b925082820261054b81610468565b91508282048414831517610562576105616104f8565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006105a382610468565b91506105ae83610468565b9250826105be576105bd610569565b5b828204905092915050565b600080fd5b600081601b0b9050919050565b6105e4816105ce565b81146105ef57600080fd5b50565b600081519050610601816105db565b92915050565b600063ffffffff82169050919050565b61062081610607565b811461062b57600080fd5b50565b60008151905061063d81610617565b92915050565b6000806040838503121561065a576106596105c9565b5b6000610668858286016105f2565b92505060206106798582860161062e565b9150509250929050565b600061068e82610468565b915061069983610468565b92508282039050818111156106b1576106b06104f8565b5b92915050565b60006040820190506106cc6000830185610472565b6106d96020830184610472565b939250505056fea2646970667358221220ff14f750091c4f983e6dbc1f8840db1eeadacb35f63668afe99609bffe98218664736f6c63430008220033000000000000000000000000041a131fa91ad61dd85262a42c04975986580d500000000000000000000000004eadc6ee74b7ceb09a4ad90a33ea2915fbefcf76000000000000000000000000000000000000000000000000000000000001518000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\n      \"deploymentRef\": \"morpho-oracle:WBTC__USDT:composite\",\n      \"notes\": \"Deploy MorphoApi3CompositeOracle for arbitrum WBTC/USDT Morpho market\",\n      \"sendStatus\": \"dry-run\"\n    },\n    {\n      \"transactionId\": \"morpho-create-market:WBTC__USDT\",\n      \"kind\": \"contract-call\",\n      \"payloadKind\": \"executable\",\n      \"targetContract\": \"MorphoCore\",\n      \"contractFunction\": \"createMarket\",\n      \"to\": \"0x6c247b1f6182318877311737bac0844baa518f5e\",\n      \"value\": \"0\",\n      \"data\": \"0x8c1358a2000000000000000000000000fd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb90000000000000000000000002f2a2543b76a4166549f7aab2e75bef0aefc5b0f000000000000000000000000c7a09833ce2137657a33b078c31395e41390d00e00000000000000000000000066f30587fb8d4206918deb78eca7d5ebbafd06da0000000000000000000000000000000000000000000000000bef55718ad60000\",\n      \"expectedMarketId\": \"0xe59847d3af39cf601b7b4f7b16e80ba49c75fe1451b529970cf5c22f97275329\",\n      \"marketKey\": \"WBTC__USDT\",\n      \"notes\": \"Create Morpho market arbitrum WBTC/USDT Morpho market\",\n      \"sendStatus\": \"dry-run\"\n    }\n  ],\n  \"sendSummary\": {\n    \"requested\": true,\n    \"attempted\": true,\n    \"dryRun\": true,\n    \"submittedTransactions\": 0,\n    \"failedTransactions\": 0,\n    \"skippedTransactions\": 0,\n    \"signerAddress\": \"0xaE76b3842872B148303C43dA0703cCa10157f222\",\n    \"rpcUrlConfigured\": true,\n    \"completed\": false\n  },\n  \"blockers\": [],\n  \"warnings\": [\n    \"Auto-threaded Morpho oracle addresses were predicted from signer 0xaE76b3842872B148303C43dA0703cCa10157f222 starting at pending nonce 127.\",\n    \"The chained Morpho plan assumes no unrelated transactions consume signer nonces before these adapter deployments and market creations are sent.\",\n    \"This chained Morpho result is planning-only until the same signer executes it. Recompute immediately before live send if the nonce may have changed.\"\n  ],\n  \"nextSteps\": [\n    {\n      \"type\": \"command\",\n      \"message\": \"Run this same deploy-morpho-market request with live send enabled to execute the chained adapter deployment plus market creation, then verify on-chain.\",\n      \"command\": \"deploy-morpho-market\"\n    }\n  ]\n}\n\nFile v0.1.8:artifacts/morpho-ensure-deploy/2026-05-08T08-02-31-748Z/request.json\n\n{\n  \"protocol\": \"morpho\",\n  \"chain\": {\n    \"name\": \"arbitrum\",\n    \"chainId\": 42161\n  },\n  \"collateralAssets\": [\n    {\n      \"symbol\": \"WBTC\",\n      \"address\": \"0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f\"\n    }\n  ],\n  \"borrowAssets\": [\n    {\n      \"symbol\": \"USDT\",\n      \"address\": \"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9\"\n    }\n  ],\n  \"riskPreset\": \"core\",\n  \"morphoCoreAddress\": \"0x6c247b1f6182318877311737bac0844baa518f5e\",\n  \"rpcPreference\": {\n    \"rpcUrl\": \"https://arb1.arbitrum.io/rpc\"\n  },\n  \"morphoPolicy\": {\n    \"defaultIrmAddress\": \"0x66f30587fb8d4206918deb78eca7d5ebbafd06da\",\n    \"defaultLltv\": \"860000000000000000\"\n  },\n  \"broadcast\": {\n    \"enabled\": true,\n    \"acknowledgement\": \"I_UNDERSTAND_THIS_WILL_SEND_TRANSACTIONS\",\n    \"signerAddress\": \"0xaE76b3842872B148303C43dA0703cCa10157f222\"\n  },\n  \"send\": {\n    \"enabled\": true,\n    \"dryRun\": true,\n    \"rpcUrl\": \"https://arb1.arbitrum.io/rpc\",\n    \"privateKey\": \"0x0950566159089769a4f121209f21831c0dde3a2d1923650ed567968c4f97c04c\"\n  }\n}\n\nFile v0.1.8:artifacts/morpho-ensure-deploy/2026-05-08T08-02-31-748Z/summary.json\n\n{\n  \"status\": {\n    \"phase\": \"market-deployment-ready\",\n    \"completed\": false,\n    \"blocked\": false,\n    \"deployAttempted\": true,\n    \"verifyAttempted\": false\n  },\n  \"marketCount\": 1,\n  \"fundingState\": null,\n  \"propagationState\": null,\n  \"artifactPaths\": {\n    \"runDir\": \"/Users/davidconnor/.openclaw/workspace/agentic-lending-project/skills/public/agentic-lending-morpho/artifacts/morpho-ensure-deploy/2026-05-08T08-02-31-748Z\",\n    \"requestPath\": \"/Users/davidconnor/.openclaw/workspace/agentic-lending-project/skills/public/agentic-lending-morpho/artifacts/morpho-ensure-deploy/2026-05-08T08-02-31-748Z/request.json\",\n    \"initialWorkflowPath\": \"/Users/davidconnor/.openclaw/workspace/agentic-lending-project/skills/public/agentic-lending-morpho/artifacts/morpho-ensure-deploy/2026-05-08T08-02-31-748Z/workflow.initial.json\",\n    \"fundingPath\": null,\n    \"fundedFeedCachePath\": null,\n    \"propagationPath\": null,\n    \"deployOutputPath\": \"/Users/davidconnor/.openclaw/workspace/agentic-lending-project/skills/public/agentic-lending-morpho/artifacts/morpho-ensure-deploy/2026-05-08T08-02-31-748Z/deploy-output.json\",\n    \"verifyOutputPath\": null,\n    \"summaryPath\": \"/Users/davidconnor/.openclaw/workspace/agentic-lending-project/skills/public/agentic-lending-morpho/artifacts/morpho-ensure-deploy/2026-05-08T08-02-31-748Z/summary.json\"\n  },\n  \"verifySkippedReason\": \"Verification skipped because deploy-morpho-market did not complete a live send. Pass --verify-anyway to force verification using the written deployment result.\",\n  \"blockers\": [],\n  \"warnings\": [\n    \"ensure-feeds ran in check-only mode. No external activation attempt was prepared.\",\n    \"Auto-threaded Morpho oracle addresses were predicted from signer 0xaE76b3842872B148303C43dA0703cCa10157f222 starting at pending nonce 127.\",\n    \"The chained Morpho plan assumes no unrelated transactions consume signer nonces before these adapter deployments and market creations are sent.\",\n    \"This chained Morpho result is planning-only until the same signer executes it. Recompute immediately before live send if the nonce may have changed.\"\n  ],\n  \"nextSteps\": [\n    {\n      \"type\": \"command\",\n      \"message\": \"Run this same deploy-morpho-market request with live send enabled to execute the chained adapter deployment plus market creation, then verify on-chain.\",\n      \"command\": \"deploy-morpho-market\"\n    }\n  ]\n}\n\nFile v0.1.8:artifacts/morpho-ensure-deploy/2026-05-08T08-02-31-748Z/workflow.initial.json\n\n{\n  \"honestStatus\": \"oracle-adapter design ready\",\n  \"normalizedIntent\": {\n    \"protocol\": \"morpho\",\n    \"chain\": {\n      \"chainId\": 42161,\n      \"name\": \"arbitrum\"\n    },\n    \"collateralAssets\": [\n      {\n        \"symbol\": \"WBTC\",\n        \"address\": \"0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f\",\n        \"role\": \"collateral\"\n      }\n    ],\n    \"borrowAssets\": [\n      {\n        \"symbol\": \"USDT\",\n        \"address\": \"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9\",\n        \"role\": \"borrow\"\n      }\n    ],\n    \"unitOfAccount\": \"USD\",\n    \"riskPreset\": \"core\",\n    \"oraclePreference\": \"chainlink-compatible-first\",\n    \"hookProfile\": \"none\",\n    \"ownershipProfile\": \"deployer-owned\",\n    \"duplicatePolicy\": \"block-on-exact\",\n    \"discoverExistingMarkets\": true,\n    \"executionMode\": \"planning-only\",\n    \"marketShapeIntent\": \"single-market\",\n    \"canonicalHash\": \"sha256:0e80f976b5c65fefb4e5c95a3ddccef8da926682d97b810657ccbfd66970384f\"\n  },\n  \"marketShape\": {\n    \"supported\": true,\n    \"mode\": \"single-market\",\n    \"strategy\": \"one-market-per-asset-pair\",\n    \"collateralAssetCount\": 1,\n    \"borrowAssetCount\": 1,\n    \"marketCount\": 1,\n    \"blockers\": [],\n    \"warnings\": []\n  },\n  \"markets\": [\n    {\n      \"marketKey\": \"WBTC__USDT\",\n      \"displayName\": \"arbitrum WBTC/USDT Morpho market\",\n      \"normalizedIntent\": {\n        \"protocol\": \"morpho\",\n        \"chain\": {\n          \"chainId\": 42161,\n          \"name\": \"arbitrum\"\n        },\n        \"collateralAssets\": [\n          {\n            \"symbol\": \"WBTC\",\n            \"address\": \"0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f\",\n            \"role\": \"collateral\"\n          }\n        ],\n        \"borrowAssets\": [\n          {\n            \"symbol\": \"USDT\",\n            \"address\": \"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9\",\n            \"role\": \"borrow\"\n          }\n        ],\n        \"unitOfAccount\": \"USD\",\n        \"riskPreset\": \"core\",\n        \"oraclePreference\": \"chainlink-compatible-first\",\n        \"hookProfile\": \"none\",\n        \"ownershipProfile\": \"deployer-owned\",\n        \"duplicatePolicy\": \"block-on-exact\",\n        \"discoverExistingMarkets\": true,\n        \"executionMode\": \"planning-only\",\n        \"marketShapeIntent\": \"single-market\",\n        \"canonicalHash\": \"sha256:250f791ee48c37e75a4ebacff193a67935ba5e34ef0ab7dbb9f7b5b53a459a64\",\n        \"marketKey\": \"WBTC__USDT\"\n      },\n      \"existingMarkets\": {\n        \"exactMatches\": [],\n        \"nearEquivalentMatches\": [],\n        \"recommendedAction\": \"deploy-new-market\",\n        \"reasoning\": [\n          \"No exact or near-equivalent markets were found in the local registry.\"\n        ]\n      },\n      \"feedReadiness\": {\n        \"recommendedPathId\": \"composite-usd-route\",\n        \"candidatePaths\": [\n          {\n            \"pathId\": \"direct-exact-pair\",\n            \"label\": \"Direct collateral/loan Api3 pair\",\n            \"routeType\": \"direct\",\n            \"ready\": false,\n            \"feedReadinessState\": \"blocked\",\n            \"requiredFeeds\": [\n              {\n                \"feedName\": \"WBTC/USDT\",\n                \"base\": {\n                  \"symbol\": \"WBTC\",\n                  \"address\": \"0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f\",\n                  \"role\": \"collateral\"\n                },\n                \"quote\": {\n                  \"symbol\": \"USDT\",\n                  \"address\": \"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9\",\n                  \"role\": \"borrow\"\n                },\n                \"maxStalenessSeconds\": 86400,\n                \"compatibilityPreference\": \"chainlink-compatible-first\",\n                \"routeRole\": \"direct\"\n              }\n            ],\n            \"ensureFeeds\": {\n              \"ready\": false,\n              \"feeds\": [\n                {\n                  \"feedName\": \"WBTC/USDT\",\n                  \"proxyAddress\": \"0xc568918ca951012e0f5e84c546750060e447bf12\",\n                  \"status\": \"blocked\",\n                  \"supportsAggregatorV2V3Interface\": true,\n                  \"requiresCompatibilityWrapper\": false,\n                  \"latestRead\": {\n                    \"value\": \"0\",\n                    \"timestamp\": 0\n                  },\n                  \"blockers\": [\n                    \"Feed is not present in the bundled Api3 dAPI catalog.\"\n                  ]\n                }\n              ],\n              \"activationPlan\": {\n                \"mode\": \"check-only\",\n                \"commandFamily\": \"api3-feed-manager\",\n                \"requestedChainId\": 42161,\n                \"rpcSource\": \"request:rpcUrl\",\n                \"liveChecked\": true,\n                \"actions\": [],\n                \"liveActivations\": []\n              },\n              \"wrapperPlan\": {\n                \"requiresWrappers\": false,\n                \"wrapperContract\": \"none\",\n                \"feedsRequiringWrappers\": []\n              },\n              \"blockers\": [\n                \"Feed is not present in the bundled Api3 dAPI catalog.\"\n              ],\n              \"warnings\": [\n                \"ensure-feeds ran in check-only mode. No external activation attempt was prepared.\"\n              ]\n            },\n            \"readyFeedCount\": 0,\n            \"activatableFeedCount\": 0,\n            \"blockedFeedCount\": 1,\n            \"statusSummary\": {\n              \"blocked\": 1\n            },\n            \"blockers\": [\n              \"Feed is not present in the bundled Api3 dAPI catalog.\"\n            ],\n            \"warnings\": [\n              \"ensure-feeds ran in check-only mode. No external activation attempt was prepared.\"\n            ]\n          },\n          {\n            \"pathId\": \"composite-usd-route\",\n            \"label\": \"Composite USD route\",\n            \"routeType\": \"composite\",\n            \"ready\": true,\n            \"feedReadinessState\": \"ready\",\n            \"requiredFeeds\": [\n              {\n                \"feedName\": \"USDT/USD\",\n                \"base\": {\n                  \"symbol\": \"USDT\",\n                  \"address\": \"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9\",\n                  \"role\": \"borrow\"\n                },\n                \"quote\": {\n                  \"symbol\": \"USD\",\n                  \"role\": \"unit-of-account\"\n                },\n                \"maxStalenessSeconds\": 86400,\n                \"compatibilityPreference\": \"native-api3-ok\",\n                \"routeRole\": \"borrow-leg\"\n              },\n              {\n                \"feedName\": \"WBTC/USD\",\n                \"base\": {\n                  \"symbol\": \"WBTC\",\n                  \"address\": \"0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f\",\n                  \"role\": \"collateral\"\n                },\n                \"quote\": {\n                  \"symbol\": \"USD\",\n                  \"role\": \"unit-of-account\"\n                },\n                \"maxStalenessSeconds\": 86400,\n                \"compatibilityPreference\": \"native-api3-ok\",\n                \"routeRole\": \"collateral-leg\"\n              }\n            ],\n            \"ensureFeeds\": {\n              \"ready\": true,\n              \"feeds\": [\n                {\n                  \"feedName\": \"USDT/USD\",\n                  \"proxyAddress\": \"0x4eadC6ee74b7Ceb09A4ad90a33eA2915fbefcf76\",\n                  \"proxyHasCode\": true,\n                  \"status\": \"ready\",\n                  \"supportsAggregatorV2V3Interface\": true,\n                  \"requiresCompatibilityWrapper\": false,\n                  \"latestRead\": {\n                    \"value\": \"999917142857142700\",\n                    \"timestamp\": 1778149511\n                  },\n                  \"blockers\": []\n                },\n                {\n                  \"feedName\": \"WBTC/USD\",\n                  \"proxyAddress\": \"0x041a131Fa91Ad61dD85262A42c04975986580d50\",\n                  \"proxyHasCode\": true,\n                  \"status\": \"ready\",\n                  \"supportsAggregatorV2V3Interface\": true,\n                  \"requiresCompatibilityWrapper\": false,\n                  \"latestRead\": {\n                    \"value\": \"79713942486114510000000\",\n                    \"timestamp\": 1778167280\n                  },\n                  \"blockers\": []\n                }\n              ],\n              \"activationPlan\": {\n                \"mode\": \"check-only\",\n                \"commandFamily\": \"api3-feed-manager\",\n                \"requestedChainId\": 42161,\n                \"rpcSource\": \"request:rpcUrl\",\n                \"liveChecked\": true,\n                \"actions\": [],\n                \"liveActivations\": []\n              },\n              \"wrapperPlan\": {\n                \"requiresWrappers\": false,\n                \"wrapperContract\": \"none\",\n                \"feedsRequiringWrappers\": []\n              },\n              \"blockers\": [],\n              \"warnings\": [\n                \"ensure-feeds ran in check-only mode. No external activation attempt was prepared.\"\n              ]\n            },\n            \"readyFeedCount\": 2,\n            \"activatableFeedCount\": 0,\n            \"blockedFeedCount\": 0,\n            \"statusSummary\": {\n              \"ready\": 2\n            },\n            \"blockers\": [],\n            \"warnings\": [\n              \"ensure-feeds ran in check-only mode. No external activation attempt was prepared.\"\n            ]\n          }\n        ]\n      },\n      \"feedFunding\": {\n        \"modeRequested\": \"classify-only\",\n        \"attemptedExecution\": false,\n        \"overallState\": \"not-needed\",\n        \"entries\": []\n      },\n      \"oracleAdapterPlan\": {\n        \"ready\": true,\n        \"adapterType\": \"MorphoApi3CompositeOracle\",\n        \"routeType\": \"composite\",\n        \"deploymentRef\": \"morpho-oracle:WBTC__USDT:composite\",\n        \"feedBindings\": [\n          {\n            \"role\": \"collateral-usd\",\n            \"feedName\": \"WBTC/USD\",\n            \"proxyAddress\": \"0x041a131Fa91Ad61dD85262A42c04975986580d50\",\n            \"latestRead\": {\n              \"value\": \"79713942486114510000000\",\n              \"timestamp\": 1778167280\n            },\n            \"proxyHasCode\": true\n          },\n          {\n            \"role\": \"loan-usd\",\n            \"feedName\": \"USDT/USD\",\n            \"proxyAddress\": \"0x4eadC6ee74b7Ceb09A4ad90a33eA2915fbefcf76\",\n            \"latestRead\": {\n              \"value\": \"999917142857142700\",\n              \"timestamp\": 1778149511\n            },\n            \"proxyHasCode\": true\n          }\n        ],\n        \"constructorArgs\": {\n          \"collateralUsdProxy\": \"0x041a131Fa91Ad61dD85262A42c04975986580d50\",\n          \"loanUsdProxy\": \"0x4eadC6ee74b7Ceb09A4ad90a33eA2915fbefcf76\",\n          \"maxStaleness\": 86400,\n          \"collateralUsdNeedsInversion\": false,\n          \"loanUsdNeedsInversion\": false\n        },\n        \"priceModel\": {\n          \"orientation\": \"collateral-priced-in-loan-asset\",\n          \"morphoScale\": \"1e36\",\n          \"formula\": \"collateralUsdPrice * 1e36 / loanUsdPrice\",\n          \"expectedPairs\": [\n            \"WBTC/USD\",\n            \"USDT/USD\"\n          ]\n        },\n        \"blockers\": [],\n        \"warnings\": [\n          \"ensure-feeds ran in check-only mode. No external activation attempt was prepared.\"\n        ]\n      },\n      \"prepareMorphoMarket\": {\n        \"marketKey\": \"WBTC__USDT\",\n        \"displayName\": \"arbitrum WBTC/USDT Morpho market\",\n        \"ready\": false,\n        \"policy\": {\n          \"riskPreset\": \"core\",\n          \"irmAddress\": \"0x66f30587fb8d4206918deb78eca7d5ebbafd06da\",\n          \"lltv\": \"860000000000000000\"\n        },\n        \"oracle\": {\n          \"address\": null,\n          \"deploymentRef\": \"morpho-oracle:WBTC__USDT:composite\",\n          \"routeType\": \"composite\",\n          \"adapterType\": \"MorphoApi3CompositeOracle\"\n        },\n        \"marketParams\": {\n          \"loanToken\": \"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9\",\n          \"collateralToken\": \"0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f\",\n          \"oracle\": \"0x0000000000000000000000000000000000000000\",\n          \"irm\": \"0x66f30587fb8d4206918deb78eca7d5ebbafd06da\",\n          \"lltv\": \"860000000000000000\"\n        },\n        \"marketId\": null,\n        \"blockers\": [\n          \"No concrete oracle address is configured for WBTC__USDT. Deploy the planned adapter first or supply request.oracleResolution.byMarketKey.WBTC__USDT.\"\n        ],\n        \"warnings\": []\n      },\n      \"blockers\": [\n        \"No concrete oracle address is configured for WBTC__USDT. Deploy the planned adapter first or supply request.oracleResolution.byMarketKey.WBTC__USDT.\"\n      ],\n      \"warnings\": [\n        \"ensure-feeds ran in check-only mode. No external activation attempt was prepared.\"\n      ]\n    }\n  ],\n  \"feedFunding\": {\n    \"modeRequested\": \"classify-only\",\n    \"overallState\": null,\n    \"entries\": []\n  },\n  \"feedReadiness\": {\n    \"recommendedPathId\": \"composite-usd-route\",\n    \"candidatePaths\": [\n      {\n        \"pathId\": \"direct-exact-pair\",\n        \"label\": \"Direct collateral/loan Api3 pair\",\n        \"routeType\": \"direct\",\n        \"ready\": false,\n        \"feedReadinessState\": \"blocked\",\n        \"requiredFeeds\": [\n          {\n            \"feedName\": \"WBTC/USDT\",\n            \"base\": {\n              \"symbol\": \"WBTC\",\n              \"address\": \"0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f\",\n              \"role\": \"collateral\"\n            },\n            \"quote\": {\n              \"symbol\": \"USDT\",\n              \"address\": \"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9\",\n              \"role\": \"borrow\"\n            },\n            \"maxStalenessSeconds\": 86400,\n            \"compatibilityPreference\": \"chainlink-compatible-first\",\n            \"routeRole\": \"direct\"\n          }\n        ],\n        \"ensureFeeds\": {\n          \"ready\": false,\n          \"feeds\": [\n            {\n              \"feedName\": \"WBTC/USDT\",\n              \"proxyAddress\": \"0xc568918ca951012e0f5e84c546750060e447bf12\",\n              \"status\": \"blocked\",\n              \"supportsAggregatorV2V3Interface\": true,\n              \"requiresCompatibilityWrapper\": false,\n              \"latestRead\": {\n                \"value\": \"0\",\n                \"timestamp\": 0\n              },\n              \"blockers\": [\n                \"Feed is not present in the bundled Api3 dAPI catalog.\"\n              ]\n            }\n          ],\n          \"activationPlan\": {\n            \"mode\": \"check-only\",\n            \"commandFamily\": \"api3-feed-manager\",\n            \"requestedChainId\": 42161,\n            \"rpcSource\": \"request:rpcUrl\",\n            \"liveChecked\": true,\n            \"actions\": [],\n            \"liveActivations\": []\n          },\n          \"wrapperPlan\": {\n            \"requiresWrappers\": false,\n            \"wrapperContract\": \"none\",\n            \"feedsRequiringWrappers\": []\n          },\n          \"blockers\": [\n            \"Feed is not present in the bundled Api3 dAPI catalog.\"\n          ],\n          \"warnings\": [\n            \"ensure-feeds ran in check-only mode. No external activation attempt was prepared.\"\n          ]\n        },\n        \"readyFeedCount\": 0,\n        \"activatableFeedCount\": 0,\n        \"blockedFeedCount\": 1,\n        \"statusSummary\": {\n          \"blocked\": 1\n        },\n        \"blockers\": [\n          \"Feed is not present in the bundled Api3 dAPI catalog.\"\n        ],\n        \"warnings\": [\n          \"ensure-feeds ran in check-only mode. No external activation attempt was prepared.\"\n        ]\n      },\n      {\n        \"pathId\": \"composite-usd-route\",\n        \"label\": \"Composite USD route\",\n        \"routeType\": \"composite\",\n        \"ready\": true,\n        \"feedReadinessState\": \"ready\",\n        \"requiredFeeds\": [\n          {\n            \"feedName\": \"USDT/USD\",\n            \"base\": {\n              \"symbol\": \"USDT\",\n              \"address\": \"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9\",\n              \"role\": \"borrow\"\n            },\n            \"quote\": {\n              \"symbol\": \"USD\",\n              \"role\": \"unit-of-account\"\n            },\n            \"maxStalenessSeconds\": 86400,\n            \"compatibilityPreference\": \"native-api3-ok\",\n            \"routeRole\": \"borrow-leg\"\n          },\n          {\n            \"feedName\": \"WBTC/USD\",\n            \"base\": {\n              \"symbol\": \"WBTC\",\n              \"address\": \"0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f\",\n              \"role\": \"collateral\"\n            },\n            \"quote\": {\n              \"symbol\": \"USD\",\n              \"role\": \"unit-of-account\"\n            },\n            \"maxStalenessSeconds\": 86400,\n            \"compatibilityPreference\": \"native-api3-ok\",\n            \"routeRole\": \"collateral-leg\"\n          }\n        ],\n        \"ensureFeeds\": {\n          \"ready\": true,\n          \"feeds\": [\n            {\n              \"feedName\": \"USDT/USD\",\n              \"proxyAddress\": \"0x4eadC6ee74b7Ceb09A4ad90a33eA2915fbefcf76\",\n              \"proxyHasCode\": true,\n              \"status\": \"ready\",\n              \"supportsAggregatorV2V3Interface\": true,\n              \"requiresCompatibilityWrapper\": false,\n              \"latestRead\": {\n                \"value\": \"999917142857142700\",\n                \"timestamp\": 1778149511\n              },\n              \"blockers\": []\n            },\n            {\n              \"feedName\": \"WBTC/USD\",\n              \"proxyAddress\": \"0x041a131Fa91Ad61dD85262A42c04975986580d50\",\n              \"proxyHasCode\": true,\n              \"status\": \"ready\",\n              \"supportsAggregatorV2V3Interface\": true,\n              \"requiresCompatibilityWrapper\": false,\n              \"latestRead\": {\n                \"value\": \"79713942486114510000000\",\n                \"timestamp\": 1778167280\n              },\n              \"blockers\": []\n            }\n          ],\n          \"activationPlan\": {\n            \"mode\": \"check-only\",\n            \"commandFamily\": \"api3-feed-manager\",\n            \"requestedChainId\": 42161,\n            \"rpcSource\": \"request:rpcUrl\",\n            \"liveChecked\": true,\n            \"actions\": [],\n            \"liveActivations\": []\n          },\n          \"wrapperPlan\": {\n            \"requiresWrappers\": false,\n            \"wrapperContract\": \"none\",\n            \"feedsRequiringWrappers\": []\n          },\n          \"blockers\": [],\n          \"warnings\": [\n            \"ensure-feeds ran in check-only mode. No external activation attempt was prepared.\"\n          ]\n        },\n        \"readyFeedCount\": 2,\n        \"activatableFeedCount\": 0,\n        \"blockedFeedCount\": 0,\n        \"statusSummary\": {\n          \"ready\": 2\n        },\n        \"blockers\": [],\n        \"warnings\": [\n          \"ensure-feeds ran in check-only mode. No external activation attempt was prepared.\"\n        ]\n      }\n    ]\n  },\n  \"oracleAdapterPlan\": {\n    \"ready\": true,\n    \"adapterType\": \"MorphoApi3CompositeOracle\",\n    \"routeType\": \"composite\",\n    \"deploymentRef\": \"morpho-oracle:WBTC__USDT:composite\",\n    \"feedBindings\": [\n      {\n        \"role\": \"collateral-usd\",\n        \"feedName\": \"WBTC/USD\",\n        \"proxyAddress\": \"0x041a131Fa91Ad61dD85262A42c04975986580d50\",\n        \"latestRead\": {\n          \"value\": \"79713942486114510000000\",\n          \"timestamp\": 1778167280\n        },\n        \"proxyHasCode\": true\n      },\n      {\n        \"role\": \"loan-usd\",\n        \"feedName\": \"USDT/USD\",\n        \"proxyAddress\": \"0x4eadC6ee74b7Ceb09A4ad90a33eA2915fbefcf76\",\n        \"latestRead\": {\n          \"value\": \"999917142857142700\",\n          \"timestamp\": 1778149511\n        },\n        \"proxyHasCode\": true\n      }\n    ],\n    \"constructorArgs\": {\n      \"collateralUsdProxy\": \"0x041a131Fa91Ad61dD85262A42c04975986580d50\",\n      \"loanUsdProxy\": \"0x4eadC6ee74b7Ceb09A4ad90a33eA2915fbefcf76\",\n      \"maxStaleness\": 86400,\n      \"collateralUsdNeedsInversion\": false,\n      \"loanUsdNeedsInversion\": false\n    },\n    \"priceModel\": {\n      \"orientation\": \"collateral-priced-in-loan-asset\",\n      \"morphoScale\": \"1e36\",\n      \"formula\": \"collateralUsdPrice * 1e36 / loanUsdPrice\",\n      \"expectedPairs\": [\n        \"WBTC/USD\",\n        \"USDT/USD\"\n      ]\n    },\n    \"blockers\": [],\n    \"warnings\": [\n      \"ensure-feeds ran in check-only mode. No external activation attempt was prepared.\"\n    ]\n  },\n  \"prepareMorphoMarket\": {\n    \"ready\": false,\n    \"mode\": \"single-market\",\n    \"strategy\": \"one-market-per-asset-pair\",\n    \"marketCount\": 1,\n    \"readyMarketCount\": 0,\n    \"blockedMarketCount\": 1,\n    \"markets\": [\n      {\n        \"marketKey\": \"WBTC__USDT\",\n        \"displayName\": \"arbitrum WBTC/USDT Morpho market\",\n        \"ready\": false,\n        \"policy\": {\n          \"riskPreset\": \"core\",\n          \"irmAddress\": \"0x66f30587fb8d4206918deb78eca7d5ebbafd06da\",\n          \"lltv\": \"860000000000000000\"\n        },\n        \"oracle\": {\n          \"address\": null,\n          \"deploymentRef\": \"morpho-oracle:WBTC__USDT:composite\",\n          \"routeType\": \"composite\",\n          \"adapterType\": \"MorphoApi3CompositeOracle\"\n        },\n        \"marketParams\": {\n          \"loanToken\": \"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9\",\n          \"collateralToken\": \"0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f\",\n          \"oracle\": \"0x0000000000000000000000000000000000000000\",\n          \"irm\": \"0x66f30587fb8d4206918deb78eca7d5ebbafd06da\",\n          \"lltv\": \"860000000000000000\"\n        },\n        \"marketId\": null,\n        \"blockers\": [\n          \"No concrete oracle address is configured for WBTC__USDT. Deploy the planned adapter first or supply request.oracleResolution.byMarketKey.WBTC__USDT.\"\n        ],\n        \"warnings\": []\n      }\n    ],\n    \"blockers\": [\n      \"No concrete oracle address is configured for WBTC__USDT. Deploy the planned adapter first or supply request.oracleResolution.byMarketKey.WBTC__USDT.\"\n    ],\n    \"warnings\": []\n  },\n  \"deploymentResultCompatibility\": {\n    \"compatible\": true,\n    \"blockers\": [],\n    \"warnings\": []\n  },\n  \"executionBoundary\": {\n    \"deployCommandImplemented\": true,\n    \"verifyCommandImplemented\": true,\n    \"executableToday\": false,\n    \"status\": \"market preparation incomplete\",\n    \"blockers\": [\n      \"At least one Morpho market is not fully prepared yet, so deploy-morpho-market should not be attempted.\"\n    ],\n    \"missingCommands\": [],\n    \"marketCount\": 1\n  },\n  \"blockers\": [\n    \"No concrete oracle address is configured for WBTC__USDT. Deploy the planned adapter first or supply request.oracleResolution.byMarketKey.WBTC__USDT.\",\n    \"At least one Morpho market is not fully prepared yet, so deploy-morpho-market should not be attempted.\"\n  ],\n  \"warnings\": [\n    \"ensure-feeds ran in check-only mode. No external activation attempt was prepared.\"\n  ],\n  \"nextSteps\": [\n    {\n      \"type\": \"blocker\",\n      \"message\": \"No concrete oracle address is configured for WBTC__USDT. Deploy the planned adapter first or supply request.oracleResolution.byMarketKey.WBTC__USDT.\"\n    }\n  ]\n}\n\nArchive v0.1.7: 37 files, 123245 bytes\n\nFiles: CHANGELOG.md (1410b), data/part2/contract-artifacts/Api3PartialAggregatorV2V3Interface.bytecode.txt (2884b), data/part2/contract-artifacts/Api3PartialAggregatorV2V3Interface.json (5707b), data/part2/contract-artifacts/ChainlinkInfrequentOracle.bytecode.txt (6011b), data/part2/contract-artifacts/ChainlinkInfrequentOracle.json (4247b), data/part2/contract-artifacts/ChainlinkOracle.bytecode.txt (6914b), data/part2/contract-artifacts/ChainlinkOracle.json (4209b), data/part2/contract-artifacts/CrossAdapter.bytecode.txt (4620b), data/part2/contract-artifacts/CrossAdapter.json (3967b), data/part2/contract-artifacts/EulerRouter.bytecode.txt (7835b), data/part2/contract-artifacts/EulerRouter.json (8428b), data/part2/contract-artifacts/GenericFactory.json (866b), data/part2/contract-artifacts/MorphoApi3CompositeOracle.bytecode.txt (4992b), data/part2/contract-artifacts/MorphoApi3CompositeOracle.json (2880b), data/part2/contract-artifacts/MorphoApi3DirectOracle.bytecode.txt (4106b), data/part2/contract-artifacts/MorphoApi3DirectOracle.json (2057b), data/part2/evk-addresses.api3-supported-overlap.json (6720b), data/part2/feed-status.json (1947b), data/part2/market-registry.json (1824b), data/part2/morpho/arbitrum-reference-config.json (1622b), package.json (1245b), README.md (2842b), references/current_capabilities.md (4910b), references/example-request.json (440b), references/morpho-oracle-adapter.md (1975b), references/workflow.md (2509b), scripts/bin/agentic-lending-morpho.js (173b), scripts/bin/api3-feed-manager.js (170b), scripts/bin/part2-morpho-planner.js (173b), scripts/bin/part2-planner.js (166b), scripts/lib/api3-feed-manager.js (116693b), scripts/lib/part2-chain-bootstrap.js (4049b), scripts/lib/part2-morpho-planner.js (125405b), scripts/lib/part2-planner.js (191385b), scripts/lib/part2-recipes.js (1330b), SKILL.md (7177b), _meta.json (141b)\n\nFile v0.1.7:SKILL.md\n\n---\nname: agentic-lending-morpho\ndescription: Plan and execute the Morpho-first agentic lending workflow for Api3-backed markets. Use when a user wants a Morpho market or market set for selected collateral and borrow assets, needs the oracle route resolved for those assets, wants Api3 feed readiness checked or funded when safe, and then wants the Morpho oracle + market deployment and verification path run honestly. This variant can progress from planning into real feed funding and market deployment when the supported path is available and the user explicitly allows signer-backed execution. Default to planning, dry-run, or guarded verification first. Do not use for Euler EVK flows or unsupported oracle routes.\nmetadata:\n  clawdis:\n    homepage: https://github.com/daav3/agentic-lending-project\n    author: daav3\n    requires:\n      bins:\n        - node\n      env:\n        - LIVE_SIGNER_ENV\n      config:\n        - request.morpho-workflow.json\n    primaryEnv: LIVE_SIGNER_ENV\n---\n\n# Agentic Lending Morpho\n\nThis is the execution-capable Morpho workflow skill.\n\nIt is the Morpho-side counterpart to the EVK skill. It is still more conservative than the EVK path, but it now supports a real end-to-end flow for compatible requests: resolve the requested collateral and borrow assets, check feed readiness, execute funding when available, deploy the oracle adapter, deploy the Morpho market, and verify the result.\n\nThis published skill carries its own local runtime and bundled planning artifacts under `scripts/lib/` and `data/part2/` rather than assuming a separate repo checkout is available at execution time.\n\nWhen the supported path is available and the user explicitly asks for it, this variant can send real transactions and should be treated as a guarded execution skill rather than a planning-only helper.\n\n## Safety expectations\n- default to planning, dry-run, or guarded verification first\n- only use signer-backed feed funding or market deployment when the user explicitly asks for it\n- treat browser-assisted funding as an explicit handoff, not a silent autonomous path\n- require exact asset selection before deployment planning or submission\n- require a usable RPC endpoint for any on-chain verification claim\n- keep signer material in environment variables or local runtime config, never in committed files\n\n## Read next\n1. `references/workflow.md`\n2. `references/current_capabilities.md`\n3. `references/morpho-oracle-adapter.md`\n\n## Minimum required inputs\nGather these before attempting a Morpho-first workflow:\n- chain name and chain id\n- explicit `collateralAssets`\n- explicit `borrowAssets`\n- target market shape or risk intent\n- whether the user wants planning only, dry-run, or transaction submission\n- live RPC availability for the chain if anything beyond planning is expected\n- Morpho policy inputs needed for deployment on that chain when transaction submission is requested\n\nIf any of those are missing, stop and ask instead of inventing them.\n\n## Request-shape rule\nWhen preparing a request for this skill, always express the market assets explicitly as:\n- `collateralAssets`: array of `{ symbol, address }`\n- `borrowAssets`: array of `{ symbol, address }`\n\nDo not leave asset selection implicit. The planner needs the exact collateral and borrow assets in order to resolve feeds, choose a direct-versus-composed oracle route, and verify the final market correctly.\n\n## Default workflow\n1. Normalize the request into:\n   - chain\n   - `collateralAssets`\n   - `borrowAssets`\n   - protocol = `morpho`\n   - market or risk intent\n   - desired execution mode\n2. Treat asset selection as a first-class input.\n   - confirm the exact collateral asset set and borrow asset set the user wants\n   - for multiple collateral assets, remember this becomes a Morpho **market set**: one market per supported collateral/borrow pair\n3. Resolve the oracle path before any deploy step.\n   - prefer a direct pair when the exact requested route is available and usable\n   - otherwise use a supported composed route when the planner can prove it cleanly\n   - keep feed-name matching generic: literal exact pair first, alias-normalized fallback second\n4. Check feed readiness before deployment.\n   - if feeds are already live on the deployable on-chain path, continue\n   - if funding is needed and executable, run the funding path first\n   - if the funding branch is browser-assisted or unsupported, stop and report that honestly instead of pretending transaction submission can continue\n5. Prefer the orchestration wrapper for the real sequence.\n   - use `ensure-feeds-and-deploy-morpho-market` when the goal is to check feeds, fund if needed, wait for propagation, deploy, and verify in one coherent run\n   - use lower-level commands only when debugging or resuming a prior run\n6. Prepare and deploy the Morpho oracle adapter path.\n   - use the Api3-backed Morpho oracle adapter design as the canonical oracle shape\n   - preserve artifact handoff from adapter deployment into market deployment\n   - keep proxy-first ordering whenever a communal proxy deploy is required\n7. Verify the deployed market.\n   - confirm the market exists on-chain\n   - confirm params, IRM, and LLTV expectations\n   - confirm oracle `price()` succeeds and is positive\n8. Stop at the honest boundary.\n   - if the request can only reach planning or funding handoff, say so clearly\n   - do not present Morpho deployment as equivalent to the EVK live deploy path unless the code actually supports the requested environment\n   - do not treat feed discovery, funding readiness, adapter design readiness, deployment readiness, and verified market creation as the same milestone\n\n## Preferred command path\nFor a deployable request, prefer this command shape:\n\n`agentic-lending-morpho ensure-feeds-and-deploy-morpho-market --input-file ./request.json`\n\nUse it when the agent already has a concrete request file with the selected collateral and borrow assets.\n\nUse `--resume-from-run-dir <dir>` when continuing a previously persisted run.\n\nTreat bundled `data/part2/feed-status.json` and `data/part2/market-registry.json` as packaged snapshots. They are valid local inputs for fallback planning paths, but live RPC-backed checks still take precedence whenever the request needs a current on-chain claim.\n\n## Output expectations\nAlways report:\n- whether the request was normalized successfully\n- which collateral assets and borrow assets were selected for the Morpho market or market set\n- whether the required Api3 feeds are already live, fundable, browser-assisted, or unsupported\n- whether feed funding was executed, skipped as unnecessary, or handed off\n- what oracle adapter shape is planned or deployed for Morpho\n- which steps are planning-only versus executable today\n- exact blockers preventing a full Morpho deployment flow, if any\n- the next concrete command, file\n\nArchive v0.1.6: 30 files, 120397 bytes\n\nFiles: CHANGELOG.md (1213b), data/part2/contract-artifacts/Api3PartialAggregatorV2V3Interface.json (8561b), data/part2/contract-artifacts/ChainlinkInfrequentOracle.json (10176b), data/part2/contract-artifacts/ChainlinkOracle.json (11027b), data/part2/contract-artifacts/CrossAdapter.json (8529b), data/part2/contract-artifacts/EulerRouter.json (16152b), data/part2/contract-artifacts/GenericFactory.json (866b), data/part2/contract-artifacts/MorphoApi3CompositeOracle.json (7808b), data/part2/contract-artifacts/MorphoApi3DirectOracle.json (6113b), data/part2/evk-addresses.api3-supported-overlap.json (6720b), data/part2/feed-status.json (1947b), data/part2/market-registry.json (1824b), data/part2/morpho/arbitrum-reference-config.json (1651b), package.json (1245b), README.md (2842b), references/current_capabilities.md (4910b), references/example-request.json (440b), references/morpho-oracle-adapter.md (1975b), references/workflow.md (2509b), scripts/bin/agentic-lending-morpho.js (173b), scripts/bin/api3-feed-manager.js (170b), scripts/bin/part2-morpho-planner.js (173b), scripts/bin/part2-planner.js (166b), scripts/lib/api3-feed-manager.js (116674b), scripts/lib/part2-chain-bootstrap.js (4030b), scripts/lib/part2-morpho-planner.js (124856b), scripts/lib/part2-planner.js (190956b), scripts/lib/part2-recipes.js (1330b), SKILL.md (7177b), _meta.json (141b)\n\nArchive v0.1.5: 30 files, 120329 bytes\n\nFiles: CHANGELOG.md (1051b), data/part2/contract-artifacts/Api3PartialAggregatorV2V3Interface.json (8561b), data/part2/contract-artifacts/ChainlinkInfrequentOracle.json (10176b), data/part2/contract-artifacts/C...","readmeExcerpt":"Skill: Agentic Lending Morpho Owner: daav3 Summary: Plan and execute the Morpho-first agentic lending workflow for Api3-backed markets. Use when a user wants a Morpho market or market set for selected collater... Tags: latest:0.1.11 Version history: v0.1.11 | 2026-06-15T12:04:24.178Z | user Normalize Morpho funding-mode/docs, accept bare private keys, re-thread live chained deployment from adapter receipts, remove sc","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"npm install <this-package>\npart2-morpho-planner prepare-morpho-market --input-file ./node_modules/agentic-lending-morpho/references/example-request.json"},{"language":"bash","snippet":"agentic-lending-morpho ensure-feeds-and-deploy-morpho-market --input-file ./node_modules/agentic-lending-morpho/references/example-request.json"},{"language":"bash","snippet":"agentic-lending-morpho ensure-feeds-and-deploy-morpho-market --input-file ./request.json"},{"language":"bash","snippet":"part2-morpho-planner prepare-morpho-market --input-file ./node_modules/agentic-lending-morpho/references/example-request.json\npart2-morpho-planner deploy-and-verify-morpho-market --input-file ./node_modules/agentic-lending-morpho/references/example-request.json"},{"language":"bash","snippet":"api3-feed-manager resolve --dapi-name ETH/USD --chain arbitrum --rpc-url https://arb1.arbitrum.io/rpc\npart2-planner plan-market --input-file ./request.json"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: agentic-lending-morpho\ndescription: Plan and execute the Morpho-first agentic lending workflow for Api3-backed markets. Use when a user wants a Morpho market or market set for selected collateral and borrow assets, needs the oracle route resolved for those assets, wants Api3 feed readiness checked or funded when safe, and then wants the Morpho oracle + market deployment and verification path run honestly. This variant can progress from planning into real feed funding and market deployment when the supported path is available and the user explicitly allows signer-backed execution. Default to planning, dry-run, or guarded verification first. Do not use for Euler EVK flows or unsupported oracle routes.\nmetadata:\n  clawdis:\n    homepage: https://github.com/daav3/agentic-lending-project\n    author: daav3\n    requires:\n      bins:\n        - node\n      env:\n        - LIVE_SIGNER_ENV\n      config:\n        - request.morpho-workflow.json\n    primaryEnv: LIVE_SIGNER_ENV\n---\n\n# Agentic Lending Morpho\n\nThis is the execution-capable Morpho workflow skill.\n\nIt is the Morpho-side counterpart to the EVK skill. It is still more conservative than the EVK path, but it now supports a real end-to-end flow for compatible requests: resolve the requested collateral and borrow assets, check feed readiness, execute funding when available, deploy the oracle adapter, deploy the Morpho market, and verify the result.\n\nThis published skill carries its own local runtime and bundled planning artifacts under `scripts/lib/` and `data/part2/` rather than assuming a separate repo checkout is available at execution time.\n\nIt should script as much of the Morpho path as the code can honestly support: feed readiness classification, executable funding, communal proxy deployment when needed, propagation rechecks, adapter deployment, market deployment, verification, resumable artifacts, and a generated `rollback-plan.json` for every orchestrated run.\n\nWhen the supported path is available and the user explicitly asks for it, this variant can send real transactions and should be treated as a guarded execution skill rather than a planning-only helper.\n\n## Golden path for normal use\nUse one request file and one wrapper command. Do not pick lower-level commands unless debugging or resuming a known run.\n\n1. Create `request.json` with exact `collateralAssets`, exact `borrowAssets`, chain, RPC, Morpho policy, feed-funding intent, and send/broadcast intent.\n   - For a live-shaped Arbitrum WETH/USDC example, copy `references/live-request-template.json` and replace every placeholder before use.\n   - `feedFunding.mode` should be written with the canonical enum values: `classify-only`, `dry-run`, or `real-send`.\n   - The runtime also accepts natural aliases (`check-only` → `classify-only`, `simulate` → `dry-run`), but docs and saved request files should stick to the canonical values.\n   - Never paste a raw private key into chat. For live execution, point the request at a local environment vari"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn79961pqqa20q5jwn60zjkxzs84yc3w\",\n  \"slug\": \"agentic-lending-morpho\",\n  \"version\": \"0.1.11\",\n  \"publishedAt\": 1781525064178\n}"},{"path":"references/current_capabilities.md","content":"# Current capabilities and limits\n\nThis skill is intentionally honest about the current Morpho state in the repo.\n\n## What exists today\n- the published skill now carries its own local runtime under `scripts/lib/`\n- the published skill now carries its own packaged planning data under `data/part2/`, including shared planner snapshots and Morpho oracle artifacts\n- the part 2 planner recognizes `protocol = morpho`\n- the repo contains Morpho-first design work and oracle-adapter specifications\n- Api3 feed discovery and readiness logic already exists at the project level\n- the project has prior EVK skill patterns that can be reused for reporting, branching, and safety posture\n- `prepare-morpho-market` exists at the planner layer\n- `deploy-morpho-oracle-adapter`, `deploy-morpho-market`, and `verify-morpho-market` now exist at the planner layer\n- `deploy-and-verify-morpho-market` exists as a one-shot wrapper around deploy plus verify artifact handoff\n- `ensure-feeds-and-deploy-morpho-market` now exists as the Phase 1 orchestration wrapper for feed readiness, executable funding, propagation recheck, deploy, and artifact persistence\n- the wrapper now has an initial Phase 2 resume path, so an operator can point it at a prior run directory and continue from stored request, completed funding, propagation, deploy, and verify artifacts instead of starting from zero\n- funded-feed cache artifacts are now reusable across runs with `--funded-feed-cache-file <path>`; matching cache entries skip repeat funding classification/execution and force a live propagation recheck before deployment\n- the packaged Morpho runtime can now use the newest bundled feed-funding logic, including communal proxy deployment during scripted funding flows when execution is allowed\n- `feedFunding.mode` now documents and prefers the canonical enum `classify-only | dry-run | real-send`, while still accepting natural aliases such as `check-only` and `simulate`\n- bare 64-hex private keys are now accepted and normalized to `0x...`, although `privateKeyEnv` remains the preferred operator path\n- dry-run chained deployment previews can now show both the adapter deployment and market creation transactions by threading the predicted adapter address into the preview\n- live chained deployment now re-threads market creation from the actual adapter deployment receipt address instead of trusting predicted nonce math alone\n- every orchestrated Morpho run now writes `rollback-plan.json`, which records whether the run is still local-only or already has forward-only onchain changes that now need compensating-action thinking instead of fake “undo” language\n- multiple deposit-asset intent is handled as a **Morpho market set**, meaning one Morpho market per collateral/loan asset pair rather than a fake multi-collateral single market\n\n## What is not yet equivalent to EVK\n- there is still not a Morpho deploy path as mature as the EVK workflow\n- browser-assisted feed funding still requires a human handoff, it is not"},{"path":"references/deployment-packs/arbitrum/operator-notes.md","content":"# Arbitrum Morpho deployment pack\n\nUse this pack for Arbitrum first-canary Morpho market work.\n\n## Required live inputs\n- Arbitrum RPC URL that returns chain id `42161`\n- deployer/signer address and private key supplied only via runtime/local secret handling\n- exact collateral and borrow token addresses\n- Morpho core address for Arbitrum\n- enabled IRM address and LLTV value\n- feed funding mode and send/broadcast intent\n\n## Command order\n1. `agentic-lending-morpho preflight-morpho-market --input-file ./request.json --format json`\n2. Stop unless `safeToRun === true`.\n3. `agentic-lending-morpho ensure-feeds-and-deploy-morpho-market --input-file ./request.json --format json`\n4. If blocked or waiting, run `agentic-lending-morpho explain-next --run-dir <run-dir> --format json`.\n5. Before final success reporting, run `agentic-lending-morpho verify-feed-to-market-handoff --run-dir <run-dir> --format json`.\n\n## Reporting rule\nOnly report live market success when the wrapper completed, `agent-decision.json.successClaimAllowed === true`, and handoff verification passes."},{"path":"references/deployment-packs/arbitrum/order-metadata.json","content":"{\n  \"chain\": { \"name\": \"arbitrum\", \"chainId\": 42161 },\n  \"preferredOrder\": [\n    \"preflight-morpho-market\",\n    \"ensure-feeds-and-deploy-morpho-market\",\n    \"explain-next\",\n    \"verify-feed-to-market-handoff\"\n  ],\n  \"rpcRequirements\": {\n    \"chainIdMustMatch\": 42161,\n    \"allowPublicFallbackForPlanningOnly\": true,\n    \"requireExplicitRpcForLive\": true\n  },\n  \"liveExecutionGuards\": {\n    \"requiresAcknowledgement\": \"I_UNDERSTAND_THIS_WILL_SEND_TRANSACTIONS\",\n    \"rejectPlaceholders\": true,\n    \"requirePreflightSafeToRun\": true\n  },\n  \"artifactGates\": [\n    \"agent-decision.json.successClaimAllowed === true\",\n    \"summary.json.phase === completed\",\n    \"deploy-output.json.sendSummary.completed === true\",\n    \"verify-output.json.verified === true\"\n  ],\n  \"notes\": [\n    \"Use references/live-request-template.json as the request shape, replacing every placeholder before preflight.\",\n    \"After feed funding, do not deploy until propagation.json.ready is true.\",\n    \"Use verify-feed-to-market-handoff before reporting a final market deployment success.\"\n  ]\n}"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1722,"uniquenessScore":43,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T14:03:11.317Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-10T14:03:11.317Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T17:34:11.679Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}