[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6X37KGHJW8RHPR3JXATJFSR":3,"skill-same:01M6X37KGHJW8RHPR3JXATJFSR":94},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":53,"commitSha":54,"skillDirectory":55,"forksCount":56,"repositoryHtmlUrl":57,"repositoryHomepageUrl":6,"ownerHtmlUrl":58,"ownerBlogUrl":59,"ownerDescription":60,"updatedAt":61,"install":62,"resources":75},"01M6X37KGHJW8RHPR3JXATJFSR","credit-annual-review-packet",null,"Assemble a periodic credit-monitoring packet with no live transaction: prior\u002Fcurrent financial comparison, covenant status, exceptions, public-record refresh, and factual changes. Leave rating and conclusion to the analyst. Use when the user says \"put together the annual review\", \"build the credit monitoring review\", \"what changed on this credit since last year\", \"assemble the portfolio review packet\", or \"this borrower's annual is due\". Do NOT use for new-money or renewal memos — use credit-memo-narrative instead. Do NOT use for standalone covenant tests — use covenant-compliance-check instead. Do NOT use for company background alone — use borrower-prospect-research instead. Do NOT use for document formatting — use docx instead.","microsoft\u002Fcat-agent-skills","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M69A1AHE1MABT7GVP5143M5Z",105,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fcat-agent-skills\u002Fblob\u002Fmain\u002Fsubmissions\u002Ffsi-commercial-banking\u002Fskills\u002Fcredit-annual-review-packet\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000002","文档处理","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"review","credit annual review packet","review packet","annual review","assemble","portfolio","do","monitoring","analyst","live","formatting","prospect","fsi","narrative","standalone","manager","company","when","status","docx","2026-11-10 10:12:30",false,"---\nname: credit-annual-review-packet\ndescription: |\n  Assemble a periodic credit-monitoring packet with no live transaction: prior\u002Fcurrent financial comparison, covenant status, exceptions, public-record refresh, and factual changes. Leave rating and conclusion to the analyst. Use when the user says \"put together the annual review\", \"build the credit monitoring review\", \"what changed on this credit since last year\", \"assemble the portfolio review packet\", or \"this borrower's annual is due\". Do NOT use for new-money or renewal memos — use credit-memo-narrative instead. Do NOT use for standalone covenant tests — use covenant-compliance-check instead. Do NOT use for company background alone — use borrower-prospect-research instead. Do NOT use for document formatting — use docx instead.\nlicense: MIT\nmetadata:\n  plugin: fsi-commercial-banking\n  persona: portfolio manager, credit analyst, credit officer\n---\n\n# Credit Annual Review Packet\n\nAssemble what changed since the last review, with the limits of the comparison stated.\n\n## Scope\n\n**Do:** compare prior and current state, summarise covenant results, list open exceptions, refresh the public record, and narrate changes as facts.\n\n**Do not:** re-rate the credit, conclude the review, clear an exception, characterise performance or trend quality, or recommend an action. See the credit-decision gate in `references\u002Fhouse-rules.md`.\n\nAnnual review is deliberately narrower than underwriting. It reports movement; the analyst judges it.\n\n## When NOT to Use\n\n- **New-money or renewal write-up** — use `credit-memo-narrative` instead.\n- **Testing covenants in isolation** — use `covenant-compliance-check` instead.\n- **Formatting or restyling an existing document** — use `docx` instead.\n\n## Quick Start\n\nFor \"put together the annual review\", establish both periods and prior-file coverage before comparing; partial prior coverage cannot establish that an item is new or resolved.\n\n## Tool routing\n\n1. Check actual connector availability; use `GetPluginConfig` when an expected plugin capability is missing. Do not assume a named vendor or optional Finance skill is connected.\n2. For Microsoft 365 record sets use `ExecuteSql`; for topic\u002Fcontent discovery use `SearchM365`. Read located files with `ReadFileContent` (`full` for supported document text; `download` for exact bytes or spreadsheets). Scope reads to the borrower, purpose, and permissions.\n3. Use available configured connector tools for their documented fields. If none supply an item, follow the existing source order and retain the correct gap marker; never claim a tool ran when it did not.\n4. Delegate file construction to `xlsx`, `docx`, or `pptx` as specified below. Inline output is an inline draft, not a saved file. Report a save only from the action tool's successful result.\n\n## Output format\n\nDraft packet sections: scope\u002Fperiods; prior coverage; current facts and supported comparisons; supplied covenant states unchanged; documented exceptions\u002Factions; public-record search limits; unfilled rating\u002Fconclusion; the existing footer. Use the selected template and keep comparison limits in the body.\n\n## Workflow\n\n### 1. Establish scope and periods\n\nRecord: obligor legal name and identifier, facilities in scope, the prior review date and its source document, and the current review period. Say which periods are being compared and on what basis.\n\nIf the prior review file was not supplied, say so and ask for it by name. **Do not reconstruct a prior state from inference** — a comparison against a guessed baseline is worse than no comparison.\n\n### 2. Assemble prior state — and record its coverage\n\nFrom the prior review, prior memo, or prior spread. Capture what was true at the last review: financial figures, risk rating as recorded, covenants and their results, exceptions then open, collateral, and structure.\n\n**Record coverage explicitly**: `complete` where the full prior file was read, `partial` where only some sections were reachable, naming which. This coverage value governs every comparison claim below.\n\n### 3. Assemble current state\n\nCurrent financials come from a supplied spread or supplied statements. Read `references\u002Fdocument-extraction.md` for extraction and verification rules, and run the verification gate before using any figure.\n\nIf no current financials were supplied, say so. Name `financial-statement-spread` as the skill that produces the spread, and **never describe its output as though it ran.**\n\n### 4. Compare — the completeness gate is symmetric\n\nA comparison claim is only as good as the coverage of **both** sides.\n\n| Coverage of prior state | What you may claim |\n|---|---|\n| Complete | `added`, `removed`, `changed`, `unchanged` — all four |\n| Partial | `currently present; novelty unverified` and `currently absent; prior presence unverified`. **Never** `added` or `removed` |\n| Unavailable | Current state only. No comparison claims at all |\n\n**This cuts both ways.** An unread prior section looks exactly like a new item — and equally, an item you did not see in a partially-read prior file may never have gone away. If partial coverage blocks \"this covenant was added,\" it blocks \"this exception was resolved\" by the same logic.\n\nState on the packet that the comparison is not exhaustive whenever coverage is partial.\n\n### 5. Covenant status\n\nSummarise covenant results for the review period. Where a compliance check has been run and supplied, restate its states and flags unchanged — carry `PASS`, `FAIL`, and `NOT TESTED` through exactly, and never convert a `NOT TESTED` into a pass by omission.\n\nWhere no check has been run, say so and name `covenant-compliance-check` as the skill that performs it. Do not test covenants here from a covenant summary, and do not describe that skill's output as though it ran.\n\n### 6. Refresh the public record\n\nRe-run the entity, lien, litigation, and news searches using `references\u002Fpublic-records.md`. Resolve identity first; report the index, jurisdiction, exact name searched, and date for every search, including clean results.\n\nCompare against the prior review's findings under the same symmetric rule: a new filing is only \"new\" if the prior search covered the same index and jurisdiction.\n\n### 7. Exceptions and action items\n\nList every open exception with: what it is, when it arose, its source document, and its current status **as documented**. Carry forward prior exceptions that were not shown to be resolved — an exception is not closed because it was not mentioned.\n\nDo not clear, waive, or close an exception. Where the current file suggests resolution, say what evidence exists and leave the status for the analyst.\n\n### 8. Resolve the template and produce\n\n1. User named a template file → use it.\n2. Else search M365 for `Cowork Templates\u002FCommercial Banking\u002Fcredit-annual-review-packet\u002F` → most recent file there.\n3. Else use `references\u002Freview-outline.md`.\n\nDefault document output is delegated to the built-in `docx`: the skill supplies sourced content, checklist structure, evidence, and placeholders; `docx` builds the file. Missing values remain blank or marked, never `0`.\n\nDefault `.docx` packet plus an exceptions\u002Faction checklist. The rating and conclusion sections appear with headings intact and an explicit placeholder; never fill them.\n\n## Source resolution\n\nOrdering follows `references\u002Fhouse-rules.md`.\n\n1. **Configured connector.** LOS \u002F servicing (`nCino`) → exposure, payment history, ticklers, prior rating, covenant schedule. Core\u002FGL → balances and actuals. Business credit (`D&B`, `Experian` commercial) → public-record and score refresh.\n2. **Supplied documents and M365** — prior review, prior memo, current statements, spread, certificates, correspondence.\n3. **Public primary** — registry, court index, EDGAR, company site.\n4. **Secondary** — marked `UNVERIFIED — secondary source`.\n5. **Flag the gap.**\n\n**If a configured connector supplies the item in front of you, use it and do not open the browser\nfor that item.** Browsing is for items no connector covers — narrative and covenant language, as-reported figures where the accounting basis matters, and anything whose citation needs a primary identifier. A connector being\npresent does not mean it holds the item: if it returns nothing, that is a connector miss, so\ncontinue down this list. Never treat it as a dead end, and never report it as the item not\nexisting.\n\n**A partial or stale connector answer is a miss for whatever it does not cover.** Where the item\nis a count, an \"all of X\" set, an absence claim, or a point-in-time status, a non-empty connector\nanswer does not end the search — confirm completeness and currency against the authoritative\nsource, or mark that coverage `partial` and name what was not covered. A vendor's subset reported\nas the whole manufactures a finding that was never established, and a connector never settles a\ndetermination or a point-in-time status on its own.\n\nWith no LOS connector, exposure and payment history come from what the user supplied. Say so rather than implying a complete facility picture.\n\n**Capabilities.** Reading supplied files (PDF, DOCX, XLSX, PPTX, CSV, images with OCR); web retrieval of public sources; Microsoft 365 search where the user has access; configured MCP connectors where present. Artifact creation is delegated — spreadsheets to `xlsx`, documents to `docx`, decks to `pptx`.\n\n**When a capability is unavailable:** say which one, name what it would have supplied, and continue with what is available. Never silently skip a step and never present an unavailable source as returning nothing.\n\n**Source markers.** Distinguish `NEEDS FEED` (no source exists in this session), `NOT RETRIEVED` (source exists, but retrieval failed or was denied), and `NOT FOUND` (source answered, with no record). Never collapse them.\n\n**Artifact handoff.** The skill supplies the content, structure, formulas as specified, evidence, and placeholders; the built-in creates the file. Spreads and covenant workbooks go to `xlsx`; memos, credit write-ups, briefs, packets, and call memos go to `docx`.\n\n## Guardrails\n- **Nothing auto-sends.** No email, submission, posting to a system of record, file submission, or commitment to a borrower is sent or made automatically. A draft is a draft and is reported as a draft.\n- **Never delete decision sections.** Existing approvals, conditions, exceptions, risk ratings, and prior decision rationale are preserved. Updates append and mark changes; they never overwrite or remove.\n- **Unreadable statements stop calculations.** If a financial statement figure cannot be read with confidence, output `NOT LEGIBLE — \u003Cdocument>, page \u003Cn>, \u003Cline item>`, ask for a cleaner copy, never guess a digit, never infer a number from a subtotal, and never carry a partially read figure into a calculation. If extraction quality is poor across a statement, say so and stop rather than producing a spread or covenant test built on guesses.\n- **Unavailable sources stay distinct.** Use `NEEDS FEED` when no source exists in this session, `NOT RETRIEVED` when a source exists but retrieval failed or was denied, and `NOT FOUND` when the source answered with no record. Never collapse them.\n- **Failed saves are failures.** Never claim a save succeeded unless it was verified. Report what was produced, where it was and was not written, and what remains incomplete.\n- **Missing values are never zero.** In spreadsheets, covenant worksheets, memos, and packet tables, write a blank or the applicable marker; never write `0` for missing, unreadable, unretrieved, or unavailable values.\n- **Comparison claims require coverage on both sides.** Partial prior coverage permits only `currently present; novelty unverified` and `currently absent; prior presence unverified`.\n- **Never reconstruct a prior baseline** from inference. Never invent a figure, source, prior status, or completion claim.\n- **Carry states and markers through unchanged.** A `NOT TESTED` covenant stays `NOT TESTED`; a marked figure stays marked.\n- **Never clear or close an exception.** Report evidence; leave status to the analyst.\n- **Never re-rate or conclude the review.**\n- **Never characterise trend quality.** State the movement and the arithmetic.\n- **Never describe another skill's output as though it ran.**\n\n## Output footer\n\n```\nObligor: \u003Cexact legal name, jurisdiction, identifier>\nReview period: \u003Ccurrent period> compared with \u003Cprior review date and document>\nPrior-state coverage: \u003Ccomplete | partial — name what was not read | unavailable>\nComparison basis: \u003Cfull comparison | limited — novelty and removal unverified>\nCurrent financials: \u003Cspread supplied | statements supplied | none — comparison not generated>\nVerification: \u003Cchecks run and result; checks not run and why>\nCovenant status: \u003Crestated from supplied check | no check supplied — not tested here>\nSearches run: \u003Ceach: source, jurisdiction, exact name searched, date, result>\nExceptions: \u003Copen \u003Cn> | carried forward \u003Cn> | evidence of resolution \u003Cn>, status not changed>\nTemplate: \u003Cbundled default | house template name>\nArtifact handoff: \u003Cxlsx | docx | pptx | none — inline only>\nConnectors used: \u003Cnames, or \"none\">\nOther sources used: \u003Csupplied documents | M365 | public primary | secondary, marked>\nSections left for completion: \u003Crating | review conclusion | others>\nOutput: inline draft | file created \u003Cidentifier> | creation failed\nPersistence: not attempted | saved \u003Cverified location> | failed\nSave detail: \u003Cwhat was produced; where written; where not written; incomplete items>\nGaps: \u003CNOT LEGIBLE \u002F NOT FOUND \u002F NOT RETRIEVED \u002F NEEDS FEED \u002F GAP items, or \"none\">\nGenerated: \u003Cdate> — assembled comparison and refresh. No risk rating, review conclusion,\nexception clearance, or credit decision.\n```\n\nEvery field states what actually happened. Do not report a full comparison when prior coverage was partial. Do not report covenant results as tested here when they were restated from a supplied check.\n\n## Reference files\n\n- `references\u002Fdocument-extraction.md` — extraction routes, verification gate, periods, derived figures.\n- `references\u002Fpublic-records.md` — entity identity, what each source establishes, search limits.\n- `references\u002Fhouse-rules.md` — citation format, source tiers, credit-decision gate, markers.\n- `references\u002Freview-outline.md` — default packet structure, comparison table, exception list.\n","# Credit Annual Review Packet\n\nAssemble what changed since the last review, with the limits of the comparison stated.\n\n## Scope\n\n**Do:** compare prior and current state, summarise covenant results, list open exceptions, refresh the public record, and narrate changes as facts.\n\n**Do not:** re-rate the credit, conclude the review, clear an exception, characterise performance or trend quality, or recommend an action. See the credit-decision gate in `references\u002Fhouse-rules.md`.\n\nAnnual review is deliberately narrower than underwriting. It reports movement; the analyst judges it.\n\n## When NOT to Use\n\n- **New-money or renewal write-up** — use `credit-memo-narrative` instead.\n- **Testing covenants in isolation** — use `covenant-compliance-check` instead.\n- **Formatting or restyling an existing document** — use `docx` instead.\n\n## Quick Start\n\nFor \"put together the annual review\", establish both periods and prior-file coverage before comparing; partial prior coverage cannot establish that an item is new or resolved.\n\n## Tool routing\n\n1. Check actual connector availability; use `GetPluginConfig` when an expected plugin capability is missing. Do not assume a named vendor or optional Finance skill is connected.\n2. For Microsoft 365 record sets use `ExecuteSql`; for topic\u002Fcontent discovery use `SearchM365`. Read located files with `ReadFileContent` (`full` for supported document text; `download` for exact bytes or spreadsheets). Scope reads to the borrower, purpose, and permissions.\n3. Use available configured connector tools for their documented fields. If none supply an item, follow the existing source order and retain the correct gap marker; never claim a tool ran when it did not.\n4. Delegate file construction to `xlsx`, `docx`, or `pptx` as specified below. Inline output is an inline draft, not a saved file. Report a save only from the action tool's successful result.\n\n## Output format\n\nDraft packet sections: scope\u002Fperiods; prior coverage; current facts and supported comparisons; supplied covenant states unchanged; documented exceptions\u002Factions; public-record search limits; unfilled rating\u002Fconclusion; the existing footer. Use the selected template and keep comparison limits in the body.\n\n## Workflow\n\n### 1. Establish scope and periods\n\nRecord: obligor legal name and identifier, facilities in scope, the prior review date and its source document, and the current review period. Say which periods are being compared and on what basis.\n\nIf the prior review file was not supplied, say so and ask for it by name. **Do not reconstruct a prior state from inference** — a comparison against a guessed baseline is worse than no comparison.\n\n### 2. Assemble prior state — and record its coverage\n\nFrom the prior review, prior memo, or prior spread. Capture what was true at the last review: financial figures, risk rating as recorded, covenants and their results, exceptions then open, collateral, and structure.\n\n**Record coverage explicitly**: `complete` where the full prior file was read, `partial` where only some sections were reachable, naming which. This coverage value governs every comparison claim below.\n\n### 3. Assemble current state\n\nCurrent financials come from a supplied spread or supplied statements. Read `references\u002Fdocument-extraction.md` for extraction and verification rules, and run the verification gate before using any figure.\n\nIf no current financials were supplied, say so. Name `financial-statement-spread` as the skill that produces the spread, and **never describe its output as though it ran.**\n\n### 4. Compare — the completeness gate is symmetric\n\nA comparison claim is only as good as the coverage of **both** sides.\n\n| Coverage of prior state | What you may claim |\n|---|---|\n| Complete | `added`, `removed`, `changed`, `unchanged` — all four |\n| Partial | `currently present; novelty unverified` and `currently absent; prior presence unverified`. **Never** `added` or `removed` |\n| Unavailable | Current state only. No comparison claims at all |\n\n**This cuts both ways.** An unread prior section looks exactly like a new item — and equally, an item you did not see in a partially-read prior file may never have gone away. If partial coverage blocks \"this covenant was added,\" it blocks \"this exception was resolved\" by the same logic.\n\nState on the packet that the comparison is not exhaustive whenever coverage is partial.\n\n### 5. Covenant status\n\nSummarise covenant results for the review period. Where a compliance check has been run and supplied, restate its states and flags unchanged — carry `PASS`, `FAIL`, and `NOT TESTED` through exactly, and never convert a `NOT TESTED` into a pass by omission.\n\nWhere no check has been run, say so and name `covenant-compliance-check` as the skill that performs it. Do not test covenants here from a covenant summary, and do not describe that skill's output as though it ran.\n\n### 6. Refresh the public record\n\nRe-run the entity, lien, litigation, and news searches using `references\u002Fpublic-records.md`. Resolve identity first; report the index, jurisdiction, exact name searched, and date for every search, including clean results.\n\nCompare against the prior review's findings under the same symmetric rule: a new filing is only \"new\" if the prior search covered the same index and jurisdiction.\n\n### 7. Exceptions and action items\n\nList every open exception with: what it is, when it arose, its source document, and its current status **as documented**. Carry forward prior exceptions that were not shown to be resolved — an exception is not closed because it was not mentioned.\n\nDo not clear, waive, or close an exception. Where the current file suggests resolution, say what evidence exists and leave the status for the analyst.\n\n### 8. Resolve the template and produce\n\n1. User named a template file → use it.\n2. Else search M365 for `Cowork Templates\u002FCommercial Banking\u002Fcredit-annual-review-packet\u002F` → most recent file there.\n3. Else use `references\u002Freview-outline.md`.\n\nDefault document output is delegated to the built-in `docx`: the skill supplies sourced content, checklist structure, evidence, and placeholders; `docx` builds the file. Missing values remain blank or marked, never `0`.\n\nDefault `.docx` packet plus an exceptions\u002Faction checklist. The rating and conclusion sections appear with headings intact and an explicit placeholder; never fill them.\n\n## Source resolution\n\nOrdering follows `references\u002Fhouse-rules.md`.\n\n1. **Configured connector.** LOS \u002F servicing (`nCino`) → exposure, payment history, ticklers, prior rating, covenant schedule. Core\u002FGL → balances and actuals. Business credit (`D&B`, `Experian` commercial) → public-record and score refresh.\n2. **Supplied documents and M365** — prior review, prior memo, current statements, spread, certificates, correspondence.\n3. **Public primary** — registry, court index, EDGAR, company site.\n4. **Secondary** — marked `UNVERIFIED — secondary source`.\n5. **Flag the gap.**\n\n**If a configured connector supplies the item in front of you, use it and do not open the browser\nfor that item.** Browsing is for items no connector covers — narrative and covenant language, as-reported figures where the accounting basis matters, and anything whose citation needs a primary identifier. A connector being\npresent does not mean it holds the item: if it returns nothing, that is a connector miss, so\ncontinue down this list. Never treat it as a dead end, and never report it as the item not\nexisting.\n\n**A partial or stale connector answer is a miss for whatever it does not cover.** Where the item\nis a count, an \"all of X\" set, an absence claim, or a point-in-time status, a non-empty connector\nanswer does not end the search — confirm completeness and currency against the authoritative\nsource, or mark that coverage `partial` and name what was not covered. A vendor's subset reported\nas the whole manufactures a finding that was never established, and a connector never settles a\ndetermination or a point-in-time status on its own.\n\nWith no LOS connector, exposure and payment history come from what the user supplied. Say so rather than implying a complete facility picture.\n\n**Capabilities.** Reading supplied files (PDF, DOCX, XLSX, PPTX, CSV, images with OCR); web retrieval of public sources; Microsoft 365 search where the user has access; configured MCP connectors where present. Artifact creation is delegated — spreadsheets to `xlsx`, documents to `docx`, decks to `pptx`.\n\n**When a capability is unavailable:** say which one, name what it would have supplied, and continue with what is available. Never silently skip a step and never present an unavailable source as returning nothing.\n\n**Source markers.** Distinguish `NEEDS FEED` (no source exists in this session), `NOT RETRIEVED` (source exists, but retrieval failed or was denied), and `NOT FOUND` (source answered, with no record). Never collapse them.\n\n**Artifact handoff.** The skill supplies the content, structure, formulas as specified, evidence, and placeholders; the built-in creates the file. Spreads and covenant workbooks go to `xlsx`; memos, credit write-ups, briefs, packets, and call memos go to `docx`.\n\n## Guardrails\n- **Nothing auto-sends.** No email, submission, posting to a system of record, file submission, or commitment to a borrower is sent or made automatically. A draft is a draft and is reported as a draft.\n- **Never delete decision sections.** Existing approvals, conditions, exceptions, risk ratings, and prior decision rationale are preserved. Updates append and mark changes; they never overwrite or remove.\n- **Unreadable statements stop calculations.** If a financial statement figure cannot be read with confidence, output `NOT LEGIBLE — \u003Cdocument>, page \u003Cn>, \u003Cline item>`, ask for a cleaner copy, never guess a digit, never infer a number from a subtotal, and never carry a partially read figure into a calculation. If extraction quality is poor across a statement, say so and stop rather than producing a spread or covenant test built on guesses.\n- **Unavailable sources stay distinct.** Use `NEEDS FEED` when no source exists in this session, `NOT RETRIEVED` when a source exists but retrieval failed or was denied, and `NOT FOUND` when the source answered with no record. Never collapse them.\n- **Failed saves are failures.** Never claim a save succeeded unless it was verified. Report what was produced, where it was and was not written, and what remains incomplete.\n- **Missing values are never zero.** In spreadsheets, covenant worksheets, memos, and packet tables, write a blank or the applicable marker; never write `0` for missing, unreadable, unretrieved, or unavailable values.\n- **Comparison claims require coverage on both sides.** Partial prior coverage permits only `currently present; novelty unverified` and `currently absent; prior presence unverified`.\n- **Never reconstruct a prior baseline** from inference. Never invent a figure, source, prior status, or completion claim.\n- **Carry states and markers through unchanged.** A `NOT TESTED` covenant stays `NOT TESTED`; a marked figure stays marked.\n- **Never clear or close an exception.** Report evidence; leave status to the analyst.\n- **Never re-rate or conclude the review.**\n- **Never characterise trend quality.** State the movement and the arithmetic.\n- **Never describe another skill's output as though it ran.**\n\n## Output footer\n\n```\nObligor: \u003Cexact legal name, jurisdiction, identifier>\nReview period: \u003Ccurrent period> compared with \u003Cprior review date and document>\nPrior-state coverage: \u003Ccomplete | partial — name what was not read | unavailable>\nComparison basis: \u003Cfull comparison | limited — novelty and removal unverified>\nCurrent financials: \u003Cspread supplied | statements supplied | none — comparison not generated>\nVerification: \u003Cchecks run and result; checks not run and why>\nCovenant status: \u003Crestated from supplied check | no check supplied — not tested here>\nSearches run: \u003Ceach: source, jurisdiction, exact name searched, date, result>\nExceptions: \u003Copen \u003Cn> | carried forward \u003Cn> | evidence of resolution \u003Cn>, status not changed>\nTemplate: \u003Cbundled default | house template name>\nArtifact handoff: \u003Cxlsx | docx | pptx | none — inline only>\nConnectors used: \u003Cnames, or \"none\">\nOther sources used: \u003Csupplied documents | M365 | public primary | secondary, marked>\nSections left for completion: \u003Crating | review conclusion | others>\nOutput: inline draft | file created \u003Cidentifier> | creation failed\nPersistence: not attempted | saved \u003Cverified location> | failed\nSave detail: \u003Cwhat was produced; where written; where not written; incomplete items>\nGaps: \u003CNOT LEGIBLE \u002F NOT FOUND \u002F NOT RETRIEVED \u002F NEEDS FEED \u002F GAP items, or \"none\">\nGenerated: \u003Cdate> — assembled comparison and refresh. No risk rating, review conclusion,\nexception clearance, or credit decision.\n```\n\nEvery field states what actually happened. Do not report a full comparison when prior coverage was partial. Do not report covenant results as tested here when they were restated from a supplied check.\n\n## Reference files\n\n- `references\u002Fdocument-extraction.md` — extraction routes, verification gate, periods, derived figures.\n- `references\u002Fpublic-records.md` — entity identity, what each source establishes, search limits.\n- `references\u002Fhouse-rules.md` — citation format, source tiers, credit-decision gate, markers.\n- `references\u002Freview-outline.md` — default packet structure, comparison table, exception list.\n",{"name":5,"license":15,"metadata":49,"description":52},{"plugin":50,"persona":51},"fsi-commercial-banking","portfolio manager, credit analyst, credit officer","Assemble a periodic credit-monitoring packet with no live transaction: prior\u002Fcurrent financial comparison, covenant status, exceptions, public-record refresh, and factual changes. Leave rating and conclusion to the analyst. Use when the user says \"put together the annual review\", \"build the credit monitoring review\", \"what changed on this credit since last year\", \"assemble the portfolio review packet\", or \"this borrower's annual is due\". Do NOT use for new-money or renewal memos — use credit-memo-narrative instead. Do NOT use for standalone covenant tests — use covenant-compliance-check instead. Do NOT use for company background alone — use borrower-prospect-research instead. Do NOT use for document formatting — use docx instead.\n","main","c739e95c35d12a999691ab076c3d4c3095bf8192","submissions\u002Ffsi-commercial-banking\u002Fskills\u002Fcredit-annual-review-packet",120,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fcat-agent-skills","https:\u002F\u002Fgithub.com\u002Fmicrosoft","https:\u002F\u002Fopensource.microsoft.com","Open source projects and samples from Microsoft","2026-11-13 01:39:10",{"source":8,"skillName":5,"commands":63,"prompt":73,"zipAvailable":74},[64,67,70],{"tool":65,"command":66},"npx","npx skills add microsoft\u002Fcat-agent-skills --skill credit-annual-review-packet",{"tool":68,"command":69},"bunx","bunx skills add microsoft\u002Fcat-agent-skills --skill credit-annual-review-packet",{"tool":71,"command":72},"pnpm","pnpm dlx skills add microsoft\u002Fcat-agent-skills --skill credit-annual-review-packet","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fcat-agent-skills\u002Fblob\u002Fmain\u002Fsubmissions\u002Ffsi-commercial-banking\u002Fskills\u002Fcredit-annual-review-packet\u002FSKILL.md",true,[76,82,86,90],{"path":77,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":80,"sourceHtmlUrl":81},"references\u002Fdocument-extraction.md","REFERENCE","参考文档",9754,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fcat-agent-skills\u002Fblob\u002Fmain\u002Fsubmissions\u002Ffsi-commercial-banking\u002Fskills\u002Fcredit-annual-review-packet\u002Freferences\u002Fdocument-extraction.md",{"path":83,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":84,"sourceHtmlUrl":85},"references\u002Fhouse-rules.md",16298,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fcat-agent-skills\u002Fblob\u002Fmain\u002Fsubmissions\u002Ffsi-commercial-banking\u002Fskills\u002Fcredit-annual-review-packet\u002Freferences\u002Fhouse-rules.md",{"path":87,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":88,"sourceHtmlUrl":89},"references\u002Fpublic-records.md",10006,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fcat-agent-skills\u002Fblob\u002Fmain\u002Fsubmissions\u002Ffsi-commercial-banking\u002Fskills\u002Fcredit-annual-review-packet\u002Freferences\u002Fpublic-records.md",{"path":91,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":92,"sourceHtmlUrl":93},"references\u002Freview-outline.md",7074,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fcat-agent-skills\u002Fblob\u002Fmain\u002Fsubmissions\u002Ffsi-commercial-banking\u002Fskills\u002Fcredit-annual-review-packet\u002Freferences\u002Freview-outline.md",[95,120,144,176,194,210],{"skillNo":96,"name":97,"nameZh":6,"description":98,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":101,"publishedAt":44},"01M6X3P09R8SJH3QJGMTAA5N90","stakeholder-and-decision-map","Mines customer interactions to identify stakeholders, infer their likely roles and engagement, map the decision process, and highlight who or what may be missing. Use when asked to \"map a deal's buying group\", identify influential or missing stakeholders, \"assess who has gone quiet\", or \"explain how the customer will decide\". Do not use for phased engagement plans, contact sequences, choosing or drafting outreach to the single next contact, seller or team performance reviews, or contacting, scheduling, or changing records.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fcat-agent-skills\u002Fblob\u002Fmain\u002Fsubmissions\u002Fstakeholder-and-decision-map\u002FSKILL.md",[],[102,103,104,105,106,107,108,109,110,30,111,112,113,114,115,116,117,118,41,119],"decision","map","decision map","stakeholder and decision map","performance","customer","team","how","decide","next","infer","missing","records","assess","reviews","for","single","sequences",{"skillNo":121,"name":122,"nameZh":6,"description":123,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":126,"publishedAt":44},"01M6X3NRES2XSZQCH015WD4JN6","sales-progress-update","Creates or refreshes a sales progress update for a manager or team about work done, deal movement, pending outcomes, supported forecast position, and help needed. Use when asked to \"create my weekly sales update\", \"refresh my sales progress deck\", \"report my forecast position\", \"where do I stand against my quarter forecast\", or \"catch my manager up on committed deals\". Do NOT use for non-sales project updates, a since-date deal change digest, momentum or blocker analysis, meeting prep, or outreach drafting.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fcat-agent-skills\u002Fblob\u002Fmain\u002Fsubmissions\u002Fsales-progress-update\u002FSKILL.md",[],[127,128,129,130,131,132,133,134,108,135,136,137,138,139,140,141,39,142,143,41],"update","sales","progress","sales progress update","change","create","meeting prep","analysis","work","up","done","digest","project","my","updates","weekly","catch",{"skillNo":145,"name":146,"nameZh":6,"description":147,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":148,"categories":149,"keywords":159,"publishedAt":44},"01M6X3MSDTB1E5H6DQAFAY41YP","submission-assemble","Put the checked CSR or 510(k) sections together in template order with a reviewer-facing open-items register, as a draft package for human sign-off. Use when the user asks \"assemble the CSR draft\", \"put the module together for review\", \"build the review package with the open items on top\", \"compile the 510(k) sections in order\" or \"package this up for the submission lead\". Do NOT use for assembling an unchecked draft - use consistency-check instead. Do NOT use for loading protocol, SAP or TLF sources - use source-ingest instead. Do NOT use for compiling general documents or slide decks - use the built-in docx or pptx skill instead. Do NOT use for filing or submitting to a regulator - use the sponsor's validated gateway, operated by a human, instead. Guardrail: draft for human approval only (L1); status is draft_clean or draft_open_items, never submitted.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fcat-agent-skills\u002Fblob\u002Fmain\u002Fsubmissions\u002Freg-submission-authoring\u002Fsubmission-assemble\u002FSKILL.md",[150,151,154],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":152,"categoryName":153,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000003","演示文稿",{"categoryNo":155,"categoryName":156,"taxonomyType":157,"taxonomyTypeDesc":158},"01JBSEEDCAT000000000000034","行政与办公人员","PROFESSION","适用职业",[28,160,161,43,162,163,164,165,166,167,168,169,136,170,171,172,173,174,175,41],"submission","submission assemble","pptx","writing","documents","healthcare","open","reviewer","never","only","clean","guardrail","slide decks","sources","filing","loading",{"skillNo":177,"name":178,"nameZh":6,"description":179,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":180,"categories":181,"keywords":182,"publishedAt":44},"01M6X3MM9TVWDQ716QGNV4DS25","source-ingest","Pull every number, date and population definition out of a study's protocol, SAP, TLF tables, investigator brochure and prior approved text into one cited fact map, keyed per config\u002Ffield-dictionary.json, before any CSR or 510(k) section is written. Use when the user asks \"here's the locked TLF set and SAP, set up the CSR\", \"load the protocol and tables before we start drafting\", \"what figures do we have from the database lock?\", \"pull the disposition counts out of Table 14.1.1\" or \"ingest the IB for the 510(k)\". Do NOT use for drafting or assembling submission sections - use section-draft or submission-assemble instead. Do NOT use for reconciling a patient's medications - use the discharge-care-transition plugin instead. Guardrail: reads and cites sources only; never estimates, rounds or invents a fact.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fcat-agent-skills\u002Fblob\u002Fmain\u002Fsubmissions\u002Freg-submission-authoring\u002Fsource-ingest\u002FSKILL.md",[],[183,184,185,186,187,134,165,188,168,169,136,103,189,171,173,190,191,192,193,41],"source ingest","ingest","source","database","SET","text","patient","number","lock","definition","transition",{"skillNo":195,"name":196,"nameZh":6,"description":197,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":198,"categories":199,"keywords":201,"publishedAt":44},"01M6X3M7ZH5ZNEHP56BQ74HAJR","section-plan","Work out which sections a CSR or 510(k) requires, from the templates in config, check each one against the cited fact map, and name what is missing before a word is drafted. Use when the user asks \"what do we still need before we can draft the CSR?\", \"which sections are ready to start?\", \"what's blocking the performance data section?\", \"do we have everything for the synopsis?\" or \"map our tables to the E3 structure\". Do NOT use for writing section language - use section-draft instead. Do NOT use for cross-checking a finished draft - use consistency-check instead. Do NOT use for outlining general Word documents or business reports - use the built-in docx skill instead. Only structures with a template in config are supported. Guardrail: plans only; never marks a section ready on a missing fact and never invents a structure.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fcat-agent-skills\u002Fblob\u002Fmain\u002Fsubmissions\u002Freg-submission-authoring\u002Fsection-plan\u002FSKILL.md",[200],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[202,203,204,43,163,106,164,134,165,135,168,169,205,206,207,103,171,208,209,41],"plan","section","section plan","ready","reports","structure","word documents","which",{"skillNo":211,"name":212,"nameZh":6,"description":213,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":214,"categories":215,"keywords":216,"publishedAt":44},"01M6X3M0V1MJNCR653ES9XGVMS","section-draft","Write or revise the language for one planned CSR or 510(k) section - synopsis, efficacy, safety, discussion, device description - using only figures already in the cited fact map, each with its TLF or SAP citation. Use when the user asks \"draft the Synopsis from our locked tables\", \"write up safety from Table 14.3.1\", \"give me a first pass at the discussion\", \"draft the device description for the 510(k)\" or \"tighten the wording of the Discussion section\". Do NOT use for supplying a number not already in source_facts - use source-ingest instead. Do NOT use for verifying a draft's figures - use consistency-check instead. Do NOT use for appeal letters, clinical notes or discharge summaries - use the matching HLS plugin instead. Guardrail: drafts for human approval only (L1); never asserts an unsourced number or harmonises two figures.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fcat-agent-skills\u002Fblob\u002Fmain\u002Fsubmissions\u002Freg-submission-authoring\u002Fsection-draft\u002FSKILL.md",[],[217,203,218,163,219,165,220,168,169,136,221,103,222,223,224,171,225,190,226,41],"draft","section draft","notes","write","me","human","life","clinical","drafts","at"]