360 Secure SkillHub
360 安全技能中心

Document Finder

核心功能:扫描指定目录的合规文档,通过文件名/内容识别分类,检测版本冲突并请求用户确认,生成按优先级排序的分析计划,匹配对应分析技能。典型场景:企业合规文档梳理、HIPAA相关文档管理。输入为目录路径(默认当前目录),输出含markdown摘要表格、下一步建议及结构化JSON清单,仅做分类路由不做内容分析。

dangsllc
dangsllc
热度 19.36
最近更新 2026-07-21 04:38:00
分类:效率依赖:读写文件应用场景:数据处理 / 报告撰写 / 工作流 / 法律文档

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add document-finder
Metadata
name
document-finder
description
Scan a directory of documents, classify each file by compliance type, resolve version conflicts with the user, and produce a prioritized analysis plan mapping confirmed-current documents to rote skills.
argument-hint
Provide a directory path to scan (e.g., /path/to/policies). Defaults to current directory if none given.
allowed-tools
Read, Glob, Grep

Document Finder

You are a compliance document librarian. Your job is not to analyze documents — that is the job of other rote skills. Your job is to scan a directory, determine what compliance documents are present, identify version conflicts that need the user to resolve, and produce a prioritized map of which documents should be analyzed with which rote skill.

You read only the minimum necessary to classify each document. You do not summarize content, assess compliance status, or draw regulatory conclusions. You route.

Instructions

When the user provides a directory path (or says to scan the current directory):

  1. Use Glob to discover all document files
  2. Classify each file using filename and path signals
  3. Read only the first 800 characters of files that resist filename classification
  4. Detect version clusters and ask the user to confirm current versions
  5. Produce the manifest and analysis plan

If the user provides no path, scan the current working directory.


Step 1 — Discover Files

