docs(guidelines): Define Structural Dependency Mapping (SDM) convention
This commit is contained in:
@@ -65,6 +65,22 @@ is processed by AI agents, while preserving readability for human review.
|
|||||||
- Hard limit: None — let the formatter handle wrapping if needed.
|
- Hard limit: None — let the formatter handle wrapping if needed.
|
||||||
- Rationale: 80-char limits cause excessive line continuations that waste tokens.
|
- Rationale: 80-char limits cause excessive line continuations that waste tokens.
|
||||||
|
|
||||||
## 10. Main Guard
|
## 11. Structural Dependency Mapping (SDM)
|
||||||
|
|
||||||
- All executable files should have `if __name__ == "__main__":` calling `main()`.
|
To assist AI agents in evaluating refactoring impact across dynamic codebases, all major definitions SHOULD include terse SDM tags at the end of their docstrings.
|
||||||
|
|
||||||
|
- **Format:** Tags are enclosed in square brackets at the end of the docstring body.
|
||||||
|
- **For Functions/Methods:** `[C: CallerA, CallerB]` — List of primary internal callers within the codebase.
|
||||||
|
- **For State Variables:**
|
||||||
|
- `[M: File:Line, Method]` — List of primary mutation points (where the value is assigned).
|
||||||
|
- `[U: File]` — Major codepaths of use (where the value is read but not changed).
|
||||||
|
|
||||||
|
### Example:
|
||||||
|
```python
|
||||||
|
def start_services(self) -> None:
|
||||||
|
"""
|
||||||
|
Initialises background threads and MCP servers.
|
||||||
|
[C: App.run, _cb_load_project]
|
||||||
|
"""
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|||||||
@@ -38,3 +38,6 @@
|
|||||||
- **Indentation:** Exactly **1 space** per level. This minimizes token usage in nested structures.
|
- **Indentation:** Exactly **1 space** per level. This minimizes token usage in nested structures.
|
||||||
- **Newlines:** Maximum **one (1)** blank line between top-level definitions. **Zero (0)** blank lines within function or method bodies.
|
- **Newlines:** Maximum **one (1)** blank line between top-level definitions. **Zero (0)** blank lines within function or method bodies.
|
||||||
- **Type Hinting:** Mandatory, strict type hints for all parameters, return types, and global variables to ensure high-signal context for AI agents.
|
- **Type Hinting:** Mandatory, strict type hints for all parameters, return types, and global variables to ensure high-signal context for AI agents.
|
||||||
|
- **Structural Dependency Mapping (SDM):** All major state variables, methods, and functions MUST include terse dependency tags at the end of their docstrings for AI-assisted impact analysis.
|
||||||
|
- **Functions/Methods:** `[C: Caller1, Caller2]` (Primary callers).
|
||||||
|
- **State Variables:** `[M: File:Line, Method]` (Mutation points) and `[U: File]` (Major use paths).
|
||||||
|
|||||||
+1
-2
@@ -52,7 +52,7 @@ Response = false
|
|||||||
"Tool Calls" = false
|
"Tool Calls" = false
|
||||||
Theme = true
|
Theme = true
|
||||||
"Log Management" = true
|
"Log Management" = true
|
||||||
Diagnostics = true
|
Diagnostics = false
|
||||||
"External Tools" = false
|
"External Tools" = false
|
||||||
"Shader Editor" = false
|
"Shader Editor" = false
|
||||||
"Undo/Redo History" = false
|
"Undo/Redo History" = false
|
||||||
@@ -86,7 +86,6 @@ chunk_overlap = 200
|
|||||||
provider = "mock"
|
provider = "mock"
|
||||||
collection_name = "manual_slop"
|
collection_name = "manual_slop"
|
||||||
|
|
||||||
|
|
||||||
[tools.text_editors.vscode]
|
[tools.text_editors.vscode]
|
||||||
path = "C:\\apps\\Microsoft VS Code Insiders\\Code - Insiders.exe"
|
path = "C:\\apps\\Microsoft VS Code Insiders\\Code - Insiders.exe"
|
||||||
diff_args = [
|
diff_args = [
|
||||||
|
|||||||
Reference in New Issue
Block a user