dl-ddq-initial

star 0

Populates the Wells & Overland DD List one-pager (.docx) in [Initial] mode: a ruthlessly prioritized, exactly-one-page Initial DD list of diligence questions and data requests, reconciled against the deal folder AND the upstream P6 analytical workbooks. Use after a posting-IC decision when the user asks to prepare or build the Initial DD list / P6 data-request list. Unions the posting memo, IC debrief punchlist, any kick-off list, AND the dl-databook-narrative output (severity-filtered); applies the IC dispositions (rejected→kill, added→new, qualified→amend); reconciles received vs. outstanding via the M365 connector (degrading to document index); orders to the Overland credit framework; drafts gap-aware evidence-backed questions whose basis stays internal; edits the bundled template in place via populate_dd_list.py with the two-stage one-page discipline. Outbound co-lender-shared (CONFIDENTIAL); reads RESTRICTED debrief + CONFIDENTIAL narrative; emits internal data of neither.

jaminator By jaminator schedule Updated 5/23/2026

name: dl-ddq-initial description: > Populates the Wells & Overland DD List one-pager (.docx) in [Initial] mode: a ruthlessly prioritized, exactly-one-page Initial DD list of diligence questions and data requests, reconciled against the deal folder AND the upstream P6 analytical workbooks. Use after a posting-IC decision when the user asks to prepare or build the Initial DD list / P6 data-request list. Unions the posting memo, IC debrief punchlist, any kick-off list, AND the dl-databook-narrative output (severity-filtered); applies the IC dispositions (rejected→kill, added→new, qualified→amend); reconciles received vs. outstanding via the M365 connector (degrading to document index); orders to the Overland credit framework; drafts gap-aware evidence-backed questions whose basis stays internal; edits the bundled template in place via populate_dd_list.py with the two-stage one-page discipline. Outbound co-lender-shared (CONFIDENTIAL); reads RESTRICTED debrief + CONFIDENTIAL narrative; emits internal data of neither.

Initial DD & Data-Request List — Construction & Population Guide

STEP 0 — ORIENTATION

The deliverable is the populated bundled .docx in [Initial] mode, not a text draft and not a regenerated document. scripts/populate_dd_list.py edits assets/dd-list-template.docx in place (preserving the Number List 1 numbering and the Subtle Reference run style) and saves a deal-named copy.

This is the P6 Initial DD list: the last P6 deliverable in the chronology — it consumes both the dl-ic-debrief-posting punchlist (closing the diligence side of the loop the IC debrief opened) AND the dl-databook-narrative output. The P6 sequence is: dl-databook-financialsdl-databook-chartsdl-databook-kpidl-databook-modeldl-databook-narrativedl-ddq-initial (this skill).

