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-financials → dl-databook-charts → dl-databook-kpi →
dl-databook-model → dl-databook-narrative → dl-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 falsereceived.
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:
- the posting memo (vS or vF) — Section 9 considerations & focus areas + the material risk-flags grid;
- the IC debrief punchlist — the
## Initial DD Seedplus 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; - 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;
- the
dl-databook-narrativeoutput — 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, thenarrative_seedinternal ledger, and the absent-narrative degradation (record the namednarrative_basis = "absent_*"reason; build from candidates 1–3 only) are specified in the "Consuming the dl-databook-narrative output" section ofreference/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:
rejected→ KILL (omit entirely; do not ask it).added→ NEW (include — IC-driven, absent from the memo).qualified_expanded→ AMEND (reword to the IC's narrowed/broadened scope, not the memo's original wording).confirmed→ KEEP 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.