aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-08-20 06:13:35 -0700
committerCraig Jennings <c@cjennings.net>2026-08-20 06:13:35 -0700
commit23d1d998995a776b5c184c6719602b1aba2c1d41 (patch)
tree848e5806f6eca0b826a84e4d20ebc1ddacf5d2d4 /Makefile
parentca1bb871417afafc319c115d6ae69fa8cd3fe53c (diff)
downloadrulesets-23d1d998995a776b5c184c6719602b1aba2c1d41.tar.gz
rulesets-23d1d998995a776b5c184c6719602b1aba2c1d41.zip
fix(cmail): install cmail-action on PATH instead of per-project copies
protocols.org said cmail-action was symlinked into ~/.local/bin and on PATH from any project. It wasn't on any machine. The only copies were the per-project .ai/scripts/cmail-action.py the template sync delivers, so the documented invocation died with command not found. The claim wasn't aspirational. A provisioning script used to create that symlink from ~/projects/claude-templates/, and that path went away when claude-templates became a subtree here. The doc outlived its mechanism. The script has no project coupling (every path in it is under $HOME against a hardcoded bridge address). I moved it to claude-templates/bin/, which make install already links. The documented command is now true, and 17 copies collapse to one. Its test moved to scripts/tests/ and needed an explicit SourceFileLoader, because dropping the .py suffix stops importlib inferring one from the extension. The test target gained a pytest pass over scripts/tests. Without it the move would have dropped 57 tests while still reporting green. triage-intake's cmail gate now tests command -v cmail-action rather than a file path, so it checks what it runs. protocols.org names the repair when the command is missing, and names Proton Bridge as a precondition.
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile4
1 files changed, 4 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index fdbb70b..6859828 100644
--- a/Makefile
+++ b/Makefile
@@ -518,6 +518,10 @@ catchup-machine: ## Pull rulesets, refresh install, sync .ai/ across projects, v
test: ## Run all test suites (pytest + ERT + bats)
@cd .ai/scripts/tests && python3 -m pytest
@cd hooks/tests && python3 -m pytest
+ @if ls scripts/tests/test_*.py >/dev/null 2>&1; then \
+ echo "pytest: scripts/tests"; \
+ ( cd scripts/tests && python3 -m pytest -q ); \
+ fi
@set -e; for d in languages/*/tests; do \
ls "$$d"/test_*.py >/dev/null 2>&1 || continue; \
echo "pytest: $$d"; \