-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathMakefile
More file actions
68 lines (57 loc) · 3.88 KB
/
Copy pathMakefile
File metadata and controls
68 lines (57 loc) · 3.88 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
.PHONY: sync lint verify test optimization-check privacy-check integration-test ci review-invariants-check efficacy-check
PYTHON ?= python3
# In-repo SYNTHETIC discovery-accuracy regression now runs in `verify`/`test`/`ci` via
# tests/test_efficacy_regression.py (recall and precision non-decreasing, fp-rate
# non-increasing vs tests/eval/baseline_metrics.json). The fixtures are synthetic and
# generic, so no real target or finding is encoded. The `efficacy-check` target below
# stays an opt-in path for a richer bring-your-own (BYO) local synthetic corpus that is
# never committed; run it with `make efficacy-check EFFICACY_FIXTURES=/path/to/corpus`.
# The separate native candidate-generation regression runs through
# tests/test_discovery_engine_efficacy.py and scripts/discovery_engine_oracle.py; its pinned
# synthetic known-sink scores are not real-world vulnerability recall.
# Deliberately NOT part of `ci`.
EFFICACY_ORACLE ?= scripts/efficacy_oracle.py
EFFICACY_FIXTURES ?=
sync:
$(PYTHON) scripts/sync_agent_surfaces.py
lint:
$(PYTHON) scripts/sync_agent_surfaces.py --check
$(PYTHON) scripts/lint_repo.py
verify: lint test integration-test
test:
$(PYTHON) -m unittest discover -s tests
optimization-check:
$(PYTHON) -m unittest \
tests.test_skill_contract.SkillContractTest.test_public_disclosure_correlation_optimization_is_preserved \
tests.test_skill_contract.SkillContractTest.test_policy_friction_protocol_is_preserved \
tests.test_skill_contract.SkillContractTest.test_frontmatter_matches_open_skill_contract \
tests.test_skill_contract.SkillContractTest.test_agent_skill_surfaces_are_minimal_generated_wrappers \
tests.test_skill_contract.SkillContractTest.test_canonical_body_stays_concise_and_schema_lives_in_references \
tests.test_skill_contract.SkillContractTest.test_size_budgets_discourage_long_line_compression \
tests.test_skill_contract.SkillContractTest.test_canonical_line_cap_is_a_ratchet_with_consensus \
tests.test_skill_contract.SkillContractTest.test_size_speed_accuracy_consensus_and_artifact_split_are_recorded \
tests.test_skill_contract.SkillContractTest.test_references_are_available_to_every_agent_surface \
tests.test_skill_contract.SkillContractTest.test_supported_agent_doc_refresh_and_minimal_surfaces_are_required \
tests.test_skill_contract.SkillContractTest.test_agent_feature_matrix_is_present_current_and_complete \
tests.test_skill_contract.SkillContractTest.test_surface_frontmatter_is_agent_scoped_and_non_leaking \
tests.test_skill_contract.SkillContractTest.test_surface_frontmatter_has_no_undeclared_keys \
tests.test_skill_contract.SkillContractTest.test_surface_frontmatter_is_validator_clean \
tests.test_skill_contract.SkillContractTest.test_readme_supported_agents_block_is_generator_round_trip \
tests.test_skill_contract.SkillContractTest.test_claude_allowed_tools_are_read_only \
tests.test_skill_contract.SkillContractTest.test_cross_agent_skill_optimization_review_is_required \
tests.test_skill_contract.SkillContractTest.test_supported_os_portability_review_is_required \
tests.test_skill_contract.SkillContractTest.test_generated_surfaces_are_marked_generated_for_github_review \
tests.test_skill_contract.SkillContractTest.test_copilot_instructions_are_generated_repo_wide_surface
privacy-check:
$(PYTHON) -m unittest tests.test_repo_hygiene.RepoHygieneTest.test_no_internal_provenance_or_disclosure_markers
integration-test:
$(PYTHON) -m unittest discover -s integration_tests
review-invariants-check:
$(PYTHON) -m unittest tests.test_review_invariants
ci: lint optimization-check test privacy-check review-invariants-check integration-test
efficacy-check:
@if [ -f "$(EFFICACY_ORACLE)" ]; then \
$(PYTHON) "$(EFFICACY_ORACLE)" $(if $(EFFICACY_FIXTURES),--fixtures-dir "$(EFFICACY_FIXTURES)"); \
else \
echo "efficacy-check: no oracle at $(EFFICACY_ORACLE) (provide local synthetic fixtures); skipping"; \
fi