Skip to content

Commit 091121e

Browse files
authored
Merge pull request #9 from BruinGrowly/claude/check-code-011CUf7NJcXsSSKr1fXAedS5
docs: Add integration templates and comprehensive examples
2 parents a4bdd4b + cd943d1 commit 091121e

File tree

11 files changed

+3418
-0
lines changed

11 files changed

+3418
-0
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
name: Code Harmony Check
2+
3+
on:
4+
push:
5+
branches: [ main, develop ]
6+
pull_request:
7+
branches: [ main, develop ]
8+
9+
jobs:
10+
harmony-check:
11+
runs-on: ubuntu-latest
12+
13+
steps:
14+
- name: Checkout code
15+
uses: actions/checkout@v3
16+
17+
- name: Set up Python
18+
uses: actions/setup-python@v4
19+
with:
20+
python-version: '3.8'
21+
22+
- name: Install Python Code Harmonizer
23+
run: |
24+
python -m pip install --upgrade pip
25+
pip install .
26+
27+
- name: Run Harmony Analysis
28+
run: |
29+
echo "========================================"
30+
echo "Python Code Harmonizer - CI/CD Check"
31+
echo "========================================"
32+
33+
# Analyze all Python files in src/ directory
34+
harmonizer src/**/*.py || true
35+
36+
# Note: Currently harmonizer doesn't set exit codes based on scores
37+
# Future enhancement: fail build if critical disharmony detected
38+
39+
echo ""
40+
echo "✅ Harmony check completed"
41+
echo "Review output above for any disharmony warnings"
42+
43+
- name: Analyze specific modules (optional)
44+
run: |
45+
# Example: Analyze specific critical modules with comments
46+
echo ""
47+
echo "Analyzing critical modules..."
48+
49+
# Add your critical files here
50+
# harmonizer src/core/important.py
51+
# harmonizer src/api/endpoints.py
52+
continue-on-error: true
53+
54+
# Note: To make this workflow fail on high disharmony scores,
55+
# you'll need to wrap harmonizer in a script that checks scores
56+
# and exits with non-zero code if threshold exceeded.
57+
#
58+
# Example future enhancement:
59+
# - name: Check harmony with threshold
60+
# run: python scripts/ci_harmony_check.py --threshold 0.8 --fail-on-high

.harmonizer.yml.template

Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
# Python Code Harmonizer Configuration Template
2+
#
3+
# NOTE: Configuration file support is planned for future release
4+
# This template shows what configuration will look like when implemented
5+
#
6+
# Copy this file to .harmonizer.yml in your project root
7+
# The harmonizer will read this configuration automatically
8+
9+
# Disharmony threshold (functions above this are flagged)
10+
# Default: 0.5
11+
# Range: 0.0 (very strict) to 2.0 (very lenient)
12+
threshold: 0.5
13+
14+
# Output format
15+
# Options: table, json, csv
16+
# Default: table
17+
output_format: table
18+
19+
# Severity level definitions
20+
severity_levels:
21+
critical: 1.2 # Score >= 1.2
22+
high: 0.8 # Score >= 0.8
23+
medium: 0.5 # Score >= 0.5
24+
low: 0.3 # Score >= 0.3
25+
excellent: 0.0 # Score < 0.3
26+
27+
# Files and patterns to ignore
28+
ignore_patterns:
29+
- "**/test_*.py" # Test files
30+
- "**/tests/*.py" # Test directories
31+
- "**/migrations/*.py" # Database migrations
32+
- "**/*_test.py" # Alternative test naming
33+
- "**/conftest.py" # Pytest configuration
34+
- "**/__pycache__/**" # Python cache
35+
- "**/.venv/**" # Virtual environments
36+
37+
# Files and patterns to include (overrides ignore if specified)
38+
include_patterns:
39+
- "src/**/*.py" # Source files
40+
- "app/**/*.py" # Application files
41+
# - "scripts/**/*.py" # Uncomment to include scripts
42+
43+
# Fail build in CI/CD if any function exceeds this threshold
44+
# Set to null to never fail builds
45+
# Default: null (warnings only)
46+
fail_threshold: null
47+
# fail_threshold: 1.0 # Uncomment to fail on critical disharmony
48+
49+
# Enable verbose output
50+
# Default: false
51+
verbose: false
52+
53+
# Show function details in output
54+
# Default: true
55+
show_function_details: true
56+
57+
# Sort results by score (descending)
58+
# Default: true
59+
sort_by_score: true
60+
61+
# Color output (for terminal)
62+
# Default: true
63+
color_output: true
64+
65+
# Custom vocabulary extensions
66+
# Add domain-specific semantic mappings
67+
# (Advanced: requires understanding of DIVE-V2 engine)
68+
custom_vocabulary:
69+
# Example: Map domain-specific terms
70+
# "authenticate": "justice"
71+
# "authorize": "power"
72+
# "notify": "love"
73+
74+
# Report options
75+
report:
76+
# Show summary statistics
77+
show_summary: true
78+
79+
# Show only disharmonious functions
80+
only_show_disharmony: false
81+
82+
# Include harmonious functions in output
83+
include_harmonious: true
84+
85+
# Maximum functions to display (0 = unlimited)
86+
max_display: 0
87+
88+
# Future enhancement placeholders
89+
# These will be implemented in upcoming versions
90+
91+
# auto_fix:
92+
# enabled: false
93+
# suggestions: true
94+
95+
# metrics:
96+
# track_over_time: false
97+
# output_file: "harmony_metrics.json"
98+
99+
# integrations:
100+
# github:
101+
# create_review_comments: false
102+
# jira:
103+
# create_tickets_for_critical: false
104+
105+
---
106+
107+
# Example configurations for different use cases:
108+
109+
# STRICT MODE (for new projects)
110+
# threshold: 0.3
111+
# fail_threshold: 0.5
112+
113+
# LENIENT MODE (for legacy code cleanup)
114+
# threshold: 0.8
115+
# fail_threshold: 1.2
116+
117+
# CI/CD MODE (fail on critical only)
118+
# threshold: 0.5
119+
# fail_threshold: 1.0
120+
# only_show_disharmony: true
121+
122+
# DEVELOPMENT MODE (show everything)
123+
# threshold: 0.5
124+
# verbose: true
125+
# show_function_details: true

