chore(memory): BDR-106 superpowers vendored — contract, plan r3, oracles, TODO, journal
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
import json,re
|
||||
d=json.load(open('plugins.lock.json'))
|
||||
e=d['superpowers']
|
||||
assert e['source']=='https://github.com/obra/superpowers', e['source']
|
||||
assert e['commit']=='5bf4e78011075bcfc0dc295f0724994cd123ee71', e['commit']
|
||||
assert e['path']=='skills', e.get('path')
|
||||
assert e.get('managed_by')=='curl'
|
||||
want={'brainstorming','writing-plans','subagent-driven-development','test-driven-development','requesting-code-review','using-git-worktrees','writing-skills'}
|
||||
assert set(e['skills'])==want, set(e['skills'])^want
|
||||
for k,files in e['skills'].items():
|
||||
assert 'SKILL.md' in files, k
|
||||
for f in files: assert re.fullmatch(r'[A-Za-z0-9._/-]+',f) and '..' not in f, f
|
||||
assert 'scripts/sdd-workspace' in e['skills']['subagent-driven-development']
|
||||
assert 'code-reviewer.md' in e['skills']['requesting-code-review']
|
||||
assert 'anthropic-best-practices.md' in e['skills']['writing-skills']
|
||||
print('LOCK_OK')
|
||||
@@ -0,0 +1,17 @@
|
||||
import json,os,hashlib,glob
|
||||
H=os.path.expanduser('~')
|
||||
e=json.load(open('plugins.lock.json'))['superpowers']
|
||||
cache=glob.glob(H+'/.claude/plugins/cache/superpowers-marketplace/superpowers/6.4.1/skills')
|
||||
missing=[];mism=[]
|
||||
for k,files in e['skills'].items():
|
||||
for f in files:
|
||||
p=f'skills-external/{k}/{f}'
|
||||
if not os.path.isfile(p): missing.append(p); continue
|
||||
if cache:
|
||||
c=f'{cache[0]}/{k}/{f}'
|
||||
if os.path.isfile(c) and hashlib.md5(open(p,'rb').read()).hexdigest()!=hashlib.md5(open(c,'rb').read()).hexdigest(): mism.append(p)
|
||||
link=f'{H}/.claude/skills/{k}'
|
||||
if not (os.path.islink(link) and os.path.isfile(link+'/SKILL.md')): missing.append(link)
|
||||
assert not missing, missing
|
||||
assert not mism, ('byte mismatch vs plugin cache',mism)
|
||||
print('VENDORED_LINKED')
|
||||
Reference in New Issue
Block a user