Dive Tag
Goal
Maintain a lightweight, cumulative knowledge graph while coding by:
- Adding
@divecomments near meaningful logic - Maintaining project metadata in
.dive/overview.mdand.dive/modules/*.md
Use this skill automatically whenever you modify code.
Required Outputs
1) File-level headers
At the top of any source file you create or substantially modify, add:
@dive-file: <what this file is responsible for>
@dive-rel: <relationship to another file/module/dependency>
@dive-rel: <another relationship, if relevant>
Comment syntax must match the language:
- Rust/JS/TS/Go/Java/C/C++/C#:
// - Python/Shell/Ruby/YAML/TOML:
# - HTML/XML/Markdown:
<!-- -->
Examples:
// @dive-file: Validates JWT tokens and creates auth context for requests.
// @dive-rel: Called by src/api/middleware.rs for every authenticated route.
// @dive-rel: Uses src/auth/session.rs to reject revoked sessions.
2) Inline tags
Add @dive: comments for non-trivial logic you write or change.
Format:
@dive: <plain-English behavior and outcome>
Good:
@dive: Normalizes user input so lookup is case-insensitive@dive: Retries DB write once when the first attempt times out
Avoid:
- Restating syntax
- Vague notes like "does stuff"
- Tagging every trivial line
3) System metadata
Create/update .dive/overview.md at the project root.
Required structure:
# System Overview
<brief system description>
## Components
- **<Component>** - <responsibility> -> <path>
## Relationships
- <Component A> -> <Component B>: <how they interact>
4) Module metadata
Create/update .dive/modules/<module>.md for modules affected by your changes.
Required structure:
# <Module> Module
<module purpose>
## Files
- `<relative/path>` - <file responsibility>
## Relationships
- <file A> -> <file B>: <dependency or call flow>
Operating Rules
- Keep paths project-relative (for example
src/auth/jwt.rs). - Update metadata incrementally when behavior changes.
- Preserve existing useful entries; refine instead of replacing wholesale.
- Prefer directional relationships (
A -> BorA <- B) with short context. - If
.dive/does not exist, create it withoverview.mdandmodules/. - If uncertain, write conservative descriptions and avoid guessing internals.
Minimal Workflow
- Read existing
.dive/overview.mdand relevant.dive/modules/*.mdif present. - Implement code changes.
- Add/update file headers and inline
@dive:tags in touched files. - Update
.dive/overview.mdif component boundaries or interactions changed. - Update relevant
.dive/modules/*.mdfor touched files and relationships.
Completion Checklist
- Touched files include accurate
@dive-fileand@dive-relheaders - New or changed logic includes meaningful
@dive:comments .dive/overview.mdexists and reflects current component structure.dive/modules/*.mdexists for touched modules and links to real files
Source: iantbutler01/code_diver — distributed by TomeVault.