|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300 |
- # Deep-Dive Documentation Instructions
-
- <workflow>
-
- <critical>This workflow performs exhaustive deep-dive documentation of specific areas</critical>
- <critical>Handles: deep_dive mode only</critical>
- <critical>YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the configured `{communication_language}`</critical>
- <critical>YOU MUST ALWAYS WRITE all artifact and document content in `{document_output_language}`</critical>
-
- <step n="13" goal="Deep-dive documentation of specific area" if="workflow_mode == deep_dive">
- <critical>Deep-dive mode requires literal full-file review. Sampling, guessing, or relying solely on tooling output is FORBIDDEN.</critical>
- <action>Load existing project structure from index.md and project-parts.json (if exists)</action>
- <action>Load source tree analysis to understand available areas</action>
-
- <step n="13a" goal="Identify area for deep-dive">
- <action>Analyze existing documentation to suggest deep-dive options</action>
-
- <ask>What area would you like to deep-dive into?
-
- **Suggested Areas Based on Project Structure:**
-
- {{#if has_api_routes}}
-
- ## API Routes ({{api_route_count}} endpoints found)
-
- {{#each api_route_groups}}
- {{group_index}}. {{group_name}} - {{endpoint_count}} endpoints in `{{path}}`
- {{/each}}
- {{/if}}
-
- {{#if has_feature_modules}}
-
- ## Feature Modules ({{feature_count}} features)
-
- {{#each feature_modules}}
- {{module_index}}. {{module_name}} - {{file_count}} files in `{{path}}`
- {{/each}}
- {{/if}}
-
- {{#if has_ui_components}}
-
- ### UI Component Areas
-
- {{#each component_groups}}
- {{group_index}}. {{group_name}} - {{component_count}} components in `{{path}}`
- {{/each}}
- {{/if}}
-
- {{#if has_services}}
-
- ### Services/Business Logic
-
- {{#each service_groups}}
- {{service_index}}. {{service_name}} - `{{path}}`
- {{/each}}
- {{/if}}
-
- **Or specify custom:**
-
- - Folder path (e.g., "client/src/features/dashboard")
- - File path (e.g., "server/src/api/users.ts")
- - Feature name (e.g., "authentication system")
-
- Enter your choice (number or custom path):
- </ask>
-
- <action>Parse user input to determine: - target_type: "folder" | "file" | "feature" | "api_group" | "component_group" - target_path: Absolute path to scan - target_name: Human-readable name for documentation - target_scope: List of all files to analyze
- </action>
-
- <action>Store as {{deep_dive_target}}</action>
-
- <action>Display confirmation:
- Target: {{target_name}}
- Type: {{target_type}}
- Path: {{target_path}}
- Estimated files to analyze: {{estimated_file_count}}
-
- This will read EVERY file in this area. Proceed? [y/n]
- </action>
-
- <action if="user confirms 'n'">Return to Step 13a (select different area)</action>
- </step>
-
- <step n="13b" goal="Comprehensive exhaustive scan of target area">
- <action>Set scan_mode = "exhaustive"</action>
- <action>Initialize file_inventory = []</action>
- <critical>You must read every line of every file in scope and capture a plain-language explanation (what the file does, side effects, why it matters) that future developer agents can act on. No shortcuts.</critical>
-
- <check if="target_type == folder">
- <action>Get complete recursive file list from {{target_path}}</action>
- <action>Filter out: node_modules/, .git/, dist/, build/, coverage/, *.min.js, *.map</action>
- <action>For EVERY remaining file in folder:
- - Read complete file contents (all lines)
- - Extract all exports (functions, classes, types, interfaces, constants)
- - Extract all imports (dependencies)
- - Identify purpose from comments and code structure
- - Write 1-2 sentences (minimum) in natural language describing behaviour, side effects, assumptions, and anything a developer must know before modifying the file
- - Extract function signatures with parameter types and return types
- - Note any TODOs, FIXMEs, or comments
- - Identify patterns (hooks, components, services, controllers, etc.)
- - Capture per-file contributor guidance: `contributor_note`, `risks`, `verification_steps`, `suggested_tests`
- - Store in file_inventory
- </action>
- </check>
-
- <check if="target_type == file">
- <action>Read complete file at {{target_path}}</action>
- <action>Extract all information as above</action>
- <action>Read all files it imports (follow import chain 1 level deep)</action>
- <action>Find all files that import this file (dependents via grep)</action>
- <action>Store all in file_inventory</action>
- </check>
-
- <check if="target_type == api_group">
- <action>Identify all route/controller files in API group</action>
- <action>Read all route handlers completely</action>
- <action>Read associated middleware, controllers, services</action>
- <action>Read data models and schemas used</action>
- <action>Extract complete request/response schemas</action>
- <action>Document authentication and authorization requirements</action>
- <action>Store all in file_inventory</action>
- </check>
-
- <check if="target_type == feature">
- <action>Search codebase for all files related to feature name</action>
- <action>Include: UI components, API endpoints, models, services, tests</action>
- <action>Read each file completely</action>
- <action>Store all in file_inventory</action>
- </check>
-
- <check if="target_type == component_group">
- <action>Get all component files in group</action>
- <action>Read each component completely</action>
- <action>Extract: Props interfaces, hooks used, child components, state management</action>
- <action>Store all in file_inventory</action>
- </check>
-
- <action>For each file in file\*inventory, document: - **File Path:** Full path - **Purpose:** What this file does (1-2 sentences) - **Lines of Code:** Total LOC - **Exports:** Complete list with signatures
-
- - Functions: `functionName(param: Type): ReturnType` - Description
- - Classes: `ClassName` - Description with key methods
- - Types/Interfaces: `TypeName` - Description
- - Constants: `CONSTANT_NAME: Type` - Description - **Imports/Dependencies:** What it uses and why - **Used By:** Files that import this (dependents) - **Key Implementation Details:** Important logic, algorithms, patterns - **State Management:** If applicable (Redux, Context, local state) - **Side Effects:** API calls, database queries, file I/O, external services - **Error Handling:** Try/catch blocks, error boundaries, validation - **Testing:** Associated test files and coverage - **Comments/TODOs:** Any inline documentation or planned work
- </action>
-
- <template-output>comprehensive_file_inventory</template-output>
- </step>
-
- <step n="13c" goal="Analyze relationships and data flow">
- <action>Build dependency graph for scanned area:
- - Create graph with files as nodes
- - Add edges for import relationships
- - Identify circular dependencies if any
- - Find entry points (files not imported by others in scope)
- - Find leaf nodes (files that don't import others in scope)
- </action>
-
- <action>Trace data flow through the system: - Follow function calls and data transformations - Track API calls and their responses - Document state updates and propagation - Map database queries and mutations
- </action>
-
- <action>Identify integration points: - External APIs consumed - Internal APIs/services called - Shared state accessed - Events published/subscribed - Database tables accessed
- </action>
-
- <template-output>dependency_graph</template-output>
- <template-output>data_flow_analysis</template-output>
- <template-output>integration_points</template-output>
- </step>
-
- <step n="13d" goal="Find related code and similar patterns">
- <action>Search codebase OUTSIDE scanned area for:
- - Similar file/folder naming patterns
- - Similar function signatures
- - Similar component structures
- - Similar API patterns
- - Reusable utilities that could be used
- </action>
-
- <action>Identify code reuse opportunities: - Shared utilities available - Design patterns used elsewhere - Component libraries available - Helper functions that could apply
- </action>
-
- <action>Find reference implementations: - Similar features in other parts of codebase - Established patterns to follow - Testing approaches used elsewhere
- </action>
-
- <template-output>related_code_references</template-output>
- <template-output>reuse_opportunities</template-output>
- </step>
-
- <step n="13e" goal="Generate comprehensive deep-dive documentation">
- <action>Create documentation filename: deep-dive-{{sanitized_target_name}}.md</action>
- <action>Aggregate contributor insights across files:
- - Combine unique risk/gotcha notes into {{risks_notes}}
- - Combine verification steps developers should run before changes into {{verification_steps}}
- - Combine recommended test commands into {{suggested_tests}}
- </action>
-
- <action>Load complete deep-dive template from: ../templates/deep-dive-template.md</action>
- <action>Fill template with all collected data from steps 13b-13d</action>
- <action>Write filled template to: {project_knowledge}/deep-dive-{{sanitized_target_name}}.md</action>
- <action>Validate deep-dive document completeness</action>
-
- <template-output>deep_dive_documentation</template-output>
-
- <action>Update state file: - Add to deep_dive_targets array: {"target_name": "{{target_name}}", "target_path": "{{target_path}}", "files_analyzed": {{file_count}}, "output_file": "deep-dive-{{sanitized_target_name}}.md", "timestamp": "{{now}}"} - Add output to outputs_generated - Update last_updated timestamp
- </action>
- </step>
-
- <step n="13f" goal="Update master index with deep-dive link">
- <action>Read existing index.md</action>
-
- <action>Check if "Deep-Dive Documentation" section exists</action>
-
- <check if="section does not exist">
- <action>Add new section after "Generated Documentation":
-
- ## Deep-Dive Documentation
-
- Detailed exhaustive analysis of specific areas:
-
- </action>
-
- </check>
-
- <action>Add link to new deep-dive doc:
-
- - [{{target_name}} Deep-Dive](./deep-dive-{{sanitized_target_name}}.md) - Comprehensive analysis of {{target_description}} ({{file_count}} files, {{total_loc}} LOC) - Generated {{date}}
- </action>
-
- <action>Update index metadata:
- Last Updated: {{date}}
- Deep-Dives: {{deep_dive_count}}
- </action>
-
- <action>Save updated index.md</action>
-
- <template-output>updated_index</template-output>
- </step>
-
- <step n="13g" goal="Offer to continue or complete">
- <action>Display summary:
-
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
-
- ## Deep-Dive Documentation Complete! ✓
-
- **Generated:** {project_knowledge}/deep-dive-{{target_name}}.md
- **Files Analyzed:** {{file_count}}
- **Lines of Code Scanned:** {{total_loc}}
- **Time Taken:** ~{{duration}}
-
- **Documentation Includes:**
-
- - Complete file inventory with all exports
- - Dependency graph and data flow
- - Integration points and API contracts
- - Testing analysis and coverage
- - Related code and reuse opportunities
- - Implementation guidance
-
- **Index Updated:** {project_knowledge}/index.md now includes link to this deep-dive
-
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- </action>
-
- <ask>Would you like to:
-
- 1. **Deep-dive another area** - Analyze another feature/module/folder
- 2. **Finish** - Complete workflow
-
- Your choice [1/2]:
- </ask>
-
- <action if="user selects 1">
- <action>Clear current deep_dive_target</action>
- <action>Go to Step 13a (select new area)</action>
- </action>
-
- <action if="user selects 2">
- <action>Display final message:
-
- All deep-dive documentation complete!
-
- **Master Index:** {project_knowledge}/index.md
- **Deep-Dives Generated:** {{deep_dive_count}}
-
- These comprehensive docs are now ready for:
-
- - Architecture review
- - Implementation planning
- - Code understanding
- - Brownfield PRD creation
-
- Thank you for using the document-project workflow!
- </action>
- <action>Run: `python3 {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --key workflow.on_complete` — if the resolved value is non-empty, follow it as the final terminal instruction before exiting.</action>
- <action>Exit workflow</action>
- </action>
- </step>
- </step>
-
- </workflow>
|