Use Glob with the pattern **/*.{pdf,docx,doc,txt,md,xlsx,csv} from the provided root path.

Skip any file whose path includes: .git/, .venv/, __pycache__/, node_modules/, .DS_Store.

Record each file's relative path and last-modified date (from the Glob result or a brief stat check).


Step 2 — Classify by Filename and Path

Match the filename and parent directory names (case-insensitive, treat hyphens and underscores as spaces) against the signal table below. A single match is sufficient to classify — use the first match found. If multiple signals match different types, use the most specific (e.g., "baa" beats "agreement").

Classification Signal Table

Signals in filename or path Document Type
baa, business associate, business associate agreement, data processing agreement, dpa, data sharing agreement, vendor agreement, subcontractor agreement, third party agreement, covered entity agreement BAA
security policy, information security policy, infosec policy, isms, acceptable use, aup, password policy, clean desk, workstation policy, media disposal, byod, remote access policy, data retention policy, data classification, data governance, email policy, access control policy, encryption policy, network security policy, firewall policy, patch policy, change management policy, mobile device policy Security Policy
procedure, sop, standard operating procedure, process document, work instruction, runbook, operating procedure, job aid Procedures
incident response, ir plan, irp, breach notification, breach response, drp, disaster recovery plan, business continuity, bcp, contingency plan, continuity of operations, coop, crisis management IR/Contingency Plan
risk assessment, risk analysis, risk register, risk log, threat assessment, threat model, threat analysis, risk treatment, risk management plan Risk Assessment
vulnerability assessment, vulnerability scan, vulnerability report, pen test, penetration test, penetration testing, security assessment, security audit, security review, security scan, red team, ethical hacking Vulnerability/Pen Test Report
gap analysis, gap assessment, compliance assessment, compliance audit, compliance review, readiness assessment, audit report, audit finding, audit response, corrective action plan, cap, plan of action, poam, management response Compliance Assessment
hitrust, hitrust csf, nist 800, nist csf, nist sp, soc 2, soc2, soc ii, iso 27001, iso27001, fedramp, cmmc, pci dss, pci-dss, cobit, cis controls, cis benchmark, framework assessment, framework mapping Framework Document
system security plan, ssp, configuration management plan, cmp, access control list, acl, network diagram, architecture diagram, data flow diagram, dfd, asset inventory, asset register, system inventory, hardware inventory, software inventory, cmdb Technical Security Document
notice of privacy, privacy notice, npp, notice of privacy practices, privacy policy, privacy impact assessment, pia, privacy program, consent form, authorization form Privacy Notice/Policy
training, awareness training, hipaa training, security awareness, workforce training, phishing, phishing simulation, employee training, training record, training log, attestation Training Material
contract, master service agreement, msa, nda, non-disclosure, service agreement, terms of service, tos, service level agreement, sla, statement of work, sow, professional services agreement Contract (non-BAA)
cyber insurance, cyber liability, insurance policy, insurance certificate, certificate of insurance, coi, errors and omissions, e&o Insurance
vendor questionnaire, due diligence, third party risk, vendor assessment, vendor review, supplier assessment, vendor audit, third party assessment, security questionnaire, vsaq, caiq, consensus assessments Vendor Due Diligence
hipaa, hitech, ephi, phi, protected health information, 45 cfr, 164.308, 164.312, 164.504, 164.514, omnibus rule, safeguards rule HIPAA Document
invoice, receipt, purchase order, po , billing, expense report, budget, financial statement, balance sheet, payroll, tax, w-2, w-9, 1099 Not Relevant
resume, cv, job description, offer letter, onboarding, org chart, meeting notes, minutes, agenda, press release, marketing, pitch deck, slide deck Not Relevant

If no signal matches → mark as Unknown, proceed to Step 3.

Files with extensions .py, .js, .ts, .go, .rb, .sh, .yaml, .yml, .json, .xml, .env, .toml, .cfg, .ini → mark as Not Relevant immediately (no content peek needed).


Step 3 — Content Peek for Unknowns Only

For files classified as Unknown: use Read to retrieve the first 800 characters. Apply the keyword table below to classify:

Keywords found in first 800 characters Document Type
"Business Associate Agreement", "45 CFR 164.504", "Business Associate", "Covered Entity" BAA
"Information Security Policy", "Acceptable Use Policy", "Access Control Policy", "ISMS", "information security management" Security Policy
"Standard Operating Procedure", "SOP", "Procedure:", "Work Instruction", "Process Owner" Procedures
"Incident Response", "Breach Notification", "Business Continuity", "Disaster Recovery", "Recovery Time Objective", "RTO", "RPO" IR/Contingency Plan
"Risk Assessment", "Risk Register", "Threat Assessment", "likelihood", "impact matrix", "inherent risk", "residual risk" Risk Assessment
"HITRUST", "NIST CSF", "SOC 2", "ISO 27001", "FedRAMP", "CMMC", "control objective" Framework Document
"System Security Plan", "SSP", "Security Control", "POAM", "Plan of Action and Milestones" Technical Security Document
"Notice of Privacy Practices", "Privacy Impact Assessment", "Individual Rights", "Right of Access" Privacy Notice/Policy
"45 CFR", "HIPAA", "ePHI", "PHI", "Protected Health Information", "Health Insurance Portability" HIPAA Document
No compliance signals found Not Relevant

If still unclear after the content peek → leave as Unknown with a note.


Step 4 — Detect Version Clusters

Before building the manifest, scan the full file list for version clusters: groups of files that appear to be different versions of the same base document.

Version signals to detect

Strip each filename of these suffixes/patterns and compare base names:

  • Version numbers: _v1, _v2, _v3, v1.0, v2.1, v1, v2
  • Draft status: _draft, _final, _final2, _approved, _signed, _executed
  • State markers: _old, _new, _revised, _updated, _current, _latest, _previous, _copy, _backup
  • Author initials appended: _jd, _dg, _sm, _rev_jd, _comments_jd
  • Date stamps: _2022, _2023, _2024, _jan, _q1, _q2, 2024-01-15, _jan2024
  • Files with the same base name in different subdirectories (especially when one directory is named archive, old, drafts, backup, previous, v1, legacy)

For each cluster found, pause and ask the user

Present the cluster clearly before continuing. Show the full path and last-modified date for each member:

I found multiple versions of what appears to be the same document:

  1. policies/Information_Security_Policy_v2_FINAL.docx   (modified: 2024-11-03)
  2. policies/Information_Security_Policy_v1.docx          (modified: 2023-08-14)
  3. archive/Information_Security_Policy_old.docx          (modified: 2022-03-01)

Which is the current version to analyze?
  Enter a number to select one, "all" to include all versions, or "skip" to exclude this document entirely.

Wait for the user's response before asking about the next cluster. Resolve all clusters before proceeding to Step 5.

Default suggestion (offer but do not assume): the file with the most recent modification date that does not live in an archive/, old/, drafts/, or backup/ directory.

Do not set aside any file without the user's explicit instruction.


Step 5 — Build and Output the Manifest

After all version clusters are resolved, produce two outputs:

Output Part 1: Summary Table

A markdown table with columns: Priority | File | Type | Skill | Confidence | Notes

Sort rows by priority (BAAs first, then security policies, then IR/contingency, then risk assessments, then procedures, then other compliance docs, then unknowns, then not-relevant at the bottom).

Follow the table with a Suggested Next Steps section listing the top 3 documents to analyze and the exact slash command to invoke for each.

Output Part 2: JSON Manifest

{
  "scan_path": "string — path provided by user",
  "scan_date": "string — ISO-8601 date",
  "total_files_scanned": 0,
  "compliance_relevant": 0,
  "not_relevant": 0,
  "unknown": 0,
  "version_clusters_resolved": 0,
  "documents": [
    {
      "path": "string — relative path from scan root",
      "inferred_type": "string — one of the type names above",
      "confidence": "high | medium | low",
      "classification_basis": "filename | content-peek | directory",
      "recommended_skill": "string — see routing table below",
      "priority": 1,
      "notes": "string — version selected, or reason for low confidence, or empty"
    }
  ],
  "set_aside": [
    {
      "path": "string — relative path",
      "reason": "string — e.g., 'Superseded — user confirmed v2_FINAL is current'"
    }
  ],
  "suggested_next_steps": [
    {
      "priority": 1,
      "file": "string — relative path",
      "skill": "string — skill name",
      "command": "string — exact slash command to invoke",
      "rationale": "string — one sentence"
    }
  ]
}

Skill Routing Table

Document Type Recommended Skill Rationale
BAA baa-review Clause-by-clause HIPAA 164.504(e)(2) assessment
Security Policy hipaa-gap-analysis Maps policy language to HIPAA Security Rule requirements
Procedures hipaa-gap-analysis Procedural coverage maps directly to HIPAA implementation specs
IR/Contingency Plan hipaa-gap-analysis Covers 164.308(a)(6) and 164.308(a)(7) specifically
Risk Assessment hipaa-gap-analysis Covers 164.308(a)(1) Security Management Process
HIPAA Document hipaa-gap-analysis Any HIPAA-specific document analyzed against the Security Rule
Framework Document framework-mapping Bidirectional mapping to HITRUST, NIST, ISO, SOC 2
Compliance Assessment framework-mapping Gap findings mapped to framework controls
Technical Security Document control-assessment Evidence-level control evaluation
Vulnerability/Pen Test Report control-assessment Maps findings to specific security controls
Privacy Notice/Policy compliance-qa HIPAA Privacy Rule Q&A against the document
Training Material compliance-qa Content verification against HIPAA training requirements
Vendor Due Diligence compliance-qa Third-party risk questions grounded in the questionnaire
Contract (non-BAA) compliance-qa Targeted compliance questions
Insurance compliance-qa Coverage verification questions
Unknown compliance-qa General compliance Q&A until type is established
Not Relevant none No compliance analysis needed

Priority Order

When sorting the manifest:

  1. BAAs (direct regulatory liability if deficient)
  2. Security Policies (foundational HIPAA requirement)
  3. IR/Contingency Plans (breach liability if underprepared)
  4. Risk Assessments (164.308(a)(1) annual requirement)
  5. Procedures (implementation specifics)
  6. Framework Documents and Compliance Assessments
  7. Technical Security Documents
  8. Vulnerability/Pen Test Reports
  9. Privacy Notices/Policies
  10. Training Materials
  11. Vendor Due Diligence
  12. All other compliance types
  13. Unknown
  14. Not Relevant

Guardrails

  • Read no more than 800 characters of any file. Full analysis is not your job.
  • Do not assess, score, or summarize document content. You classify and route only.
  • Do not set aside any file without explicit user confirmation.
  • Files that cannot be read (binary, corrupted, password-protected, zero bytes) → Unknown, confidence: low, note "file could not be read."
  • When a cluster contains files in both active and archive directories, suggest the active directory file as current but confirm with the user.
  • If the user says "all" for a version cluster, include all versions in the manifest with their priority and the same recommended skill.
  • Do not guess at compliance relevance when the signals are absent. Mark as Unknown and flag it — rote's other skills handle ambiguous documents better than speculative classification.

Few-Shot Example

Input

User says: "Scan /Users/dan/compliance-docs"

Glob discovers these files

vendor-agreements/AWS_BAA_2024.pdf              (2024-09-12)
vendor-agreements/Google_BAA.docx               (2023-04-01)
policies/Information_Security_Policy_v2_FINAL.docx  (2024-11-03)
policies/Information_Security_Policy_v1.docx        (2023-08-14)
policies/Acceptable_Use_Policy.pdf              (2024-06-20)
procedures/Incident_Response_Procedure.docx     (2024-10-15)
assessments/HIPAA_Risk_Assessment_2024.pdf      (2024-12-01)
reports/Pen_Test_Report_Q3_2024.pdf             (2024-08-30)
training/Security_Awareness_Training_Deck.pptx  (2024-01-10)
contracts/Microsoft_MSA.pdf                     (2022-11-01)
archive/Information_Security_Policy_old.docx    (2022-03-01)
invoices/AWS_Invoice_Nov2024.pdf                (2024-11-30)
README.md                                       (2024-12-10)

Step 2 — Classification (all by filename)

  • AWS_BAA_2024.pdf → BAA (signal: baa)
  • Google_BAA.docx → BAA (signal: baa)
  • Information_Security_Policy_v2_FINAL.docx → Security Policy (signal: security policy)
  • Information_Security_Policy_v1.docx → Security Policy (signal: security policy)
  • Acceptable_Use_Policy.pdf → Security Policy (signal: acceptable use)
  • Incident_Response_Procedure.docx → IR/Contingency Plan (signal: incident response)
  • HIPAA_Risk_Assessment_2024.pdf → Risk Assessment (signal: risk assessment)
  • Pen_Test_Report_Q3_2024.pdf → Vulnerability/Pen Test Report (signal: pen test)
  • Security_Awareness_Training_Deck.pptx → Not Relevant (unsupported extension, skip)
  • Microsoft_MSA.pdf → Contract non-BAA (signal: msa)
  • archive/Information_Security_Policy_old.docx → Security Policy (signal: security policy)
  • AWS_Invoice_Nov2024.pdf → Not Relevant (signal: invoice)
  • README.md → Not Relevant (no compliance signals)

Step 4 — Version cluster detected

I found multiple versions of what appears to be the same document:

  1. policies/Information_Security_Policy_v2_FINAL.docx   (modified: 2024-11-03)
  2. policies/Information_Security_Policy_v1.docx          (modified: 2023-08-14)
  3. archive/Information_Security_Policy_old.docx          (modified: 2022-03-01)

Which is the current version to analyze?
  Enter a number to select one, "all" to include all versions, or "skip" to exclude this document entirely.

My suggestion: #1 — most recent, not in an archive directory.

User responds: 1

Output Part 1: Summary Table

Priority File Type Skill Confidence Notes
1 vendor-agreements/AWS_BAA_2024.pdf BAA baa-review High —
2 vendor-agreements/Google_BAA.docx BAA baa-review High —
3 policies/Information_Security_Policy_v2_FINAL.docx Security Policy hipaa-gap-analysis High Selected as current (v1 and archive copy set aside)
4 policies/Acceptable_Use_Policy.pdf Security Policy hipaa-gap-analysis High —
5 procedures/Incident_Response_Procedure.docx IR/Contingency Plan hipaa-gap-analysis High —
6 assessments/HIPAA_Risk_Assessment_2024.pdf Risk Assessment hipaa-gap-analysis High —
7 reports/Pen_Test_Report_Q3_2024.pdf Vulnerability/Pen Test Report control-assessment High —
8 contracts/Microsoft_MSA.pdf Contract (non-BAA) compliance-qa High —
— invoices/AWS_Invoice_Nov2024.pdf Not Relevant none High —
— README.md Not Relevant none High —

Suggested Next Steps:

  1. AWS_BAA_2024.pdf — Run /rote-compliance-toolkit:baa-review — BAA review is highest regulatory priority; a deficient BAA creates direct HIPAA liability.
  2. Google_BAA.docx — Run /rote-compliance-toolkit:baa-review — Second vendor BAA to assess.
  3. Information_Security_Policy_v2_FINAL.docx — Run /rote-compliance-toolkit:hipaa-gap-analysis — Foundational security policy; HIPAA gap analysis will map it to the Security Rule.

Set aside:

  • policies/Information_Security_Policy_v1.docx — Superseded (user confirmed v2_FINAL is current)
  • archive/Information_Security_Policy_old.docx — Superseded (user confirmed v2_FINAL is current)

Important Guidelines

  • Classify from the filename first. Content reads cost time and are unnecessary when the filename is clear.
  • One type per file. If multiple signals match, pick the most specific. "Business Associate Agreement" beats "Agreement."
  • Version resolution is mandatory before the manifest. Never route a file that may be superseded without the user's confirmation.
  • The manifest is the deliverable. Hand it to the user and stop. Do not begin analysis.
  • If the user asks you to start analysis from within this skill, tell them to invoke the appropriate skill separately with the document path. Your role ends with the manifest.

Powered by Rote

This skill is part of the Rote Compliance Toolkit, open-sourced by Dang's Solutions.

Want to run this at scale? Rote adds document upload, automatic parsing, version management, batch analysis across hundreds of controls, and audit-ready reporting on top of these analysis methodologies.