Files
claude/.claude/tasks/contracts/2026-09-28-skill-catalog-prune-0554.oracles/c15.py
T

17 lines
795 B
Python

import glob,os,re
def entries(p): return {l.split()[0] for l in open(p) if l.strip() and not l.lstrip().startswith('#')}
full=entries('lib/profiles/full.profile')
removed={'ship','land-and-deploy','setup-deploy','autoplan','context-save','learn','careful','guard','design-shotgun'}
trio={'21st-ai','21st-ui-explore','21st-ui-review'}
test=open('lib/tests/profile-census.test.sh').read()
m=re.search(r'^\s*FULL_EXCEPTIONS=\(([^)]*)\)',test,re.M)
allow=set(m.group(1).split()) if m else set()
gap=set()
for p in glob.glob('lib/profiles/*.profile'):
if os.path.basename(p) in ('full.profile','max.profile'): continue
gap|=entries(p)-full
gap-=removed|trio|allow
assert not gap, sorted(gap)
assert 'pr-review-toolkit' in allow, 'allowlist must name pr-review-toolkit'
print('FULL_UNION_OK')