Four hard rules govern everything below:

  • Exactly one page. A page filled by fitting deserving content, not only by cutting. Two stages: Stage-1 editorial omission of confirmatory/ non-critical items (your judgment, Step 4); Stage-2 typographic auto-fit (the script, Step 6). Never drop a credit-critical item to save space; never shrink below the 9.0 pt legibility floor — the script flags overflow for human review instead.
  • Reads RESTRICTED + CONFIDENTIAL/MNPI, emits CONFIDENTIAL. The IC debrief is RESTRICTED (IC deliberation + individual votes); the dl-databook-narrative output is CONFIDENTIAL/MNPI (internal workbook citations + severity / category labels + manifest field names). The outbound list reveals none of either — no "the IC flagged…", no votes, no Overland economics/portfolio context, no internal workbook citations ("per the Databook FinInputs cell V48 …"), no manifest field names (the Overland Model's per-case driver fields), no narrative-item severity or category labels ("a critical data_gap …"). Only neutral questions and data requests.
  • Gap-aware drafting: basis is internal, question is outbound. The narrative items carry verifiable bases (workbook cells, manifest fields). Use the basis to sharpen the credit question with the specific dollar / % / period the basis cites; the question text reveals only the credit concern, never the internal citation. See Step 5 and the worked good/bad rewrites in reference/dd-list-construction.md.
  • Never fabricate. Never invent a received/outstanding status, an IC disposition, a kick-off baseline that didn't exist, a narrative finding the basis doesn't support, or a diligence question whose basis can't be cited internally. [INSUFFICIENT DATA — <what is missing>]; unknown inventory → outstanding, never a false received.

This skill is a downstream consumer: it never modifies the upstream skills it reads (dl-ic-debrief-posting, dl-databook-narrative, the analytical workbook skills, dl-ddq-kickoff, dl-memo-posting*) or their outputs, and the bundled template asset is opened read-only (a deal-named copy is written).

Reference files (load as needed; one level deep):

  • reference/dd-list-construction.md — the framework ordering spine, the question-style discipline with worked good/bad rewrites, the new/killed/amended reconciliation taxonomy, the received-vs-outstanding rule, and the two-stage one-page editorial discipline. Read before Steps 2–5.
  • reference/population-mechanics.md — the content-dict schema pointer, the run snippet, the numbering-preservation rules, the sub-bullet rendering contract, the connector contract + graceful degradation, and the Stage-2 auto-fit tiers / 9.0 pt floor / estimator. Follow exactly in Steps 3 and 6.

Install required package: pip install python-docx

Workflow checklist (copy into your working response and check off):

Initial DD List Progress:
- [ ] Step 1: Assemble the candidate set (memo + debrief + optional kick-off
      + dl-databook-narrative output, severity-filtered)
- [ ] Step 2: Apply the IC dispositions (kill / new / amend / keep-if-live)
- [ ] Step 3: Reconcile received vs. outstanding (M365 connector scan)
- [ ] Step 4: Prioritize + Stage-1 editorial selection (framework spine)
- [ ] Step 5: Draft to the question-style discipline + gap-aware sharpening
      (basis internal, question outbound)
- [ ] Step 6: Populate via scripts/populate_dd_list.py (Stage-2 auto-fit)
- [ ] Verify: one page or overflow flagged; toggle resolved; no [X]; no
      RESTRICTED leakage; no internal workbook citations / manifest field
      names / severity-or-category labels; return the .docx

STEP 1 — ASSEMBLE THE CANDIDATE SET

Read reference/dd-list-construction.md first. The candidate set is the union of four sources:

  1. the posting memo (vS or vF) — Section 9 considerations & focus areas + the material risk-flags grid;
  2. the IC debrief punchlist — the ## Initial DD Seed plus the four stable section headers ## Diligence Requests, ## Company Data Requests, ## Analyses to Perform, ## Expert Routing; treat the seed as a partial seed by design, never assume it is complete;
  3. the kick-off list if one exists — optional. Non-Wells debt-advisor / traditional-sponsor deals often open with a VDR / curated package and never had a P3 kick-off. Work with or without it; if absent, the baseline is memo + debrief + narrative only — state that assumption, do not invent an "asked" history;
  4. the dl-databook-narrative output — narrative items filtered to consideration/critical severity with the DD list as a consumer; data-gap items become data requests (section 2), all other categories become diligence questions (section 1) routed to their framework-spine group. The severity filter, the category → group routing table, the basis-consumed-never-echoed discipline, the narrative_seed internal ledger, and the absent-narrative degradation (record the named narrative_basis = "absent_*" reason; build from candidates 1–3 only) are specified in the "Consuming the dl-databook-narrative output" section of reference/dd-list-construction.md — follow it exactly.

Also read the debrief ## Considerations Reconciliation (drives Step 2).

STEP 2 — APPLY THE IC DISPOSITIONS

From the debrief ## Considerations Reconciliation:

  • rejectedKILL (omit entirely; do not ask it).
  • addedNEW (include — IC-driven, absent from the memo).
  • qualified_expandedAMEND (reword to the IC's narrowed/broadened scope, not the memo's original wording).
  • confirmedKEEP IF LIVE (keep only if still credit-critical and outstanding).

dl-databook-narrative items are not subject to IC dispositions directly (the IC saw the posting memo, not the analytical workbooks). A narrative item that would have been rejected by IC if the IC had seen it (e.g., a consideration-severity item the IC already de-prioritized in the debrief on a different basis) is killed at Step 4 (editorial selection) rather than at Step 2 — record the kill reason as ic_rejected_equivalent in the ledger.

Record each candidate's source and disposition (and for narrative items, the consumed_as decision: diligence_question / data_request / dropped_with_reason) in the reconciliation ledger (the verifiable intermediate — see the schema, Step 6).

STEP 3 — RECONCILE RECEIVED VS. OUTSTANDING

Scan the Overland SharePoint deal folder through the Microsoft 365 connector (fully-qualified <Microsoft365 server>:<tool> names, resolved against the connected server's tool surface — see reference/population-mechanics.md). Classify each candidate received, outstanding, or partially_received by deal-team judgment, not string equality (a "Project Falcon - QoE vF.pdf" satisfies "Quality-of-Earnings report"). received → omit from the outbound list; partially_received → reword to ask only the gap; outstanding → include.

Graceful degradation (required). Connector not connected / folder not found / error → inventory_basis = "document_index", reconcile against the project ACTIVE DOCUMENT INDEX (or an uploaded manifest), emit [INSUFFICIENT DATA — SharePoint deal folder not accessible; reconciliation based on the provided document index]. Neither available → items default to outstanding, inventory_basis = "none_provided", with the marker. Never silently treat unknown as received — a false received drops a real diligence ask. Read-only: no write-back.

STEP 4 — PRIORITIZE + STAGE-1 EDITORIAL SELECTION

Order question groups to the Overland framework spine (reference/dd-list-construction.md), most-critical-credit → least, re-ranked per deal so an IC-Red/Orange-flagged or memo-material issue rises to the top. Within a group, criticality order. Then Stage-1 editorial selection: omit confirmatory and non-critical items entirely — keep only credit-critical questions/requests. This is a credit-judgment call, not a space optimization, and it never trades away a genuinely critical item. Stage-2 typographic auto-fit (Step 6), not omission, absorbs slight overflow of all-deserving content.

STEP 5 — DRAFT TO THE QUESTION-STYLE DISCIPLINE (with gap-aware sharpening)

  • Each diligence item is a question (interrogative, ends in ?), 1–2 lines max, direct and specific (name the figure/period). No "please provide / please discuss / please confirm".
  • Related sub-questions → sub-bullets under the parent (rendered at the template's defined sub-level by the script), never separate top-level items.
  • Each data request is one line, a succinct off-the-shelf ask (section 2), not a question.

Gap-aware drafting (the chronology dividend)

Running the analytical workbooks before the DD list lets you draft evidence-backed questions a DD list assembled from memo + debrief alone couldn't write. For each narrative-sourced candidate: use the basis to sharpen (pull the specific dollar / % / period the basis cites into the question text); strip the citation (the question reveals only the credit concern + the figure — never "FinInputs!V48", a model field name, or a CIM page citation; the basis stays in the internal narrative_seed ledger); and strip the severity / category labels (internal classification metadata, never outbound). The worked good/bad rewrites and the full gap-aware phrasing discipline are in reference/dd-list-construction.md — both the style discipline and the "Consuming the dl-databook-narrative output" section.

Build the content dict per the skill's output schema: company_name, sponsor, as_of_date, list_mode (= "Initial"), diligence_questions ({question, sub_questions}), data_requests. Also record the narrative_seed[] ledger entries + narrative_basis provenance on the structured output (internal capture; not script-read).

STEP 6 — POPULATE THE TEMPLATE

Follow reference/population-mechanics.md exactly: write the content dict to JSON, run scripts/populate_dd_list.py <content.json> <output.docx> in [Initial] mode. The script edits the bundled asset in place, renders sub-questions at the template's defined sub-level, runs the Stage-2 auto-fit (lightest tier whose estimate ≤ one page; 9.0 pt floor; overflow flagged not silently absorbed), and prints a JSON line with page_fit / page_fit_note / applied_font_pt. Name the output <Company>_-_Wells_&_Overland_Initial_DD_List_<MM-DD-YY>_vS.docx and return it via present_files.

Verify before returning: page_fit is default/compressed, or overflow_flagged is set and surfaced for human review (never an unreported overflow); applied_font_pt ≥ 9.0; no [X] residue; the [Initial] toggle resolved in both body headers and the running header; Page | 1 footer intact; header company/sponsor/date substituted; no RESTRICTED/ IC-deliberation string in the rendered .docx text. Record page_fit / page_fit_note / applied_font_pt and the reconciliation ledger on the structured output.

Degrees of freedom

Template population and the Stage-2 typographic auto-fit are low freedom — fragile and consistency-critical, so they are scripted and not varied by hand. The received/outstanding reconciliation and the IC-disposition classification are medium freedom — bounded judgment recorded in the reconciliation ledger. Question drafting, framework grouping, and the Stage-1 criticality-driven omission are high freedom — context-dependent credit judgment grounded in the framework spine.

Classification & review state

The Initial DD list is an outbound Word document issued to the sponsor / debt advisor and shared with the co-lender (CONFIDENTIAL). It reads RESTRICTED (the IC debrief) and CONFIDENTIAL/MNPI (the narrative) inputs but emits the internal data of neither — no IC deliberation, votes, return thresholds, or fund/portfolio economics, and no internal workbook citations, manifest field names, or severity/category labels in the outbound text. The output is a draft pending human review: the draft signal is the vS filename suffix — no [DRAFT — HUMAN REVIEW REQUIRED] banner in the .docx body, because the file is an in-place-edited production template and a banner would corrupt the outbound artifact. A human reviewer approves before the list is issued; never issue or finalize. [INSUFFICIENT DATA — <what is missing>] marks any gap — never fabricate.

Runtime

The population script runs where Python is available: Claude Desktop or claude.ai with code execution enabled. In the Word add-in (or any chat without code execution), do not rebuild the list in-document — the template's style-driven numbering and the typographic auto-fit only exist in the script; say so and direct the user to Claude Desktop. For the Step 3 SharePoint scan, use the Microsoft 365 connector with fully-qualified Server:tool names; confirm the server name at first invocation, and degrade to the document index (or outstanding-by-default with the marker) when it is unavailable. Candidate assembly, dispositions, and question drafting work anywhere.

Install via CLI
npx skills add https://github.com/jaminator/DL-Skills-Library --skill dl-ddq-initial
Repository Details
star Stars 0
call_split Forks 0
navigation Branch main
article Path SKILL.md
More from Creator