Claude-skill-registry document-types

Understand and work with mortgage document types and classification. Use when asking about document types, adding new document support, debugging classification, or understanding what DocType constants mean.

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/document-types" ~/.claude/skills/majiayu000-claude-skill-registry-document-types && rm -rf "$T"
manifest: skills/data/document-types/SKILL.md
source content

Mortgage Document Types

Purpose

Work with document classification in the mortgage underwriting system.

Document Type Constants

Located in

internal/model/document.go
:

Income Documents

ConstantDescriptionFilename Patterns
DocTypeW2
W-2 wage statements
*w2*
,
*w-2*
DocType1099
1099 contractor income
*1099*
DocTypePaystub
Pay stubs/earnings
*paystub*
,
*pay_stub*
,
*pay-stub*
,
*earnings*
DocTypeTaxReturn
Tax returns (1040)
*tax*
,
*1040*
DocTypeProfitLoss
P&L statements
*profit*
,
*p&l*
,
*pnl*
DocTypeEmploymentLetter
Employment verification
*employment*
,
*verification*

Asset Documents

ConstantDescriptionFilename Patterns
DocTypeBankStatement
Bank statements
*bank*
DocTypeAssetStatement
General assets
*asset*
DocTypeRetirementStmt
401k/IRA statements
*retirement*
,
*401k*
,
*ira*
DocTypeGiftLetter
Gift fund letters
*gift*

Credit Documents

ConstantDescriptionFilename Patterns
DocTypeCreditReport
Credit bureau reports
*credit*
DocTypeDebtPayoff
Debt payoff letters
*payoff*
,
*debt*

Collateral Documents

ConstantDescriptionFilename Patterns
DocTypeAppraisal
Property appraisals
*appraisal*
DocTypePurchaseContract
Purchase agreements
*purchase*
,
*contract*
DocTypeTitleReport
Title reports
*title*
DocTypePropertyInsurance
Hazard insurance
*insurance*
,
*hazard*
,
*homeowner*

Type Inference Logic

Located in

internal/document/store.go
:

// Files are classified by checking if filename contains pattern
lower := strings.ToLower(filepath.Base(path))
for pattern, docType := range patterns {
    if strings.Contains(lower, pattern) {
        return docType
    }
}

Adding a New Document Type

Step 1: Add constant to
internal/model/document.go

const (
    // ... existing types ...
    DocTypeNewType DocumentType = "new_type"
)

Step 2: Add pattern to
internal/document/store.go

patterns := map[string]model.DocumentType{
    // ... existing patterns ...
    "new_pattern": model.DocTypeNewType,
}

Step 3: Add to agent's document lists

In the relevant agent (e.g.,

internal/agent/income/income.go
):

func (a *Agent) RequiredDocuments() []model.DocumentType {
    return []model.DocumentType{
        model.DocTypeW2,
        model.DocTypeNewType,  // Add here
    }
}

Step 4: Update prompts

Update the agent's prompt to describe how to handle the new document type.

Document Structure

type Document struct {
    ID            string            // Hash-based unique ID
    ApplicationID string            // Loan application ID
    Type          DocumentType      // One of the DocType* constants
    FileName      string            // Original filename
    MimeType      string            // application/pdf, image/png, etc.
    FilePath      string            // Local filesystem path
    GeminiURI     string            // Cached Gemini File API URI
    UploadedAt    time.Time
    BorrowerID    string
    Year          int               // Tax year for tax docs
    Period        string            // Pay period for paystubs
    Metadata      map[string]string // Additional metadata
}

Supported MIME Types

From

internal/document/store.go:MimeTypeFromExtension
:

  • .pdf
    ->
    application/pdf
  • .png
    ->
    image/png
  • .jpg
    ,
    .jpeg
    ->
    image/jpeg
  • .gif
    ->
    image/gif
  • .webp
    ->
    image/webp

Related Files

  • internal/model/document.go
    - Type definitions
  • internal/document/store.go
    - Loading and type inference
  • cmd/underwriter/main.go
    - CLI type inference