Repository navigation
Expand file tree
/
Copy pathMakefile
More file actions
78 lines (64 loc) · 2.69 KB
/
Copy pathMakefile
File metadata and controls
78 lines (64 loc) · 2.69 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
# fluent-sdfx project Makefile.
#
# Conventions:
# make build: sync docs from tutorial code, vet, test (the main check).
# make install-hooks: install git hooks that auto-run `make build` on commit.
# make serve: local SPA-fallback dev server for the docs site.
# make screenshots: regenerate every docs figure via f3d (expensive).
.PHONY: build docs-sync llms-index llms-check vet test fmt-check screenshots serve sculpt install-hooks install-skill help
build: docs-sync llms-index vet test llms-check
@echo "✓ build clean"
# Regenerate the API index at the bottom of docs/llms.txt from the source,
# so the agent-facing reference always lists every exported symbol.
llms-index:
@go run ./tools/llms-check -gen
# Fail if docs/llms.txt has fallen behind the code: a stale index, an
# exported symbol with no doc comment, or a code block naming something
# that no longer exists.
llms-check:
@go run ./tools/llms-check
# Re-inline tutorial Go source into matching docs/content/*.md code blocks.
docs-sync:
@./tools/update-tutorial-code.sh
vet:
@go vet ./...
test:
@go test ./...
fmt-check:
@unformatted=$$(gofmt -l .); \
if [ -n "$$unformatted" ]; then \
echo "gofmt issues:"; echo "$$unformatted"; exit 1; \
fi
# Regenerate every docs/images/<page>-<step>.png via f3d. Expensive: runs
# every tutorial step's `go run` and a headless f3d render. Not part of
# `make build`; invoke manually when tutorial code or output changes
# meaningfully.
screenshots:
@./tutorial/render-screenshots.sh
# Local SPA-fallback dev server on :7174.
serve:
@./tools/serve.py
# Sculpt test loop: a browser view on :7175 where dragging pulls the
# surface and every pull is a step in sculpt.yaml.
sculpt:
@go run ./tools/sculptui -file sculpt.yaml
install-hooks:
@./tools/install-hooks.sh
help:
@echo "Targets:"
@echo " build: docs-sync + vet + test"
@echo " docs-sync: re-inline tutorial Go source into docs/content/*.md"
@echo " vet: go vet ./..."
@echo " test: go test ./..."
@echo " fmt-check: gofmt -l . (zero output = clean)"
@echo " screenshots: regenerate every docs figure via f3d"
@echo " serve: local SPA-fallback dev server on :7174"
@echo " sculpt: sculpt test loop on :7175, history in sculpt.yaml"
@echo " install-hooks: install git pre-commit hook"
# Install the fluent-sdfx Claude Code skill for the current user, so any
# project that uses the library gets the intake, reference and verification
# workflow automatically. The canonical copy lives in .claude/skills/.
install-skill:
@mkdir -p "$$HOME/.claude/skills/fluent-sdfx"
@cp .claude/skills/fluent-sdfx/SKILL.md .claude/skills/fluent-sdfx/architect.md "$$HOME/.claude/skills/fluent-sdfx/"
@echo "installed to $$HOME/.claude/skills/fluent-sdfx"