Skip to content

ci: drop number-consistency lint, defer to bulletproofer + canonical … #78

ci: drop number-consistency lint, defer to bulletproofer + canonical …

ci: drop number-consistency lint, defer to bulletproofer + canonical … #78

Workflow file for this run

name: consistency
on:
push:
branches: [main]
pull_request:
jobs:
check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
# Number consistency is enforced by the surface bulletproofer team
# against ~/.zeven/sparring/CANONICAL_STATE.md, not by required CI.
# A required CI lint that depends on moving mainnet state would turn
# unrelated PRs red whenever a new anchor or leaf lands. The bulletproofer
# runs every 4 hours, audits all surfaces against canonical, and reports
# drift to bulletproof-reports/. Source of truth lives in canonical state,
# not in this workflow.
- name: No emdashes
run: |
if grep -Prn '\x{2014}' --include="*.md" --include="*.rs" --include="*.kt" \
--include="*.swift" --include="*.sol" --include="*.html" --include="*.jsx" \
--exclude-dir=node_modules --exclude-dir=target --exclude-dir=.git .; then
echo "::error::Found emdash characters (U+2014)"
exit 1
fi
- name: No AI language
run: |
if grep -rin "comprehensive\|robust\|leverage\|seamless\|facilitates\|designed to\|intended to\|paving the way\|testament to\|underscores\|notably\|furthermore\|moreover" \
--include="*.md" --include="*.rs" --include="*.kt" --include="*.swift" \
--exclude-dir=node_modules --exclude-dir=target --exclude-dir=.git .; then
echo "::error::Found AI-sounding language"
exit 1
fi
- name: No AI tool references in code
run: |
if grep -rin "codex\|claude\|anthropic\|openai\|chatgpt" \
--include="*.rs" --include="*.kt" --include="*.swift" --include="*.sol" \
--exclude-dir=node_modules --exclude-dir=target --exclude-dir=.git .; then
echo "::error::Found AI tool references in source code"
exit 1
fi
- name: No grant references in source
run: |
if grep -rin "ZCG\|grant\|milestone\|evaluator" src/ tests/ 2>/dev/null; then
echo "::error::Found grant references in source code"
exit 1
fi
- name: No Nordic Shield branding in active text
run: |
if grep -rn "Nordic Shield" --include="*.md" --include="*.rs" --include="*.html" \
--exclude-dir=node_modules --exclude-dir=target --exclude-dir=.git . | \
grep -v "NordicShield_\|NordicShield_MRK\|personalization\|legacy\|pre-rename\|constant"; then
echo "::error::Found Nordic Shield product branding in active text"
exit 1
fi
- name: Consistent test vector field names
run: |
if grep -n "expected_leaf_hash" TEST_VECTORS.md 2>/dev/null; then
echo "::error::TEST_VECTORS.md uses inconsistent field name expected_leaf_hash (should be expected_hash)"
exit 1
fi