aboutsummaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-07-13 16:06:13 -0500
committerCraig Jennings <c@cjennings.net>2026-07-13 16:06:13 -0500
commit6cd3aa32b9f3b033c3890f08ab430e757696e5e3 (patch)
tree763dcb361796935330dc7e8afa98c0e427ed2966 /Makefile
parent0ee94abca7dde8356709d712b2dbf735b029f2b8 (diff)
downloadrulesets-6cd3aa32b9f3b033c3890f08ab430e757696e5e3.tar.gz
rulesets-6cd3aa32b9f3b033c3890f08ab430e757696e5e3.zip
feat(runtime): add the thin-pointer AGENTS.md agent entry file
claude-templates/AGENTS.md points any harness at protocols.org, the rules locations, and the /name-to-file resolution rule, and tells it to degrade per each rule's documented fallback instead of skipping gates. make install links it to ~/.codex/AGENTS.md (new CODEX_DIR stanza) and install-ai.sh seeds a project-owned copy at bootstrap, never overwriting an existing one. The rulesets root carries a tracked symlink as dogfood. Five new bats tests cover the link idiom and the seeding. This resolves the generic-instruction-file blocker from the runtime spec, and velox picks up the global link on its next session's make install.
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile12
1 files changed, 12 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index a6e636f..2d744a1 100644
--- a/Makefile
+++ b/Makefile
@@ -5,6 +5,7 @@ SKILLS_DIR := $(HOME)/.claude/skills
RULES_DIR := $(HOME)/.claude/rules
HOOKS_DIR := $(HOME)/.claude/hooks
CLAUDE_DIR := $(HOME)/.claude
+CODEX_DIR := $(HOME)/.codex
LOCAL_BIN := $(HOME)/.local/bin
AI_LAUNCHER := $(CURDIR)/claude-templates/bin/ai
SKILLS := $(patsubst %/SKILL.md,%,$(wildcard */SKILL.md))
@@ -220,6 +221,17 @@ install: ## Symlink skills, rules, config, hooks, and bin scripts into place
fi \
fi
@echo ""
+ @echo "Agent entry (codex):"
+ @mkdir -p "$(CODEX_DIR)"
+ @if [ -L "$(CODEX_DIR)/AGENTS.md" ]; then \
+ echo " skip AGENTS.md (already linked)"; \
+ elif [ -e "$(CODEX_DIR)/AGENTS.md" ]; then \
+ echo " WARN AGENTS.md exists and is not a symlink — skipping"; \
+ else \
+ ln -s "$(CURDIR)/claude-templates/AGENTS.md" "$(CODEX_DIR)/AGENTS.md"; \
+ echo " link AGENTS.md → $(CODEX_DIR)/AGENTS.md"; \
+ fi
+ @echo ""
@echo "Hooks (default):"
@for hook in $(DEFAULT_HOOKS); do \
name=$$(basename $$hook); \