-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathJustfile
More file actions
110 lines (90 loc) · 3.61 KB
/
Justfile
File metadata and controls
110 lines (90 loc) · 3.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# SPDX-License-Identifier: PMPL-1.0-or-later
# phronesiser — Add provably safe ethical constraints to AI agents
# Default: build and test
default: build test
# Build release binary
build:
cargo build --release
# Run all tests
test:
cargo test
# Run clippy lints
lint:
cargo clippy -- -D warnings
# Format code
fmt:
cargo fmt
# Check formatting without modifying
fmt-check:
cargo fmt -- --check
# Build documentation
doc:
cargo doc --no-deps --open
# Clean build artifacts
clean:
cargo clean
# Run the CLI
run *ARGS:
cargo run -- {{ARGS}}
# Full quality check (lint + test + fmt-check)
quality: fmt-check lint test
@echo "All quality checks passed"
# Install locally
install:
cargo install --path .
# Run panic-attacker pre-commit scan
assail:
@command -v panic-attack >/dev/null 2>&1 && panic-attack assail . || echo "panic-attack not found — install from https://github.com/hyperpolymath/panic-attacker"
# --- Domain-Specific Recipes (phronesiser) ---
# Validate ethical constraints against a policy\nvalidate-ethics POLICY:\n cargo run -- validate {{POLICY}}\n\n# Generate constraint proofs\nprove CONSTRAINTS:\n cargo run -- prove {{CONSTRAINTS}}\n\n# Audit an AI agent's decision log\naudit-decisions LOG:\n cargo run -- audit {{LOG}}
# Run contractile checks
contractile-check:
@echo "Running contractile validation..."
@test -f .machine_readable/contractiles/must/Mustfile.a2ml && echo "Mustfile: OK" || echo "Mustfile: MISSING"
@test -f .machine_readable/contractiles/trust/Trustfile.a2ml && echo "Trustfile: OK" || echo "Trustfile: MISSING"
@test -f .machine_readable/contractiles/dust/Dustfile.a2ml && echo "Dustfile: OK" || echo "Dustfile: MISSING"
@test -f .machine_readable/contractiles/intend/Intendfile.a2ml && echo "Intendfile: OK" || echo "Intendfile: MISSING"
# RSR compliance check
rsr-check: quality contractile-check
@echo "RSR compliance check complete"
# Self-diagnostic — checks dependencies, permissions, paths
doctor:
@echo "Running diagnostics for phronesiser..."
@echo "Checking required tools..."
@command -v just >/dev/null 2>&1 && echo " [OK] just" || echo " [FAIL] just not found"
@command -v git >/dev/null 2>&1 && echo " [OK] git" || echo " [FAIL] git not found"
@echo "Checking for hardcoded paths..."
@grep -rn '$HOME\|$ECLIPSE_DIR' --include='*.rs' --include='*.ex' --include='*.res' --include='*.gleam' --include='*.sh' . 2>/dev/null | head -5 || echo " [OK] No hardcoded paths"
@echo "Diagnostics complete."
# Auto-repair common issues
heal:
@echo "Attempting auto-repair for phronesiser..."
@echo "Fixing permissions..."
@find . -name "*.sh" -exec chmod +x {} \; 2>/dev/null || true
@echo "Cleaning stale caches..."
@rm -rf .cache/stale 2>/dev/null || true
@echo "Repair complete."
# Guided tour of key features
tour:
@echo "=== phronesiser Tour ==="
@echo ""
@echo "1. Project structure:"
@ls -la
@echo ""
@echo "2. Available commands: just --list"
@echo ""
@echo "3. Read README.adoc for full overview"
@echo "4. Read EXPLAINME.adoc for architecture decisions"
@echo "5. Run 'just doctor' to check your setup"
@echo ""
@echo "Tour complete! Try 'just --list' to see all available commands."
# Open feedback channel with diagnostic context
help-me:
@echo "=== phronesiser Help ==="
@echo "Platform: $(uname -s) $(uname -m)"
@echo "Shell: $SHELL"
@echo ""
@echo "To report an issue:"
@echo " https://github.com/hyperpolymath/phronesiser/issues/new"
@echo ""
@echo "Include the output of 'just doctor' in your report."