.pre-commit-config.yaml.template

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# Python Code Harmonizer - Pre-commit Hook Template
2+
#
3+
# Copy this file to .pre-commit-config.yaml in your project root
4+
# Install pre-commit: pip install pre-commit
5+
# Install hooks: pre-commit install
6+
# Run manually: pre-commit run --all-files
7+
8+
repos:
9+
# Standard pre-commit hooks
10+
- repo: https://github.com/pre-commit/pre-commit-hooks
11+
rev: v4.5.0
12+
hooks:
13+
- id: trailing-whitespace
14+
- id: end-of-file-fixer
15+
- id: check-yaml
16+
- id: check-added-large-files
17+
- id: check-merge-conflict
18+
- id: check-python-syntax
19+
20+
# Python Code Formatting
21+
- repo: https://github.com/psf/black
22+
rev: 24.1.1
23+
hooks:
24+
- id: black
25+
language_version: python3
26+
27+
# Python Linting
28+
- repo: https://github.com/pycqa/flake8
29+
rev: 7.0.0
30+
hooks:
31+
- id: flake8
32+
33+
# Python Code Harmonizer (Semantic Analysis)
34+
- repo: local
35+
hooks:
36+
- id: harmonizer
37+
name: Python Code Harmonizer
38+
entry: harmonizer
39+
language: system
40+
types: [python]
41+
pass_filenames: true
42+
# Note: Install harmonizer first: pip install /path/to/Python-Code-Harmonizer
43+
44+
# Usage Notes:
45+
# - This checks code harmony before every commit
46+
# - To skip temporarily: git commit --no-verify
47+
# - To run manually: pre-commit run harmonizer --all-files
48+
#
49+
# Customization:
50+
# - Adjust 'pass_filenames: false' to check all files every time
51+
# - Add 'args: ["--threshold", "0.8"]' when threshold support is added

.vscode/tasks.json

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
{
2+
"version": "2.0.0",
3+
"tasks": [
4+
{
5+
"label": "Harmonizer: Check Current File",
6+
"type": "shell",
7+
"command": "harmonizer",
8+
"args": [
9+
"${file}"
10+
],
11+
"problemMatcher": [],
12+
"presentation": {
13+
"reveal": "always",
14+
"panel": "new",
15+
"clear": true
16+
},
17+
"group": {
18+
"kind": "test",
19+
"isDefault": false
20+
}
21+
},
22+
{
23+
"label": "Harmonizer: Check All Source Files",
24+
"type": "shell",
25+
"command": "harmonizer",
26+
"args": [
27+
"src/**/*.py"
28+
],
29+
"problemMatcher": [],
30+
"presentation": {
31+
"reveal": "always",
32+
"panel": "new",
33+
"clear": true
34+
},
35+
"group": {
36+
"kind": "test",
37+
"isDefault": false
38+
}
39+
},
40+
{
41+
"label": "Harmonizer: Check Workspace",
42+
"type": "shell",
43+
"command": "find",
44+
"args": [
45+
".",
46+
"-name",
47+
"*.py",
48+
"-not",
49+
"-path",
50+
"*/venv/*",
51+
"-not",
52+
"-path",
53+
"*/.venv/*",
54+
"-exec",
55+
"harmonizer",
56+
"{}",
57+
";"
58+
],
59+
"problemMatcher": [],
60+
"presentation": {
61+
"reveal": "always",
62+
"panel": "new",
63+
"clear": true
64+
},
65+
"group": {
66+
"kind": "test",
67+
"isDefault": false
68+
}
69+
}
70+
]
71+
}

0 commit comments

Comments
 (0)