Concerns (6 files): - coding-style.md (163 lines): patterns, anti-patterns, error handling, SOLID - naming.md (105 lines): naming conventions table per language - documentation.md (149 lines): docstrings, WHY vs WHAT, README standards - testing.md (134 lines): AAA pattern, mocking philosophy, TDD - git-workflow.md (118 lines): conventional commits, branch naming, PR format - project-structure.md (82 lines): directory layout, entry points, config placement Languages (4 files): - python.md (224 lines): uv, ruff, pyright, pytest, pydantic, idioms, anti-patterns - typescript.md (150 lines): strict mode, discriminated unions, satisfies, as const - nix.md (129 lines): flake structure, module patterns, alejandra, anti-patterns - shell.md (100 lines): set -euo pipefail, shellcheck, quoting, POSIX Frameworks (1 file): - n8n.md (42 lines): workflow design, node patterns, Error Trigger, security Context budget: 975 lines (concerns + python) < 1500 limit Refs: T6-T16 of rules-system plan
43 lines
1.5 KiB
Markdown
43 lines
1.5 KiB
Markdown
# n8n Workflow Automation Rules
|
|
|
|
## Workflow Design
|
|
- Start with a clear trigger: Webhook, Schedule, or Event source
|
|
- Keep workflows under 20 nodes for maintainability
|
|
- Group related logic with sub-workflows
|
|
- Use the "Switch" node for conditional branching
|
|
- Add "Wait" nodes between rate-limited API calls
|
|
|
|
## Node Naming
|
|
- Use verb-based names: `Fetch Users`, `Transform Data`, `Send Email`
|
|
- Prefix data nodes: `Get_`, `Set_`, `Update_`
|
|
- Prefix conditionals: `Check_`, `If_`, `When_`
|
|
- Prefix actions: `Send_`, `Create_`, `Delete_`
|
|
- Add version suffix to API nodes: `API_v1_Users`
|
|
|
|
## Error Handling
|
|
- Always add an Error Trigger node
|
|
- Route errors to a "Notify Failure" branch
|
|
- Log error details: `$json.error.message`, `$json.node.name`
|
|
- Send alerts on critical failures
|
|
- Add "Continue On Fail" for non-essential nodes
|
|
|
|
## Data Flow
|
|
- Use "Set" nodes to normalize output structure
|
|
- Reference previous nodes: `{{ $json.field }}`
|
|
- Use "Merge" node to combine multiple data sources
|
|
- Apply "Code" node for complex transformations
|
|
- Clean data before sending to external APIs
|
|
|
|
## Credential Security
|
|
- Store all secrets in n8n credentials manager
|
|
- Never hardcode API keys or tokens
|
|
- Use environment-specific credential sets
|
|
- Rotate credentials regularly
|
|
- Limit credential scope to minimum required permissions
|
|
|
|
## Testing
|
|
- Test each node independently with "Execute Node"
|
|
- Verify data structure at each step
|
|
- Mock external dependencies during development
|
|
- Log workflow execution for debugging
|